部署SNAT和DNAT

文章目录

    • 12.NAT实战
      • 12.1 SNAT 原地址转换
      • 12.2 DNAT 目的地址转换

12.NAT实战

12.1 SNAT 原地址转换

内网服务器配置

1.配置内网Ip地址

ifconfig ens33 172.16.1.1 netmask 255.255.255.0

(ip地址配完后可以互相ping一下看看通不通)

2.配置网关指向防火墙

route add default gw 172.16.1.254

查看

route -n

防火墙服务器配置

1.配置内网接口

ifconfig eth0:0 172.16.1.254 netmask 255.255.255.0

(没有多余接口所以可以用子接口:0来代替,或者添加新网卡)

2.开启路由转发功能,实现内外网互相访问

echo "1" > /proc/sys/net/ipv4/ip_forward
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
sysctl -p 应用和查看

3.做SNAT

iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -o eth0 -j MASQUERADE

-t nat 在nat表上配置

-A POSTROUTING 在POSTROUTING链处配置

-s 172.16.1.0/24 对这个网段做转换

-o eth0 指定转换为eth0出接口地址

-j MASQUERADE 动态地址上网( 在某些情况下,网关的外网ip地址可能并不固定,如ADSL宽带接入时。为了解决这种问题,IPTABLES提供了一个名为MASQUERADE的数据报控制类型,MASQUERAD同样用来修改源ip地址,只不过他能够自动获取外网ip地址。 )

查看

iptables -L -t nat

问题:内网机ping外网机总是Destination Host Prohibited,其他的都ping通了

解决:清空filter表

iptable -t filter -F

4.测试

内网ping外网测试一下

ping 196.168.31.145
ping www.baidu.com

可以在外网即本机地址用wireshark抓icmp包查看

也可以在防火墙服务器上装tcpdump查看

tcpdump -n icmp

部署SNAT和DNAT_第1张图片

可以看到SNAT原地址转换过程

12.2 DNAT 目的地址转换

做ssh 22端口映射,实现远程连接内网服务器

1.先清除SNAT的规则

查看规则的编号

iptables -L -n -t nat --line-number

指定编号删除规则

iptables -t nat -D POSTROUTING 1

防火墙服务器配置

1.将内网服务器的22端口映射到防火墙上

iptables -t nat -A PREROUTING -d 192.168.134.129 -p tcp --dport 2345 -j DNAT --to-destination 172.16.1.1:22

iptables -t nat -I PREROUTING (-i 外网网卡) -d 外网ip tcp --dport 发布的端口 -j DNAT --to-destination 内网服务ip:端口

2.测试

如果是主机是windows,需要在windows主机上下载安装openssh,然后在cmd上使用ssh命令

问题:

使用centos7测试ssh服务
在这里插入图片描述

出现问题

发现 destination 172.16.1.1后面需要加:22

连接被拒绝

在这里插入图片描述
原来ssh分为openssh-client和openssh-server两部分

你可能感兴趣的:(部署SNAT和DNAT)