iptables的DNAT、SNAT配置

DNAT:目的地址转换。当外网主机访问内网的某台服务器的时候,如果直接暴露服务器的IP于公网,可能会遭受各种各样的攻击,而DNAT的主要作用就是在服务器前面添加一台防火墙。将防火墙的地址公布出去,让外网客户端通过访问防火墙的地址就可以访问到本地服务器。这样就起到了保护服务器的目的;

SNAT:源地址转换。内网主机在访问互联网的时候所有源地址都转换为防火墙的外网地址,起到隐藏内网客户机的目的。同时,也解决了IPV4公网地址不够用的需求。

一、实验需求

通过三台服务器模拟iptables的DNAT、SNAT的配置。

二、实验环境

三台服务器:

  1. 内网服务器:提供httpd服务。IP:192.168.11.137

  2. 外网客户端:用于访问内网服务器。IP:172.16.251.247

  3. iptables防火墙:用一台虚拟机开启核心转发功能来模拟,用于实现DNAT和SNAT的功能。

    • IP1:192.168.11.144(内网服务器网关)

    • IP2:172.16.250.151(外网客户端网关)

    拓扑如下:

    iptables的DNAT、SNAT配置

三、实验配置

DNAT配置

  1. 内网服务器配置:

    1. 安装httpd,vsftpd和samba服务:

     yum install -y httpd vsftpd samba 
    1. 配置默认网关为192.168.11.144

     route add default gw 192.168.11.144
  2. 外网客户端配置:

    1. 配置默认网关:

     route add default gw 172.16.250.151
  3. iptables主机配置:

    1. 开启核心转发功能:

     echo 1 > /proc/sys/net/ipv4/ip_forward
    1. 此时外网主机和内网主机就能够相互ping通了;

    2. 配置DNAT:

     iptables -t nat -A PREROUTING -d 172.16.250.151 -p tcp --dport 80 -j DNAT --to-destination 192.168.11.137

    注意:

    DNAT需要在PREROUTING链做转发策略。

    1. 此时通过外网主机访问内网服务器的httpd服务就可以成功了,此处采用在内网主机和iptables的172.16.250.151网口进行抓包分析DNAT工作过程:

      1. 内网服务器抓包截图:

        iptables的DNAT、SNAT配置

        可以看到源地址为172.16.251.247,目的地址为192.168.11.137

      2. iptables抓包截图:

        iptables的DNAT、SNAT配置

        我们访问的目的地址为172.16.250.151,而此处看到源地址为172.16.251.247,而目的地址却为192.168.11.137。可以证明我们访问172.16.250.151的80端口被转发到192.168.11.137的80端口上了。此处证明在DNAT的过程中源地址是永久不变的,而目的地址会根据策略而发生变化。

SNAT配置

注意:此处外网和内网位置做调换,即如下拓扑图的形式:外网成为服务器,而内网为访问服务的客户端

iptables的DNAT、SNAT配置

  1. iptables主机配置策略如下:

     ##首先清空刚才的DNAT策略## iptables -t nat -F iptables -t nat -A POSTROUTING -s 172.16.251.147 -j SNAT --to-source 192.168.11.144
  2. 此时外网服务端可以正常访问到外网httpd服务,此时在外网主机和防火墙的192.168.11.144进行抓包分析SNAT的工作过程:

    1. 外网主机抓包:

      iptables的DNAT、SNAT配置

      此处我们是通过内网客户端172.16.251.147访问的外网的httpd服务,此处可以看到源地址和目的地址为:

      • 源地址:192.168.11.144.50076

      • 目的地址:192.168.11.137.80

      证明源地址已经被转换为防火墙的外网网口了。

    2. 防火墙内网172.16.251.247抓包分析:

      iptables的DNAT、SNAT配置

      • 源地址:172.16.251.247.50080

      • 目的地址:192.168.11.137.80

      此处证明报文在进入防火墙的时候源地址还没有发生变化。说明源地址是从防火墙出去之前发生的转换。

原创文章,作者:王子豪,如若转载,请注明出处:http://www.178linux.com/77968

赞 (1)
王子豪王子豪
上一篇 2017-06-11 23:06
下一篇 2017-06-13 09:50

相关推荐

  • bash脚本作业

    1、每隔3秒钟到系统上获取已经登录的用户的信息;如果发现用户hacker登录,则将登录时间和主机记录于日志/var/log/login.log中,并提示该用户退出系统。 2、随机生成10以内的数字,实现猜字游戏,提示比较大或小,相等则退出。 1、求100以内所有正整数之和 2、通过ping命令探测172.16.250.1-254范围内的所有主机的在线状态,…

    Linux干货 2016-08-19
  • Mariadb数据库备份恢复系列(二):xtrabackup物理备份工具之完全备份

    实验二:利用xtrabackup+二进制日志实现完全备份和恢复数据库 1、安装xtrabackup软件包 2、验证数据的存储引擎类型 3、查看数据初始状态 4、利用innobackupex进行完全备份 5、进行apply-log操作 6、查看备份出来的文件的信息 7、模拟在完全备份后,对数进行修改,以测试通过二进制日志还原完全备份后尚未来得及备份的变化的数据…

    Linux干货 2016-11-24
  • CentOS7.2编译安装httpd

    环境:CentOS7.2 软件包:httpd-2.2.29.tar.bz2 1、解压缩httpd-2.2.29.tar.bz2 2、进入解压过的文件夹,查看用法(INSTALL、)后然后./configure –help查看参数后执行需要的参数操作,     通过选项传递参数,指定启用特性,安装路径的等,…

    Linux干货 2016-08-24
  • 马哥教育网络班22期+第3周课程练习

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 [root@localhost ~]# w | tail -n+3 | cut -d" " -f1 | sort |&…

    Linux干货 2016-08-29
  • linux中nmcli命令使用及网络配置

      Red Hat Enterprise Linux 7 与 CentOS 7 中默认的网络服务由 NetworkManager 提供,这是动态控制及配置网络的守护进程,它用于保持当前网络设备及连接处于工作状态,同时也支持传统的 ifcfg 类型的配置文件。  NetworkManager 可以用于以下类型的连接:Ethernet,VLA…

    Linux干货 2016-09-10
  • Linux用户及组的管理相关知识

    Linux用户及组的管理相关知识 1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 ~]# who | cut -d " " -f1 | sort -u 2、取出最后登录到当前系统的用户的相关信息。 ~]# last -x | head -1 3、取出当前系统上被用户当作其默认shell的最多的那…

    Linux干货 2016-10-05