admin管理员组

文章数量:1516870

squid代理配置

这里写目录标题

  • 安装
    • centos环境
  • 配置
    • 配置文件说明
    • 重启服务
    • 解决squid只监听ipv6地址问题
    • 关闭sulinux,防火墙
    • squid实现访问控制
      • 根据时间控制
      • 没有限制
    • 客户端代理设置

安装

centos环境

squid在本地镜像里有,只需要配置好本地端yum源即可
yum -y install squid

配置

配置文件说明

[root@agent2 ~]# vim /etc/squid/squid.conf		简化的配置文件
[root@agent2 ~]# vim /usr/share/doc/squid-3.1.23/squid.conf.documented 	查看文档
//设置监听端IP和端口号
http_port 3128
//额外提供给squid使用端内存大小
cache_mem	256MB(默认大小)
//设置squid磁盘缓存最大文件,超过4M端文件不保存到磁盘
maximum_object_size 4MB
//设置squid磁盘缓存最小文件
minimum_object_size 0 KB
//设置squid内存缓存最大文件,超过4M不保存到内存
maximum_object_size_in_memory 4096 KB
//定义squid端cache存放路径、cache目录容量(单位M)、一级缓存目录数量、二级缓存目录数量
cache_dir ufs /var/spool/squid 100 16 256//log文件日志格式
#logformat combined %>a %ui %un [%tl] "%rm %ru HTTP/%rv" %>Hs %<st "%{Referer}>h" "%{User-Agent}>h" %Ss:%Sh
//log文件存放路径和日志格式
# access_log /var/log/squid/access.log squid
//设置缓存日志
cache_log /var/log/suqid/cache.log
//log轮转60天
logfile_rotate 60
//cache目录使用量大于95%时,开始清理旧的cache
cache_swap_high 95
//cache目录清理到90%时停止
cache_swap_low 90//定义本地网段
acl localnet src 192.168.1.0/24
//允许本地网段使用
http_access allow localnet
//拒绝所有
http_access deny all
//主机名
visible_hostname xxx.xxxx.xxxx//管理员邮箱
cache_mgr 123456@qq

重启服务

systemctl restart squid

解决squid只监听ipv6地址问题

netstat -tulnp | grep squid
tcp6       0      0 :::3128                 :::*                    LISTEN      12052/(squid-1)     
udp        0      0 0.0.0.0:52569           0.0.0.0:*                           12052/(squid-1)     
udp6       0      0 :::43207                :::*                                12052/(squid-1)     

怀疑是squid服务只监听ipv6的缘故

所以需要修改squid的配置文件

vim /etc/squid/squid.conf
将http_port行的3128改为0.0.0.0:3128后, 重启服务

即可实现squid监听ipv4地址

关闭sulinux,防火墙

[root@rexian-proxy ~]# systemctl start squid
[root@rexian-proxy ~]# getenforce
Disabled
[root@rexian-proxy ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemonLoaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)Active: active (running) since 五 2021-12-31 08:16:09 CST; 1min 31s agoDocs: man:firewalld(1)Main PID: 4531 (firewalld)CGroup: /system.slice/firewalld.service└─4531 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid12月 31 08:16:08 rexian-proxy systemd[1]: Starting firewalld - dynamic firewall daemon...
12月 31 08:16:09 rexian-proxy systemd[1]: Started firewalld - dynamic firewall daemon.
[root@rexian-proxy ~]# systemctl stop firewalld
[root@rexian-proxy ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@rexian-proxy ~]# systemctl start squid
[root@rexian-proxy ~]# systemctl stop squid
[root@rexian-proxy ~]#

squid实现访问控制

语法

src          源地址
dst              目标地址
port            目标地址
dstdomain       目标域
time            访问时间
maxconn       最大并发连接
url_regex         目标URL地址  # 可以定义大的范围比如
urlpath_regex  整个目标URL路径  # 可以定位到每个网站的具体目标的url,比如百度音乐的一首歌的url
1.禁止IP地址为192.168.0.100的客户机上网acl test src 192.168.0.100	//定义来源IP,test可以自己定义,代表定义端IPhttp_access deny test	//拒绝test后面定义端源IP :192.168.0.100上网
可以把要管理的IP写到一个文件里,然后在src后面跟上“文件路径”2.禁止192.168.1.0这个网段里端所有客户机上网acl test src 192.168.1.0/255.255.255.0或者acl test src 192.168.1.0/24http_access deny test3.禁止用户访问IP为210.21.118.68的网站acl test dst 210.21.118.68http_access deny test4.禁止用户访问域名为www.163的网站acl test dstdomain -i www.163	//-i 忽略大小写http_access deny test5.禁止用户访问域名包含有163的网站acl test url_regex -i 163	//使用正则表达式匹配URL地址http_access deny test6.禁止用户访问包含有sex关键字端URLacl test url_regex -i sexhttp_access deny test7.禁止用户访问多个网址acl test dstdom_regex "/etc/squid/baddaturl"//如果网址太多,可以写成一个文件,然后在这个文件里一行一个网站写上要http_access deny test8.vip用户没有任何限制acl vip arp 00:0c:29:79:0C:1A	//绑定mac地址http_access allow vip9.禁止192.168.2.0这个子网内所有客户机在周一到周五的9点到18点上网acl test1 src 192.168.2.0/255.255.255.0acl test2 time MTWHF 9:00-18:00		/S日/M一/T二/W三/H四/F五/A六/D(周一到周五)http_access deny test1 test2hwclock --hctosys	还原时间命令10.禁止用户下载*.mp3,*.exe,*.zip,*.rar带有定义后缀名的文件acl test urlpath_regex -i \.mp3$ \.exe$ \.zip$ \.rar$ \.txt$//urlpath_regex	正则表达式匹配URL地址http_access deny test注意:设置acl访问控制规则的时候,有先后顺序。第一条规则匹配上就不再继续往下,所以先把拒绝写在前面
11. 允许访问所有目的域名,注释掉本行即可 #拒绝非配对域名的访问# http_access deny !d-domains

根据时间控制

没有限制

定义制定的目标域名

加载规则,位置很重要

客户端代理设置

win10系统

本文标签: squid代理配置