需求描述

 使用iptables设置SNAT策略

  使192.168.100.0/24网段的主机通过NAT方式共享上网

 配置squid代理服务

  对HTTP访问进行缓存加速,并结合防火墙策略实现透明代理

在代理服务中进行访问控制

禁止局域网用户下载rmvb、mp3格式的文件

  对超过3M大小的文件不做缓存,禁止下载超过8M的文件

  禁止用户访问qq.com、tencent.com、xxxx.com等域的网站

  启用网址过滤,禁止访问包含“sex”、“adult”字样的链接

Linux下squid搭建透明代理网关服务器_java


1. 准备好客户机及Internet测试服务器,在测试服务器上启动httpd服务

Linux下squid搭建透明代理网关服务器_java_02

2. Squid代理服务器上安装Squid


Linux下squid搭建透明代理网关服务器_java_03

3. 开启路由转发和SNAT 
Linux下squid搭建透明代理网关服务器_java_04


3. 配置透明代理支持、缓存和下载文件大小限制、网址过滤

1. 修改squid.conf配置文件,并重新加载该配置

http_port 192.168.1.1:3128 transparent  
##########################################

http_port 192.168.100.254:3128 transparent

acl all src 0/0

http_access alow all

reply_body_max_size 10240000 allow all

access_log /var/log/squid/access.log squid

##########################################

2. 添加iptables规则

iptables -t nat –A PREROUTING -i eth0 -s 192.168.100.0/24 -p tcp --dport 80 -j REDIRECT --to-ports 3128 

Linux下squid搭建透明代理网关服务器_java_05

Linux下squid搭建透明代理网关服务器_java_06

3. 客户机浏览器(不需要在浏览器中指定代理服务器的地址、端口)


Linux下squid搭建透明代理网关服务器_java_07

4. 在代理服务中进行访问控制

#######################################

http_port 192.168.100.254:3128 transparent

acl all src 0/0

http_access allow all

maximum_object_size 3076 KB

reply_body_max_size 81920000 allow all

access_log /var/log/squid/access.log squid

acl lan100 src 192.168.100.0/24

acl denydomain dstdomain .qq.com .tencent.com .xxxx.com

acl denywords urlpath_regex -i sex adult

acl realfile urlpath_regex -i \.rmvb$ \.mp3$

http_access deny lan100 denydomain

http_access deny lan100 denywords

http_access deny lan100 realfile

##########################################

5. 重置squid服务,测试!

禁止局域网用户下载rmvb、mp3格式的文件

Linux下squid搭建透明代理网关服务器_java_08

Linux下squid搭建透明代理网关服务器_java_09


对超过3M大小的文件不做缓存,禁止下载超过8M的文件

Linux下squid搭建透明代理网关服务器_java_10

Linux下squid搭建透明代理网关服务器_java_11

禁止用户访问qq.com、tencent.com、xxxx.com等域的网站

启用网址过滤,禁止访问包含“sex”、“adult”字样的链接 


Linux下squid搭建透明代理网关服务器_java_12