建立可全面监控Squid代理服务器
核心提示:文章标题:建立可全面监控Squid代理服务器。Linux是中国站长站的1个技术频道。包括桌面利用,Linux系统治理,内核研究,嵌进式系统和开源等1些基天职类
代理服务器的功能是代理网络用户取得网络信息,它是网络信息的中转站。随着代理服务器的广泛使用,随之而来的是1系列的安全题目。由于没有对代理服务器的访问控制策略作全面细致的配置,导致用户可以随便地通过代理服务器访问很多色情、反动的非法站点,而这些行动常常又很难追踪,给治理工作带来极大的不便。
1.各种代理服务器的比较
Linux下的代理服务器软件很多,但是被广泛利用的只有Squid、socks、Apache等几个实践证实是高性能的代理软件。下面我们分别来比较1下这几个软件,如图1所示。
固然上面所列种类还不太全面,但是所谓窥1斑而知全豹,从中我们也能够看出甚么样的代理服务器是被用户广泛使用的。Squid是Linux下1个缓存Internet数据的代理服务器软件,其接收用户的下载申请,并自动处理所下载的数据。也就是说,当1个用户想要下载1个主页时,可以向Squid发出1个申请,要Squid代替其进行下载,然后Squid连接所申请网站并要求该主页,接着把该主页传给用户同时保存1个备份。当别的用户申请一样的页面时,Squid把保存的备份立即传给用户,使用户觉得速度相当快。目前,Squid可以代理HTTP、FTP、GOPHER、SSL和WAIS协议,暂不能代理POP3、NNTP等协议。Squid可以工作在很多操纵系统中,如AIX、Digital、Unix、FreeBSD、HP-UX、Irix、Linux、NetBSD、Nextstep、SCO、Solaris、OS/2等。Squid支持以下协议:
客户端协议:HTTP、FTP、Gopher、WAIS、SSL
缓存及治理协议:ICP、CacheDigests、SNMP、HTCP
2.Squid工作原理和流程图
1)代理服务器的工作机制
代理服务器的工作机制很象我们生活中常常提及的代理商,假定你自己的机器为A机,你想取得的数据由服务器B提供,代理服务器为C,那末具体的连接进程是这样的。首先,A机需要B机的数据,A直接与C机建立连接,C机接收到A机的数据要求后,与B机建立连接,下载A机所要求的B机上的数据到本地,再将此数据发送至A机,完成代理任务。
2)Squid工作流程
◆客户端计算机向代理服务器端发送1个数据需求封包;
◆代理服务器端接收以后,先比对这个封包的『来源』与预计要前往的『目标』网站是否是为可接受?假设来源与目标都是正当的,那末代理服务器端会预计开始替客户端计算机获得信息。
◆代理服务器首先会到自己的硬盘里面,也就是所谓的cache(缓存)查看1下有无客户端计算机端所需要的数据,假设有的话,那就将数据直接送到客户端计算机端,而不向互联网获得信息。
◆将数据传回给客户端计算机端使用。
◆在经过以上3部查寻知道缓存没有数据,或数据过期以后,代理服务器会向互联网上面的目标网站要求数据;
◆在将数据取回以后,代理服务器会先将取得的数据贮存1份到缓存当中。
◆最后才将数据传回给客户端计算机端使用。
3.安装和配置Squid服务器
通常说来,安装Squid有两种方法:1是从Linux发行版本中获得该软件的RPM包进行;2是安装从Squid的官方站点http://www.squid-cache.org/下载该软件的源码进行编译后安装。首先要确认是否是已安装vsftpd可使用以下命令查看:
[rpm-qsquid]
假设在系统安装时已把squid安装上了,那末我们便可以够直接对vsftpd进行配置使用了。否则,可以通过RatHetEnterpriseLinux图形界面下的“添加/删除利用程序”工具进行安装。具体方法是,选择“主选单”→“系统设置”→“添加/删除利用程序”,在弹出的界面当选中万维网服务器的“squid”选项,单击“更新”即可,见图3。
也能够从Squid站点www.squid-cache.org获得该软件的源代码安装包,包括gz和bz2两种紧缩方式。
#p#分页标题#e#1.使用Linux命令和工具分别使用KDE系统卫士和netstat命令检查Squid代理组服务器答应情况,和端口使用情况,如图4。
假设你的桌面出现图3类似的情况表示Squid代理服务器基本运行正常。
2.使用cachemgr.cgi
1)cachemgr.cgi配置进程
squid本身提供1个cgi程序,文件名为cachemgr.cgi,squid安装完后将它复制到Apache服务器下的cgi-bin这个目录下即可使用。
#cp/usr/lib/squid/cachemgr.cgi/home/httpd/cgi-bin
下面我们通过apache进行监控squid,修改配置文件/etc/http/conf/http.conf,添加以下内容:
AuthTypeBasic
AuthNamw"Squidadmin"
AuthUserFile/usr/local/squid/etc/squid.pwd
requirevalid-user
天生口令文件:#cd/usr/local/squid/etc
#htpasswd-csquid.pwdsquidadmin“创建密码文件”
Newpasswd:
Re-typenewpasswd:
Addingpasswordforusersquidadmin
#chownapache:apchesquid.pwd“将认证口令文件的属主改成apache”
重启squid与http,要视察CacheManager提供的信息时,请在浏览器的地址列中键进http://服务器的名称或IP地址/cgi-bin/cachemgr.cgi。首先看到用户认证界面,经过认证落后进登录界面,输进代理服务器地址和端口号,见图5。
输进治理员名称和口令,按“continue”按纽进进Squid监控界面见图6
(2)重点解读监控数据
cachemgr.cgi提供的数据非常具体,下面重点解读1些内容:
◆MemoryUtilization(内存使用情况)
内存是Linux所治理的最重要的资源之1。内存治理系统是操纵系统中最为重要的部份,由于系统的物理内存总是少于系统所需要的内存数目。虚拟内存就是为了克服这个矛盾而采取的策略。系统的虚拟内存通过在各个进程之间共享内存而使系统看起来有多于实际内存的内存容量。Linux支持虚拟内存,就是使用磁盘作为RAM的扩大,使可用内存相应地有效扩大。核心把当前不用的内存块存到硬盘,腾出内存给其他目的。当原来的内容又要使用时,再读回内存。MemoryUtilization监控界面见图7。
1个内存池是主要的物理内存逻辑辨别,包括1个工作或工作组。你能检查正在使用每个进程的内存,空闲的内存,和泄漏的内存。
◆EventQueue(事件队列)
◆AsyncIOFunctionCounter(同步IO运行)
◆DISKDStats(磁盘使用情况)
◆CurrentSquidConfiguration(配置文件通常是处于隐躲状态)。
◆comm_incoming(低水平网络IO情况)
◆IPCacheStatsandContents(IP缓存使用情况)
◆FQDNCacheStatsandContents(域名缓存使用情况)
◆InternalDNSStatistics(内部域名统计)
◆ExternalACLstats(扩大ACL)
◆HTTPHeaderStatistics(HHTP包头统计)
◆CacheUtilization(缓存使用情况)
◆FullHistogramCounts(柱状图统计)
◆ProcessFiledescriptorAllocation(进程分配)
◆5MinuteAverageofCounters(5分钟统计均匀值)
◆60MinuteAverageofCounters(60分钟统计均匀值)
◆CacheClientList(缓存客户端列表)
◆GeneralRuntimeInformation(squid服务器整体运行情况列表)见图8。
3.安全利用cachemgr.cgi监控
cachemgr.cgi可以监测的数据包括:网络流量、使用协议、系统负载、数据包发送时间等。透过它,基本上所有进出数据都无所遁形,不管拿来做例行的网络监测工作,还是拿来做报告,都是非常优秀的工具,让您的网络流量透明化,通过对这些数据的分析,网络治理员可以深进了解网络当前的运行状态。不过如何保护这些信息只能给授权的人士取得,将变得额外重要。除前面先容的控制访问外最好使用SSL协议保护敏感的监控网页。
保护HTTP通讯:SSL的1个常见的用处是保护浏览器和网络服务器之间的网络HTTP通讯,但这并排除利用于不加保护的HTTP。其方法主要是,对普通HTTP加以SSL保护(称为HTTPS),但有1个重要的辨别:它使用URL类型https而不是http,而且使用不同的服务器端口(默许的是443)。限于篇幅SSL配置进程读者可以参考1些修改书籍。配置SSL完成后。使用浏览器访问首页输进:https://IP地址或域名/cgi-bin/cachemgr.cgi在Linux下Firefox浏览器屏幕提示https安全。留意浏览器位置栏和右下角的安全标志,见图9。
留意客户端假设使用IE的话,此时只有右下角的安全标志。通过SSL(Securesocketlayer)进行HTTP传输的协议就是HTTPS,它不但通过公用密钥的算法进行加密保证传输的安全性,而且还可以通过取得认证证书CA,保证客户连接的服务器没有被假冒。
#p#分页标题#e#Linux网络治理员应当尽可能记录所有日志,这些日志会记录所有异常访问的线索。网络日志不是用来应付检查,而且它能够帮助你更好地从事网络治理工作。它记录了系统每天产生的各种各样的事情,包括哪些用户曾或正在使用系统,可以通过日志来检查毛病产生的缘由,更重要的是在系统遭到黑客攻击后,日志可以记录下攻击者留下的痕迹,通过查看这些痕迹,系统治理员可以发现黑客攻击的某些手段和特点,从而能够进行处理工作,为抵抗下1次攻击做好豫备。
1.Squid日志格式
squid具有完善的日志系统,但是对用户来讲,以下的几个日志文件具有重要的意义:
access.log
该文件主要包括了客户访问的相干信息,如客户机的ip地址,访问的站点,访问的流量大小等等。1般的squid日志分析程序主要是基于该文件的。
cache.log
该文件包括着squid服务进程的相干信息,如启动的状态,毛病信息等等。
store.log
该文件包括缓存中存储对象的相干信息,如对象存储的时间,对象的大小,对象超期的时间等等。
2.分析access.log日志文件
access.log日志文件的格式说明
由于access.log文件是最重要的1个日志文件,很多squid的日志分析程序都是围绕该文件编写的(如计费,流量分析,热门站点等),所以在这里我们就侧重讲述1下该日志文件的格式。access.log可以有两种基本的格式,1种native(原始日志文件)日志文件格式,另外1种是common(普通日志文件)日志文件格式。common日志文件格式包括的信息要比native日志文件格式来得少,并且native日志文件包括着很多治理员感爱好的信息。默许时,squid采取native日志文件格式。假设要切换到common日志文件格式,可以更改emulate_httpd_log选项为on。
native日志文件格式以下所示:
timeelapsedremotehostcode/statusbytesmethodURLrfc931peerstatus/peerhosttype
3.使用Linux命令
假设我们仅仅需要查看某1个字段,可以用awk命令,它把1个记录行分割成多个字段,我们使用参数传回需要的字段。命令以下:#tail-f/var/log/squid/access.log|awk'{print$3""$8""$7}'
这里选择的是客户访问时间和用户要求所花费的时间,显示见图11:
这类方式的优点是实时性强,显示的是当前正在访问的记录的情况。
4.使用专业软件分析
事实上,squid已有众多的日志分析软件了,而且大多是免费的,您可以依照自己的喜好来加以安装与分析你的squid代理服务器。
pwebstatus(http://martin.gleeson.com/pwebstats
webalizer(http://www.mrunix.net/webalizer/
squid-graph(http://squid-graph.securlogic.com/
squidsites(http://www.stefanopassiglia.com/downloads.htm
sarg(http://sarg.sourceforge.net/
Webalizer工作方式不同于Linux命令,这个软件主要侧重于信息的汇总,如带宽、输进输出量,用于比较在不同的时间段网络的使用情况。可以从站点http://www.mrunix.net/webalizer/download.html下载,当前稳定版本是2.01⑴0,提供RPM包和tar包格式的下载。Webalizer的配置文件是webalizer.conf,在/etc/目录下,安装后产生可履行命令webalizer,当命令履行时,寻觅webalizer.conf配置文件,产生相应的输出。webalizer.conf的配置比较简单,主要是指定squid日志文件的目录位置及产生报告的输出目录,主要参数以下:“LogFile/var/log/squid/access.log”表示squid日志文件目录;“LogTypesquid”表示Webalizer报告文件的输出类型;“OutputDir/var/www/html/usage_squid/”表示报告文件的输出目录。
下面建立目录并且复制文件:
#mkdir/var/www/html/usage_squid/
#cpmsfree.pngwebalizer.png/var/www/html/usage_squid/
配置文件修改终了以后,需要定时webalizer,每天天生当日的统计分析。以root身份运行crontab-e进进定时运行任务编辑状态,加进以下任务:
$50***/usr/bin/webalizer-f/etc/webalizer.squid.conf
这样定义在清晨00:05对squid的日志进行统计分析。可使用浏览器查看。方法:http://IP地址或域名/usage_quid。
TAG:数据,系统,日志,文件,内存
评论加载中...
|