FTP:file Transfer protocol
FTP協議:
tcp/21端口:命令連接,控制連接
tcp/20端口:文件傳輸連接
FTP:文件共享服務,工作在應用層
RPC:Remote Procedure Call,遠程過程調用:實現兩個進程之間使用二進制格式通信
NFS:Network filesystem:依賴RPC協議
Samba:CIFS/SMB協議,CIFS:Common Inter FileSystem
服務器程序:
wu-ftpd:比較早的的FTP,功能強大,但不是模塊化設計
vsftpd:Very Secure ftp Daemon,安全性強
proftpd:
pureftpd:
Serv-U:
filezilla
客戶端程序:
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/*
支持虛擬用戶
/var/ftp:文件目錄存放路徑、
/etc/vsftpd/ftpusers:定義哪些用戶不能訪問ftp服務
/etc/vsftpd/user_list:定義哪 些用戶訪問ftp服務
ftp的用戶:
匿名用戶
虛擬用戶
系統用戶
/var/ftp:ftp用戶的家目錄
匿名用戶訪問目錄,即匿名用戶映射爲了ftp用戶
匿名用戶帳戶:anonymous
vsftpd.conf配置文件
anonymous_enable=YES #開啓匿名用戶訪問 anonymous_enable=YES #是否允許本地用戶登陸ftp write_enable=YES #用戶是否可以上傳文件(指系統用戶) anon_upload_enable=YES #是否允許匿名用戶上傳文件 anon_mkdir_write_enable=YES #是否允許匿名用戶寫文件 anon_other_write_enable=YES #是否開啓其他權限,如刪除文件 dirmessage_enable=YES #用戶進入一個目錄後,顯示歡迎文件,在目錄上建立.message文件即可 xferlog_enable=YES #是否打開傳輸日誌 xferlog_file=/var/log/xferlog #是否打開傳輸日誌文件保存位置 xferlog_std_format=YES #日誌文件格式 #chown_uploads=YES #chown_username=whoever #此項和上一項表示,是否用戶上傳完成文件,更改文件的屬主、屬組 #idle_session_timeout=600 #data_connection_timeout=120 #此項和上一項表示定義會議超時時長的指令 #ascii_upload_enable=YES #ascii_download_enable=YES #此項和上一項定義上傳下載是否使用ascii格式 #chroot_list_enable=YES #表示是不是使用一個用戶來定義用戶,把他鎖在家目錄下 #chroot_list_file=/etc/vsftpd/chroot_list #在哪個文件創建列表,列表中的哪此用戶鎖在家目錄 #chroot_local_user=YES #系統中的所有用戶都會被鎖在家目錄下,需關閉上面兩項 listen=YES #表示vsftpd是否工作爲一個獨立的守護進程 pam_service_name=vsftpd #vsftpd接受pam控制,控制的配置文件叫什麼名字,如vsftpd userlist_enable=YES#是否使用user_list這個文件來控制登陸ftp,YES表示啓用 userlist_deny=YES #YES表示表中的用戶不能登陸FTP,NO表示只有user_list中的用戶可以登陸 max_clients = # #定義最大用戶連接數 max_per_ip = # #定義每個IP地址發起幾個連接請求 #ftps+ssl的實現 ssl_enable=YES ssl_tlsv1=YES ssl_tlsv2=YES ssl_sslv3=YES allow_anon_ssl=NO force_local_data_ssl=YES force_local_logins_ssl=YES rsa_cert_file=/etc/vsftpd/ssl/vsftpd_cert.pem rsa_private_key_file=/etc/vsftpd/ssl/vsftpd_key.pem #開啓虛擬用戶認證,需添加以下兩行 guest_enable=YES guest_username=vuser #開啓來賓帳戶,映射爲vuser用戶 #虛擬用戶實現不同的權限 user_config_dir=/etc/vsftpd/vusers_dir #需要關閉所有anon的功能 #mkidr /etc/vsftpd/vusers_dir/ #cd /etc/vsftpd/vusers_dir #touch tony #vim tony anon_upload_enable=YES anon_mkdir_wirte_enable=YES
共享服務權限:文件系統權限*文件共享權限
FTP安全通信方式:
ftps:ftp+ssl/tls
sftp:Openssh,subsystem,sftp(SSH實現)