欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Redis數(shù)據(jù)庫安全詳解

 更新時間:2022年11月11日 14:12:01   作者:pdudo  
這篇文章主要為大家介紹了Redis數(shù)據(jù)庫安全詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

前言

本篇文章基于的Redis 的環(huán)境為: redis_version:7.0.5

文檔內(nèi)容均為學(xué)習(xí)Redis 官方文檔心得.

Redis相信大家都或多或少都聽說過吧,作為內(nèi)存數(shù)據(jù)庫的代表, 但是近些年Redis 被攻擊的典范也是越來越多,我們將如何防護(hù)Redis 安全呢? 跟著我們的腳本,來看看這篇文章吧.

對于Redis而言,我們設(shè)置的方法大概有以下幾種

  • 通過redis.conf 設(shè)置。
  • 在已經(jīng)啟動的Redis 中使用CONFIG SET 來設(shè)置。

如之前所述,安全方面歸根結(jié)底,總結(jié)一句話就是:最好的安全設(shè)置就是最小化權(quán)限。

那我們來看下,Redis 有哪些安全設(shè)置呢?

開放最小化很重要

作為Redis 服務(wù)器而言, 應(yīng)該僅允許受信任的客戶端訪問,其他訪問都應(yīng)該拒絕,因此也善用防火墻相當(dāng)重要,當(dāng)然這個防火墻不是在Redis 是做不了的,應(yīng)該在Redis 所屬的機(jī)器進(jìn)行設(shè)置。

若該Redis 是自建于本地實(shí)體機(jī)中,那么應(yīng)該考慮防火墻軟件,例如: iptables 、firewalld 等。若是存在于各云廠商實(shí)例中(ECS ),那么應(yīng)該善用云廠商提供的防火墻。

那我們Redis 在這一步就什么也不能做了么? 不是的,在Redis 配置中,有一個配置參數(shù)為bind ,該參數(shù)選項是將Redis對相應(yīng)的網(wǎng)卡監(jiān)聽,若配置如下:

bind 127.0.0.1

則監(jiān)聽在本地的回環(huán)地址上,若該值為空,則監(jiān)聽所有的網(wǎng)卡(3.2版本提供的功能)。

若想監(jiān)聽在多個網(wǎng)卡上的話,ip 地址直接可以使用空格分開即可,例如:

bind 127.0.0.1 10.0.2.15

則該配置則是監(jiān)聽到127.0.0.1 以及 10.0.2.15 網(wǎng)卡上。

在已經(jīng)啟動的Redis 中,想查看Redis 監(jiān)聽到哪些網(wǎng)卡上,除了查看所屬機(jī)器的網(wǎng)路狀態(tài)外,還可以通過CONFIG GET bind 來獲取。

除此之外,Redis還為我們提供了"保護(hù)模式",即配置: protected-mode ,默認(rèn)為yes 。請不要關(guān)閉它,因?yàn)樗軌驒z測到啟動后的Redis 是否安全,其檢測策略為:當(dāng)Redis 沒有設(shè)置密碼的時候,從外部進(jìn)行訪問,這就會觸發(fā)它的保護(hù)模式,即向訪問用戶提示信息:

Redis is running in protected mode because protected mode is enabled and no password is set for the default user.

當(dāng)然網(wǎng)上很多博客提供的最快解決如上問題的方法是關(guān)閉其保護(hù)模式,請不要這么做.

認(rèn)證不可少

接上一段落,若Redis 想從外部進(jìn)行訪問,除了關(guān)閉保護(hù)模式以外,還可以設(shè)置Redis 密碼. 在Redis 中,通過配置requirepass 來設(shè)置密碼,不過設(shè)置密碼應(yīng)當(dāng)注意一下,Redis 密碼不應(yīng)該設(shè)置為若密碼,建議設(shè)置為復(fù)雜密碼.

原因如下:

  • 客戶端在校驗(yàn)身份的時候,使用的是auth 命令,可以理解為是Redis 的普通命令,即能夠被無限執(zhí)行,換言之有被爆破的可能.
  • redis-cli可以通過加載客戶端的redis.conf 文件來校驗(yàn)服務(wù)器, 不需要管理員記住密碼.

如上所屬,客戶端在校驗(yàn)身份的時候,發(fā)送的是auth 命令,該命令可以理解為Redis 的普通命令,是沒有被加密的, 若請求報文被監(jiān)聽了,也有泄密的可能. 所以盡可能的使用加密進(jìn)行通信,即: SSL/TLS.

防止管理員誤操作也很重要

Redis中有一些非常危險的命令,例如: FLUSHALL ,FLUSHDB ,該命令前者是清空所有的數(shù)據(jù),后則是清空當(dāng)前庫的數(shù)據(jù), 在日常工作中,如果誤操作了,那后果不堪設(shè)想. 還有一些命令,運(yùn)行后可能會導(dǎo)致系統(tǒng)阻塞,非常不建議使用,例如:KEYS ,HGETALL等.

基于上述情況,禁用某些命令來保證系統(tǒng)安全是非常有必要的, 好在Redis給我們提供了方法. 若想禁用某些命令,可以在其服務(wù)器redis.conf 配置文件中,使用rename-command 指令,例如:

