(26)--第13章 配置防火墙与代理服务器.ppt

上传人:奉*** 文档编号:96452383 上传时间:2023-11-29 格式:PPT 页数:92 大小:6.50MB
返回 下载 相关 举报
(26)--第13章 配置防火墙与代理服务器.ppt_第1页
第1页 / 共92页
(26)--第13章 配置防火墙与代理服务器.ppt_第2页
第2页 / 共92页
点击查看更多>>
资源描述

《(26)--第13章 配置防火墙与代理服务器.ppt》由会员分享,可在线阅读,更多相关《(26)--第13章 配置防火墙与代理服务器.ppt(92页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

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处动态分配)目标。系统在决定了数

26、据包的路由之后才执行该链中的规则。15.3.2实现NAT(网络地址转换)2配置SNATSNAT功能是进行源IP地址转换,也就是重写数据包的源IP地址。若网络内部主机采用共享方式,访问Internet连接时就需要用到SNAT的功能,将本地的IP地址替换为公网的合法IP地址。SNAT只能用在nat表的POSTROUTING链,并且只要连接的第一个符合条件的包被SNAT进行地址转换,那么这个连接的其他所有的包都会自动地完成地址替换工作,而且这个规则还会应用于这个连接的其他数据包。SNAT使用选项-to-source,命令语法如下。iptables-t nat -A POSTROUTING -o 网络

27、接口网络接口-j SNAT-to-source IP地址地址15.3.2实现NAT(网络地址转换)15.3.2实现NAT(网络地址转换)【例15-10】公司内部主机使用10.0.0.0/8网段的IP地址,并且使用Linux主机作为服务器连接互联网,外网地址为固定地址212.212.12.12,现需要修改相关设置保证内网用户能够正常访问Internet,如图。15.3.2实现NAT(网络地址转换)(1)在)在NAT服务器服务器RHEL6上添加双网卡。上添加双网卡。由于安装系统时没有添加第二块网卡,所以此时需要单独在虚拟机中添加。在虚拟机中添加第二块网卡完成后,重启系统,却发现:无论是使用setu

28、p命令检查网络配置,还是直接点击“系统”“首选项”“网络连接”,都无法找到新添加的第二块网卡。在终端窗口中,使用“ifconfig”命令也无法浏览第二块网卡的配置信息。仔细想来,都是由于安装系统时没有直接添加一块网卡。这个问题的解决方法详见课本相关内容!这个问题的解决方法详见课本相关内容!15.3.2实现NAT(网络地址转换)(2)部署网络环境配置)部署网络环境配置本实训由3台Linux虚拟机组成,一台是NAT服务器(RHEL6),双网卡(eth0:10.0.0.1/8,连接VMnet0,eth1:212.212.12.12/24,连接VMnet1);1台是安装Linux操作系统的NAT客户端

29、(client,IP:10.0.0.2/8,连接VMnet1);还有1台是互联网上的Web服务器,也安装了Linux(RHEL5,IP:212.212.12.100/24,连接VMnet2)。15.3.2实现NAT(网络地址转换)(3)测试网络连通情况)测试网络连通情况在RHEL6测试与另两台计算机的连通性,都能连通。rootRHEL6桌面#ping-c310.0.0.2rootRHEL6桌面#ping-c3212.212.12.100在client(内网:10.0.0.2/8)上,只能ping通RHEL6。rootclient#ping-c310.0.0.1/网络畅通rootclient#p

30、ing-c3212.212.12.100/无法通信在RHEL5(外网:212.212.12.100/24),只能ping通RHEL6。rootRHEL5#ping-c3212.212.12.12/网络畅通rootRHEL5#ping-c310.0.0.2/无法通信15.3.2实现NAT(网络地址转换)(4)搭建过程)搭建过程Step1:开启内核路由转发功能。先在内核里打开IP转发功能,如下所示。rootRHEL6etc#vim/etc/sysctl.confnet.ipv4.ip_forward=1/数值改为“1”rootRHEL6etc#sysctl-p/启用转发功能net.ipv4.ip_

