iptables


引言

Linux 防火墙在很多时候承担着连接企业内、外网的重任,除了提供数据包过滤功能以外,还提供一些基本的网关应用


一、SNAT策略及应用

SNAT 是 Linux 防火墙的一种地址转换操作,也是 iptables 命令中的一种数据包控制类型,其作用是根据指定条件修改数据包的源 IP 地址。

1. SNAT策略概述

  • 随着 Internet 网络在全世界范围内的快速发展,IPv4 协议支持的可用IP地址资源逐渐变少,资源匮乏使得许多企业难以申请更多的公网 IP 地址,或者只能承受一个或者少数几个公网 IP 地址的费用
  • 大部分企业面临着将局域网内的主机接入 Internet 的需求
  • 通过在网关中应用 SNAT 策略,可以解决局域网共享上网的问题

2. SNAT策略工作原理

只开启路由转发,未设置地址转换的情况

  • 正常情况下,作为网关的 Linux 服务器必须打开路由转发,才能沟通多个网络;
  • 未使用地址转换策略时,从局域网 PC 访问 Internet 的数据包经过网关转发后其源 IP 地址保持不变,当 Internet 中的主机收到这样的请求数据包后,响应数据包将无法正确返回(私有地址不能在 Internet 中正常路由),从而导致访问失败。

开启路由转发,并设置 SNAT 转发的情况

  • 当局域网 PC 访问 Internet 的数据包到达网关服务器时,会先进行路由选择,若发现该数据包需从外网接口向外转发,则将其源 IP 地址修改为网关的外网接口地址,然后才发送给目标主机;
  • 相当于从网关服务器的公网 IP 地址提交数据访问请求,目标主机也可以正确返回响应数据包,最终实现局域网 PC 共享同一个公网 IP 地址接入 Internet。
  • 上述 SNAT 转换地址的过程中,网关服务器会根据之前建立的 SNAT 映射,将响应数据包正确返回局域网中的源主机。
  • 因此,只要连接的第一个包被 SNAT 处理了,那么这个连接及对应数据流的其他包也会自动地被进行 SNAT 处理;
  • 另一方面,Internet 中的服务器并不知道局域网 PC 的实际 IP 地址,中间的转换完全由网关主机完成,一定程度上也起到了保护内部网络的作用。

3. SNAT策略的应用

  • SNAT 的典型应用是为局域网共享上网提供接入策略,处理数据包的切入时机是在路由选择之后(POSTROUTING)进行,关键操作是将局域网外发数据包的源 IP 地址(私有地址)修改为网关服务器的外网接口 IP 地址(公有地址)
  • SNAT策略只能用在nat表的POSTROUTING链,使用iptables命令编写SNAT策略时,需要结合
    "- -to-source IP地址"选项来指定修改后的源IP地址

4. SNAT 策略用法

4.1 案例环境说明

在这里插入图片描述

4.2 打开网关的路由转发

Linux 系统本身是没有转发功能的,只有路由发送数据

  • 临时开启路由转发功能
echo 1 > /proc/sys/net/ipv4/ip_forward
或者
sysctl -W net.ipv4.ip_forward=1
  • 永久开启路由转发功能
vim /etc/sysctl.conf
...
net.ipv4.ip_forward =1           #将此行写入配置文件,0改为1

sysctl -p                        #读取修改后的配置

4.3 正确设置SNAT策略

  • 通过分析得知,需要针对局域网 PC 访问 Internet 的数据包采取 SNAT 策略,将源地址更改为网关的公网IP地址,参考以下操作在网关中设置防火墙规则。
  • 若要保持 SNAT 策略长期有效,应将相关命令写入到 rc.local 配置文件,以便开机后自动设置
iptables -t nat -A POSTROUTING 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值