FTP主被動模式抓包分析


FTP主被動模式抓包案例分析

1 FTP 工作模式

FTP有兩種工作模式,分別為主動模式和被動模式。所謂的主被動模式,是相對於服務器端而言的。

1.1主動模式

主動模式(Active Mode)是指在發起數據傳輸的時候,是由服務器端向客戶端主動發起連接請求。

主動模式的時序圖如下圖所示

抓包如下圖所示:

 

 

主動模式下的服務器端向客戶端發起請求

 

 

在主動模式下,如果客戶端有防火牆的話,就有可能服務器端發起主動連接失敗。

1.2 被動模式

被動模式(Passive Mode)是指在發起數據傳輸的時候,是客戶端主動發起請求(也就是服務器端被動)。

被動模式時序圖如下圖所示:

抓包分析的結果如下

控制信道三次握手

 

客戶端向服務器21端口發起請求(PASV模式)

 

服務器端響應了PORT 218,168,180,194,108,115,也就是跟客戶端說,你可以連接我的108*256+115端口,也即是27763端口

 

 

被動模式的情況下,如果主機或者防火牆有限制,客戶端在請求數據的時候,就無法連接服務器。

在被動模式下,如果是LINUX服務器,可以通過啟用ip_conntrack_ftp模塊來支持被動模式的FTP連接。具體修改方法如下

# vi /etc/sysconfig/iptables-config, 將IPTABLES_MODULES 一行修改為
IPTABLES_MODULES="ip_conntrack_ftp"

然后在iptables規則中,增加

# vim /etc/sysconfig/iptables
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

2 實際生產環境分析

生產環境的話,由於中間有防火牆,假設我們是客戶端,我們通過Active Mode去連接FTP服務器,首先我們通過防火牆出去訪問公網FTP的話,防火牆肯定會進行NAT轉換,否則 FTP服務器端收到的PORT就是192,168,0,100,xx,xx,這樣的話,服務器端肯定連接不了客戶端。

 

3 案例分析

生產環境一公網FTP 用戶登錄正常,但是無法列出目錄,報錯如下圖所示:

 

分析過程如下:

  1. 這個是一個vsftpd服務器,客戶端用的是被動模式。
  2. 已經登陸上了,證明控制信道是沒有問題的,是連接信道的問題。
  3. 抓包分析

客戶端

服務器端

這里至於為什么源IP和目的IP抓包看到都不一樣,是因為是公網IP,做過轉換的。

從這里可以看出,客戶端要連接服務器的12*256+166 = 3238端口。但是發的包服務器端沒有收到(客戶端還重發了包),到這里,猜測兩個原因:

  1. 網絡前端防火牆策略為開放3238端口
  2. 服務器端有防火牆

檢查了服務器端的防火牆配置,發現selinux, iptables都沒問題。

與網絡溝通了一下,網絡反饋沒有做過任何變更。繼續追問網絡前端是否有安全策略,答曰有。讓其截圖看了一下

 

開放的端口是3001~3100。查看了一下vsftpd的配置文件,其中有兩行如下

pasv_min_port=3001
pasv_max_port=3300

顯然,是這里的端口跟防火牆的不匹配,讓網絡同事把安全策略調整了一下后恢復正常。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM