Centos 6 + vsftpd 安裝教學(可適用在google cloud上)
1.安裝 vsftpd軟體:
# yum -y install vsftpd
2.設定vsftpd:
# vi /etc/vsftpd/vsftpd.conf
修改內容如下:先註解掉原檔案所有設定條件後,新增以下條件
=======================================
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=000 //單一帳號連線使用可以設定成022,多個帳號要上下載檔案設定000就是最大權限。
connect_from_port_20=YES
xferlog_enable=YES
xferlog_std_format=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
pasv_min_port=5000
pasv_max_port=9000
pasv_addr_resolve=NO
pasv_address=主機外網IP位置
##被動模式從外網是有可能連不上的。因為ftp連上後,vsftpd將會把本機的內網IP地址傳回給客戶端,客戶端連不上內網IP。
##所以設定這兩項設定檔『pasv_addr_resolve=NO』、『pasv_address=主機外網IP位置』
=======================================
3.建立連FTP之帳號密碼:
#useradd ftpuser
#passwd ftpuser //後輸入密碼
設定POS帳號無法使用SSH登入系統:
#vi /etc/passwd
=======================================
ftpuser 後的路徑改成[::/ftp:/sbin/nologin
=======================================
PS: /ftp ==> 為之後連線FTP的『/』目錄。
建立ftp路徑:
#mkdir /ftp
修改/ftp/權限:
#chmod 777 /ftp
5.修改防火牆設定:
所以看起來是防火牆的問題,在防火牆底下架 ftp 其實是比較麻煩,因為必須特別為 passive mode 開port 出來,不過,vsftpd 的設定其實已經人性很多了,順便把設定步驟記下來,下次也許換我用得上!
在設定檔案中 vsftpd.conf 如有以下設定
pasv_min_port=5000
pasv_max_port=9000
編輯 防火牆的規則 (CentOS 是編輯 /etc/sysconfig/iptables,把藍色行加在適當的位置)
=======================================
-A INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 5000:9000 -j ACCEPT
=======================================
6.vsftp其他可能連線異常的問題排除:
<A> 關閉 SELinux:
#vi /etc/sysconfig/selinux
將 SELINUX=enforcing 改成 SELINUX=disabled ,重開機就可以了
<B> vsftpd 530 Login incorrect 方法:
只需要把/etc/pam.d/vsftpd文件中的
auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
上面這一段註解掉即可。