vsftpd服務總結(一)

vsftpd是現在大多數linux發行版默認的FTP服務,它是一款以安全著稱的ftp軟件。

1.FTP的原理


FTP會話包括兩個端口,一個是控制端口,一個是數據端口。

控制端口:控制端口也就是和FTP服務器進行溝通的通道,連接FTP,發送FTP指令都是由控制端口完成的。

數據端口:是和FTP服務器之間進行數據傳輸時候使用的通道。

FTP協議中,控制連接都是由客戶端發起的,而數據連接有兩種方式:PORT(主動方式)和PASV(被動方式)。

主動方式過程:首先由客戶端發起連接,使用TCP連接服務器的21號端口,之後客戶端在控制通道發送PORT指令,裏面描述了客戶端使用什麼端口號接收數據(一般大於1024),然後服務器使用TCP在自己的20號端口和客戶端建立連接。

被動方式過程:首先還是由客戶端發起連接,使用TCP連接服務器的21號端口,然後客戶端通過控制端口發送PASV指令,然後服務器協商出一個端口(大於1024)告訴客戶端使用該端口傳輸數據,之後客戶端去連接該端口建立連接。


注意:若企業內使用防火牆,主動方式建立連接時候將有一些問題!!!


2.vsftpd的安裝

若配有yum源使用yum安裝

[root@localhost ~]# yum install vsftpd

若使用debian系統

[root@localhost ~]# apt-get install vsftpd

若使用RPM安裝

[root@localhost ~]# rpm -ivh vsftpd*.rpm 

也可以使用源碼安裝。

安裝完之後記得  service vsftpd start,然後

[root@localhost ~]# chkconfig vsftpd on 開機自動啓動

3.vsftpd的一些配置說明

/etc/vsftpd/vsftpd.conf主配置文件
/usr/sbin/vsftpdvsftpd的主程序
/etc/rc.d/init.d/vsftpdvsftpd的啓動腳本
/etc/pam.d/vsftpdPAM認證文件
/etc/vsftpd/ftpusers禁止使用vsftpd的用戶列表
/etc/vsftpd/user_list禁止或允許使用vsftpd的用戶列表文件,這個文件中指定的用戶缺省情況有說明
/var/ftpFTP的家目錄,也就是匿名用戶登錄到FTP的家目錄

下面對vsftpd.conf裏面的文件做簡要的說明:

anonymous_enable=YES

#是否允許匿名登錄FTP服務器,默認設置爲YES允許,用戶可使用用戶名ftp或anonymous進行ftp登錄,如不允許匿名訪問則設置爲NO。

local_enable=YES

# 是否允許本地用戶(即linux系統中的用戶帳號)登錄FTP服務器,默認設置爲YES允許本地用戶登錄後會進入用戶主目錄,而匿名用戶登錄後進入匿名用戶的下載目錄/var/ftp/pub, 若只允許匿名用戶訪問,前面加上#註釋掉即可阻止本地用戶訪問FTP服務器 。

write_enable=YES

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

local_umask=022

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

anon_upload_enable=YES

#是否允許匿名用戶上傳文件,須將全局的write_enable=YES。默認爲YES

anon_mkdir_write_enable=YES

#是否允許匿名用戶創建新文件夾

dirmessage_enable=YES

# 是否激活目錄歡迎信息功能

xferlog_enable=YES

#是否啓用日誌,在/var/log/xferlog

connect_from_port_20=YES

#是否使用20號端口作爲數據端口

chown_uploads=YES
chown_username=whoever
#設置是否改變上傳文件的所屬着,下面一個是若要改變則改爲的所屬人,不推薦使用root用戶xferlog_file=/var/log/xferlog

xferlog_std_format=YES

xferlog_enable=YES

#是否啓用日誌,在/var/log/xferlog,日誌的一些設置。

idle_session_timeout=600

# 設置數據傳輸中斷間隔時間,此語句表示空閒的用戶會話中斷時間爲600秒,即當數據傳輸結束後,用戶連接FTP服務器的時間不應超過600秒。可以根據實際情況對該值進行修改

