iptables规则配置说明-nat举例

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


iptables规则配置说明-nat举例_第1张图片
image.png

netfilter模块通过对网络层加一个hook,触发iptables规则

iptables规则组成
组成部分:四张表+五条链(hook point) + 规则
四张表: filter个,nat表, mangle表, raw表
五条链: INPUT OUTPUT FORWARD PREROUTING POSTROUTING

iptables规则配置说明-nat举例_第2张图片
image.png
iptables规则配置说明-nat举例_第3张图片
image.png

iptables规则配置说明-nat举例_第4张图片
image.png

iptables规则配置说明-nat举例_第5张图片
image.png

举例:

iptables规则配置说明-nat举例_第6张图片
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-source  10.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 = 1

sysctl -p

DNAT

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端口进行访问

你可能感兴趣的:(iptables规则配置说明-nat举例)