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