使CentOS 6.xa端口转发NAT设备

我想使用iptables使CentOS成为端口转发NAT机器。 这是我第一次尝试这个,我想我可能需要一点帮助。

这是我试图实现的configuration。 我试图通过端口5500上的CentOS机器build立一个远程桌面连接,并让CentOS连接到端口3389上的服务器。

在这里输入图像说明

192.168.21.11是通过连接到端口5500上的192.168.21.10(CentOS)连接到192.168.9.120上的端口3389的客户端。

  • CentOS eth0是192.168.9.20/24
  • CentOS eth1是192.168.21.10/24

我到目前为止所尝试的是:

  1. 禁用SELINUX
  2. 在/etc/sysctl.conf中启用IPv4转发

    /etc/sysctl.conf net.ipv4.ip_forward = 1 
  3. 运行下面的iptables命令

     iptables -t nat -A PREROUTING -p tcp -d 192.168.21.10 --dport 5500 -j DNAT --to 192.168.9.120:3389 iptables -A INPUT -i eth1 -p tcp --dport 5500 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -o eth0 -p tcp --sport 5500 -m state --state ESTABLISHED -j ACCEPT service iptables save 

保存这个configuration后,我无法做出我试图实现的远​​程桌面连接,那么我的iptables规则有什么问题吗? 还是有什么我可能会失踪?

-A PREROUTING -p tcp -d 192.168.21.10 --dport 5500 -j DNAT --to 192.168.9.120:3389之后,尝试将此规则添加到/ etc / sysconfig / iptables

-A POSTROUTING -d 192.168.9.120 -j MASQUERADE

其次检查net.ipv4.ip_forward是否通过执行'sysctl -a |设置为1 grep net.ipv4.ip_forward`

如果它仍然设置为0,则执行:

sysctl -w net.ipv4.ip_forward=1

尝试添加:

 iptables -A FORWARD -i eth1 -j ACCEPT iptables -A FORWARD -o eth1 -j ACCEPT 

您应该了解iptables -Aiptables -I之间的区别,并查看系统上的默认规则。 看起来很可能你的INPUT规则至less不会起作用,因为有所不同。

在/etc/sysctl.conf中设置一个值不会在正在运行的内核中设置它。 sysctl(8)手册页是你的朋友。

不要只是禁用SELinux – 它在那里帮助保护你。