VSFTPD配置方法詳解,希望對愛好Linux的朋友們有用。
格式
VSFTPD.conf 的格式非常簡單,每行要麼是一個注釋,要麼是一個指令。注釋行以#開始並被忽略掉。指令行格式如下:
配置項=參數值
很重要的一點是,這個格式裡不存在任何空格。
默認的,每一個配置項在配置文件裡都占一編輯行,可以被修改。 ======
布爾選項
======
參數值的布爾選項可以是:
YES或者NO
allow_anon_ssl
只有ss1_enable激活了才可以啟用此項。如果設置為YES,匿名用戶將容許使用安全的SSL連接服務器。
默認值:NO
anon_mkdir_write_enable
如果設為YES,匿名用戶將容許在指定的環境下創建新目錄。如果此項要生效,那麼配置write_enable必須被激活,並且匿名用戶必須在其父目錄有寫權限。
默認值:NO
anon_other_write_enable
如果設置為YES,匿名用戶將被授予較大的寫權限,例如刪除和改名。一般不建議這麼做,除非想完全授權。
默認值:NO
anon_upload_enable
如果設為YES,匿名用戶就容許在指定的環境下上傳文件。如果此項要生效,那麼配置write_enable必須激活。並且匿名用戶必須在相關目錄有寫權限。
默認值:NO
anon_world_readable_only
啟用的時候,匿名用戶只容許下載完全可讀的文件,這也就容許了ftp用戶擁有對文件的所有權,尤其是在上傳的情況下。
默認值:YES
anonymous_enable
控制是否容許匿名用戶登錄。如果容許,那麼“ftp”和“anonymous”都將被視為“anonymous"而容許登錄。
默認值:YES
ascii_download_enable
啟用時,用戶下載時將以ASCII模式傳送文件。
默認值:NO
ascii_upload_enable
啟用時,用戶上傳時將以ASCII模式傳送文件。
默認值:NO
async_abor_enable
啟用時,一個特殊的FTP命令"async ABOR”將容許使用。只有不正常的FTP客戶端要使用這一點。而且,這個功能又難於操作,所以,
默認是把它關閉了。但是,有些客戶端在取消一個傳送的時候會被掛死(daidong注:估計是客戶端無響應了),那你只有啟用這個功能才能避免這種情況。
默認值:NO
background
啟用時,並且VSFTPD是“listen”模式啟動的(就是standalone模式),VSFTPD將把監聽進程置於後台。但訪問VSFTPD時,控制台將立即被返回到SHELL。
默認值:YES
check_shell
注意:這個選項只對非PAM結構的VSFTPD才有效。如果關閉,VSFTPD將不檢查/etc/shells以判定本地登錄的用戶是否有一個可用的SHELL。
默認值:YES
chmod_enable
啟用時,將容許使用SITE CHMOD命令。注意,這只能用於本地用戶。匿名用戶絕不能使用SITE CHMOD。
默認值:YES
chown_uploads
如果啟用,所以匿名用戶上傳的文件的所有者將變成在chown_username裡指定的用戶。這對管理FTP很有用,也許也對安全有益。
默認值:NO
chroot_list_enable
如果激活,你要提供一個用戶列表,表內的用戶將在登錄後被放在其home目錄,鎖定在虛根下(daidong注:進入FTP後,PWD一下,可以看到當前目錄是"/",這就是虛根。是FTP的根目錄,並非FTP服務器系統的根目錄)。如果chroot_local_user設為YES後,其含義會發生一點變化。
在這種情況下,這個列表內的用戶將不被鎖定在虛根下。
默認情況下,這個列表文件是/etc/vsftpd.chroot_list, 但你也可以通過修改chroot_list_file來改變默認值。
默認值:NO
chroot_local_user
如果設為YES,本地用戶登錄後將被(默認地)鎖定在虛根下,並被放在他的home目錄下。
警告:
這個配置項有安全的意味,特別是如果用戶有上傳權限或者可使用SHELL的話。在你確定的前提下,再啟用它。
注意,這種安全暗示並非只存在於VSFTPD,其實是廣泛用於所有的希望把用戶鎖定在虛根下的FTP軟件。
默認值:NO
connect_from_port_20
這用來控制服務器是否使用20端口號來做數據傳輸。為安全起見,有些客戶堅持啟用。相反,關閉這一項可以讓VSFTPD更加大眾化。
默認值:NO
deny_email_enable
如果激活,你要提供一個關於匿名用戶的密碼E-MAIL表(我們都知道,匿名用戶是用郵件地址做密碼的)以阻止以這些密碼登錄的匿名用戶。
默認情況下,這個列表文件是/etc/vsftpd.Banner_emails,但你也可以通過設置banned_email_file來改變默認值。
默認值:NO
dirlist_enable
如果設置為NO,所有的列表命令(如ls)都將被返回“permission denied”提示。
默認值:YES
dirmessage_enable
如果啟用,FTP服務器的用戶在首次進入一個新目錄的時候將顯示一段信息。默認情況下,會在這個目錄中查找.message文件,但你也可以通過更改message_file來改變默認值。
默認值:NO (但在配置范例文件中啟用了它)
download_enable
如果設為NO,下載請求將返回“permission denied”。
默認值:YES
dual_log_enable
如果啟用,兩個LOG文件會各自產生,默認的是/var/log/xferlog和/var/log/vsftpd.log。前一個是wu-ftpd格式的LOG,能被通用工具分析。後一個是VSFTPD的專用LOG格式。
默認值: NO
force_dot_files
如果激活,即使客戶端沒有使用“a”標記,(FTP裡)以.開始的文件和目錄都會顯示在目錄資源列表裡。但是把"."和".."不會顯示。(即Linux下的當前目錄和上級目錄不會以‘.’或‘..’方式顯示)。
默認值:NO
force_local_data_ssl
只有在ssl_enable激活後才能啟用。如果啟用,所有的非匿名用戶將被強迫使用安全的SSL登錄以在數據線路上收發數據。
默認值:YES
force_local_logins_ssl
只有在ssl_enable激活後才能啟用。如果啟用,所有的非匿名用戶將被強迫使用安全的SSL登錄以發送密碼。
默認值:YES
guest_enable
如果啟用,所有的非匿名用戶登錄時將被視為”游客“,其名字將被映射為guest_username裡所指定的名字。
默認值:NO
hide_ids
如果啟用,目錄資源列表裡所有用戶和組的信息將顯示為"ftp".
默認值:NO
listen
如果啟用,VSFTPD將以獨立模式(standalone)運行,也就是說可以不依賴於inetd或者類似的東東啟動。直接運行VSFTPD的可執行文件一次,然後VSFTPD就自己去監聽和處理連接請求了。
默認值:NO
listen_ipv6
類似於listen參數的功能,但有一點不同,啟用後VSFTPD會去監聽IPV6套接字而不是IPV4的。這個設置和listen的設置互相排斥。
默認值:NO
local_enable
用來控制是否容許本地用戶登錄。如果啟用,/etc/passwd裡面的正常用戶的賬號將被用來登錄。
默認值:NO
lock_upload_files
當被激活,所有的上傳文件都會具有一個寫鎖。所有的下載文件都會具有一個共享的讀鎖。警告!在激活此選項之前,要注意的是惡意的讀用戶會讓對文件進行添加的寫用戶權限太大。
默認:NO
log_ftp_protocol
啟用後,如果xferlog_std_format沒有被激活,所有的FTP請求和反饋信息將被紀錄。這常用於調試(debugging)。
默認值:NO
ls_recurse_enable
如果啟用,"ls -R"將被容許使用。這是為了避免一點點安全風險。因為在一個大的站點內,在目錄頂層使用這個命令將消耗大量資源。
默認值:NO
no_anon_password
如果啟用,VSFTPD將不會向匿名用戶詢問密碼。匿名用戶將直接登錄。
默認值:NO
no_log_lock
啟用時,VSFTPD在寫入LOG文件時將不會把文件鎖住。這一項一般不啟用。它對一些工作區操作系統問題,如Solaris / Veritas文件系統共存時有用。在這種情況下當試圖鎖住日志文件時有時會出現掛起的現象。
默認值:NO
one_process_model
如果你的Linux核心是2.4的,那麼也許能使用一種不同的安全模式,即一個連接只用一個進程。只是一個小花招,但能提高FTP的性能。請確定需要後再啟用它,而且也請確定你的站點是否會有大量的人同時訪問。
默認值:NO
passwd_chroot_enable
如果連同chroot_local_user一起被激活,那麼虛根用戶的位置根據不同的用戶而確定。每個用戶虛根位置是從/etc/passwd中的父目錄字符串中獲取的。
默認值:NO
pasv_addr_resolve
如果你想在pasv_address選項中使用主機名,就要激活它。
默認:NO
pasv_enable
如果你不想使用被動方式獲得數據連接,請設為NO。
默認值:YES
pasv_promiscuous
如果你想關閉被動模式安全檢查(這個安全檢查能確保數據連接源於同一個IP地址)的話,設為YES。確定後再啟用它(daidong注:原話是:只有你清楚你在做什麼時才啟用它!)
合理的用法是:在一些安全隧道配置環境下,或者更好地支持FXP時(才啟用它)。
默認值:NO
port_enable
如果你想關閉以端口方式獲得數據連接時,請關閉它。
默認值:YES
port_promiscuous
如果你想關閉端口安全檢查(這個檢查可以確保對外的(outgoing)數據線路只通向客戶端)時,請關閉它。確認後再做!
默認值:NO
run_as_launching_user
如果你想讓一個用戶能啟動VSFTPD的時候,可以設為YES。當ROOT用戶不能去啟動VSFTPD的時候會很有用(應該不是說ROOT用戶沒有權限啟動VSFTPD,而是因為別的,例如安全限制,而不能以ROOT身份直接啟動VSFTPD)。強烈警告!!別啟用這一項,除非你完全清楚你在做什麼!隨意地啟動這一項會導致非常嚴重的安全問題,特別是VSFTPD沒有或者不能使用虛根技術來限制文件訪問的時候(甚至VSFTPD是被ROOT啟動的)。有一個愚蠢的替代方案是啟用deny_file,將其設置為{/*,*..*}等,但其可靠性卻不能和虛根相比,也靠不住。如果啟用這一項,其他配置項的限制也會生效。例如,非匿名登錄請求,上傳文件的所有權的轉換,用於連接的20端口和低於1024的監聽端口將不會工作。其他一些配置項也可能被影響。
默認值:NO
secure_email_list_enable
如果你想只接受以指定E-MAIL地址登錄的匿名用戶的話,啟用它。這一般用來在不必要用虛擬用戶的情況下,以較低的安全限制去訪問較低安全級別的資源。如果啟用它,匿名用戶除非用在email_password_file裡指定的E-MAIL做為密碼,否則不能登錄。這個文件的格式是一個密碼一行,而且沒有多余的空格。
默認的文件名是:/etc/vsftpd.email_passwords.
默認值:NO
session_support
這將配置是否讓VSFTPD去嘗試管理登錄會話。如果VSFTPD管理會話,它會嘗試並更新utmp和wtmp。它也會打開一個pam會話(pam_session),直到LOGOUT才會關閉它,如果使用PAM進行認證的話。如果你不需要會話紀錄,或者想VSFTPD運行更少的進程,或者讓它更大眾化,你可以關閉它。注:utmp和wtmp只在有PAM的環境下才支持。
默認值:NO
setproctitle_enable
如果啟用,VSFTPD將在系統進程列表中顯示會話狀態信息。換句話說,進程名字將變成VSFTPD會話當前正在執行的動作(等待,下載等等)。為了安全目的,你可以關閉這一項。
默認值:NO
ssl_enable
如果啟用,vsftpd將啟用openSSL,通過SSL支持安全連接。這個設置用來控制連接(包括登錄)和數據線路。同時,你的客戶端也要支持SSL才行。
注意:小心啟用此項.VSFTPD不保證OpenSSL庫的安全性。啟用此項,你必須確信你安裝的OpenSSL庫是安全的。
默認值:NO
ssl_sslv2
要激活ssl_enable才能啟用它。如果啟用,將容許SSL V2協議的連接。TLS V1連接將是首選。
默認值:NO
ssl_sslv3
要激活ssl_enable才能啟用它。如果啟用,將容許SSL V3協議的連接。TLS V1連接將是首選。
默認值:NO
ssl_tlsv1
要激活ssl_enable才能啟用它。如果啟用,將容許TLS V1協議的連接。TLS V1連接將是首選。
默認值:YES
syslog_enable
如果啟用,系統log將取代vsftpd的log輸出到/var/log/vsftpd.log.FTPD的了log工具將不工作。
默認值:NO
tcp_wrappers
如果啟用,vsftpd將被tcp_wrappers所支持。進入的(incoming)連接將被tcp_wrappers訪問控制所反饋。如果tcp_wrappers設置了VSFTPD_LOAD_CONF環境變量,那麼vsftpd將嘗試調用這個變量所指定的配置。
默認值:NO
(注意:設置vsftpd是否與tcp wrapper相結合來進行主機的訪問控制。默認值為YES。如果啟用,則vsftpd服務器會檢查/etc/hosts.allow 和/etc/hosts.deny 中的設置,來決定請求連接的主機,是否允許訪問該Ftp服務器。這兩個文件可以起到簡易的防火牆功能。)
text_userdb_names