2020-03-09 23:49:04 spawnshow

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
上面這一段註解掉即可。