squid ACL 控制列表
一、ACL 控制列表的格式
acl 列表名称 列表选项 列表内容
允许访问列表写在拒绝之前
选项参数:
1.src 源地址/客户端 IP|网段 限制
acl qq src 192.168.10.1
http_access deny qq
2.dst 目标地址/服务器 IP|网段 限制
acl qq dst 192.168.2.5
http_access allow qq
3.dstdomain 对客户端访问域名的限制
客户端:
vim /etc/hosts
acl qq dstdomain www.http.com
http_access deny qq
4. port 对客户端访问的端口进行限制
acl qq port 80
http_access deny qq
5. time 对客户端的访问时间进行限制
此处时间指的是squid服务器的时间
S:周日 周一到周五:M-F
M:周一 一三五:MWF
T:周二
W:周三
H:周四
F:周五
A:周六
每周一到周五拒绝访问
acl qq time M-F 23:00-23:59
http_access deny qq
6.arp 对客户端的mac地址进行限制
acl qq arp 00:0c:29:ba:5c:e4
http_access deny qq
7.url_regex 通过正则比配客户端的URL进行限制
acl qq url_regex http
http_access deny qq
squid缓存
为squid指定缓存目录,将数据存放在硬盘当中。修改主配置文件生效
[root@localhost ~]# vim /etc/squid.conf
取消如下注释,系统自带的缓存的目录
62 cache_dir ufs /usr/local/squid/var/cache/squid 100 16 256
ufs 存储的格式
100 缓存目录的容量,默认单位MB
16 在当前目录下创建16个一级目录
256 在当面目录下创建256个二级目录
赋予权限,nobody用来完成特定的任务,相当于匿名用户
[root@localhost ~]# chown nobody:nobody /usr/local/squid/var/cache/squid/
重新创建缓存
[root@localhost ~]# squid -z
重启squid服务
[root@localhost ~]# systemctl restart squid
[root@localhost squid]# netstat -anpt | grep squid
首次缓存路径
/usr/local/squid/var/cache/squid/00/00
日志消息如下,重启之后可以从缓存目录中调取页面资源:
Date: Tue, 17 Mar 2020 10:03:47 GMT^M
Server: Apache/2.4.6 (CentOS)^M
Last-Modified: Mon, 16 Mar 2020 01:46:53 GMT^M
ETag: "1c-5a0eefe5262bf"^M
Accept-Ranges: bytes^M
Content-Length: 28^M
Keep-Alive: timeout=5, max=100^M
Connection: Keep-Alive^M
Content-Type: text/html; charset=UTF-8^M
^M
squid -httpd 192.168.10.56
缓存优化参数:
cache_mem 64 MB #给squid分配内存容量做缓存
maximum_object_size 4 MB #设置磁盘缓存单个数据的最大容量,超过4M的数据不缓存
minimum_object_size 0 KB #设置磁盘缓存单个数据最小最大
maximum_object_size_in_memory 1 MB #设置磁盘缓存单个数据最大大小
access_log /usr/local/squid/var/logs/access.log #设置访问日志路径
reply_body_max_size 102400 MB all #对用户下载文件大小进行限制
visible_hostname 192.168.2.3 #设置有效主机名,用于服务器出现问题时,给客户端反馈信息, IP地址是squid服务器的地址,与客户端相同网段的那个地址
visible_hostname 192.168.2.3 #设置有效主机名,用于服务器出现问题时,给客户端反馈信息,IP地址是squid服务器的地址,与客户端相同网段的那个地址