Squid代理服务器的搭建

 

一、环境准备:
1、Linux主机需要2块网卡
2、网络参数的配置
Linux代理服务器:eth0(内网)172.16.0.36/16   dns:61.134.4.1
                                   eth1(外网)8.0.0.1/8
 

二、实验拓扑:

 

Linux+Squid+Iptables=企业内部web代理上网_Squid_02

三、Squid详细配置:

1、安装Squid软件包

 

Linux+Squid+Iptables=企业内部web代理上网_Squid_03

2、备份Squid的配置文件,以防止错误操作

Linux+Squid+Iptables=企业内部web代理上网_企业_04

3、编辑配置文件:vi /etc/squid/squid.conf

Linux+Squid+Iptables=企业内部web代理上网_web_05
配置文件说明:
http_port 3128                             //设置监听的IP与端口号
cache_mem 64 MB设置内存缓冲的大小
cache_dir ufs /var/spool/squid 2000 16 256    设置硬盘缓冲大小
cache_effective_user squid设置缓存的有效用户
cache_effective_group squid设置缓存的有效用户组
dns_nameservers 192.168.0.254设置DNS服务器地址,一般可以不设置,默认使用服务器自己设置的dns
cache_access_log /var/log/squid/access.log设置访问日志文件
cache_log /var/log/squid/cache.log设置缓存日志文件
visible_hostname 192.168.0.20设置squid主机名称
以上全局参数根据你自己的需要修改
 

http_port 8888
cache_mem 128 MB
cache_dir ufs /var/spool/squid 4096 16 254
cache_effective_user squid
cache_effective_group squid
dns_nameservers 61.134.4.1
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 172.16.0.36
cache_mgr root@hack.com
 
# 以下是访问控制列表,对用户上网的控制,deny必须在allow的前面
acl all src 172.16.0.0/255.255.0.0
acl getfile urlpath_regex -i \.mp3$ \.exe$ \.zip$ \.rar$ <不允许用户下载.exe等文件>
acl kk src 172.16.0.25/255.255.0.0
acl dd time 17:00-20:00
 
http_access deny kk dd <===<表示不允许172.16.0.25用户在17;00-20;00上网>
http_access deny getfile <==不允许下载exe zip rar   mp3文件
http_access allow all
 

 注意:拒绝一定要在允许的前面


注意:在修改配置完成后一定要重启服务:service squid restart

4、初始化Squid:/usr/sbin/squid -z
 

 

四、内部客户机的设置

1、打开IE浏览器--->点击工具--->internet选项--->选择连接--->局域网设置---->配置代理
 

Linux+Squid+Iptables=企业内部web代理上网_Iptables_06

五、测试

1、正常设置。访问正常
 

Linux+Squid+Iptables=企业内部web代理上网_企业_07

2、禁止用户下载mp3/rar/zip等类型的文件:

acl getfile urlpath_regex -i \.mp3$ \.exe$ \.zip$ \.rar$ 
 
http_access deny getfile   
 
注意:拒绝的策略一定要添加在允许的前面才会生效

   修改:/etc/squid/squid.conf文件,在访问列表出添加如下语句即可:修改完成后需要重启服务

 

测试如下:

 Linux+Squid+Iptables=企业内部web代理上网_Linux_08

 
测试结果:无法下载flash_player.exe文件
Linux+Squid+Iptables=企业内部web代理上网_Linux_09
 
3、拒绝用户在下午17:00-8:00之间上网,可如下操作:

 
acl kk src 172.16.0.25/255.255.0.0
acl dd time 17:00-20:00
http_access deny kk dd   <==表示不允许172.16.0.25用户在17;00-20;00上网
 
注意:拒绝的策略一定要添加在允许的前面才会生效

   修改:/etc/squid/squid.conf文件,在访问列表出添加如下语句即可:修改完成后需要重启服务

测试结果:

Linux+Squid+Iptables=企业内部web代理上网_web_10
4、拒绝172.16.0.25和用户访问internet
   修改:/etc/squid/squid.conf文件,在访问列表出添加如下语句即可:修改完成后需要重启服务

acl bb 172.16.0.25/255.255.0.0

 

http_access bb deny <===拒绝用户访问

 

注意:拒绝的策略一定要添加在允许的前面才会生效


测试结果:

Linux+Squid+Iptables=企业内部web代理上网_企业_11 

 

5、拒绝172.16.0.25用户访问www.163.com

   修改:/etc/squid/squid.conf文件,在访问列表出添加如下语句即可:修改完成后需要重启服务

Linux+Squid+Iptables=企业内部web代理上网_web_12
注意:拒绝的策略一定要添加在允许的前面才会生效

                                             

测试结果:

Linux+Squid+Iptables=企业内部web代理上网_企业_13