研究Linux下Firewall防火墻的配置 |
發布時間: 2012/5/21 17:00:04 |
最近在研究Linux下Firewall的配置,發現配置好防火墻以后ftp就有問題了,一直都不能夠用Filezilla 和 CuteFTP登錄,在列出目錄的時候一直會失敗。但是在命令行下面如果先執行passive off,一切正常。 答案在CU上找到的,主要是要使用 ip_conntrack_ftp 原文: 使用 -P INPUT DROP 引起的網路存取正常,但是 ftp 連入卻失。 依據前面介紹方式,只有開放 ftp port 21 服務,其他都禁止的話,一般會配置使用: iptables -P INPUT DROP iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT iptables -A INPUT -p tcp --dport 21 -j ACCEPT iptables -P INPUT DROP iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT iptables -A INPUT -p tcp --dport 21 -j ACCEPT 這樣的配置,確認 ftp 用戶端是可以連到 ftp 億恩科技主機并且看到歡迎登入畫面,不過后續要瀏覽檔案目錄清單與檔案抓取時卻會發生錯誤。.. ftp 協定本身于 data channnel 還可以區分使用 active mode 與 passive mode 這兩種傳輸模式,而就以 passive mode 來說,最后是協議讓 ftp client 連結到 ftp server 本身指定于大于 1024 port 的連接埠傳輸資料。 這樣配置在 ftp 傳輸使用 active 可能正常,但是使用 passive mode 卻發生錯誤,其中原因就是因為該億恩科技主機firewall 規則配置不允許讓 ftp client 連結到 ftp server 指定的連結埠才引發這個問題。 要解決該問題方式,于 iptables 內個名稱為 ip_conntrack_ftp 的 helper,可以針對連入與連外目的 port 為 21 的 ftp 協定命令溝通進行攔截,提供給 iptables 設定 firwewall 規則的配置使用。開放做法為: modprobe ip_conntrack_ftp iptables -P INPUT DROP iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -p tcp --dport 21 -j ACCEPT modprobe ip_conntrack_ftp iptables -P INPUT DROP 本文出自:億恩科技【www.laynepeng.cn】 |