Redis 配置密碼認證


  在上一篇文章《Redis 部署》中介紹了Redis的基礎安裝,其中簡單介紹了Redis配置文件redis.conf里面的參數,Redis在市場上應用越來越普及這樣有好處也里弊端,例如好處有:大量的使用會使用Redis越來越穩定(BUG快速解決)、解決方案越來越多也越來越穩定、相關資料也越來越多等等好處,然后問題也越來越明顯,例如:Redis的安全問題日益提升,安全包括兩個方面:①外部的安全,包含:攻擊、入侵、掛毒(例如:Redis的挖礦病毒已經不在是個例)等,②內部的安全:離職人員的惡意刪除數據或者無意誤刪等操作。

  來自外部的安全風險,我們可以通過兩個方面來解決:首先通過防火牆來指定IP訪問Redis(Redis一般都是被服務直接調用,而不是客戶直接調用,那么服務基本都是固定IP,因此這是一個可行的方案),然后修改默認的Redis端口(強行推薦,由於對Redis進行Telnet操作不會有任何提示符,所以黑客如果通過nmap掃描+Telnet試探等都很難准確定位該端口具體運行的服務)。如果這兩個手段基本可以防御80%以上的惡意攻擊或者掃描。

  最后來自內部(也有可能是外部)的安全風險就是:直接連接Redis就登錄,可以進行刪除數據操作(一個flushall命令,干掉半年的辛苦)。該解決方案是給Redis配置訪問密碼。Redis配置訪問密碼有兩種方式:①、修改Redis的配置文件redis.conf。②、在Redis中直接運行配置密碼命令。下面將詳細講解這兩種方法。

  通過Redis命令進行設置密碼(注意:該方法在重啟Redis后密碼將失效):

  首先觀察設置密碼前,只要使用客戶端連接Redis就可以進行所有操作。如下:

#連接Redis命令
/usr/local/redis/bin/redis-cli -h 127.0.0.1 -p 6379
127.0.0.1:6379> KEYS *
(empty list or set)
127.0.0.1:6379> set user ray
OK
127.0.0.1:6379> KEYS *
1) "user"
127.0.0.1:6379> 

 

  然后,通過命令進行設置密碼。如下:

#首先連接Redis,然后執行CONFIG SET requirepass userpassword
/usr/local/redis/bin/redis-cli -h 127.0.0.1 -p 6379
127.0.0.1:6379> KEYS *
1) "user"
127.0.0.1:6379> CONFIG SET requirepass 123.com
OK
127.0.0.1:6379> KEYS *
(error) NOAUTH Authentication required.
127.0.0.1:6379> quit
#從上面可以看到密碼設置成功,同時一旦密碼設置成功,剛剛建立的連接將不能進行任何權限操作

#使用-a userpassword 登錄Redis
/usr/local/redis/bin/redis-cli -h 127.0.0.1 -p 6379 -a 123.com
127.0.0.1:6379> KEYS *
1) "user"
127.0.0.1:6379> set job it
OK
127.0.0.1:6379> KEYS *
1) "job"
2) "user"
127.0.0.1:6379> 
#通過Redis登錄后可以看到可以進行任何操作

 

 

  通過Redis配置文件redis.conf進行設置密碼(注意:該方法設置密碼后需要重啟Redis才生效):

  首先,編輯redis.conf文件,找到下來內容:

# requirepass foobared

 

  然后,把注釋(#)去掉,並把foobared修改為直接的密碼字段。如下:

requirepass ray.com

 

  最后,重啟Redis,登錄連接。如下:

#重啟Redis服務
service redis restart
Stoping redis-server ......
Starting redis-server .....

#不使用認證連接,發現什么有權限的命令都操作不了,提示權限認證問題
/usr/local/redis/bin/redis-cli -h 127.0.0.1 -p 6379
127.0.0.1:6379> KEYS *
(error) NOAUTH Authentication required.
127.0.0.1:6379> quit

#使用-a userpassword 認證登錄,然后可以正常操作所有命令
/usr/local/redis/bin/redis-cli -h 127.0.0.1 -p 6379 -a ray.com
127.0.0.1:6379> KEYS *
1) "user"
2) "job"
127.0.0.1:6379> 

 

  至此,Redis密碼配置已完成,但是需要特別注意的是:使用命令配置密碼,在Redis重啟以后將會失效。而使用配置文件設置密碼,將需要重啟Redis(在生產環境中一般不允許重啟服務)。所以最好的方法是兩者結合,修改Redis配置文件設置密碼,同時使用命令配置相同的密碼,這樣既可以立即生效也不用重啟Redis。

 


免責聲明!

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



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