Web代理服务器让企业员工可以快速安全地浏览网络。Web代理服务器可以缓存内存,让用户之后对相同网页的请求由本地缓存来处理,这比多次返回网站来得更快速。代理服务器还能扫描入站网络流量,查找有无恶意内容,并且保护最终用户远离病毒;它们还可以控制哪些用户访问什么样的网络内容。为了充分利用所有这些功能,本文逐步介绍安装和配置一台简单Web代理服务器(带病毒过滤功能)的整个过程。
一个完美的安全Web代理服务器包括下列组件:
● Squid——主要的软件和代理服务。
● ClamAV——检查入站内容的反病毒软件。
● C-icap——采用互联网内容适配协议(ICAP)的服务,Squid需要该服务与其他服务进行联系。
● SquidClamav——基于ClamAV的反病毒服务,Squid通过ICAP服务连接到该服务。
安装配置
我们将在基本的CentOS 6平台上运行代理服务器,该平台上没有预先安装任何软件包组。如果是最基本的安装,你可以使用来自官方镜像页面的最小镜像。一旦我们安装了操作系统,就可以安装代理服务器的各组件。
镜像下载:http://www.centos.org/modules/tinycontent/index.php?id=30
Squid
Squid可以从官方的CentOS 6软件库获得。只要执行yum install squid,即可安装它。确保Squid随系统自动开启和关闭,为此借助命令chkconfig squid on,把它添加到默认的系统启动和关闭级别。
默认情况下,Squid的主配置文件/etc/squid/squid.conf允许通过常见端口的来自本地网站的请求。去掉cache_dir ufs /var/spool/squid 100 16 256这一行的注释,那样代理服务器将文件缓存在磁盘上。这个命令的参数指示代理服务器使用默认的ufs存储格式。缓存目录是/var/spool/squid,它应该可以存储最多100MB的内容,16个一级子目录和256个次级子目录。考虑将缓存大小从100MB增加到1000MB,因为100MB太低了,满足不了如今的浏览需求。
在同一个文件中,在默认配置信息后面,添加下列几个命令:
icap_enable on icap_send_client_ip on icap_send_client_username on icap_client_username_encode off icap_client_username_header X-Authenticated-User icap_preview_enable on icap_preview_size 2048 icap_service service_req reqmod_precache bypass=1 icap://127.0.0.1:1344/squidclamav adaptation_access service_req allow all icap_service service_resp respmod_precache bypass=1 icap://127.0.0.1:1344/squidclamav adaptation_access service_resp allow all |
这个基本配置指示Squid使用在本地主机上运行的SquidClamav ICAP服务,本地主机使用TCP端口1344。对非缓存内容而言,需要使用这项服务。你可以从官方的Squid说明文档,找到关于所有配置命令的更多信息。
ClamAV
ClamAV并不存在于默认的CentOS 6软件库中,所以你要么从源代码安装,要么使用第三方软件库。我建议使用EPEL软件库,因为它让用户易于安装和维护。
要将EPEL软件库安装到CentOS 6上,请运行命令rpm -ivh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-5.noarch.rpm。之后,要安装ClamAV,请执行yum install clamav clamav-db clamd。由于这是从EPEL软件库首次安装,你会看到关于其密钥的提醒;确认密钥正确后才能继续下一步。
执行chkconfig clamd on,确保ClamAV后台守护进程clamd自动启动和终止。
你可以设置最基本的ClamAV配置,只需编辑文件/etc/clamd.conf。你得至少移除显示Example的那一行,那样该服务就能启动。你可能还考虑更改一些命令的默认值。比如说,可以定义使用ScanPE、ScanELF和ScanPDF来扫描哪些文件扩展名。为了提升性能,可以将待扫描文件的默认最大值(MaxFileSize)由25MB改成其他值,或者更改每个文件的多少数据有待扫描(MaxScanSize)——100MB是默认值。值越大,所需的资源就越多,代理服务器的速度也就越慢。