iptables规则配置说明-nat举例

iptables是一个用于操作Netfilter回调函数的用户程序和命令行工具。iptables在概念上是基于规则和链的概念。规则是用于匹配信息包的一小段逻辑。链是按顺序检查每个包的一系列规则。包最终会在一组预定义的目标中结束,这些目标将决定对包执行什么操作。关键目标是接受包或丢弃包1。每个规则都定义了在数据包匹配时“跳转”到哪里; 这可以是另一个链或目标。如果规则不匹配,则根据链中的下一个规则检查包。每个链都有一个策略,如果到达链的末端而没有匹配任何规则,则目标包将跳转到该策略。

iptables规则配置说明-nat举例
文章图片
image.png netfilter模块通过对网络层加一个hook,触发iptables规则

iptables规则组成
组成部分:四张表+五条链(hook point) + 规则
四张表: filter个,nat表, mangle表, raw表
五条链: INPUT OUTPUT FORWARD PREROUTING POSTROUTING
iptables规则配置说明-nat举例
文章图片
image.png iptables规则配置说明-nat举例
文章图片
image.png
iptables规则配置说明-nat举例
文章图片
image.png
iptables规则配置说明-nat举例
文章图片
image.png 举例:
iptables规则配置说明-nat举例
文章图片
image.png SNAT 配置规则
iptables -t nat -A POSTROUTING -s 10.10.177.0/24 -o ens224 -j SNAT --to-source 10.10.188.232把内网10.110.177.0/24网段加入SNAT, 内网可以通过10.10.188.232访问互联网

当配置nat时,forward链需要允许,参与如下配置。
vim /etc/sysconfig/iptables
# Generated by iptables-save v1.4.21 on Mon Sep 23 18:15:59 2019 *nat :PREROUTING ACCEPT [1:40]#开启 :INPUT ACCEPT [0:0]#开启 :OUTPUT ACCEPT [0:0]#开启 :POSTROUTING ACCEPT [0:0]#开启 -A POSTROUTING -s 10.10.177.0/24/24 -o ens224 -j SNAT --to-source10.10.188.232

*filter :INPUT ACCEPT [0:0]#开启 :FORWARD ACCEPT [0:0]#开启 :OUTPUT ACCEPT [0:0]#开启 -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT

同时需要开启转发功能
vim /etc/sysconfig.conf net.ipv4.ip_forward = 1sysctl -p

DNAT 【iptables规则配置说明-nat举例】DNAT,也叫服务器映射,把内网的服务器映射到公网
iptables-t nat -I PREROUTING -d 10.10.188.232 -p tcp --dport 2222 -j DNAT --to-destination 192.168.1.200:22 iptables-t nat -I PREROUTING -d 10.10.188.232 -p tcp --dport 4433 -j DNAT --to-destination 192.168.1.200:443把内网 10.10.177.232:443映射到公网10.10.188.232 4433端口进行访问 把内网 10.10.177.232:22映射到公网10.10.188.232 2222端口进行访问

    推荐阅读