Squid 代理服务器
1.ACL访问控制
在配置文件 squid.conf 中,ACL 访问控制通过以下两个步骤来实现:
- 使用 acl 配置项定义需要控制的条件;
- 通过 http_access 配置项对已定义的列表做“允许”或“拒绝”访问的控制。
1.1 访问控制列表格式
格式:acl 列表名称 列表类型 列表内容 …
列表类型 | 定义的列表内容 |
---|---|
src | 源地址 |
dst | 目标地址 |
maxconn | 最大并发连接 |
port | 目标地址 |
dstdomain | 目标域 |
url_regex | 匹配请求URL的任何部分 |
urlpath_regex | 与url_regex非常相似(不包含传输协议和主机名) |
time | 访问时间 |
例如:
vim /etc/squid.conf
......
acl localhost src 192.168.148.12/32 #源地址为 192.168.148.13
acl MYLAN src 192.168.148.0/24 #客户机网段
acl destionhost dst 192.168.148.13/32 #目标地址为 192.168.148.13
acl MC20 maxconn 20 #最大并发连接 20
acl PORT port 21 #目标端口 21
acl DMBLOCK dstdomain .qq.com #目标域,匹配域内所有站点
acl BURL url_regex -i ^rtsp:// ^emule:// #以 rtsp://、emule:// 开头的 URL,-i表示忽略大小写
acl PURL urlpath_regex -i \.mp3$ \.mp4$ \.rmvb$ #以 .mp3、.mp4、.rmvb 结尾的 URL 路径
acl WORKTIME time MTWHF 09:00-18:00 #时间为周一至周五 9:00~18:00,“MTWHF”为每个星期的英文首字母
1.2 测试部署
环境配置(直接使用之前实验的实例即可)
主机 | 操作系统 | IP地址 | 软件、安装包、工具 |
---|---|---|---|
Squid-Server | CentOS7 | ens33:192.168.148.12 ens36:12.0.0.1 | squid-3.5.28.tar.gz |
Web-Server | CentOS7 | 192.168.148.13 | httpd |
客户机 | Windows10 | 192.168.163.100 |
客户机 Windows10 12.0.0.12
Squid-Server(192.168.148.12)
vim /etc/squid.conf
......
acl localhost src 12.0.0.12/24
acl mylan src 12.0.0.0/24
......
http_access <