Linux学习-iptables之NAT

NAT

NAT(Network Address Translation)网络地址转换,不仅解决IP地址不足问题,而且还有效避免来自网络外部的攻击,隐藏并保护网络内部的计算机。

SNAT

只修改请求报文的源地址

DNAT

只修改请求报文的目标地址

通过Vmware克隆创建三台虚拟机模拟NAT(CentOS6.10)
  1. 第一台主机网卡配置:IP:192.168.100.10,网关:192.168.100.20
  2. 第二台主机做为NAT主机,网卡1配置:IP:192.168.100.20,网卡2配置:192.168.200.10
  3. 第三台主机网卡配置:IP:192.168.200.20,网关:192.168.200.10
    结构图
#第一台主机的网卡配置文件
[root@NAT1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
IPADDR=192.168.100.10
PREFIX=24
GATEWAY=192.168.100.20
DNS1=114.114.114.114
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth1"
#第二台主机的网卡配置文件
[root@NAT2 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
IPADDR=192.168.100.20
PREFIX=24
DNS1=114.114.114.114
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth1"
[root@NAT2 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth2
DEVICE=eth2
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
IPADDR=192.168.200.10
PREFIX=24
DNS1=114.114.114.114
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth2"
#第三台主机的网卡配置文件
[root@NAT3 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
IPADDR=192.168.200.20
PREFIX=24
GATEWAY=192.168.200.10
DNS1=114.114.114.114
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth1"

三台主机配置完成后,NAT1和NAT2可以互相通信,NAT2和NAT3可以互相通信.

开启NAT2主机的路由转发功能
#CentOS6修改以下参数,如不存在则自行添加
[root@NAT2 ~]# vim /etc/sysctl.conf
# Controls IP packet forwarding
net.ipv4.ip_forward = 1
#查看参数修改情况
[root@NAT2 ~]# cat /proc/sys/net/ipv4/ip_forward
1
#CentOS7修改以下参数
[root@model ~]# vim /usr/lib/sysctl.d/50-default.conf
net.ipv4.ip_forward=1

修改完成后NAT3和NAT1就可以通信了。

将NAT3主机的默认网关给删除了,通过在NAT2主机上添加iptables规则来模拟内网主机(NAT1)能访问外网主机(NAT3)
#语法
# iptables -t nat -I POSTROUTING -s LocalNet ! -d LocalNet -j SNAT --to-source ExtIP
#iptables -t nat -I POSTROUTING -s LocalNet ! -d LocalNet -j MASQUERADE
#-----------内网至外网----------
#在NAT2主机上添加iptables规则--SNAT
[root@NAT2 ~]# iptables -t nat -A POSTROUTING -s 192.168.100.0/24 ! -d 192.168.100.0/24 -j SNAT --to-source 192.168.200.10
#在NAT2主机上添加iptables规则--MASQUERADE,做地址伪装,to-source地址经常变化时使用
[root@NAT2 ~]# iptables -t nat -A POSTROUTING -s 192.168.100.0/24  ! -d 192.168.100.0/24 -o eth2 -j MASQUERADE
#-----------内网至外网----------
如何发布公司内网服务器,DNAT转换目标地址
#语法
#iptables -t nat -I PREROUTING -d ExtIP -p (tcp|udp) --dport PORT -j DNAT --to-destination LocalIP[:PORT]
#-d 指定的外网出口服务器IP地址(即用户访问的IP),--to-destination指定的是后端被映射的内网机的IP地址
[root@NAT2 ~]# iptables -t nat -A PREROUTING -i eth2 -d 192.168.200.10 -p tcp --dport 22 -j DNAT --to-destination 192.168.100.10
#通过SSH访问正常
[root@NAT3 ~]# ssh 192.168.200.10
root@192.168.200.10's password: 
Last login: Fri Jul  9 17:40:47 2021
[root@NAT1 ~]# 
#-----------PNAT----
[root@NAT2 ~]# iptables -t nat -A PREROUTING -i eth2 -d 192.168.200.10 -p tcp --dport 2345 -j DNAT --to-destination 192.168.100.10:22
#通过2345端口访问SSH服务,输入密码后正常连接
[root@NAT3 ~]# ssh 192.168.200.10 -p 2345
root@192.168.200.10's password: 
Last login: Fri Jul  9 18:15:28 2021 from 192.168.200.20
[root@NAT1 ~]# 
#-----------PNAT----


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值