用实例配置 linux squid 代理服务器

27.1 squid概述

squid是linux下常见的代理服务器。Linux下代理服务器对硬件的要求不高,但是对内存的要求很高。代理服务器主要实现对一定的网络管理要求以及带宽要求的地方。

27.2 squid基本配置

27.2.1 squid安装与启动服务

rpm -q squid

squid-2.5.STABLE12-5.1

fc5 linux默认已经安装了squid代理服务器软件,如果没有安装的话,可以在光盘中找到该软件进行安装即可。

chkconfig squid on      /*设为开机自启动*/

service squid start     /*开启服务*/

27.2.2 squid配置

Squid只要做一些基本的配置就能够提供代理服务,这里只是提供最基本的配置方案,如果需要有更加精细的配置要求的话,需要对其访问控制列表进行修改。

用vi删除原有配置文件的内容,输入以下内容。

vi /etc/squid/squid.conf

#代理服务器的监听端口

http_port 192.168.1.1:8080

#内存缓冲区的大小

cache_mem 64 MB

#设置硬盘缓冲区最大4096MB,16个一级目录,256个二级目录。

cache_dir ufs /var/spool/squid 4096 16 256

#设定使用缓存的有效用户

cache_effective_user squid

#设定使用缓存的有效组

cache_effective_group squid

#定义dns服务器的地址

dns_nameservers 202.103.1.117

#设置访问日志文件

cache_access_log /var/log/squid/access.log

#设置缓存日志文件

cache_log /var/log/squid/cache.log

#设置网页缓存日志文件

cache_store_log /var/log/squid/store.log

#设置squid主机名称,一般为IP地址。

visible_hostname 192.168.1.1

#设置管理员email地址

cache_mgr abc@126.com

#访问控制列表

#允许所有

acl all src 0.0.0.0/0.0.0.0

#定义允许名称为all的http请求。

http_access allow all

27.2.3 初始化squid配置

1.创建缓冲区目录结构

在初次启动squid之前应建立硬盘缓冲区目录结构。

/usr/sbin/squid -z

2009/02/13 19:54:33| Creating Swap Directories

目录缓冲区地址/var/spool/squid

2.设置squid错误提示信息为中文

mv /etc/squid/errors /etc/squid/errors.bak

#创建快捷方式

in -s /usr/share/squid/errors/simplify_chinese /etc/squid/errors

/etc/init.d/squid reload或service squid reload

27.3 squid透明代理配置

27.3.1 squid透明代理介绍

透明代理就是nat与代理的结合,透明就是工作在这种方式下的客户机感觉不到代理服务器的存在,不需要在浏览器中进行设置。只需要把网关设为代理服务器以及配置正确的dns地址。

27.3.2 squid透明代理配置

Squid只要做一些基本的配置就能够提供代理服务,以下基本配置文件的内容是一样的,只需要在此基础上进行必要的修改。

vi /etc/squid/squid.conf

http_port 192.168.1.1:8080

cache_mem 64 MB

cache_dir ufs /var/spool/squid 4096 16 256

cache_effective_user squid

cache_effective_group squid

dns_nameservers 202.103.1.117

cache_access_log /var/log/squid/access.log

cache_log /var/log/squid/cache.log

cache_store_log /var/log/squid/store.log

visible_hostname 192.168.1.1

cache_mgr abc@126.com

#以下是透明代理的设置,不可少。

#定义代理服务器为virtual加速模式。

httpd_accel_host virtual

#要加速的端口

httpd_accel_port 80

#squid既是web请求加速器又是代理服务器

httpd_accel_with_proxy on

#代理服务器的缓存功能才能工作。

httpd_accel_uses_host_header on

acl all src 0.0.0.0/0.0.0.0

http_access allow all

27.3.3 配置iptables

将所有由eth0接口进入的web服务80端口的请求直接转发到8080口,由squid去处理。

iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080

27. 4 squid用户认证配置

27.4.1 squid认证介绍

squid本身不自带认证功能,需要由其它程序在进行认证。Squid就是可以实现没有经过认证的用户不能实现上网。

27.4.2 squid用户认证配置

基本配置文件都是相同的,只需要在此基础上进行修改。

vi /etc/squid/squid.conf

http_port 192.168.1.1:8080

cache_mem 64 MB

cache_dir ufs /var/spool/squid 4096 16 256

cache_effective_user squid

cache_effective_group squid

dns_nameservers 202.103.1.117

cache_access_log /var/log/squid/access.log

cache_log /var/log/squid/cache.log

cache_store_log /var/log/squid/store.log

visible_hostname 192.168.1.1

cache_mgr abc@126.com

#以下实现用户身份认证的语名

#设定认证程序路径,与认证程序密码。

auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/passwd

#认证程序进程数

auth_param basic children 5

#用户认证后的有效时间,超过时间需要再次认证。

auth_param basic credentialsttl 2 hours

#显示验证框时的提示内容。

auth_param basic realm Example.com's Squid proxy-caching

#允许经过认证的用户访问

#acl 列表名称 列表类型   列表值

acl auth_user proxy_auth REQUIRED

http_access allow auth_user

27.4.3 建立帐户文件

可以利用apache的htpasswd程序来生成帐户文件

htpassed -c /etc/squid/passwd redhat

在第一次生成帐户文件的时候需要加入-c,以后就不需要了。

注:还需要对passwd文件设置其它用户可读权限。在配置过程中可以出现认证框,但是输入密码不行。经发现权限为600。root用户root组,配置文件中squid的用户为squid,造成不能读取密码。

chmod o+r /etc/squid/passed

27.4.4 客户端配置

基本配置与认证代理,只需要在IE中internet选项/连接/局域网设置/代理服务器中填入代理服务器的IP地址与端口即可。

透明代理,与正常的nat配置主网的方式一样,只要设置网关与dns即可,不需要设置IE。

27.4.5 验证

其它两上配置都成功验证,可以直接应用于实际环境中。

27.5 squid访问控制应用

27.5.1 禁止访问网络

1.禁止一台电脑上网

acl ip src 192.168.1.200

http_access deny ip

2.禁止192.168.1.0网段的电脑上网

acl ip src 192.168.1.0/255.255.255.0

http_access deny ip

27.5.2 禁止访问特定网站

1.禁止访问某IP地址

acl ip dst 192.168.1.200

http_access deny ip

说明:不能访问该目标IP地址的所有内容,包含网站。与上面的内容区别。

2.禁止访问某网站

acl ip dstdomain -i www.abc.com

http_access deny ip

说明:只是不能访问www.abc.com,下面的子页面还是可以访问的。

3.禁止访问含有某域名的网站

acl ip url_regex -i abc.com

http_access deny ip

说明:比上面的控制严格。

27.5.3 基于时间的访问控制

1.禁止某子网在周一至周五9:00到18:00(上班时间不能上网)

acl ip src 192.168.2.0/255.255.255.0

acl worktime time MTWHF 9:00-18:00

http_access deny ip worktime

说明:可以参考此规则进行变通。

2.禁止下载含有.rar、.mp3

acl ip urlpath_regex -i \.mp3$\.rar$

http_access deny ip


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值