第七章

二、配置FTP實現基本功能

vsftpd的配置文件是/etc/vsftpd.conf,通過設置該配置文件中各參數項的值可以實現需要的FTP服務功能。

1.配置FTP服務器主機特性參數

[root@vm ~]vi /etc/vsftpd.conf

以下設置是針對FTP服務器全局的,對所有用戶有效

設置主動模式工作下數據連接的端口號

connect_from_port_20=YES

設置使vsftpd服務是否以獨立進程方式啟動

listen=YES

設置命令通道使用的端口號

listen_port=21

啟動被動連接方式,NO表示不啟用

pasv_enable=YES

設置是否使用主機時間,默認為GMT

use_localtime=YES

是否允許用戶具有寫入的權限,包括刪除和修改

write_enable=YES

設置客戶端嚐試連接FTP命令通道的時限,超過設定值則強製斷線,單位是s

connect_timeout=60

用戶以被動模式(PASV)進行數據傳輸時,主機啟動被動端口的等待時限,超過則強製斷線

accept_timeout=60

設置數據傳輸的時限,若在指定時間內不能傳輸成功,則連接被強製切斷

data_connection_timeout=300

客戶端無操作的空閑等待時限

idle_session_timeout=300

設置vsftpd以standalone方式啟動時,允許同時接入的client數,0表示不限製

max_clients=0

設置同一個IP地址同時可允許的連接數,0表示不限製

max_per_ip=0

設置被動連接方式的端口號,如使用32110~32119段作為被動連接的端口

pasv_min_port=32110

pasv_max_port=32119

設置用戶無法登錄FTP主機時顯示給用戶的信息

ftpd_banner=信息串

用戶進入某個目錄時,允許顯示要注意的內容,顯示的文件默認是.message

dirmessage_enable=YES

message_file=.message

2.設置匿名用戶登錄參數

匿名用戶(anonymous)是指使用FTP服務但在FTP主機中沒有賬戶的用戶,匿名訪問是FTP服務的一種重要形式,互聯網上的FTP服務廣泛采用匿名訪問方式。

[root@vm ~]vi /etc/vsftpd.conf

允許匿名登錄,NO禁用匿名訪問

anonymous_enable=YES

設置是否允許匿名用戶下載可讀權限的文件,默認允許設置為YES,NO為禁止

anon_world_readable_only=YES

是否允許匿名用戶具有寫入權限,默認是NO,YES為允許寫入

anon_other_write_enable=NO

是否允許匿名用戶具有建立目錄的權限,默認是NO,YES為允許

anon_mkdir_write_enable=NO

是否允許匿名用戶具有上傳數據的功能,默認是NO

anon_upload_enable=YES

改變匿名用戶上傳文件的擁有者,NO為不改變

chown_uploads=YES

把上傳文件的擁有者改為指定的賬戶

chown_username=root

設置匿名賬戶登錄FTP主機是否使用密碼,YES為需要驗證密碼

no_anon_password=NO

以annoymous登錄時,要求輸入email地址作為密碼。設置是否拒絕某些email地址的

匿名用戶登錄,YES為啟用

deny_email_enable=YES

指定存放被拒絕登錄的匿名用戶的email地址的記錄文件

banned_email_file=/etc/vsftpd.banned_emails

限製annoymous的傳輸速率,單位是B/s,0為沒有限製

anon_max_rate=0

設置annoymous上傳文件的權限,077上傳文件的權限是-rw

anon_umask=077

3.設置實體用戶登錄FTP服務器

實體用戶是指在FTP服務器主機擁有實際賬戶的用戶。

[root@vm ~]vi /etc/vsftpd.conf

是否把非匿名登錄賬戶均視為guest賬戶,NO為不是

guest_enable=YES

是否允許/etc/passwd中的實體用戶賬號登錄FTP主機,NO為禁止實體用戶登錄

local_enable=YES

限製實體用戶傳輸速率,單位是B/s,0為沒有限製

local_max_rate=0

設置實體用戶在FTP創建文件的默認權限,與係統的umask相似

local_umask=022

設置寫入指定文件(一般是vsftpd.user_list)的賬戶不能登錄FTP主機,NO為不限製

userlist_enable=YES

設置限製登錄的賬號文件

