制作:高進波
時間:2009-4-25
主題:使用iptables做端口轉(zhuǎn)發(fā)訪問ftp nat
用iptables做端口轉(zhuǎn)發(fā)是個很實用的功能,可以讓我們忽略協(xié)議細節(jié)而實現(xiàn)透明轉(zhuǎn)發(fā),對于加密的數(shù)據(jù)傳輸更是好用。
ftp協(xié)議不同于http協(xié)議,因為ftp的控制端口和數(shù)據(jù)端口是分離的,在被動模式下,數(shù)據(jù)端口是通過控制信息來商定的,所以我們不能簡單地對21端口做轉(zhuǎn)發(fā)。
注:假定我們是通過在 本機IP 上做NAT設(shè)置使 源IP 可以通過 本機IP 訪問到 目標IP
1.iptables腳本
vi iptables_ftp_forward.sh
#!/bin/bash
echo "1">/proc/sys/net/ipv4/ip_forward #啟用內(nèi)核ip轉(zhuǎn)發(fā)
#加載需要的模塊
modprobe iptable_nat
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
#使用iptables轉(zhuǎn)發(fā)
iptables -t nat -A POSTROUTING -d 目標ip -p tcp –dport 21 -j MASQUERADE
iptables -t nat -A PREROUTING -d 本機ip -p tcp –dport 21 -j DNAT –to-dest 目標IP:21
注: DNAT 修改目標IP,適用于PREROUTING
SNAT 修改源IP ,適用于POSTROUTING
完成