參考:http://coffeelet.blog.163.com/blog/static/1351574532011434453515/
什么是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
配置防火牆
打開/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=YES
- # (default follows)
- chroot_list_file=/etc/vsftpd/chroot_list
禁止匿名用戶訪問:
在文件末尾加如下的設置:
3、增加用戶ftpuser,指向目錄/home/wwwroot/ftpuser,禁止登錄SSH權限。
- useradd -d /home/wwwroot/ftpuser -g ftp -s /sbin/nologin ftpuser
4、設置用戶口令
- passwd ftpuser
5、編輯文件chroot_list:
- vi /etc/vsftpd/chroot_list
內容為ftp用戶名,每個用戶占一行,如:
peter
john
6、重新啟動vsftpd
- service vsftpd restart
但客戶端訪問提示如下錯誤:
500 OOPS: cannot change directory:/home/ftp
原因是他的CentOS系統安裝了SELinux,因為默認下是沒有開啟FTP的支持,所以訪問時都被阻止了。
//查看SELinux設置
# getsebool -a|grep ftp
ftp_home_dir-->off
//使用setsebool命令開啟
# setsebool ftp_home_dir 1
由於操作系統一旦重啟后,這種設置需要重新設置,這里使用-P參數實現.
//setsebool使用-P參數,無需每次開機都輸入這個命令
# setsebool -P ftp_home_dir 1