- 安裝 vsftpd
yum install vsftpd - 編輯 vsftpd 設定檔
vi /etc/vsftpd/vsftpd.conf
伺服器環境有關的設定:
use_localtime=YES
connect_from_port_20=YES
listen=YES #使用 stand alone 方式啟動 vsftpd
ftpd_banner=文字說明
banner_file=/path/file #指定純文字檔作為使用者登入伺服器時所顯示的歡迎訊息connect_timeout=60
data_connection_timeout=300
idle_session_timeout=300max_clients=10 #設定同一時間,最多有多少 client
max_per_ip=3 #同一個 IP 同一時間可允許多少連線
local_max_rate=1000000 #限制實體用戶的下載流量,單位是 bytes/secondpasv_enable=YES
pasv_min_port=65400
pasv_max_port=65410
#使用 65400 到 65410 這 11 個 port 來進行被動式連線模式的連接anonymous_enable=NO #不允許 anonymous 登入我們的 vsftpd 主機
ascii_download_enable=YES #如果設定為 YES ,那麼 client 就優先 (預設) 使用 ASCII 格式下載檔案
ascii_upload_enable=YES #與上一個設定類似,只是這個設定針對上傳tcp_wrappers=YES #如為 YES 可以設定 /etc/hosts.allow 與 /etc/hosts.deny
xferlog_enable=YES #使用者上傳與下載檔案都會被紀錄起來xferlog_file=/var/log/xferlog #如果上一個 xferlog_enable=YES 的話,這裡就可以設定登錄檔的檔名
xferlog_std_format=NO #是否設定為 wu ftp 相同的登錄檔格式dual_log_enable=YES,
vsftpd_log_file=/var/log/vsftpd.log
nopriv_user=nobody #預設以 nobody 作為此一服務執行者的權限,入侵者僅能取得 nobody 的權限pam_service_name=vsftpd #這個是 pam 模組的名稱,放置在 /etc/pam.d/vsftpd
實體用戶相關的資訊:
local_enable=YES #支援本地端的實體用戶登入
write_enable=YES
local_umask=002 #建立新目錄與檔案的權限userlist_enable=YES #藉助 vsftpd 的抵擋機制來處理某些不受歡迎的帳號
userlist_deny=YES #當 userlist_enable=YES 時才會生效的設定
userlist_file=/etc/vsftpd/user_list #若上面 userlist_deny=YES 時,則這個檔案就有用處了!在這個檔案內的帳號都無法使用 vsftpdchroot_local_user=YES #是否要將使用者限制在自己的家目錄之內
chroot_list_enable=YES #是否啟用 chroot 寫入列表的功能
chroot_list_file=/etc/vsftpd.chroot_list #如果 chroot_list_enable=YES 那麼就可以設定這個項目 - /etc/pam.d/vsftpd
vsftpd 使用 PAM 模組時的相關設定檔
主要用來作為身份認證之用,還有一些使用者身份的抵擋功能,也是透過這個檔案來達成的。
vi /etc/pam.d/vsftpd - /etc/vsftpd/ftpusers
與上一個檔案有關係,也就是 PAM 模組 (/etc/pam.d/vsftpd) 所指定的那個無法登入的使用者設定檔啊! 這個檔案的設定很簡單,你只要將『不想讓他登入 FTP 的帳號』寫入這個檔案即可。
vi /etc/vsftpd/ftpusers - 建立限制系統帳號登入的檔案
/etc/vsftpd/ftpusers:就是 /etc/pam.d/vsftpd 這個檔案的設定所影響的
/etc/vsftpd/user_list:由 vsftpd.conf 的 userlist_file 所設定
/etc/vsftpd/user_list
這個檔案是否能夠生效與 vsftpd.conf 內的 『 userlist_enable, userlist_deny 參數有關
/etc/vsftpd/chroot_list
這個檔案要生效與 vsftpd.conf 內的『 chroot_list_enable, chroot_list_file 』參數有關,檔案預設是不存在的,必須要手動自行建立。這兩個檔案的內容是一樣的哩~並且這兩個檔案必須要存在才行。請參考 /etc/passwd 設定檔, 然後將 UID 小於 500 的帳號名稱同時寫到這兩個檔案內一行一個帳號!
- /usr/sbin/vsftpd
這就是 vsftpd 的主要執行檔 - /var/ftp/
vsftpd 的預設匿名者登入的根目錄 - 啟動 vsftpd
service vsftpd start
netstat -tulnp| grep 21
chkconfig vsftpd on - 防火牆設定:
vi /etc/sysconfig/iptables
加入 iptables 的規則
iptables -A INPUT -i eth0 -p tcp –dport 20:21 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp –dport 65400:65410 -j ACCEPTvi /etc/sysconfig/iptables-config
IPTABLES_MODULES="ip_nat_ftp ip_conntrack_ftp"# 加入模組即可!兩個模組中間有空白鍵隔開!/etc/init.d/iptables restart #重新啟動 iptables
- 常見問題:
1.如果在 Client 端上面發現無法連線成功
iptables 防火牆的規則當中,是否開放了 client 端的 port 21
2.如果 Client 無法上傳檔案
vi /etc/vsftpd/vsftpd.conf 加上這個設定『write_enable=YES』 - 加入 /var/log/vsftpd.log 的支援
vi /etc/vsftpd/vsftpd.conf
加入
dual_log_enable=YES
vsftpd_log_file=/var/log/vsftpd.log/etc/init.d/vsftpd restart - 查看Log記錄:
vi /var/log/vsftpd.log
vi /var/log/messages
vi /var/log/xferlog
-
近期文章
分類
其它
彙整
近期迴響