1 1.默認配置: 2 1>允許匿名用戶和本地用戶登陸。 3 anonymous_enable=YES 4 local_enable=YES 5 2>匿名用戶使用的登陸名為ftp或anonymous,口令為空;匿名用戶不能離開匿名 用戶家目錄/var/ftp,且只能下載不能上傳。 6 3>本地用戶的登錄名為本地用戶名,口令為此本地用戶的口令;本地用戶可以在自己家目錄中進行讀寫操作;本地用戶可以離開自家目錄切換至有權限訪問的其他目錄,並在權限允許的情況下進行上傳/下載。 7 write_enable=YES 8 4>寫在文件/etc/vsftpd.ftpusers中的本地用戶禁止登陸。 9 2.配置文件格式: 10 vsftpd.conf 的內容非常單純,每一行即為一項設定。若是空白行或是開頭為#的一行,將會被忽略。內容的格式只有一種,如下所示 11 option=value 12 要注意的是,等號兩邊不能加空白。 13 3.匿名用戶(anonymous)設置 14 anonymous_enable=YES/NO(YES) 15 控制是否允許匿名用戶登入,YES 為允許匿名登入,NO 為不允許。默認值為YES。 16 write_enable=YES/NO(YES) 17 是否允許登陸用戶有寫權限。屬於全局設置,默認值為YES。 18 no_anon_password=YES/NO(NO) 19 若是啟動這項功能,則使用匿名登入時,不會詢問密碼。默認值為NO。 20 ftpftp_username=ftp 21 定義匿名登入的使用者名稱。默認值為ftp。 22 anon_root=/var/ftp 23 使用匿名登入時,所登入的目錄。默認值為/var/ftp。注意ftp目錄不能是777的權限屬性,即匿名用戶的家目錄不能有777的權限。 24 anon_upload_enable=YES/NO(NO) 25 如果設為YES,則允許匿名登入者有上傳文件(非目錄)的權限,只有在write_enable=YES時,此項才有效。當然,匿名用戶必須要有對上層目錄的寫入權。默認值為NO。 26 anon_world_readable_only=YES/NO(YES) 27 如果設為YES,則允許匿名登入者下載可閱讀的檔案(可以下載到本機閱讀,不能直接在FTP服務器中打開閱讀)。默認值為YES。 28 anon_mkdir_write_enable=YES/NO(NO) 29 如果設為YES,則允許匿名登入者有新增目錄的權限,只有在write_enable=YES時,此項才有效。當然,匿名用戶必須要有對上層目錄的寫入權。默認值為NO。 30 anon_other_write_enable=YES/NO(NO) 31 如 果設為YES,則允許匿名登入者更多於上傳或者建立目錄之外的權限,譬如刪除或者重命名。(如果anon_upload_enable=NO,則匿名用戶 不能上傳文件,但可以刪除或者重命名已經存在的文件;如果anon_mkdir_write_enable=NO,則匿名用戶不能上傳或者新建文件夾,但 可以刪除或者重命名已經存在的文件夾。)默認值為NO。 32 chown_uploads=YES/NO(NO) 33 設置是否改變匿名用戶上傳文件(非目錄)的屬主。默認值為NO。 34 chown_username=username 35 設置匿名用戶上傳文件(非目錄)的屬主名。建議不要設置為root。 36 anon_umask=077 37 設置匿名登入者新增或上傳檔案時的umask 值。默認值為077,則新建檔案的對應權限為700。 38 deny_email_enable=YES/NO(NO) 39 若是啟動這項功能,則必須提供一個檔案/etc/vsftpd/banner_emails,內容為email address。若是使用匿名登入,則會要求輸入email address,若輸入的email address 在此檔案內,則不允許進入。默認值為NO。 40 banned_email_file=/etc/vsftpd/banner_emails 41 此文件用來輸入email address,只有在deny_email_enable=YES時,才會使用到此檔案。若是使用匿名登入,則會要求輸入email address,若輸入的email address 在此檔案內,則不允許進入。 42 4.本地用戶設置 43 local_enable=YES/NO(YES) 44 控制是否允許本地用戶登入,YES 為允許本地用戶登入,NO為不允許。默認值為YES。 45 local_root=/home/username 46 當本地用戶登入時,將被更換到定義的目錄下。默認值為各用戶的家目錄。 47 write_enable=YES/NO(YES) 48 是否允許登陸用戶有寫權限。屬於全局設置,默認值為YES。 49 local_umask=022 50 本地用戶新增檔案時的umask 值。默認值為077。 51 file_open_mode=0755 52 本地用戶上傳檔案后的檔案權限,與chmod 所使用的數值相同。默認值為0666。 53 5.歡迎語設置 54 dirmessage_enable=YES/NO(YES) 55 如果啟動這個選項,那么使用者第一次進入一個目錄時,會檢查該目錄下是否有.message這個檔案,如果有,則會出現此檔案的內容,通常這個檔案會放置歡迎話語,或是對該目錄的說明。默認值為開啟。 56 message_file=.message 57 設置目錄消息文件,可將要顯示的信息寫入該文件。默認值為.message。 58 banner_file=/etc/vsftpd/banner 59 當使用者登入時,會顯示此設定所在的檔案內容,通常為歡迎話語或是說明。默認值為無。如果歡迎信息較多,則使用該配置項。 60 ftpd_banner=Welcome to BOB's FTP server 61 這里用來定義歡迎話語的字符串,banner_file是檔案的形式,而ftpd_banner 則是字符串的形式。預設為無。 62 6.控制用戶是否允許切換到上級目錄 63 在默認配置下,本地用戶登入FTP后可以使用cd命令切換到其他目錄,這樣會對系統帶來安全隱患。可以通過以下三條配置文件來控制用戶切換目錄。 64 chroot_list_enable=YES/NO(NO) 65 設置是否啟用chroot_list_file配置項指定的用戶列表文件。默認值為NO。 66 chroot_list_file=/etc/vsftpd.chroot_list 67 用於指定用戶列表文件,該文件用於控制哪些用戶可以切換到用戶家目錄的上級目錄。 68 chroot_local_user=YES/NO(NO) 69 用於指定用戶列表文件中的用戶是否允許切換到上級目錄。默認值為NO。 70 通過搭配能實現以下幾種效果: 71 ①當chroot_list_enable=YES,chroot_local_user=YES時,在/etc/vsftpd.chroot_list文件中列出的用戶,可以切換到其他目錄;未在文件中列出的用戶,不能切換到其他目錄。 72 ②當chroot_list_enable=YES,chroot_local_user=NO時,在/etc/vsftpd.chroot_list文件中列出的用戶,不能切換到其他目錄;未在文件中列出的用戶,可以切換到其他目錄。 73 ③當chroot_list_enable=NO,chroot_local_user=YES時,所有的用戶均不能切換到其他目錄。 74 ④當chroot_list_enable=NO,chroot_local_user=NO時,所有的用戶均可以切換到其他目錄。 75 7.數據傳輸模式設置 76 FTP在傳輸數據時,可以使用二進制方式,也可以使用ASCII模式來上傳或下載數據。 77 ascii_upload_enable=YES/NO(NO) 78 設置是否啟用ASCII 模式上傳數據。默認值為NO。 79 ascii_download_enable=YES/NO(NO) 80 設置是否啟用ASCII 模式下載數據。默認值為NO。 81 8.訪問控制設置 82 兩種控制方式:一種控制主機訪問,另一種控制用戶訪問。 83 ①控制主機訪問: 84 tcp_wrappers=YES/NO(YES) 85 設 置vsftpd是否與tcp wrapper相結合來進行主機的訪問控制。默認值為YES。如果啟用,則vsftpd服務器會檢查/etc/hosts.allow 和/etc/hosts.deny 中的設置,來決定請求連接的主機,是否允許訪問該FTP服務器。這兩個文件可以起到簡易的防火牆功能。 86 比如:若要僅允許192.168.0.1—192.168.0.254的用戶可以連接FTP服務器,則在/etc/hosts.allow文件中添加以下內容: 87 vsftpd:192.168.0. :allow 88 all:all :deny 89 ②控制用戶訪問: 90 對於用戶的訪問控制可以通過/etc目錄下的vsftpd.user_list和ftpusers文件來實現。 91 userlist_file=/etc/vsftpd.user_list 92 控制用戶訪問FTP的文件,里面寫着用戶名稱。一個用戶名稱一行。 93 userlist_enable=YES/NO(NO) 94 是否啟用vsftpd.user_list文件。 95 userlist_deny=YES/NO(YES) 96 決定vsftpd.user_list文件中的用戶是否能夠訪問FTP服務器。若設置為YES,則vsftpd.user_list文件中的用戶不允許訪問FTP,若設置為NO,則只有vsftpd.user_list文件中的用戶才能訪問FTP。 97 /etc /vsftpd/ftpusers文件專門用於定義不允許訪問FTP服務器的用戶列表(注意:如果 userlist_enable=YES,userlist_deny=NO,此時如果在vsftpd.user_list和ftpusers中都有某個 用戶時,那么這個用戶是不能夠訪問FTP的,即ftpusers的優先級要高)。默認情況下vsftpd.user_list和ftpusers,這兩個 文件已經預設置了一些不允許訪問FTP服務器的系統內部賬戶。如果系統沒有這兩個文件,那么新建這兩個文件,將用戶添加進去即可。 98 9.訪問速率設置 99 anon_max_rate=0 100 設置匿名登入者使用的最大傳輸速度,單位為B/s,0 表示不限制速度。默認值為0。 101 local_max_rate=0 102 本地用戶使用的最大傳輸速度,單位為B/s,0 表示不限制速度。預設值為0。 103 10.超時時間設置 104 accept_timeout=60 105 設置建立FTP連接的超時時間,單位為秒。默認值為60。 106 connect_timeout=60 107 PORT 方式下建立數據連接的超時時間,單位為秒。默認值為60。 108 data_connection_timeout=120 109 設置建立FTP數據連接的超時時間,單位為秒。默認值為120。 110 idle_session_timeout=300 111 設置多長時間不對FTP服務器進行任何操作,則斷開該FTP連接,單位為秒。默認值為300 。 112 11.日志文件設置 113 xferlog_enable= YES/NO(YES) 114 是否啟用上傳/下載日志記錄。如果啟用,則上傳與下載的信息將被完整紀錄在xferlog_file 所定義的檔案中。預設為開啟。 115 xferlog_file=/var/log/vsftpd.log 116 設置日志文件名和路徑,默認值為/var/log/vsftpd.log。 117 xferlog_std_format=YES/NO(NO) 118 如果啟用,則日志文件將會寫成xferlog的標准格式,如同wu-ftpd 一般。默認值為關閉。 119 log_ftp_protocol=YES|NO(NO) 120 如果啟用此選項,所有的FTP請求和響應都會被記錄到日志中,默認日志文件在/var/log/vsftpd.log。啟用此選項時,xferlog_std_format不能被激活。這個選項有助於調試。默認值為NO。 121 12.定義用戶配置文件 122 在vsftpd中,可以通過定義用戶配置文件來實現不同的用戶使用不同的配置。 123 user_config_dir=/etc/vsftpd/userconf 124 設置用戶配置文件所在的目錄。當設置了該配置項后,用戶登陸服務器后,系統就會到/etc/vsftpd/userconf目錄下,讀取與當前用戶名相同的文件,並根據文件中的配置命令,對當前用戶進行更進一步的配置。 125 例 如:定義user_config_dir=/etc/vsftpd/userconf,且主機上有使用者 test1,test2,那么我們就在user_config_dir 的目錄新增文件名為test1和test2兩個文件。若是test1 登入,則會讀取user_config_dir 下的test1 這個檔案內的設定。默認值為無。利用用戶配置文件,可以實現對不同用戶進行訪問速度的控制,在各用戶配置文件中定義local_max_rate=XX, 即可。 126 13.FTP的工作方式與端口設置 127 FTP有兩種工作方式:PORT FTP(主動模式)和PASV FTP(被動模式) 128 listen_port=21 129 設置FTP服務器建立連接所監聽的端口,默認值為21。 130 connect_from_port_20=YES/NO 131 指定FTP使用20端口進行數據傳輸,默認值為YES。 132 ftp_data_port=20 133 設置在PORT方式下,FTP數據連接使用的端口,默認值為20。 134 pasv_enable=YES/NO(YES) 135 若設置為YES,則使用PASV工作模式;若設置為NO,則使用PORT模式。默認值為YES,即使用PASV工作模式。 136 pasv_max_port=0 137 在PASV工作模式下,數據連接可以使用的端口范圍的最大端口,0 表示任意端口。默認值為0。 138 pasv_min_port=0 139 在PASV工作模式下,數據連接可以使用的端口范圍的最小端口,0 表示任意端口。默認值為0。 140 14.與連接相關的設置 141 listen=YES/NO(YES) 142 設 置vsftpd服務器是否以standalone模式運行。以standalone模式運行是一種較好的方式,此時listen必須設置為YES,此為默 認值。建議不要更改,有很多與服務器運行相關的配置命令,需要在此模式下才有效。若設置為NO,則vsftpd不是以獨立的服務運行,要受到xinetd 服務的管控,功能上會受到限制。 143 max_clients=0 144 設置vsftpd允許的最大連接數,默認值為0,表示不受限制。若設置為100時,則同時允許有100個連接,超出的將被拒絕。只有在standalone模式運行才有效。 145 max_per_ip=0 146 設置每個IP允許與FTP服務器同時建立連接的數目。默認值為0,表示不受限制。只有在standalone模式運行才有效。 147 listen_address=IP地址 148 設置FTP服務器在指定的IP地址上偵聽用戶的FTP請求。若不設置,則對服務器綁定的所有IP地址進行偵聽。只有在standalone模式運行才有效。 149 setproctitle_enable=YES/NO(NO) 150 設置每個與FTP服務器的連接,是否以不同的進程表現出來。默認值為NO,此時使用ps aux |grep ftp只會有一個vsftpd的進程。若設置為YES,則每個連接都會有一個vsftpd的進程。 151 15.虛擬用戶設置 152 虛擬用戶使用PAM認證方式。 153 pam_service_name=vsftpd 154 設置PAM使用的名稱,默認值為/etc/pam.d/vsftpd。 155 guest_enable= YES/NO(NO) 156 啟用虛擬用戶。默認值為NO。 157 guest_username=ftp 158 這里用來映射虛擬用戶。默認值為ftp。 159 virtual_use_local_privs=YES/NO(NO) 160 當該參數激活(YES)時,虛擬用戶使用與本地用戶相同的權限。當此參數關閉(NO)時,虛擬用戶使用與匿名用戶相同的權限。默認情況下此參數是關閉的(NO)。 161 16.其他設置 162 text_userdb_names= YES/NO(NO) 163 設置在執行ls –la之類的命令時,是顯示UID、GID還是顯示出具體的用戶名和組名。默認值為NO,即以UID和GID方式顯示。若希望顯示用戶名和組名,則設置為YES。 164 ls_recurse_enable=YES/NO(NO) 165 若是啟用此功能,則允許登入者使用ls –R(可以查看當前目錄下子目錄中的文件)這個指令。默認值為NO。 166 hide_ids=YES/NO(NO) 167 如果啟用此功能,所有檔案的擁有者與群組都為ftp,也就是使用者登入使用ls -al之類的指令,所看到的檔案擁有者跟群組均為ftp。默認值為關閉。 168 download_enable=YES/NO(YES) 169 如果設置為NO,所有的文件都不能下載到本地,文件夾不受影響。默認值為YES。