31、forward=1net.ipv4.conf.default.rp_filter=1(后面略)15.3.2实现NAT(网络地址转换)(4)搭建过程)搭建过程Step2:添加SNAT规则。设置iptables规则,将数据包的源地址改为公网地址,如下所示。rootRHEL6#iptables -t nat -A POSTROUTING -o eth1-s 10.0.0.0/8 -j SNAT-to-source 212.212.12.12rootRHEL6#service iptables save#保存配置信息Savingfirewallrulesto/etc/sysconfig/iptable

32、s:确定15.3.2实现NAT(网络地址转换)(4)搭建过程)搭建过程Step3:指定客户端10.0.0.2的默认网关(其他客户端类似)。在网卡中直接设定也可以。rootclient1#route add default gw 10.0.0.115.3.2实现NAT(网络地址转换)(5)测试过程)测试过程在client(内网:10.0.0.2/8)上,能ping通RHEL6和外网计算机RHEL5。rootclient#ping-c 3 10.0.0.1/网络畅通网络畅通rootclient#ping-c 3 212.212.12.100/网络畅通网络畅通15.3.2实现NAT(网络地址转换)1

33、5.3.2实现NAT(网络地址转换)DNAT主要能够完成以下几个功能。(1)发布内网服务器。iptables能够接收外部的请求数据包,并转发至内部的应用服务器,整个过程是透明的,访问者感觉像直接在与内网服务器进行通信一样,如图15.3.2实现NAT(网络地址转换)【例15-11】接上面的例15-10,NAT服务器安装了双网卡,eth1连接外网,IP地址为212.212.12.12/24;eth0连接内网,IP地址为10.0.0.1/8。企业内部网络Web服务器client的IP地址为10.0.0.2/8。要求当Internet网络中的用户在浏览器中输入http:/212.212.12.12时可

34、以访问到内网的Web服务器,如图所示。15.3.2实现NAT(网络地址转换)根据题目要求可知,应该做DNAT。所以,应该向PREROUTING链添加规则。此时iptables命令的-j参数的语法格式为:-jDNAT-to-destination/-toIP1-IP2:port1-port2具体步骤如下:(1)部署网络环境请参考例15-10。不再详述。(2)在Web服务器上配置启用安装并启用Apache服务。在Web本机上测试安装是否成功。(3)在外网计算机上测试是否能成功访问内网的Web服务器。在外网用户计算机(RHEL5)上,测试内网的Web服务。由于没有启用DNAT,不能成功访问Web服务

35、器。测试结果如图15-7所示。15.3.2实现NAT(网络地址转换)15.3.2实现NAT(网络地址转换)(4)在)在NAT服务器服务器RHEL6上配置上配置先清除NAT的PREROUTING。rootRHEL6#iptables-t nat-F PREROUTING 在NAT服务器RHEL6上配置DNAT。rootRHEL6#iptables-t nat-A PREROUTING-p tcp-d 212.212.12.12-dport 80-j DNAT-to 10.0.0.2:80/或者:或者:rootRHEL6#iptables-t nat-A PREROUTING-p tcp-i et

36、h1-dport 80-j DNAT-to 10.0.0.2:80/或者:或者:rootRHEL6#iptables-t nat-A PREROUTING-d 212.212.12.12-p tcp -dport 80-j DNAT-to-destination 10.0.0.215.3.2实现NAT(网络地址转换)(4)在外网计算机)在外网计算机RHEL5(IP:212.212.12.100)上测试。结果如图)上测试。结果如图15-8所所示。示。15.4.1代理服务器工作原理代理服务器(ProxyServer)等同于内网与Internet的桥梁。普通的Internet访问是一个典型的客户机与