rename-command FLUSHALL ""
rename-command FLUSHDB ""

若設(shè)置為空的話,則是禁止使用命令.修改配置,啟動服務(wù)器后,若再使用這些命令,即會報錯: ERR unknown command .

若并非想禁用命令,而是想重命名命令,那么將空字符串修改為重命名后的命令即可,例如:

rename-command KEYS FINDALL

設(shè)置后,即可使用FINDALL 來代替KEYS , 案例如下:

127.0.0.1:6379> set juejinNmae pdudo
OK
127.0.0.1:6379> FINDALL *
1) "juejinNmae"
127.0.0.1:6379> 

擔(dān)心網(wǎng)絡(luò)被監(jiān)聽? 開啟TLS之旅吧

開啟ssl/tls 后勢必會降低Redis 的吞吐量,所以是否采用該配置主要還是看業(yè)務(wù)情況,若業(yè)務(wù)想要避免被抓包等,適合開啟該設(shè)置,若僅在某一內(nèi)網(wǎng)使用,那就沒必要的.

Redis 6.0 以后啟用了SSL/TLS ,但是注意, 若想使用SSL/TLS 的話,在編譯的時候需要指定make BUILD_TLS=yes , 這里需要注意的是, 客戶端和服務(wù)器都需要編譯才行.

這里簡單舉個例子如何啟動Redis吧.

證書生成

openssl genrsa -out ca.key 2048
openssl req -new -key ca.key -out ca.csr
openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt

數(shù)據(jù)庫啟動

redis-server --tls-port 6379 --port 0  --tls-cert-file ca.crt --tls-key-file ca.key  --tls-ca-cert-file ca.crt

客戶端連接

redis-cli --tls --cert ca.crt --key ca.key  --cacert ca.crt

在使用SSL/TLS 后,我們需要禁用非TLS 端口并且開啟SSL/TLS 端口后,可以直接設(shè)置:

port 0
tls-port 6379

這樣的話,通過6379 連接,默認(rèn)情況下是走的SSL/TLS

總結(jié)

安全一直是大家比較關(guān)心的話題,在Redis 中,我們不僅僅要防外部入侵, 還要知道, 技術(shù)人員的誤操作也許破壞的更為嚴(yán)重, 始終需要記住, 權(quán)限最小化.不僅對外,也需要對內(nèi).

以上就是Redis數(shù)據(jù)庫安全詳解的詳細(xì)內(nèi)容,更多關(guān)于Redis數(shù)據(jù)庫安全的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • redis使用Lua腳本解決多線程下的超賣問題及原因解析

    redis使用Lua腳本解決多線程下的超賣問題及原因解析

    這篇文章主要介紹了redis使用Lua腳本解決多線程下的超賣問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-05-05
  • redis單節(jié)點(diǎn)安裝與配置方式

    redis單節(jié)點(diǎn)安裝與配置方式

    這篇文章主要介紹了redis單節(jié)點(diǎn)安裝與配置方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • 關(guān)于linux redis安裝及安裝遇到的問題

    關(guān)于linux redis安裝及安裝遇到的問題

    這篇文章主要介紹了關(guān)于linux redis安裝及安裝遇到的問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • Spark刪除redis千萬級別set集合數(shù)據(jù)實(shí)現(xiàn)分析

    Spark刪除redis千萬級別set集合數(shù)據(jù)實(shí)現(xiàn)分析

    這篇文章主要為大家介紹了Spark刪除redis千萬級別set集合數(shù)據(jù)實(shí)現(xiàn)過程分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • 深入理解redis分布式鎖和消息隊列

    深入理解redis分布式鎖和消息隊列

    本篇文章主要介紹了深入理解redis分布式鎖和消息隊列,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • Redis持久化與主從復(fù)制的實(shí)踐

    Redis持久化與主從復(fù)制的實(shí)踐

    這篇文章主要介紹了Redis持久化與主從復(fù)制的實(shí)踐,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • redis緩存一致性延時雙刪代碼實(shí)現(xiàn)方式

    redis緩存一致性延時雙刪代碼實(shí)現(xiàn)方式

    這篇文章主要介紹了redis緩存一致性延時雙刪代碼實(shí)現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • 關(guān)于SpringBoot 使用 Redis 分布式鎖解決并發(fā)問題

    關(guān)于SpringBoot 使用 Redis 分布式鎖解決并發(fā)問題

    針對上面問題,一般的解決方案是使用分布式鎖來解決,本文通過場景分析給大家介紹關(guān)于SpringBoot 使用 Redis 分布式鎖解決并發(fā)問題,感興趣的朋友一起看看吧
    2021-11-11
  • Redis7.2.x主從復(fù)制的實(shí)現(xiàn)示例

    Redis7.2.x主從復(fù)制的實(shí)現(xiàn)示例

    本文主要介紹了Redis7.2.x主從復(fù)制的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-06-06
  • redis客戶端連接錯誤 NOAUTH Authentication required

    redis客戶端連接錯誤 NOAUTH Authentication required

    本文主要介紹了redis客戶端連接錯誤 NOAUTH Authentication required,詳細(xì)的介紹了解決方法,感興趣的可以了解一下
    2021-07-07

最新評論