zoukankan      html  css  js  c++  java
  • Squid代理服务器(三)——ACL访问控制

    一、ACL概念

       Squid提供了强大的代理控制机制,通过合理设置ACL(Access Control List,访问控制列表)并进行限制,可以针对源地址、目标地址、访问的URL路径、访问的时间等各种条件进行过滤。

    ACL访问控制的步骤:

      1、使用acl配置项定义需要控制的条件

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

    二、ACL用法概述

    (1)定义ACL访问列表

    定义格式:acl  列表名称  列表类型  列表内容 ...

    例:控制源IP网段

    vim etc/squid.conf

    acl MYLAN src 192.168.1.0/24  192.168.4.0/24

    常用的ACL列表类型

    1 src          源地址
    2 dst              目标地址
    3 port            目标地址
    4 dstdomain       目标域
    5 time            访问时间
    6 maxconn       最大并发连接
    7 url_regex         目标URL地址  # 可以定义大的范围比如http://www.baidu.com
    8 urlpath_regex  整个目标URL路径  # 可以定位到每个网站的具体目标的url,比如百度音乐的一首歌的url

    (2)ACL访问控制

       定义好各种访问控制列表以后,需要使用httpd_access配置项来进行控制

    格式:

      ~]#vim etc/squid.conf

      http_access  allow或deny  列表名……

      在每一条http_access规则中,可以同时包含多个访问控制列表名,各个列表之间以空格分隔,为“与”的关系,表示必须满足所有访问控制列表对应的条件才会进行限制

      规则匹配原理:没有设置任何规则时,Squid服务将拒绝客户端的请求,有规则但找不到相匹配的项时,Squid将采用与最后一条规则相反的权限,即如果最后一条规则时allow,就拒绝客户端的请求,否则允许该请求,但是我们要尽量避免找不到相匹配的情况。

    三、ACL列表的详细应用

    1、禁止任何客户机使用此代理服务:定义一条名为all的列表,匹配来自任意源地址的代理访问;然后拒绝此列表,注意ACL列表要写在前面

    1 ~]#vi  /etc/squid.conf
    2 acl  all src 0.0.0.0/0.0.0.0
    3 http_access  deny  all
    4 ~]#service squid  reload

     2、允许多个局域网段在工作时间上网

    1 ~]#vim /etc/squid.conf
    2 acl all src 0.0.0.0/0.0.0.0  (有些版本要这么写acl all src all)
    3 acl MYLAN src  192.168.1.0/24   192.168.4.0/24
    4 acl  WORKTIME  time  MTWHF  08:30-17:30   (其中MTWHF是周一到周五的英文首字母)
    5 http_access allow  MYLAN  WORKTIME
    6 http_access  deny  all
    7 ~]#service squid  reload
    8 #注意要先写http_access allow  MYLAN  WORKTIME再写http_access  deny  all,因为先执行前面的,后面的就不执行了

    3、通过黑名单限制目标网站

    (1)首先创建地址列表文件(直接在配置文件里写也行,但是这种用列表文件的方式适合拒绝或允许的网站域名比较多的情况,而且方便增删管理)

    1 ~]#vim  /etc/squid/ipblock.list
    2 61.135.167.36
    3 60.28.14.0/24
    4 ~]#vim /etc/squid/dmblock.list
    5 .qq.com

    (2)配置acl

    1 ~]#vim /etc/squid.conf
    2 acl IPBLOCK dst "/etc/squid/ipblock.list"
    3 acl DMBLOCK dstdomain "/etc/squid/dmblock.list"
    4 http_access  deny  IPBLOCK
    5 http_access  deny  DMBLOCK
    6 ~]#service squid  reload
  • 相关阅读:
    云题库错题分析
    数据库相关子查询
    阻止事件冒泡
    21分钟 MySQL 入门教程(转载!!!)
    java接口
    java访问修饰符
    小游戏,快速击键
    个人对Java中多态的一些简单理解
    简述抽象和封装,对你学习Java有一些作用
    Bank,我只是来完成作业的
  • 原文地址:https://www.cnblogs.com/mangood/p/6037574.html
Copyright © 2011-2022 走看看