Linux中NAT配置——目的NAT
  Il1dbC9Jhbvl 2023年11月13日 42 0

Linux目的NAT地址转换配置

实验准备:

  • 客户端、网关、web服务器
  • 网关需要配置为双网卡
  • 目的:让内网的web服务器通过配置DNAT后可以被外网的用户访问。

Linux中NAT配置——目的NAT_Linux

一、初始化配置

确保客户端与Web服务器都能与网关连通

1)配置网关服务器

  • 为网关添加双网卡

Linux中NAT配置——目的NAT_DNAT_02

  • 配置内外网IP信息

Linux中NAT配置——目的NAT_Linux_03

#外网网卡
[root@NAT-SERVER ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=ens33
UUID=14684afe-660a-4ba0-8aa6-c0a594e3ca2d
DEVICE=ens33
ONBOOT=yes
IPADDR=100.100.1.254
NETMASK=255.255.255.0


#内网网卡
[root@NAT-SERVER ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens160
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=ens160
DEVICE=ens160
ONBOOT=yes
IPADDR=192.168.3.254
NETMASK=255.255.255.0
  • 开启路由转发功能
echo "net.ipv4.ip_forward = 1" >>/etc/sysctl.conf
sysctl -p

Linux中NAT配置——目的NAT_iptables_04

2)配置外网客户端

[root@client ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens160
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=default
NAME=ens160
UUID=73457178-299a-4c31-ae33-2f809a1efb3d
DEVICE=ens160
ONBOOT=yes
IPADDR=100.100.1.10
PREFIX=24
GATEWAY=100.100.1.254
  • 测试与网关的连通性

Linux中NAT配置——目的NAT_Linux_05

3)内网web服务器配置

  • 安装Apache服务后配置一个静态网页便于测试
  • 首先挂载iso镜像,配置本地yum源
mount -t iso9660 /dev/cdrom /mnt/cdrom

Linux中NAT配置——目的NAT_DNAT_06

  • 创建一个repo文件,写入以下内容
[baseos]
name=BaseOS
baseurl=file:///mnt/cdrom/BaseOS  #将这里的地址更换为你自己的挂载地址
enabled=1

[appstream]
name=AppStream
baseurl=file:///mnt/cdrom/AppStream #将这里的地址更换为你自己的挂载地址
enabled=1
  • 安装Apache服务
#清除yum缓存
yum clean all && yum makecache
#安装Apache服务
yum install httpd -y

Linux中NAT配置——目的NAT_DNAT_07

  • 写入网页测试文件,启动Apache服务
echo "这是内网web服务器" > /var/www/html/index.html
#启动Apache服务
systemctl start httpd && systemctl enable httpd
#访问测试
curl localhost

Linux中NAT配置——目的NAT_Linux_08

  • 测试与网关的连通性

Linux中NAT配置——目的NAT_iptables_09

Linux中NAT配置——目的NAT_iptables_10

4)配置iptables策略

  • 测试未在网关上配置策略前,外网客户端与内网web服务器的通讯情况
  • 未配置策略前,无法访问到内网的web服务器

Linux中NAT配置——目的NAT_DNAT_11

  • 在网关设备上配置DNAT
#当入站网卡为ens33时,并且访问的目标地址和端口是100.100.1.254:80时,则在收到请求时将目标地址改写为192.168.3.10的内网服务器
iptables -t nat -A PREROUTING -i ens33 -d 100.100.1.254 -j DNAT --to 192.168.3.10

Linux中NAT配置——目的NAT_iptables_12

  • 再次测试外网客户端访问内网的web服务器

Linux中NAT配置——目的NAT_iptables_13

#在内网web服务器上抓取访问80端口的信息
tcpdump -i ens160  -nnvv tcp port 80
  • 可以看到访问的信息中只有转换后的地址信息

Linux中NAT配置——目的NAT_DNAT_14

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

上一篇: yum安装postgresql-14 下一篇: Linux命令(83)之cut
  1. 分享:
最后一次编辑于 2023年11月13日 0

暂无评论

推荐阅读
  6YY0QMPUXEwu   2023年12月10日   31   0   0 linux网卡
  Ex81gqy3LOX7   2023年12月07日   24   0   0 linux
  nIt0XG0acU8j   2023年12月11日   32   0   0 linuxhtop
  nIt0XG0acU8j   2023年12月09日   39   0   0 linuxsort
Il1dbC9Jhbvl