歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> VSFTPD配置詳解

VSFTPD配置詳解

日期:2017/2/25 10:39:34   编辑:Linux教程
  

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
默認情況下,在文件列表中,數字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

delay_failed_logins
在報告連接失敗前停留的秒數。
默認:1
delay_successful_logins
在允許一個成功連接前停留的秒數。
默認:0
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_login_fails
連接的最大失敗數,達到這個數值後,會話將被關閉。
默認:3
max_per_ip
如果vsftpd運行在獨立運行模式,這裡設置了容許一個ip地址的最大接入客戶端。如果超過了最大限制,將得到一個錯誤信息。
默認值:0(無限制)
pasv_max_port
指定為被動模式數據連接分配的最大端口。可用來指定一個較小的范圍以配合防火牆。
默認值:0(使用任何端口)
pasv_min_port
指定為被動模式數據連接分配的最小端口。可用來指定一個較小的范圍以配合防火牆。
默認值:0(使用任何端口)
trans_chunk_size
你一般不需要改這個設置。但也可以嘗試改為如8192去減小帶寬限制的影響。
默認值:0(讓vsftpd自行選擇)
======
字符串配置項
======
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證書就夠了)
dsa_private_key_file
這個選項指定了用於SSL加密連接的私匙所放的位置。如果這個選項沒有被設置,私匙被認為與認證放在同一個文件中。
默認:無
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/xferlog
Copyright © Linux教程網 All Rights Reserved