0x00 废话前言

先说说最近为什么要搞这个玩意,那是因为长城宽带是越来越垃圾了,但是没办法啊,没钱只能用长城宽带了,因为真的是便宜,真香~便宜就是YYDS,知道昨天晚上原本想看个Apple的春季发布会的,但是这破网络竟然打不开苹果的官网,最后就想出来用代理这个方式了,但实质上代理并不是只有这种用处的,而且挂了代理之后发现访问的速度也变快了许多,现在让我们回顾一下Squid代理这个东西

0x01 Squid是啥玩意

Squid是一种用来缓冲Internet数据的软件。它是这样实现其功能的,接受来自人们需要下载的目标(object)的请求并适当地处理这些请求。也就是说,如果一个人想下载一web页面,他请求Squid为他取得这个页面。Squid随之连接到远程服务器(比如:http://squid.nlanr.net/)并向这个页面发出请求。然后,Squid显式地聚集数据到客户端机器,而且同时复制一份。当下一次有人需要同一页面时,Squid可以简单地从磁盘中读到它,那样数据迅即就会传输到客户机上。当前的Squid可以处理HTTP,FTP,GOPHER,SSL和WAIS等协议。但它不能处理如POP,NNTP,RealAudio以及其它类型的东西。

Squid运行在什么系统上?
Squid可运行在大多数Unix和OS/2版本的系统之上,已知的可工作的有:Windows,AIX,Digital Unix,FreeBSD,HP-UX,Irix,Linux,NetBSD,Nextstep,SCO,Solaris

0x02 食用处方

这里就不多做演示了,直接yum安装

#yum安装
[root@cn-sz ~]# yum -y install squid
#编辑配置文件
[root@cn-sz ~]# vim /etc/squid/squid.conf
http_port 3128
http_access allow all
coredump_dir /var/spool/squid
#修改好之后启动服务
[root@cn-sz ~]# systemctl start squid

squid添加用户名密码认证,不加这个人人能用,所以为了部落,为了联盟,还是搞一搞吧,squid的认证方式有好几种,但这里用的是NCSA,使用NCSA样式的用户名和密码文件,其他的还有LDAP、MSNT、MSNT、SMB、getpwam、SASL、NTLM这几种有兴趣的话可以自行百度了解一下


#确定squid是否支持authentication helper
[root@cn-sz ~]# rpm -ql squid | grep ncsa_auth
/usr/lib64/squid/basic_ncsa_auth
/usr/share/man/man8/basic_ncsa_auth.8.gz
#生成密码文件(要在在装有apache的机器上运行)
[root@cn-sz ~]# htpasswd -c /etc/squid/passwd auth_user
New password:
Re-type new password:
#编辑配置文件,追加以下内容
[root@cn-sz ~]# vim /etc/squid/squid.conf
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/passwd
auth_param basic children 15
auth_param basic credentialsttl 2 hours
auth_param basic realm Example.com's Squid proxy-caching
acl auth_user proxy_auth REQUIRED
http_access allow auth_user
#重新加载服务
[root@cn-sz ~]# systemctl reload squid
注释:
第一行:选择的认证方式为basic,认证程序路径和密码文件路径。
第二行:认证程序的进程数
第三行:认证有效时间
第四行:认证领域内容,上面定义的web浏览需要输入用户密码
第五,六行:设置允许认证的用户访问

进阶:Squid的日志分析工具SquidAnalyzer

#先安装http服务
[root@cn-sz ~]# yum install httpd
#安装完后把默认的80端口改成8080,因为代理里也设置了这个端口作为代理端口
[root@cn-sz ~]# vim /etc/httpd/conf/httpd.conf
Listen 8080
#下载squidanalyzer文件
[root@cn-sz ~]# wget https://resource.if010.com/tmp/squidanalyzer-6.0.tar.gz
#解压squidanalyzer
[root@cn-sz ~]# tar zxvf squidanalyzer-6.0.tar.gz
[root@cn-sz ~]# cd squidanalyzer-6.0
#编辑安装的perl文件,更改squid的log默认所在目录,并更改squidanalyzer的分析生成文件html目录如下
[root@cn-sz ~]# vim Makefile.PL
my $default_log = '/var/log/squid/access.log';
my $HTMLDIR = $ENV{HTMLDIR} || '/var/www/html/squidreport';
#更改完后,Makefile.PL直接安装
[root@cn-sz ~]# perl Makefile.PL
#若在安装时提示出错,可能是少了perl的模块,直接使用yum安装
[root@cn-sz ~]# yum -y install make automake gcc gcc-c++ gcc-g77 perl-ExtUtils-MakeMaker
#安装成功后使用以下命令直接启动squid-analyzer
[root@cn-sz ~]# /usr/local/bin/squid-analyzer
#添加定时任务为每天0点0分使用squidanalyzer进行日志分析
[root@cn-sz ~]# crontab -e root
0 0 * * * /usr/local/bin/squid-analyzer > /dev/null 2>&1

访问时直接输入IP加刚才修改的端口号加squidreport访问http://localhost:8080/squidreport
效果图

Last modification:April 26, 2022
-