您的位置:首页 > 运维架构 > 反向代理

Squid透明代理+ACL访问控制+日志分析

2016-10-16 18:59 211 查看
防伪码:仰天大笑出门去,我辈岂是蓬蒿人 第一章 Squid透明代理+ACL访问控制+日志分析
前言:搭建代理服务器可以提高上网打开网页的速度,可以对非法网站进行屏蔽,限制文件下载,以及查看员工访问internet的情况,包括上网的地址,用户,时间等,是企业网络管理的常用手段。代理服务器分为传统代理和透明代理,传统代理适用于浏览internet,需要在浏览器上手工指定服务器地址和端口,不是很方便,但是可以隐藏本机真实的ip地址,而且为下载工具使用多个代理可以规避服务器的并发连接显示。透明代理适用于共享上网网关,不需要指定服务器地址和端口,无需额外的设置即可上网,在实际工作中透明代理较多。一、构建透明代理服务器
1、实验拓扑:

2、 实验步骤1)在服务器A上安装Squid代理服务器软件(挂载光盘,解压缩)

2) 编译安装



--prefix=/usr/local/squid //安装目录--sysconfdir=/etc //单独将配置文件修改到其他目录--enable-arp-acl //可以在规则中设置直接通过客户端mac进行管理,防止客户端使用ip欺骗攻击--enable-linux-netfilter //使用内核过滤--enable-linux-tproxy //支持透明模式--enable-async-io=值 //异步i/o,提升存储性能--enable-err-language=”Simplify_Chinese” //错误信息的显示语言--enable-poll //使用Poll()模式,提升性能--enable-underscore //允许url中有下划线--enable-gnuregex //使用GNU正则表达式3) 创建链接文件,创建用户和组

4) 使用squid服务脚本(为了能够方便启动停止服务)Vim squid,内容如下:



;;asac(补充)设置权限,并添加为系统服务。

5) 修改配置文件Vi /etc/squid.conf主要修改有以下几条配置项,有的配置项需要修改,而有的配置项需要添加。 http_port 192.168.1.1:3128 transparent squid的默认监听端口tcp
修改 cache_effective_group squid squid的运行组 添加 cache_effective_user squid squid的运行用户
添加 visible_hostname yangwen 当前系统的主机名 添加 cache_dir ufs /usr/local/squid/var/cache/squid 100 16 256 去掉“#”

6) 在防火墙上添加允许策略

7) 启动squid服务执行:Squid -k parse检测语法是否正确,出现很多内容,一般不用理会,没有提示错误就可以。执行squid -z 初始化缓存目录,此步必须要做,执行完之后稍微等一会。执行squid启动服务,也可以使用service squid start启动服务,第一次启动最好用squid启动。





8) 在服务器B上搭建网站,并开启入站规则



9)在服务器A上开启路由转发临时:echo "1" > /proc/sys/net/ipv4/ip_forward永久:vim /etc/sysctl.conf 修改net.ipv4.ip_forward = 1然后sysctl -p激活

10)配置防火墙重定向,并service iptables save保存

11)在客户端上访问网站(配置网关)

12)验证透明代理


在服务器B上查看的访问者是代理服务器172.16.16.1,说明实验正确。上面的这个实验属于正向代理二、 设置ACL访问控制1、 禁止下载扩展名为:.mp4,avi视频2、 超过4mb大小的文件不进行缓存,禁止下载超过10mb的文件3、 设置网站黑名单,禁止访问位于.qq.com,.lol.com的网站4、 允许在正常上班时间(周一到周五8:30-17:30)上网5、 默认策略设置为禁止任何客户机使用代理服务器。 Vim /etc/squid.confacl safeport port 80 443acl mylan src 192.168.1.0/24acl mediafile urlpath regex -i \.mp4$ \.avi$acl dmblock dstdomain "/etc/dmbokck.list"acl working time MWTHF 08:30-17:30http_access allow mylan working safeport !mediafile !dmblockhttp_access deny allreply_body_max_size 10 MBmaximum_object_size 4096 KB



在客户端上测试下载文件,超过10mb就禁止下载(在服务器B的网站目录下新建a.data(15mb)和b.data(5mb)

查看如图:

在客户端上分别下载



三、 squid日志分析1、 安装gd库

2、 安装sarg

--enable-extraprotection 添加额外的安全保护3、 配置

修改以下内容,不用添加,修改即可1)制定squid的访问日志文件

2)网页标题

3)sarg报告的输出目录

4)使用用户名显示,根据连接次数,访问字节数,采用降序排序,升序将reverse换成normal。于用户访问记录,连接次数按降序排列。

5)当有日期报告存在,是否覆盖报告

6)发送邮件报告

7)制定不计入排序的站点列表文件

8)使用的字符集为国际编码

9)制定top排序的星期周期和时间周期,0位周日

10)网页根目录

4、 运行Touch /usr/local/sarg/noreport(别忘了service httpd start)



5、 验证



6、 计划任务vim /usr/local/sarg/daiy.sh


crontab -e

每天0点运行统计昨天的内容Chmod +x /usr/local/sarg/daily.shChkconfig crond on

谢谢观看,真心的希望能帮到您!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Linux 透明代理 杨文