图(1)

一、SNAT策略

  应用环境:局域网主机共享单个公网IP地址接入Internet,简单的说就是企业内部局域网想访问外部服务器时,网关型防火墙需要开启的SNAT应用策略。

  SNAT策略原理:网关型防火墙把源地址转换,修改数据包的源地址。

  *未作SNAT转换时内网数据包通信的分析:

  图(2)中局域网以192.168.1.234的IP访问Web服务,发送数据包时,网络层会封装源地址和目标地址,当Web服务器进行HTTP应答时,找不到192.168.1.234的IP地址(私网地址不允许出现在公网),所以通讯中断。

  

                    图 (2)

  *进行SNAT转换后的数据包通信分析:

  图(3)中网关服务器应用了SNAT策略,当局域网访问外网的数据到达网关,会先进行路由选择,若发现数据包需要从外网接口eht0向外转发,则将其源IP地址修改为网关的外网接口地址218.29.30.31,然后再发送给目标Web服务器,相当于从网关服务器的公网IP地址提交数据访问请求,因为是公网IP,当Web服务器进行HTTP应答时,也可以正确返回响应数据包。

  

                    图 (3)

  *在上述地址转换的过程中,网关服务器会根据之前建立的SNAT映射,将响应数据包正确返回局域网中的源主机,因此,只要连接的第一个包被SNAT处理了,那么这个连接及对应数据流的其他包也会自动地进行SNAT处理,另一方面,Internet中的服务器并不知道局域网PC的实际IP地址,中间的转换完全由网关主机完成,一定程度上也起到了保护内部网络的作用。

二、设置SNAT规则

前提条件:

  局域网各主机正确设置IP地址和子网掩码

  局域网各主机正确设置默认网关地址

  Linux网关支持IP路由转发,即/etc/sysctl.conf文件中的net.ipv4.ip_forword = 1

(1)SNAT转换规则1:固定的外网IP地址

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to-source 218.29.30.31

(2)SNAT转换规则2:非固定外网IP地址或ADSL

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE

三、DNAT策略

  应用环境:在Internet中发布位于企业局域网内的服务器

  DNAT策略原理:目标地址转换,修改数据包的目标地址

  注意:企业所注册的网站域名必须对应公网IP地址

  *进行DNAT转换后的数据包通信分析:

  图(4)中,外网请求内网服务器时,目的地址是我们的公网IP 218.29.30.31,网关服务器发现你请求的是80端口,就把你的目的地址(我们的公网IP 218.29.30.31)修改为端口号为80端口的Web服务器192.168.1.6;当我们发送应答包的时候就用到了SNAT策略,这样一去一回,就构成了我们完整的通信过程。

  

                      图 (4)

四、设置DNAT规则

前提条件:

  局域网的Web服务器能够访问Internet

  网关的外网IP地址有正确的DNS解析记录

  Linux网关支持IP路由转发

(1)DNAT转换规则1:发内网Web服务

iptables -t nat -A PREROUTING -i eth0 -d 218.29.30.31 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.6

(2)DNAT转换规则2:发布时修改目标端口

如果我想在外网访问我们内网服务器的22号端口,连接ssh的话不能直接把 --dport 80改为22,因为网关防火墙本身也有22号端口,我们可以对端口进行转化,把服务器的22号端口,通过网关防火墙转化为了250号端口,因此我们访问250号端口就是访问了服务器的22号端口。如下语句转换了IP的同时也转换了端口。

 iptables -t nat -A PREROUTING -i eth0 -d 218.29.30.31 -p tcp --dport 250 -j DNAT --to-destination 192.168.1.6:22 #配置方法
ssh 218.29.30.31:250 #访问方法

