iptables – 转发电子邮件端口?

即时通讯设法打开一些本地端口(局域网),然后重新引导到另一台服务器(广域网)使用iptables

这是我的configuration:

#WAN allow-hotplug eth1 auto eth1 iface eth1 inet static #Tarjeta red WAN address 192.168.2.2 gateway 192.168.2.1 netmask 255.255.255.0 #LAN allow-hotplug eth0 auto eth0 iface eth0 inet static address 192.168.16.6 netmask 255.255.255.0 network 192.168.16.0 broadcast 192.168.16.255 

我试试这个:

 iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 110 -j DNAT --to 200.40.30.218:110 iptables -A FORWARD -p tcp -i eth0 -o eth1 -d 200.40.30.218 --dport 110 -j ACCEPT iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 25 -j DNAT --to 200.40.30.218:25 iptables -A FORWARD -p tcp -i eth0 -o ethq -d 200.40.30.218 --dport 25 -j ACCEPT 

但是,它没有工作。 我也尝试改变eth0到eth1(和eth1到eth0),但没有发生。

 Starting Nmap 5.00 ( http://nmap.org ) at 2011-10-03 14:44 UYST Interesting ports on 192.168.16.6: Not shown: 997 closed ports PORT STATE SERVICE 22/tcp open ssh 111/tcp open rpcbind 8080/tcp open http-proxy 

我正在运行debian。 你们能帮我检查一下发生了什么吗?

编辑:IPTABLES-SAVE

 # Generated by iptables-save v1.4.8 on Mon Oct 3 15:43:14 2011 *mangle :PREROUTING ACCEPT [139993:77867651] :INPUT ACCEPT [139385:77761761] :FORWARD ACCEPT [186:12071] :OUTPUT ACCEPT [173556:74341650] :POSTROUTING ACCEPT [173734:74352988] COMMIT # Completed on Mon Oct 3 15:43:14 2011 # Generated by iptables-save v1.4.8 on Mon Oct 3 15:43:14 2011 *nat :PREROUTING ACCEPT [1649:190626] :POSTROUTING ACCEPT [6729:339646] :OUTPUT ACCEPT [6697:337660] -A PREROUTING -i eth0 -p tcp -m tcp --dport 110 -j DNAT --to-destination 200.40.30.218:110 -A PREROUTING -i eth0 -p tcp -m tcp --dport 25 -j DNAT --to-destination 200.40.30.218:25 COMMIT # Completed on Mon Oct 3 15:43:14 2011 # Generated by iptables-save v1.4.8 on Mon Oct 3 15:43:14 2011 *filter :INPUT ACCEPT [138307:77066136] :FORWARD ACCEPT [168:11207] :OUTPUT ACCEPT [172288:73655708] -A FORWARD -d 200.40.30.218/32 -i eth0 -o eth1 -p tcp -m tcp --dport 110 -j ACCEPT -A FORWARD -d 200.40.30.218/32 -i eth0 -o ethq -p tcp -m tcp --dport 25 -j ACCEPT COMMIT # Completed on Mon Oct 3 15:43:14 2011 

问候

它看起来像MASQUERADING没有安装。 在第一个PREROUTING语句前添加以下内容

 -A POSTROUTING -o eth0 -j MASQUERADE 

所以它会是这样的:

 -A POSTROUTING -o eth0 -j MASQUERADE -A PREROUTING -i eth0 -p tcp -m tcp --dport 110 -j DNAT --to-destination 200.40.30.218:110 -A PREROUTING -i eth0 -p tcp -m tcp --dport 25 -j DNAT --to-destination 200.40.30.218:25 

另外,请确保已启用IP转发。 你可以dynamic设置它:

 sysctl -w net.ipv4.conf.all.forwarding =1 

要么:

 echo “1” > /proc/sys/net/ipv4/ip_forward 

要永久更改它(这是你想要的),添加或更改/etc/sysctl.conf中的net.ipv4.conf.all.forwarding值到:

 net.ipv4.ip_forward = 1 

最后一个是我想如何在Red Hat上做到这一点,所以如果你没有这个文件,你可以在/etc/rc.local中添加第一个命令,或者在Ubuntu中查找修改方法。

此外,你最后一个FORWARD语句似乎是错误的。 它看起来应该是:

 -A FORWARD -d 200.40.30.218/32 -i eth1 -o eth0 -p tcp -m tcp --dport 110 -j ACCEPT -A FORWARD -d 200.40.30.218/32 -i eth1 -o eth0 -p tcp -m tcp --dport 25 -j ACCEPT 

我想这就是你如何得到它的工作。 我重新阅读了这篇文章,并且希望将入站stream量转发到WAN上的服务器,所以我进行了上述更改(考虑到这一点)(有点令人困惑,因为您通常从WAN→LAN使用NAT,而不使用其他周围)。

但重要的是,您需要确保启用IP转发以及MASQUERADING。