天天看點

vsftp伺服器配置檔案詳解

1.預設配置:

1>允許匿名使用者和本地使用者登陸。

     anonymous_enable=YES

     local_enable=YES

2>匿名使用者使用的登陸名為ftp或anonymous,密碼為空;匿名使用者不能離開匿名使用者家目錄/var/ftp,且隻能下載下傳不能上傳。

3>本地使用者的登入名為本地使用者名,密碼為此本地使用者的密碼;本地使用者可以在自 己家目錄中進行讀寫操作;本地使用者可以離開自家目錄切換至有權限通路的其他目錄,并在權限允許的情況下進行上傳/下載下傳。

    write_enable=YES

4>寫在檔案/etc/vsftpd.ftpusers中的本地使用者禁止登陸。 

2.匿名使用者(anonymous)設定

anonymous_enable=YES/NO(YES)

控制是否允許匿名使用者登入,YES 為允許匿名登入,NO 為不允許。預設值為YES。

write_enable=YES/NO(YES)

是否允許登陸使用者有寫權限。屬于全局設定,預設值為YES。

no_anon_password=YES/NO(NO)

若是啟動這項功能,則使用匿名登入時,不會詢問密碼。預設值為NO。

ftp_username=ftp

定義匿名登入的使用者名稱。預設值為ftp。

anon_root=/var/ftp

使用匿名登入時,所登入的目錄。預設值為/var/ftp。注意ftp目錄不能是777的權限屬性,即匿名使用者的家目錄不能有777的權限。

anon_upload_enable=YES/NO(NO)

如果設為YES,則允許匿名登入者有上傳檔案(非目錄)的權限,隻有在write_enable=YES時,此項才有效。當然,匿名使用者必須要有對上層目錄的寫入權。預設值為NO。

anon_world_readable_only=YES/NO(YES)

如果設為YES,則允許匿名登入者下載下傳可閱讀的檔案(可以下載下傳到本機閱讀,不能直接在FTP伺服器中打開閱讀)。預設值為YES。

anon_mkdir_write_enable=YES/NO(NO)

如果設為YES,則允許匿名登入者有新增目錄的權限,隻有在write_enable=YES時,此項才有效。當然,匿名使用者必須要有對上層目錄的寫入權。預設值為NO。

anon_other_write_enable=YES/NO(NO)

如果設為YES,則允許匿名登入者更多于上傳或者建立目錄之外的權限,譬如删除或者重命名。(如果anon_upload_enable=NO,則匿名使用者不能上傳檔案,但可以删除或者重命名已經存在的檔案;如果anon_mkdir_write_enable=NO,則匿名使用者不能上傳或者建立檔案夾,但可以删除或者重命名已經存在的檔案夾。)預設值為NO。

chown_uploads=YES/NO(NO)

設定是否改變匿名使用者上傳檔案(非目錄)的屬主。預設值為NO。

chown_username=username

設定匿名使用者上傳檔案(非目錄)的屬主名。建議不要設定為root。

anon_umask=077

設定匿名登入者新增或上傳檔案時的umask 值。預設值為077,則建立檔案的對應權限為700。

