FTP:File TransferProtocol
???????? 21/tcp:
?
文件共享服務:應用層,ftp
?????????????????? NFS:Network File System (RPC: Remote Procedure Call,?遠程過程調用)
?????????????????? Samba:CIFS/SMB
?
FTP: tcp,?兩個連接
?????????命令連接,控制連接:21/tcp
?????????數據連接:
???????????????????主動模式:20/tcp
???????????????????被動模式:端口隨機
?
?????????數據傳輸模式(自動模式):
???????????????????二進制:
???????????????????文本:
?????????????????? ftpserver --> ftp client
?
?
This is a test file. -->
結構化數據
半結構化數據
非結構化數據
?
?
文本,二進制
???????? html,
???????? mp3,jpeg
?
?
服務器端程序:
???????? wu-ftpd:
???????? vsftpd:Very Secure ftp Daemon
???????? proftpd:
???????? pureftpd
???????? Filezilla
???????? Serv-U
?
客戶端程序:
???????? CLI:
?????????????????? ftp
?????????????????? lftp
?
???????? GUI:
?????????????????? gftpd
?????????????????? FlashFXP
?????????????????? Cuteftp
?????????????????? Filezilla
?
vsftpd:
???????? /etc/vsftpd:配置文件目錄
???????? /etc/init.d/vsftpd:服務腳本
???????? /usr/sbin/vsftpd:主程序
?
基于PAM實現用戶認證:
???????? /etc/pam.d/*
???????? /lib/security/*
???????? /lib64/security/*
?????????支持虛擬用戶
?
vsftpd: (ftp, ftp)
???????? /var/ftp:ftp服務根目錄
?
上傳和下載:
?
mail:
?
ftp:?系統用戶
?????????匿名用戶?-->?系統用戶:anonymous_enable
?????????系統用戶:local_enable
?????????虛擬用戶?-->?系統用戶
?
/var/ftp: ftp用戶的家目錄
?????????匿名用戶訪問目錄
?
?
chroot:?禁錮用戶于其家目錄中
?
?
系統用戶:
???????? write_enable=YES:上傳文件
?
?
?
文件服務權限:文件系統權限*文件共享權限
?
?
守護進程:
?????????獨立守護:適用于訪問量大,用戶在線時間長的用戶
?????????瞬時守護
???????????????????由xinetd代為管理
?
vsftpd:
???????? max_clients=#
???????? max_per_ip=#
?
安全通信方式:
???????? ftps:ftp+ssl/tls
???????? sftp:OpenSSH, SubSystem, sftp(SSH)
?
?
vsftpd: PAM(手動定義配置文件)
?????????匿名
?????????本地
?????????虛擬用戶
?????????????????? MySQL:VSFTPD, users?:?Name,Password
?????????????????? /etc/vsftpd/vusers:--> db_load
??????????????????????????? USERNAME
??????????????????????????? PASSWORD
?
db4-utils
?
postconf –m
?
具體配置:
anon_upload_enable=YES
允許上傳
anon_mkdir_write_enable=YES
允許創建文件、目錄
anon_other_write_enable=YES
允許刪除文件、目錄
注意:只有ftp權限是遠遠不夠的,必須同時打開本地文件系統的寫權限。(兩者必須同時具備時才可以執行相應的操作)
有一些特殊情況:windows上傳文件到linux服務器時,上傳的文件夾不會繼承權限屬性,文件夾內的內容已經上傳了,但是看不到文件夾內的內容,刪除時提示550。其本質是說我們沒有對該文件夾的操作權限。需要更改目錄權限。