惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
Visual Studio Blog
V
Vulnerabilities – Threatpost
W
WeLiveSecurity
P
Privacy International News Feed
Cyberwarzone
Cyberwarzone
C
Cyber Attacks, Cyber Crime and Cyber Security
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
I
Intezer
The Last Watchdog
The Last Watchdog
V2EX - 技术
V2EX - 技术
Schneier on Security
Schneier on Security
B
Blog RSS Feed
N
News and Events Feed by Topic
T
The Blog of Author Tim Ferriss
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
云风的 BLOG
云风的 BLOG
L
Lohrmann on Cybersecurity
小众软件
小众软件
T
Threat Research - Cisco Blogs
F
Full Disclosure
P
Palo Alto Networks Blog
Latest news
Latest news
Scott Helme
Scott Helme
T
Tailwind CSS Blog
M
MIT News - Artificial intelligence
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Recent Announcements
Recent Announcements
Hacker News - Newest:
Hacker News - Newest: "LLM"
H
Hacker News: Front Page
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
The Register - Security
The Register - Security
J
Java Code Geeks
The Cloudflare Blog
美团技术团队
博客园 - 【当耐特】
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
T
Tor Project blog
酷 壳 – CoolShell
酷 壳 – CoolShell
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Security Latest
Security Latest
S
Securelist
Webroot Blog
Webroot Blog
博客园 - 三生石上(FineUI控件)
P
Privacy & Cybersecurity Law Blog
N
Netflix TechBlog - Medium
C
Check Point Blog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
H
Help Net Security
I
InfoQ
L
LINUX DO - 热门话题

Liups233の小站

YubiKey OpenPGP 智能卡使用指南 - Liups233の小站 通过 WKD / OPENPGPKEY DNS 记录部署 GPG 公钥 - Liups233の小站 OpenLiteSpeed 安装与建站配置 详细教程 - Liups233 使用 DNSCrypt-Proxy 为 Linux 配置加密 DNS - Liups233 WordPress 7.0 编辑器改回无衬线字体 - Liups233の小站 Cloudflare 设置 mTLS 验证来源拉取 - Liups233の小站 Docker 自建 RustDesk 远程和 API 服务 - Liups233の小站 ChatGPT Go 印度区免费试用白嫖 1 年 - Liups233の小站 使用 S/MIME 证书签名并加密电子邮件 - Liups233の小站 为 WordPress 外发邮件添加 S/MIME 签名 - Liups233の小站 网站域名变更迁移教程/记录 - Liups233の小站 将动漫视频刻录为视频光盘-蓝光/AVCHD DVD - Liups233の小站 百乐 CUSTOM 912 钢笔使用体验 - Liups233の小站 使用 Cloudflare mTLS 用户端凭证保护博客登入页面 - Liups233の小站 Kobo 手动安装 NickelMenu 和 KOReader - Liups233の小站 Kobo 阅读器字典缺字解决 - Liups233の小站 iCloud+ 域名邮箱的注册和使用 - Liups233の小站 9 美元一年的通配符 SSL 证书 - Liups233の小站 宝塔面板 Nginx 启用 Brotli 和 Pagespeed - Liups233の小站 拷贝 DVD/Blu-ray 光盘并使用 MeGUI 压制 - Liups233の小站 Spotify 相较 Apple Music 的优点 - Liups233の小站 欧卡/美卡自定义手排挡位布局 - Liups233の小站 内地居民到港开户汇丰和中银香港全过程 - Liups233の小站 给光驱刷入 LibreDrive 固件解锁区域和加密限制 - Liups233の小站 个人博客适用的 Cloudflare 防火墙和缓存规则 - Liups233の小站 为Kobo阅读器添加Google Drive和Dropbox功能 - Liups233の小站 百乐 PILOT Capless Fermo 钢笔评测 - Liups233の小站 业余无线电 B 类考试笔记 - Liups233の小站 黑白阅读器的绝唱?Kobo Clara BW 简单评测 - Liups233の小站 八重洲 WIRES-X 网络注册与使用教程 - Liups233の小站 异世的同路人 — 恋语 Juliamo 游戏简评 - Liups233の小站 欢迎加入我的 FreeDMR 服务器 - Liups233の小站 低至 6 港币一年的 Club SIM eSIM 保号卡 - Liups233の小站 H310/H710(P)/H810 阵列卡刷写为直通模式 - Liups233の小站
Redis 数据库权限与 Unix Socket 配置 - Liups233の小站
Liups233 · 2026-05-17 · via Liups233の小站

