1.禁止一些高危命令(重啟redis才能生效)
- 修改 redis.conf 文件,禁用遠程修改 DB 文件地址
-
rename-command FLUSHALL ""
-
rename-command CONFIG ""
-
rename-command EVAL ""
- 或者通過修改redis.conf文件,改變這些高危命令的名稱
-
rename-command FLUSHALL "name1"
-
rename-command CONFIG "name2"
-
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服務。
