当前位置:首页>Linux>如何安全的在 Ubuntu Linux 上安装 Redis

如何安全的在 Ubuntu Linux 上安装 Redis

  • 2026-10-04 13:15:28
如何安全的在 Ubuntu Linux 上安装 Redis

Redis 可以说是现代最重要的内存类型的键值存储系统了,虽然是单进程,但是其灵活性,高性能和广泛的语言系统支持,受到广大程序员的喜爱,几乎已经成为现在软件的基础。

尽管在 Linux 上默认安装就行,在 Ubuntu Linux 上 用 apt install redis-server 即可安装完成,但是这样安装不安全,特别是在生产服务器上,会让系统和服务器面临着攻击的风险,没有加固的 Redis 还有可能导致数据的泄漏,未授权的放到,甚至服务器的权限被攻破。

下面的内容讲帮你安装 Redis,并避免以上这些问题

01前提

要学习这个教程,你最好用一台 Ubuntu Linux 服务器,不管是云服务器还是虚拟机里面搞一台,都可以的,一般安装好,都有一个sudo 权限的非 root 账户,并且打开 ufw。

02安装和配置 Redis

我们使用 apt 命令来安装,首选来更新系统的缓存包

●●●CODE

sudo apt update

然后安装 Redis

●●●CODE

sudo apt install redis-server

在系统安装成功完成安装 Redis 之后,我们通过如下命令查看 Redis 的版本

●●●CODE

redis-server --version

Redis 有一个配置文件,通过这个配置文件,可以修改不少东西,修改配置的文件的命令sudo vim /etc/redis/redis.conf,找到supervised no 的部分,改成 supervised systemd,如果已经是了,就不用改了。

因为我们的 Ubuntu 是 systemd 管理系统服务的,改动之后,就可以通过 systemd 命令管理redis 了

最好执行命令

●●●CODE

sudo systemctl restart redis.service

现在我们第一步的工作就完成了

03测试 Redis

在测试 Redis 之前,我们先检查一下 Redis的状态

●●●CODE

sudo systemctl status redis

如果是正常的话,应该是下面这个信息

●●●CODE

● redis-server.service - Advanced key-value store     Loaded: loaded (/lib/systemd/system/redis-server.service; enabled; vendor preset: enabled)     Active: active (running) since Thu 2026-08-16 23:26:54 UTC; 4s ago       Docs: http://redis.io/documentation,             man:redis-server(1)    Process: 36552 ExecStart=/usr/bin/redis-server /etc/redis/redis.conf (code=exited, status=0/SUCCESS)   Main PID: 36561 (redis-server)      Tasks: 4 (limit: 2345)     Memory: 1.8M     CGroup: /system.slice/redis-server.service             └─36561 /usr/bin/redis-server 127.0.0.1:6379. . .

如果是其它信息,留言交流

我们使用下面命令测试连接 redis server 是否正常

●●●CODE

redis-cli

回车之后,系统应该进入命令行界面

●●●CODE

127.0.0.1:6379> ping

回应

●●●CODE

PONG

恭喜你,连接redis 非常正常

我们再试一个键值命令

●●●CODE

set test "It's working!"

●●●CODE

OK

说明设置 test 健成功

我们再试试

●●●CODE

get test

●●●CODE

"It's working!"

说明 redis 功能一切正常

我们现在退出 redis

●●●CODE

exit

我们现在重启 redis

●●●CODE

sudo systemctl restart redis

再次执行上面命令

●●●CODE

redis-cliget test"It's working!"

现在看来,安装的redis 功能完全正常

虽然功能没有了问题,但是部分配置还有安全问题,我们接下来一一解决

04绑定到 localhost 上

如果你安装本教程,那么redis 会绑定到redis 上,如果安装其它教程,有可能绑定到其它地址上,产生安全问题,那么如何修改呢?

●●●CODE

sudo vim /etc/redis/redis.conf

找到如下部分修改

●●●CODE

bind 127.0.0.1 ::1

修改完成后,执行命令

●●●CODE

sudo systemctl restart redis

我们通过如下命令检测一下修改

●●●CODE

sudo netstat -lnp | grep redis

如果是类似如下的信息,那么就修改成功了

●●●CODE

tcp   0   0 127.0.0.1:6379     0.0.0.0:*       LISTEN      14222/redis-server  tcp6  0   0 ::1:6379           :::*            LISTEN      14222/redis-server  

05给Redis 加上访问权限

从 Redis 6 开始,访问控制列表(ACL) 成为管理用户访问权限的首选方式,ACL 允许你定义多个用户,为不同的用户设置不同的密码和权限,我们看看怎么操作

我们先用 openssl 生成一个随机密码

●●●CODE

openssl rand 60 | openssl base64 -A

把结果保存起来

执行命令

●●●CODE

sudo vim/etc/redis/redis.conf

找到如下这段内容

●●●CODE

# Disable the default user.user default off# Create a new user with a strong password and full permissions.user myuser on >your_generated_password ~* &* +@all

解释一下:myuser:用户名。on:启用该用户。your_generated_password:设置用户的密码。~ & +@all**:一条规则,允许用户在所有的键空间(~)和所有的发布/订阅频道(&)上运行所有命令(+@all)。

修改完成后

●●●CODE

sudo systemctl restart redis.service

如果这时候你再用 redis-cli ping 就会收到 NOAUTH Authentication required.

那么怎么样用redis 命令呢?

●●●CODE

redis-cli --user myuser --askpass

这样就把redis 用户和其它用户隔离起来了,用户之前就不受影响了

06通过 Ufw 加强 Redis 安全连接

●●●CODE

sudo ufw allow from your_trusted_ip/32 to any port 6379 proto tcp

这样就可以让指定的 IP 访问 redis了

如果不行,再加一个命令查看一下

●●●CODE

sudo ufw allow OpenSSH

07更高级别的安全

如果需要更高级别的安全,可以配置 mTLS,这时候,客户端必须向服务器发送有效证书

首选,我们生成一个由 CA 签发的客户端 Key 和 证书

●●●CODE

# Generate client key and CSRopenssl genrsa -out client.key 2048openssl req -new -key client.key -out client.csr# Sign the client certificate with your CAsudo openssl x509 -req -in client.csr -CA /etc/redis/tls/ca.crt -CAkey /etc/redis/tls/ca.key -CAcreateserial -out client.crt -days 365 -sha256

修改 /etc/redis/redis.conf 文件

●●●CODE

tls-auth-clients yes

重启 Redis Server,现在我们连接 redis 就需要证书了

●●●CODE

redis-cli --user myuser --askpass --tls \  --cacert /etc/redis/tls/ca.crt \  --cert client.crt \  --key client.key

08总结

Redis 安全安装就是这些了,如果还有什么疑问,评论区留言

最新文章

随机文章