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
下一篇 2017-06-13

相关推荐

  • 博客

       这是我的第一篇博客!   平时学习中,总会遇到或大或小的问题,以及一些新的感悟,在当时能够十分清晰记得,但过一些时日,便发现又忘记了。以前十分明白的东西,又变得有些模糊,甚至完全忘记。因此特别需要记录下来,方便日后的查阅或分享给其他遇到类似问题的朋友。    如果以后忘记的某些知识,这时候,翻开以往博客…

    Linux干货 2017-07-11
  • N25_第六周

    1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; %s@^[[:space:]]+@#&@g 2、复制/boot/grub/grub.conf至/tmp目录中,删除/tmp/grub.conf文件中的行首的空白字符; %s@^[[:spac:]]+@@g…

    Linux干货 2017-02-13
  • Linux网络属性配置的几个命令

    Linux网络属性配置命令 ifcfg命令家族:ifconfig,route,netstat ifconfig命令:接口及地址查看和管理 ifconfig [INTERFACE] #ifconfig -a : 显示所有接口,包括inactive状态的接口 ifconfig interface [aftype] options | address … #i…

    Linux干货 2017-05-09
  • Linux下的文件管理系统

    一、文件系统的FHS标准     因为Linux的属于开源系统,开发人员多,为了统一开发标准,Linux有一个文件系统标准,也就是FHS(Filesystem HierarchyStandard)标准。有了这个标准,那些独立的软件开发商、系统开发人员以及系统的使用者就能方便的在系统上操作。 二、文件系统  &…

    Linux干货 2016-08-02
  • Linux Basics-Linux Bash历史和其概念名词解释part1

    Linux Basics-Linux Bash历史和其概念名词解释part1 阅读本文你将知道:查看更多BashFAQ.pdf   Bash的历史及其特性   Bash的如何工作   Bash的概念解释   前提知识:      对linux有一定基础而且了解Bash的…

    Linux干货 2016-10-29
  • LInux 网络及相关进程作业管理

    马哥教育网络班23期+第四周课堂练习 Linux 网络及相关进程作业管理 一、概述 1.1 简介: 进入Linux学习第四周,这一周讲的知识点非常的多,也特别的碎,感觉这一周的内容掌握起来有很大的难度,主要是要记的命令很多,包括yum 的一些安装的命令,配置yum 源,相关的网络的命令和参数,还有就是进程管理和作业管理中的相关工具的使用,最后还讲了bash脚…

    Linux干货 2016-10-24