FTP伺服器iptables的配置

來源:互聯網
上載者:User

FTP伺服器iptables的配置
 系統:CentOS6.2
軟體:vsftpd, iptables
安裝完系統後,預設的iptables的規則只允許狀態為RELATED、ESTABILISHED的包和SSHD的資料包進入伺服器,當安裝好vsftpd後,通常需要在iptables上面放開21連接埠,完整的iptables配置如下:
iptables   -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
iptables   -A INPUT -p icmp -j ACCEPT 
iptables   -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT 
iptables   -A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT
iptables   -A INPUT -i lo -j ACCEPT 
iptables    -A INPUT -j REJECT --reject-with icmp-host-prohibited
在這樣的規則下面,用戶端能否正常登入到FTP伺服器上進行檔案的上傳和下載呢,測試過程如下:
此例中,FTP伺服器IP地址為192.18.2.75,iptables配置如下:



用戶端使用Filezilla Client進行串連,效果如:


中,伺服器要求使用被動模式(PASV)串連,從圖上可以看出,伺服器監聽連接埠44892(175*256+92)等待用戶端的串連,但iptables的規則阻止訪問該連接埠,所以串連失敗。
將Filezilla配置為主動模式,如:

串連伺服器:


可以看出串連成功。
因此,在上面的iptables規則下,只能使用主動模式串連。
如何允許使用被動模式呢?
方法一:使用nf_conntrack_ftp模組
插曲:在kernel2.6.19前,這個模組叫ip_conntrack.ko,位於
/lib/modules/`uname  -r`/kernel/net/ipv4/netfilter/ip_conntrack_ftp.ko。之後,這個模組改名為nf_conntrack_ftp.ko,位於
/lib/modules/`uname  -r` /kernel/net/netfilter/nf_conntrack_ftp.ko 
這個模組是Netfilter專門用來處理FTP這個複雜協議的模組,它能夠將FTP的資料包標識為RELATED狀態,從而允許使用被動模式訪問。
使用命令: modprobe   nf_conntrack_ftp   載入該模組,之後用戶端就能以被動模式串連至FTP伺服器了。




所示,使用被動模式,伺服器監聽連接埠號碼為159*256+8=40712,在FTP伺服器上查看TCP串連狀態,如:



的確是使用的40712號連接埠。

方法二:在vsftp的設定檔中使用如下兩個選項強制將被動模式時使用的連接埠號碼限定在一個範圍,然後在iptables上運行對這個範圍內連接埠的訪問,選項如下:
Pasv_min_port=10000
Pasv_max_port=15000

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.