userlist_file=/etc/vsftpd.user_list

userlist_enable=YES時userlist_deny設置生效,NO表示寫入/etc/vsftpd.user_list文件

的賬戶才可以登錄FTP服務,不在/etc/vsftpd.user_list中的賬戶不能登錄

userlist_deny=YES

將實體用戶限製在它們的主目錄中,NO為不限製

chroot_local_user=YES(NO)

設置是否把列表文件中的實體用戶限製在它們的主目錄中,默認是NO

chroot_list_enable=YES

啟動chroot_list_enable後,在文件chroot_list中寫入需要限製的用戶賬號

chroot_list_file=/etc/vsftpd/chroot_list

學藝錦囊

◎vsftpd隻有一個配置文件/etc/vsftpd.conf,關於FTP服務器主機的全局配置、匿名用戶和實體用戶的配置均在這個文件中。文件中的“”是注釋符,以號開始的參數項不起作用或按默認值工作,去掉參數項前的可使選項生效。

◎配置文件/etc/vsftpd.conf參數設置的一般格式為:參數名=參數值,“=”兩邊不能有空格。

◎匿名用戶要上傳文件必須把anon_upload_enable和anon_other_write_enable兩參數值設置為YES,全局參數write_enable也要設置為YES。

◎FTP用戶對FTP主機中文件的讀寫權限同時受FTP服務器的權限配置和文件係統權限的設置。

◎實體用戶可以通過網絡連接到主機進行工作,沒有必要開放FTP服務。由於係統對實體用戶沒有必要進行限製,因此允許實體用戶登錄對係統有安全隱患。

當允許實體用戶登錄FTP服務時,要配置嚴格的權限限製。

◎對於訪問量大的FTP服務宜采用獨立進程模式運行,服務效率較高;如果是僅供少數人使用,則可以采用超級守護進程來管理FTP服務的運行。

三、配置FTP服務的安全選項

FTP服務安全選項包括驗證模塊、日誌功能、是否支持TCP_Wrappers、是否支持ASCII格式上傳與下載文件等,限製實體用戶的登錄以及把實體用戶限定在自己的主目錄中,限製匿名登錄的Email地址等方麵。

(1)配置FTP係統的安全參數。

[root@vm ~]vi /etc/vsftpd.conf

是否支持以ASCII格式上傳文件,YES表示支持以ASCII格式上傳文件

ascii_upload_enable=YES

YES表示客戶以ASCII格式下載文件,易導致DoS攻擊,默認是NO

ascii_download_enable=YES

是否為每個建立的連接都啟動一個進程負責,YES可提高vsftpd的效率,但也加重了

係統的負擔,最好設置成NO

one_process_model=NO

設置用戶上傳下載的文件記錄到日誌文件中,NO為不啟用日誌

xferlog_enable=YES

指定日誌文件

xferlog_file=/var/log/vsftpd.log

設置vsftpd服務執行者,默認為nobody,nobody權限低有利於係統安全

nopriv_user=nobody

設置用於驗證的pam模塊的名稱,存放在/etc/pam.d/vsftpd中

pam_service_name=vsftpd

設置是否使用TCP_Wrappers來控製對FTP服務器的訪問

tcp_wrappers=YES

(2)把實體用戶限製在其主目錄中。

①指定的用戶賬戶限製在主目錄,其他賬戶不限製。

啟用主目錄限製

[root@vm ~]vi /etc/vsftpd.conf

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list

把要限製的賬戶寫入文件/etc/vsftpd/chroot_list中,一個賬戶名占一行

[root@vm ~]vi /etc/vsftpd/chroot_list

chu1

chu2

hws101

……

②設置所有用戶賬戶默認限製在主目錄中,指定的賬戶不限製。

啟用主目錄限製

[root@vm ~]vi /etc/vsftpd.conf

chroot_local_user=YES

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list

把不用限製的賬戶寫入文件/etc/vsftpd/chroot_list中

[root@vm ~]vi /etc/vsftpd/chroot_list

hnger1

hnger2

……

(3)禁止指定的實體用戶登錄。

①使用vsftpd內置功能實現。

啟用vsftpd內置的禁止實體用戶登錄FTP服務器的功能

[root@vm ~]vi /etc/vsftpd.conf