第3章:Linux系统安全管理——第2节:部署代理服务

目录

一、项目整体框架

二、项目引入

[1. 背景](#1. 背景)

[2. 解决方案](#2. 解决方案)

三、需求分析

四、知识准备

(一)代理服务器概述

主要功能

(二)代理服务器工作原理

[(三)Squid 基础介绍](#(三)Squid 基础介绍)

[Squid 代理类型](#Squid 代理类型)

[Squid 核心文件与端口](#Squid 核心文件与端口)

五、项目实施(完整步骤)

(一)环境准备

[(二)安装 Squid](#(二)安装 Squid)

[(三)Squid 服务管理(RHEL 7/8)](#(三)Squid 服务管理(RHEL 7/8))

(四)第一次启动必须初始化缓存

[(五)Squid 主配置文件详解(/etc/squid/squid.conf)](#(五)Squid 主配置文件详解(/etc/squid/squid.conf))

[1. 核心配置项](#1. 核心配置项)

[cache_dir 详细说明](#cache_dir 详细说明)

[(六)访问控制列表 ACL(重点)](#(六)访问控制列表 ACL(重点))

[1. ACL 作用](#1. ACL 作用)

[2. ACL 语法](#2. ACL 语法)

[3. 常用 ACL 类型](#3. 常用 ACL 类型)

[4. 访问规则(http_access)](#4. 访问规则(http_access))

[5. 学院场景配置示例](#5. 学院场景配置示例)

(七)配置检查与重载

(八)客户端配置

[1. Linux(Firefox)](#1. Linux(Firefox))

[2. Windows(IE/Edge)](#2. Windows(IE/Edge))

六、反思与进阶:部署透明代理

[1. 透明代理特点](#1. 透明代理特点)

[2. 实现条件](#2. 实现条件)

[3. 实施步骤](#3. 实施步骤)

(1)客户端配置

[(2)Squid 服务器配置](#(2)Squid 服务器配置)

(3)防火墙配置(firewalld)

(4)测试

七、项目小结

八、扩展知识(补充学习)

[1. 正向代理 vs 反向代理](#1. 正向代理 vs 反向代理)

[2. Squid 高级用法](#2. Squid 高级用法)

[3. 透明代理与普通代理对比](#3. 透明代理与普通代理对比)

[4. 常见问题排查](#4. 常见问题排查)

[5. 同类代理软件](#5. 同类代理软件)




一、项目整体框架

本项目围绕学院内网上网慢、安全风险高 的问题,使用 Squid 搭建代理服务器,实现加速访问、隐藏内网 IP、访问控制、安全防护目标。

项目流程:项目引入 → 需求分析 → 知识准备 → 项目实施 → 反思与进阶 → 小结




二、项目引入

1. 背景

学院网络服务增多 → 客户端数量上升 → 内网访问速度变慢网络攻击风险增加

2. 解决方案

部署代理服务器,实现:

  • 提升网络访问速度
  • 隐藏内网真实 IP 地址
  • 降低网络攻击风险
  • 保障内网安全



三、需求分析

  1. 理解代理服务工作原理
  2. 掌握代理服务器类型与区别
  3. 熟练使用 Squid 部署各类代理
  4. 按学院实际需求完成可用、安全的代理服务部署



四、知识准备

(一)代理服务器概述

全称 :Proxy Server核心作用 :代理网络用户获取网络资源,让多台无公网 IP 的客户端高速、安全访问互联网。

主要功能
  1. 突破访问限制教育网 / 内网可通过代理访问外部受限站点。
  2. 提升访问速度 代理拥有硬盘缓冲区(Cache),相同资源直接从缓存返回,无需重复请求外网。
  3. 隐藏真实 IP外网只看到代理服务器 IP,保护内网主机安全。
  4. 访问控制与安全过滤禁止访问危险 / 违规网站,管控流量。

(二)代理服务器工作原理

  1. 客户端浏览器配置代理 → 请求发给代理服务器
  2. 代理检查本地缓存(Cache)
    • 有缓存 → 直接返回给客户端
    • 无缓存 → 代理向外网服务器请求资源
  3. 外网服务器返回数据 → 代理保存到缓存并转发给客户端
  4. 处理完成后进程释放资源

用户无感,以为直接访问目标服务器。大量请求命中缓存 → 整体速度显著提升。

(三)Squid 基础介绍

  1. 定义:高性能代理缓存服务器,支持 HTTP/HTTPS/FTP/gopher/SSL/WAIS
  2. 不支持:POP3、NNTP、RealAudio 等
  3. 架构:单进程、非模块化、I/O 驱动处理所有客户端请求
  4. 跨平台:Linux、FreeBSD、Solaris、AIX 等
  5. 核心优势 :强大的 ACL(访问控制列表)ARL(访问权限列表),实现精细访问管控
Squid 代理类型
  1. 正向代理
    • 普通代理:客户端必须手动配置代理地址与端口
    • 透明代理:客户端无需配置,流量自动被代理接管
  2. 反向代理 用于外网访问内网服务器,实现负载均衡、缓存加速、安全防护
Squid 核心文件与端口
  • 服务名:squid
  • 主程序:/usr/sbin/squid
  • 配置目录:/etc/squid
  • 主配置文件:/etc/squid/squid.conf
  • 默认监听端口:3128/TCP
  • 访问日志:/var/log/squid/access.log
  • 缓存日志:/var/log/squid/cache.log
  • 存储日志:/var/log/squid/store.log



五、项目实施(完整步骤)

(一)环境准备

  1. 配置 Squid 服务器 IP:172.16.43.254
  2. 关闭防火墙 / 设为 permissive 模式
  3. 配置 YUM 源(确保可安装软件包)

(二)安装 Squid

复制代码
# 检查是否安装
rpm -q squid

# YUM 安装
yum install -y squid

# 验证安装
rpm -qa | grep squid

(三)Squid 服务管理(RHEL 7/8)

复制代码
# 启动
systemctl start squid

# 停止
systemctl stop squid

# 重启
systemctl restart squid

# 查看状态
systemctl status squid

# 开机自启
systemctl enable squid

(四)第一次启动必须初始化缓存

复制代码
squid -z

作用:创建硬盘缓存目录结构,修改 cache_dir 后必须重新执行。

(五)Squid 主配置文件详解(/etc/squid/squid.conf)

1. 核心配置项
配置项 作用 示例
http_port 监听端口 http_port 3128
cache_mem 内存缓存(建议物理内存 1/3) cache_mem 128 MB
cache_dir 硬盘缓存配置 cache_dir ufs /var/spool/squid 4096 16 256
visible_hostname 代理主机名 visible_hostname 172.16.43.254
cache_mgr 管理员邮箱 cache_mgr admin@zhiyuan.com
cache_access_log 访问日志路径 cache_access_log /var/log/squid/access.log
cache_log 缓存日志 cache_log /var/log/squid/cache.log
cache_store_log 存储日志 cache_store_log /var/log/squid/store.log
cache_dir 详细说明
复制代码
cache_dir 存储类型 缓存目录 大小(MB) 一级目录数 二级目录数
cache_dir ufs /var/spool/squid 4096 16 256
  • ufs:标准缓存存储类型
  • 4096:缓存最大 4GB
  • 16:一级子目录数量
  • 256:每个一级目录下二级子目录数量

(六)访问控制列表 ACL(重点)

1. ACL 作用

Squid 默认拒绝所有请求,必须通过 ACL 定义规则并放行。可控制:IP、域名、端口、URL、时间、连接数等。

2. ACL 语法
复制代码
acl 列表名 类型 [-i忽略大小写] 值1 值2...
3. 常用 ACL 类型
类型 说明
src 源 IP(客户端 IP)
dst 目标 IP
dstdomain 目标域名
srcdomain 源域名
port 端口
url_regex URL 正则匹配
urlpath_regex URL 路径正则
time 访问时间
maxconn 最大并发连接
4. 访问规则(http_access)
复制代码
http_access allow/deny 列表名
  • 规则按顺序匹配,匹配到即停止
  • 无匹配时,取最后一条规则的反向
  • 建议最后一条写 http_access deny all 保证安全
5. 学院场景配置示例

需求:

  • 禁止 172.16.43.252 使用代理
  • 禁止访问淘宝
  • 允许其他所有主机上网

配置:

复制代码
acl badip src 172.16.43.252
acl baddomain dstdomain -i www.taobao.com

http_access deny badip
http_access deny baddomain
http_access allow all

(七)配置检查与重载

复制代码
# 检查配置语法(关键排错)
squid -k parse

# 重新加载配置
squid -k reconfigure

(八)客户端配置

1. Linux(Firefox)

编辑 → 首选项 → 常规 → 网络代理 → 设置

  • 手动代理配置
  • HTTP 代理:172.16.43.254 端口:3128
  • 勾选「为所有协议使用相同代理」
2. Windows(IE/Edge)

Internet 选项 → 连接 → 局域网设置

  • 勾选「为 LAN 使用代理服务器」
  • 地址:172.16.43.254 端口:3128



六、反思与进阶:部署透明代理

1. 透明代理特点

  • 客户端无需手动配置代理
  • 流量通过网关 / 防火墙自动重定向到 Squid
  • 用户完全无感知

2. 实现条件

  1. Squid 开启透明模式
  2. 防火墙做端口转发
  3. 开启内核 IP 转发

3. 实施步骤

(1)客户端配置
  • IP:10.0.0.3
  • 网关:Squid 内网 IP 10.0.0.2
(2)Squid 服务器配置

配置双网卡(内外网)

开启内核转发

复制代码
vim /etc/sysctl.conf
net.ipv4.ip_forward=1
sysctl -p

修改 Squid 配置支持透明

复制代码
http_port 10.0.0.2:3128 transparent

初始化、检查、启动

复制代码
squid -k parse
squid -z
systemctl start squid
systemctl enable squid
(3)防火墙配置(firewalld)
复制代码
# 启动防火墙
systemctl start firewalld

# 网卡划分区域
firewall-cmd --change-interface=ens33 --zone=external --permanent
firewall-cmd --change-interface=ens38 --zone=internal --permanent

# 端口转发:80 → 3128;443 → 3128
firewall-cmd --add-forward-port=port=80:proto=tcp:toport=3128 --permanent
firewall-cmd --add-forward-port=port=443:proto=tcp:toport=3128 --permanent

# 重载
firewall-cmd --reload
(4)测试

客户端直接访问网页,无需配置代理即可上网。

复制代码
traceroute www.baidu.com

可看到流量先经过代理网关 10.0.0.2。




七、项目小结

  1. 代理服务器用于加速、安全、隐藏 IP、访问控制
  2. Squid 是 Linux 下主流代理软件,支持正向 / 反向 / 透明代理
  3. 核心配置文件:/etc/squid/squid.conf
  4. 必须掌握:安装 → 初始化 → ACL 配置 → 客户端配置 → 透明代理
  5. 排错命令:squid -k parse
  6. 日志查看:/var/log/squid/access.log



八、扩展知识(补充学习)

1. 正向代理 vs 反向代理

  • 正向代理 :代理客户端,访问外网,隐藏客户端
  • 反向代理 :代理服务器,外网访问内网,隐藏服务器,负载均衡

2. Squid 高级用法

  • 基于时间段控制上网
  • 限制下载速度 / 流量
  • 禁止下载特定后缀(exe/zip/mp4)
  • 多端口代理、多网段管控
  • 结合 LDAP / 用户密码认证

3. 透明代理与普通代理对比

类型 客户端配置 适用场景
普通代理 必须手动设置 实验室、机房可控环境
透明代理 无需设置 校园网、企业全网覆盖

4. 常见问题排查

  • 无法上网:检查 http_access 规则、防火墙、IP 转发
  • 速度慢:调大 cache_mem、cache_dir,清理缓存
  • 配置报错:squid -k parse 检查语法
  • 端口未监听:lsof -i:3128systemctl status squid

5. 同类代理软件

  • Nginx:反向代理、负载均衡
  • HAProxy:四层 / 七层负载均衡
  • Varnish:专注 Web 缓存
  • Tinyproxy:轻量级简易代理
相关推荐
莫回首�14 小时前
ubuntu 20.04 多网卡配置,遇到问题总结
linux·网络·ubuntu
网络安全许木15 小时前
自学渗透测试第11天(Linux压缩解压与磁盘管理)
linux·网络安全·渗透测试
问简17 小时前
虚拟化对比
服务器
一定要AK17 小时前
Spring 入门核心笔记
java·笔记·spring
lly20240617 小时前
C 标准库 - `<stdio.h>`
开发语言
航Hang*17 小时前
Windows Server 配置与管理——第3章:文件系统管理
运维·服务器·windows·vmware
沫璃染墨17 小时前
C++ string 从入门到精通:构造、迭代器、容量接口全解析
c语言·开发语言·c++
jwn99917 小时前
Laravel6.x核心特性全解析
开发语言·php·laravel
迷藏49417 小时前
**发散创新:基于Rust实现的开源合规权限管理框架设计与实践**在现代软件架构中,**权限控制(RBAC)** 已成为保障
java·开发语言·python·rust·开源
lifewange17 小时前
Linux ps 进程查看命令详解
linux·运维·服务器