【LinuxShell】linux防火墙之SNAT策略和DNAT策略


前言

  通过之前的学习,我们认识了防火墙的表、链结构,并学会了简单的编写防火墙的规则。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)]

  客户端往网关服务器发数据包,网关服务器将从客户端发送过来数据包的源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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我的宝贝大唐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值