下載vsftp
ftp://vsftpd.beasts.org/users/cevans/
相關檔案或目錄
/etc/vsftpd/vsftpd.conf //vsftpd的設定檔
/etc/pam.d/vsftpd //PAM模組設定檔,身份認證之用
/etc/vsftpd.ftpusers //pam模組用來指定某user無法登入的設定檔
/etc/vsftpd.user_list //依vsftpd.conf內的userlist_enable, userlist_deny參數設定而有不同功能
/etc/vsftpd.chroot_list //將某帳號chroot 在他們的家目錄下,和vsftpd.conf內的chroot_list_enable, chroot_list_file參數相關
/usr/sbin/vsftpd //主要執行檔
/var/ftp/ //匿名使用者登入的根目錄
常用功能設定做法
不讓某帳號離開家目錄
修改vsftpd.conf
chroot_list_enable=yes //啟動chroot_list_file檔案的功能
chroot_list_file=/etc/vsftpd.chroot_list //列在裡面的使用者,無法離開家目錄
預設讓所有帳號不能離開家目錄,只有特定的帳號才行
chroot_local_user=yes
chroot_list_enable=yes //啟動chroot_list_file檔案的功能
chroot_list_file=/etc/vsftpd.chroot_list //列在裡面的使用者,可離開家目錄
……………………………….
vsftpd.conf
#表示預設不啟動
基本設定
#local_enable=yes //本地帳號可登入
#write_enable=yes //可寫入,上傳,修改,但匿名者除外
#idle_session_timeout=600 //逾期時間為600秒
#data_connection_timeout=120 //資料傳輸的timeout為2分鐘
以下需自行加入
listen=no //no為透過xintd執行,yes為獨立執行
download_enable=yes //是否可以下載伺服器檔案
dirlist_enable=yes //是否能用ls指令列出所有目錄中的檔案
check_shell=yes //是否檢查登入帳號的shell是否為合法
one_process_mode=no //專門讓2.4版kernel使用
use_sendfile=yes //對大量讀寫動作會有非常好的效能
tcp_wrappers=no //是否要支援此功能,但需在編譯時做設定
匿名登入設定
anonymous_enable=yes //接受匿名登入
#anon_upload_enable=yes //讓匿名帳號可上傳,但需指定一可寫入目錄
#anon_mkdir_write_enable=yes //讓匿名帳號可建立目錄
#chown_uploads=yes //將匿名登入者上傳的檔案,設定為chown_username
#chown_username=whoever //指定whoever帳號權限為匿名上傳的權限
以下需自行加入
#anon_otherwrite_enable=no //讓匿名者可以修改檔名,目錄
#anon_world_readable_only=yes //讓匿名者只可以讀
#no_anon_password=no //直進進入不需密碼
#anon_root=somedir //讓匿名者登入時自動切換到somedir目錄
#anon_max_rate=30000 //讓匿名者只使用30kb/s的速度
#anon_umask=077 //讓匿名者上傳的檔案權限變成300
ps,提供anonymous帳號前需:
1,在linux上建立名為ftp帳號
2,給予一家目錄,並設權限為755,擁有者為root
資料傳輸
connect_from_port_20=yes //要求資料傳輸都採用標準的port20
以下需自行加入
pasv_min_port=5000 //要求被動連線連生的port範圍
pasv_max_port=5500 //同上
max_per_ip=0 //listen=on時,限制單獨ip可有幾條連線,0表無限制
max_per_client=0 //listen=on時,限制同一時間可以有幾條連線,0為無限制
max_clients=10 //最多同時10人連進ftp
local_max_rate=0 //限制使用者頻寬,單位為bytes/second,0為無限制
anon_max_rate=0 //限制匿名者頻寬,其餘同上
虛擬帳號設定,需搭配pam認證
以下需自行加入
guest_username=ftp //使用虛擬帳號對應到的使用者名稱
guest_enable=no //
guest_username=/home/virtual/$user
user_sub_token=$user
virtual_use_local_privs=no //限定虛擬帳號是否使用linux特定帳號權限
記錄檔設定
xferlog_enable=yes //啟用記錄檔記錄所有上載與下載
#xferlog_file=/var/log/xferlog //網路上通用記錄格式的記錄檔儲存位置
#xferlog_std_format=yes //使用標準記錄格式
以下需自行加入
vsftpd_log_file=/var/log/vsftpd.log //vsftpd本身記錄,用vsftpdlog格式
dual_log_enable //同時記錄vsftpd.log及xferlog
syslog_enable //不使用這兩種格式記錄,而是送到syslog,會記錄登入者與其任何動作
安全設定
local_umask=022 //使用者將檔案上傳的權限都設成755,預設為700
chroot_local_user=no //是否讓系統上所有帳號都進行chroot,預設為no
#chroot_list_enable=no //是否啟動chroot_list_file檔案的功能,預設為no
#chroot_list_file=/etc/vsftpd.chroot_list //列在裡面的使用者,無法離開家目錄
userlist_enable=yes //是否啟動vsftpd的扺擋機制,預設為no
userlist_deny=yes //預設yes表示userlist_file內user不可用ftp,設no則只有檔案內user才可用ftp,(需啟用userlist_enable此參數才作用)
userlist_file=/etc/vstpd.user_list //userlist_deny的值是yes或no會影響該檔案內的user是否可用ftp
#deny_email_enable=yes //拒絕使用banned_email_file指定檔案中,以email為密碼的匿名登入
#banned_email_file=/etc/vsftpd.banned_emails
以下需自行加入
anon_umask=077 //匿名登入上傳檔時的權限
hide_file={*.doc,*.pass} //隱藏.doc和.pass的檔案
deny_file={*.doc} //拒絕存取.doc的檔案
force_dot_file=no //強制讓開頭的檔案顯示
訊息顯示
dirmessage_enable=yes //啟動個別目錄的個別化訊息功能
#ftpd_banner=string //設定使用者登入的歡迎訊息
以下需自行加入
banner_file=file_name //指定file_name的內容做為登入的歡迎訊息
message_file=.message //指定個別目錄的訊息檔案為.message
其他參數
#nopriv_user=ftpsecure //指定vsftp以較不具權限帳號執行
#async_abor_enable=yes //啟動abor指令支援
#ascii_upload_enable=yes //啟動ascii模式的上傳
#ascii_download_enable=yes //啟動ascii模式的下載
#ls_recurse_enable=yes //可用-R列出目錄下所有檔案名稱,預設為no