1 / 41

1 . 项目课题引入

1 . 项目课题引入. 2 . 防火墙的工作原理. 3 . 防火墙的配置与管理. 4 . NAT 的配置. 5 . 现场演示案例. 课题引入 —— 项目背景.

roz
Download Presentation

1 . 项目课题引入

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 1. 项目课题引入 2. 防火墙的工作原理 3. 防火墙的配置与管理 4. NAT的配置 5. 现场演示案例

  2. 课题引入——项目背景 • 假设某单位租用DDN专线上网。网络拓扑如下图所示。iptables防火墙的eth0接口连接外网,IP地址为222.206.160.100;eth1接口连接内网,IP地址为192.168.1.1。假设在内网中存在WEB、DNS和E-mail3台服务器,这3台服务器都有公有IP地址。其IP地址如图所示。设置防火墙规则加强对内网服务器的保护,并允许外网的用户可以访问此3台服务器。

  3. 课题引入——项目分析 • 完成本项目需要解决的问题: • 1、什么是防火墙,其工作原理是什么 • 2、如何使用Iptables进行防火墙设置 • 3、如何配置包过滤防火墙 • 4、如何实现NAT

  4. 课题引入——教学目标 • 学习本课需要实现的教学目标: • 掌握防火墙的概念和工作原理 • 掌握Iptables的结构和配置方法 • 掌握包过滤防火墙的配置方法 • 掌握NAT的配置方法

  5. 课题引入——应达到的职业能力 • 学生学习本课后应该具有的职业能力: • 掌握为企业设计防火墙的能力 • 掌握Linux下Iptables的配置方法 • 掌握包过滤防火墙的配置能力 • 掌握NAT的配置能力 • 具有较好的团队合作能力

  6. 项目问题一 防火墙的工作原理 • 防火墙是一种非常重要的网络安全工具,利用防火墙可以保护企业内部网络免受外网的威胁,作为网络管理员,掌握防火墙的安装与配置非常重要。 • 防火墙分成2种: • 代理服务器型防火墙 • 包过滤型防火墙

  7. 包过滤型防火墙 • 包过滤型防火墙内置于Linux系统的内核,在网络层或传输层对经过的数据包进行筛选。筛选的依据是系统内设置的过滤规则(ACL)。通过检查数据流中每个数据包的源地址、目的地址、所有的协议、端口号等因素,来决定是否允许该数据包通过。如图所示是包过滤型防火墙常用的一种模式,主要用来阻隔来自外网对内部网络的威胁。 • 包过滤型防火墙有两种基本的默认访问控制策略: • 一种是先禁止所有的数据包通过,然后再根据需要允许满足匹配规则的数据包通过。 • 一种是先允许所有的数据包通过,再根据需要拒绝满足匹配规则的数据包通过。

  8. 代理服务器型防火墙 • 代理服务器型防火墙是应用网关型防火墙,通常工作在应用层。代理服务器实际上是运行在防火墙上的一种服务器程序。服务器监听客户机的请求,如申请浏览网页等。当内网的客户机请求与外网的真实服务器连接时,客户端首先连接代理服务器,然后再由代理服务器与外网真实的服务器建立连接,取得客户想要的信息,代理服务器再把信息返回给客户。

  9. 包过滤型防火墙工作原理 • 包过滤型防火墙的工作过程: • (1)数据包从外网传送给防火墙后,防火墙在IP层向TCP层传输数据前,将数据包转发给包检查模块进行处理。 • (2)首先与第一条过滤规则进行比较。 • (3)如果与第一条规则匹配,则进行审核,判断是否允许传输该数据包,如果允许则传输,否则查看该规则是否阻止该数据包通过,如果阻止则将该数据包丢弃。 • (4)如果与第一条过滤规则不同,则查看是否还有下一条规则。如果有,则与下一条规则匹配,如果匹配成功,则进行与(3)相同的审核过程。 • (5)依此类推,一条一条规则匹配,直到最后一条过滤规则。如果该数据包与所有的过滤规则均不匹配,则采用防火墙的默认访问控制策略策略(丢掉该数据包,或允许该数据包通过)。

  10. 包过滤型防火墙工作原理 • 包过滤规则检查内容: • 源、目标IP地址 • TCP和UDP的源、目的端口号 • 协议类型 • ICMP消息类型 • TCP报头中的ACK位、序列号、确认号 • IP校验和 包过滤型防火墙原理图

  11. 项目问题二 Netfilter/iptables架构 • 从1.1内核开始,Linux下的包过滤系统经历了3个阶段: • 在2.0内核中,采用ipfwadm来操作内核包过滤规则。 • 在2.2内核中,采用ipchains来控制内核包过滤规则。 • 在2.4内核中,采用了一个全新的内核包过滤管理工具――iptables。 • Netfilter/iptables最早是与2.4内核版本的Linux系统集成的IP信息 • 包过滤系统。它由Netfilter和iptables两个组件组成。

  12. Netfilter/iptables架构 • Netfilter组件称为内核空间,它集成在Linux的内核中。 • 主要由信息包过滤表(tables)组成,而表由若干个链组 • 成,每条链中可以由一条或者多条规则组成。总的来说, • Netfilter是表的容器,表是链的容器,而链又是规则的容器。

  13. Netfilter/iptables架构 • (1)规则。规则存储在内核的包过滤表中,分别指定了源、目的IP地址、传输协议、服务类型等。当数据包与规则匹配时,就根据规则所定义的方法来处理数据包,如放行、丢弃等动作。 • (2)链。链是数据包传播的路径,每一条链其实就是众多规则中的一个检查清单,每一条链中可以有一条或数条规则。当数据包到达一条链时,会从链中第一条规则开始检查,看该数据包是否满足规则所定义的条件,如果满足,系统就会根据该条规则所定义的方法处理该数据包;否则将继续检查下一条规则。如果该数据包不符合链中任一条规则,会根据该链预先定义的默认策略处理数据包。

  14. Netfilter/iptables架构 • (3)表。Netfilter中内置有3张表:filter表,nat表和mangle表。其中filter表用于实现数据包的过滤、nat表用于网络地址转换、mangle表用于包的重构。 • filter表是iptables默认的表, 主要用于数据包的过滤。filter表包含了INPUT链(处理进入的数据包)、FORWARD链(处理转发的数据包)和OUTPUT链(处理本地生成的数据包)。 • nat表主要用于网络地址转换。nat表包含了PREROUTIN链(修改即将到来的数据包)、OUTPUT链(修改在路由之前本地生成的数据包)和POSTROUTING链(修改即将出去的数据包)。 • mangle表主要用于对指定的包进行修改。在Linux 2.4.18内核之前,mangle表仅包含PREROUTING链和OUTPUT链。在Linux2.4.18内核之后,包括PREROUTING、INPUT、FORWARD、OUTPUT和POSTROUTING五个链。

  15. iptables传输数据包过程 • iptables传输数据包的过程如下图所示。

  16. iptables传输数据包过程 • 打开Linux的路由转发功能: • (1) 修改内核变量ip_forward • (2)修改/etc/sysctl.conf文件使“net.ipv4.ip_forward”的值设置为1 。

  17. iptables命令 • iptables命令格式为: • iptables [-t 表名] -命令 [链名] 匹配条件 目标动作 • Iptables表的常用命令:

  18. iptables命令 • Iptables命令中的常用匹配规则:

  19. iptables命令 • Iptables命令中的常用目标动作选项:

  20. iptables命令 • 制定永久性规则集: • 保存规则集: • 恢复规则集:

  21. 项目问题三 使用iptables配置包过滤防火墙 • 【例15-1】清除所有链中的规则 。

  22. iptables命令举例 • 【例15-2】设置filter表中3个链的默认策略为拒绝 。 • 【例15-3】查看所有链的规则列表 。

  23. iptables命令举例 • 【例15-4】添加一个用户自定义的链custom 。

  24. iptables命令举例 • 【例15-5】向filter表的INPUT链的最后添加一条规则,对来自192.168.1.1这台主机的数据包丢弃 。

  25. iptables命令举例 • 【例15-6】向filter表中的INPUT链的第3条规则前面插入一条规则,允许来自于非192.168.3.0/24网段的主机对本机的25端口的访问 。

  26. iptables命令举例 • 【例15-7】向filter表的INPUT链中添加一条规则,拒绝外界主机访问本机tcp协议的100至1024端口。

  27. iptables命令举例 • 【例15-8】向filter表的INPUT链中添加一条规则,拒绝来自其他主机的ping请求 。

  28. 项目问题三 NAT的基本知识 • NAT的主要功能: • (1)从Intranet传出的数据包由NAT将它们的专用地址转换为公用地址。 • (2)从Internet传入的数据包由NAT将它们的公用地址转换为专用地址。 • (3)支持多重服务器和负载均衡。 • (4)实现透明代理 。

  29. NAT的基本知识 • NAT的工作过程: • (1)客户机将数据包发给运行NAT的计算机。 • (2) NAT将数据包中的端口号和专用的IP地址换成它自己的端口号和公用的IP地址,然后将数据包发给外部网络的目的主机,同时记录一个跟踪信息在映像表中,以便向客户机发送回答信息。 • (3)外部网络发送回答信息给NAT。 • (4)NAT将所收到的数据包的端口号和公用IP地址转换为客户机的端口号和内部网络使用的专用IP地址并转发给客户机。

  30. NAT的基本知识 • NAT的工作过程示意图:

  31. NAT的基本知识 • NAT的分类: • (1)源NAT(Source NAT,SNAT)。SNAT指修改第一个包的源IP地址。SNAT会在包送出之前的最后一刻做好Post-Routing的动作。Linux中的IP伪装(MASQUERADE)就是SNAT的一种特殊形式。 • (2)目的NAT(Destination NAT,DNAT)。DNAT是指修改第一个包的目的IP地址。DNAT总是在包进入后立刻进行Pre-Routing动作。端口转发、负载均衡和透明代理均属于DNAT。

  32. 使用Iptables实现NAT • 用户根据规则所处理的信息包类型,使用iptables命令设置NAT规则: • 要做源IP地址转换的数据包的规则被添加到POSTROUTING链中。 • 要做目的IP地址转换的数据包的规则被添加到PREROUTING链中。 • 直接从本地出去的数据包的规则被添加到OUTPUT链中。

  33. 使用Iptables实现NAT • 数据包穿越NAT的工作流程示意图:

  34. 使用Iptables实现NAT • 【例15-10】假设某企业网中NAT服务器安装了双网卡,eth0连接外网,eth1连接内网,IP地址为192.168.0.1。企业内部网络的客户机都只有私有IP地址。利用NAT服务使企业内部网络的计算机能够连接Internet网络。

  35. 【例15-10】的解决方案1 • 假设eth0的IP地址是静态分配的。公网IP地址池为222.206.160.100-222.206.160.150 。此时应作SNAT,iptables命令的-j参数的语法格式为: • -j SNAT --to-source/--to IP1[-IP2]:[port1] [-port2]] • 配置步骤: • 打开Linux的内核转发功能。 • [root@RHEL4 ~]# echo “1”>/proc/sys/net/ipv4/ip_forward • 实现SNAT。 • [root@RHEL4 ~]# iptables –t nat –A POSTROUTING –p tcp –o eth0 –j SNAT --to 222.206.160.100-222.206.160.150:1025:30000

  36. 【例15-10】的解决方案2 • 假设连接外网的接口是利用ADSL拨号连接的ppp0。 此时应作IP伪装,iptables命令的-j参数的语法格式为: • -j MASQUERADE • 配置步骤: • 打开Linux的内核转发功能。 • [root@RHEL4 ~]# echo “1”>/proc/sys/net/ipv4/ip_forward • 实现IP伪装。 • [root@RHEL4 ~]# iptables –t nat –A POSTROUTING –o ppp0 -j MASQUERADE

  37. 使用Iptables实现NAT • 【例15-11】假设某企业网中NAT服务器安装了双网卡,eth0连接外网,IP地址为222.206.160.100。eth1连接内网,IP地址为192.168.0.1。企业内部网络WEB服务器的IP地址为192.168.1.2。要求当Internet网络中的用户在浏览器中输入http:// 222.206.160.100时可以访问到内网的WEB服务器。

  38. 【例15-11】的解决方案 • 根据题目要求可知,此时应作DNAT。iptables命令的-j参数的语法格式为: • -j DNAT --to-destination/--to IP1[-IP2]:[port1] [-port2]] • 实现DNAT的配置语句: • # iptables –t nat –A PREROUTING –p tcp –d 222.206.160.100 --dport 80 –j DNAT --to 192.168.1.2:80 • 或者: • # iptables –t nat –A PREROUTING –p tcp –i eth0 --dport 80 –j DNAT --to 192.168.1.2:80

  39. 总结 • 本项目的解决方案: • //1. 清空所有的链规则 • [root@RHEL4 ~]# iptables -F • //2. 禁止iptables防火墙转发任何数据包 • [root@RHEL4 ~]# iptables -P FORWARD DROP • //3. 建立来自Internet网络的数据包的过滤规则 • # iptables -A FORWARD –p tcp –d 222.206.100.2 –p tcp --dport 80 -i eth0 -j ACCEPT • # iptables -A FORWARD –p tcp –d 222.206.100.3 -p tcp --dport 53 -i eth0 -j ACCEPT • # iptables -A FORWARD –p tcp –d 222.206.100.4 -p tcp --dport 25 -i eth0 -j ACCEPT • # iptables -A FORWARD –p tcp –d 222.206.100.4 -p tcp --dport 110 -i eth0 -j ACCEPT • //4. 接受来自内网的数据包通过 • [root@RHEL4 ~]# iptables -A FORWARD –s 222.206.100.0/24 –j ACCEPT • //5. 对于所有的ICMP数据包进行限制,允许每秒通过一个数据包,该限制的触发条件是10个包 • [root@RHEL4 ~]# iptables -A FORWARD -p icmp -m limit --limit 1/s --limit-burst 10 -j ACCEPT

  40. 作业 • 根据如下防火墙配置的需求,写出配置命令: • 设置filter表中3个链的默认策略为拒绝 • 查看所有链的规则列表 • 添加一个用户自定义的链custom1 • 向filter表的INPUT链的最后添加一条规则,对来自192.168.1.10这台主机的数据包丢弃 • 向filter表中的INPUT链的第3条规则前面插入一条规则,允许来自于非192.168.3.0/24网段的主机对本机的25端口的访问

More Related