前言

最近迁移了服务器,我在重新配置网站时注意到了在 LiteSpeed WordPress 插件中,用的是 127.0.0.1 这种 TCP 方式连接到 Redis 缓存数据库,感觉不太优雅,因为隔壁 PHP 连接 MySQL 都是用的 Unix Socket 方式(即通过 /var/run/mysqld/mysqld.sock 来连接)。使用 Unix Socket 连接虽然会让数据库无法远程连接,只能在本机使用,但速度相比 TCP 连接更快,何况我也不需要跨服务器使用 Redis。

但更重要的是,我发现把缓存数据存储到 Redis 时没有任何鉴权方式,任何程序都可以写入,比较危险。这篇文章会教你如何修改 Redis 配置,新建用户、配置权限,来让数据库更安全;并且启用 Unix Socket 功能,减少 TCP 连接开销,提升性能。

目录

先决条件

  • 懂 Linux 操作:本教程仅在 AlmaLinux 10 上的 Redis 8.6(来自 Remi 软件源)测试过,不保证所有发行版都适用,所以你需要自己判断,而不是直接复制我的命令。如果使用宝塔面板安装的话就更要注意了,配置文件位置应该是不同的;
  • Redis 已在正常工作:在操作前,请确保你的 Redis 缓存已通过 127.0.0.1 在正常工作;
  • 如果使用 WordPress:请确保你的对象缓存插件支持设置 Redis 的用户和密码,以及支持以 Socket 形式连接,否则就不用继续了。本文将以 LiteSpeed Cache 插件进行说明,操作前,需要先关闭对象缓存,设置位于 缓存规则>[6] 对象。

Redis 用户访问控制(ACL 鉴权)

配置修改

默认情况下,Redis 允许任何人不需要密码就能读写所有数据,十分滴危险。要启用访问控制列表(ACL),需要修改 Redis 配置文件。但在此之前,我们先在配置目录创建一个用户列表,包含一个 default 用户。

这个 default 初始用户会用来创建新的管理员用户和普通用户,并且在之后会被禁用,操作如下(请将 strong_password 替换为强密码,最好不含特殊符号,大于号需要保留):

echo "user default on >strong_password ~* &* +@all" | sudo tee /etc/redis/users.acl

然后进行权限配置:

sudo chown redis:root /etc/redis/users.acl
sudo chmod 600 /etc/redis/users.acl

接下来需要创建一个配置文件,来让 Redis 读取这个 ACL:

sudo mkdir -p /etc/redis/modules
sudo tee /etc/redis/modules/user.conf << EOF
# User ACL
aclfile /etc/redis/users.acl
EOF

然后进行权限配置:

sudo chown redis:root /etc/redis/modules/user.conf
sudo chmod 600 /etc/redis/modules/user.conf

然后查看 Redis 的主配置文件 /etc/redis/redis.conf,确认里面有这么一行:

include /etc/redis/modules/*.conf

如果没有的话,可以将其加在 INCLUDES 块里,如图:

Redis 配置中加入 include
主配置中加入 include

然后重启 Redis:

sudo systemctl restart redis

用户创建

使用 sudo redis-cli 进入 Redis 命令行,先以 default 用户鉴权:

AUTH default strong_password

然后创建 admin 用户(second_strong_password 请替换成强密码):

ACL SETUSER admin on >second_strong_password ~* &* +@all

命令各部分含义如下,详见 Redis ACL

  • on 表示启用该用户;
  • ~* 控制该用户可以访问哪些键,* 是通配符,代表所有键;
  • &* 表示允许该用户订阅/发布 Redis 中所有的 Pub/Sub 频道;
  • +@all 控制命令的执行权限,+ 表示允许执行,@allRedis 内置的命令分类,代表所有 Redis 命令。

然后创建 wp_cache 用户,将会用于存取 WordPress 缓存(third_strong_password 请替换成强密码,~wp_cache:* 表示该用户仅能操作以 wp_cache: 为前缀的键,-@admin 表示该用户无管理权):

ACL SETUSER wp_cache on >third_strong_password ~wp_cache:* +@all -@admin

最后保存权限列表并退出:

ACL SAVE
QUIT

然后我们可以使用 sudo cat /etc/redis/users.acl 查看用户是否添加成功,同时你会注意到所有用户的密码均以 SHA256 而非明文存储。接下来,需要禁用 default 用户,再次使用 sudo redis-cli 进入命令行,然后使用 admin 用户及其密码鉴权:

AUTH admin second_strong_password

然后禁用 default 用户并保存退出:

ACL SETUSER default off
ACL SAVE
QUIT

最后再次使用 sudo cat /etc/redis/users.acl 查看下是否禁用,输出内容如下图:

Redis users.acl 示例
users.acl 示例

WordPress LiteSpeed 插件设置

对于 WordPress 的缓存数据,我们刚才创建了 wp_cache 用户,并且仅允许他操作以 wp_cache: 为前缀的键。虽然在插件设置中可以设置用户名和密码,但不能设置键的前缀,所以我们需要在 wp-config.php 中加入常量来告诉插件。wp-config.php 位于网站根目录,需要在指定地方(注意注释)加入 define('LSOC_PREFIX', 'wp_cache:');,如图:

在指定位置加入代码
在指定位置加入代码

然后在插件的对象缓存设置中加入 wp_cache 用户名及其密码,再将对象缓存开关打开,点击保存设置,应该就能正常工作了。然后我们还要测试一下缓存是否能清除,点击插件工具箱里的「清除全部 – 对象缓存」,无报错即可。

LiteSpeed WordPress 插件对象缓存用户设置
插件对象缓存用户设置

注意:仅在配置好上文的用户权限控制后,才推荐启用 Unix Socket,否则谁都能随意读写数据库

另外,如果配置了 Socket,并且禁用了 TCP 连接方式,使用 Redis CLI 时应使用 sudo redis-cli -s <path to redis.sock> 命令。

配置修改

我们准备将 Socket 放于 /var/run/redis/redis.sock,执行以下命令创建文件夹并设置权限:

sudo mkdir -p /var/run/redis
sudo chown -R redis:redis /var/run/redis
sudo chmod 755 /var/run/redis

接下来需要创建一个配置文件,设置 Socket 位置和权限:

sudo mkdir -p /etc/redis/modules
sudo tee /etc/redis/modules/socket.conf << EOF
# Unix Socket
unixsocket /var/run/redis/redis.sock
unixsocketperm 770
EOF
sudo chown redis:root /etc/redis/modules/socket.conf
sudo chmod 640 /etc/redis/modules/socket.conf

unixsocketperm 770 表示这个 Socket 可以由 redis 用户及 redis 组的用户读/写/执行,其他用户无任何权限。所以我们需要将使用 Redis 的用户加入 redis 组(OpenLiteSpeed 默认使用 nobody 用户执行 LSPHP):

sudo usermod -aG redis nobody

另外,如果你没有远程访问需求,可以在 Redis 主配置(/etc/redis/redis.conf)中,找到 port 6379,将其改为 port 0,就能彻底关闭 TCP 连接方式。最后重启 Redis:

sudo systemctl restart redis

LiteSpeed 插件设置

同样在插件对象缓存设置中,设置 Redis 主机为刚才的 Socket 地址 /var/run/redis/redis.sock,同时设置端口为 0,然后点击开启缓存,点击保存即可,如果连接测试显示通过就没问题了。

插件 Unix Socket 设置
插件 Socket 设置

预计还会写一个文章讲如何利用 OpenLiteSpeed 建站,确实很好用,和插件搭配起来速度很快。也欢迎到 主页 看其他内容。