主動方式:
1.客戶端從自己的任意一個非特權端口x (x>1024)向ftp服務器的命令端口21 發送syn請求。併發送active 和port x+1指令,向ftp服務器指明使用主動方式,並告訴ftp服務器自己的端口爲x+1 .
2.服務器端收到syn請求後,從自己的21端口發送syn+ack 迴應。
3.然後ftp服務器主動使用自己的20 端口向客戶端的x+1端口發送syn請求。
4.客戶端 的x+1端口向ftp服務器的20 端口做出迴應
5.ftp客戶端的x+1端口和ftp 服務器端的20 端口開始傳遞數據。
被動方式:
1. .客戶端從自己的任意一個非特權端口x (x>1024)向ftp服務器的命令端口21 發送syn請求。併發送pasv指令,告訴ftp服務器採用被動方式。
2.ftp服務器收到syn請求後,用21端口向客戶端的x端口做出迴應。併發送port y告訴ftp客戶端自己的接口y.
3.客戶端使用自己的接口x+1來向服務器端的y端口發送連接請求。
4.y端口做出迴應。
5.然後兩端通過x+ 1接口和 y接口進行數據傳輸。
FTP服務器的搭建
1.新建掛載點,掛載光盤
[root@localhost ~]# mkdir /mnt/cdrom
[root@localhost ~]# mount /dev/cdrom /mnt/cdrom
2.安裝vdftpd 軟件包
[root@localhost ~]# rpm -ivh /mnt/cdrom/Server/vsftpd-2.0.5-16.el5.i386.rpm
3.打開vdftpd的配置文件
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES 允許匿名用戶登錄
local_enable=YES 允許本地用戶登錄
write_enable=YES 站點可以上傳文件(還需要修改本地權限)
local_umask=022 本地賬戶上傳文件或目錄的權限屏蔽碼
anon_upload_enable=YES 匿名用戶可以上傳文件
anon_mkdir_write_enable=YES 匿名用戶可以創建文件夾
anon_other_write_enable =YES 匿名用戶別的寫權限(重命名、刪除配合sticky位)
匿名用戶上傳的文件所有者爲ftp,權限爲600,目錄權限爲700,其他用戶無法讀取該文件 ,進而將無法下載文件。只需給上傳的文件添加read權限即可下載。
或者修改anon_umask=073 即可
dirmessage_enable=YES 切換目錄時,信息提示。在目錄下創建.message文件
xferlog_enable=YES 開啓日誌功能
xferlog_file=/var/log/xferlog 日誌文件位置
xferlog_std_format=YES 日誌格式爲標準
idle_session_timeout=600 會話超時
data_connection_timeout=120 連接超時
deny_email_enable=YES 拒絕使用郵箱作爲密碼登陸
banned_email_file=/etc/vsftpd/banned_emails 該文件中的郵箱將無法作爲密碼登錄
listen=YES 表明vsftpd 爲獨立守護進程
chroot_list中的賬戶將被鎖定:
chroot_list_enable=YES
#chroot_local_user=YES
chroot_list_file=/etc/vsftpd/chroot_list
chroot_list中的賬戶不被鎖定,文件外的賬戶被鎖定
chroot_list_enable=YES
chroot_local_user=YES
chroot_list_file=/etc/vsftpd/chroot_list
文件內的賬戶被鎖定
chroot_list_enable=YES
chroot_local_user=NO
chroot_list_file=/etc/vsftpd/chroot_list
userlist_enable=YES
userlist_deny=YES (默認)
ftpusers中的用戶輸入密碼後登錄失敗
user_list中用戶在輸入密碼前禁止登錄
userlist_enable=YES
userlist_deny=NO
只有在user_list中用戶在輸入密碼後可以登錄
ftpusers 中的和不在ftpsuers中的用戶依舊不可以登錄
tcp_wrappers=YES
支持簡易防火牆 /etc/hosts.allow /etc/hosts.deny
ldd /usr/sbin/vsftpd 查看動態鏈接庫是否支持tcp_wrappers
/etc/hosts.deny /etc/hosts.allow 語法:
服務名:來源:動作
在/etc/hosts.deny中設置拒絕所有
all:all:deny
在/etc/hosts.allow中設置只允許特定的ip訪問ftp服務
vsftpd:192.168.101.1:allow
在/etc/hosts.allow中設置只禁止特定的ip訪問ftp服務
vsftpd:192.168.101.1:deny
vsftpd:all:allow
windows ftp 命令:
dir 列出遠程目錄下的文件
!dir 列出本地目錄下的文件
cd 遠程切換目錄
lcd 本地切換目錄
get 下載
mget 一次下載多個:mget f1*
put 上傳
mput 一次上傳多個
bin 設置類型爲二進制
ascii 設置類型爲ascii
FTPS
ftp 採用明文傳輸,在網絡傳輸過程中容易被抓包抓到有價值信息
1.安裝wireshark 抓包工具
[root@localhost Server]# rpm -ivh libsmi-0.4.5-2.el5.i386.rpm
[root@localhost Server]# rpm -ivh wireshark-1.0.8-1.el5_3.1.i386.rpm
2. user1 登錄ftp服務器
[root@localhost ~]# tshark -ni eth0 -R "tcp.dstport eq 21"
3.搭建ca證書服務器
[root@localhost ~]# vim /etc/pki/tls/openssl.cnf
4.創建三個目錄,兩個文件
[root@localhost ~]# cd /etc/pki/CA/
[root@localhost CA]# mkdir certs newcerts crl
[root@localhost CA]# touch index.txt serial
[root@localhost CA]# echo "01" >serial
5.CA服務器產生自己的證書
[root@localhost CA]# openssl genrsa 1024 >private/cakey.pem
6.CA服務器產生證書
[root@localhost CA]# openssl req -new -key private/cakey.pem -x509 -out cacert.pem
7.ftp服務器產生自己的私鑰
[root@localhost CA]# mkdir /etc/vsftpd/certs
[root@localhost CA]# cd /etc/vsftpd/certs/
[root@localhost certs]# openssl genrsa 1024 >vsftpd.key
8.ftp服務器產生請求
[root@localhost certs]# openssl req -key vsftpd.key -out vsftpd.csr
9.CA 服務器頒發證書
[root@localhost certs]# openssl ca -in vsftpd.csr -out vsftpd.cert
10.修改CA服務器的證書及私鑰的權限
[root@localhost certs]# cd /etc/pki/CA/
[root@localhost CA]# chmod 600 private/cakey.pem
[root@localhost CA]# chmod 600 cacert.pem
11.ftp服務器的證書及私鑰文件的權限
[root@localhost certs]# chmod 600 *
12.當用戶通過ftps方式訪問ftp服務器是,要調用ftp服務器的證書。所以要在ftp的配置文件中說明只能是及私鑰位置
rsa_cert_file=/etc/vsftpd/certs/vsftpd.cert ftp服務器的證書位置
rsa_private_key_file=/etc/vsftpd/certs/vsftpd.key ftp服務器的私鑰位置
ssl_enable=YES 開啓ssl加密功能
ssl_tlsv1=YES 可以使用ssl版本1
ssl_sslv2=YES 可以使用ssl版本2
ssl_sslv3=YES 可以使用ssl版本3
force_local_logins_ssl=YES 強制本地用戶使用ssl加密登錄
13.保存退出,重啓ftp服務器。
[root@localhost CA]# service vsftpd restart
關閉 vsftpd: [確定]
爲 vsftpd 啓動 vsftpd: [確定]
14.使用tshark抓包
[root@localhost ~]# tshark -ni eth0 -R "tcp.dstport eq 21"
15.配置ftp客戶端軟件
新建ftp站點
選擇連接類型爲ssl加密