Linux环境中代理服务器的配置与应用

2015-11-14 11:38周莉谭方勇
电脑知识与技术 2015年22期
关键词:代理服务器

周莉+谭方勇

摘要:该文Linux中代理服务器squid为研究对象,分析代理服务器工作原理,阐述squid代理服务器的具体工作过程,给出了基于Linux iptables防火墙和squid代理服务器的透明代理的搭建方法,说明了squid的日志管理的具体步骤。

关键词:代理服务器;透明代理;squid iptables SARG

中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2015)22-0013-03

1 概述

代理服务器(Proxy)是一种主流的网络服务器,其工作主要是代理内部网络用户去取得外部数据。当客户端有因特网数据请求时,代理服务器会帮助用户去向目的地取得用户所需要的数据,客户端向外部要求的数据事实上都是代理服务器帮用户取得的,除此之外代理服务器还有防火墙功能。一般来说代理服务器搭建在整个内部网络的对外的防火墙上

当内网客户端指定了代理为服务器后,客户端想要取得外部数据主要包括以下步骤:1)客户端向代理服务器发送一个数据需求数据包;2)代理服务器收到请求后,先比对这个数据包的来源与预计要前往的目标网站是否可接受,如果目标合法,代理服务器为该请求执行代理服务;3)代理服务器首先检查自己缓存,如果有,直接将数据取出,如果代理服务器没有客户端需要的数据时,代理服务器访问外网去的相关数据;4)最后,由代理服务器将从缓存或外网中取得的数据回送给客户端。

由于所有的内网请求都会经过代理服务器,因此代理服务器经常会用于大型的企业内部,可以对工作时间内员工开展的网络活动进行限制,还可以监测用户的资料要求流向和流量。搭建代理服务器主要有以下优点:1)节省单点对外的网络带宽,降低网络负载;2)以较短的路径取得网络数据,有网络加速的感觉;3)通过上层代理服务器的辅助,达到自动数据分流的效果;4)提供防火墙内部的计算机连上因特网。

2 squid代理服务器

http_access是按规则在配置文件中的先后顺序处理的,并且找到第一个匹配项后,就按照到的规则处理,后继规则就忽略不作对比。如上例中的三条http_access规则,当前locallan的位置是放在最后一位,对于内网的代理请求,squid将先对比dropshopping和dropviolence这两条规则,禁止内网访问购物网站和浏览暴力图片,如果将locallan放在dropshopping和dropviolence这两条规则前面,那么对于内网的请求,squid将根据locallan执行放行动作,后两天规则得到不到执行,因此网络管理员在确定http_access顺序时,须十分谨慎。

3)客户端设置

内网用户在浏览器中设置代理服务器地址,指定端口,以Firefox为例,设置的路径为Preferences->Advanced->Network->Connection Settings->Manual Proxy Configuration,此后用户的访问将转发给代理服务器,代理服务器也需在防火墙中开放相应的端口(默认3128)来提供代理服务。

3 透明代理

为了对内网用户对外网的访问进行全面的控制和代理,可以强制用户使用代理服务器,这也就是透明代理。透明代理是在对外的防火墙服务器NAT上安装squid服务器,在squid中开启transparent功能,在防火墙中做配置,将内网中所有目的端口为80的请求重定向到防火墙上squid的监听端口3128,由此用户不需要再浏览器内做任何设置,代理工作由防火墙上的squid服务器自动完成。

以内网地址为192.168.0.0/24,防火墙双网卡,内网地址192.168.0.254/24,外网地址120.5.6.7/24为例,访问对象外网的WEB服务器地址为120.5.6.10/24,防火墙使用Linux自带防火墙iptables,搭建透明代理主要包括以下步骤:

2)防火墙的透明代理配置

防火墙作为内网和外网之间的安全组件,所有经过防火墙的数据都接受检查,只有符合安全策略的数据,才能放行。Linux自带防火墙iptables是基于内核内建的Netfilter机制,提供一系列配置命令,可提供高效的包过滤处理。作为内外网之间防火墙,防火墙的filter表的INPUT、OUTPUT、FORWARD三链的默认规则均为阻断DROP,需要放行的数据,另行规定,本文将放行透明代理的iptables配置写成可执行脚本,以便批处理和重复利用,脚本语言中以#作为注释符号,具体如下:

4 squid和SAG日志管理

squid的日志文件目录为/var/log/squid,日志文件包括access.log和cache.log。access.log最为重要,记录HTTP的代理记录,该文件是基于行的,每行对应一个客户端请求,包含客户端IP(或主机名)、请求URL、响应size等信息;cache.log记录缓存的启动以及各类状态;squid日志数据往往比较庞大,纯文本日志文件往往阅读理解不便,也缺少必要的分析,因此图形化的日志分析工具更利于squid服务器的日志管理,如SARG(Squid Analysis Report Generator,分析报告制造者)。SARG读取squid的日志进行解析,可以根据时间、网站等进行输出。SARG依赖于Web服务器,SAG将统计结果输出到/var/www/sarg,以下是SARG的使用方法:

5 结束语

本文阐述Linux中主流代理服务器squid的配置和使用方法,重点讲解透明代理和squid日志管理,对Linux网络管理员的日常运维工作具有一定的实践参考价值和指导意义。

参考文献:

[1] 鸟哥.鸟哥的Linux私房菜——服务器架设篇[M].北京:机械工业出版社,2012,7(422).

[2] 王小杰.基于Linux系统的DHCP服务器架构[J].电脑编程技巧与维护,2013,10(83-84).

猜你喜欢
代理服务器
拒绝改动锁定电脑的代理服务器设置
一种二阶SQL注入攻击防御方法
地铁信号系统中代理服务器的设计与实现
IP地址隐藏器
PageRank在OA系统中的应用
飞行学院校园网与ADS—B业务专网互联的实现方案
基于防火墙技术的网络安全机制
基于排队论的列调SIP代理服务器性能分析
公司局域网组建与管理技术
CDN架构下流媒体代理缓存策略的研究