这两天公司防火墙坏了,临时启用一台linux顶替防火墙。
三个步骤,很简单,五分钟搞定。
前提:linux服务器两个网卡,内外网卡都设置正确ip。
1: 修改系统内核,开启ip转发。
vi /etc/sysctl.conf
修改 net.ipv4.ip_forward = 0 为 net.ipv4.ip_forward = 1
然后执行 sysctl -p 立即生效
2: 配置NAT
iptables -t nat -A PREROUTING -d 218.249.XXX.X -p tcp--dport 80 -j DNAT --to-destination 192.168.9.100
iptables -t nat -A PREROUTING -d 218.249.XXX.X -p tcp --dport 80 -j DNAT --to-destination 192.168.9.12
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
前两条是公网映射到内部私网的iptables规则。
3: 配置路由
route add -net 192.168.0.0/16 gw 192.168.10.2
route add default gw 218.249.XXX.X
这样配置好之后基本就内网就可以访问外网,同时外网也可以通过域名或者公网ip访问内网的web等服务器了。
但问题是:内网回流问题没法解决
加上一条
iptables -t nat -A POSTROUTING -p tcp -s 192.168.0.0/24 -d 192.168.9.12/24 -j SNAT --to 192.168.10.1
iptables -t nat -A POSTROUTING -p tcp -s 192.168.0.0/24 -d 192.168.9.100/24 -j SNAT --to 192.168.10.1
注意 192.168.10.1 是我linux防火墙对内网的接口地址,一定要设置成这个地址才行。
这样内网用户就可以通过公网地址或者域名来访问我们内网的web等服务器了。
service iptables save 保持iptables 规则。