zoukankan      html  css  js  c++  java
  • redis学习-密码管理

    前言

    redis存在于内存中,这意味着redis每秒可以接收十万数量级的攻击,因此处于安全考虑,redis提供了密码验证。(每秒十万次,暴力破解一个密码岂不是也很简单,设定密码能抵御攻击吗?)

    redis设置密码有两种方式

    • 修改配置文件,重启后生效,永久有效
    • 通过指令修改,立即生效,重启后失效

    方法一:修改配置文件

    通过修改redis.conf文件的requirepass属性配置密码。

    [root@VM-0-4-centos etc]# vim redis.conf 
    # 搜索并配置密码
    requirepass 123
    # 保存后启动redis
    [root@VM-0-4-centos etc]# cd ../bin
    [root@VM-0-4-centos bin]#/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf 
    24081:C 06 Aug 2020 20:14:16.348 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
    24081:C 06 Aug 2020 20:14:16.348 # Redis version=5.0.5, bits=64, commit=00000000, modified=0, pid=24081, just started
    24081:C 06 Aug 2020 20:14:16.348 # Configuration loaded
    

    登录含密码的redis

    • auth pass指令验证登录
    # 启动客户端,输入任意指令提示需要验证密码
    [root@VM-0-4-centos bin]# ./redis-cli 
    127.0.0.1:6379> keys *
    (error) NOAUTH Authentication required.
    # 使用auth pass指令输入密码即可正常使用
    127.0.0.1:6379> auth 123
    OK
    127.0.0.1:6379> keys *
    (empty list or set)
    
    • -a pass 参数验证登录
    [root@VM-0-4-centos bin]# ./redis-cli -a 123
    Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
    127.0.0.1:6379> keys *
    (empty list or set)
    

    方法二:客户端修改

    登录客户端并使用config set requirepass pass指令设定密码

    [root@VM-0-4-centos bin]# ./redis-cli 
    127.0.0.1:6379> config get requirepass // 此时密码为空
    1) "requirepass"
    2) ""
    127.0.0.1:6379> config set requirepass 123 // 设定密码123
    OK
    127.0.0.1:6379> config get requirepass // 设定后立即生效,输入指令需要先验证密码
    (error) NOAUTH Authentication required.
    127.0.0.1:6379> auth 123
    OK
    127.0.0.1:6379> config get requirepass // 验证密码后查询pass已设定为123
    1) "requirepass"
    2) "123"
    

    重启后密码失效

    127.0.0.1:6379> quit
    [root@VM-0-4-centos bin]# ps -ef|grep redis
    root     25456     1  0 20:23 ?        00:00:00 /usr/local/redis/bin/redis-server 127.0.0.1:6379
    root     26922 23009  0 20:33 pts/0    00:00:00 grep --color=auto redis
    [root@VM-0-4-centos bin]# kill -9 25456  // 关闭redis服务
    [root@VM-0-4-centos bin]# ps -ef|grep redis
    root     26954 23009  0 20:33 pts/0    00:00:00 grep --color=auto redis
    [root@VM-0-4-centos bin]# /usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf  // 重启redis服务
    26967:C 06 Aug 2020 20:33:42.684 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
    26967:C 06 Aug 2020 20:33:42.684 # Redis version=5.0.5, bits=64, commit=00000000, modified=0, pid=26967, just started
    26967:C 06 Aug 2020 20:33:42.684 # Configuration loaded
    [root@VM-0-4-centos bin]# ./redis-cli 
    127.0.0.1:6379> config get requirepass // 此时密码为空,前文设定密码已失效
    1) "requirepass"
    2) ""
    

    END

    redis虽然提供了密码支持,但实际运用中,redis常用于内网环境中,设定密码除了增加操作量,并无其他用途。

    具体是否需要设定密码,可以从系统的数据安全性,服务器安全性,网络安全性等方面综合考虑后决定。

  • 相关阅读:
    团队代码
    团队代码
    团队代码
    团队代码
    innerHTML与innerText与outHTML与outText 的区别。
    【C++】 C++知识点总结
    【海思】Hi3516A 运行sample_venc的demo内核奔溃(DDR问题)
    【C/C++】 C++寄存器优化
    【工具】 memtester内存压力测试工具
    【知识点】 gcc和g++的联系和区别
  • 原文地址:https://www.cnblogs.com/bcomll/p/13448852.html
Copyright © 2011-2022 走看看