37、服务器结构:用户利用计算机上的客户端程序,如浏览器发出请求,远端www服务器程序响应请求并提供相应的数据。而Proxy处于客户机与服务器之间,对于服务器来说,Proxy是客户机,Proxy提出请求,服务器响应;对于客户机来说,Proxy是服务器,它接受客户机的请求,并将服务器上传来的数据转给客户机。它的作用如同现实生活中的代理服务商。15.4 squid代理服务器15.4.1 15.4.1 代理服务器的工作原理代理服务器的工作原理15.4.1代理服务器工作原理15.4.1代理服务器(1)提高访问速度。(2)用户访问限制。(3)安全性得到提高。15.4.2安装、启动与停止Squid服务对于Web

38、用户来说,Squid是一个高性能的代理缓存服务器,可以加快内部网浏览Internet的速度,提高客户机的访问命中率。Squid将数据元缓存在内存中,同时也缓存DNS查寻的结果,除此之外,它还支持非模块化的DNS查询,对失败的请求进行消极缓存。Squid由一个主要的服务程序Squid,一个DNS查询程序dnsserver,几个重写请求和执行认证的程序,以及几个管理工具组成。Squid的另一个优越性在于它使用访问控制清单(ACL)和访问权限清单(ARL)。15.4.2安装、启动与停止Squid服务Squid的主要功能如下所示。代理和缓存HTTP、FTP和其他的URL请求。代理SSL请求。支持多级缓

39、存。支持透明代理。支持ICP、HTCP、CARP等缓存摘要。支持多种方式的访问控制和全部请求的日志记录。提供HTTP服务器加速。能够缓存DNS查询。Squid的官方网站是http:/www.squid.cache.org。15.4.2安装、启动与停止Squid服务2安装、启动、停止安装、启动、停止squid服务服务squid服务服务rootRHEL6#rpm-qa|grep squidrootRHEL6#mount/dev/cdrom/iso rootRHEL6#yum clean all/安装前先清除安装前先清除缓存缓存rootRHEL6#yum install squid-y rootRH

40、EL6#service squid start/启动squid服务rootRHEL6#service squid stop/停止squid服务rootRHEL6#service squid restart/重新启动squid服务rootRHEL6#service squid resload/重新加载squid服务rootRHEL6#/etc/rc.d/init.d/squid reload/重新加载squid服务rootRHEL6#chkconfid -level 3 squid on/运行级别3自动加载rootRHEL6#chkconfid -level 3 squid off/运行级别3不

41、自动加载15.4.2安装、启动与停止Squid服务3自动加载Squid服务(1)使用chkconfig。rootserver#chkconfid -level 3 squid on/运行级别3自动加载rootserver#chkconfid -level 3 squid off/运行级别3不自动加载(2)使用ntsysv。使用ntsysv命令,利用文本图形界面对Squid自动加载进行配置,在“squid”选项前按空格加上“*”。15.4.3配置squid服务器1几个常用的选项(1)http_port3128。http_port 192.168.2.254:8080(2)cache_mem512

42、MB。内存缓冲设置是指需要使用多少内存来作为高速缓存。(3)cache_dirufs/var/spool/squid409616256。用于指定硬盘缓冲区的大小。(4)cache_effective_usersquid。设置使用缓存的有效用户。cache_effective_user nobody(5)cache_effective_groupsquid。设置使用缓存的有效用户组,默认为squid组,也可更改。15.4.3配置squid服务器(6)dns_nameservers220.206.160.100。设置有效的DNS服务器的地址。(7)cache_access_log/var/log/

43、squid/access.log。设置访问记录的日志文件。(8)cache_log/var/log/squid/cache.log。设置缓存日志文件。该文件记录缓存的相关信息。(9)cache_store_log/var/log/squid/store.log。设置网页缓存日志文件。网页缓存日志记录了缓存中存储对象的相关信息,例如存储对象的大小、存储时间、过期时间等。15.4.3配置squid服务器(10)visible_hostname192.168.0.3。visible_hostname字段用来帮助Squid得知当前的主机名,如果不设置此项,在启动Squid的时候就会碰到“FATAL:C

