iptables 防火墙(二)——SNAT、DNAT

一.SNAT策略及应用

1.SNAT策略

SNAT又称源地址转换。
源地址转换是内网地址向外访问时,发起访问的内网ip地址转换为指定的ip地址
就是把内网地址转成指定的IP地址,这个iP地址可以访问公网

2.SNAT实验

2.1 准备工作

(1)三台服务器:PC1客户端、PC2网关、PC3服务端。
(2)硬件要求:PC1和PC3均只需一块网卡、PC2需要2块网卡
(3)网络模式要求:PC1为NAT模式、PC2中作为PC1网关的网卡为NAT模式、作为PC3网关的网卡为仅主机模式、PC3为仅主机模式。
(4)IP地址要求:
PC1为192.168.198.11/24–网关为192.168.198.11、
PC2网关的ens33网卡地址为192.168.198.12/24–网关为192.168.198.11、ens36为12.0.0.254/24–不需要网关、
PC3为12.0.0.100/24–网关为12.0.0.254

2.2 配置

(1)关闭三台的防火墙和selinux

systemctl stop firewalld
setenforce 0

(2)配置pc3服务端
安装httpd服务修改网卡ip为12.0.0.100/24–网关为12.0.0.254,重启网卡。

yum -y install httpd
vim /etc/sysconfig/network-scripts/ifcfg-ens33
IPADDR=12.0.0.100
NETMASK=255.255.255.0
GATEWAY=12.0.0.254
如有DNS需要注释
systemctl restart network

将ens33的设备模式改为仅主机模式,查看配置好的地址

[root@test3 ~]# ifconfig 
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 12.0.0.100  netmask 255.255.255.0  broadcast 12.0.0.255

(3)配置PC1客户端
修改网卡ip为192.168.198.11/24—网关192.168.198.254,重启网卡。
安装httpd的服务,重启服务

yum -y install httpd
``

```csharp
vim /etc/sysconfig/network-scripts/ifcfg-ens33
文本添加内容:
IPADDR=192.168.198.11
NETMASK=255.255.255.0
GATEWAY=192.168.198.254
如有DNS请注释
systemctl restart network

(4)配置PC2网关服务器
给虚拟机添加一个网卡,然后配置ens33和ens36网卡的ip地址

vim /etc/sysconfig/network-scripts/ifcfg-ens33 
IPADDR=192.168.198.254
NETMASK=255.255.255.0
注释网关和DNS
cp /etc/sysconfig/network-script/ifcfg-ens33  /etc/sysconfig/network-script/ifcfg-ens36
#复制ens33配置文件给ens37网卡,新增网卡不会有配置文件
ens37配置文件修改:将UUID此行删除,修改ip和网关
IPADDR=12.0.0.254
NETMASK=255.255.255.0
开启PC2网关服务器的路由转发功能,重启网卡。
vim /etc/sysctl.conf
添加内容:
net.ipv4.ip_forward=1
[root@www network-scripts]# sysctl -p             #使之生效
net.ipv4.ip_forward = 1
iptables -t nat -A POSTROUTING -s 192.168.198.0/24 -o ens37 -j SNAT --to 10.0.0.10
# -t nat 指定使用nat表
# -A POSTROUTING 添加在数据流出链,原因为在输出时添加只需要添加一次。
# -s 指定源ip
# -o 指定输出网卡为ens37时
# -j 指定跳转到SNAT处理
# --to 指定SNAT nat为10.0.0.10这个地址

测试:test1访问test3:12.0.0.100

二.DNAT策略及应用

1.DNAT策略

目的地址转换的作用是将一组本地内部的地址映射到一组全球地址。
通常来说,合法地址的数量比起本地内部的地址数量来要少得多。

私网地址只能作为源地址来访问公网IP,而无法作为目标地址被其他主机访问
所以DNAT将私网中web服务器映射到公网IP,使其公网IP作为目标地址被公网中主机进行访问

2.配置

在SNAT配置的基础上,在test1上做装一个httpd,内网映射访问

iptables -t nat -A PREROUTING -d 12.0.0.254 -i ens37 -p tcp  --dport 80 -j DNAT --to 192.168.198.11:80

# 从ens36网卡进入的流量目的地址为12.0.0.254目的端口为80的tcp协议NAT处理为访问192.168.198.11
# -t nat 指定使用nat表
# -A PREROUINTG 添加在路由选择前数据进入链,在输入时直接判断。
# -d 指定目的ip
# -i 指定输出网卡为ens36时
# -p 指定协议为tcp协议
# --dport 指定目的端口为80
# -j 指定跳转到DNAT处理
# --to 指定DNAT nat到192.168.198.11这个地址

测试:在test3访问内网test1的地址:192.168.198.11

三.tcpdump抓包工具

是linux自带的抓包工具

1.指定抓包

tcpdump tcp -i ens33 -t -s0 -c 10 and dst port 80 and src net 192.168.198.0/24 -w ./target.cap
#tcp∶ ip、icmp、arp、rarp 和 tcp、udp、icmp这些选项等都要放到第一个参数的位置,用来过滤数据报的类型。
#-i ens33 :只抓经过接口ens33的包。
#-t:不显示时间戳
#-s0 :抓取数据包时默认抓取长度为68字节。加上"-s0"后可以抓到完整的数据包。
#-c 100 :只抓取100个数据包。
#dst port 80:不抓取目标端口是80的数据包。
#src net 192.168.233.0/24 :数据包的源网络地址为192.168.233.0/24。Net:网段,host:主机。
#-w ./target.cap ∶ 保存成cap文件,方便用ethereal (即wireshark)分析。

2.动态抓包

tcpdump -i ens33  -s0 -w  ./ens33.cap
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

一杯甜酒z

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

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

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

打赏作者

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

抵扣说明:

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

余额充值