FTP(File transfer protocol)是相當古老的的傳輸協議之一,他最主要的功能是在服務器與客戶端之間進行文件傳輸。這個古老的協議使用的是明碼傳輸方式,因此在使用當中會有相當多的安全問題。FTP的傳輸使用的是TCP協議,是一種C/S模式架構,服務端通過FTP服務向用戶提供FTP服務,客戶端通過客戶端命令連接服務端來進行與數據的傳輸。我們知道TCP在建立連接前會先進行三次連接過程,分別是命令通信連接和數據傳輸連接兩個通道,這兩個連接通道都必須要進行這三次握手過程,命令連接是指文件管理類命令,始終在線的連接;數據連接是指數據的傳輸,是按需創建及關閉的連接,在數據傳輸過程中可以使用以文本形式傳輸也可以使用二進制形式傳輸,這個需要注意的是數據原先是什麼樣的編碼,那就必須以這樣的編碼傳輸,是不能認爲來限定使用什麼樣的格式傳輸。
Vsftpd全名叫做Very Secure FTP Daemon,意思是非常安全的FTP服務,它之所以稱之爲非常安全,是因爲vsftpd是針對操作系統的權限來設計的,這裏的操作系統權限是發起該服務進程權限,因爲進程的權限是發起者的權限,而非程序的權限,通常vsftpd服務的啓動權限非常的低,因此其對Linux系統的操作是有限的,另外還在上面提到的限制用戶的家目錄功能,vsftpd可以使用chroot函數來將特定的目錄變成根目錄,但這裏的根目錄並非操作系統的根,而是vsftpd活動的根目錄,等等。
一、vsftpd的安裝
(1)安裝方式:vsftpd所對應的rpm程序包也是vsftpd,安裝方式可以用yum或者rpm等等
(2)安裝後生成的文件及目錄
1、用戶認證配置文件:/etc/pam.d/vsftpd
2、配置文件目錄: /etc/vsftpd
3、主配置文件:vsftpd.conf
4、匿名用戶(映射爲ftp用戶)共享資源位置:/var/ftp
5、系統用戶通過ftp訪問的資源的位置:用戶自己的家目錄
6、虛擬用戶通過ftp訪問的資源位置:給虛擬用戶指定的映射成爲的系統用戶的家目錄。
二、啓動服務
就可以通過service vsftpd restart來啓動vsftpd服務
三、Vsftpd功能
(1)匿名用戶的配置
1、anonymous_enable=(YES) 是否啓用匿名用戶(默認是啓動)
2、anon_upload_enable=YES 是否允許匿名用戶上傳(默認關閉)
注意:如需啓動,需讓ftp用戶對/var/ftp/pub及其他需要上傳的目錄設置wx權限
3、anon_mkdir_write_enable=YES 是否允許匿名用戶創建目錄(默認關閉)
注意:如需啓動,需讓ftp用戶對/var/ftp/pub及其他需要上傳的目錄設置wx權限
4、no_anon_password=YES使用ftp客戶端登錄匿名時,是否需要密碼(默認不需要),如爲NO,則需要輸入任意密碼,如爲YES,直接登錄,不用輸入。
5、anon_other_write_enable=(YES) 匿名用戶是否可以刪除及重命名(默認關閉)
6、chown_uploads匿名用戶上傳文件的所屬人是否要更改。如YES,則更改爲chown_username所指定的
7、anon_max_rate匿名用戶上傳和下載的最大速度,單位字節
(2)系統用戶配置
1、local_enable=(YES) 是否啓動本地用戶(默認是啓動)
2、write_enable=(NO) 是否允許本地用戶上傳文件(默認不允許)
3、local_umask=022 本地用戶上傳文件的默認權限(默認爲077)
4、guest_enuable所有的非匿名用戶都映射爲了guest用戶(默認爲關閉)
5、local_root 非匿名用戶登錄時所在的目錄,默認是各自的家目錄
6、local_max_rate 系統本地用戶上傳和下載的最大速度,單位字節
(3)其他設置
1、listen_port FTP命令端口號(默認爲21)
2、connect_from_port_20是否允許主動傳輸(默認啓動)
3、ftp_data_port主動模式使用的端口(默認端口爲20)
4、xferlog_enable=(YES) 是否開啓上傳、下載日誌(默認關閉)