原文链接:统信UOS搭建Squid代理服务器
hello,大家好啊!今天我要给大家介绍的是在统信UOS服务器操作系统1060e上部署搭建Squid代理服务器的详细步骤。Squid是一款广泛使用的代理服务器软件,它可以帮助企业或个人高效地管理网络流量,提高访问速度,并增强网络安全。通过使用htpasswd进行用户密码认证,我们可以确保只有授权的用户才能使用代理服务。本次实验将在统信UOS服务器操作系统1060e上进行,旨在搭建一个安全、高效的Squid代理服务器。让我们开始吧!
实验环境
- 服务器信息:
- 操作系统:x86 统信UOS服务器操作系统1060e
- IP1(用于访问互联网):192.168.80.132/24
- 网关:192.168.80.254
- IP2(用于内网访问):172.16.0.2/24
- 网关:172.16.0.254
- 终端信息:
- 操作系统:x86 统信UOS桌面专业版操作系统1060
- IP(用于内网访问):172.16.0.133/24
- 网关:172.16.0.254
实验目的
在服务器上搭建Squid代理服务器,使终端能够通过配置服务器的代理IP及端口号,安全地访问互联网信息。
实验步骤
- 搭建Squid代理服务器:
- 安装Squid:在服务器上打开终端,输入以下命令安装Squid代理服务器:
- 配置Squid:编辑Squid的配置文件/etc/squid/squid.conf,设置允许的访问控制列表(ACL)和代理规则。
- 创建用户名密码认证文件:
- 安装httpd-tools
- 使用htpasswd创建认证文件:sudo htpasswd -c /etc/squid/passwd 用户名
- 在Squid配置文件中引用这个认证文件,并设置需要认证的ACL规则。
- 在终端配置系统代理及应用代理:
- 在终端的网络设置中,配置代理服务器的IP地址和端口号。
- 尝试访问互联网,系统应提示输入用户名和密码。
- 测试代理是否生效:
- 使用浏览器或其他工具测试是否能够通过代理服务器访问互联网。
- 检查Squid的访问日志,确认代理服务正常工作。
注意事项
- 在进行任何配置更改之前,请确保备份原始配置文件。
- 确保服务器的防火墙和路由设置允许代理流量通过。
- 定期检查和更新Squid及其依赖包,以确保安全性和稳定性。
1.查看系统信息
[root@pdsyw ~]# cat /etc/os-version
[Version]
SystemName=UOS Server
SystemName[zh_CN]=统信服务器操作系统
ProductType=Server
ProductType[zh_CN]=服务器
EditionName=e
EditionName[zh_CN]=e
MajorVersion=20
MinorVersion=1060
OsBuild=12038.101.100
[root@pdsyw ~]#
[root@pdsyw ~]# uname -a
Linux pdsyw 4.19.90-2305.1.0.0199.56.uel20.x86_64 #1 SMP Fri May 12 19:23:49 CST 2023 x86_64 x86_64 x86_64 GNU/Linux
[root@pdsyw ~]#
2.安装 squid
[root@pdsyw ~]# yum install squid -y
Last metadata expiration check: 0:02:04 ago on 2024年01月04日 星期四 19时24分51秒.
Dependencies resolved.
==========================================================================
Package Arch Version Repository Size
==========================================================================
Installing:
squid x86_64 7:4.9-16.uel20 UnionTechOS-Server-20-everything 3.3 M
Installing dependencies:
libecap x86_64 1.0.1-4.uel20 UnionTechOS-Server-20-everything 21 k
Transaction Summary
==========================================================================
Install 2 Packages
Total download size: 3.3 M
Installed size: 11 M
Downloading Packages:
(1/2): libecap-1.0.1-4.uel20.x86_64.rpm 107 kB/s | 21 kB 00:00
(2/2): squid-4.9-16.uel20.x86_64.rpm 746 kB/s | 3.3 MB 00:04
--------------------------------------------------------------------------
Total 750 kB/s | 3.3 MB 00:04
UnionTechOS-Server-20-1060-everything 19 kB/s | 1.7 kB 00:00
Importing GPG key 0x8DF595ED:
Userid : "UnionTech <[email protected]>"
Fingerprint: C822 503F 2F4C E25A 6EA0 65BE 9055 A64E 8DF5 95ED
From : https://euler-packages.chinauos.com/server-euler//fuyu/1060/everything/x86_64/RPM-GPG-KEY-UnionTech
Key imported successfully
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : libecap-1.0.1-4.uel20.x86_64 1/2
Running scriptlet: libecap-1.0.1-4.uel20.x86_64 1/2
Running scriptlet: squid-7:4.9-16.uel20.x86_64 2/2
Installing : squid-7:4.9-16.uel20.x86_64 2/2
Running scriptlet: squid-7:4.9-16.uel20.x86_64 2/2
Verifying : libecap-1.0.1-4.uel20.x86_64 1/2
Verifying : squid-7:4.9-16.uel20.x86_64 2/2
Installed:
libecap-1.0.1-4.uel20.x86_64 squid-7:4.9-16.uel20.x86_64
Complete!
[root@pdsyw ~]#
3.编辑squid.conf配置文件
1)在进行更改之前,备份原始的Squid配置文件
2)确保在任何http_access deny all规则之前添加http_access allow authenticated。
[root@pdsyw ~]# cp /etc/squid/squid.conf /etc/squid/squid.conf.backup
[root@pdsyw ~]#
[root@pdsyw ~]# vi /etc/squid/squid.conf
[root@pdsyw ~]#
[root@pdsyw ~]# cat /etc/squid/squid.conf
#指定Squid监听的内网接口和端口(默认3128)
http_port 172.16.0.2:3128
#定义ACL:设置允许公司内网访问的规则
acl localnet src 172.16.0.0/24 # 你的公司内网IP段
#添加认证配置,如不需要可以注释,并且可以选择更加安全的认证方式,这里只做最基本但不安全的演示
auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwords
auth_param basic realm proxy
acl authenticated proxy_auth REQUIRED
http_access allow authenticated
#设置访问权限:允许定义的内网访问
http_access allow localnet
#配置基本安全规则:拒绝所有其他访问
http_access deny all
# 设置缓存目录和大小 (这里设置为10000 MB)
cache_dir ufs /var/spool/squid 10000 16 256
# 指定访问日志文件位置
access_log /var/log/squid/access.log squid
4.安装Apache工具(包含htpasswd)
htpasswd是Apache服务器的一部分,用于创建和更新经过哈希处理的密码文件。
[root@pdsyw ~]# yum install httpd-tools -y
Last metadata expiration check: 0:41:09 ago on 2024年01月04日 星期四 19时24分51秒.
Dependencies resolved.
==========================================================================
Package Arch Version Repository Size
==========================================================================
Installing:
httpd-tools x86_64 2.4.43-23.up1.uel20
UnionTechOS-Server-20-everything 68 k
Installing dependencies:
apr x86_64 1.7.0-5.uel20 UnionTechOS-Server-20-everything 108 k
apr-util x86_64 1.6.1-15.uel20 UnionTechOS-Server-20-everything 108 k
Transaction Summary
==========================================================================
Install 3 Packages
Total download size: 284 k
Installed size: 763 k
Downloading Packages:
(1/3): apr-1.7.0-5.uel20.x86_64.rpm 465 kB/s | 108 kB 00:00
(2/3): apr-util-1.6.1-15.uel20.x86_64.rpm 427 kB/s | 108 kB 00:00
(3/3): httpd-tools-2.4.43-23.up1.uel20.x8 238 kB/s | 68 kB 00:00
--------------------------------------------------------------------------
Total 973 kB/s | 284 kB 00:00
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Running scriptlet: apr-1.7.0-5.uel20.x86_64 1/3
Installing : apr-1.7.0-5.uel20.x86_64 1/3
Running scriptlet: apr-1.7.0-5.uel20.x86_64 1/3
Running scriptlet: apr-util-1.6.1-15.uel20.x86_64 2/3
Installing : apr-util-1.6.1-15.uel20.x86_64 2/3
Running scriptlet: apr-util-1.6.1-15.uel20.x86_64 2/3
Installing : httpd-tools-2.4.43-23.up1.uel20.x86_64 3/3
Running scriptlet: httpd-tools-2.4.43-23.up1.uel20.x86_64 3/3
Verifying : apr-1.7.0-5.uel20.x86_64 1/3
Verifying : apr-util-1.6.1-15.uel20.x86_64 2/3
Verifying : httpd-tools-2.4.43-23.up1.uel20.x86_64 3/3
Installed:
apr-1.7.0-5.uel20.x86_64 apr-util-1.6.1-15.uel20.x86_64
httpd-tools-2.4.43-23.up1.uel20.x86_64
Complete!
[root@pdsyw ~]#
5.创建密码文件
使用htpasswd来创建一个新的密码文件。此文件将存储经过验证的用户名和密码。
这里,pdsyw是你希望创建的第一个用户名。系统会提示你输入密码。-c参数用于首次创建新文件,如果你想要添加更多用户,再次运行命令但省略-c参数。
[root@pdsyw ~]# htpasswd -c /etc/squid/passwords pdsyw
New password:
Re-type new password:
Adding password for user pdsyw
[root@pdsyw ~]#
[root@pdsyw ~]# htpasswd /etc/squid/passwords pdsywer
New password:
Re-type new password:
Adding password for user pdsywer
[root@pdsyw ~]#
6.调整文件权限
确保Squid进程能够读取密码文件
[root@pdsyw ~]# chmod o+r /etc/squid/passwords
[root@pdsyw ~]#
[root@pdsyw ~]# ll /etc/squid/passwords
-rw-r--r-- 1 root root 90 1月 4 20:07 /etc/squid/passwords
[root@pdsyw ~]#
7.验证配置
这个命令将检查配置文件语法是否有误。确保没有错误再继续。
http_port 172.16.0.2:3128:Squid将监听在内网地址172.16.0.2的3128端口上。
acl localnet src 172.16.0.0/24:定义了一个名为localnet的访问控制列表(ACL),包含IP范围172.16.0.0/24,即你的公司内网。
http_access allow localnet:允许localnet定义的内网访问Squid代理。
auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwords:配置了基本认证,使用/usr/lib64/squid/basic_ncsa_auth程序和密码文件/etc/squid/passwords。
auth_param basic realm proxy:定义了在认证提示中显示的领域(realm)名称为proxy。
acl authenticated proxy_auth REQUIRED:定义了一个名为authenticated的ACL,要求必须通过代理认证。
http_access allow authenticated:允许通过认证的用户访问代理。
http_access deny all:默认拒绝所有其他访问。
cache_dir ufs /var/spool/squid 10000 16 256:配置了Squid的缓存目录和参数。
access_log /var/log/squid/access.log squid:定义了Squid的访问日志文件路径。
[root@pdsyw ~]# squid -k parse
2024/01/04 20:16:31| Startup: Initializing Authentication Schemes ...
2024/01/04 20:16:31| Startup: Initialized Authentication Scheme 'basic'
2024/01/04 20:16:31| Startup: Initialized Authentication Scheme 'digest'
2024/01/04 20:16:31| Startup: Initialized Authentication Scheme 'negotiate'
2024/01/04 20:16:31| Startup: Initialized Authentication Scheme 'ntlm'
2024/01/04 20:16:31| Startup: Initialized Authentication.
2024/01/04 20:16:31| Processing Configuration File: /etc/squid/squid.conf (depth 0)
2024/01/04 20:16:31| Processing: http_port 172.16.0.2:3128
2024/01/04 20:16:31| Processing: acl localnet src 172.16.0.0/24 # 你的公司内网IP段
2024/01/04 20:16:31| Processing: auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwords
2024/01/04 20:16:31| Processing: auth_param basic realm proxy
2024/01/04 20:16:31| Processing: acl authenticated proxy_auth REQUIRED
2024/01/04 20:16:31| Processing: http_access allow authenticated
2024/01/04 20:16:31| Processing: http_access allow localne
2024/01/04 20:16:31| Processing: http_access deny all
2024/01/04 20:16:31| Processing: cache_dir ufs /var/spool/squid 10000 16 256
2024/01/04 20:16:31| Processing: access_log /var/log/squid/access.log squid
2024/01/04 20:16:31| Initializing https:// proxy context
8.启动服务
应用配置更改并重新启动Squid服务,确保Squid服务正在正常运行。
[root@pdsyw ~]# systemctl restart squid
[root@pdsyw ~]#
[root@pdsyw ~]# systemctl status squid
● squid.service - Squid caching proxy
Loaded: loaded (/usr/lib/systemd/system/squid.service; disabled; vendo>
Active: active (running) since Thu 2024-01-04 19:35:48 CST; 4s ago
Process: 27751 ExecStartPre=/usr/libexec/squid/cache_swap.sh (code=exit>
Process: 27757 ExecStart=/usr/sbin/squid $SQUID_OPTS -f $SQUID_CONF (co>
Main PID: 27758 (squid)
Tasks: 3
Memory: 12.5M
CGroup: /system.slice/squid.service
├─27758 /usr/sbin/squid -f /etc/squid/squid.conf
├─27760 (squid-1) --kid squid-1 -f /etc/squid/squid.conf
└─27763 (logfile-daemon) /var/log/squid/access.log
1月 04 19:35:48 pdsyw systemd[1]: Starting Squid caching proxy...
1月 04 19:35:48 pdsyw systemd[1]: Started Squid caching proxy.
1月 04 19:35:48 pdsyw squid[27758]: Squid Parent: will start 1 kids
1月 04 19:35:48 pdsyw squid[27758]: Squid Parent: (squid-1) process 27760>
[root@pdsyw ~]#
9.放开防火墙
放开Squid默认端口(3128)
[root@pdsyw ~]# firewall-cmd --permanent --add-port=3128/tcp
success
[root@pdsyw ~]#
[root@pdsyw ~]# firewall-cmd --reload
success
[root@pdsyw ~]#
10.客户端信息
1)查看终端信息
pdsyw@pdsyw-PC:~/Desktop$ cat /etc/os-version
[Version]
SystemName=UOS Desktop
SystemName[zh_CN]=统信桌面操作系统
ProductType=Desktop
ProductType[zh_CN]=桌面
EditionName=Professional
EditionName[zh_CN]=专业版
MajorVersion=20
MinorVersion=1060
OsBuild=11018.100.100
pdsyw@pdsyw-PC:~/Desktop$
pdsyw@pdsyw-PC:~/Desktop$ uname -a
Linux pdsyw-PC 4.19.0-amd64-desktop #6030 SMP Tue Jun 27 15:58:51 CST 2023 x86_64 GNU/Linux
pdsyw@pdsyw-PC:~/Desktop$
2)查看终端ip地址
pdsyw@pdsyw-PC:~/Desktop$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:29:ba:83 brd ff:ff:ff:ff:ff:ff
3: ens36: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:29:ba:8d brd ff:ff:ff:ff:ff:ff
inet 172.16.0.133/24 brd 172.16.0.255 scope global noprefixroute ens36
valid_lft forever preferred_lft forever
inet6 fe80::e77b:37eb:fab4:34a0/64 scope link noprefixroute
valid_lft forever preferred_lft forever
pdsyw@pdsyw-PC:~/Desktop$
11.通过配置应用代理的方式验证代理服务
11.1.首先验证当终端不配置应用代理时访问网页
a)不配置应用代理
b)打开浏览器
c)访问网页失败
11.2.验证当终端配置应用代理但不配置用户名密码时访问网页
a)配置应用代理但不配置用户名密码
b)点击使用代理,打开浏览器
c)访问网页失败
11.3.验证当终端配置应用代理且配置用户名密码时访问网页
a)配置应用代理且配置用户名密码
b)点击使用代理,打开浏览器
c)访问网页成功
12.通过配置系统代理的方式验证代理服务
12.1.首先验证当终端不配置系统代理时访问网页
a)不配置系统代理
b)无法访问网页
12.2.验证当终端配置系统代理但不配置认证信息时访问网页
a)配置系统代理但不配置认证信息
b)需要输入用户名密码
c)访问网页成功
12.3.验证当终端配置系统代理且配置认证信息时访问网页
a)配置系统代理且配置认证信息
b)需要输入用户名密码
c)访问网页成功
通过在统信UOS上部署Squid代理服务器,我们可以有效地管理网络流量,提高访问速度,并增强网络安全。希望这篇文章能帮助到需要在统信UOS上搭建代理服务器的朋友们。如果你有任何问题或者更多的经验分享,请在评论区留言,我们一起讨论。
最后,如果你觉得这篇文章有用,请分享转发。点个关注和在看吧,让我们一起探索和学习更多关于Linux系统管理和网络服务部署的知识!