第13章配置防火墙与代理服务器ppt课件.ppt
《第13章配置防火墙与代理服务器ppt课件.ppt》由会员分享,可在线阅读,更多相关《第13章配置防火墙与代理服务器ppt课件.ppt(97页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、在此输入您的封面副标题第13章 配置防火墙与代理服务器LinuxLinux操作系统与实训操作系统与实训( (第三版第三版)杨云杨云 编著编著中国铁道出版社中国铁道出版社国家精品课程国家精品课程/国家精品资源共享课程国家精品资源共享课程配套教材配套教材第13章 配置防火墙与代理服务器 项目描述:某高校组建了校园网,并且已经架设了Web、FTP、DNS、DHCP、Mail等功能的服务器来为校园网用户提供服务,现有如下问题需要解决。(1)需要架设防火墙以实现校园网的安全。(2)需要将子网连接在一起构成整个校园网。(3)由于校园网使用的是私有地址,需要进行网络地址转换,使校园网中的用户能够访问互联网。
2、 该项目实际上是由Linux的防火墙与代理服务器:iptables和squid来完成的,通过该角色部署iptables、NAT、squid,能够实现上述功能。 项目目标 :了解防火墙的分类及工作原理 了解NAT 掌握iptables防火墙的配置 掌握利用iptables实现NAT13.1 防火墙概述 13.3 NAT13.6 项目实录13.7 超级链接第13章 配置防火墙与代理服务器13.2 iptables13.4 squid代理服务器13.5 练习题13.1 防火墙概述 1什么是防火墙防火墙通常具备以下几个特点。 (1)位置权威性。 (2)检测合法性。 (3)性能稳定性。13.1 防火墙概
3、述 2防火墙的种类(1)包过滤防火墙。 (2)代理防火墙。 (3)状态检测技术。 13.2.1 iptables简介 早期的Linux系统采用过ipfwadm作为防火墙,但在核心中被ipchains所取代。Linux 2.4版本发布后,netfilter/iptables信息包过滤系统正式使用。 Netfilter/iptables IP数据包过滤系统实际由netfilter和iptables两个组件构成。Netfilter是集成在内核中的一部分,它的作用是定义、保存相应的规则。而iptables是一种工具,用以修改信息的过滤规则及其他配置。用户可以通过iptables来设置适合当前环境的规则
4、,而这些规则会保存在内核空间中。 对于Linux服务器而言,采用netfilter/iptables数据包过滤系统,能够节约软件成本,并可以提供强大的数据包过滤控制功能,iptables是理想的防火墙解决方案。 13.2 iptables 13.2.2 iptables工作原理 netfilter是Linux核心中的一个通用架构,它提供了一系列的“表”(tables),每个表由若干“链”(chains)组成,而每条链可以由一条或数条“规则”(rules)组成。实际上,netfilter是表的容器,表是链的容器,而链又是规则的容器。1iptables名词解释 (1)规则(rules)。设置过滤数
5、据包的具体条件,如IP地址、端口、协议以及网络接口等信息,iptables如表 条 件说 明Address针对封包内的地址信息进行比对。可对来源地址(Source Address)、目的地址(Destination Address)与网络卡地址(MAC Address)进行比对Port封包内存放于Transport层的Port信息设定比对的条件,可用来比对的Pott信息包含:来源Port(Source Port)、目的Port(Destination Port)Protocol通信协议,指的是某一种特殊种类的通信协议。Netfilter可以比对TCP、UDP或者ICMP等协议Interface
6、接口,指的是封包接收,或者输出的网络适配器名称Fragment不同Network Interface的网络系统,会有不同的封包长度的限制。如封包跨越至不同的网络系统时,可能会将封包进行裁切(Fragment)。可以针对裁切后的封包信息进行监控与过滤Counter可针对封包的计数单位进行条件比对 (2)动作(target)。当数据包经过Linux时,若netfilter检测该包符合相应规则,则会对该数据包进行相应的处理,iptables动作如表 13.2.2 iptables工作原理13.2.2 iptables工作原理 (3)链(chain)。数据包传递过程中,不同的情况下所要遵循的规则组合形
7、成了链。规则链可以分为以下两种。内置链(Build-in Chains)。用户自定义链(User-Defined Chains)。netfilter常用的为内置链,其一共有5个链,如表 13.2.2 iptables工作原理netfilter的5条链相互地关联,如图 iptables数据包转发流程图 13.2.2 iptables工作原理 (4)表(table)。接受数据包时,Netfilter会提供以下3种数据包处理的功能。 过滤。 地址转换。 变更。Netfilter根据数据包的处理需要,将链(chain)进行组合,设计了3个表(table):filter、nat以及mangle。 fil
8、ter。这是netfilter默认的表,通常使用该表进行过滤的设置,它包含以下内置链。 INPUT:应用于发往本机的数据包。 FORWARD:应用于路由经过本地的数据包。 OUTPUT:本地产生的数据包。filter表过滤功能强大,几乎能够设定所有的动作(target)。13.2.2 iptables工作原理 nat。当数据包建立新的连接时,该nat表能够修改数据包,并完成网络地址转换。它包含以下3个内置链。 PREROUTING:修改到达的数据包。 OUTPUT:路由之前,修改本地产生数据包。 POSTROUTING:数据包发送前,修改该包。nat表仅用于网络地址转换,也就是转换包的源或目标
9、地址,其具体的动作有DNAT、SNAT以及MASQUERADE,下面的内容将会详细介绍。13.2.2 iptables工作原理 mangle。该表用在数据包的特殊变更操作,如修改TOS等特性。内核以前,它包含两个内置链:PREROUTING和OUTPUT,内核发布后,mangle表对其他3个链提供了支持。 PREROUTING:路由之前,修改接受的数据包。 INPUT:应用于发送给本机的数据包。 FORWARD:修改经过本机路由的数据包。 OUTPUT:路由之前,修改本地产生的数据包。 POSTROUTING:数据包发送出去之前,修改该包。 2iptables工作流程13.2.2 iptabl
10、es工作原理iptables拥有3个表和5个链,其整个工作流程如图 13.2.2 iptables工作原理13.2.3 安装iptables1检查检查iptables是否已经安装,没有安装则使用是否已经安装,没有安装则使用yum命令安装命令安装在默认情况下,iptables已经被安装好了。可以使用rpm -qa命令来查看默认安装了哪些软件,如下所示。(iptables默认已经安装。)rootRHEL6 # rpm -qa | grep iptablesrootRHEL6桌面# yum clean all /安装前先清除缓存安装前先清除缓存rootRHEL6 # yum install ipta
11、bles y/若没装则使用若没装则使用yum安装。安装。 13.2 iptables13.2.3 安装iptables2iptables服务的启动、停止、重新启动、随系统启动服务的启动、停止、重新启动、随系统启动rootRHEL6 # service iptables startrootRHEL6 # service iptables stoprootRHEL6 # service iptables restartrootRHEL6 # chkconfig -level 3 iptables on #运行级别3 自动加载rootRHEL6 # chkconfig -level 3 iptabl
12、es off #运行级别3 不自动加载提示:亦可使用ntsysv命令,利用文本图形界面对iptables自动加载进行配置。13.2.4 iptables命令 如果想灵活运用iptables来加固系统安全的话,就必须熟练地掌握iptables的语法格式。iptables的语法格式如下。iptables -t 表名表名 -命令命令 -匹配匹配 -j 动作动作/目标目标1表选项 iptables内置了filter、nat和mangle 3张表,使用-t参数来设置对哪张表生效。例如,如果对nat表设置规则的话,可以在-t参数后面加上nat,如下所示。iptables -t nat -命令命令 -匹配匹
13、配 -j 动作动作/目标目标-t参数是可以省略的,如果省略了-t参数,则表示对filter表进行操作。例如:iptables -A INPUT -p icmp -j DROP13.2.4 iptables命令13.2.4 iptables命令13.2.4 iptables命令3匹配选项 匹配选项用来指定需要过滤的数据包所具备的条件。换句话说就是在过滤数据包的时候,iptables根据什么来判断到底是允许数据包通过,还是不允许数据包通过,过滤的角度通常可以是源地址、目的地址、端口号或状态等信息。如果使用协议进行匹配的话,就是告诉iptables从所使用的协议来进行判断是否丢弃这些数据包。在TCP
14、/IP的网络环境里,大多数的数据包所使用的协议不是TCP类型的就是UDP类型的,还有一种是ICMP类型的数据包,例如ping命令所使用的就是ICMP协议。下面先来介绍一些较为常用的匹配选项。更多介绍请参考相关文献。13.2.4 iptables命令13.2.4 iptables命令13.2.4 iptables命令(3)-dport或 -destination -port。作用:基于TCP包的目的端口来匹配包,也就是说通过检测数据包的目的端口是不是指定的来判断数据包的去留。端口的指定形式和-sport完全一样。例如:iptables -I INPUT -dport 80 -j ACCEPT(4
15、)-s或-src或-source。作用:以IP源地址匹配包。例如:iptables -A INPUT -s 1.1.1.1 -j DROP注意:在地址前加英文感叹号表示取反,注意空格,如:表示除此地址外的所有地址。13.2.4 iptables命令iptables -A OUTPUT -o eth1 -j ACCEPT4动作/目标选项 动作/目标决定符合条件的数据包将如何处理,其中最为基本的有ACCEPT和DROP。介绍常用的动作/目标如表 13.2.4 iptables命令13.2.5 设置默认策略 在iptables中,所有的内置链都会有一个默认策略。当通过iptables的数据包不符合链
16、中的任何一条规则时,则按照默认策略来处理数据包。 定义默认策略的命令格式如下。iptables -t 表名表名 -P 链名链名 动作动作【例13-1】 将filter表中INPUT链的默认策略定义为DROP(丢弃数据包)。rootserver # iptables -P INPUT DROP【例13-2】 将nat表中OUTPUT链的默认策略定义为ACCEPT(接受数据包)。rootserver # iptables -t nat -P OUTPUT ACCEPT13.2.6 iptables使用举例 【例13-1】清除filter表中所有链中的规则。rootserver # iptables
17、 -F【例13-3】查看filter表中所有链的规则列表。rootserver # iptables -L【例13-2】设置filter表中3个链的默认配置策略为拒绝。rootRHEL6 # iptables -P INPUT DROProotRHEL6 # iptables -P OUTPUT DROProotRHEL6 # iptables -P FORWARD DROP13.2.6 iptables使用举例 【例13-4】添加一个用户自定义的链custom。rootserver # iptables -N custom【例13-6】向filter表中的INPUT链的第2条规则前面插入一条
18、规则,允许来自于非网段的主机对本机的25端口的访问。rootRHEL6 # 【例13-5】向filter表的INPUT链的最后添加一条规则,对来自这台主机的数据包丢弃。rootRHEL6 # iptables -A INPUT -s 192.168.1.1 -j DROP13.2.6 iptables使用举例 【例13-7】向filter表的INPUT链中添加一条规则,拒绝外界主机访问本机tcp协议的100至1024端口。rootserver # iptables -A INPUT -p tcp -dport 100:1024 -j DROP【例13-8】向filter表的INPUT链中添加一
19、条规则,拒绝来自其他主机的ping请求。rootRHEL6 # iptables -A INPUT -p icmp -icmp-type 8 -j DROP13.2.6 iptables使用举例 【例13-9】假设某单位租用DDN专线上网。网络拓扑如图13-3所示。iptables防火墙的eth0接口连接外网,IP地址为;eth1接口连接内网,IP地址为。假设在内网中存在WEB、DNS和E-mail等3台服务器,这3台服务器都有公有IP地址。设置防火墙规则加强对内网服务器的保护,并允许外网的用户可以访问此3台服务器。13.2.6 iptables使用举例 /1. 清空所有的链规则rootRHE
20、L6 # iptables -F/2. 禁止iptables防火墙转发任何数据包rootRHEL6 # iptables -P FORWARD DROP/3. 建立来自Internet网络的数据包的过滤规则iptables -A FORWARD -d 222.206.100.2 -p tcp -dport 80 -i eth0 -j ACCEPTiptables -A FORWARD -d 222.206.100.3 -p tcp -dport 53 -i eth0 -j ACCEPTiptables -A FORWARD -d 222.206.100.4 -p tcp -dport 25 -
21、i eth0 -j ACCEPTiptables -A FORWARD -d 222.206.100.4 -p tcp -dport 110 -i eth0 j ACCEPT/4. 接受来自内网的数据包通过/5. 对于所有的ICMP数据包进行限制,允许每秒通过一个数据包,该限制的触发条件是10个包iptables -A FORWARD -p icmp -m limit -limit 1/s -limit-burst 10 -j ACCEPT13.3.1 NAT的基本知识 网络地址转换器NAT(Network Address Translator)位于使用专用地址的Intranet和使用公用地址
22、的Internet之间,主要具有以下几种功能。 (1)从Intranet传出的数据包由NAT将它们的专用地址转换为公用地址。 (2)从Internet传入的数据包由NAT将它们的公用地址转换为专用地址。 (3)支持多重服务器和负载均衡。 (4)实现透明代理。 这样在内网中计算机使用未注册的专用IP地址,而在与外部网络通信时使用注册的公用IP地址,大大降低了连接成本。同时NAT也起到将内部网络隐藏起来,保护内部网络的作用,因为对外部用户来说只有使用公用IP地址的NAT是可见的,类似于防火墙的安全措施。13.3 NAT13.3.1 NAT的基本知识1NAT的工作过程 (1)客户机将数据包发给运行N
23、AT的计算机。 (2)NAT将数据包中的端口号和专用的IP地址换成它自己的端口号和公用的IP地址,然后将数据包发给外部网络的目的主机,同时记录一个跟踪信息在映像表中,以便向客户机发送回答信息。 (3)外部网络发送回答信息给NAT。 (4)NAT将所收到的数据包的端口号和公用IP地址转换为客户机的端口号和内部网络使用的专用IP地址并转发给客户机。 以上步骤对于网络内部的主机和网络外部的主机都是透明的,对他们来讲就如同直接通信一样。如图 13.3.1 NAT的基本知识13.3.1 NAT的基本知识13.3.1 NAT的基本知识2NAT的分类 (1)源NAT(Source NAT,SNAT)。SNA
24、T指修改第一个包的源IP地址。SNAT会在包送出之前的最后一刻做好Post-Routing的动作。Linux中的IP伪装(MASQUERADE)就是SNAT的一种特殊形式。 (2)目的NAT(Destination NAT,DNAT)。DNAT是指修改第一个包的目的IP地址。DNAT总是在包进入后立刻进行Pre-Routing动作。端口转发、负载均衡和透明代理均属于DNAT。13.3.1 NAT的基本知识13.3.2 实现NAT(网络地址转换)1iptables中的中的NAT工作过程工作过程 用户使用iptables命令设置NAT规则,这些规则都存储在nat表中。设置的这些规则都具有目标动作,
25、它们告诉内核对特定的数据包做什么操作。根据规则所处理的信息包类型,可以将规则分组存放在链中。 要做源IP地址转换的数据包的规则被添加到POSTROUTING链中。 要做目的IP地址转换的数据包的规则被添加到PREROUTING链中。 直接从本地出去的数据包的规则被添加到OUTPUT链中。13.3.2 实现NAT(网络地址转换)1iptables中的中的NAT工作过程工作过程 NAT工作要经过以下的步骤,如图13-5所示。13.3.2 实现NAT(网络地址转换)1iptables中的中的NAT工作过程工作过程 NAT工作要经过以下的步骤。 DNAT。若包是被送往PREROUTING链的,并且匹配
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第13章 配置防火墙与代理服务器ppt课件 13 配置 防火墙 代理服务器 ppt 课件
限制150内