在Centos上搭建Squid-HTTP代理
记一次Squid-HTTP代理搭建经历
Last time:2024/5/26
最近访问github等站慢的离谱,打算搭建个squid提提速,centos7.x默认的squid版本为3.5,centos8.x默认的是4.1.5,不建议编译安装,因为很麻烦
Squid是一个HTTP代理软件,不是用来绕过GFW用的所以谷歌等被墙的网站使用Squid是无法访问的,请不要尝试使用Squid绕过GFW拦截!
一.配置环境&安装:
1.升级系统软件包
这个步骤非常非常重要,不然后期安全的依赖服务会有漏洞/部分方法无法连接问题
执行以下代理升级系统软件包到最新,如有输入确认翻译一下按情况输入就行
1 |
|
执行过程可能会卡死,但是只要确认连接没断开,多等等就好了。
2.安装openssl
这个是Squid在使用ssl加密时用的。
要判断是否已经安装了OpenSSL,你可以在终端中运行以下命令:
1 |
|
如果系统中已经安装了OpenSSL,这个命令会显示OpenSSL的版本信息。如果系统没有安装OpenSSL,你将会看到一个类似“command not found”的错误提示。
没有安装的话输入以下代码等待完成即可
1 |
|
3.安装net-tools
Net-tools是一个Linux网络工具集,包含了一些常用的网络工具命令,Squid在运行过程中可能会用到。
这个没判断是否安装指令,直接执行安装吧。
1 |
|
4.安装Squid
执行以下代码安装Squid,如果有输入确认输入y就行
1 |
|
Squid常用指令:
启动Squid服务:
1 |
|
停止Squid服务:
1 |
|
重启Squid服务:
1 |
|
二.修改Squid配置:
Squid代理服务器的配置文件通常位于**/etc/squid/squid.conf**路径下。你可以使用文本编辑器(如vi或nano)来编辑这个配置文件,以配置Squid代理服务器的行为。编辑完成后,记得保存更改并重启Squid服务使配置生效。
我由于是在用来建站的服务器搭建的Squid,所以使用宝塔自带的文件编辑器。
请按下图片修改
便捷复制:
1 |
|
修改后执行“sudo systemctl restart squid”重启Squid,如果执行代码后无任何提示则说明配置没问题,如果有提示则说明配置有错误内容,请自行排查,这里不再赘述。
配置ssl加密(非必选)
要在 Squid 服务中配置 SSL Bumping:
1. 配置证书&密钥:
请确保所用的 Squid 服务支持必需的选项。为此,请执行命令:
squid -v
配置选项参数必须包含 --enable-ssl-crtd and --with-openssl 值。
把 PEM 格式的 SSL 证书复制到文件 /etc/squid/bump.crt 中。
把 PEM 格式的私钥复制到文件 /etc/squid/bump.key 中。
为 Diffie-Hellman 算法生成设置文件。为此,请执行命令:
openssl dhparam -outform PEM -out /etc/squid/bump_dhparam.pem 2048
配置 SSL 证书文件使用权限。为此,请根据所使用的操作系统运行以下命令:
CentOS, Red Hat Enterprise Linux 或 SUSE Linux Enterprise Server:
chown squid:squid /etc/squid/bump*
chmod 400 /etc/squid/bump*
Ubuntu、Debian 或 ALT Server:
chown proxy:proxy /etc/squid/bump*
chmod 400 /etc/squid/bump*
2. 分版本进行设置:
确定您的服务器上使用的 Squid 服务的版本。为此,请执行命令:
squid -v
利用版本的信息显示为格式 Squid Cache: 版本
如果 Squid 服务正在运行,将其停止。
** 如果正在使用版本 3.5.х 的 Squid 服务**
为证书数据库创建目录然后初始化数据库。为此,请根据所使用的操作系统运行以下命令:
CentOS 或 Red Hat Enterprise Linux:
mkdir -p /var/lib/squid
rm -rf /var/lib/squid/ssl_db
/usr/lib64/squid/ssl_crtd -c -s /var/lib/squid/ssl_db
chown -R squid:squid /var/lib/squid
SUSE Linux Enterprise Server:
mkdir -p /var/lib/squid
rm -rf /var/lib/squid/ssl_db
/usr/sbin/ssl_crtd -c -s /var/lib/squid/ssl_db
chown -R squid:squid /var/lib/squid
Ubuntu 或 Debian:
mkdir -p /var/lib/squid
rm -rf /var/lib/squid/ssl_db
/usr/lib/squid/ssl_crtd -c -s /var/lib/squid/ssl_db
chown -R proxy:proxy:
在 /etc/squid/squid.conf 配置文件中进行以下更改:
在文件末尾,根据利用的操作系统添加以下指令:
CentOS 或 Red Hat Enterprise Linux:
sslcrtd_program /usr/lib64/squid/ssl_crtd -s /var/lib/squid/ssl_db -M 20MB
sslproxy_cert_error allow all
ssl_bump stare all
SUSE Linux Enterprise Server:
sslcrtd_program /usr/sbin/ssl_crtd -s /var/lib/squid/ssl_db -M 20MB
sslproxy_cert_error allow all
ssl_bump stare all
Ubuntu 或 Debian:
sslcrtd_program /usr/lib/squid/ssl_crtd -s /var/lib/squid/ssl_db -M 20MB
sslproxy_cert_error allow all
ssl_bump stare all
用以下内容替换 http_port 指令:
http_port 3128 tcpkeepalive=60,30,3 ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=20MB cert=/etc/squid/bump.crt key=/etc/squid/bump.key cipher=HIGH:MEDIUM:!LOW:!RC4:!SEED:!IDEA:!3DES:!MD5:!EXP:!PSK:!DSS options=NO_TLSv1,NO_SSLv3,NO_SSLv2,SINGLE_DH_USE,SINGLE_ECDH_USE tls-dh=prime256v1:/etc/squid/bump_dhparam.pem
如果正在使用版本 4.х 的 Squid 服务:
为证书数据库创建目录然后初始化数据库。为此,请根据所使用的操作系统运行以下命令:
CentOS 或 Red Hat Enterprise Linux:
mkdir -p /var/lib/squid
rm -rf /var/lib/squid/ssl_db
/usr/lib64/squid/security_file_certgen -c -s /var/lib/squid/ssl_db -M 20MB
chown -R squid:squid /var/lib/squid
SUSE Linux Enterprise Server:
mkdir -p /var/lib/squid
rm -rf /var/lib/squid/ssl_db
/usr/sbin/security_file_certgen -c -s /var/lib/squid/ssl_db -M 20MB
chown -R squid:squid /var/lib/squid
Ubuntu、Debian 或 ALT Server:
mkdir -p /var/lib/squid
rm -rf /var/lib/squid/ssl_db
/usr/lib/squid/security_file_certgen -c -s /var/lib/squid/ssl_db -M 20MB
chown -R proxy:proxy /var/lib/squid
在 /etc/squid/squid.conf 配置文件中进行以下更改:
将以下指令添加到文件开始或第一个 http_access 指令前:
acl intermediate_fetching transaction_initiator certificate-fetching
http_access allow intermediate_fetching
根据利用的操作系统将以下指令添加到文件末尾:
CentOS 或 Red Hat Enterprise Linux:
sslcrtd_program /usr/lib64/squid/security_file_certgen -s /var/lib/squid/ssl_db -M 20MB
sslproxy_cert_error allow all
ssl_bump stare all
SUSE Linux Enterprise Server:
sslcrtd_program /usr/sbin/security_file_certgen -s /var/lib/squid/ssl_db -M 20MB
sslproxy_cert_error allow all
ssl_bump stare all
Ubuntu、Debian 或 ALT Server:
sslcrtd_program /usr/lib/squid/security_file_certgen -s /var/lib/squid/ssl_db -M 20MB
sslproxy_cert_error allow all
ssl_bump stare all
用以下内容替换 http_port 指令:
http_port 3128 tcpkeepalive=60,30,3 ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=20MB tls-cert=/etc/squid/bump.crt tls-key=/etc/squid/bump.key cipher=HIGH:MEDIUM:!LOW:!RC4:!SEED:!IDEA:!3DES:!MD5:!EXP:!PSK:!DSS options=NO_TLSv1,NO_SSLv3,SINGLE_DH_USE,SINGLE_ECDH_USE tls-dh=prime256v1:/etc/squid/bump_dhparam.pem
3.
重启 Squid 服务。
配置 Squid 服务中的 SSL Bumping 将完成。
Squid设置密码暂时没搞明白,等搞明白了再写,所以请修改自定义端口并且设置端口白名单放行IP,这里不再赘述。
三.使用Clahs连接Squid代理服务器:
因为发现WLWN设置连接Squid代理服务器是全局的,太麻烦了,于是经过一段时间研究,惊讶的发现可以通过Clash连接,于是附上教程。
1 |
|
完结撒花!
注:以上内容仅供学习交流使用,禁止用于非法目的。请自觉遵守法律规定。本网站所有内容仅限于学习交流和娱乐,任何非法用途均由使用者个人承担责任。