统信UOS搭建Squid代理服务器

发布时间:2024年01月08日

原文链接:统信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及端口号,安全地访问互联网信息。
实验步骤

  1. 搭建Squid代理服务器
    • 安装Squid:在服务器上打开终端,输入以下命令安装Squid代理服务器:
    • 配置Squid:编辑Squid的配置文件**/etc/squid/squid.conf**,设置允许的访问控制列表(ACL)和代理规则。
  2. 创建用户名密码认证文件
    • 安装httpd-tools
    • 使用htpasswd创建认证文件:sudo htpasswd -c /etc/squid/passwd 用户名
    • 在Squid配置文件中引用这个认证文件,并设置需要认证的ACL规则。
  3. 在终端配置系统代理及应用代理
    • 在终端的网络设置中,配置代理服务器的IP地址和端口号。
    • 尝试访问互联网,系统应提示输入用户名和密码。
  4. 测试代理是否生效
    • 使用浏览器或其他工具测试是否能够通过代理服务器访问互联网。
    • 检查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 ~]#

image.png

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 <security@uniontech.com>"
 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 ~]#

image.png

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

image.png

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 ~]#

image.png

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 ~]#

image.png

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 ~]#

image.png

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

image.png

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 ~]#

image.png

9.放开防火墙
放开Squid默认端口(3128)

[root@pdsyw ~]# firewall-cmd --permanent --add-port=3128/tcp
success
[root@pdsyw ~]#
[root@pdsyw ~]# firewall-cmd --reload
success
[root@pdsyw ~]#

image.png

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$ 

image.png

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$ 

image.png

11.通过配置应用代理的方式验证代理服务
11.1.首先验证当终端不配置应用代理时访问网页
a)不配置应用代理
image.png

b)打开浏览器
[外链图片转存中…(img-MUQ2trGR-1704701260444)]

c)访问网页失败
image.png

11.2.验证当终端配置应用代理但不配置用户名密码时访问网页
a)配置应用代理但不配置用户名密码
image.png

b)点击使用代理,打开浏览器
image.png

c)访问网页失败
image.png

11.3.验证当终端配置应用代理且配置用户名密码时访问网页
a)配置应用代理且配置用户名密码
image.png

b)点击使用代理,打开浏览器
image.png

c)访问网页成功
image.png

12.通过配置系统代理的方式验证代理服务
12.1.首先验证当终端不配置系统代理时访问网页
a)不配置系统代理
image.png

b)无法访问网页
image.png

12.2.验证当终端配置系统代理但不配置认证信息时访问网页
a)配置系统代理但不配置认证信息
image.png

b)需要输入用户名密码
image.png

c)访问网页成功
image.png

12.3.验证当终端配置系统代理且配置认证信息时访问网页
a)配置系统代理且配置认证信息
image.png

b)需要输入用户名密码
image.png

c)访问网页成功
image.png

通过在统信UOS上部署Squid代理服务器,我们可以有效地管理网络流量,提高访问速度,并增强网络安全。希望这篇文章能帮助到需要在统信UOS上搭建代理服务器的朋友们。如果你有任何问题或者更多的经验分享,请在评论区留言,我们一起讨论。
最后,如果你觉得这篇文章有用,请分享转发。点个关注和在看吧,让我们一起探索和学习更多关于Linux系统管理和网络服务部署的知识!

文章来源:https://blog.csdn.net/m0_69493559/article/details/135459909
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。