iptables SNAT DNAT实战

文章目录

      • iptables SNAT DNAT
        • 准备工作
        • SNAT
        • DNAT

iptables SNAT DNAT

iptables SNAT DNAT实战_第1张图片

如上述示意图所示,实验使用4台虚拟机,A、B、C、D

主机A:扮演公网主机,尝试访问公司提供的服务,IP地址为192.168.1.147

主机B:扮演了拥有NAT功能的防火墙或路由器,充当网关,并且负责NAT,公网、私网通讯的报文通过B主机时,报文会被NAT

主机C:扮演内网web服务器

主机D:扮演内网windows主机

上图中圆形所示的逻辑区域表示公司内网,网段为10.1.0.0/16,主机B、C、D都属于内网主机,主机B比较特殊,同时扮演了网关与防火墙,主机B持有公司唯一的公网IP(我们用了一个假的公网IP),局域网内主机如果想与公网主机通讯,需要共享此公网IP,由B主机进行NAT,所以,我们为主机B准备了两块网卡,公网IP与私网IP分别配置到这两块网卡中,同时,在虚拟机中设置了一个"仅主机模式"的虚拟网络,以模拟公司局域网。

 

准备工作

B

ifconfig eth0 192.168.1.146
ifconfig eth0:0 10.1.0.3 netmask 255.255.0.0

net.ipv4.ip_forward =1

 
C

网关为10.1.0.3

ifconfig eth0 10.1.0.1 netmask 255.255.0.0
route add default gw 10.1.0.3

 
D

网关为10.1.0.3

iptables SNAT DNAT实战_第2张图片

这是可以尝试一下在Aping其他,发现只有B的192.168.1.146是通的

 

SNAT

B

iptables -t nat -A POSTROUTING -s 10.1.0.0/16 -j SNAT --to-source 192.168.1.146

iptables -t nat -nvL

ok

iptables SNAT DNAT实战_第3张图片

 

在C上ping 192.168.1.147

在A上抓包

tcpdump -i eth0 -nn icmp

.
iptables SNAT DNAT实战_第4张图片
 

在D上ping 192.168.1.147

iptables SNAT DNAT实战_第5张图片
 
在A上抓包

tcpdump -i ens33 -nn icmp

 

C

curl 192.168.1.147

 
D
iptables SNAT DNAT实战_第6张图片

A

发现ping不通,也访问不了,

 

 

DNAT

在B上

iptables -t nat -F

#iptables -t nat -I PREROUTING -d 192.168.1.146 -p tcp --dport 3389 -j DNAT --to-destination 10.1.0.6:3389
iptables -t nat -I PREROUTING -d 192.168.1.146 -p tcp --dport 801 -j DNAT --to-destination 10.1.0.1:80

ok

iptables SNAT DNAT实战_第7张图片

 
在A上访问B的801端口

在这里插入图片描述

 
 

参考:https://www.zsythink.net/archives/1764

你可能感兴趣的:(#,Linux之服务基础)