[玩转系统] 如何在 Linux 上安装和配置 Squid 代理服务器
作者:精品下载站 日期:2024-12-14 23:36:14 浏览:14 分类:玩电脑
如何在 Linux 上安装和配置 Squid 代理服务器
Squid可能是最知名和最流行的开源缓存代理服务器。 Squid代理服务器支持很多缓存协议(ICP、HTCP、CARP、WCCP),并允许代理HTTP、HTTPS、FTP等流量。 Squid 易于扩展,您可以使用它来过滤内容或限制每个用户或站点的带宽,它支持用户身份验证(包括 Active Directory LDAP 身份验证)。在本文中,我们将展示如何在 Linux 上安装 Squid 代理服务器。
在 Linux 上安装 Squid 代理服务器
使用包管理器在主机上安装 Squid 包。根据您的 Linux 版本,使用以下命令之一:
Oracle、Rocky Linux、CentOS、Fedora 或 Red Hat Enterprise Linux:
# dnf install -y squid
SUSE Linux 企业服务器:
# zypper install squid
Ubuntu 或 Debian:
# apt-get install squid
如果你想在 Squid 中实现用户身份验证,请再安装一个包:
RHEL/CentOS/Fedora:
# dnf -y install httpd-tools
Debian/Ubuntu:
# sudo apt install apache2-utils
使用 systemd 在 Linux 中启用 Squid,运行服务并检查其状态:
# systemctl enable squid
# systemctl start squid
# systemctl status squid
要列出所有选项,squid 是用以下命令构建的:
# squid -v
Squid Cache: Version 4.15
Service Name: squid
This binary uses OpenSSL 1.1.1k FIPS 25 Mar 2021. For legal restrictions on distribution see https://www.openssl.org/source/license.html
configure options: '--build=x86_64-redhat-linux-gnu' '--host=x86_64-redhat-linux-gnu' '--program-prefix=' '--prefix=/usr' '--exec-prefix=/usr' '--bindir=/usr/bin' '--sbindir=/usr/sbin' '--sysconfdir=/etc' '--datadir=/usr/share' '--includedir=/usr/include' '--libdir=/usr/lib64' '--libexecdir=/usr/libexec' '--localstatedir=/var' '--sharedstatedir=/var/lib' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--libexecdir=/usr/lib64/squid' '--datadir=/usr/share/squid' '--sysconfdir=/etc/squid' '--with-logdir=/var/log/squid' '--with-pidfile=/var/run/squid.pid' '--disable-dependency-tracking' '--enable-eui' '--enable-follow-x-forwarded-for' '--enable-auth' '--enable-auth-basic=DB,fake,getpwnam,LDAP,NCSA,PAM,POP3,RADIUS,SASL,SMB,SMB_LM' '--enable-auth-ntlm=SMB_LM,fake' '--enable-auth-digest=file,LDAP' '--enable-auth-negotiate=kerberos' '--enable-external-acl-helpers=LDAP_group,time_quota,session,unix_group,wbinfo_group,kerberos_ldap_group' '--enable-storeid-rewrite-helpers=file' '--enable-cache-digests' '--enable-cachemgr-hostname=localhost' '--enable-delay-pools' '--enable-epoll' '--enable-icap-client' '--enable-ident-lookups' '--enable-linux-netfilter' '--enable-removal-policies=heap,lru' '--enable-snmp' '--enable-ssl' '--enable-ssl-crtd' '--enable-storeio=aufs,diskd,ufs,rock' '--enable-diskio' '--enable-wccpv2' '--enable-esi' '--enable-ecap' '--with-aio' '--with-default-user=squid' '--with-dl' '--with-openssl' '--with-pthreads' '--disable-arch-native' '--disable-security-cert-validators' '--with-swapdir=/var/spool/squid' 'build_alias=x86_64-redhat-linux-gnu' 'host_alias=x86_64-redhat-linux-gnu' 'CFLAGS=-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' 'LDFLAGS=-Wl,-z,relro -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld' 'CXXFLAGS=-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' 'PKG_CONFIG_PATH=:/usr/lib64/pkgconfig:/usr/share/pkgconfig'
配置 Squid 缓存代理服务器
默认情况下,squid 使用的是/etc/squid/squid.conf 配置文件。
在编辑原始配置文件之前,请将其复制并设为只读。
$ sudo cp /etc/squid/squid.conf /etc/squid/squid.conf.original
$ sudo chmod a-w /etc/squid/squid.conf.original
您可以稍后返回到原始配置文件或将其用作指令参考。
编辑squid配置文件:
$ sudo mcedit /etc/squid/squid.conf
在 Squid 配置文件的开头,指定了一个访问控制列表,该列表定义了允许连接到代理服务器的客户端的 IP 地址(子网)。
例如,您希望仅允许来自本地网络的客户端进行访问。添加以下指令:
acl localnet src 192.168.50.0/24
您可以评论其他 acl localnet 行。
允许访问该网络的指令在配置文件中设置如下:
http_access allow localnet
默认情况下,Squid 接受端口 TCP/3128 上的用户连接。您可以更改http_port中的端口号。我将squid监听端口改为4555:
http_port 4555
如果要使用代理服务器进行缓存,请配置缓存目录:
cache_dir ufs /var/spool/squid 5120 32 256
20480
- 是以 MB 为单位的缓存大小
32
- 是缓存的一级目录数,
256
是二级目录
要在磁盘上为鱿鱼缓存创建文件夹结构,请运行以下命令:
$ squid -z
为了对鱿鱼中的用户进行身份验证,我们将使用简单的基本身份验证。首先,创建一个文件来存储用户名和密码:
$ sudo touch /etc/squid/passwd && sudo chown squid /etc/squid/passwd
要将新用户添加到文件中,请运行以下命令:
$ sudo htpasswd -c /etc/squid/passwd username1
添加下一个用户时,不需要使用 -c 选项。
然后将以下行添加到squid.conf 文件的开头:
# use basic auth and password file
auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwd
# the number of concurrent connections
auth_param basic children 5
auth_param basic realm Squid Basic Authentication
# session length without re-entering login and password
auth_param basic credentialsttl 8 hours
auth_param basic casesensitive off
acl auth_users proxy_auth REQUIRED
http_access allow auth_users
不同的 Linux 发行版可能有不同的 basic_ncsa_auth 文件路径:
/usr/lib64/squid/basic_ncsa_auth(Oracle、Rocky Linux、RHEL、CentOS)
/usr/lib/squid/basic_ncsa_auth(Debian、Ubuntu、Kali Linux)
您可以使用 basic auth 包实现 AD 身份验证:
auth_param basic program /usr/lib64/squid/basic_ldap_auth -R -b "dc=a-d,dc=com" -D "[email protected] " -w "<user password>" -f "sAMAccountName=%s" <AD domain controller IP address>
基本身份验证的缺点是密码以 Base64 加密文本形式传输(很容易解密,请参阅使用 telnet 和 SMTP 身份验证发送电子邮件一文中的示例)。因此,在 Squid 中使用 Kerberos Active Directory 身份验证更加安全。如果您没有 AD,您可以在 Squid 中配置 HTTP Digest 身份验证。但这超出了本文的范围。
允许和拒绝规则是使用鱿鱼配置文件末尾的http_access指令设置的。例如,仅允许经过身份验证的用户访问:
http_access allow localhost
http_access allow authenticated
http_access deny all
Squid 允许您阻止特定网站。创建一个包含禁止站点列表的文件:
$ sudo vi /etc/squid/blocked_sites
添加您要拒绝访问的网站列表:
facebook.com
twitter.com
instagram.com
然后将以下行添加到鱿鱼配置文件中:
acl blocked_sites dstdomain "/etc/squid/blocked_sites"
http_access deny blocked_sites
更改鱿鱼配置文件后,检查它是否有语法错误:
$ sudo squid -k parse
如果没有错误,您可以应用新的鱿鱼配置选项(不需要重新启动守护进程):
$ sudo squid -k reconfigure
允许连接到防火墙中的代理服务器端口(在我们的示例中为 TCP 4555)。如果您使用的是firewalld,请添加允许规则,如下所示:
# firewall-cmd --zone=public --add-port=4555/tcp
# firewall-cmd --reload
如果您的 Linux 服务器由外部提供商(AWS、Azure、Oracle Cloud 等)托管,请记住将端口 TCP/4555 的允许规则添加到相应的安全组。
检查 Squid 是否正在侦听 http_port 指令中指定的端口:
$ netstat -tulnp
使用curl,您可以检查squid代理服务器的可用性:
$ curl -x http://xx.xx.xx.xx:4555 -L http://google.com
如果
authentication required/ Access Denied
出现错误,提交用户名和密码来访问squid:
$ curl -x http://xx.xx.xx.xx:4555 --proxy-user proxyuser1:NDMk23C3jvm -I http://google.com
要实时检查squid日志,请使用以下命令:
$ sudo tail -f /var/log/squid/access.log
如果您的浏览器显示错误:
The proxy server is refusing connections
并且有
TCP_DENIED/403 4041 CONNECT
access.log 中的行,检查您的 ACL。
如果用户已成功通过身份验证,squid 日志将包含以下行
TCP_TUNNEL/200 39 CONNECT a-d.site:80 proxyusername HIER_DIRECT/xx.xx.xx.xx
或者
TCP_MISS/200
.
仍然需要在用户计算机上的浏览器中设置代理服务器设置。在浏览器设置中设置 Squid 主机的 IP 地址(名称)和端口。您可以通过 GPO 在 Windows 计算机上配置代理设置。
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[短剧合集] 2025年06月2日 精选+付费短剧推荐39部
[软件合集] 25年6月2日 精选软件18个
[软件合集] 25年6月1日 精选软件15个
[短剧合集] 2025年06月1日 精选+付费短剧推荐59部
[短剧] 2025年05月31日 精选+付费短剧推荐58部
[软件合集] 25年5月31日 精选软件66个
[电影] 黄沙漫天(2025) 4K.EDRMAX.杜比全景声 / 4K杜比视界/杜比全景声
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[美图] 2W美女个美女小姐姐,饱眼福
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag