本文就少一点废话,前面两篇博客进行了基于squid实现正反向代理实例演示,加深了对代理服务器工做原理及过程的理解。本文主要介绍一下基于squid软件实现ACL访问控制以及使用sarg软件对squid的日志进行分析的实际案例。html
补充:本文基于手工编译安装squid软件,参考正向代理实验文章便可。linux
client ip:192.168.100.100(Win7/win10)web
squid 代理服务器IP地址:20.0.0.128 192.168.100.1 shell
在squid服务器上修改主配置文件vim
[root@squid ~]# vim /etc/squid.conf #修改配置文件 # should be allowed #找到acl位置插入下面的语句 acl hostlocal src 192.168.100.100/32 #控制hostlocal10.10的主机 # Deny requests to certain unsafe ports #在该处下方插入语句 http_access deny hostlocal #表示匹配上方的设置,拒绝来自192.168.100.100的主机访问 [root@squid ~]# service squid reload #重启squid服务
先在Win7(192.168.100.100)验证:结果是访问被拒绝安全
而在win10(192.168.100.50)上访问:结果是test页面,为了区别性先在squid服务器上写一个index.html文件以下:服务器
[root@squid html]# echo "you can access my web(because your ip is not 192.168.100.100)" > index.html
访问服务器结果以下图所示:ide
Sarg(Squid Analysis Report Generator),是一款Squid 日志分析的工具,采用HTML 格式,详细列出每一位用户访问Internet 的站点信息、时间占用信息、排名、链接次数、访问量等。工具
#软件包资源,解压 [root@squid ~]# ls anaconda-ks.cfg initial-setup-ks.cfg sarg-2.3.7.tar.gz squid-3.4.6.tar.gz 公共 模板 视频 图片 文档 下载 音乐 桌面 [root@squid ~]# tar -xzf sarg-2.3.7.tar.gz -C /opt/ [root@squid ~]# cd /opt/ [root@squid opt]# ls rh sarg-2.3.7 squid-3.4.6 #安装gd库 [root@squid opt]# yum install -y gd gd-devel 做为依赖被安装: expat-devel.x86_64 0:2.1.0-10.el7_3 fontconfig-devel.x86_64 0:2.13.0-4.3.el7 freetype-devel.x86_64 0:2.8-14.el7 libX11-devel.x86_64 0:1.6.7-2.el7 libXau-devel.x86_64 0:1.0.8-2.1.el7 libXpm-devel.x86_64 0:3.5.12-1.el7 libjpeg-turbo-devel.x86_64 0:1.2.90-8.el7 libpng-devel.x86_64 2:1.5.13-7.el7_2 libsmartcols.x86_64 0:2.23.2-61.el7_7.1 libuuid-devel.x86_64 0:2.23.2-61.el7_7.1 libxcb-devel.x86_64 0:1.13-1.el7 xorg-x11-proto-devel.noarch 0:2018.4-1.el7 zlib-devel.x86_64 0:1.2.7-18.el7 做为依赖被升级: fontconfig.x86_64 0:2.13.0-4.3.el7 freetype.x86_64 0:2.8-14.el7 libX11.x86_64 0:1.6.7-2.el7 libX11-common.noarch 0:1.6.7-2.el7 libblkid.x86_64 0:2.23.2-61.el7_7.1 libjpeg-turbo.x86_64 0:1.2.90-8.el7 libmount.x86_64 0:2.23.2-61.el7_7.1 libuuid.x86_64 0:2.23.2-61.el7_7.1 libxcb.x86_64 0:1.13-1.el7 util-linux.x86_64 0:2.23.2-61.el7_7.1 zlib.x86_64 0:1.2.7-18.el7 完毕!
配置参数而且安装post
[root@squid sarg-2.3.7]# ./configure --prefix=/usr/local/sarg \ ##安装路径 > --sysconfdir=/etc/sarg \ ##配置文件 > --enable-extraprotection ##开启安全防御 [root@squid sarg-2.3.7]# make && make install ##编译安装
修改sarg配置文件
[root@squid sarg-2.3.7]# vim /etc/sarg/sarg.conf #配置文件中全部的都被注释了,咱们须要取消注释一下内容 access_log /usr/local/squid/var/logs/access.log #指定访问日志文件 title "Squid User Access Reports" #网页标题 output_dir /var/www/html/squid-reports #报告输出目录 user_ip no #使用用户名显示 exclude_hosts /usr/local/sarg/noreport #不计入排序的站点列表文件 topuser_sort_field connect reverse #top排序中有链接次数,访问字节,降序排列,升序是normal overwrite_report no #同名日志是否覆盖 mail_utility mailq.postfix #发送邮件报告命令 charset UTF-8 #使用字符集 weekdays 0-6 #top排行的时间周期 hours 0-23 #top排行的时间周期 www_document_root /var/www/html #网页根目录 [root@squid sarg-2.3.7]# touch /usr/local/sarg/noreport #添加不计入站点文件,添加的域名将不被显示 [root@squid sarg-2.3.7]# ln -s /usr/local/sarg/bin/sarg /usr/local/bin/ #建立sarg命令的软链接 [root@squid sarg-2.3.7]# sarg #生成报告 SARG: 纪录在文件: 123, reading: 100.00% SARG: 成功的生成报告在 /var/www/html/squid-reports/2020Feb08-2020Feb08 #提示报告生成在这个目录,咱们进入这个目录查看一下 [root@squid sarg-2.3.7]# cd /var/www/html/squid-reports [root@squid squid-reports]# ls 2020Feb08-2020Feb08 images index.html
随后安装并开启httpd服务
由于安装了gd库咱们能够在客户端访问sarg日志,咱们在服务器上能够使用crontab生成周期性计划任务生成日志报告。