制作CentOS 6.xa端口转发NAT设备

制作CentOS 6.xa端口转发NAT设备

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

这是我想要实现的配置。我尝试通过 CentOS 机器在端口 5500 上建立远程桌面连接,并让 CentOS 连接到端口 3389 上的服务器。

在此处输入图片描述

192.168.21.11 是客户端,它应该通过连接到 192.168.21.10(CentOS)的端口 5500 来连接到 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
    

保存此配置后,我无法建立尝试实现的远程桌面连接,那么我的 iptables 规则有什么问题吗?还是我可能遗漏了什么?

答案1

尝试在 /etc/sysconfig/iptables 中添加此规则-A PREROUTING -p tcp -d 192.168.21.10 --dport 5500 -j DNAT --to 192.168.9.120:3389

-A POSTROUTING -d 192.168.9.120 -j MASQUERADE

通过执行“sysctl -a | grep net.ipv4.ip_forward”检查 net.ipv4.ip_forward 是否设置为 1

如果仍然设置在 0 则执行:

sysctl -w net.ipv4.ip_forward=1

答案2

尝试添加:

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

答案3

你应该阅读iptables -A了解和之间的差异iptables -I,并查看系统上的默认规则。由于差异,您的 INPUT 规则至少很可能不会起作用。

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

不要仅仅禁用 SELinux - 它可以帮助保护您。

相关内容