我该如何改进这个 iptables

我该如何改进这个 iptables

作为培训,我正在尝试安装带有 ESXi 的服务器,

在这个 ESXi 上,我有第一个 ubuntu 16.04 VM,它将作为 WAN 和 LAN 之间的防火墙。

因此主机 IP 是 192.168.1.25,主虚拟机有 2 个接口:

  • ens160(Wan端)192.168.1.28
  • ens192 (Lan 端) 10.10.19.97

我的局域网是 10.10.19.96/27

在我的“路由器”VM 上,我已经安装并配置了 DHCP,并将 SSh 从 22 切换到 9600。

我现在在 LAN 端有另一台 VM(我们称之为 VM2),它将使用“路由器”VM 访问 WAN。

我想要在 VM2 上拥有一个 apache 服务器,并从 :80 从“路由器”VM 重定向到 VM2。

所以我这样做了:

sudo echo 1 >/proc/sys/net/ipv4/ip_forward

sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -t nat -A POSTROUTING -s 10.10.19.96/27 -o ens160 -j MASQUERADE
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A INPUT -i ens192 -j ACCEPT
sudo iptables -A INPUT -i ens160 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A FORWARD -i ens192 -o ens160
sudo iptables -A FORWARD -i ens160 -o ens192 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A INPUT -i ens160 -p tcp -m tcp --dport 80 -j ACCEPT
sudo iptables -A FORWARD -i ens160 -o ens192 -p tcp -m tcp --dport 80 -j ACCEPT
sudo iptables -t nat -A PREROUTING -i ens160 -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.10.19.98:80
sudo iptables -A INPUT -i ens160 -p tcp -m tcp --dport 443 -j ACCEPT
sudo iptables -A FORWARD -i ens160 -o ens192 -p tcp -m tcp --dport 443 -j ACCEPT
sudo iptables -t nat -A PREROUTING -i ens160 -p tcp -m tcp --dport 443 -j DNAT --to-destination 10.10.19.98:443
sudo iptables -A INPUT -i ens160 --p tcp -m tcp --dport 9600 -j ACCEPT

这些规则似乎有效,我可以通过 VM1:80 访问 VM2,我可以通过端口 9600 访问 VM1 SSH,并且两个 VM 可以互相 ping 通,可以 ping 通主机、另一台计算机和 Google DNS。

但我是个初学者,所以我真的不太相信自己,想知道我是否错过了什么、可以改进什么或者不应该做什么。

相关内容