vsftpd服務總結(一)

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

1.FTP的原理安全


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

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

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

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

主動方式過程:首先由客戶端發起鏈接,使用TCP鏈接服務器的21號端口,以後客戶端在控制通道發送PORT指令,裏面描述了客戶端使用什麼端口號接收數據(通常大於1024),而後服務器使用TCP在本身的20號端口和客戶端創建鏈接。異步

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


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


2.vsftpd的安裝
ide

若配有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/vsftpd vsftpd的主程序
/etc/rc.d/init.d/vsftpd vsftpd的啓動腳本
/etc/pam.d/vsftpd PAM認證文件
/etc/vsftpd/ftpusers 禁止使用vsftpd的用戶列表
/etc/vsftpd/user_list 禁止或容許使用vsftpd的用戶列表文件,這個文件中指定的用戶缺省狀況有說明
/var/ftp FTP的家目錄,也就是匿名用戶登陸到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 未執行請求的的命令,名稱不正確。
相關文章
相關標籤/搜索