iptables 中配置vsftp的訪問

來源:互聯網
上載者:User
FTP的主動模式(active mode)和被動模式(passive mode):

大多數的TCP服務是使用單個的串連,一般是客戶向伺服器的一個周知連接埠發起串連,然後使用這個串連進行通訊。但是,FTP協議卻有所不同,它使用雙向的多個串連

,而且使用的連接埠很難預計。一般,FTP串連包括:
一個控制串連

(control connection)

這個串連用於傳遞用戶端的命令和伺服器端對命令的響應。它使用伺服器的21連接埠,生存期是整個FTP會話時間。

幾個資料連線

(data connection)

這些串連用於傳輸檔案和其它資料,例如:目錄列表等。這種串連在需要資料轉送時建立,而一旦資料轉送完畢就關閉,每次使用的連接埠也不一定相同。而且,資料連線既可能是用戶端發起的,也可能是伺服器端發起的。

在FTP協議中,控制串連使用周知連接埠21

,因此使用ISA的IP PACKET FILTER就可以這種串連進行很好的安全保護。相反,資料轉送串連的目的連接埠通常實現無法知道,因此處理這樣的連接埠轉寄非常困難。F

TP協議使用一個標準的連接埠21作為ftp-data連接埠,但是這個連接埠只用於串連的源地址是伺服器端的情況,在這個連接埠上根本就沒有監聽進程。

FTP的資料連線和控制串連的方向一般是相反的,也就是說,是伺服器向用戶端發起一個用於資料轉送的串連。串連的連接埠是由伺服器端和用戶端協商確定的。FTP協議的這個特徵對ISA 轉寄以及防火牆和NAT的配置增加了很多困難。

除此之外,還有另外一種FTP模式,叫做被動模式

(passive mod)。在這種模式下,資料連線是由客戶程式發起的,和剛才討論過的模式(我們可以叫做主動模式

)相反。

是否採取被動模式取決於客戶程式,在ftp命令列中使用passive命令就可以關閉/開啟被動模式。

 

iptables中配置vsftp

問題:配置iptables後, vsftpd不能用。常見現象是能夠登入到伺服器,LIST列目錄失敗(逾時)。

分析:

主動模式

下,客戶串連 TCP/21,伺服器通過 TCP/20 串連客戶的隨機連接埠 

————這種情況下,通過狀態防火牆可以解決 iptables -A INPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
被動模式

下,客戶串連 TCP/21,客戶再通過其他連接埠串連伺服器的隨機連接埠

卡住的原因,是因為伺服器在被動模式下沒有開啟臨時連接埠讓 client 連過來,因此需要幾個條件

1、client 沒有防火牆時,用主動模式串連即可

2、server 沒有防火牆時,用被動模式即可

3、雙方都有防火牆時,vsftpd 設定被動模式高連接埠範圍,server 開啟那段範圍,client 用被動模式串連即可

4、載入 ip_conntrack_ftp 模組,使 server 支援 connection tracking,支援臨時打洞,client 用被動模式即可

5、server 使用 ip_conntrack_ftp、client 使用 ip_conntrack_ftp 和 ip_nat_ftp,支援臨時打洞和臨時 NAT 穿越打洞,雙方使用主動或被動模式均可

  • “打洞”的配置說明:

  •  優點:不影響ftp配置;缺點:客戶會感覺到串連有些延遲。原因參見ip_conntract的實現原理

在/etc/modprobe.conf中添加

alias ip_conntrack ip_conntract_ftp ip_nat_ftp

在/etc/rc.local中添加

/sbin/modprobe ip_conntract/sbin/modprobe  ip_conntrack_ftp/sbin/modprobe  ip_nat_ftp

這個作用就是完成上面所說的“臨時打洞”的方法。

 

  • 限制被動模式串連連接埠的配置說明

  • 優點:對連線速度沒有影響。缺點:限制了被動模式下,用戶端並發串連的數量。

在/etc/vsftpd/vsftpd.conf中添加

pasv_min_port=2222pasv_max_port=2225

iptables中開放這段連接埠

-A INPUT -m state --state
RELATED,ESTABLISHED -j ACCEPT

-A INPUT -p tcp -m state --state NEW -m
tcp --dport 21 -j ACCEPT

-A INPUT -p
tcp --dport 2222:2225 -j ACCEPT

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.