Linux網絡服務之VSFTP配置文件詳解

VSFTP配置文件詳解

1. 默認配置

允許匿名用戶和本地用戶登陸。anonymous_enable=YES ;local_enable=YES ;
匿名用戶使用的登陸名爲ftp或anonymous,口令爲空;匿名用戶不能離開匿名用戶家目錄/var/ftp,且只能下載不能上傳。
本地用戶的登錄名爲本地用戶名,口令爲此本地用戶的口令;本地用戶可以在自己家目錄中進行讀寫操作;本地用戶可以離開自家目錄切換至有權限訪問的其他目錄,並在權限允許的情況下進行上傳/下載。write_enable=YES ;
寫在文件/etc/vsftpd.ftpusers 中的本地用戶禁止登陸。

2. 配置文件格式

vsftpd.conf 的內容非常單純,每一行即爲一項設定。若是空白行或是開頭爲#的一行,將會被忽略。內容的格式只有一種,如下所示

option=value

要注意的是,等號兩邊不能加空白。

3. 匿名用戶( 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_upload s=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 )

local_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. :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 服務器的系統內部賬戶。如果系統沒有這兩個文件,那麼新建這兩個文件,將用戶添加進去即可。

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=60

PORT 方式下建立數據連接的超時時間,單位爲秒。默認值爲 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_serv ice_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_use rdb_names= YES/NO ( NO )

設置在執行 ls –la 之類的命令時,是顯示 UID、GID 還是顯示出具體的用戶名和組名。默認值爲 NO,即以 UID 和 GID 方式顯示。若希望顯示用戶名和組名,則設置爲 YES。

ls_recurse_enable=Y ES/NO ( NO )

若是啓用此功能,則允許登入者使用 ls –R(可以查看當前目錄下子目錄中的文件)這個指令。默認值爲 NO。

hide_ids=YES/NO ( NO )

如果啓用此功能,所有檔案的擁有者與羣組都爲 ftp,也就是使用者登入使用 ls -al 之類的指令,所看到的檔案擁有者跟羣組均爲 ftp。默認值爲關閉。

download_enable=YES/NO ( YES )

如果設置爲 NO,所有的文件都不能下載到本地,文件夾不受影響。默認值爲 YES。

17. 響應代碼解釋說明

110 新文件指示器上的重啓標記;

120 服務器準備就緒的時間(分鐘數);

125 打開數據連接,開始傳輸;

150 打開連接;

200 成功;

202 命令沒有執行;

211 系統狀態回覆;

212 目錄狀態回覆;

213 文件狀態回覆;

214 幫助信息回覆;

215 系統類型回覆;

220 服務就緒;

221 退出網絡;

225 打開數據連接;

226 結束數據連接;

227 進入被動模式(IP 地址、ID 端口);

230 登錄因特網;

250 文件行爲完成;

257 路徑名建立;

331 要求密碼;

332 要求帳號;

350 文件行爲暫停;

421 服務關閉;

425 無法打開數據連接;

426 結束連接;

450 文件不可用;

451 遇到本地錯誤;

452 磁盤空間不足;

500 無效命令;

501 錯誤參數;

502 命令沒有執行;

503 錯誤指令序列;

504 無效命令參數;

530 未登錄網絡;

532 存儲文件需要帳號;

550 文件不可用;

551 不知道的頁類型;

552 超過存儲分配;

553 文件名不允許;

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