iptables防火牆與vsftpd的被動傳輸模式

2021-08-31 05:06:10 字數 959 閱讀 7293

linux伺服器上開啟了防火牆,並配置vsftpd,就出現了一些問題

iptables的配置策略往往就限制入站的目的埠,ftp伺服器使用標準的21埠作為控制埠,但是資料的傳輸埠取決於傳輸模式

主動模式:

伺服器以源埠20或隨機埠向客戶端的協商的隨機埠發起鏈結,也就是說,這時兩邊防火牆的策略應該是:

伺服器端應該允許目標埠為20的入站連線,允許所有隨機埠的出站連線

當然,伺服器是否以20為源埠連線,取決於/etc/vsftpd.conf是否設定

connect_from_port_20=yes

客戶端應該允許所有源埠為20的入站連線,允許所有隨機埠的出站連線

被動模式:

客戶端以隨機連線伺服器的某個隨機埠(通過21埠協商得到)

如此, 如果客戶端使用了nat或是有防火牆,問題就變得複雜多了。

在主動模式下,伺服器連線客戶端(即客戶端nat主機的公網ip)隨機埠,肯定會失敗的,所以客戶端使用nat時,不能使用主動模式,同理,如果客戶端使用防火牆,只允許指定的入站埠連線,那麼也會失敗。

如果使用被動模式呢?也有問題,因為客戶端是連線伺服器的隨機埠(伺服器只允許指定入站埠連線),也會出問題,那麼對於vsftpd, 解決辦法就是:

1.vsftpd 使用被動模式,並設定被動模式監聽的埠範圍

2.伺服器防火牆允許到此範圍埠的入站連線

對vsftpd的配置:

pasv_enable=yes //使用被動模式,等待客戶端連線

pasv_min_port=50000 //被動模式時監聽的埠範圍下限

pasv_max_port=50100//被動模式時監聽的埠範圍上限

對iptables的配置

-a rh-firewall-1-input -p tcp -m tcp --dport 50000:50100 -j accept

當然,客戶端需要設定為被動方式連線

iptables 防火牆使用

刪除原有規則 1.iptables f 2.iptables x 3.iptables t nat f 4.iptables t nat x 5.iptables p input drop 阻止所有網路入包 6.iptables a input i eth0 j accept 接受所有網路 7.ip...

iptables防火牆指令碼

root hkweb root cat etc bin bash echo 1 proc sys ipv4 ip forward i iface eth0 i ip 202.96.155.37 lan iface eth1 lan ip 10.0.0.252 lan ip range 10.0.0....

史上最強防火牆iptables

1.清空所有的防火牆規則 iptables f iptables x iptables z iptables t nat f iptables t nat x iptables t mangle f iptables t mangel x 2.載入防火牆所需要的模組 lsmod grep e nat...