格式
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客戶端要使用這一點。並且,這個功能又難於操做,因此,默認是把它關閉了。可是,有些客戶端在取消一個傳送的時候會被掛死(估計是客戶端無響應了),那你只有啓用這個功能才能避免這種狀況。
默認值:NO
background
啓用時,而且VSFTPD是「listen」模式啓動的(就是standalone模式),VSFTPD將把監聽進程置於後臺。但訪問VSFTPD時,控制檯將當即被返回到SHELL。
默認值:NO
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目錄,鎖定在虛根下(進入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 (但在範例配置文件中,啓用了,即YES)
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 (但在配置範例文件中啓用了它)
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文件系統共存時有用。 由於那在試圖鎖定LOG文件時,有時候看上去象被掛死(無響應)了。原文以下:It exists to workaround operating system bugs such as the Solaris / Veritas filesystem combination which has been observed to sometimes exhibit hangs trying to lock log files.)
默認值:NO
one_process_model
若是你的LINUX核心是2.4的,那麼也許能使用一種不一樣的安全模式,即一個鏈接只用一個進程。只是一個小花招,但能提升FTP的性能。請肯定須要後再啓用它,並且也請肯定你的站點是否會有大量的人同時訪問。
默認值:NO
passwd_chroot_enable
if enabled, along with .BR chroot_local_user , then a chroot() jail location may be specified on a per-user basis. Each user's jail is derived from their home directory string in /etc/passwd. The occurrence of /./ in the home directory string denotes that the jail is at that particular location in the path.
默認值:NO
pasv_enable
若是你不想使用被動方式得到數據鏈接,請設爲NO。
默認值:YES
pasv_promiscuous
若是你想關閉被動模式安全檢查(這個安全檢查能確保數據鏈接源於同一個IP地址)的話,設爲YES。肯定後再啓用它(原話是:只有你清楚你在作什麼時才啓用它!) 合理的用法是:在一些安全隧道配置環境下,或者更好地支持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
text_userdb_names
默認狀況下,在文件列表中,數字ID將被顯示在用戶和組的區域。你能夠編輯這個參數以使其使用數字ID變成文字。爲了保證FTP性能,默認狀況下,此項被關閉。
默認值:NO
tilde_user_enable
若是啓用,vsftpd將試圖解析相似於~chris/pics的路徑名(一個"~"(tilde)後面跟着個用戶名)。注意,vsftpd有時會一直解析路徑名"~"和"~/"(在這裏,~被解析成內部登陸目錄)。
~用戶路徑(~user paths)只有在當前虛根下找到/etc/passwd文件時才被解析。
默認值:NO
use_localtime
若是啓用,vsftpd在顯示目錄資源列表的時候,在顯示你的本地時間。而默認的是顯示GMT(格林尼治時間)。經過MDTM FTP命令來顯示時間的話也會被這個設置所影響。
默認值:NO
use_sendfile
一個內部設定,用來測試在你的平臺上使用sendfile()系統呼叫的相關好處(benefit).
默認:YES
userlist_deny
這個設置在userlist_enable被激活後能被驗證。若是你設置爲NO,那麼只有在userlist_file裏明確列出的用戶才能登陸。
若是是被拒絕登陸,那麼在被詢問密碼前,用戶就將被系統拒絕。
默認值:YES
userlist_enable
若是啓用,vsftpd將在userlist_file裏讀取用戶列表。若是用戶試圖以文件裏的用戶名登陸,那麼在被詢問用戶密碼前,他們就將被系統拒絕。
這將防止明文密碼被傳送。參見userlist_deny。
默認值:NO
virtual_use_local_privs
若是啓用,虛擬用戶將擁有和本地用戶同樣的權限。默認狀況下,虛擬用戶就擁有和匿名用戶同樣的權限,然後者每每有更多的限制(特別是寫權限)。
默認值:NO
write_enable
這決定是否容許一些FTP命令去更改文件系統。這些命令是STOR, DELE, RNFR, RNTO, MKD, RMD, APPE 和 SITE。
默認值:NO
xferlog_enable
若是啓用,一個log文件將詳細紀錄上傳和下載的信息。默認狀況下,這個文件是/var/log/vsftpd.log,但你也能夠經過更改vsftpd_log_file來指定其默認位置。
默認值:NO (但在範例配置文件中,啓用了這一項)
xferlog_std_format
若是啓用,log文件將以標準的xferlog格式寫入(wu-ftpd使用的格式),以便於你用現有的統計分析工具進行分析。但默認的格式具備更好的可讀性。默認狀況下,log文件是在/var/log/xferlog。可是,你能夠經過修改xferlog_file來指定新路徑。
默認值:NO
======
數字選項
如下是數字配置項。這些項必須設置爲非負的整數。爲了方便umask設置,容許輸入八進制數,那樣的話,數字必須以0開始。
accept_timeout
超時,以秒爲單位,設定遠程用戶以被動方式創建鏈接時最大嘗試創建鏈接的時間。
默認值:60
anon_max_rate
對於匿名用戶,設定容許的最大傳送速率,單位:字節/秒。
默認值:0 (無限制)
anon_umask
爲匿名用戶建立的文件設定權限。注意:若是你想輸入8進制的值,那麼其中的0不一樣於10進制的0。
默認值:077
connect_timeout
超時。單位:秒。是設定遠程用戶必須迴應PORT類型數據鏈接的最大時間。
默認值:60
data_connection_timeout
超時,單位:秒。設定數據傳輸延遲的最大時間。時間一到,遠程用戶將被斷開鏈接。
默認值:300
file_open_mode
對於上傳的文件設定權限。若是你想被上傳的文件可被執行,umask要改爲0777。
默認值:0666
ftp_data_port
設定PORT模式下的鏈接端口(只要connect_from_port_20被激活)。
默認值:20
idle_session_timeout
超時。單位:秒。設置遠程客戶端在兩次輸入FTP命令間的最大時間。時間一到,遠程客戶將被斷開鏈接。
默認值:300
listen_port
若是vsftpd處於獨立運行模式,這個端口設置將監聽的FTP鏈接請求。
默認值:21
local_max_rate
爲本地認證用戶設定最大傳輸速度,單位:字節/秒。
默認值:0(無限制)
local_umask
設置本地用戶建立的文件的權限。注意:若是你想輸入8進制的值,那麼其中的0不一樣於10進制的0。
默認值:077
max_clients
若是vsftpd運行在獨立運行模式,這裏設置了容許鏈接的最大客戶端數。再後來的用戶端將獲得一個錯誤信息。
默認值:0(無限制)
max_per_ip
若是vsftpd運行在獨立運行模式,這裏設置了容許一個IP地址的最大接入客戶端。若是超過了最大限制,將獲得一個錯誤信息。
默認值:0(無限制)
pasv_max_port
指定爲被動模式數據鏈接分配的最大端口。可用來指定一個較小的範圍以配合防火牆。
默認值:0(使用任何端口)
pasv_min_port
指定爲被動模式數據鏈接分配的最小端口。可用來指定一個較小的範圍以配合防火牆。
默認值:0(使用任何端口)
trans_chunk_size
你通常不須要改這個設置。但也能夠嘗試改成如8192去減少帶寬限制的影響。
默認值:0(讓vsftpd自行選擇)
===========
STRING 配置項
如下是STRING 配置項
anon_root
設置一個目錄,在匿名用戶登陸後,vsftpd會嘗試進到這個目錄下。若是失敗則略過。
默認值:無
banned_email_file
deny_email_enable啓動後,匿名用戶若是使用這個文件裏指定的E-MAIL密碼登陸將被拒絕。
默認值:/etc/vsftpd.banned_emails
banner_file
設置一個文本,在用戶登陸後顯示文本內容。若是你設置了ftpd_banner,ftpd_banner將無效。
默認值:無
chown_username
改變匿名用戶上傳的文件的全部者。需設定chown_uploads。
默認值:root
chroot_list_file
這個項提供了一個本地用戶列表,表內的用戶登陸後將被放在虛根下,並鎖定在home目錄。這須要chroot_list_enable項被啓用。
若是chroot_local_user項被啓用,這個列表就變成一個不將列表裏的用戶鎖定在虛根下的用戶列表了。
默認值:/etc/vsftpd.chroot_list
cmds_allowed
以逗號分隔的方式指定可用的FTP命令(post login. USER, PASS and QUIT 是始終可用的命令)。
其餘命令將被屏蔽。這是一個強有力的locking down一個FTP服務器的手段。例如:cmds_allowed=PASV,RETR,QUIT
默認值:無
deny_file
這能夠設置一個文件名或者目錄名式樣以阻止在任何狀況下訪問它們。並非隱藏它們,而是拒絕任何試圖對它們進行的操做(下載,改變目錄層,和其餘有影響的操做)。這個設置很簡單,並且不會用於嚴格的訪問控制-文件系統權限將優先生效。然而,這個設置對肯定的虛擬用戶設置頗有用。特別是若是一個文件能多個用戶名訪問的話(多是經過軟鏈接或者硬鏈接),那就要拒絕全部的訪問名。建議你爲使用文件系統權限設置一些重要的安全策略以獲取更高的安全性。如deny_file={*.mp3,*.mov,.private}
默認值:無
dsa_cert_file
這個設置爲SSL加密鏈接指定了DSA證書的位置。
默認值:無(有一個RSA證書就夠了)
email_password_file
在設置了secure_email_list_enable後,這個設置能夠用來提供一個備用文件。
默認值:/etc/vsftpd.email_passwords
ftp_username
這是用來控制匿名FTP的用戶名。這個用戶的home目錄是匿名FTP區域的根。
默認值:ftp
ftpd_banner
當一個鏈接首次接入時將現實一個歡迎界面。
默認值:無(默認的界面會被顯示)
guest_username
參見相關設置guest_enable。這個設置設定了遊客進入後,其將會被映射的名字。
默認:ftp
hide_file
設置了一個文件名或者目錄名列表,這個列表內的資源會被隱藏,不論是否有隱藏屬性。但若是用戶知道了它的存在,將可以對它進行徹底的訪問。hide_file裏的資源和符合hide_file指定的規則表達式的資源將被隱藏。vsftpd的規則表達式很簡單,例如hide_file={*.mp3,.hidden,hide*,h?}
默認值:無
listen_address
若是vsftpd運行在獨立模式下,本地接口的默認監聽地址將被這個設置代替。須要提供一個數字化的地址。
默認值:無
listen_address6
若是vsftpd運行在獨立模式下,要爲IPV6指定一個監聽地址(若是listen_ipv6被啓用的話)。須要提供一個IPV6格式的地址。
默認值:無
local_root
設置一個本地(非匿名)用戶登陸後,vsftpd試圖讓他進入到的一個目錄。若是失敗,則略過。
默認值:無
message_file
當進入一個新目錄的時候,會查找這個文件並顯示文件裏的內容給遠程用戶。dirmessage_enable需啓用。
默認值:.message
nopriv_user
這是vsftpd作爲徹底無特權的用戶的名字。這是一個專門的用戶,比nobody更甚。用戶nobody每每用來在一些機器上作一些重要的事情。
默認值:nobody
pam_service_name
設定vsftpd將要用到的PAM服務的名字。
默認值:ftp
pasv_address
當使用PASV命令時,vsftpd會用這個地址進行反饋。須要提供一個數字化的IP地址。
默認值:無(地址將取自進來(incoming)的鏈接的套接字)
rsa_cert_file
這個設置指定了SSL加密鏈接須要的RSA證書的位置。
默認值:/usr/share/ssl/certs/vsftpd.pem
secure_chroot_dir
這個設置指定了一個空目錄,這個目錄不容許ftp user寫入。在vsftpd不但願文件系統被訪問時,目錄爲安全的虛根所使用。
默認值: /usr/share/empty
ssl_ciphers
這個設置將選擇vsftpd爲加密的SSL鏈接所用的SSL密碼。詳細信息參見ciphers。
默認值:DES-CBC3-SHA
user_config_dir
這個強大的設置容許覆蓋一些在手冊頁中指定的配置項(基於單個用戶的)。用法很簡單,最好結合範例。若是你把user_config_dir
改成/etc/vsftpd_user_conf,那麼以chris登陸,vsftpd將調用配置文件/etc/vsftpd_user_conf/chris。
默認值:無
user_sub_token
這個設置將依據一個模板爲每一個虛擬用戶建立home目錄。例如,若是真實用戶的home目錄經過guest_username爲/home/virtual/$USER 指定,
而且user_sub_token設置爲 $USER ,那麼虛擬用戶fred登陸後將鎖定在/home/virtual/fred下。
默認值:無
userlist_file
當userlist_enable被激活,系統將去這裏調用文件。
默認值:/etc/vsftpd.user_list
vsftpd_log_file
只有xferlog_enable被設置,而xferlog_std_format沒有被設置時,此項才生效。這是被生成的vsftpd格式的log文件的名字。
dual_log_enable和這個設置不能同時啓用。若是你啓用了syslog_enable,那麼這個文件不會生成,而只產生一個系統log.
默認值:/var/log/vsftpd.log
xferlog_file
這個設置是設定生成wu-ftpd格式的log的文件名。只有啓用了xferlog_enable和xferlog_std_format後才能生效。
但不能和dual_log_enable同時啓用。
默認值:/var/log/xferlogshell