redis安全(加入密码)

本文介绍如何通过更改Redis默认端口、设置密码及开启保护模式来增强服务器安全性,避免挖矿病毒攻击。详细步骤包括修改配置文件、启动服务及使用密码验证连接。

一.前言

  在使用云服务器时,安装的redis3.0+版本都关闭了protected-mode,因而都遭遇了挖矿病毒的攻击,使得服务器99%的占用率!!

  因此我们在使用redis时候,最好更改默认端口,并且使用redis密码登录。

  但是:

(1)redis没有用户概念,redis只有密码
(2)redis默认在工作在保护模式下。不允许远程任何用户登录的(protected-mode)

  相对安全的配置:

protected-mode yes   #打开保护模式
port 6380  #更改默认启动端口
requirepass xxxxxx   #设置redis启动密码,xxxx是自定义的密码

  启动redis:

redis-server /etc/redis/6379.conf  #指定配置文件启动redis,且后台启动

  使用密码登录redis,使用6380端口

  方法1,使用这个

[root@oldboy_python ~ 09:48:41]#redis-cli -p 6380
127.0.0.1:6380> auth xxxx
OK

  方法2,此方案不安全,容易暴露密码(因为可以通过history查询到)

[root@oldboy_python ~ 09:49:46]#redis-cli -p 6380 -a xxxx
Warning: Using a password with '-a' option on the command line interface may not be safe.
127.0.0.1:6380> ping
PONG

  补充

  检查redis是否设置了密码

127.0.0.1:6380> CONFIG get requirepass
1) "requirepass"
2) "xxxxxx"

  如果没有,也可以给redis设置密码(命令方式)

CONFIG set requirepass "xxxxxx"

 

转载于:https://www.cnblogs.com/tjp40922/p/10741348.html

### 如何在 Redis 中配置和设置密码认证 #### 编辑配置文件设置密码 可以通过编辑 `redis.conf` 文件来为 Redis 设置密码。找到并打开 Redis 的配置文件,在其中添加或修改如下参数: ```conf requirepass your_password ``` 此操作会将 `your_password` 设定为连接 Redis 实例所需的密码[^1]。 完成上述更改后,需重启 Redis 服务以使新配置生效。对于不同操作系统,执行以下命令: - **Windows**: ```bash redis-server.exe %Redis_HOME%\redis.windows.conf ``` - **Linux**: ```bash redis-server $Redis_HOME/redis.conf ``` #### 使用命令行动态设置密码 除了通过配置文件静态设定外,还可以利用 Redis 命令行工具动态设置密码。运行以下指令即可实现这一目标: ```bash config set requirepass your_password ``` 需要注意的是,这种方式所设密码仅适用于当前会话周期;一旦服务器被重新启动,则先前定义的密码将会丢失其有效性[^3]。 如果想要确认已成功应用新的密码保护机制,可尝试查询 `requirepass` 参数的状态: ```bash config get requirepass ``` 这应该返回之前指定过的字符串作为结果表示一切正常运作当中[^2]。 当有客户端试图与受密码防护措施约束下的实例交互前,它们必须先发出身份验证请求: ```bash auth your_password ``` 或者直接携带凭证信息初始化一个新的会话链接过程: ```bash redis-cli -h IP -p PORT -a your_password ``` 最后 若要移除现有的安全屏障 (即清除现有密码), 可再次运用 `CONFIG SET` 动作并将第二个参数留空: ```bash config set requirepass '' ``` 以上就是关于如何给 Redis 加入基本的身份验证层面上的一些指导说明. ### 示例代码片段展示 Jedis 客户端连接带密码验证流程 下面给出一段基于 Java 平台下使用 Jedis 库去建立同远程主机上存在授权需求的服务节点之间通讯的例子: ```java import redis.clients.jedis.Jedis; public class Main { public static void main(String[] args){ try(Jedis jedis=new Jedis("localhost",6379)){ jedis.auth("your_password"); System.out.println(jedis.ping()); } } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值