data_connection_timeout=120

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

nopriv_user=ftpsecure

#運行vsftpd需要的非特權系統用戶,缺省是nobody

async_abor_enable=YES

#是否識別異步ABOR請求。 如果FTP client會下達“async ABOR”這個指令時,這個設定才需要啓用  而一般此設定並不安全,所以通常將其取消

ascii_upload_enable=YES

ascii_download_enable=YES

#是否以ASCII方式傳輸數據。默認情況下,服務器會忽略ASCII方式的請求。 啓用此選項將允許服務器以ASCII方式傳輸數據。不過,這樣可能會導致由"SIZE /big/file"方式引起的DoS***,故默認關閉

ftpd_banner=Welcome to blah FTP service.

登錄FTP服務器時顯示的歡迎信息,如有需要,可在更改目錄歡迎信息的目錄下創建名爲.message的文件,並寫入歡迎信息保存後。

deny_email_enable=YES

#黑名單設置。如果很討厭某些email address,就可以使用此設定來取消他的登錄權限,可以將某些特殊的email address抵擋住。

banned_email_file=/etc/vsftpd/banned_emails

#當上面的deny_email_enable=YES時,可以利用這個設定項來規定哪些郵件地址不可登錄vsftpd服務器,此文件需用戶自己創建,一行一個email address即可

chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

#你可以指定一個列表把本地用戶鎖定在他們的家目錄,如果chroot_local_user=YES,這個列表(/etc/vsftpd/chroot_list)就是不把本地用戶鎖定家目錄的列表,就是可以切換到/下,不安全

/etc/vsftpd/chroot_list

#是否允許遞歸查詢。默認爲關閉,以防止遠程用戶造成過量的I/O

listen=YES

listen_ipv6=YES

#是否允許監聽,設爲yes,vsftpd將以獨立模式運行,監聽ipv4和ipv6端口

pam_service_name=vsftpd

#設置PAM外掛模塊提供的認證服務所使用的配置文件名,即/etc/pam.d/vsftpd文件

userlist_enable=YES

設置是否阻扯user_list文件中的用戶登錄FTP服務器,默認爲YES。user_list文件裏面(userlist_deny=YES/NO)若此項設爲YES,則user_list文件中的用戶允許登錄FTP服務器,而如果同時設置了userlist_deny=YES,則user_list文件中的用戶將不允許登錄FTP服務器,甚至連輸入密碼提示信息都沒有。

tcp_wrappers=YES

#是否使用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通,但無法連接。


登錄時候一些數字提示信息

110 重新啓動標記應答。
120 服務在多久時間內ready。
125 數據鏈路端口開啓,準備傳送。
150 文件狀態正常,開啓數據連接端口。
200 命令執行成功。
202 命令執行失敗。
211 系統狀態或是系統求助響應。
212 目錄的狀態。
213 文件的狀態。
214 求助的訊息。
215 名稱系統類型。
220 新的聯機服務ready。
221 服務的控制連接端口關閉,可以註銷。
225 數據連結開啓,但無傳輸動作。
226 關閉數據連接端口,請求的文件操作成功。
227 進入passive mode。
230 使用者登入。
250 請求的文件操作完成。
257 顯示目前的路徑名稱。
331 用戶名稱正確,需要密碼。
332 登入時需要賬號信息。
350 請求的操作需要進一部的命令。
421 無法提供服務,關閉控制連結。
425 無法開啓數據鏈路。
426 關閉聯機,終止傳輸。
450 請求的操作未執行。
451 命令終止:有本地的錯誤。
452 未執行命令:磁盤空間不足。
500 格式錯誤,無法識別命令。
501 參數語法錯誤。
502 命令執行失敗。
503 命令順序錯誤。
504 命令所接的參數不正確。
530 未登入。 
532 儲存文件需要賬戶登入。
550 未執行請求的操作。
551 請求的命令終止,類型未知。
552 請求的文件終止,儲存位溢出。  
553 未執行請求的的命令,名稱不正確。


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