Ubuntu 12.04/14.04/18.04使用squid架设Http正向代理服务器

配置普通HTTP正向代理

安装

配置squid3

搜索此句

修改为

搜索此句(squid默认允许访问本地(localhost)服务,但建议禁止

修改为

启动/重启squid3

注意: squidhttp默认代理端口为3128

配置HTTPS正向代理(单向认证)

由于ubuntu 12.04/14.04/18.04默认安装的squid版本是不支持SSL的,因此只能重新编译支持SSL.

1.安装编译依赖

2.修改默认的编译选项,增加SSL支持
ubuntu 12.04

DEB_CONFIGURE_EXTRA_FLAGS字段中增加--enable-ssl

ubuntu 14.04/18.04

对于Ubuntu 14.04来说,除了要在DEB_CONFIGURE_EXTRA_FLAGS字段中增加--enable-ssl外,由于squid3-3.3.8默认去掉了对于NCSA的支持,而我们下面认证密码的配置是基于NCSA算法的,因此需要在DEB_CONFIGURE_EXTRA_FLAGS--enable-auth-basic字段中增加对于NCSA的支持,否则无法使用NCSA算法进行账号认证,修改后的样子如下:

注意,这样修改后squid3-3.3.8版本编译出来的在/usr/lib/squid3/下的ncsa_auth被重命名成了basic_ncsa_auth,因此配置文件中制定认证应用的时候要修改一下。

对于Ubuntu 18.04来说,这个参数不需要调整,默认支持NCSA

注意,如果需要禁用ipv6的支持,则增加--disable-ipv6选项,这个目前是唯一的可以彻底禁用ipv6代理访问的方式。这个需求的原因是由于配置问题,某些网站的ipv6地址存在,但是无法正常访问

3.配置编译
ubuntu 12.04

ubuntu 14.04

ubuntu 18.04

4.安装(编译后的文件存在在上层的squid_src目录下面)
ubuntu 12.04

ubuntu 14.04

ubuntu 18.04

5.验证安装后的版本是否支持SSL

如果看到enable-ssl输出,则说明编译成功。

6.生成自签名证书

7.移动服务器证书到squid3配置目录

8.配置squit3

搜索https_port,如果搜索到,则在搜索到的位置增加,搜索不到则在文件的最后增加

9.验证配置文件是否配置正确

10.启动/重启squid

11.安装stunnel,配置安装目录下的stunnel.conf,把原来的内容都删掉,粘贴下面的内容

12.设置浏览器代理服务器地址

7442F5AA-EF60-49C8-B7BB-97D750C72231

13.重新启动stunnel

注意,如果只支持Https协议,可以注释掉原来的 

配置Squid3用户名密码认证

1. 安装htpasswd(如果装了apache就省掉这一步)
(这个是用来产生密码的)

也可以

2.生成密码文件

会让你输入user1的密码
3.改一下权限,确保squid能够读出密码文件

4.修改squid.conf,增加或修改成下面的样子

对于ubuntu 12.04版本上编译出来的的Squid3-3.1.19,执行如下配置:

对于ubuntu 14.04版本上编译出来的的Squid3-3.3.8,由于验证程序的名字被修改成了basic_ncsa_auth,因此执行如下配置:

简单的修改可以在VIM中查询 "auth_param basic program /usr/lib/squid/ncsa_auth" 找到后修改一下即可.
然后搜索 "http_access allow all" 找到后替换为 "http_access allow ncsa_users"
在"http_access allow all" 上面就是acl控制部分,直接增加"acl ncsa_users proxy_auth REQUIRED"
如果配置文件是从Squid3-3.1.19升级到Squid3-3.3.8版本的,那么根据如下两个链接的描述:
http://wiki.squid-cache.org/SquidFaq/ConfiguringSquid
https://forums.gentoo.org/viewtopic-t-952948-start-0.html

这两个链接上的信息,从Squid3-3.2版本开始,原来配置文件中的acl控制信息已经不需要再从配置文件中读取了,这部分的功能已经集成进入应用内部了。
因此需要注释掉下面这几句话,否则无法正常启动Squid3.

5.重启squid3

限制单个用户的下载速度

squid3在默认编译的时候,已经包含了--enable-delay-pools选项,因此已经默认支持限速了,我们只需要设置限速配置就可以了。

在文件最后增加如下配置:

参数的具体解释请在squid.conf中搜索delay-pools查看。

重启squid3

参考链接


发布者