在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
sudo yum update

执行过程可能会卡死,但是只要确认连接没断开,多等等就好了。

2.安装openssl

这个是Squid在使用ssl加密时用的。

要判断是否已经安装了OpenSSL,你可以在终端中运行以下命令:

1
openssl version

如果系统中已经安装了OpenSSL,这个命令会显示OpenSSL的版本信息。如果系统没有安装OpenSSL,你将会看到一个类似“command not found”的错误提示。

没有安装的话输入以下代码等待完成即可

1
sudo yum install openssl
3.安装net-tools

Net-tools是一个Linux网络工具集,包含了一些常用的网络工具命令,Squid在运行过程中可能会用到。

这个没判断是否安装指令,直接执行安装吧。

1
sudo yum install net-tools
4.安装Squid

执行以下代码安装Squid,如果有输入确认输入y就行

1
sudo yum install squid

Squid常用指令:

启动Squid服务:

1
sudo systemctl start squid

停止Squid服务:

1
sudo systemctl stop squid

重启Squid服务:

1
sudo systemctl restart squid

二.修改Squid配置:

Squid代理服务器的配置文件通常位于**/etc/squid/squid.conf**路径下。你可以使用文本编辑器(如vi或nano)来编辑这个配置文件,以配置Squid代理服务器的行为。编辑完成后,记得保存更改并重启Squid服务使配置生效。

我由于是在用来建站的服务器搭建的Squid,所以使用宝塔自带的文件编辑器。
请按下图片修改
Squid配置修改图

便捷复制:

1
http_access allow all

修改后执行“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:/var/lib/squid

在 /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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
dns:
enable: true
ipv6: false
default-nameserver: [1.1.1.1, 8.8.8.8]
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
proxies:
- name: "Squid_代理服务器名称"
type: http
server: 服务器IP
port: 端口

proxy-groups:
- name: "任意名称"
type: select
proxies:
- "Squid_代理服务器名称"

rules:

完结撒花!

 

注:以上内容仅供学习交流使用,禁止用于非法目的。请自觉遵守法律规定。本网站所有内容仅限于学习交流和娱乐,任何非法用途均由使用者个人承担责任。

鸣心/Write

在Centos上搭建Squid-HTTP代理
https://b.wihi.top/posts/ccefcc9b.html
作者
鸣心
发布于
2024年3月16日
许可协议
本站全部文章除在文章开头特别声明外,均采用:BY-NC许可协议。转载请标明出处!