squid日志分析与访问控制
squid的日志系统能够帮助我们查看访问者的记录,包括来访者Internet的站点信息,时间占用信息,
排名、连接次数和访问量。是一个很完善的日志系统。
squid常用日志分为如下两个:分别是access.log 和cache.log。
access.log:客户端使用代理服务器的记录文件,访问日志位置在squid.conf中自行定义;
cache.log : 缓存在运行时的状态信息和调试信息,一般情况下容量不大。缓存日志位置在squid.conf中自行定义。
本文主要针对访问日志使用sarg进行图形化界面的显示管理,相对于文字显示更加直观。
搭建squid请参考:http://blog.51cto.com/13760226/2177929
使用sarg软件包地址:链接:https://pan.baidu.com/s/1IT6a2WvcpNpdXvr-EWMPvg 密码:cfl8
实验环境:
操作系统 | IP地址 | 服务类型 |
Centos7 | 192.168.60.134/24 | squid缓存服务、sarg、httpd |
Centos7 | 192.168.60.136/24 | httpd服务 |
win7 | 192.168.60.133/24 | client客户机 |
一、使用Sarg日志分析
● 安装编译环境
yum install gd gd-devel gcc gcc-c++ httpd -y
● 创建sarg的安装目录
mkdir /usr/local/sarg
● 解压进行安装
tar zxf sarg-2.3.7.tar.gz -C /opt/
cd /opt/sarg-2.3.7/
./configure --prefix=/usr/local/sarg \ #安装目录
--sysconfdir=/etc/sarg \ #配置文件目录
--enable-extraportection #额外的安全防护
make && make install
● 安装完成后修改配置文件
由于整个配置文件都是被注释的,需要我们去掉注释并加以修改
vim /opt/sarg/sarg.conf
access_log /usr/local/squid/var/logs/access.log #squid的日志文件
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 将BYTES改成connect
user_sort_field connect reverse 将BYTES改成connect
overwrite_report no 同名日志的覆盖
mail_utility mailq.postfix 发送邮件命令报告
charset UTF-8 字符集
weekdays 0-6 top排行的星期周期
hours 0-23 top排行的时间周期
www_document_root /var/www/html 网页根目录
● 优化,启动sarg和httpd服务
touch /usr/local/sarg/noreport #创建不计入排序的站点列表文件
ln -s /usr/local/sarg/bin/sarg /usr/local/bin #创建个软链接系统识别方便使用
systemctl start httpd #启动httpd服务
sarg #启动sarg服务
● 访问squid网站后再次使用sarg刷新
● 使用 http://192.168.60.134/squid-reports/ 进行访问,查看日志
● 使用周期性任务对日志进行分割
sarg -l /usr/local/squid/var/logs/access.log -o /var/www/html/squid-reports/ -z -d $(date -d "1 day ago" +%d/%m/%Y)-$(date +%d/%m/%Y)
二、squid访问控制
squid访问控制功能就类似于一个acl访问控制列表,可以对源、对目标网段进行控制,
对于写入的控制条目,最后进行逐条匹配,控制着用户访问。
● 查看squid配置文件
vim /etc/squid
从配置文件我们可以看出全是acl的控制内容列表,我们可以自行添加条目,进行控制
以下是以下用法,大家可以根据实际需要添加相关条目。
acl hostlocal src 12.0.0.11/24 acl+名字+源地址+网址网段
acl work time MTWHFAS 8:00-17:50 基于时间进行的访问控制
acl MYLAN src 12.0.0.0/24 对于一个网段
acl destionhost dst 192.168.60.136/24 对目标网段进行控制
acl MC20 maxconn 20 最大链接数量
acl BURL url_regex -i ^rtsp:// ^emule:// -i忽略大小写 以什么为开头的内容
acl PURL urlpath_regex -i \.mp3$ \.mp4$ \.rmvb$ 匹配路径 正则表达式 -i 忽略大小写 以什么为结尾的内容
例:针对某一ip进行固定限制
# should be allowed
acl hostlocal src 192.168.60.133/32
# Only allow cachemgr access from localhost
http_access deny hostlocal
http_access allow localhost manager
未做限制前访问测试网站
做了限制后就不能进行访问
客户机已不能访问测试页面。