ftp鏈接方式有兩種,一種是PORT,也就是主動鏈接,一種是PASV,也就是被動模式。二者的具體區別就不講了,網上資料不少。html
咱們採用客戶端PASV被動模式linux
首先咱們配置linux系統的防火牆iptables(防火牆必定要配好,否則會致使鏈接不上報227 Entering Passive Mode (182,92,150,235,145,19).錯誤)web
一、編輯/etc/sysconfig/iptables-config文件,添加如下兩行:
shell
IPTABLES_MODULES="ip_conntrack_ftp" IPTABLES_MODULES="ip_nat_ftp"
請必定注意兩行內容的位置關係不要搞反了。若是將"ip_nat_ftp"放到前面是加載不到的。若是你的ftp服務是過路由或者防火牆(即內網映射方式必定須要此模塊)。以上等同於在加載iptables以前運行modprobe命令加載"ip_nat_ftp"和"ip_conntrack_ftp"模塊。服務器
二、iptables文件添加以下兩行:tcp
[root@a ~]# vi /etc/sysconfig/iptables -A -INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT -A -INPUT -p tcp -m state --state NEW -m tcp --sport 21 -j ACCEPT -A -OUTPUT -P tcp --dport 20 -j ACCEPT
三、檢查iptables文件是否存在如下行(默認是有的),如沒有則添加;編輯器
-A -INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
如今咱們開始配置vsftpspa
安裝vsftpdrest
一、以管理員(root)身份執行如下命令(yum安裝vsftp)code
yum install vsftpd
二、設置開機啓動vsftpd ftp服務
chkconfig vsftpd on
三、啓動vsftpd服務
service vsftpd start
管理vsftpd相關命令:
中止vsftpd: service vsftpd stop
重啓vsftpd: service vsftpd restart
默認的配置文件是/etc/vsftpd/vsftpd.conf,你能夠用文本編輯器打開。
vi /etc/vsftpd/vsftpd.conf
添加ftp用戶
下面是添加user用戶,設置根目錄爲/home/wwwroot/user,禁止此用戶登陸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
修改如下參數
anonymous_enable=NO //禁用匿名用戶登錄 local_enable=YES //開啓本地用戶登錄 userlist_enable=NO userlist_deny=YES
禁止用戶登陸目錄userlist_file=/etc/vsftpd.user_list 若上面userlist_deny=YES 這樣/etc/vsftpd.user_list就沒法登錄了
三、增長用戶ftpuser,指向目錄/home/wwwroot/ftpuser,禁止登陸SSH權限。
useradd -d /home/wwwroot/user -g ftp -s /sbin/nologin user
四、設置用戶口令
passwd ftpuser
五、編輯文件chroot_list:(用來禁止訪問用戶根目錄的上級目錄)
vi /etc/vsftpd/chroot_list
peter
john
六、從新啓動vsftpd
service vsftpd restart