44、ouldnotdeterminefullyqualifiedhostnamePleasesetvisiblehostname”这样的提示。当访问发生错误时,该选项的值会出现在客户端错误提示网页中。(11)cache_。设置管理员的邮件地址。当客户端出现错误时,该邮件地址会出现在网页提示中,这样用户就可以写信给管理员来告知发生的事情。15.4.3配置squid服务器2设置访问控制列表Squid代理服务器是Web客户机与Web服务器之间的中介,它实现访问控制,决定哪一台客户机可以访问Web服务器以及如何访问。Squid服务器通过检查具有控制信息的主机和域的访问控制列表(ACL)来决定是否允许某客户

45、机进行访问。ACL是要控制客户的主机和域的列表。使用acl命令可以定义ACL,该命令在控制项中创建标签。用户可以使用http_access等命令定义这些控制功能,可以基于多种acl选项,如源IP地址、域名、甚至时间和日期等来使用acl命令定义系统或者系统组。(1)acl。acl命令的格式如下。15.4.3配置squid服务器acl 列表名称列表名称 列表类型列表类型 -i 列表值列表值其中,列表名称用于区分Squid的各个访问控制列表,任何两个访问控制列表不能用相同的列表名。一般来说,为了便于区分列表的含义应尽量使用意义明确的列表名称。列表类型用于定义可被Squid识别的类别。例如,可以通过I

46、P地址、主机名、域名、日期和时间等。常见的列表类型如表ACL列表类型说 明srcip-address/netmask客户端源IP地址和子网掩码srcaddr1-addr4/netmask客户端源IP地址范围dstip-address/netmask客户端目标IP地址和子网掩码myipip-address/netmask本地套接字IP地址srcdomaindomain源域名(客户机所属的域)dstdomaindomain目的域名(Internet中的服务器所属的域)srcdom_regexexpression对来源的URL做正则匹配表达式dstdom_regexexpression对目的URL做

47、正则匹配表达式time指定时间。用法:acl aclname time day-abbrevs h1:m1-h2:m2其中day-abbrevs可以为:S(Sunday)、M(Monday)、T(Tuesday)、W(Wednesday)、H(Thursday)、F(Friday)、A(Saturday)注意:h1:m1 一定要比 h2:m2 小port指定连接端口,如:acl SSL_ports port 443proto指定所使用的通信协议,如:acl allowprotolist proto HTTPurl_regex设置URL规则匹配表达式urlpath_regex:URL-path设

48、置略去协议和主机名的URL规则匹配表达式15.4.3配置squid服务器15.4.3配置squid服务器15.4.3配置squid服务器【例15-21】禁止用户下载*.mp3、*.exe、*.zip和*.rar类型的文件。acl badfile urlpath_regex -i .mp3$.exe$.zip$.rar$http_access deny badfile【例15-22】屏蔽www.whitehouse.gov站点。acl badsite dstdomain -i www.whitehouse.govhttp_access deny badsite-i表示忽略大小写字母,默认情况下S

49、quid是区分大小写的。【例15-23】屏蔽所有包含“sex”的URL路径。acl sex url_regex -i sexhttp_access deny sex15.4.3配置squid服务器15.4.3配置squid服务器15.4.4配置透明代理利用Squid和NAT功能可以实现透明代理。透明代理的意思是客户端根本不需要知道有代理服务器的存在,客户端不需要在浏览器或其他的客户端工作中做任何设置,只需要将默认网关设置为Linux服务器的IP地址即可(eth0是内网网卡)。15.4.4配置透明代理修改squid.conf配置文件,并重新加载该配置http_port192.168.1.1:31

50、28transparent添加iptables规则iptables-tnat-IPREROUTING-ieth1-s192.168.1.0/24-ptcp-dport80-jREDIRECT-to-ports3128客户机浏览器测试,验证透明代理的实施效果在客户机浏览器中不需要在浏览器中指定代理服务器的地址、端口需要设置网关注:透明代理无法实现访问控制注:透明代理无法实现访问控制,并且保证没有重复的语句。比如:,并且保证没有重复的语句。比如:http_port3128http_port192.168.1.1:3128transparent以上两条语句,在透明代理时,请一定将第一条注释或删除!以

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