iptables 中配置vsftp的訪問

2021-05-28 02:51:18 字數 1979 閱讀 1069

大多數的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後, 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 穿越打洞,雙方使用主動或被動模式均可

在/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=2222

pasv_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

Linux CentOS 7 安裝配置vsftp

學習linux時間不長,首次安裝了vsftp,按照網上的各種帖子嘗試配置,不過都沒打到預期,不是被拒絕連線,就是連線超時,總之就是各種問題啊。當然了,不是別人配置的不對,而是自己不是太懂linux,選擇的配置引數彼此之間不知道 起了衝突。所以結合自己的系統把安裝配置過程記錄下來,方便以後學習總結。y...

iptables中DNAT的配置方法

1.一對一流量完全dnat 首先說一下網路環境,普通主機一台做防火牆用,網絡卡兩塊 eth0 192.168.0.1內網 eth1 202.202.202.1 外網 內網中一台主機 192.168.0.101 現在要把外網訪問202.202.202.1的所有流量對映到192.168.0.101上 命...

iptables 配置例項

iptables f iptables x iptables f t mangle iptables t mangle x iptables f t nat iptables t nat x 首先,把三個表清空,把自建的規則清空。iptables p input drop iptables p ou...