目录
一、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)分析










