vsftpd配置文件詳解
(擴展版)
通過一個月的資料查閱和大量的實驗排查,加上週末兩天的集中整理,根據本身的工做經驗終於寫出了這個比較完整的vsftpd參數擴展版。這一版本除了默認vsftp配置文件中有的還有一些vsftp配置文件中沒有的語句參數。你們能夠注意一下,文章中文字背景爲深綠色的爲默認配置文件中的語句,其餘的爲有效的擴展vsftp配置語句,但願你們能夠在配置vsftp服務器的過程當中加以靈活應用這些配置語句,以實現vsftp服務器更高的性能和效果。因爲平時工做比較忙加上時間比較倉促和理解上的差異,在整理總結的過程當中不免會出現bug,請你們發現後及時在留言中加以糾正!
1、vsftpd黑名單
2、
配置文件格式
及意義說明
:
vsftpd.
c
onf
爲vsftpd服務的主要配置文件,也能夠成爲核心配置文件。其
內容
和格式很是簡單明瞭
,每一行
語句
即爲一項設定
,便可控制服務的一項功能
。如果空白行或
着
是開頭爲
‘
#
’號
的一行,將會被忽略
,即不起任何做用
。內容的格式只有一種,
即‘語句選項=參數值’好比:
option=value
。其中option爲語句選項,value爲參數值。
要注意的是等號兩邊不能加
空格
。
3、
匿名用戶(anonymous)
設置相關語句:
anonymous_enable=YES/NO
控制是否容許匿名用戶登入,YES 爲容許匿名登入,NO 爲不容許。默認值爲YES。
write_enable=YES/NO
是否容許登錄用戶有寫權限。屬於全局設置,默認值爲YES。
no_anon_password=YES/NO
如果啓動這項功能,則使用匿名登入時,不會詢問密碼。默認值爲NO。
ftp_username=ftp
定義匿名登入的使用者名稱。默認值爲ftp。
anon_root=/var/ftp
使用匿名登入時,所登入的目錄。默認值爲/var/ftp。注意ftp目錄不能是777的權限屬性,即匿名用戶的家目錄不能有777的權限。
anon_upload_enable=YES/NO
若是設爲YES,則容許匿名登入者有上傳文件(非目錄)的權限,只有在write_enable=YES時,此項纔有效。固然,匿名用戶必需要有對上層目錄的寫入權。默認值爲NO。
anon_world_readable_only=YES/NO
若是設爲YES,則容許匿名登入者下載可閱讀的檔案(能夠下載到本機閱讀,不能直接在FTP服務器中打開閱讀)。默認值爲YES。
anon_mkdir_write_enable=YES/NO
若是設爲YES,則容許匿名登入者有新增目錄的權限,只有在write_enable=YES時,此項纔有效。固然,匿名用戶必需要有對上層目錄的寫入權。默認值爲NO。
anon_other_write_enable=YES/NO
若是設爲YES,則容許匿名登入者更多於上傳或者創建目錄以外的權限,譬如刪除或者重命名。(若是 anon_upload_enable=NO,則匿名用戶不能上傳文件,但能夠刪除或者重命名已經存在的文件;若是 anon_mkdir_write_enable=NO,則匿名用戶不能上傳或者新建文件夾,但能夠刪除或者重命名已經存在的文件夾。)默認值爲NO。
chown_uploads=YES/NO
設置是否改變匿名用戶上傳文件(非目錄)的屬主。默認值爲NO。
chown_username=username
設置匿名用戶上傳文件(非目錄)的屬主名。建議不要設置爲root。
anon_umask=077
設置匿名登入者新增或上傳檔案時的umask 值。默認值爲077,則新建檔案的對應權限爲700。
deny_email_enable=YES/NO
如果啓動這項功能,則必須提供一個檔案/etc/vsftpd/banner_emails,內容爲email address。如果使用匿名登入,則會要求輸入email address,若輸入的email address 在此檔案內,則不容許進入。默認值爲NO。
banned_email_file=/etc/vsftpd/banner_emails
此文件用來輸入email address,只有在deny_email_enable=YES時,纔會使用到此檔案。如果使用匿名登入,則會要求輸入email address,若輸入的email address 在此檔案內,則不容許進入。
4、
本地用戶
設置相關語句:
本地用戶的登陸名爲本地
系統用戶
,口令爲此本地
系統
用戶的口令;本地
系統
用戶能夠在本身家目錄中進行讀寫操做;本地用戶能夠離開自家目錄切換至有權限訪問的其餘目錄,並在權限容許的狀況下進行上傳/下載
,本地用戶的詳細配置方法請見:
《
RHEL4- FTP服務(四)配置本地用戶訪問VSFTP服務器
》
。
local_enable=YES/NO
控制是否容許本地用戶登入,YES 爲容許本地用戶登入,NO爲不容許。默認值爲YES。
local_root=/home/username
當本地用戶登入時,將被更換到定義的目錄下。默認值爲各用戶的家目錄。
write_enable=YES/NO
是否容許登錄用戶有寫權限。屬於全局設置,默認值爲YES。
local_umask=022
本地用戶新增檔案時的umask 值。默認值爲077。
file_open_mode=0755
本地用戶上傳檔案後的檔案權限,與chmod 所使用的數值相同。默認值爲0666。
5、
虛擬用戶
設置相關語句:
虛擬用戶使用PAM認證方式。
pam_service_name=vsftpd
設置PAM使用的名稱,默認值爲/etc/pam.d/vsftpd。
check_shell=YES
(注意:
僅在沒有pam驗證版本時有用,是否檢查用戶有一個有效的shell來登陸
)
guest_enable= YES/NO
啓用虛擬用戶。默認值爲NO。
guest_username=ftp
這裏用來映射虛擬用戶。默認值爲ftp。
virtual_use_local_privs=YES/NO
當該參數激活(YES)時,虛擬用戶使用與本地用戶相同的權限。當此參數關閉(NO)時,虛擬用戶使用與匿名用戶相同的權限。默認狀況下此參數是關閉的(NO)。
6、歡迎語設置相關語句:
dirmessage_enable=YES/NO
若是啓動這個選項,那麼使用者第一次進入一個目錄時,會檢查該目錄下是否有.message這個檔案,若是有,則會出現此檔案的內容,一般這個檔案會放置歡迎話語,或是對該目錄的說明。默認值爲開啓。
message_file=.message
設置目錄消息文件,可將要顯示的信息寫入該文件。默認值爲.message。
banner_file=/etc/vsftpd/banner
當使用者登入時,會顯示此設定所在的檔案內容,一般爲歡迎話語或是說明。默認值爲無。若是歡迎信息較多,則使用該配置項。
ftpd_banner=Welcome to BOB's FTP server
這裏用來定義歡迎話語的字符串,banner_file是檔案的形式,而ftpd_banner 則是字符串的形式。預設爲無。
7、控制用戶是否容許切換到其餘目錄設置相關語句:
在默認配置下,本地用戶登入FTP後可使用cd命令切換到其餘目錄,這樣會對系統帶來安全隱患。能夠經過如下三條配置文件來控制用戶切換目錄。
chroot_list_enable=YES/NO
設置是否啓用chroot_list_file配置項指定的用戶列表文件。
若是啓動這項功能,則全部列在chroot_list_file之中的使用者不能更改根目錄 .
默認值爲
yes
。
chroot_list_file=/etc/vsftpd.chroot_list
指出被鎖定在自家目錄中的用戶的列表文件。文件格式爲一行一用戶。一般該文件是/etc/vsftpd/chroot_list。此選項默認不設置。
。
chroot_local_user=YES/NO
用於指定用戶列表文件中的用戶是否容許切換到上級目錄。默認值爲NO。
經過
與
chroot_list_enable=YES/NO
搭配能實現如下幾種效果:
一、
當chroot_list_enable=YES,chroot_local_user=YES時,在/etc/vsftpd.chroot_list文件中列出的用戶,能夠切換到其餘目錄;未在文件中列出的用戶,不能切換到其餘目錄。
二、
當chroot_list_enable=YES,chroot_local_user=NO時,在/etc/vsftpd.chroot_list文件中列出的用戶,不能切換到其餘目錄;未在文件中列出的用戶,能夠切換到其餘目錄。
三、
當chroot_list_enable=NO,chroot_local_user=YES時,全部的用戶均不能切換到其餘目錄。
四、
當chroot_list_enable=NO,chroot_local_user=NO時,全部的用戶都可以切換到其餘目錄。
8、
數據傳輸模式
設置相關語句:
FTP在傳輸數據時,可使用二進制方式,也可使用ASCII模式來上傳或下載數據。
ascii_upload_enable=YES/NO
設置是否啓用ASCII 模式上傳數據。默認值爲NO。
ascii_download_enable=YES/NO
設置是否啓用ASCII 模式下載數據。默認值爲NO。
9、訪問控制設置相關語句:
兩種控制方式:一種控制主機訪問,另外一種控制用戶訪問。
一、
控制主機訪問:
tcp_wrappers=YES/NO
設置vsftpd是否與tcp wrapper相結合來進行主機的訪問控制。默認值爲YES。若是啓用,則vsftpd服務器會檢查/etc/hosts.allow 和/etc/hosts.deny 中的設置,來決定請求鏈接的主機,是否容許訪問該FTP服務器。這兩個文件能夠起到簡易的防火牆功能。
好比:若要僅容許192.168.
10
.1—192.168.
1
0.254的用戶能夠鏈接FTP服務器,則在/etc/hosts.allow文件中添加如下內容:
vsftpd:192.168.
1
0. :allow
all:all :deny
二、
控制用戶訪問:
對於用戶的訪問控制能夠經過/etc目錄下的vsftpd.user_list和ftpusers文件來實現。
userlist_file=/etc/vsftpd.user_list
控制用戶訪問FTP的文件,裏面寫着用戶名稱。一個用戶名稱一行。
userlist_enable=YES/NO
是否啓用vsftpd.user_list文件。
userlist_deny=YES/NO
secure_chroot_dir=/usr/share/empty
這
個選項必須指定一個空的數據夾且任何登入
用戶
都不能有寫入的權限,當vsftpd 不須要file system
(
訪問文件系統
)
的權限時,
這個目錄將被做爲一個安全的容器,用戶將被限制在此目錄中。
默認值爲/usr/share/empty
。
10、
訪問速率
設置相關語句:
anon_max_rate=0
設置匿名登入者使用的最大傳輸速度,單位爲B/s,0 表示不限制速度。默認值爲0。
local_max_rate=0
本地用戶使用的最大傳輸速度,單位爲B/s,0 表示不限制速度。預設值爲0。
11、超時時間設置相關語句:
accept_timeout=60
設置創建FTP鏈接的超時時間,單位爲秒。默認值爲60。
connect_timeout=60
PORT 方式下創建數據鏈接的超時時間,單位爲秒。默認值爲60。
data_connection_timeout=120
設置創建FTP數據鏈接的超時時間,單位爲秒。默認值爲120。
idle_session_timeout=
600
設置多長時間不對FTP服務器進行任何操做,則斷開該FTP鏈接,單位爲秒。默認值爲300 。
12、
日誌文件
設置相關語句:
xferlog_enable= YES/NO
是否啓用上傳/下載日誌記錄。若是啓用,則上傳與下載的信息將被完整紀錄在xferlog_file 所定義的檔案中。預設爲開啓。
xferlog_file=/var/log/vsftpd.log
設置日誌文件名和路徑,默認值爲/var/log/vsftpd.log。
xferlog_std_format=YES/NO
若是啓用,則日誌文件將會寫成xferlog的標準格式,如同wu-ftpd 通常。默認值爲關閉。
log_ftp_protocol=YES
\
NO
若是啓用此選項,全部的FTP請求和響應都會被記錄到日誌中,默認日誌文件在/var/log/vsftpd.log。啓用此選項時,xferlog_std_format不能被激活。這個選項有助於調試。默認值爲NO。
十3、自定義用戶個性化
配置文件
設置相關語句:
在vsftpd中,能夠經過定義用戶配置文件來實現不一樣的用戶使用不一樣的配置。
user_config_dir=/etc/vsftpd/userconf
設置用戶配置文件所在的目錄。當設置了該配置項後,用戶登錄服務器後,系統就會到/etc/vsftpd/userconf目錄下,讀取與當前用戶名相同的文件,並根據文件中的配置命令,對當前用戶進行更進一步的配置。
十4、
FTP的工做方式與端口設置
相關語句:
FTP有兩種工做方式:PORT FTP(主動模式)和PASV FTP(被動模式)
listen_port=21
設置FTP服務器創建鏈接所監聽的端口,默認值爲21。
connect_from_port_20=YES/NO
指定FTP使用20端口進行數據傳輸,默認值爲YES。
ftp_data_port=20
設置在PORT方式下,FTP數據鏈接使用的端口,默認值爲20。
pasv_enable=YES/NO
若設置爲YES,則使用PASV工做模式;若設置爲NO,則使用PORT模式。默認值爲YES,即便用PASV工做模式。
pasv_max_port=0
在PASV工做模式下,數據鏈接可使用的端口範圍的最大端口,0 表示任意端口。默認值爲0。
pasv_min_port=0
在PASV工做模式下,數據鏈接可使用的端口範圍的最小端口,0 表示任意端口。默認值爲0。
十5、
鏈接
控制設置相關語句:
listen=YES/NO
設置vsftpd服務器是否以standalone模式運行。以standalone模式運行是一種較好 的方式,此時listen必須設置爲YES,此爲默認值。建議不要更改,有不少與服務器運行相關的配置命令,須要在此模式下才有效。若設置爲NO,則 vsftpd不是以獨立的服務運行,要受到xinetd服務的管控,功能上會受到限制。
max_clients=0
設置vsftpd容許的最大鏈接數,默認值爲0,表示不受限制。若設置爲100時,則同時容許有100個鏈接,超出的將被拒絕。只有在standalone模式運行纔有效。
max_per_ip=0
設置每一個IP容許與FTP服務器同時創建鏈接的數目。默認值爲0,表示不受限制。只有在standalone模式運行纔有效。
listen_address=IP地址
設置FTP服務器在指定的IP地址上偵聽用戶的FTP請求。若不設置,則對服務器綁定的全部IP地址進行偵聽。只有在standalone模式運行纔有效。
setproctitle_enable=YES/NO
設置每一個與FTP服務器的鏈接,是否以不一樣的進程表現出來。默認值爲NO,此時使用
ps aux |grep ftp只會有一個vsftpd的進程。若設置爲YES,則每一個鏈接都會有一個vsftpd的進程。
one_process_model=yes
是否使用單進程模式。
十6、其餘設置相關語句:
text_userdb_names= YES/NO
設置在執行ls –la之類的命令時,是顯示UID、GID仍是顯示出具體的用戶名和組名。默認值爲NO,即以UID和GID方式顯示。若但願顯示用戶名和組名,則設置爲YES。
ls_recurse_enable=YES/NO
如果啓用此功能,則容許登入者使用ls –R(能夠查看當前目錄下子目錄中的文件)這個指令。默認值爲NO。
hide_ids=YES/NO
若是啓用此功能,全部檔案的擁有者與羣組都爲ftp,也就是使用者登入使用ls -al之類的指令,所看到的檔案擁有者跟羣組均爲ftp。默認值爲關閉。
download_enable=YES/NO
若是設置爲NO,全部的文件都不能下載到本地,文件夾不受影響。默認值爲YES。
#nopriv_user=ftpsecure
爲FTP服務器指定一個徹底孤立和無特權的用戶,即在系統服務中指定一個獨特的用戶。
即
指定一個用戶,當VSFTPD不想要什麼權限時,使用此用戶身份。這用戶最好是一個專用的用戶,而不是用戶nobody。在大多數的機器上,nobody用戶被用於大量重要的事情。默認值爲nobody。
#async_abor_enable=YES
啓用時,一個特殊的FTP命令\"async ABOR」將允許使用,通常不用,容易出現問題。只有不正常的FTP客戶端要使用這一點。並且,這個功能又難於操做,因此,默認是把它關閉了。可是,有些客戶端在取消一個傳送的時候會被掛死(daidong注:估計是客戶端無響應了),那你只有啓用這個功能才能避免這種狀況。 默認值:yes。
==============================================================================
****************************************************************************
***===============================================================================
(注:如下爲網絡原文轉載)
附: FTP 數字代碼的意義
110 從新啓動標記應答。
120 服務在多久時間內ready。
125 數據鏈路埠開啓,準備傳送。
150 文件狀態正常,開啓數據鏈接端口。
200 命令執行成功。
202 命令執行失敗。
211 系統狀態或是系統求助響應。
212 目錄的狀態。
213 文件的狀態。
214 求助的訊息。
215 名稱系統類型。
220 新的聯機服務ready。
221 服務的控制鏈接埠關閉,能夠註銷。
225 數據連結開啓,但無傳輸動做。
226 關閉數據鏈接端口,請求的文件操做成功。
227 進入passive mode。
230 使用者登入。
250 請求的文件操做完成。
257 顯示目前的路徑名稱。
331 用戶名稱正確,須要密碼。
332 登入時須要帳號信息。
350 請求的操做須要進一部的命令。
421 沒法提供服務,關閉控制連結。
425 沒法開啓數據鏈路。
426 關閉聯機,終止傳輸。
450 請求的操做未執行。
451 命令終止:有本地的錯誤。
452 未執行命令:磁盤空間不足。
500 格式錯誤,沒法識別命令。
501 參數語法錯誤。
502 命令執行失敗。
503 命令順序錯誤。
504 命令所接的參數不正確。
530 未登入。
532 儲存文件須要帳戶登入。
550 未執行請求的操做。
551 請求的命令終止,類型未知。
552 請求的文件終止,儲存位溢出。
553 未執行請求的的命令,名稱不正確。