centos5.6 (64bit)编译安装vsftpd-2.3.4的配置(两种用户登录)

来源:岁月联盟 编辑:exp 时间:2011-10-10

 

 

一、文章要点:

1.64位系统下使用了PAM数据方式的虚拟用户配置

2.修改关键脚本,是编译成功通过。必要步骤,详细安装配置说明过程。

3.完全配置实例,Centos5.6编译安装vsftpd-2.3.4(配置本地用户登录、虚拟用户登录)

 

下载

wget http://xiazai.xiazaiba.com/Soft/V/vsftpd-2.3.4.tar.gz

tar xzvf vsftpd-2.3.4.tar.gz

cd vsftpd-2.3.4

关键步骤:由于64位系统的SO文件路径有变化,必须更改vsf_findlibs.sh脚本的将lib换成lib64

可以手工修改,也可以执行批量修改。

sed -i 's/lib///lib64///g' vsf_findlibs.sh    这里不执行,在64位系统是无法make成功的

mkdir /var/ftp/

useradd -d /var/ftp ftp

chown root.root /var/ftp/

chmod og-w /var/ftp/

make

make install

cd /etc/

cp /etc/vsftpd/vsftpd.conf.rpmsave vsftpd.conf

 

二、详细安装配置说明过程:

1、首先是安装PAM

yum install pam-devel db4-utils

2、安装vsftpd

yum install vsftpd*

3、查看vsftpd是否加载pam

ldd /usr/sbin/vsftpd

若输出中出现ibpam.so.0 => /lib/libpam.so.0,表示加载成功

4、生成用户验证数据库文件

1)创建loguser.txt,格式如下(用户、密码、用户、密码.....)

userid

pass

2)保存后,使用db_load -T -t hash -f loguser.txt /etc/vsftpd/vsftpd_login.db,查看该目录下文件是否生成

     设置访问权限chmod 600 /etc/vsftpd_login.db

5、vim /etc/pam.d/vsftpd

     在头部添加如下行

     auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

     account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

    注意,若为64位操作系统,此处的路径应该修改为

     auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

     account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

    否则,启动vsftpd后,会报530错误,这个错误我也是找了好久才明白的,之前其他网站上同类说明文件,均没有说明此问题

    将其它的内容注释掉

6、vim /etc/vsftpd/vsftpd.conf,确保含有一下设置:

        anonymous_enable=NO

        local_enable=YES

        write_enable=NO

        anon_upload_enable=NO

        anon_mkdir_write_enable=NO

        anon_other_write_enable=NO

        chroot_local_user=YES

        guest_enable=YES

        guest_username=virtual //---这里为映射的本地用户

        listen=YES

        listen_port=21

        pasv_min_port=30000

        pasv_max_port=30999

7、启动vsftpd

三、完全配置实例

Centos5.6编译安装vsftpd-2.3.4(配置本地用户登录)

wget http://xiazai.xiazaiba.com/Soft/V/vsftpd-2.3.4.tar.gz

tar zxvf vsftpd-2.3.4.tar.gz

cd vsftpd-2.3.4

mkdir -p /usr/local/man/man8

mkdir -p /usr/local/man/man5

make && make install

cd ../

vim /etc/vsftpd.conf

mkdir /etc/vsftpd

touch /etc/vsftpd/chroot_list

echo "/usr/local/sbin/vsftpd &" >> /etc/rc.local

mkdir /var/ftp

touch /etc/vsftpd/userlist.chroot

touch /etc/vsftpd/userlist_deny.chroot

touch /var/log/vsftpd.log

mkdir -p /usr/share/empty

#防火墙selinux设置

/usr/local/sbin/vsftpd &

setsebool -P ftpd_disable_trans on

/sbin/iptables -I INPUT -p tcp --dport 21 -j ACCEPT

/etc/rc.d/init.d/iptables save

/etc/init.d/iptables restart

useradd -d /home/wwwroot -s /sbin/nologin adminftp

pkill vsftpd

/usr/local/sbin/vsftpd &

最后记得设置adminftp密码

命令:passwd adminftp然后输入两次新密码

 

请关注连载续篇,欢迎朋友一起交流,讨论。扣扣:柒⑥柒陆叁⑤叁伍。

本文出自 “我站在巨人肩膀上Jimmy Li” 博客,请务必保留此出处