Linux iptables NAT配置

1.NAT原理总结

NAT: (Network Address Translation)支持PREROUTING,INPUT,OUTPUT,POSTROUTING四个链
请求报文: 修改源/目标IP,由定义如何修改
响应报文: 修改源/目标IP,根据跟踪机制自动实现

1.2 NAT的实现分为下面类型:

SNAT: source NAT ,支持POSTROUTING, INPUT,让本地网络中的主机通过某一特定地址访问
外部网络,实现地址伪装,请求报文:修改源IP
DNAT: destination NAT 支持PREROUTING , OUTPUT,把本地网络中的主机上的某服务开放给外
部网络访问(发布服务和端口映射),但隐藏真实IP,请求报文:修改目标IP
PNAT: port nat,端口和IP都进行修改

2.iptables规则持久保存

默认情况下iptables配置重启丢失,持久保持方法:

2.1Centos 6

配置文件保存在/etc/sysconfig/iptables中,使用以下命令进行保存
重启后自动加载配置

service iptables save

2.2 Centos7+

默认情况下,重启系统后不会自动加载,需要通过/etc/rc.loacl进行加载

iptables-save > /etc/iproute2/iptables.rule
echo "iptables-restore < /etc/iproute2/iptables.rule" >> /etc/rc.loacl

3. SNAT和DNAT配置语法

3.1 SNAT

语法格式:

iptables -t nat -A POSTROUTING -s LocalNET ! -d LocalNet -j SNAT --to-source ExtIP

示例:

iptables -t nat -A POSTROUTING -s 10.0.0.0/24 ! –d 10.0.0.0/24 -j SNAT --to-source 192.168.31.2

3.2 DNAT

语法格式:

iptables -t nat -A PREROUTING -d ExtIP -p tcp|udp --dport PORT -j DNAT --todestination InterSeverIP[:PORT]

示例:

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

猜你喜欢

转载自blog.csdn.net/qq_29974229/article/details/120031722