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

相关推荐

  • 虚拟化介绍、以及kvm

    什么是虚拟化? 在计算机领域中虚拟化,和我们平时说的虚拟化并没有什么两样,说白了就是一个虚拟出来的东西罢了,并不是真实存在的。 虚拟化的历史 虚拟化早在20实际60年代末,由IBM开发被命名为vmm(Virtual Machine Monitor)虚拟机监视器的软件,我们知道那时候工艺技术并不发达,电脑也不像现在这样属于每家每户的标配,IBM为了解决电脑使用…

    2017-03-08
  • N_28 linux基础知识

    1.计算机的组成
    2.linux的各发行版
    3.linux的哲学思想
    4.一些linux的基本命令
    5.帮助信息
    6.FHS

    2017-12-01
  • 新的征程即将开始……

    新的征程,新的开始,开博祭旗篇!!!

    Linux干货 2016-12-26
  • 17周博客作业 LVS+nginx+php(nginx与php分离)

    1、结合图形描述LVS的工作原理; LVS是一种用软件实现的LB集群; 作用于传输层; LVS工作原理:通过Director调度把用户请求按照分配算法分配给后端的Real server,然后由后端Real server响应客户请求; lvs模式分为三种。 lvs-nat: 多目标的DNAT:通过将请求报文的目标地址和目标端口修改为挑选出某…

    Linux干货 2016-11-07
  • 每日一练–8.8 sed,vim

     1 、删除/etc/grub2.conf 文件中所有以空白开头的行行首的空白字符     sed  's/^[[:space:]]//g' /etc grub2.conf  2 、删除/etc/fstab 文件中所有以# 开头,后面至少跟一个空白字符的行的行首的# 和空白字符   &n…

    Linux干货 2016-08-12
  • zabbix部署(Linux上部署/监控端/被监控端)

    zabbix部署 一、监控系统的简单介绍 (1)cacti:存储数据能力强,报警性能差 (2)nagios:报警性能差,存储数据仅有简单的一段可以判断是否在合理范围内的数据长度,储存在内存中。比如,连续采样数据存储,有连续三次不在合理范围内的数据就报警 (3)zabbix:结合上面两种工具的优点,又可以存储数据,又可以报警 二、zabbix特性 (1)数据采…

    Linux干货 2017-01-06