本文以RedHat 8.0和Squid为例,教你如何打造一个安全、高效的代理服务器。
配置Squid
Linux下的代理服务器软件比较多,Squid是其中一个比较优秀的。它缓存Internet数据,接收用户的下载申请,并自动处理所下载的数据。Squid可以代理HTTP、FTP、GOPHER、SSL和WAIS协议,暂不能代理POP、NNTP等协议。在/etc/Squid目录中有一个配置文件Squid.conf,修改该文件 可以满足您的不同需要。对初学者来说,可能觉得项目太多,无所适从。但只要理解它的配置方法,就能随心所欲地控制自己的代理服务器了。(注意行前“#”号,表明后面是注释。)
1. 最简单的代理服务器
如果你不想在这上面花功夫,并且对代理服务器的安全性和效率没什么要求,那你只要改一个单词就可以让Squid工作了。搜索“http_access deny all”,将“deny”改为“allow”就行了!(注意改前面没有“#”号的那一行。)
2. 影响性能的选项
要发挥出Squid的优势,最好是能深入认识Squid的配置文件。虽然它很庞大,但是用户可以根据自己的实际情况修改相应的选项,并不需要配置所有的选项。先来看看哪些选项会影响Squid的性能。
(1)# cache_mem 8MB:指定Squid可以使用的内存理想值,建议设为内存的1/3。如果你的内存有256MB或以上,又不同时做其他事情,可以设为内存的一半甚至更多。
(2)# maximum_object_size 4096KB:大于该值的对象将不被存储在缓存里。如果要提高访问速度,就降低该值;如果想最大限度节约带宽,降低成本,就增加该值。建议将它的值改为1024KB。
(3)# minimum_object_size 0KB:小于该值的对象将不被存储在缓存里。默认值为0。
(4)# maximum_object_size_in_memory 8KB:指最大的能保存在内存中的对象。如果内存足够多,可以适当将数值调整得大一些,可以加快客户机读取大对象的速度。
(5)# cache_dir ufs /var/spool/Squid 100 16 256:指定Squid用来存储对象的交换空间的大小及其目录结构。100是交换空间大小,指100MB,16、256分别是一级目录、二级目录数量。
(6)# cache_swap_low 90、# cache_
swap_high 95:指定Squid缓存数值超过或低于某个百分比时和交换空间进行数据交换。当缓存比较大时,两个值可以设得比较小且比较接近。
3. 访问控制设置
我们限定某些组或IP的计算机在指定时候上网,并且可以屏蔽含有某些关键词的网站。为了使用控制功能,必须先设置 ACL 规则并应用。ACL 声明的格式如下:
acl acl_element_name type_of_acl_
element values_to_acl
(1)限制外网电脑使用代理,只允许IP为192.168.1.1~192.168.1.255的机器访问。
acl school_clients src 192.168.1.0/
255.255.255.0
acl all_clients src 0.0.0.0/0.0.0.0
http_access allow school_clines
http_access deny all_clients
(2)限制使用时间。只允许IP为192.168.1.1~192.168.1.255的机器在每周一到周五的7∶00到17∶00使用。如果不限制周一到周五,把下面第二行“MTWHF”去掉。“!”表示逻辑非。
acl school_clients src 192.168.1.0/
255.255.255.0
acl allow_time time MTWHF 7:00-
17:00
http_access allow school_clients allow_time
http_access allow ! school_clients
(3)屏蔽某些含有特定关键词的站点。
acl school_clients src 192.168.1.0/
255.255.255.0
acl refused_sites url_regex sex
http_access deny fefused_sites
http_access allow school_clients
注意:这些规则按照它们的排列顺序进行匹配检测,列表中的规则总是遵循由上而下的顺序。
因为deny在前,将屏蔽所有电脑的访问,包括内网在内。我们可以定义多个ACL规则,但名字不能相同。
4.其他
# http_port 3128:定义Squid监听HTTP客户连接请求的端口,缺省是3128。可以把它定义为容易记忆的端口,但不能和其他常用端口相冲突(如21)。
启动Squid
在配置好Squid.conf后,可以用终端来启动、停止Squid,更方便的是将它作为一种服务来启动。单击“开始→服务器设置→服务”,启动“服务配置”窗口。在中间的服务窗口选中“Squid”,就可以使用工具栏上的[开始]、[停止]、[重启]按钮来控制Squid的运行。如需电脑启动时自动启动Squid,只要把它前面的复选框勾选就行了。
现在一切都做完了。如果配置得当,只要把服务器的电源开关打开,你就可以享受Linux带来的安全、高效的服务了!(全文完)
参与更多linux/unix讨论,就在 linux/unix 社区
(责任编辑:郁单曰)