资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,项目11配置防火墙与代理服务器,*,PPT,文档演模板,Office,PPT,项目11配置防火墙与代理服务器,2026/11/10,项目11配置防火墙与代理服务器,项目11 配置防火墙与代理服务器,主讲教师 XXXX,项目11配置防火墙与代理服务器,课题引入:防火墙与代理服务器,防火墙是一种非常重要的网络安全工具,利用防火墙可以保护企业内部网络免受外网的威胁,作为网络管理员,掌握防火墙的安装与配置非常重要。本章重点介绍Iptables和SQUID两类防火墙的配置。,项目11配置防火墙与代理服务器,防火墙与代理服务器,防火墙的分类,防火墙的工作原理,Iptables,NAT,SQUID代理服务器,项目11配置防火墙与代理服务器,掌握防火墙的分类及工作原理,掌握Iptables防火墙和SQUID代理服务器的配置,掌握NAT及透明代理的实现方法,Iptables防火墙的配置,NAT的实现方法,透明代理的实现方法,学习目标,本章难点,项目11配置防火墙与代理服务器,防火墙的分类,包过滤型防火墙,代理服务器型防火墙,项目11配置防火墙与代理服务器,防火墙的分类,防火墙技术用于实现内外网之间访问的安全性。,防火墙的两种主要类型:,包过滤型防火墙,代理服务器(应用防火墙),项目11配置防火墙与代理服务器,包过滤型防火墙,包过滤型防火墙,内置于Linux系统的内核,在网络层或传输层对经过的数据包进行筛选。筛选的依据是系统内设置的过滤规则(ACL)。通过检查数据流中每个数据包的源地址、目的地址、所有的协议、端口号等因素,来决定是否允许该数据包通过。如图所示是包过滤型防火墙常用的一种模式,主要用来阻隔来自外网对内部网络的威胁。,包过滤型防火墙有两种基本的默认访问控制策略:,一种是先禁止所有的数据包通过,然后再根据需要允许满足匹配规则的数据包通过。,一种是先允许所有的数据包通过,再根据需要拒绝满足匹配规则的数据包通过。,项目11配置防火墙与代理服务器,代理服务器型防火墙,代理服务器型防火墙,是应用网关型防火墙,通常工作在应用层。代理服务器实际上是运行在防火墙上的一种服务器程序。服务器监听客户机的请求,如申请浏览网页等。当内网的客户机请求与外网的真实服务器连接时,客户端首先连接代理服务器,然后再由代理服务器与外网真实的服务器建立连接,取得客户想要的信息,代理服务器再把信息返回给客户。,项目11配置防火墙与代理服务器,防火墙的工作原理,包过滤型防火墙工作原理,代理服务器型防火墙工作原理,项目11配置防火墙与代理服务器,包过滤型防火墙工作原理,包过滤型防火墙的工作过程:,(1)数据包从外网传送给防火墙后,防火墙在IP层向TCP层传输数据前,将数据包转发给包检查模块进行处理。,(2)首先与第一条过滤规则进行比较。,(3)如果与第一条规则匹配,则进行审核,判断是否允许传输该数据包,如果允许则传输,否则查看该规则是否阻止该数据包通过,如果阻止则将该数据包丢弃。,(4)如果与第一条过滤规则不同,则查看是否还有下一条规则。如果有,则与下一条规则匹配,如果匹配成功,则进行与(3)相同的审核过程。,(5)依此类推,一条一条规则匹配,直到最后一条过滤规则。如果该数据包与所有的过滤规则均不匹配,则采用防火墙的默认访问控制策略策略(丢掉该数据包,或允许该数据包通过)。,项目11配置防火墙与代理服务器,包过滤型防火墙工作原理,包过滤型防火墙原理图,包过滤规则检查内容:,源、目标IP地址,TCP和UDP的源、目的端口号,协议类型,ICMP消息类型,TCP报头中的ACK位、序列号、确认号,IP校验和,项目11配置防火墙与代理服务器,代理服务器型防火墙工作原理,代理服务器型防火墙是应用层防火墙,它能提供部分与传输有关的状态,能提供与应用相关的状态和部分传输的信息,工作原理如右图所示。,代理服务器型防火墙原理图,项目11配置防火墙与代理服务器,代理服务器型防火墙工作原理,代理服务器型防火墙的工作过程:,(1)主机A向代理服务器发送一个访问因特网的请求。,(2)代理服务器将检测ACL(访问列表)中的设置。,(3)如果主机A所需要的信息已经存在,代理服务器将直接将其发送给主机A。否则,服务器将代替主机A访问因特网。,(4)因特网将主机A所需要的信息发送给代理服务器,这些信息将被保存在缓存中。,(5)代理服务器将这些信息发送给主机A。,(6)主机B向代理服务器发送一个访问同样信息的请求。,(7)代理服务器将检测ACL(访问列表)中的设置。,(8)服务器直接将已保存的信息发送给主机B。,项目11配置防火墙与代理服务器,防火墙的工作原理,Netfilter/iptables架构,iptables传输数据包的过程,iptables命令,iptables命令使用举例,项目11配置防火墙与代理服务器,Netfilter/iptables架构,从1.1内核开始,Linux下的包过滤系统经历了3个阶段:,在2.0内核中,采用ipfwadm来操作内核包过滤规则。,在2.2内核中,采用ipchains来控制内核包过滤规则。,在2.4内核中,采用了一个全新的内核包过滤管理工具iptables。,Netfilter/iptables最早是与2.4内核版本的Linux系统集成的IP信息包过滤系统。它由Netfilter和iptables两个组件组成。,项目11配置防火墙与代理服务器,Netfilter/iptables架构,Netfilter组件称为内核空间,它集成在Linux的内核中。主要由信息包过滤表(tables)组成,而表由若干个链组成,每条链中可以由一条或者多条规则组成。,总的来说,Netfilter是表的容器,表是链的容器,而链又是规则的容器,。,项目11配置防火墙与代理服务器,Netfilter/iptables架构,(1)规则。,规则存储在内核的包过滤表中,分别指定了源、目的IP地址、传输协议、服务类型等。当数据包与规则匹配时,就根据规则所定义的方法来处理数据包,如放行、丢弃等动作。,(2)链。,链是数据包传播的路径,每一条链其实就是众多规则中的一个检查清单,每一条链中可以有一条或数条规则。当数据包到达一条链时,会从链中第一条规则开始检查,看该数据包是否满足规则所定义的条件,如果满足,系统就会根据该条规则所定义的方法处理该数据包;否则将继续检查下一条规则。如果该数据包不符合链中任一条规则,会根据该链预先定义的默认策略处理数据包。,项目11配置防火墙与代理服务器,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五个链。,项目11配置防火墙与代理服务器,iptables传输数据包过程,iptables传输数据包的过程如下图所示。,项目11配置防火墙与代理服务器,iptables传输数据包过程,打开Linux的路由转发功能:,(1),修改内核变量ip_forward,(2),修改/etc/sysctl.conf文件使“net.ipv4.ip_forward”的值设置为1。,项目11配置防火墙与代理服务器,iptables命令,iptables命令格式为:,iptables -t 表名 -命令 链名 匹配条件 目标动作,Iptables表的常用命令:,项目11配置防火墙与代理服务器,iptables命令,Iptables命令中的常用匹配规则:,项目11配置防火墙与代理服务器,iptables命令,Iptables命令中的常用目标动作选项:,项目11配置防火墙与代理服务器,iptables命令,制定永久性规则集:,保存规则集:,恢复规则集:,项目11配置防火墙与代理服务器,iptables命令举例,【例1】清除所有链中的规则,。,项目11配置防火墙与代理服务器,iptables命令举例,【例2】设置filter表中3个链的默认策略为拒绝。,【例3】查看所有链的规则列表,。,项目11配置防火墙与代理服务器,iptables命令举例,【例4】添加一个用户自定义的链custom,。,项目11配置防火墙与代理服务器,iptables命令举例,【例5】向filter表的INPUT链的最后添加一条规则,对来自192.168.1.1这台主机的数据包丢弃,。,项目11配置防火墙与代理服务器,iptables命令举例,【例6】向filter表中的INPUT链的第3条规则前面插入一条规则,允许来自于非192.168.3.0/24网段的主机对本机的25端口的访问。,项目11配置防火墙与代理服务器,iptables命令举例,【例7】向filter表的INPUT链中添加一条规则,拒绝外界主机访问本机tcp协议的100至1024端口。,项目11配置防火墙与代理服务器,iptables命令举例,【例8】向filter表的INPUT链中添加一条规则,拒绝来自其他主机的ping请求。,项目11配置防火墙与代理服务器,iptables命令举例,【例9】假设某单位租用DDN专线上网。网络拓扑如下图所示。iptables防火墙的eth0接口连接外网,IP地址为222.206.160.100;eth1接口连接内网,IP地址为192.168.1.1。假设在内网中存在WEB、DNS和E-mail3台服务器,这3台服务器都有公有IP地址。其IP地址如图所示。设置防火墙规则加强对内网服务器的保护,并允许外网的用户可以访问此3台服务器。,项目11配置防火墙与代理服务器,例9的解决方案,/1.清空所有的链规则,rootRHEL4#iptables -F,/2.禁止iptables防火墙转发任何数据包,rootRHEL4#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.接受来自内网的数据包通过,rootRHEL4#iptables -A FORWARD s 222.206.100.0/24 j ACCEPT,/5.对于所有的ICMP数据包进行限制,允许每秒通过一个数据包,该限制的触发条件是10个包,rootRHEL4#iptables-A FORWARD-p icmp-m limit-limit 1/s-limit-burst 10-j ACCEPT,项目11配置防火墙与代理服务器,NAT,NAT的基本知识,使用iptables实现NAT,项目11配置防火墙与代理服务器,NAT的基本知识,NAT的主要功能:,(1)从Intranet传出的数据包由NAT将它们的专用地址转换为公用地址。,(2)从Internet传入的数据包由NAT将它们的公用地址转换为专用地址。,(3)支持多重服务器和负载均衡。,(4)实现透明代理,。,项目11配置防火墙与代理服务器,NAT的基本知识,NAT的工作过程:,(1)客户机将数据包发给运行NAT的计算机。,(2)NAT将数据包中的端口号和专用的IP地址换成它自己的端口号和公用的IP地址,然后将数据包发给外部网络的目的主机,同时记录一个跟踪信息在映像表中,以便向客户机发送回答信息。,(3)外部网络发送回答信息给NAT。,(4)NAT将所收到的数据包的端口号和公用IP地址转换为客户机的端口号和内部网络使用的专用IP地址并转发给客户机。,项目11配置防火墙与代理服务器,NAT的基本知识,NAT的工作过程示意图:,项目11配置防火墙与代理服务器,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。,项目11配置防火墙与代理服务器,使用Iptables实现NAT,用户根据规则所处理的信息包类型,使用iptables命令设置NAT规则:,要做源IP地址转换的数据包的规则被添加到POSTROUTING链中。,要做目的IP地址转换的数据包的规则被添加到PREROUTING链中。,直接从本地出去的数据包的规则被添加到OUTPUT链中。,项目11配置防火墙与代理服务器,使用Iptables实现NAT,数据包穿越NAT的工作流程示意图:,项目11配置防火墙与代理服务器,使用Iptables实现NAT,【例10】假设某企业网中NAT服务器安装了双网卡,eth0连接外网,eth1连接内网,IP地址为192.168.0.1。企业内部网络的客户机都只有私有IP地址。利用NAT服务使企业内部网络的计算机能够连接Internet网络,。,项目11配置防火墙与代理服务器,【例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的内核转发功能。,rootRHEL4#echo“1”/proc/sys/net/ipv4/ip_forward,实现SNAT。,rootRHEL4#iptables t nat A POSTROUTING p tcp o eth0 j SNAT-to 222.206.160.100-222.206.160.150:1025:30000,项目11配置防火墙与代理服务器,【例10】的解决方案2,假设连接外网的接口是利用ADSL拨号连接的ppp0。此时应作IP伪装,iptables命令的-j参数的语法格式为:,-j MASQUERADE,配置步骤:,打开Linux的内核转发功能。,rootRHEL4#echo“1”/proc/sys/net/ipv4/ip_forward,实现IP伪装。,rootRHEL4#iptables t nat A POSTROUTING o ppp0 -j MASQUERADE,项目11配置防火墙与代理服务器,使用Iptables实现NAT,【例11】假设某企业网中NAT服务器安装了双网卡,eth0连接外网,IP地址为222.206.160.100。eth1连接内网,IP地址为192.168.0.1。企业内部网络WEB服务器的IP地址为192.168.1.2。要求当Internet网络中的用户在浏览器中输入222.206.160.100时可以访问到内网的WEB服务器。,项目11配置防火墙与代理服务器,【例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,项目11配置防火墙与代理服务器,SQUID代理服务器,SQUID服务的安装、启动与停止,SQUID服务器的配置,SQUID服务器配置实例,透明代理,项目11配置防火墙与代理服务器,SQUID代理服务器,代理服务,是指由一台拥有公有IP地址的机器代替若干没有公有IP地址的机器和Internet上的其它主机打交道,提供代理服务的这台机器称为代理服务器。拥有私有IP地址的机器想连接到Internet上时,先把这个请求发给拥有公有IP地址的代理服务器,由代理服务器把这个请求通过它的公有IP地址发到请求的目的地址。然后目标地址的服务器把返回的结果发回给代理服务器,代理服务器再原封不动的把资料发给内部主机。,Squid,是一个高性能的代理缓存服务器,可以加快内网浏览Internet的速度,提高客户机访问命中率。Squid不仅支持HTTP协议,还支持FTP、gopher、SSL和WAIS等协议。Squid由一个主要的服务程序Squid,一个DNS查询程序dnsserver,几个重写请求和执行认证的程序,以及几个管理工具组成。Squid使用访问控制清单(ACL)和访问权限清单(ARL)阻止特定的网络连接来减少潜在的Internet非法连接。,项目11配置防火墙与代理服务器,SQUID服务的安装、启动与停止,SQUID服务的安装:,Squid服务的软件包在RHEL4的第2张安装盘上。软件包的名字为“squid-2.5.STABLE6-3.i386.rpm”。插入安装盘,挂载。然后输入下面的命令完成安装。,项目11配置防火墙与代理服务器,SQUID服务的安装、启动与停止,SQUID服务的启动:,SQUID服务的重新启动:,SQUID服务的停止:,项目11配置防火墙与代理服务器,SQUID服务器的配置,SQUID服务的主配置文件是/etc/squid/squid.conf,用户可以根据自己的实际情况修改相应的选项。下面给出的是一个配置文件的实例,各项的具体含义见课本P265。,项目11配置防火墙与代理服务器,SQUID服务器的配置,访问控制列表ACL:,ACL是要控制客户的主机和域的列表。用户使用http_access等命令定义控制功能,可以基于源IP地址、域名、甚至时间和日期等来使用acl命令定义系统或者系统组。acl命令的格式如下:,acl 列表名称 列表类型 -i 列表值,列表名称用于区分Squid的各个访问控制列表,任何两个访问控制列表不能用相同的列表名。,列表类型用于定义可被Squid识别的类别。例如,可以通过IP地址、主机名、域名、日期和时间等。常见选项如下表所示。,项目11配置防火墙与代理服务器,ACL类型选项,项目11配置防火墙与代理服务器,ACL访问控制列表举例,项目11配置防火墙与代理服务器,SQUID服务器配置实例,【例17】某公司用Squid作代理服务器(内网IP地址为192.168.1.2),该代理服务器配置为奔腾1.6G/512M/80G,公司所用IP地址段为192.168.1.0/24,并且想用8080作为代理端口。,(1)根据题目要求,编辑主配置文件squid.conf。内容如下:,项目11配置防火墙与代理服务器,SQUID服务器配置实例,(2)启动Squid服务:,(3)客户端配置:,项目11配置防火墙与代理服务器,透明代理,透明代理,:,是指客户端根本不需要知道有代理服务器的存在,客户端不需要在浏览器或其他的客户端工作中做任何设置,只需要将默认网关设置为Linux服务器的IP地址即可。利用Squid和NAT功能可以实现透明代理。,项目11配置防火墙与代理服务器,1、Squid服务器的配置,在SQUID服务器的主配置文件squid.conf中,必须设置以下四项:,httpd_accel_host virtual、httpd_accel_port 80:设置虚拟主机模式及加速请求端口。,httpd_accel_with_proxy on:该选项在透明代理模式下必须设置成on。此时,Squid既是WEB请求的加速器,又是缓存代理服务器。,httpd_accel_uses_host_header on:在透明代理模式下,如果想让代理服务器的缓存功能正确工作,必须将该选项设为on。设为on时,Squid会把存储的对象加上主机名而不是IP地址作为索引。,项目11配置防火墙与代理服务器,2、iptables的配置,打开防火墙的路由转发功能,并利用iptables的端口重定向功能,将所有客户端发出的对80端口的请求,都重定向到代理服务器所监听的3128端口即可。其实现语句为:,项目11配置防火墙与代理服务器,演讲完毕,谢谢听讲,!,再见,see you again,3rew,2026/11/10,项目11配置防火墙与代理服务器,
展开阅读全文