第七章
二、配置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