deny_email_enable=YES/NO(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 在此檔案内,則不允許進入。

3.本地使用者設定

local_enable=YES/NO(YES)

控制是否允許本地使用者登入,YES 為允許本地使用者登入,NO為不允許。預設值為YES。

local_root=/home/username

當本地使用者登入時,将被更換到定義的目錄下。預設值為各使用者的家目錄。

local_umask=022

本地使用者新增檔案時的umask 值。預設值為077。

file_open_mode=0755

本地使用者上傳檔案後的檔案權限,與chmod 所使用的數值相同。預設值為0666。

4.歡迎語設定

dirmessage_enable=YES/NO(YES)

如果啟動這個選項,那麼使用者第一次進入一個目錄時,會檢查該目錄下是否有.message這個檔案,如果有,則會出現此檔案的内容,通常這個檔案會放置歡迎話語,或是對該目錄的說明。預設值為開啟。

message_file=.message

設定目錄消息檔案,可将要顯示的資訊寫入該檔案。預設值為.message。

banner_file=/etc/vsftpd/banner

當使用者登入時,會顯示此設定所在的檔案内容,通常為歡迎話語或是說明。預設值為無。如果歡迎資訊較多,則使用該配置項。

ftpd_banner=Welcome to BOB's FTP server

這裡用來定義歡迎話語的字元串,banner_file是檔案的形式,而ftpd_banner 則是字元串的形式。預設為無。

5.控制使用者是否允許切換到上級目錄

在預設配置下,本地使用者登入FTP後可以使用cd指令切換到其他目錄,這樣會對系統帶來安全隐患。可以通過以下三條配置檔案來控制使用者切換目錄。

chroot_list_enable=YES/NO(NO)

設定是否啟用chroot_list_file配置項指定的使用者清單檔案。預設值為NO。

chroot_list_file=/etc/vsftpd.chroot_list

用于指定使用者清單檔案,該檔案用于控制哪些使用者可以切換到使用者家目錄的上級目錄。

chroot_local_user=YES/NO(NO)

用于指定使用者清單檔案中的使用者是否允許切換到上級目錄。預設值為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時,所有的使用者均可以切換到其他目錄。

6.資料傳輸模式設定

FTP在傳輸資料時,可以使用二進制方式,也可以使用ASCII模式來上傳或下載下傳資料。

ascii_upload_enable=YES/NO(NO)

設定是否啟用ASCII 模式上傳資料。預設值為NO。

ascii_download_enable=YES/NO(NO)

設定是否啟用ASCII 模式下載下傳資料。預設值為NO。

7.通路控制設定

兩種控制方式:一種控制主機通路,另一種控制使用者通路。

①控制主機通路:

tcp_wrappers=YES/NO(YES)

設定vsftpd是否與tcp wrapper相結合來進行主機的通路控制。預設值為YES。如果啟用,則vsftpd伺服器會檢查/etc/hosts.allow 和/etc/hosts.deny 中的設定,來決定請求連接配接的主機,是否允許通路該FTP伺服器。這兩個檔案可以起到簡易的防火牆功能。

比如:若要僅允許192.168.0.1—192.168.0.254的使用者可以連接配接FTP伺服器,則在/etc/hosts.allow檔案中添加以下内容:

vsftpd:192.168.0. :allow

all:all :deny

②控制使用者通路:

對于使用者的通路控制可以通過/etc目錄下的vsftpd.user_list和ftpusers檔案來實作。

userlist_file=/etc/vsftpd.user_list

控制使用者通路FTP的檔案,裡面寫着使用者名稱。一個使用者名稱一行。

userlist_enable=YES/NO(NO)

是否啟用vsftpd.user_list檔案。

userlist_deny=YES/NO(YES)

決定vsftpd.user_list檔案中的使用者是否能夠通路FTP伺服器。若設定為YES,則vsftpd.user_list檔案中的使用者不允許通路FTP,若設定為NO,則隻有vsftpd.user_list檔案中的使用者才能通路FTP。

/etc/vsftpd/ftpusers檔案專門用于定義不允許通路FTP伺服器的使用者清單(注意:如果userlist_enable=YES,userlist_deny=NO,此時如果在vsftpd.user_list和ftpusers中都有某個使用者時,那麼這個使用者是不能夠通路FTP的,即ftpusers的優先級要高)。預設情況下vsftpd.user_list和ftpusers,這兩個檔案已經預設定了一些不允許通路FTP伺服器的系統内部賬戶。如果系統沒有這兩個檔案,那麼建立這兩個檔案,将使用者添加進去即可。

8.通路速率設定

anon_max_rate=0

設定匿名登入者使用的最大傳輸速度,機關為B/s,0 表示不限制速度。預設值為0。

local_max_rate=0

本地使用者使用的最大傳輸速度,機關為B/s,0 表示不限制速度。預設值為0。

9.逾時時間設定

accept_timeout=60

設定建立FTP連接配接的逾時時間,機關為秒。預設值為60。

connect_timeout=60

PORT 方式下建立資料連接配接的逾時時間,機關為秒。預設值為60。

data_connection_timeout=120

設定建立FTP資料連接配接的逾時時間,機關為秒。預設值為120。

idle_session_timeout=300

設定多長時間不對FTP伺服器進行任何操作,則斷開該FTP連接配接,機關為秒。預設值為300 。

10.日志檔案設定

xferlog_enable= YES/NO(YES)

是否啟用上傳/下載下傳日志記錄。如果啟用,則上傳與下載下傳的資訊将被完整紀錄在xferlog_file 所定義的檔案中。預設為開啟。

xferlog_file=/var/log/vsftpd.log

設定日志檔案名和路徑,預設值為/var/log/vsftpd.log。

xferlog_std_format=YES/NO(NO)

如果啟用,則日志檔案将會寫成xferlog的标準格式,如同wu-ftpd 一般。預設值為關閉。

log_ftp_protocol=YES|NO(NO) 

如果啟用此選項,所有的FTP請求和響應都會被記錄到日志中,預設日志檔案在/var/log/vsftpd.log。啟用此選項時,xferlog_std_format不能被激活。這個選項有助于調試。預設值為NO。

11.定義使用者配置檔案

在vsftpd中,可以通過定義使用者配置檔案來實作不同的使用者使用不同的配置。

user_config_dir=/etc/vsftpd/userconf

設定使用者配置檔案所在的目錄。當設定了該配置項後,使用者登陸伺服器後,系統就會到/etc/vsftpd/userconf目錄下,讀取與目前使用者名相同的檔案,并根據檔案中的配置指令,對目前使用者進行更進一步的配置。

例如:定義user_config_dir=/etc/vsftpd/userconf,且主機上有使用者 test1,test2,那麼我們就在user_config_dir 的目錄新增檔案名為test1和test2兩個檔案。若是test1 登入,則會讀取user_config_dir 下的test1 這個檔案内的設定。預設值為無。利用使用者配置檔案,可以實作對不同使用者進行通路速度的控制,在各使用者配置檔案中定義local_max_rate=XX,即可。

12.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)

