首先要先了解,
何為主動式連線(active)?
何為被動式連線(passive)?
這事關你防火牆的設定.
請參考FTP的主動模式及被動模式,圖示說明非常簡單
安裝,只需要一行指令
sudo yum install vsftpd -y
配置檔
vi /etc/vsftpd/vsftpd.conf
# 關閉預設的data connect port (預設在主動連線時server使用20port作data connection)
connect_from_port_20=NO
# 關閉匿名連線
anonymous_enable=NO
# 改變 umask 讓新增的檔案屬性為:777 - local_umask
local_umask=027
# 同時可有多少 client 連線
max_clients=20
# 單一ip可建連線數
max_per_ip=5
# 限制下載速度100K
local_max_rate=102400
# 修改連線 port 為 xxxx (預設21)
listen_port=xxxx
# 修改連線 data port 為 oooo (預設20)
ftp_data_port=oooo
# 開啟被動連線
pasv_enable=YES
# 接受被動模式下連入的port區段
pasv_min_port=start port number
pasv_max_port=end port number
# 以下兩種參數的設定,會依照其中某一參數設定值(chroot_list_enable, userlist_deny)而有完全不同的效果,需要注意
# 登入時是否直接切換到/home/user 的目錄
# 預設為NO,YES時,所有使用者不能切換家目錄
chroot_local_user=YES
# 預設為NO,若為YES時可設定特定使用者能否切換家目錄的權限,1. chroot_local_user=NO時,可特定使用者不能切換家目錄;2. chroot_local_user==YES時,則變成可設定使用者能切換家目錄
chroot_list_enable=YES
# 啟用chroot_list_enable時,在此設定名單,此檔可能需要手動新增
chroot_list_file=/etc/vsftpd/chroot_list
# 預設NO,若為YES時,可設定使用者是否允許登入
userlist_enable=YES
# 當userlist_enable=YES時此參數有效.
# 預設為YES,userlist_file內的使用者不能登入;若為NO時,userlist_file內的帳號才可以登入
userlist_deny=YES
# 此檔可能需要預設存在
userlist_file=/etc/vsftpd/user_list
[SSL設定]
為了加強安全性,可以設定SSL/TLS的傳輸方式,
請參考
[CentOS] vsFTPd Server 安裝 及 使用設定
作者需求上不需要,所以沒設定
配置防火牆
vi /etc/sysconfig/iptables
#vsftpd port
-A INPUT -i eth0 -p tcp --dport xxxx -j ACCEPT
-A OUTPUT -o eth0 -p tcp --sport xxxx -j ACCEPT
-A INPUT -i eth0 -p tcp --dport oooo -j ACCEPT
-A OUTPUT -o eth0 -p tcp --sport oooo -j ACCEPT
-A INPUT -p tcp --dport start port number:end port number-j ACCEPT
SELinux設置
SELinux可能會讓vsftpd無法切換家目錄,
查看
getsebool -a|grep ftp
ftp_home_dir-->off
使用setsebool命令開啟
setsebool -P ftp_home_dir 1
開啟服務
service vsftpd start
chkconfig vsftpd on
建立ftp使用者
useradd ftp_user_name
passwd ftp_user_name
輸入密碼2次
參考
鳥哥的 Linux 私房菜
centos vsftp 500 OOPS: cannot change directory
留言列表