Redis沒有實現訪問控制這個功能,但是它提供了一個輕量級的認證方式(密碼),可以通過編輯【redis.conf】配置文件來啟用認證,這里簡單介紹一下Redis中如何設置、查看和校驗密碼(登錄驗證和操作時驗證)。
通過配置文件修改Redis的密碼
在【redis.conf】配置文件中有一個【requirepass】配置項,這個配置項就是配置Redis訪問密碼的參數:
requirepass yanggb
注意事項
1.修改訪問密碼之后要重啟Redis。
2.設置的訪問密碼要盡可能復雜,盡可能長(正式上線)。因為Reids的查詢速度是非常快的,如果一個不懷好意的外部用戶想要破解密碼的話,一秒鍾可以嘗試150K個密碼,這時候只要設置的密碼足夠復雜足夠長,就可以在一定程度上防止密碼被輕易破解。
通過命令修改Redis的密碼
修改Redis密碼的命令是:
config set requirepass yanggb
注意事項
1.通過命令修改訪問密碼不需要重啟Redis(即時生效)。
2.如果【redis.conf】配置文件中的【requirepass】配置項已經被配置,通過命令修改的訪問密碼會被記錄到該參數中,這種情況下修改之后是一直有效的。
3.如果【redis.conf】配置文件中的【requirepass】配置項沒有被配置,通過命令修改的訪問密碼不會被記錄到該參數中,這種情況下重啟Redis之后密碼就會失效。
查詢Redis的密碼與權限認證
查詢Redis密碼的命令是:
config get requirepass
不出意外的話,會報無操縱權限的錯誤:(error) ERR operation not permitted。
這時候需要先進行權限認證(檢驗密碼):
auth yanggb
再次執行前面的命令就能獲取到密碼了(??我知道密碼還要查密碼干嘛,神一樣的操作)。
登錄有密碼校驗的Redis
有密碼校驗的Redis需要在登錄Redis的時候輸入密碼:
redis-cli -p 6379 -a yanggb
也可以先登錄之后再進行權限認證:
redis-cli -p 6379
auth yanggb
注意事項
1.auth命令和其他Redis提供的命令一樣都是沒有加密的,阻止不了攻擊者在網絡上竊取你的密碼。
總結
密碼認證層的目的是提供多一層簡單的保護,當防火牆或者其他用來保護Redis的系統防御外部攻擊失敗的時候,這層密碼校驗層就能有效防止無密碼用戶對Redis的數據訪問。
"有些傷,是永遠不會愈合了。"