vsftpd配置文件詳解

轉載於http://yuanbin.blog.51cto.com/363003/108262/


vsftpd配置文件詳解 1.默認配置:1>允許匿名用戶和本地用戶登陸     anonymous_enable=YES     local_enable=YES
2>匿名用戶使用的登陸名爲ftp或anonymous,口令爲空;匿名用戶不能離開匿名用戶家目錄/var/ftp,且只能下載不能上傳。
3>本地用戶的登錄名爲本地用戶名,口令爲此本地用戶的口令;本地用戶可以在自己家目錄中進行讀寫操作;本地用戶可以離開自家目錄切換至有權限訪問的其他目錄,並在權限允許的情況下進行上傳/下載。    write_enable=YES
4>寫在文件/etc/vsftpd.ftpusers中的本地用戶禁止登陸            2.配置文件格式:  vsftpd.conf 的內容非常單純,每一行即爲一項設定。若是空白行或是開頭爲#的一行,將會被忽略。內容的格式只有一種,如下所示option=value要注意的是,等號兩邊不能加空白 3.匿名用戶(anonymous)設置anonymous_enable=YES/NO(YES)控制是否允許匿名用戶登入,YES 爲允許匿名登入,NO 爲不允許。默認值爲YES。write_enable=YES/NO(YES)是否允許登陸用戶有寫權限。屬於全局設置,默認值爲YESno_anon_password=YES/NO(NO)若是啓動這項功能,則使用匿名登入時,不會詢問密碼。默認值爲NO。ftp_username=ftp定義匿名登入的使用者名稱。默認值爲ftpanon_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時,此項纔有效。當然,匿名用戶必須要有對上層目錄的寫入權。默認值爲NOanon_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 在此檔案內,則不允許進入。 4.本地用戶設置local_enable=YES/NO(YES)控制是否允許本地用戶登入,YES 爲允許本地用戶登入,NO爲不允許。默認值爲YES。local_root=/home/username當本地用戶登入時,將被更換到定義的目錄下。默認值爲各用戶的家目錄。write_enable=YES/NO(YES)是否允許登陸用戶有寫權限。屬於全局設置,默認值爲YESlocal_umask=022本地用戶新增檔案時的umask 值。默認值爲077。file_open_mode=0755本地用戶上傳檔案後的檔案權限,與chmod 所使用的數值相同。默認值爲0666。 5.歡迎語設置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 則是字符串的形式。預設爲無。 6.控制用戶是否允許切換到上級目錄在默認配置下,本地用戶登入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時,所有的用戶均可以切換到其他目錄。 7.數據傳輸模式設置FTP在傳輸數據時,可以使用二進制方式,也可以使用ASCII模式來上傳或下載數據。ascii_upload_enable=YES/NO(NO)設置是否啓用ASCII 模式上傳數據。默認值爲NO。ascii_download_enable=YES/NO(NO)設置是否啓用ASCII 模式下載數據。默認值爲NO。 8.訪問控制設置兩種控制方式:一種控制主機訪問,另一種控制用戶訪問。
①控制主機訪問:
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. :allowall: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服務器的系統內部賬戶。如果系統沒有這兩個文件,那麼新建這兩個文件,將用戶添加進去即可。
 9.訪問速率設置anon_max_rate=0設置匿名登入者使用的最大傳輸速度,單位爲B/s,0 表示不限制速度。默認值爲0。local_max_rate=0本地用戶使用的最大傳輸速度,單位爲B/s,0 表示不限制速度。預設值爲0。 10.超時時間設置accept_timeout=60設置建立FTP連接的超時時間,單位爲秒。默認值爲60。connect_timeout=60PORT 方式下建立數據連接的超時時間,單位爲秒。默認值爲60。data_connection_timeout=120設置建立FTP數據連接的超時時間,單位爲秒。默認值爲120。idle_session_timeout=300設置多長時間不對FTP服務器進行任何操作,則斷開該FTP連接,單位爲秒。默認值爲300 。 11.日誌文件設置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。
 12.定義用戶配置文件在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,即可。 13.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。 14.與連接相關的設置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的進程。 15.虛擬用戶設置
虛擬用戶使用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)。 16.其他設置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。


