这两天公司防火墙坏了,临时启用一台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 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 规则。