且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

centos5.6 (64bit)编译安装vsftpd-2.3.4的配置(两种用户登录)[连载之电子商务系统架构]

更新时间:2022-09-20 20:24:18

centos5.6 (64bit)编译安装vsftpd-2.3.4的配置(两种用户登录)
出处:http://jimmyli.blog.51cto.com/ 我站在巨人肩膀上Jimmy Li
作者:Jimmy Li
关键词:电子商务,系统架构,vsftpd,本地用户登录,虚拟用户登录
------[连载之电子商务系统架构]访问量超过100万的电子商务网站技术架构

上一篇中首先分享一份:访问量超过100万的电子商务网站技术架构.PNG图,架构中的服务器,都必须远程传输文件,***方案当然是用FTP了。那么服务器搭建FTP当然是首要的任务了。虚拟用户登录比本地用户登录安全系数高。因为vsftpd虚拟用户,并不是系统的账号,也就仅用来支持Vsftpd服务用,因此没有许可他登陆系统的必要,比直接设定本地用户登录账号为登陆系统的用户安全性高。

一、文章要点:
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_lixw 51CTO博客,原文链接:http://blog.51cto.com/jimmyli/683599,如需转载请自行联系原作者