linux防火墙(四)—— SNET和DNET原理及应用的更多相关文章

  1. iptables实用知识 ,一文学会配置linux防火墙

    目录 1.防火墙的概念 2. linux防火墙 3.linux数据包处理流程 3.1 linux 防火墙将以上流程,固定区分为5个流程节点 3.2 数据流程 4 linux防火墙的实现机制 4.1 i ...

  2. Linux防火墙

    9.1 认识防火墙   只要能够分析与过滤进出我们管理之网域的封包数据, 就可以称为防火墙. 硬件防火墙 由厂商设计好的主机硬件, 这部硬件防火墙内的操作系统主要以提供封包数据的过滤机制为主,并将其他 ...

  3. Linux防火墙iptables学习

    http://blog.chinaunix.net/uid-9950859-id-98277.html 要在网上传输的数据会被分成许多小的数据包,我们一旦接通了网络,会有很多数据包进入,离开,或者经过 ...

  4. iptables 简单介绍及应用 Linux防火墙

    iptables 即 Linux防火墙 的简单介绍及使用 iptables生效位置如下图: 其中, 网络防火墙也可以使用一台启用了iptables的Linux主机代替; 路由器或集线器等设施在拓扑中省 ...

  5. 【Linux】iptables相关实践,原理及参数解释

    1.禁止指定IP地址的主机进行连接 iptables -I INPUT -s .***.***. -j DROP 2.解除禁止指定IP地址的主机进行连接 iptables -D INPUT -s .* ...

  6. 【Redhat系列linux防火墙工具】firewalld与iptables防火墙工具的激烈碰撞

    前言 iptables与firewalld防火墙管理工具在linux发行版Redhat7系列使用较为广泛. UFW则是在linux发行版Ubuntu下进行管理防火墙的一款管理工具. 在选用防火墙工具的 ...

  7. Linux防火墙firewalld安全设置

    背景描述 防火墙是具有很好的保护作用.入侵者必须首先穿越防火墙的安全防线,才能接触目标计算机.在公司里数据安全是最重要的,要求安全部门进行全公司进行服务器防火墙安全搭建,在原有的基础上进行安全的防火墙 ...

  8. Linux防火墙(iptables/firewalld)

    Linux防火墙(iptables/firewalld) 目录 Linux防火墙(iptables/firewalld) 一.iptables 1. iptables概述 2. netfilter和i ...

  9. linux防火墙 基础知识

    转 http://drops.wooyun.org/tips/1424 iptables介绍 linux的包过滤功能,即linux防火墙,它由netfilter 和 iptables 两个组件组成. ...

随机推荐

  1. 让你的javascript代码高大上

    1,创造简短的写法 你可以这么写: var slice = Array.prototype.slice; slice.call(arguments); //转化成数组 也可以这么写:(ie9+) va ...

  2. krpano之语音介绍

    语音介绍:在每进入一个场景时,播放一段该场景的语音介绍. 制作步骤: 1.定义全局事件.在关闭场景时执行stopsounds(),在打开新场景时执行automusic(). <events on ...

  3. VS2010中将CString转换为const char*

    最近碰到了CString 转 const char *的问题. 以前只要简单的一个强制转换就OK了,可现在是不行了,搜索了很多资料,终于搞定,主要是Unicode和ANSI的问题,只要做一个转换就可以 ...

  4. C++风格与C风格文件读写效率测试-vs2015,vs2017

    void test_write() { ; const char* c_plus_write_file = "H://c_plus_write_file.txt"; const c ...

  5. 解决 Python 连不上pip库的问题(使用国内镜像地址)

      经常在使用python的时候需要安装各种模块,而pip是很强大的模块安装工具,但是由于国外官方pypi经常被墙,导致不可用,所以我们最好是将自己使用的pip源更换一下,这样就能解决被墙导致的装不上 ...

  6. 使用laravel实现用户的登陆

    首先在 php artisan 里面 make:auth 生产一个门脸类 修改配置文件里面要哪个模型登陆 模型得继承一下才能 先写一下注册 密码必须要使用laravel的加密方法,使用MD5都没用 l ...

  7. Jquery异步

    一.Jquery向aspx页面请求数据$("#Button1").bind("click", function () { $.ajax({ type: &quo ...

  8. hadoop搭建好,启动服务后,无法从web界面访问50070

    在hadoop完全分布式搭建好以后,从主节点启动正常,使用jps查看启动的进程,正常,在几个从节点上使用jps查看,显示正常,但从web上输入下面网址: http://主节点IP:50070 无法正常 ...

  9. 使用Python定时执行一任务,自动登录某web系统,生成报表,然后发送邮件给指定人员

    一.项目需求 每周从A系统生成一张Excel报表,发送此报表给指定人员,相关人员依据此报表去完成后续的工作. 项目限制: 1.无法通过EDI系统交互的方式从后台读取数据 2.由于公司网络环境限制,不能 ...

  10. lucene和solr

    我们为什么要用solr呢? 1.solr已经将整个索引操作功能封装好了的搜索引擎系统(企业级搜索引擎产品) 2.solr可以部署到单独的服务器上(WEB服务),它可以提供服务,我们的业务系统就只要发送 ...