redis密碼設(shè)置叽奥、訪問權(quán)限控制等安全設(shè)置
redis作為一個(gè)高速數(shù)據(jù)庫扔水,在互聯(lián)網(wǎng)上,必須有對應(yīng)的安全機(jī)制來進(jìn)行保護(hù)朝氓,方法有2魔市,如下。
1.比較安全的辦法是采用綁定IP的方式來進(jìn)行控制赵哲。
請?jiān)趓edis.conf文件找到如下配置
If you want you can bind a single interface, if the bind option is not
specified all the interfaces will listen for incoming connections.
bind 127.0.0.1
把# bind 127.0.0.1前面的 注釋#號(hào)去掉待德,然后把127.0.0.1改成你允許訪問你的redis服務(wù)器的ip地址,表示只允許該ip進(jìn)行訪問
這種情況下枫夺,我們在啟動(dòng)redis服務(wù)器的時(shí)候不能再用:redis-server将宪,改為:redis-server path/redis.conf 即在啟動(dòng)的時(shí)候指定需要加載的配置文件,其中path/是你上面修改的redis配置文件所在目錄,這個(gè)方法有一點(diǎn)不太好,我難免有多臺(tái)機(jī)器訪問一個(gè)redis服務(wù)涧偷。
2.設(shè)置密碼簸喂,以提供遠(yuǎn)程登陸
打開redis.conf配置文件,找到requirepass燎潮,然后修改如下:
requirepass yourpassword
yourpassword就是redis驗(yàn)證密碼喻鳄,設(shè)置密碼以后發(fā)現(xiàn)可以登陸,但是無法執(zhí)行命令了确封。
命令如下:
redis-cli -h yourIp -p yourPort//啟動(dòng)redis客戶端除呵,并連接服務(wù)器
keys * //輸出服務(wù)器中的所有key
報(bào)錯(cuò)如下
(error) ERR operation not permitted
這時(shí)候你可以用授權(quán)命令進(jìn)行授權(quán),就不報(bào)錯(cuò)了
命令如下:
auth youpassword
另外爪喘,在連接服務(wù)器的時(shí)候就可以指定登錄密碼颜曾,避免單獨(dú)輸入上面授權(quán)命令
命令如下:
redis-cli -h yourIp-p yourPort -a youPassword
除了在配置文件redis.conf中配置驗(yàn)證密碼以外,也可以在已經(jīng)啟動(dòng)的redis服務(wù)器通過命令行設(shè)置密碼秉剑,但這種方式是臨時(shí)的泛豪,當(dāng)服務(wù)器重啟了密碼必須重設(shè)。命令行設(shè)置密碼方式如下:
config set requirepass yourPassword
有時(shí)候我們不知道當(dāng)前redis服務(wù)器是否有設(shè)置驗(yàn)證密碼侦鹏,或者忘記了密碼是什么诡曙,我們可以通過命令行輸入命令查看密碼,命令如下:
config get requirepass
如果redis服務(wù)端沒有配置密碼略水,會(huì)得到nil价卤,而如果配置了密碼,但是redis客戶端連接redis服務(wù)端時(shí)渊涝,沒有用密碼登錄驗(yàn)證慎璧,會(huì)提示:operation not permitted,這時(shí)候可以用命令:auth yourpassword 進(jìn)行驗(yàn)證密碼,再執(zhí)行 config set requirepass跨释,就會(huì)顯示yourpassword
由于redis并發(fā)能力極強(qiáng)胸私,僅僅搞密碼,攻擊者可能在短期內(nèi)發(fā)送大量猜密碼的請求煤傍,很容易暴力破解盖文,所以建議密碼越長越好,比如20位蚯姆。(密碼在 conf文件里是明文,所以不用擔(dān)心自己會(huì)忘記)
本文參考如下文章洒敏,并根據(jù)自己的實(shí)際使用經(jīng)驗(yàn)進(jìn)行了加工龄恋,細(xì)化。轉(zhuǎn)載請注明:http://www.cnblogs.com/langtianya/p/5189234.html