共計 2550 個字符,預計需要花費 7 分鐘才能閱讀完成。
今天丸趣 TV 小編給大家分享一下 Redis 緩存數據庫加固措施有哪些的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
敏感數據與加密保護
1. 密碼保存 (重要)
安全問題:原生 Redis 服務端密碼 requirepass 和 masterauth 是明文保存到 redis.conf。
解決方案: 服務端密碼采用 PBKDF2 加密后保存到 redis.conf。
考慮到性能問題,每次認證都用 PBKDF2 會比較耗時, 經過評審,采用在首次認證成功后,內存采用 SHA256 緩存,后續的請求優先使用 SHA256 校驗。
2. 支持秘鑰替換 (重要)
安全問題:涉及加解密的秘鑰不能寫死到代碼中。
解決方案: 秘鑰支持定期替換。
?redis 服務端 redis-server:
配置文件增加配置項:cipher-dir
配置為 redis_shared.key 和 root.key 所在的文件夾的全路徑,例如:cipher-dir /opt/redis/etc/cipher
?redis 客戶端:redis-cli
添加參數 -cipherdir,指向 redis_shared.key 和 root.key 所在的文件夾的全路徑
例如:redis-cli -h 127.0.0.1 -cipherdir /opt/redis/etc/cipher -a sessionrdb@dbuser@Changeme_123 -p 32091
?redis 客戶端 SDK:jedis*.jar
同一個進程內,Jedis 接口為 string, dbname@user@pwd,因為第三方接口 (類似 Jdbc),無法加密。
3. 密碼傳輸 (重要)
安全問題:原生 Redis 通過 config get 命令可能獲取到服務端敏感信息。
解決方案:禁止將口令等敏感信息傳送到客戶端,因此需要禁掉 config get requirepas/masterauth/requireuserpass 等功能。
4. 密碼修改 (重要)
安全問題:修改密碼明文傳輸:config set masterauth pwd
解決方案:Redis 內存保存明文密碼問題: masterauth 使用 AES128 加密,密碼采用 AES128 保存
口令安全
1. 產品缺省啟用數據庫口令復雜度檢查功能
安全問題:Redis 修改密碼沒有復雜度檢查。
解決方案:提供單獨的 Redis 修改工具來修改密碼,特別注意以下幾點:
1.進行口令復雜度檢查。
2.在輸入錯誤的用戶名或密碼時,不能出現類似于“密碼錯誤”、“用戶名不存在”之類的過于明確的原因提示信息,以防止攻擊者用于猜解系統用戶名 / 口令。
3.修改密碼要校驗老密碼。
4.修改數據庫密碼不能和用戶名一樣。
5.交互式密碼修改時要隱藏密碼。
6.在文檔中建議通過交互式修改密碼。
2. 防暴力破解, 配置賬戶登錄失敗嘗試次數
安全問題:Redis 原生版本存在暴力破解情況。
解決方案:最大失敗次數:maxauthfailtimes(單位 次,有效范圍 (0,10 萬],默認值 1 萬)
說明:該配置項只支持在啟動時 redis.conf 配置,不支持動態修改, 屏蔽掉對應 config set。
不支持設置為 0:表示不鎖定任何 IP。
3. 配置賬戶鎖定后自動解鎖時間
鑒權失敗鎖定時間:authfaillocktime(單位分鐘,有效范圍 [0~999],默認值 10)
設置為 0 時,表示永久鎖定。
說明: 該配置項只支持在啟動時 redis.conf 配置,不支持動態修改, 屏蔽掉對應 config set。
4. 查看鎖定 IP
問題:IP 鎖定后需要查看被鎖定 IP。
解決方案:
只有管理員可以查看已經鎖定的 IP 列表,分隔符為英文冒號(:)
示例 1:config get lockedips
返回:10.67.147.111;10.67.147.112;
示例 2:config get lockedips
返回:10.67.147.111;
說明:不支持 config set lockedips,如果強制執行,返回錯誤:ERR Unsupported CONFIG parameter: lockedips
5. 手工鎖定 IP 的解除
只有管理員可以執行命令解鎖鎖定的 IP,只支持解鎖單個 IP 或者解鎖全部 IP
解決方案:
示例 1,解鎖單個 IP:config set unlockips 10.67.147.111
示例 2,解鎖所有 IP:config set unlockips“all”
說明:不支持 config get unlockips,如果強制執行,返回空,redis-cli 提示:(empty list or set)
如果參數中的 IP 沒有出現過異常,會返回解鎖失敗,例如:
(error) ERR Invalid argument 10.67.147.111 for CONFIG SET unlockips
執行手動解鎖,記錄 trace,例如:
例如:26 Dec 03:15:19.958 * 10.67.147.113 unlocked by 10.67.147.111:59417 日志審計
6. 安全審計
1.Redis 自身支持日志記錄到系統日志,如 /var/log/localmessage。但需要通過在 redis.conf 進行如下配置:
syslog-enabled yes
syslog-ident redis
syslog-facility local0
2. 客戶端登錄,記錄客戶端 IP,賬號等信息。
3. 相關維護操作必須有詳細的日志記錄。
示例: 29118:S 26 Nov 11:19:29.100 * The readdbuser logged in successfully;10.145.93.119:52817;
7. 操作日志轉儲
安全問題:官方版本 Redis 日志不會轉儲,長時間運行可能會把磁盤占滿。
解決方案:單獨運行 tracemonitor 進程 (python 版), 定期管理 Redis 日志文件大小,主要是日志壓縮和定期刪除,避免占用過多磁盤。
說明:目前平臺默認 60 秒檢測一次,日志達到 20M 壓縮,日志個數最大 50 個。
以上就是“Redis 緩存數據庫加固措施有哪些”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,丸趣 TV 小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注丸趣 TV 行業資訊頻道。