表11.1  Vsftpd文件佈局

/etc/vsftpd/vsftpd.conf

主配置文件

/usr/sbin/vsftpd

Vsftpd的主程序

/etc/rc.d/init.d/vsftpd

啓動腳本

/etc/pam.d/vsftpd

PAM認證文件

/etc/vsftpd.ftpusers

禁止使用Vsftpd的用戶列表文件

/etc/vsftpd.user_list

禁止或允許使用Vsftpd的用戶列表文件

/var/ftp

匿名用戶主目錄

/var/ftp/pub

匿名用戶的下載目錄


Userlist_enable=YES

Ftpusers中用戶允許訪問
User_list中用戶允許訪問

Userlist_enable=NO

Ftpusers中用戶禁止訪問
User_list中用戶允許訪問

Userlist_deny=YES

Ftpusers中用戶禁止訪問(登錄時可以看到密碼輸入提示,但仍無法訪問)
user_list 中用戶禁止訪問

Userlist_deny=NO

ftpusers中用戶禁止訪問
user_list中用戶允許訪問

Userlist_enable=YES 並且
Userlist_deny=YES

Ftpusers中用戶禁止訪問
User_list中用戶禁止訪問(登錄時不會出現密碼提示,直接被服務器拒絕)

Userlist_enable=YES 並且
Userlist_deny=NO

Ftpusers中用戶禁止訪問
User_list中用戶允許訪問

在vsftpd.conf中有如下內容定義了日誌的記錄方式:

# 表明FTP服務器記錄上傳下載的情況
xferlog_enable=YES 
# 表明將記錄的上傳下載情況寫在xferlog_file所指定的文件中,即xferlog_file選項指定的文件中

xferlog_std_format=YES 
xferlog_file=/var/log/xferlog 
# 啓用雙份日誌。在用xferlog文件記錄服務器上傳下載情況的同時,

# vsftpd_log_file所指定的文件,即/var/log/vsftpd.log也將用來記錄服務器的傳輸情況
dual_log_enable=YES
vsftpd_log_file=/var/log/vsftpd.log


vsftpd的配置文件


/etc/vsftpd/vsftpd.conf

主配置文件

/usr/sbin/vsftpd

Vsftpd的主程序

/etc/rc.d/init.d/vsftpd

啓動腳本

/etc/pam.d/vsftpd

PAM認證文件(此文件中file=/etc/vsftpd/ftpusers字段,指明阻止訪問的用戶來自/etc/vsftpd/ftpusers文件中的用戶)

/etc/vsftpd/ftpusers

禁止使用vsftpd的用戶列表文件。記錄不允許訪問FTP服務器的用戶名單,管理員可以把一些對系統安全有威脅的用戶賬號記錄在此文件中,以免用戶從FTP登錄後獲得大於上傳下載操作的權利,而對系統造成損壞。(注意:linux-4中此文件在/etc/目錄下)

/etc/vsftpd/user_list

禁止或允許使用vsftpd的用戶列表文件。這個文件中指定的用戶缺省情況(即在/etc/vsftpd/vsftpd.conf中設置userlist_deny=YES)下也不能訪問FTP服務器,在設置了userlist_deny=NO時,僅允許user_list中指定的用戶訪問FTP服務器。(注意:linux-4中此文件在/etc/目錄下)

/var/ftp

匿名用戶主目錄;本地用戶主目錄爲:/home/用戶主目錄,即登錄後進入自己家目錄

/var/ftp/pub

匿名用戶的下載目錄,此目錄需賦權根chmod 1777 pub(1爲特殊權限,使上載後無法刪除)

/etc/logrotate.d/vsftpd.log

Vsftpd的日誌文件


vsftpd的主配置文件/etc/vsftpd/vsftpd.conf說明(修改前先備份)

和Linux系統中的大多數配置文件一樣,vsftpd的配置文件中以#開始註釋。
# 是否允許匿名登錄FTP服務器,默認設置爲YES允許


# 用戶可使用用戶名ftp或anonymous進行ftp登錄,口令爲用戶的E-mail地址。


# 如不允許匿名訪問則設置爲NO


anonymous_enable=YES
# 是否允許本地用戶(即linux系統中的用戶帳號)登錄FTP服務器,默認設置爲YES允許


# 本地用戶登錄後會進入用戶主目錄,而匿名用戶登錄後進入匿名用戶的下載目錄/var/ftp/pub


# 若只允許匿名用戶訪問,前面加上#註釋掉即可阻止本地用戶訪問FTP服務器


local_enable=YES


# 是否允許本地用戶對FTP服務器文件具有寫權限,默認設置爲YES允許


write_enable=YES 


# 掩碼,本地用戶默認掩碼爲077


# 你可以設置本地用戶的文件掩碼爲缺省022,也可根據個人喜好將其設置爲其他值


#local_umask=022


# 是否允許匿名用戶上傳文件,須將全局的write_enable=YES。默認爲YES
#anon_upload_enable=YES
# 是否允許匿名用戶創建新文件夾
#anon_mkdir_write_enable=YES 
# 是否激活目錄歡迎信息功能
# 當用戶用CMD模式首次訪問服務器上某個目錄時,FTP服務器將顯示歡迎信息
# 默認情況下,歡迎信息是通過該目錄下的.message文件獲得的
# 此文件保存自定義的歡迎信息,由用戶自己建立
#dirmessage_enable=YES
# 是否讓系統自動維護上傳和下載的日誌文件
# 默認情況該日誌文件爲/var/log/vsftpd.log,也可以通過下面的xferlog_file選項對其進行設定
# 默認值爲NO
xferlog_enable=YES
# Make sure PORT transfer connections originate from port 20 (ftp-data).
# 是否設定FTP服務器將啓用FTP數據端口的連接請求
# ftp-data數據傳輸,21爲連接控制端口
connect_from_port_20=YES
# 設定是否允許改變上傳文件的屬主,與下面一個設定項配合使用
# 注意,不推薦使用root用戶上傳文件
#chown_uploads=YES
# 設置想要改變的上傳文件的屬主,如果需要,則輸入一個系統用戶名
# 可以把上傳的文件都改成root屬主。whoever:任何人
#chown_username=whoever
# 設定系統維護記錄FTP服務器上傳和下載情況的日誌文件
# /var/log/vsftpd.log是默認的,也可以另設其它
#xferlog_file=/var/log/vsftpd.log
# 是否以標準xferlog的格式書寫傳輸日誌文件
# 默認爲/var/log/xferlog,也可以通過xferlog_file選項對其進行設定
# 默認值爲NO
#xferlog_std_format=YES
# 以下是附加配置,添加相應的選項將啓用相應的設置
# 是否生成兩個相似的日誌文件
# 默認在/var/log/xferlog和/var/log/vsftpd.log目錄下
# 前者是wu_ftpd類型的傳輸日誌,可以利用標準日誌工具對其進行分析;後者是vsftpd類型的日誌
#dual_log_enable
# 是否將原本輸出到/var/log/vsftpd.log中的日誌,輸出到系統日誌


#syslog_enable
# 設置數據傳輸中斷間隔時間,此語句表示空閒的用戶會話中斷時間爲600秒


# 即當數據傳輸結束後,用戶連接FTP服務器的時間不應超過600秒。可以根據實際情況對該值進行修改


#idle_session_timeout=600
# 設置數據連接超時時間,該語句表示數據連接超時時間爲120秒,可根據實際情況對其個修改


#data_connection_timeout=120
# 運行vsftpd需要的非特權系統用戶,缺省是nobody
#nopriv_user=ftpsecure
# 是否識別異步ABOR請求。
# 如果FTP client會下達“async ABOR”這個指令時,這個設定才需要啓用
# 而一般此設定並不安全,所以通常將其取消
#async_abor_enable=YES
# 是否以ASCII方式傳輸數據。默認情況下,服務器會忽略ASCII方式的請求。


# 啓用此選項將允許服務器以ASCII方式傳輸數據
# 不過,這樣可能會導致由"SIZE /big/file"方式引起的DoS***


#ascii_upload_enable=YES
#ascii_download_enable=YES
# 登錄FTP服務器時顯示的歡迎信息
# 如有需要,可在更改目錄歡迎信息的目錄下創建名爲.message的文件,並寫入歡迎信息保存後
#ftpd_banner=Welcome to blah FTP service.
# 黑名單設置。如果很討厭某些email address,就可以使用此設定來取消他的登錄權限
# 可以將某些特殊的email address抵擋住。
#deny_email_enable=YES
# 當上面的deny_email_enable=YES時,可以利用這個設定項來規定哪些郵件地址不可登錄vsftpd服務器
# 此文件需用戶自己創建,一行一個email address即可
#banned_email_file=/etc/vsftpd/banned_emails
# 用戶登錄FTP服務器後是否具有訪問自己目錄以外的其他文件的權限
# 設置爲YES時,用戶被鎖定在自己的home目錄中,vsftpd將在下面chroot_list_file選項值的位置尋找chroot_list文件
# 必須與下面的設置項配合
#chroot_list_enable=YES
# 被列入此文件的用戶,在登錄後將不能切換到自己目錄以外的其他目錄
# 從而有利於FTP服務器的安全管理和隱私保護。此文件需自己建立
#chroot_list_file=/etc/vsftpd/chroot_list
# 是否允許遞歸查詢。默認爲關閉,以防止遠程用戶造成過量的I/O
#ls_recurse_enable=YES
# 是否允許監聽。
# 如果設置爲YES,則vsftpd將以獨立模式運行,由vsftpd自己監聽和處理IPv4端口的連接請求
listen=YES
# 設定是否支持IPV6。如要同時監聽IPv4和IPv6端口,
# 則必須運行兩套vsftpd,採用兩套配置文件
# 同時確保其中有一個監聽選項是被註釋掉的
#listen_ipv6=YES
# 設置PAM外掛模塊提供的認證服務所使用的配置文件名,即/etc/pam.d/vsftpd文件
# 此文件中file=/etc/vsftpd/ftpusers字段,說明了PAM模塊能抵擋的帳號內容來自文件/etc/vsftpd/ftpusers中
#pam_service_name=vsftpd
# 是否允許ftpusers文件中的用戶登錄FTP服務器,默認爲NO
# 若此項設爲YES,則user_list文件中的用戶允許登錄FTP服務器
# 而如果同時設置了userlist_deny=YES,則user_list文件中的用戶將不允許登錄FTP服務器,甚至連輸入密碼提示信息都沒有
#userlist_enable=YES/NO
# 設置是否阻扯user_list文件中的用戶登錄FTP服務器,默認爲YES
#userlist_deny=YES/NO
# 是否使用tcp_wrappers作爲主機訪問控制方式。
# tcp_wrappers可以實現linux系統中網絡服務的基於主機地址的訪問控制
# 在/etc目錄中的hosts.allow和hosts.deny兩個文件用於設置tcp_wrappers的訪問控制
# 前者設置允許訪問記錄,後者設置拒絕訪問記錄。
# 如想限制某些主機對FTP服務器192.168.57.2的匿名訪問,編緝/etc/hosts.allow文件,如在下面增加兩行命令:
# vsftpd:192.168.57.1:DENY 和vsftpd:192.168.57.9:DENY
# 表明限制IP爲192.168.57.1/192.168.57.9主機訪問IP爲192.168.57.2的FTP服務器
# 此時FTP服務器雖可以PING通,但無法連接
tcp_wrappers=YES 






max_client設置項 用於設置FTP服務器所允許的最大客戶端連接數,值爲0時表示不限制。例如max_client=100表示FTP服務器的所有客戶端最大連接數不超過100個。


max_per_ip設置項 用於設置對於同一IP地址允許的最大客戶端連接數,值爲0時表示不限制。例如max_per_ip=5表示同一IP地址的FTP客戶機與FTP服務器建立的最大連接數不超過5個。


local_max_rate設置項 用於設置本地用戶的最大傳輸速率,單位爲B/s,值爲0時表示不限制。例如local_max_rate=500000表示FTP服務器的本地用戶最大傳輸速率設置爲500KB/s.


anon_max_rate設置項 用於設置匿名用戶的最大傳輸速率,單位爲B/s,值爲0表示不限制。例如ano_max_rate=200000,表示FTP服務器的匿名用戶最大傳輸速率設置爲200KB/s.




# 是否允許匿名登錄FTP服務器,默認設置爲YES允許


# 用戶可使用用戶名ftp或anonymous進行ftp登錄,口令爲用戶的E-mail地址。


# 如不允許匿名訪問則設置爲NO


anonymous_enable=YES
# 是否允許本地用戶(即linux系統中的用戶帳號)登錄FTP服務器,默認設置爲YES允許


# 本地用戶登錄後會進入用戶主目錄,而匿名用戶登錄後進入匿名用戶的下載目錄/var/ftp/pub


# 若只允許匿名用戶訪問,前面加上#註釋掉即可阻止本地用戶訪問FTP服務器


local_enable=YES


# 是否允許本地用戶對FTP服務器文件具有寫權限,默認設置爲YES允許


write_enable=YES 


# 掩碼,本地用戶默認掩碼爲077


# 你可以設置本地用戶的文件掩碼爲缺省022,也可根據個人喜好將其設置爲其他值


#local_umask=022


# 是否允許匿名用戶上傳文件,須將全局的write_enable=YES。默認爲YES
#anon_upload_enable=YES
# 是否允許匿名用戶創建新文件夾
#anon_mkdir_write_enable=YES 
# 是否激活目錄歡迎信息功能
# 當用戶用CMD模式首次訪問服務器上某個目錄時,FTP服務器將顯示歡迎信息
# 默認情況下,歡迎信息是通過該目錄下的.message文件獲得的
# 此文件保存自定義的歡迎信息,由用戶自己建立
#dirmessage_enable=YES
# 是否讓系統自動維護上傳和下載的日誌文件
# 默認情況該日誌文件爲/var/log/vsftpd.log,也可以通過下面的xferlog_file選項對其進行設定
# 默認值爲NO
xferlog_enable=YES
# Make sure PORT transfer connections originate from port 20 (ftp-data).
# 是否設定FTP服務器將啓用FTP數據端口的連接請求
# ftp-data數據傳輸,21爲連接控制端口
connect_from_port_20=YES
# 設定是否允許改變上傳文件的屬主,與下面一個設定項配合使用
# 注意,不推薦使用root用戶上傳文件
#chown_uploads=YES
# 設置想要改變的上傳文件的屬主,如果需要,則輸入一個系統用戶名
# 可以把上傳的文件都改成root屬主。whoever:任何人
#chown_username=whoever
# 設定系統維護記錄FTP服務器上傳和下載情況的日誌文件
# /var/log/vsftpd.log是默認的,也可以另設其它
#xferlog_file=/var/log/vsftpd.log
# 是否以標準xferlog的格式書寫傳輸日誌文件
# 默認爲/var/log/xferlog,也可以通過xferlog_file選項對其進行設定
# 默認值爲NO
#xferlog_std_format=YES
# 以下是附加配置,添加相應的選項將啓用相應的設置
# 是否生成兩個相似的日誌文件
# 默認在/var/log/xferlog和/var/log/vsftpd.log目錄下
# 前者是wu_ftpd類型的傳輸日誌,可以利用標準日誌工具對其進行分析;後者是vsftpd類型的日誌
#dual_log_enable
# 是否將原本輸出到/var/log/vsftpd.log中的日誌,輸出到系統日誌


#syslog_enable
# 設置數據傳輸中斷間隔時間,此語句表示空閒的用戶會話中斷時間爲600秒


# 即當數據傳輸結束後,用戶連接FTP服務器的時間不應超過600秒。可以根據實際情況對該值進行修改


#idle_session_timeout=600
# 設置數據連接超時時間,該語句表示數據連接超時時間爲120秒,可根據實際情況對其個修改


#data_connection_timeout=120
# 運行vsftpd需要的非特權系統用戶,缺省是nobody
#nopriv_user=ftpsecure
# 是否識別異步ABOR請求。
# 如果FTP client會下達“async ABOR”這個指令時,這個設定才需要啓用
# 而一般此設定並不安全,所以通常將其取消
#async_abor_enable=YES
# 是否以ASCII方式傳輸數據。默認情況下,服務器會忽略ASCII方式的請求。


# 啓用此選項將允許服務器以ASCII方式傳輸數據
# 不過,這樣可能會導致由"SIZE /big/file"方式引起的DoS***


#ascii_upload_enable=YES
#ascii_download_enable=YES
# 登錄FTP服務器時顯示的歡迎信息
# 如有需要,可在更改目錄歡迎信息的目錄下創建名爲.message的文件,並寫入歡迎信息保存後
#ftpd_banner=Welcome to blah FTP service.
# 黑名單設置。如果很討厭某些email address,就可以使用此設定來取消他的登錄權限
# 可以將某些特殊的email address抵擋住。
#deny_email_enable=YES
# 當上面的deny_email_enable=YES時,可以利用這個設定項來規定哪些郵件地址不可登錄vsftpd服務器
# 此文件需用戶自己創建,一行一個email address即可
#banned_email_file=/etc/vsftpd/banned_emails
# 用戶登錄FTP服務器後是否具有訪問自己目錄以外的其他文件的權限
# 設置爲YES時,用戶被鎖定在自己的home目錄中,vsftpd將在下面chroot_list_file選項值的位置尋找chroot_list文件
# 必須與下面的設置項配合
#chroot_list_enable=YES
# 被列入此文件的用戶,在登錄後將不能切換到自己目錄以外的其他目錄
# 從而有利於FTP服務器的安全管理和隱私保護。此文件需自己建立
#chroot_list_file=/etc/vsftpd/chroot_list
# 是否允許遞歸查詢。默認爲關閉,以防止遠程用戶造成過量的I/O
#ls_recurse_enable=YES
# 是否允許監聽。
# 如果設置爲YES,則vsftpd將以獨立模式運行,由vsftpd自己監聽和處理IPv4端口的連接請求
listen=YES
# 設定是否支持IPV6。如要同時監聽IPv4和IPv6端口,
# 則必須運行兩套vsftpd,採用兩套配置文件
# 同時確保其中有一個監聽選項是被註釋掉的
#listen_ipv6=YES
# 設置PAM外掛模塊提供的認證服務所使用的配置文件名,即/etc/pam.d/vsftpd文件
# 此文件中file=/etc/vsftpd/ftpusers字段,說明了PAM模塊能抵擋的帳號內容來自文件/etc/vsftpd/ftpusers中
#pam_service_name=vsftpd
# 是否允許ftpusers文件中的用戶登錄FTP服務器,默認爲NO
# 若此項設爲YES,則user_list文件中的用戶允許登錄FTP服務器
# 而如果同時設置了userlist_deny=YES,則user_list文件中的用戶將不允許登錄FTP服務器,甚至連輸入密碼提示信息都沒有
#userlist_enable=YES/NO
# 設置是否阻扯user_list文件中的用戶登錄FTP服務器,默認爲YES
#userlist_deny=YES/NO
# 是否使用tcp_wrappers作爲主機訪問控制方式。
# tcp_wrappers可以實現linux系統中網絡服務的基於主機地址的訪問控制
# 在/etc目錄中的hosts.allow和hosts.deny兩個文件用於設置tcp_wrappers的訪問控制
# 前者設置允許訪問記錄,後者設置拒絕訪問記錄。
# 如想限制某些主機對FTP服務器192.168.57.2的匿名訪問,編緝/etc/hosts.allow文件,如在下面增加兩行命令:
# vsftpd:192.168.57.1:DENY 和vsftpd:192.168.57.9:DENY
# 表明限制IP爲192.168.57.1/192.168.57.9主機訪問IP爲192.168.57.2的FTP服務器
# 此時FTP服務器雖可以PING通,但無法連接
tcp_wrappers=YES 






max_client設置項 用於設置FTP服務器所允許的最大客戶端連接數,值爲0時表示不限制。例如max_client=100表示FTP服務器的所有客戶端最大連接數不超過100個。


max_per_ip設置項 用於設置對於同一IP地址允許的最大客戶端連接數,值爲0時表示不限制。例如max_per_ip=5表示同一IP地址的FTP客戶機與FTP服務器建立的最大連接數不超過5個。


local_max_rate設置項 用於設置本地用戶的最大傳輸速率,單位爲B/s,值爲0時表示不限制。例如local_max_rate=500000表示FTP服務器的本地用戶最大傳輸速率設置爲500KB/s.


