Squid是Linux下最为流行的代理服务器软件,他功能强大,支持对HTTP、FTP、Gopher、SSL、WAIS等协议的代理; 配置简单,只需对配置文档稍稍改变就可使代理服务器运转起来。此外,Squid具备页面缓存功能,他接受用户的下载申请,并自动处理所下载的数据。

  前期准备

  Squid对硬件的需要是: 内存不应小于128M,硬盘转速越快越好,最好使用服务器专用SCSI硬盘,对CPU的需要不高,400MHz以上即可。笔者所管理的代理服务器是 Inter2150,安装了Red Hat Linux 7.2,安装时就带有Squid。有两块网卡,一块eth0配外部地址(比如211.88.99.66),一块eth1配内网地址(比如 192.168.5.1)。假如安装了Gnome或其他图像界面,就能够在netconfig中给两块网卡配置IP地址,不然的话,可在 /etc/sysconfig/network-script路径下更改文档ifcfg-eth0和ifcfg-eth1。

  首先编辑ifcfg-eht0,有以下几项:

  DEVICE=eth0 (表示用哪块网卡)

  IPADDR=211.88.99.66 (配置该网卡的IP地址)

  NETMASK=255.255.255.252 (配置子网掩码)

  同样编辑ifcfg-eth1,然后运行命令network restart就能够使配置生效了。对eth0、eth1进行配置后,能够用ifconfig命令来查看是不是配置成功。

  假如服务器只有一张网卡,也不用担心,Linux能够在一块网卡上绑定多个IP地址。在图像界面下配置很简单,不赘述。假如在文本状态下配置,能够将ifcfg-eth0复制并命名为ifcfg-eth0:1,把他完全当成两块网卡来配就能够了。

  Squid的安装

  1. 安装Linux

  安装Linux在硬盘分区时要注意,最好不要让系统自己分区,而是手动分区。通常,在Linux系统中有且仅有一个交换分区(在文档系统形式中选择 Linux swap),他用做虚拟内存,建议将交换分区的大小配置为内存的两倍。当硬盘的大小超过了8G,要再建立一个128M(稍稍大一点,不会出错)的boot 分区,这是为了避免将系统内核文档放到1024磁道以外,假如将boot作为root分区的一个子目录,内核文档就会安装在root分区的任何地方。因为要用做代理服务器,建议再分一个分区“var”,作为Squid的缓冲区,所以根据磁盘大小尽量分配大一点,最后将硬盘的剩余空间全部分给root分区。

  2. 安装Squid

  新手安装Squid,建议在安装Linux时就选中Squid,他并不是默认选中项,而且也不在选择的大类中,要在周详列表中查找。假如没有安装,又不想重装系统,能够从www.squid-cache.org 下载Squid软件。

  Squid代理服务器的配置

  安装好Squid后几乎就能够用了,用编辑器打开/etc/squid/squid.conf文档(以root登录),Squid的配置文档共有125个配置项,但是一般来说,只要修改几个配置项即可。找到“http_access deny all”并改为“http_access allow all”令任何的电脑都能通过代理服务访问互连网资源。其实只要修改该项,Squid服务就能够启动了。

  为了更好地控制代理服务器的行为,更有几个可配置项需要考虑:

  1. cache_mem: 配置代理服务使用的内存大小,一般推荐为物理内存的三分之一。

  2. cache_dir:设定缓存的位置、大小。一般格式如下:

  cache_dir /var/spool/squid/cache 100 16 256

  cache_dir指定cache目录的路径,默认为/var/spool/squid/cache。

  /var/spool/squid/cache代表缓存的位置,使用squid -z指令会在这个目录下建立存储交换文档(swap files)的目录。100表示缓存最大为100M,16和256代表一级和二级目录数。实际使用时,100M是不够的,假如硬盘够大,能够增加存储空间,比如:cache_dir /var/spool/squid/cache 2000 16 256。

  3. http_port:代理服务使用的端口号,默认为3128,能够使用其他的端口,注意将前面的注释符号“#”去掉。另外,使用端口不能和其他的服务重复,假如使用1024以下的端口,Squid必须以root身份运行。

  4. maximum_object_size: 指定Squid能够接收的最大对象的大小。Squid缺省值为4M,能够根据自己的需要进行设定。

  启动Squid

  Squid能够配置为自动启动。运行命令setup,在System services选项中选中Squid。配置后每次重新开机,都会自动执行Squid。

  假如是第一次启动,要建立/var/spool/squid下的暂存资料目录,先输入squid -z,再启动Squid(直接运行Squid即可)。

  启动Squid后,在另一台Windows电脑上(以Internet Explorer 5.0为例)运行IE,单击“工具”,接着单击“Internet选项”,再单击“连接”选项卡,选择“局域网配置”。在“局域网配置”窗口中的“地址” 处填上Squid服务器的IP地址,在“端口”处填上“3218”(Squid软件默认代理的端口号),确定后退出。接下来,随意浏览一些网站检查 Squid的运行情况,也能够查看logs下的access.log和cache.log,看看代理是否运行正常。

  代理服务器的安全

  代理服务器是个单位对外的门户,安全至关重要。因此,应该采取必要的防护手段。

  1. 防火墙的配置

  为了确保代理服务器的安全,最好加上防火墙,能够用IPchains或IPtable。

  要使用ftp代理,还必须载入相关模块。能够使用以下命令:

  modprobe ip_comtrack_ftp

  modprobe命令会自动载入指定模块及其相关模块。iptables_filter模块会在运行时自动载入。

  下面用IPtables一步一步地来建立包过滤防火墙,需要说明的是,在这个例子中,主要是对内部的各种服务器提供保护。

  给IPtables规则配置一个存储路径: iptables -restroe /etc/sysconfig/iptables。

  现在开始考虑规则。在这里需要注意的是,服务器/客户机交互是双向的,所以不但仅要配置数据包出去的规则,还要配置数据包返回的规则,下面先建立针对来自Internet数据包的过滤规则。

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!