redis安全基線設置


一、禁止使用root用戶啟動 | 訪問控制

使用root權限去運行網絡服務是比較有風險的(nginx和apache都是有獨立的work用戶,而redis沒有)。redis crackit 漏洞就是利用root用戶的權限來替換或者增加authorized_keys,來獲取root登錄權限的

使用root切換到redis用戶啟動服務:
```
useradd -s /sbin/nolog -M redis 
sudo -u redis /<redis-server-path>/redis-server /<configpath>/redis.conf 
```

二、限制redis 配置文件訪問權限 | 文件權限

因為redis密碼明文存儲在配置文件中,禁止不相關的用戶訪問改配置文件是必要的,設置redis配置文件權限為600,

執行以下命令修改配置文件權限:
```
chmod 600 /<filepath>/redis.conf
```

三、修改默認6379端口 | 服務配置

避免使用熟知的端口,降低被初級掃描的風險

編輯文件redis的配置文件redis.conf,找到包含port的行,將默認的6379修改為自定義的端口號,然后重啟redis

四、開啟redis密碼認證,並設置高復雜度密碼 | 身份鑒別

redis在redis.conf配置文件中,設置配置項requirepass, 開戶密碼認證。 redis因查詢效率高,auth這種命令每秒能處理9w次以上,簡單的redis的密碼極容易為攻擊者暴破。

打開redis.conf,找到requirepass所在的地方,修改為指定的密碼,密碼應符合復雜性要求:
```
1、長度8位以上
2、包含以下四類字符中的三類字符:
英文大寫字母(A 到 Z)
英文小寫字母(a 到 z)
10 個基本數字(09)
非字母字符(例如 !、$、%、@、^、&等,#除外)
3、避免使用已公開的弱密碼,如:abcd.1234 、admin@123等
```
再去掉前面的#號注釋符,然后重啟redis

五、禁用或者重命名危險命令 | 入侵防范

Redis中線上使用keys *命令,也是非常危險的。因此線上的Redis必須考慮禁用一些危險的命令,或者盡量避免誰都可以使用這些命令,

Redis沒有完整的管理系統,但是也提供了一些方案。

修改 redis.conf 文件,添加
```
rename-command FLUSHALL ""
rename-command FLUSHDB  ""
rename-command CONFIG   ""
rename-command KEYS     ""
rename-command SHUTDOWN ""
rename-command DEL ""
rename-command EVAL ""
```
然后重啟redis。
重命名為"" 代表禁用命令,如想保留命令,可以重命名為不可猜測的字符串,如:
`rename-command FLUSHALL  joYAPNXRPmcarcR4ZDgC`

六、禁止監聽在公網 | 訪問控制

Redis監聽在0.0.0.0,可能導致服務對外或內網橫向移動滲透風險,極易被黑客利用入侵。

在redis的配置文件redis.conf中配置如下:
bind 127.0.0.1或者內網IP,然后重啟redis

七、打開保護模式 | 訪問控制

redis默認開啟保護模式。要是配置里沒有指定bind和密碼,開啟該參數后,redis只能本地訪問,拒絕外部訪問。

redis.conf安全設置: # 打開保護模式 protected-mode yes


免責聲明!

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



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