前面一篇文章介绍了pureftp部署和优化:http://1015489314.blog.51cto.com/8637744/1694166
下面我们接着来做CentOS自带的FTP软件vsftpd的部署和优化实验。
1、安装启动vsftpd
[[email protected] ~]# yum install -y vsftpd
[[email protected] ~]# /etc/init.d/vsftpd start
注:我们会发现启动失败,因为之前我们安装了pure-ftpd,被其占用了21端口,我们只要杀死所有的pure-ftpd进程就行,执行命令:killall pure-ftpd
2、建立账号
vsftpd默认可以支持使用系统账号登入的,客户端不止可以登入家目录,也可以登入其他的目录,这样是什么不安全,故我们也要和pure-ftpd一样建立关联系统用户的虚拟账户。
首先建立与虚拟账号相关联的系统账号:virftp
[[email protected] ~]# useradd virftp -s /sbin/nologin
接着建立存放虚拟账号密码的文件:
[[email protected] ~]# vim /etc/vsftpd/vsftpd_login //写入如下内容
test1
123456
test2
abcdef
修改权限,只限于root用户:
[[email protected] ~]# chmod 600 /etc/vsftpd/vsftpd_login
vsftpd使用的密码不是明文,需要生成对应的库文件:
[[email protected] ~]# db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db
最后建立与虚拟账号相关的目录
[[email protected] ~]# mkdir /etc/vsftpd/vsftpd_user_conf
3、创建与用户对应的配置文件
用户的配置文件是单独存在,每个用户都建立与账号同名的配置文件。
[[email protected] ~]# cd /etc/vsftpd/vsftpd_user_conf/
[[email protected] vsftpd_user_conf]# vim test1 //写入以下内容
local_root=/home/virftp/test1
anonymous_enable=NO
write_enable=YES
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
idle_session_timeout=600
data_connection_timeout=120
max_clients=10
max_per_ip=5
local_max_rate=50000
注意:local_root 为该账号的家目录,anonymous_enable 用来限制是否允许匿名账号登陆,若为 NO 表示不允许匿名账号登陆,write_enable=YES 表示可写,local_umask 指定 umask 值,anon_upload_enable 是否允许匿名账号上传文件,anon_mkdir_write_enable 是否允许匿名账号可写。
接着创建test1用户的家目录
[[email protected] vsftpd_user_conf]# mkdir /home/virftp/test1
[[email protected] vsftpd_user_conf]# chown -R virftp:virftp /home/virftp
[[email protected] vsftpd_user_conf]# vim /etc/pam.d/vsftpd //在最开头添加两行
auth sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
如下图:
注意:我的是32位系统,所以库文件路径为/lib/security/pam_userdb.so,若你的系统为64,那你的库文件是在/lib64/security/pam_userdb.so。
4、修改全局配置文件
[[email protected] vsftpd_user_conf]# vim /etc/vsftpd/vsftpd.conf //修改下面几项
anonymous_enable=YES 改为 anonymous_enable=NO
#anon_upload_enable=YES 改为 anon_upload_enable=NO
#anon_mkdir_write_enable=YES 改为 anon_mkdir_write_enable=NO
#chroot_local_user=YES 改为 chroot_local_user=YES
在最后面增加:
guest_enable=YES
guest_username=virftp
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/vsftpd_user_conf
最后启动 vsftpd 服务
[[email protected] vsftpd_user_conf]# /etc/init.d/vsftpd start
为 vsftpd 启动 vsftpd: [确定]
注意:如果服务启动不了,注意每行后面不要有空格;还有就是很有可能21端口被其他服务占用。
[[email protected] vsftpd_user_conf]# netstat -lnp |grep ":21"
不管是pure-ftpd还是vsftpd占用着,都一律杀死,释放出21端口,然后再启动vsftpd服务。
5、测试
测试过程和前面pure-ftpd 的一样。另外,如果用户登录不了,请查看一下/var/log/secure 日志。