iptables nat表实践

1:用于做企业路由(zebra)或网关(iptables),共享上网(POSTROUTING)
2:做内部外部IP地址一对一映射(dmz),硬件防火墙映射IP到内部服务器,ftp服务器(PREROUTING)
3:web,单个端口映射,直接映射80端口(PREROUTING)

nat表: 负责网络地址转换,即来源与目的IP地址和port的转换。与主机本身无关,一般用于局域网共享上网或者特殊的端口转换服务相关。nat表定义了三个链(chains),nat功能就相当于网络的acl控制,和网络交换机acl类似

  • OUTPUT:和主机发出去的数据包有关,改变主机发出数据包的目标地址
  • PREROUTING:在数据包到达防火墙时进行路由判断之前执行的规则,作用是改变数据包的目的地址、目的端口等
  • POSTROUTING:在数据包离开防火墙时进行路由判断之后执行的规则,作用是改变数据包的源地址、源端口等 生产应用:局域网共享上网

nat表规则配置:

分类 功能 作用链 参数
SNAT 源地址转换 出口POSTROUTING --to-source
DNAT 目标地址转换 进口PREROUTING --to-destination

iptables实践场景

场景一: SNAT,局域网内部机器10.10.177.233访问外网Web Server 10.10.188.173,需要在 Nat Server上做源地址转换(局域网共享上网)
iptables nat表实践_第1张图片
配置:

开启内核转发:net.ipv4.ip_forward = 1
iptables -t nat -A POSTROUTING -s 10.10.177.0/24 -j SNAT --to-source 10.10.188.232 

场景二: DNAT,外部机器10.10.188.173访问内网Http Server 10.10.177.233,需要在 Nat Server上做目标地址转换(端口映射)
iptables nat表实践_第2张图片
配置:

iptables -t nat -A PREROUTING -d 10.10.188.232 -p tcp --dport 80  -j DNAT --to-destination 10.10.177.233:80

部署企业级IDC机房上网网关

iptables nat表实践_第3张图片
服务器网关需要具备如下条件:
1、物理条件是具备双网卡,建议eth0外网地址(这里是10.0.0.19,gw10.0.0.254),eth1内网地址(192.168.1.19,内网卡不配gw)
2、内核文件/etc/sysctl.conf里开启转发功能

echo 1 > /proc/sys/net/ipv4/ip_forward(临时)
net.ipv4.ip_forward = 1
sysctl -p

3、iptables的filter表的FORWARD链允许转发

iptables -P FORWARD ACCEPT

4、最好先停掉防火墙
5、加载iptables内核模块
配置网关需要iptables的nat表,PREROUTING,POSTROUTING

modprobe ip_tables
modprobe iptable_filter
modprobe iptable_nat
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe ipt_state

6、局域网内机器默认网关设置为eth1内网卡的IP(192.168.1.19)

配置:(网关服务器上配置)
1)适合有固定外网地址的:

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to-source 10.0.0.19

2)适合变化的外网地址(ADSL)

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE 

把外部IP地址及端口映射到内部服务器地址及端口配置如下:

iptables -t nat -A PREROUTING -d 10.0.0.19 -p tcp --dport 80  -j DNAT --to-destination 192.168.1.20:8080

你可能感兴趣的:(iptables)