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