0
点赞
收藏
分享

微信扫一扫

防火墙的SNAT和DNAT

跟着Damon写代码 2022-04-26 阅读 56
linux运维

目录

一、SNAT

1、SNAT策略

2、开启SNAT

3、SNAT案例

二、DNAT

1、DNAT策略

2、DNAT案例

3、抓包


一、SNAT

1、SNAT策略

SNAT策略的典型应用环境

局域网主机共享单个公网ip地址接入Internet

SNAT策略的原理

源地址转换

修改数据包的源地址

2、开启SNAT

临时开启

方法一

[root@localhost ~]# echo 1 >/proc/sys/net/ipv4/ip_forward

方法二

[root@localhost ~]# sysctl -w net.ipv4.ip forward=1

永久开启

[root@localhost ~]# vim /etc/sysctl.conf    #修改配置文件
net. ipv4.ip_ forward = 1 #开启

3、SNAT案例

各设备的配置

网关服务器

(1)添加一块新网卡

 (2)配置两张网卡

[root@localhost network-scripts]# ifconfig   #查看新加网卡的配置

[root@localhost ~]# cd /etc/sysconfig/network-scripts/ #切到此目录

[root@localhost network-scripts]# cp ifcfg-enss33 ipcfg-ens37 #将enss33文件复制成enss37

[root@localhost network-scripts]# vim ifcfg-ens33 #修改ens33

PADDR=192.168.222.10
NETMASK=255.255.255.0
#GATEWAY=192.168.222.2 #注释网关 和DNS
#DNS1=114.114.114.114


[root@localhost network-scripts]# vim ifcfg-ens37 #修改ens37

NAME=ens37 #修改网卡名
#UUID=8299b8b6-baad-4742-b790-9c76078b5fe8 #注释uuid
DEVICE=ens37 #模块ens37
ONBOOT=yes
IPADDR=12.0.0.254 #修改ip地址
NETMASK=255.255.255.0
#GATEWAY=192.168.222.2 #注释网关 和DNS
#DNS1=114.114.114.114

[root@localhost network-scripts]# systemctl restart network #重启网络服务


(3)制定防火墙规则

[root@localhost network-scripts]#
vim /etc/ sysctl. conf
net. ipv4.ip_ forward = 1 #将此行写入配置文件

[root@localhost network-scripts]#sysctl -P #读取修改后的配置


[root@localhost ~]# iptables -t nat -F POSTROUTING #清空防火墙规则

[root@localhost ~]# iptables -t nat -A POSTROUTING -s 192.168.222.0/24 -o ens37 -j SNAT --to 12.0.0.254

#制定规则

[root@localhost ~]# iptables -t nat -L POSTROUTING --line-numbers #查看防火墙规则

服务端配置

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
#修改网卡地址

IPADDR=12.0.0.100 #修改地址
NETWASK=255.255.255.0
GATEWAY=12.0.0.254 #修改网关
#DNS1=8.8.8.8

[root@localhost ~]# systemctl restart network #重启网卡

[root@localhost ~]# yum install httpd -y #安装http服务

[root@localhost ~]# iptables -t nat -L --line-numbers #清空防火墙规则

[root@localhost ~]# systemctl start httpd #开启http

客户端配置

二、DNAT

1、DNAT策略

DNAT策略的应用环境

在Internet中发布位于企业局域网内的服务器

DNAT策略的原理

目标地址转换

修改数据包的目标地址

2、DNAT案例

网关服务机配置

[root@localhost ~]# iptables -F -t nat  #情空表中的默认规则

[root@localhost ~]#iptables -t nat -A PREROUTING -i ens37 -d 12.0.0.254 -p tcp --dport 80 -j DNAT --to 192.168.222.50 #添加规则


[root@localhost ~]#iptables -nL -t nat

Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DNAT tcp -- 0.0.0.0/0 12.0.0.254 tcp dpt:80 to:192.168.222.50

Chain INPUT (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

Chain POSTROUTING (policy ACCEPT)
target prot opt source destination

内网服务器


[root@localhost yum.repos.d]# yum install -y httpd #安装http
[root@localhost yum.repos.d]# systemctl start httpd #开启http服务

测试



[root@localhost ~]# curl 12.0.0.1 #在外网服务器上


[root@localhost yum.repos.d]# tail /etc/httpd/logs/access_log #在内网服务器上
127.0.0.1 - - [02/Nov/2021:18:05:31 +0800] "GET / HTTP/1.1" 403 4897 "-" "curl/7.29.0"
12.0.0.100 - - [02/Nov/2021:18:19:45 +0800] "GET / HTTP/1.1" 403 4897 "-" "curl/7.29.0"

3、抓包

tcpdump tcp -i ens33 -t -s 0 -c 100 and dst port ! 22 and src net 192.168.222.0/24 -w ./target.cap
(1)tcp:ipicmparprarp和tcp、udp、icmp这些选项等都要放到第一个参数的位置,用来过滤数据报的类型
(2)-i ens33 :只抓经过接口ens33的包
(3)-t :不显示时间戳
(4)-s 0 :抓取数据包时默认抓取长度为68字节。加上-s 0后可以抓到完整的数据包
(5)-c 100 :只抓取100个数据包
(6)dstport!22:不抓取目标端口是22的数据包
(7)src net 192.168.222.0/24 :数据包的源网络地址为192.168.222.0/24
(8)-W ./target.cap :保存成cap文件,方便用ethereal (即wireshark)分析
举报

相关推荐

0 条评论