拓扑图如下图所示
1、CentOS6服务器双网卡,eth0:192.168.31.25/24可以通过外网出口路由器上网,eth1:172.16.10.1/24用于与内网网段172.16.10.X/24的互通
2、CentOS6 WebServer网站服务器,eth0:172.16.10.200/24
服务器的网卡及IP地址信息如下
1)CentOS6
2)CentOS6 WebServer网站服务器
目前有如下需求
1)要实现CentOS6_WebServer 通过CentOS6(192.168.31.25)服务器配置iptables NAT转发来上外网
2)要实现目的NAT(端口映射),访问CentOS6(192.168.31.25)服务器的80端口就可以CentOS6_WebServer 的Web端口80
可以在192.168.31.25的CentOS6服务器上编写脚本来实现
vi iptables.sh
iptables.sh
#!/bin/bash
trust_host='172.16.10.0/24'
my_internal_ip='172.16.10.1'
my_external_ip='192.168.31.25'
listen_port='80'
backend_host='172.16.10.200'
backend_port='80'
echo 1 > /proc/sys/net/ipv4/ip_forward
/sbin/iptables -F
/sbin/iptables -t nat -F
/sbin/iptables -X
/sbin/iptables -P INPUT DROP
/sbin/iptables -P OUTPUT ACCEPT
/sbin/iptables -P FORWARD DROP
/sbin/iptables -A FORWARD -i eth1 -o eth0 -s $trust_host -j ACCEPT
/sbin/iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A FORWARD -p tcp --dst $backend_host --dport $backend_port -j ACCEPT
/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
/sbin/iptables -A INPUT -p icmp --icmp-type echo-request -s $trust_host
-d $my_internal_ip -m limit --limit 1/m --limit-burst 5 -j ACCEPT
/sbin/iptables -A INPUT -p tcp -m state --state NEW -m tcp -s $trust_host
-d $my_internal_ip --dport 22 -j ACCEPT
/sbin/iptables -t nat -A POSTROUTING -o eth0 -s $trust_host -j MASQUERADE
/sbin/iptables -t nat -A PREROUTING -p tcp --dst $my_external_ip --dport $listen_port
-j DNAT --to-destination $backend_host:$backend_port
/etc/rc.d/init.d/iptables save
/etc/rc.d/init.d/iptables restart
接下来执行脚步即可
chmod 777 iptables.sh
./iptables.sh
在CentOS6_WebServer(172.16.10.200)上测试可以上外网
再测试端口映射是否生效
直接访问http://192.168.31.25/可以正常打开网站,可以看出端口映射OK