码迷,mamicode.com
首页 > 其他好文 > 详细

Squid代理服务器的ACL访问控制和日志分析

时间:2018-07-31 19:08:58      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:时间   images   oda   access   日志分析   gd库   extra   通过   代理上网   

系统环境:
  • 代理服务器(192.168.100.135):

YUM默认安装无需配置即为标准正向代理模式,但是需对客户端浏览器代理服务器进行设置(port:3128)

yum install squid -y
systemctl start squid.service   #启动服务
systemctl enable squid.service 

关闭防火墙,关闭增强性策略

systemctl stop firewalld.service
setenforce 0
  • web服务器(192.168.100.140):

    YUM安装httpd,配置网页文件。

    yum install -y httpd
    systemctl start httpd.service
    echo "<h1>Squid-Web</h1>" > index.html

    关闭防火墙,关闭增强性策略

    systemctl stop firewalld.service
    setenforce 0
  • Windows7客户端浏览器进行代理设置(192.168.100.134)

    在windows7系统中开启浏览器步骤:打开IE浏览器---》工具---》Internet选项--》连接---》局域网设置--填写代理服务器IP与端口信息。
    技术分享图片

一、ACL访问控制

Squid提供了强大的代理控制机制,通过设置ACL可以针对源地址、目标地址、访问的URL路径、访问的时间等各种条件过滤。

在配置文件squid.conf中,ACL访问控制可以通过以下步骤来实现:

其一:使用acl配置项定义需要控制的条件;

其二:通过http_access配置项对已定义的列表做“允许”或“拒绝”访问的控制。

常用的ACL列表类型:

src 源地址
dst 目标地址
port 目标端口
dstdomain 目标域
tmie 访问时间
maxconn 最大并发连接
url_regex 目标url地址
urlpath_regex 整个目标url地址

实例一:禁止客户端访问IP为192.168.100.140的网站

1.首先访问192.168.100.140网站正常。
技术分享图片

2.然后添加acl规则设置拒绝,重启服务

vim /etc/squid/squid.conf

//添加以下acl规则
acl destionhost dst 192.168.100.140/32
......
http_access deny destionhost

技术分享图片

systemctl restart squid.service    #重启服务

3.再次访问网站
技术分享图片

实例二:只允许在设定的时间段(9:00-17:00)访问

1.添加acl规则设置工作时间,重启服务

vim /etc/squid/squid.conf

//添加以下acl规则
 acl worktime time MYWHF 12:00-17:00
......
http_access allow worktime
http_access deny all

技术分享图片

systemctl restart squid.service    #重启服务

2.在客户端修改时间为0:33,访问网站
技术分享图片

实例三:只允许IP为192.168.100.134的客户端使用代理上网,禁止其他客户端的代理请求

1.添加acl规则设置工作时间,重启服务

vim /etc/squid/squid.conf
 //添加以下acl规则
acl client src 192.168.100.140
......
http_access allow client
http_access deny all

技术分享图片

systemctl restart squid.service

2.不在ip为192.168.100.140上访问网站
技术分享图片

当需要限制的同一类对象比较多的时候,可以使用独立的文件来存放

二、Squid日志分析

Sarg,是一款Squid日志分析工具采用HTML格式,详细列出每一位用户访问Internet的站点信息、时间占用信息、排名、连接次数和访问量等。

在squid服务器上部署Sarg的步骤如下:

1.安装GD库和gcc

yum install -y gd gd-devel     #图像处理
yum install -y gcc gcc_c++

2.安装sarg

mkdir /usr/local/sarg

tar zxvf sarg-2.3.7.tar.gz -C /opt/

cd /opt/sarg-2.3.7
./configure --prefix=/usr/local/sarg --sysconfdir=/etc/sarg \            #配置文件目录,默认是/usr/local/etc
--enable-extraprotection            #额外安全防护

make && make install

3.配置

cd /etc/sarg/

vim sarg.conf

access_log /var/log/squid/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

user_sort_field connect reverse    //用户访问记录 连接次数、访问字节按降序排序

overwrite_report no     //同名日志是否覆盖

mail_utility mailq.postfix   //发送邮件报告命令

charset UTF-8          //使用字符集

weekdays 0-6         //top排行的星期周期

hours 0-23           //top排行的时间周期

www_document_root /var/www/html  //网页根目录

4.运行

上述配置中,添加了不计入排序的站点,需存在下面这个文件。

touch /usr/local/sarg/noreport  #在这个文件中添加的域名将不被显示在排序中

直接执行sarg就可启动一次记录,建议设置符号链接,然后执行sarg,会看到提示信息。

ln -s /usr/local/sarg/bin/sarg /usr/local/bin/
sarg

技术分享图片

5.安装httpd服务

yum install httpd -y
systemctl restart httpd.service

6.验证

多次执行sarg后,在客户端上访问squid-reports目录,可以看到生成的报表。
技术分享图片

7.计划任务

vim /usr/local/sarg/daily.sh
 TODAY=$(date +%d/%m/%Y)
 YESTERDAY=$(date -d "1 day ago" +%d/%m/%Y)
 sarg -l /usr/local/squid/var/logs/access.log -o /var/www/html/squid-reports/ -z -d $YESTERDAY-$TODAY

chmod +x /usr/local/sarg/daily.sh

crontab -e    #添加任务计划,每台00:00执行
  00 00 * * * /usr/local/sarg/daily.sh

Squid代理服务器的ACL访问控制和日志分析

标签:时间   images   oda   access   日志分析   gd库   extra   通过   代理上网   

原文地址:http://blog.51cto.com/11134648/2152779

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!