快捷搜索:   nginx

squid 访问控制 acl 指令配置

是squid用于的专用指令,其模式也很简单:
            acl mymode
            http_access deny mymode
            或 http_access allow mymode
            等等。但要注意,如果定义了很多访问规则,则squid会按前后顺序执行这些控制,所以规则的逻辑顺序很重要,否则会引起安全问题或造成访问失败!

            i.squid在启动时,将主机名转换成IP地址。一旦启动,squid不会对主机名的地址发起第二次DNS查询。这样,假如在squid运行中地址已改 变,squid不会注意到。

            ii.当ACL域名以"."开头,squid将它作为通配符,它匹配在该域的任何主机名,甚至域名自身。相反的,如果ACL域名不以"."开 头,squid使用精确的字符串比较

            iii.dst类型指向原始服务器(目标)IP地址,src类型指客户源IP地址。srcdomain
            源域,dstdomain目标域,如:
            acl myhttpserver dst 1.2.3.0/24 或192.168.0.3 可以写多行此代码指定多个服务器
            http_access deny !myhttpserver

            iv.port ACL:限制对某些原始服务器端口号的访问。Squid如果不连接到某些服务,例如email和IRC服务,port
            ACL允许你定义单独的端口或端口范围。例如:
            acl HTTPports port 80 8000-8010 8080
            这是安全的配置方式:
            acl Safe_ports port 80                    # 仅访问原始服务器的80端口
            http_access deny !Safe_ports#

            也可以指定危险端口:
            acl Dangerous_ports 7 9 19 22 23 25 53 109 110 119
            http_access deny Dangerous_ports

            注意:如果指定危险端口,由于每次访问squid都要查询端口是否安全,使用危险端口的查询工作量大于指定安全端口,尽量不用

            v.myport ACL:限制squid的可访问端口,安全的配置方式:
            acl AccelPort myport 80
            http_access deny !AccelPort

            vi.method
            ACL指HTTP请求方法,常用的有GET/PUT/POST/HEAD,CONNECT方法危险(会被利用访问远程服务器,但SSL会用到),设置:
            acl CONNECT method CONNECT
            acl SSL_ports 443
            http_access allow CONNECT SSL_ports
            http_access deny CONNECT

            Purge是squid的专有方法,控制缓存,危险,设置:
            acl Purge method PURGE
            acl Localhost src 127.0.0.1
            http_access allow Purge Localhost #仅在本地使用
            http_access deny Purge

            vii.proto指URI访问(或传输)协议,常用http, https (same as HTTP/TLS),
            ftp,只允许http/https的配置:
            acl webproto proto HTTP HTTPS
            http_access deny !webproto
            cache_object是squid专有的控制缓存的协议,只能在本地用:
            acl Manager proto cache_object       
            acl Localhost src 127.0.0.1       
            http_access allow Manager Localhost
            http_access deny Manager
            注意,这要写在上面的http配置前边

            viii.maxconn ACL指来自客户IP地址的大量同时连接,可以配置为:
            acl OverConnLimit maxconn 4
            http_access deny OverConnLimit # maxconn
            ACL在请求超过指定的数量时,会匹配这个请求,所以用deny方式

            ix.包含外部文件:如果配置参数很多很长,可以使用外部文件,如:
            acl Foo BadClients "/usr/local/squid/etc/BadClients" #ip
地址要一行一个

            x.常用的访问控制规则:
            http_access allow/deny 允许/拒绝
            no_cache allow/deny不必存储某些响应,注意使用deny才表示“不缓存”
            miss_access列表主要用于squid的邻居cache。它决定squid怎样处理cache丢失的请求。如果squid使用集群技术,那么该功 能必需
            always_direct 请求匹配allow规则时,squid直接转发请求到原始服务器
            cache_peer_access 控制发送到邻居cache的HTTP请求和ICP/HTCP查询
            header_access
            配置squid从它转发的请求里删除某些HTTP头部。如,你也许想过滤掉发送到某些原始服务器的请求里的Cookie头部

            **注意:把最可能匹配的值放在列表开头处,能减少延时;少用正则表达式

顶(0)
踩(0)

您可能还会对下面的文章感兴趣:

最新评论