anon_max_rate設置項 用於設置匿名用戶的最大傳輸速率,單位爲B/s,值爲0表示不限制。例如ano_max_rate=200000,表示FTP服務器的匿名用戶最大傳輸速率設置爲200KB/s.



生成虛擬用戶口令庫文件

//生成虛擬用戶口令庫文件,按照格式編輯口令文件。單數行爲用戶名,偶數行爲用戶口令#vi login.txtliyangsuper//用戶名real//口令patterson//用戶名jef//口令guest//用戶名guest//口令//存盤退出

配置生成vsftpd的認證文件

//使用db_load命令生成口令庫文件#db_load –T –t hash –f login.txt /etc/vsftpd/vsftpd_login.db//修改該口令庫文件的權限#chmod 600 /etc/vsftpd/vsftpd_login.db//編輯虛擬用戶所需的PAM配置文件#vi /etc/pam.d/vsftpd//在該文件中加入如下兩行,並且保存後退出auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login.dbaccount required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login.db

建立虛擬用戶訪問所需要的目錄並且設定相應的訪問權限

#useradd –d /home/ftp virtual#chmod 700 /home/ftp

對vsftpd的主配置文件進行配置

//爲了保證安全,首先生成該文件的一個備份,然後進行修改#cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
#vi /etc/vsftpd/vsftpd.conf
//配置相關選項如下所示listen=YEStcp_wrappers=YES //支持tcp_wrappers,限制訪問(/etc/hosts.allow,/etc/hosts.deny)
listen=YES的意思是使用standalone啓動vsftpd,而不是super daemon(xinetd)控制它
(vsftpd推薦使用standalone方式)
anonymous_enable=NO
local_enable=YES //PAM方式此處必須爲YES
write_enable=NOanon_upload_enable=NOanon_mkdir_write_enable=NOanon_other_write_enable=NOchroot_local_user=YESguest_enable=YESguest_username=vsftpd //採用虛擬用戶形式

重新啓動vsftpd服務器

#service vsftpd restart



(1)設置所有的本地用戶執行chroot,只要將/etc/vsftpd/vsftpd.con文件中的chroot_local_ user值置爲YES,即chroot_local_user=YES。
(2)設置指定的用戶執行chroot,按照如下方法進行設置:
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
設置後,只有/etc/vsftpd.chroot_list文件中指定的用戶才能夠執行chroot命令。 


所謂虛擬FTP服務器,是指一臺機器上有多個IP地址,並且可以向外提供多FTP服務,這些服務器在邏輯上是獨立的,有不同的訪問控制表和不同的下載內容。

配置虛擬FTP服務器的步驟如下所示:

(1)爲一個服務器配置多個IP地址。假設原來的主機內部地址爲210.77.27.222,可再綁定一個IP地址如下:
向接口添加一個新的IP210.77.27.223
#/sbin/ifconfig eth0:0 210.77.27.223 up 

(2)創建虛擬FTP服務器的根目錄,並確保/var/newftp和/var/newftp/pub目錄的擁有者和組均爲root,掩碼爲755。

#mkdir -p /var/newftp/pub
#chmod 755 /var/newftp
#chmod 755 /var/new/ftp/pub

(3)增加虛擬FTP服務器的匿名用戶賬號。原先的FTP服務器使用系統用戶ftp作爲其匿名用戶賬號。需要增加一個newftp用於虛擬FTP服務器
useradd -d /var/newftp -M newftp

(4)創建虛擬FTP服務器的配置文件。複製原來的vsftpd.conf作爲虛擬FTP服務器的配置文件,並修改相關參數。
#cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd2.conf
新添或修改以下參數:
listen=YES
listen_address=210.77.27.223
ftp_username=newftp
此處需要特別注意:由於vsftpd默認是監聽所有的IP地址,當設定基於IP的虛擬FTP服務器時,爲防止原來的FTP服務器與虛擬FTP服務器發生監聽上的衝突,原FTP服務器須要指定監聽的IP地址。在這裏,原來的配置文件中就要設置listen_address=//向接口添加一個新的IP210.77.27.222。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章