文章目录
前言
通过之前的学习,我们认识了防火墙的表、链结构,并学会了简单的编写防火墙的规则。Linux 防火墙在很多的时候承担着连接企业内、外网的重任,除了提供数据包过滤以外,还提供一些基本的网关应用。下面我们将了解防火墙中的SNAT 和DNAT策略。
一、SANT策略
1.SNAT策略概述
SNAT(Source Network Address Translation,源地址转换)是Linux防火墙的一种地址转换操作,也是iptables命令中的一种数据包控制类型,其作用是根据特定的条件修改数据包的源IP地址。
2.SNAT的典型应用环境
局域网主机共享单个公网IP地址接入Internet(私有IP不能在Internet中正常路由)。
3.SNAT的工作原理
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-n58haqtf-1684736139017)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230520141734202.png)]](https://i-blog.csdnimg.cn/blog_migrate/36ab01b3379c5bfc66f1d156695975b2.png#pic_center)
客户端往网关服务器发数据包,网关服务器将从客户端发送过来数据包的源IP地址由私网IP地址转换成公网IP地址进行转发,发送至需要访问的服务器。访问后,数据包返回往网关服务器,源IP地址会作为目的IP地址,目的IP地址会作为源IP地址进行传送,然后网关服务器会把从服务器返回来的数据包的目的IP地址由公网IP地址转换成私网IP地址进行返回到客户端。
注:SNAT的转换流程是从私网到公网,源IP地址改变,目标IP地址不变。
4.SNAT策略的应用
SNAT转换前提条件
局域网各主机已正确设置IP地址、子网掩码、默认网关地址。
Linux网关开启IP路由转发。
SNAT策略打开方式
临时打开
方式1:echo 1 > /proc/sys/net/ipv4/ip_forward
方式2:sysctl -w net.ipv4.ip_forward=1
永久打开
[root@localhost ~]# vim /etc/sysctl.conf
###将此行写入配置文件
net.ipv4.ip_forward = 1
###读取修改后的配置
[root@localhost ~]# sysctl -p
SNAT实验过程
客户端(192.168.145.15)想要进入网关服务器的ens32端口(192.168.145.50),通过网关服务器SNAT进行IP地址转换,从ens33端口(12.0.0.50)发送给Web服务器(12.0.0.200)

客户端设置(Centos 7-1)
ip地址相关设置
###配置ip地址和网关
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens32
ADDR=192.168.145.15
NETMASK=255.255.255.0
GATEWAY=192.168.145.50
[root@localhost ~]# systemctl restart network
[root@localhost ~]# ifconfig
ens32: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.145.15 netmask 255.255.255.0 broadcast 192.168.145.255
inet6 fe80::fd54:3fb4:558d:82fb prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:33:c5:93 txqueuelen 1000 (Ethernet)
RX packets 506452 bytes 704984469 (672.3 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 192066 bytes 12499794 (11.9 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
设置防火墙以及规则
###关闭防火墙
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
setenforce: SELinux is disabled
###清除所有规则
[root@localhost ~]# iptables -F && iptables -t nat -F
网关服务器设置(Centos 7-2)
网关服务器需要设置两个网卡,所以在虚拟机上需要添加一个网络适配器,设置完重启后生效。

ip地址相关设置
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
###修改ens33ip地址
[root@localhost network-scripts]# vim ifcfg-ens33
IPADDR=192.168.145.50
###复制ens33配置文件为ens36配置文件
[root@localhost network-scripts]# cp ifcfg-ens33 ifcfg-ens36
[root@localhost network-scripts]# ls
ifcfg-ens33 ifdown-post ifup-eth ifup-sit
ifcfg-ens36 ifdown-ppp ifup-ib ifup-Team
ifcfg-lo ifdown-routes ifup-ippp ifup-TeamPort
ifdown ifdown-sit ifup-ipv6 ifup-tunnel
ifdown-bnep ifdown-Team ifup-isdn ifup-wireless
ifdown-eth ifdown-TeamPort ifup-plip init.ipv6-global
ifdown-ib ifdown-tunnel ifup-plusb network-functions
ifdown-ippp ifup ifup-post network-functions-ipv6
ifdown-ipv6 ifup-aliases ifup-ppp
ifdown-isdn ifup-bnep ifup-routes
[root@localhost network-scripts]# vim ifcfg-ens36
###修改连接名称,可以没有
NAME=ens36
###网卡设备名称,必须要有
DEVICE=ens36
###删除UID标识,让系统自动分配
#UUID=b7f32ab4-a3b6-4b32-be62-812cb1a30c17
###修改ip地址
IPADDR=12.0.0.50
###重启网卡服务
[root@localhost network-scripts]# systemctl restart network
[root@localhost network-scripts]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.145.50 netmask 255.255.255.0 broadcast 192.168.145.255
inet6 fe80

最低0.47元/天 解锁文章
785

被折叠的 条评论
为什么被折叠?



