一、什么是vsftpd
vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序。特点是小巧轻快,安全易用。vsftpd 的名字代表”very secure FTP daemon”, 安全是它的开发者 Chris Evans 考虑的首要问题之一。在这个 FTP 服务器设计开发的最开始的时候,高安全性就是一个目标。
二、安装vsftpd
1、以管理员(root)身份执行以下命令
yum install vsftpd
2、设置开机启动vsftpd ftp服务
chkconfig vsftpd on
3、启动vsftpd服务
service vsftpd start
4、管理vsftpd相关命令
停止vsftpd: service vsftpd stop
重启vsftpd: service vsftpd restart
三、测试vsftpd
1、安装ftp客户端组件,用来验证是否安装好了vsftpd
yum -y install ftp
2、尝试登录
ftp localhost
3、输入用户名ftp,密码随便(因为默认是允许匿名的)登录成功,就代表ftp服务可用了。但是,外网是访问不了的,所以还要继续配置。
四、配置防火墙
1、打开/etc/sysconfig/iptables文件
vi /etc/sysconfig/iptables
2、在REJECT行之前添加如下代码
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
3、保存和关闭文件,重启防火墙
service iptables save
service iptables start
五、配置vsftpd服务器
1、打开配置文件
vi /etc/vsftpd/vsftpd.conf
2、取消下面两句的注释
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
chroot_local_user #是否将所有用户限制在主目录,YES为启用 NO禁用.(该项默认值是NO,即在安装vsftpd后不做配置的话,ftp用户是可以向上切换到要目录之外的)
chroot_list_enable #是否启动限制用户的名单
chroot_list_file=/etc/vsftpd/chroot_list #是否限制在主目录下的用户名单,至于是限制名单还是排除名单,这取决于chroot_local_user的值,我们可以这样记忆: chroot_local_user总是一个全局性的设定,其为YES时,全部用户被锁定于主目录,其为NO时,全部用户不被锁定于主目录。
3、取消匿名登陆
anonymous_enable=YES //改为NO
4、增加用户ftpuser,指向目录/home/wwwroot/ftpuser,禁止登录SSH权限。
useradd -d /home/wwwroot/ftpuser -g ftp -s /sbin/nologin ftpuser
5、设置用户口令
passwd ftpuser
6、编辑文件chroot_list:
vi /etc/vsftpd/chroot_list
内容为ftp用户名,每个用户占一行,如:
ftpser
peter
john
5、重新启动vsftpd
service vsftpd restart