Redis未授權訪問漏洞修復


1.禁止一些高危命令(重啟redis才能生效)

  • 修改 redis.conf 文件,禁用遠程修改 DB 文件地址
  1. rename-command FLUSHALL ""

  2. rename-command CONFIG ""

  3. rename-command EVAL ""

  • 或者通過修改redis.conf文件,改變這些高危命令的名稱
  1. rename-command FLUSHALL "name1"

  2. rename-command CONFIG "name2"

  3. rename-command EVAL "name3”

2. 以低權限運行 Redis 服務(重啟redis才能生效)

為 Redis 服務創建單獨的用戶和家目錄,並且配置禁止登陸

groupadd -r redis && useradd -r -g redis redis

 

3. 為 Redis 添加密碼驗證(重啟redis才能生效)

修改 redis.conf 文件,添加

requirepass mypassword

(注意redis不要用-a參數,明文輸入密碼,連接后使用auth認證)

4. 禁止外網訪問 Redis(重啟redis才能生效)

 

修改 redis.conf 文件,添加或修改,使得 Redis 服務只在當前主機可用

 

bind 127.0.0.1 

 

在redis3.2之后,redis增加了protected-mode,在這個模式下,非綁定IP或者沒有配置密碼訪問時都會報錯

 

5.修改默認端口

修改配置文件redis.conf文件

Port 6379

 

默認端口是6379,可以改變成其他端口(不要沖突就好)

 

6. 保證 authorized_keys 文件的安全

為了保證安全,您應該阻止其他用戶添加新的公鑰。

  • 將 authorized_keys 的權限設置為對擁有者只讀,其他用戶沒有任何權限:
chmod 400 ~/.ssh/authorized_keys 
  • 為保證 authorized_keys 的權限不會被改掉,您還需要設置該文件的 immutable 位權限:
chattr +i ~/.ssh/authorized_keys 
  • 然而,用戶還可以重命名 ~/.ssh,然后新建新的 ~/.ssh 目錄和 authorized_keys 文件。要避免這種情況,需要設置 ~./ssh 的 immutable 權限:
chattr +i ~/.ssh

7. 設置防火牆策略  

如果正常業務中Redis服務需要被其他服務器來訪問,可以設置iptables策略僅允許指定的IP來訪問Redis服務。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM