likes
comments
collection
share

安全无小事—docker安装redis并设置密码验证

作者站长头像
站长
· 阅读数 35

「这是我参与2022首次更文挑战的第4天,活动详情查看:2022首次更文挑战

前言

我们在学习redis时总是忘了给redis加密码验证,这不,上一次就是因为我redis密码忘了设置并且端口暴露到外网,导致了我现在又要重新部署环境。详情请看# 小白被挖矿木马整emo的一天 。有了上一次服务器被挖矿病毒入侵的经验,这一次我在安装redis时首先想到的是要给redis加密码认证,并且要将端口号改一改。redis端口默认6379,不法分子在使用扫描工具扫描的时候就会扫描一些默认端口号,发现你的服务器端口开着就会尝试去入侵(太可恶了)。下面是我参考了网上的资料,大佬博客之后的操作,仅供大家参考。

redis镜像获取

在hub.docker.com里可以搜索redis镜像,查看redis版本

安全无小事—docker安装redis并设置密码验证

这里我选择了5.0版本,可以直接复制命令到你的linux机器执行

安全无小事—docker安装redis并设置密码验证

root@cj:~# docker pull redis:5.0

创建redis容器实例

pull完成,使用docker images命令查看镜像和镜像id

安全无小事—docker安装redis并设置密码验证

另外提一点比较重要的命令,可以在你操作错误之后用到:

docker ps -a           #查看容器(包含未启动的)
docker stop <容器id>   #停止容器
docker rm <容器id>     #删除容器 (删除容器必须先停止容器,当然你要加 -f 那就是强制删除)
docker rmi <镜像id>    #删除镜像 (删除镜像必须先删除容器 -f强制删除)

镜像准备完毕,接下来就是创建容器实例了

docker run \
-d \
-p 7876:6379 \
--name redis-test \
c5da061a611a \
redis-server  --appendonly yes  --requirepass pass123

参数说明:

-d 让容器在后台运行

-p 指定容器暴露的端口 外网6379,容器6379,为了安全建议把前一个6379更改一下

--name 指定容器名字

c5da061a611a 使用的redis镜像id

redis-server 在容器内执行redis-server命令

--appendonly yes 打开redis持久化配置

--requirepass pass123 设置redis访问密码

执行上述命令之后我们查看是否成功,使用docker ps命令

安全无小事—docker安装redis并设置密码验证

验证是否设置密码

使用以下命令进入redis-test容器

docker exec -it redis-test /bin/bash

打开客户端

redis-cli

执行ping命令

安全无小事—docker安装redis并设置密码验证

发现提示:(error) NOAUTH Authentication required.,那么你的密码验证是设置成功了

使用刚刚设置的密码

auth 密码

安全无小事—docker安装redis并设置密码验证

ping,成功。

使用config set requirepass <新密码>可以修改认证密码。

这是其中的一种方式,但是我在容器中并没有找到对应的redis.conf文件。

那么如何使用指定配置文件启动呢?

指定配置文件创建redis容器

创建外部配置文件

mkdir -p docker/redis/{conf,data}

在conf目录创建redis.conf的配置文件

vi /docker/redis/conf/redis.conf

redis.config文件可以到redis官网下载复制

安全无小事—docker安装redis并设置密码验证

requirepass后的为密码

创建容器,挂载文件

docker run -d \
--privileged=true \
-p 7877:6379 \
-v /docker/redis/conf/redis.conf:/etc/redis/redis.conf \
-v /docker/redis/data:/data \
--name redis-test c5da061a611a \
redis-server /etc/redis/redis.conf --appendonly yes

其中,

--privileged=true 容器内root拥有root权限

-v /docker/redis/conf/redis.conf:/etc/redis/redis.conf 映射配置文件

-v /docker/redis/data:/data 映射数据目录

redis-server /etc/redis/redis.conf 指定配置文件启动redis-server进程

验证是否设置密码

同上,这里就不重复写了。

最后

以上就是今天的学习分享,欢迎大家发表观点,指出不足。

转载自:https://juejin.cn/post/7062548655017820191
评论
请登录