本章重點:
1.FTP的連接方式:
FTP默認使用20號端口建立數據連接,並傳輸文件協議;使用21號端口進行建立控制連接,並傳輸FTP控制命令;
主動模式:服務器主動發起數據連接;
被動連接:服務器被動等待數據連接;
注意:無論主動或被動都是先由客戶端向服務器的21號端口建立ftp控制連接;詳細內容參考課本p51-52
2.ftp 服務器軟件的種類:windows系統中:IIS,Serv-U;
Linux系統中:proftpd,pureftpd,vsftpd(可支持15000個用戶併發連接); 還有一些ftp客戶端工具
注;這個不做重點,簡單瞭解一下
3.ftp的配置文件:
(1)用戶列表文件ftpusers和user_list
Ftpusers相當於黑名單,此文件中列出的用戶將禁止被登錄,默認已包括:root,bin,daemon等用於登錄系統的特殊用戶;
User_list文件:此文件中包含的用戶可能被禁止登陸,也可能被允許登陸,主要取決於主配置文件vsftpd.conf的設置,當存在userlist_enable=YES 時userlist列表文件方可生效,若指定userlist_deny=YES 時,則盡禁止此列表中的用戶登陸;若指定userlist_deny=NO 時,則允許列表中的用戶登陸
(2.)ftp的主配置文件:vsftpd.conf(具體的配置在後面詳解,可以參考課本p56)
3.安裝ftp服務,也是基於RedHat的系統光盤裏的包裝一個vsftpd的軟件包,也可用yum裝包
4.基於匿名用戶的ftp
將服務安裝好後,修改主配置文件/etc/vsftpd/vsftpd.conf 中的anonymous_enable=YES(允許匿名訪問)
執行 service vsftpd start 將服務啓動即可
注意下面幾個關於權限的配置項
Write_enable=YES 開放服務器的寫權限
Anon_umask=022 設置匿名用戶上傳數據的權限設置
Anon_upload_enable=YES 允許匿名用戶上傳文件
Anon_mkdir_write_enable=YES 允許匿名用戶創建目錄
5.需用戶驗證的FTP服務
將anonymous_enable=YES改正爲NO
可根據具體的需要將上述提到的幾個權限設置更改一下,例如:爲提高上傳的文件權限,可將權限設爲077(僅屬主用戶擁有權限):local_umask=077
由於是用戶驗證的FTP,所以可以用到前面提到的user_list用戶列表文件,當配置了user_list,它位於/etc/vsftpd/user_list,一定記得要在這配置文件中將它啓用(userlist_enable=YES)
6.vsftpd服務的其他配置:
(1)修改vsftpd服務的監聽地址,端口、
(2)允許使用FTP服務器的被動模式
(3)限制FTP連接的併發數,傳輸速度
在這裏就不做詳解了,可參考課本p61
7.基於虛擬用戶的賬號數據庫
Vsftpd服務使用Berkeley DB 格式的數據庫文件來存放虛擬用戶賬戶,所以要裝一個db4_utils 的軟件包,也是在RedHat的系統光盤裏安裝
Rpm -vih /media/cdrom/Server/db4_utils-4.3........
(1)創建文本格式的用戶名和密碼
Vi /etc/vsftpd/vusers.list
Zhangsan
123.Asd
Lisi
456.Asd
注:一個用戶名對應一個密碼
(2.)創建Berkeley DB 格式的數據庫文件
cd /etc/vsftpd
db_load -T -t hash -f vusers.list vusers.db
file vusers.db 查看轉換後的文件類型
注:db_load命令中,-t 是用於指定數據源文件,-T 允許非Berkeley DB 的應用程序使用從文本格式轉換的DB數據文件,-t hash ,是指定一個hash 算法
(3)爲提高虛擬用戶賬號文件的安全性,應將文件權限設爲600,以免數據外泄
Chmod 600 /etc/vsftpd/vusers.*
(4) 添加虛擬用戶的映射賬號,創建FTP根目錄
Useradd -d /var/ftproot -s /sbin/nologin virual(將使用的FTP根目錄設爲/var/ftproot/, 映射賬號的名稱爲virtual)
(5)爲虛擬用戶建立PAM認證文件
Vi /etc/pam.d/vsftpd.vu
#%PAM-1.0
auth required pam_userdb.so db=/etc/vsftpd/vuser
account 同上
(6)修改vsftpd配置,添加虛擬用戶支持,在這配置文件中添加下列配置即可:
guest_enable=YES 啓用映射功能
guest_username=virtual 指定映射的系統用戶名稱
pam_service_name-vsftpd.vu 制定新的PAM認證文件
(7)爲不同的虛擬用戶建立獨立的配置文件,需要在主配置文件中添加user_config_dir 的配置項:
user_config_dir=/etc/vsftpd/vusers_conf
有了上述配置後,就可以在/etc/vsftpd/vusers_dir目錄中爲每個虛擬用戶分別建立獨立的配置文件了
mkdir /etc/vsftpd/vusers_dir 創建用戶配置文件
cd /etc/vsftpd/vusers_dir
vi join 爲用戶join建立獨立的配置文件
anon_upload_enable=YES
anon_mkdir_write_enable=YES
最後一步,重新加載或重啓服務即可;
注意:本文中的所有第一個配置單詞都爲小寫