Linux的Iptables命令实战3—端口映射和NAT
一、前言
关于iptables的配置Ubuntu系列和Centos系列都是差不多,这里就不分开说了。本文是直接教您如何使用iptables来实现端口的映射和NAT转发。
二、端口映射
1、拓扑场景
代理设备A:
公网IP:192.168.0.2
内网IP:10.10.10.1
内网设备B:
内网IP:10.10.10.2 (已部署好web服务,80端口允许访问)
2、需求场景
用户通过访问代理设备192.168.0.2:8080就可以访问到内网设备的10.10.10.2的80端口,这种场景就会使用到iptables的端口映射。(注:这里的公网IP是虚构的,192.168.0.0属于私网地址)
注:前提代理设备10.10.10.1与内网设备10.10.10.2需要互通。
3、需求实现
①在代理设备A开启服务器的转发功能
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1 //wq保存退出
sysctl -p //在命令行操作,时的参数生效
②代理设备A命令行操作:
iptables -t nat -A POSTROUTING -d 10.10.10.2/32 -p tcp -m tcp --dport 80 -j SNAT --to-source 10.10.10.1
iptables -t nat -A PREROUTING -d 192.168.0.2 -p tcp -m tcp --dport 8080 -j DNAT --to-destination 10.10.10.2:80
service iptables save //保存配置
三、内网设备通过设置NAT来实现访问公网资源
1、拓扑场景
代理商设备A:
eth0公网IP:192.168.0.2
eth1内网IP:10.10.10.1
2、需求场景
内网集群的设备需要访问公网资源,例如访问www.baidu.com等互联网资源。这样的好处是,内网设备可以访问外网,但不用暴露在公网环境,使得内网的设备安全性打打提高,那么这个对代理设备的防火墙必须做好。
注:我司睿江云的VPC节点,实现上述场景的需求满足,一键创建NAT设备。
3、需求实现
①在代理设备A开启服务器的转发功能
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1 //wq保存退出
sysctl -p //在命令行操作,时的参数生效
②在代理设备A命令行操作:
iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -o eth0 -j MASQUERADE
service iptables save //保存配置
③在内网的所有设备操作:
网关设置为:10.10.10.1 即可完成nat上网
睿江云官网链接:www.eflycloud.com