若設定為YES,則使用PASV工作模式;若設定為NO,則使用PORT模式。預設值為YES,即使用PASV工作模式。

pasv_max_port=0

在PASV工作模式下,資料連接配接可以使用的端口範圍的最大端口,0 表示任意端口。預設值為0。

pasv_min_port=0

在PASV工作模式下,資料連接配接可以使用的端口範圍的最小端口,0 表示任意端口。預設值為0。

13.與連接配接相關的設定

listen=YES/NO(YES)

設定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(NO)

設定每個與FTP伺服器的連接配接,是否以不同的程序表現出來。預設值為NO,此時使用ps aux |grep ftp隻會有一個vsftpd的程序。若設定為YES,則每個連接配接都會有一個vsftpd的程序。

14.虛拟使用者設定

虛拟使用者使用PAM認證方式。

pam_service_name=vsftpd

設定PAM使用的名稱,預設值為/etc/pam.d/vsftpd。

guest_enable= YES/NO(NO)

啟用虛拟使用者。預設值為NO。

guest_username=ftp

這裡用來映射虛拟使用者。預設值為ftp。

virtual_use_local_privs=YES/NO(NO)

當該參數激活(YES)時,虛拟使用者使用與本地使用者相同的權限。當此參數關閉(NO)時,虛拟使用者使用與匿名使用者相同的權限。預設情況下此參數是關閉的(NO)。

15.其他設定

text_userdb_names= YES/NO(NO)

設定在執行ls –la之類的指令時,是顯示UID、GID還是顯示出具體的使用者名群組名。預設值為NO,即以UID和GID方式顯示。若希望顯示使用者名群組名,則設定為YES。

ls_recurse_enable=YES/NO(NO)

若是啟用此功能,則允許登入者使用ls –R(可以檢視目前目錄下子目錄中的檔案)這個指令。預設值為NO。

hide_ids=YES/NO(NO)

如果啟用此功能,所有檔案的擁有者與群組都為ftp,也就是使用者登入使用ls -al之類的指令,所看到的檔案擁有者跟群組均為ftp。預設值為關閉。

download_enable=YES/NO(YES)

如果設定為NO,所有的檔案都不能下載下傳到本地,檔案夾不受影響。預設值為YES。

本文轉自 SoulMio 51CTO部落格,原文連結:http://blog.51cto.com/bovin/1932642,如需轉載請自行聯系原作者

繼續閱讀