什么是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
管理vsftpd相关命令:
停止vsftpd: service vsftpd stop
重启vsftpd: service vsftpd restart
配置防火墙
方法一:(临时的重启之后会取消)
iptables -I INPUT -p tcp --dport 21 -j ACCEPT
service iptables save
方法二:
打开/etc/sysconfig/iptables文件
- vi /etc/sysconfig/iptables
在REJECT行之前添加如下代码
- -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
保存和关闭文件,重启防火墙
- service iptables start
配置vsftpd服务器
默认的配置文件是/etc/vsftpd/vsftpd.conf,你可以用文本编辑器打开。
- vi /etc/vsftpd/vsftpd.conf
添加ftp用户
下面是添加ftpuser用户,设置根目录为/home/wwwroot/ftpuser,禁止此用户登录SSH的权限,并限制其访问其它目录。
1、修改/etc/vsftpd/vsftpd.conf
将底下三行
- #chroot_list_enable=YES
- # (default follows)
- #chroot_list_file=/etc/vsftpd.chroot_list
改为
- chroot_list_enable=NO 不启用匿名登录
- # (default follows)
- chroot_list_file=/etc/vsftpd/chroot_list 更改用户文件路径
3、增加用户ftpuser,指向目录/var/www,禁止登录SSH权限。
# groupadd webftp
添加webftp用户组,用来承载我们的FTP授权用户。
# useradd -g webftp -M -d /var/www -s /sbin/nologin ftpuser
使用-g参数将它归集到webftp用户组下,-M参数不设置它的主目录(没有-M参数/home里会有个wwwer文件夹,这个文件夹没多少实际用处,所以不用设置),-d参数设定它的初始登入目录为/var/www,-s参数设定它不需要登陆系统/sbin/nologin,它被命名为wwwer(之所以这样命名,也就是根据初始登入目录来设置的,下同,登陆到www目录有一个好处是它可以直接FTP进去修改诸如404一类的页面,而不用其他过程来配置)
更改/var/www目录及其下所有文件和文件夹(-R)的所有者为webftp用户组下的wwwer用户。
# chown -R htmler.webftp /var/www/html
4、设置用户口令
- passwd ftpuser
5、编辑文件chroot_list:
- vi /etc/vsftpd/chroot_list
内容为ftp用户名,每个用户占一行,如:
peter
john
6、重新启动vsftpd
- service vsftpd restart
另外,如果觉得以后管理ftp用户名嫌麻烦,可以使用centos官方发布的脚本管理。地址如下:
http://wiki.centos.org/HowTos/Chroot_Vsftpd_with_non-system_users
出现的错误
1、500 OOPS: cannot change directory
解决方法:
在终端输入命令:
- setsebool -P ftpd_disable_trans 1
- service vsftpd restart
就OK了!
原因:这是因为服务器开启了selinux,这限制了FTP的登录。