redis沒有實現訪問控制這個功能,但是它提供了一個輕量級的認證方式,可以編輯redis.conf配置來啟用認證。
1、初始化Redis密碼:
在配置檔案中有個引數: requirepass 這個就是配置redis訪問密碼的引數;
比如 requirepass test123;
(Ps:需重啟Redis才能生效)
redis的查詢速度是非常快的,外部使用者一秒內可以嘗試多大150K個密碼;所以密碼要儘量長(對於DBA 沒有必要必須記住密碼);
2、不重啟Redis設定密碼:
在配置檔案中配置requirepass的密碼(當redis重啟時密碼依然有效)。
redis 127.0.0.1:6379> config set requirepass test123
查詢密碼:
redis 127.0.0.1:6379> config get requirepass
(error) ERR operation not permitted
密碼驗證:
redis 127.0.0.1:6379> auth test123
OK
再次查詢:
redis 127.0.0.1:6379> config get requirepass
1) "requirepass"
2) "test123"
PS:如果配置檔案中沒新增密碼 那麼redis重啟後,密碼失效;
3、登陸有密碼的Redis:
在登入的時候的時候輸入密碼:
redis-cli -p 6379 -a test123
先登陸後驗證:
redis-cli -p 6379
redis 127.0.0.1:6379> auth test123
OK
AUTH命令跟其他redis命令一樣,是沒有加密的;阻止不了攻擊者在網路上竊取你的密碼;
認證層的目標是提供多一層的保護。如果防火牆或者用來保護redis的系統防禦外部攻擊失敗的話,外部使用者如果沒有通過密碼認證還是無法訪問redis的。
本文出自 “技術成就夢想” 部落格,http://weipengfei.blog.51cto.com/1511707/1217872