• Redis--提高外网访问的安全性


    原文网址:Redis--提高外网访问的安全性_IT利刃出鞘的博客-CSDN博客

    简介

    说明

            本文介绍如何提高Redis在公网可访问时的安全性。

            Redis若暴露在公网(公网可访问),则容易受到攻击。一般情况下,尽量配置Redis只允许内网访问,但有时需要使Redis可公网访问,比如:应用部署在不同的服务器,都要用这个Redis。

    Redis部署在公网的配置

    见:Redis--设置外网可以访问_IT利刃出鞘的博客-CSDN博客

    粉丝福利:有很多粉丝私信问我有没有Java的面试及PDF书籍等资料,我整理一下,包含:真实面试题汇总、简历模板、PDF书籍、PPT模板等。这些是我自己也在用的资料,面试题是面试官问到我的问题的整理,其他资料也是我自用的,真正实用、靠谱。资料可以从这里免费获取:资料地址

    1.设置复杂的密码

            Redis在redis.conf配置文件中,设置配置项requirepass, 开户密码认证。

    修改方法:(修改redis.conf)

    requirepass yourPassword

            Redis因查询效率高,auth这种命令每秒能处理10w次以上,简单的redis的密码极容易为攻击者暴破。所以要设置复杂的密码。

    2.修改Redis的端口号

    大部分对 Redis 的攻击都是针对默认端口(6379)进行的。

    修改方法(修改redis.conf)

    修改前

    port 6379

    修改后

    ​port 9999

    记得iptables对应的端口要修改

    3.不要用root用户启动Redis

            使用普通用户权限启动Redis,禁止使用 root 权限启动Redis 服务。这样可以保证在存在漏洞的情况下攻击者也只能获取到普通用户权限,无法获取root权限。(nginx和apache都是有独立的work用户,而redis没有)。

    第1步:新建Redis相关用户和组

    1. #新增用户组
    2. groupadd serverNologin
    3. #新建用户redis并加入serverNologin组中,并禁止登录
    4. useradd -M redis -g serverNologin -s /sbin/nologin

    第2步:以Redis用户启动Redis服务

    sudo -u redis /usr/bin/redis-server /etc/redis/redis.conf

    4.禁用或重命名重要命令

            Redis 有一些非常危险的指令,这些指令会对 Redis 的稳定以及数据安全造成非常严重的影响。比如:keys 指令会导致 Redis 卡顿,flushdb 和 flushall 会让 Redis 的所有数据全部清空。

            Redis没有权限分离之说,无管理员账号和普通账户之分,导致攻击者登陆后可执行任意操作,因此需要隐藏重要命令。

    具体命令有:FLUSHDB, FLUSHALL, KEYS,PEXPIRE, DEL, CONFIG, SHUTDOWN, BGREWRITEAOF, BGSAVE, SAVE, SPOP, SREM, RENAME,DEBUG, EVAL等。

    重命名命令的方法(以KEYS为例)

     将命令 rename 成其他名字,原命令就无法执行了,需要用新命令执行。

    rename-command KEYS KEYS_abcd

    如上设置之后,需要用KEYS_abcd来执行。

    禁用命令的方法(以KEYS为例)

    将命令 rename 成空串,此命令就无法执行了。

    rename-command KEYS ""

    5.SSL代理

            Redis 不支持 SSL 链接。着客户端和服务器之间交互的数据如果直接暴露在公网上传输,会有被窃听的风险。如果必须要用在公网上,可以考虑使用 SSL 代理。

            SSL 代理比较常见的有 ssh,不过 Redis 官方推荐使用 spiped 工具,可能是因为 spiped 的功能相对比较单一,使用也比较简单,易于理解。同样 SSL 代理也可以用在主从复制上,如果 Redis 主从实例需要跨机房复制,spiped 也可以派上用场。下面这张图是使用 spiped 对 ssh 通道进行二次加密 (因为 ssh 通道也可能存在 bug)。

  • 相关阅读:
    Redis(5)----浅谈压缩列表
    基于HTML5的在线幻灯片编辑演示系统
    Biotin-NHS ester,生物素-NHS,35013-72-0
    1100*C. Division by Two and Permutation(全排列&数学)
    英国 AI 安全峰会前瞻:为什么是现在,为什么在英国
    机器学习之深度学习简介
    后端常用的Linux命令大全
    kr 第三阶段(三)调试器
    【操作系统】信号量机制(整型信号量、记录型信号量),用信号量实现进程互斥、同步、前驱关系
    [Java]_[初级]_[以SAX流的方式高效读取XML大文件]
  • 原文地址:https://blog.csdn.net/feiying0canglang/article/details/126226193