<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
本篇文章基於的
Redis
的環境為:redis_version:7.0.5
檔案內容均為學習
Redis
官方檔案心得.
Redis
相信大家都或多或少都聽說過吧,作為記憶體資料庫的代表, 但是近些年Redis
被攻擊的典範也是越來越多,我們將如何防護Redis
安全呢? 跟著我們的指令碼,來看看這篇文章吧.
對於Redis
而言,我們設定的方法大概有以下幾種
redis.conf
設定。Redis
中使用CONFIG SET
來設定。如之前所述,安全方面歸根結底,總結一句話就是:最好的安全設定就是最小化許可權。
那我們來看下,Redis
有哪些安全設定呢?
作為Redis
伺服器而言, 應該僅允許受信任的使用者端存取,其他存取都應該拒絕,因此也善用防火牆相當重要,當然這個防火牆不是在Redis
是做不了的,應該在Redis
所屬的機器進行設定。
若該Redis
是自建於本地實體機中,那麼應該考慮防火牆軟體,例如: iptables
、firewalld
等。若是存在於各雲廠商範例中(ECS
),那麼應該善用雲廠商提供的防火牆。
那我們Redis
在這一步就什麼也不能做了麼? 不是的,在Redis
設定中,有一個設定引數為bind
,該引數選項是將Redis
對相應的網路卡監聽,若設定如下:
bind 127.0.0.1
則監聽在原生的迴環地址上,若該值為空,則監聽所有的網路卡(3.2版本提供的功能)。
若想監聽在多個網路卡上的話,ip
地址直接可以使用空格分開即可,例如:
bind 127.0.0.1 10.0.2.15
則該設定則是監聽到127.0.0.1
以及 10.0.2.15
網路卡上。
在已經啟動的Redis
中,想檢視Redis
監聽到哪些網路卡上,除了檢視所屬機器的網路狀態外,還可以通過CONFIG GET bind
來獲取。
除此之外,Redis
還為我們提供了"保護模式",即設定: protected-mode
,預設為yes
。請不要關閉它,因為它能夠檢測到啟動後的Redis
是否安全,其檢測策略為:當Redis
沒有設定密碼的時候,從外部進行存取,這就會觸發它的保護模式,即向存取使用者提示資訊:
Redis is running in protected mode because protected mode is enabled and no password is set for the default user.
當然網上很多部落格提供的最快解決如上問題的方法是關閉其保護模式,請不要這麼做.
接上一段落,若Redis
想從外部進行存取,除了關閉保護模式以外,還可以設定Redis
密碼. 在Redis
中,通過設定requirepass
來設定密碼,不過設定密碼應當注意一下,Redis
密碼不應該設定為若密碼,建議設定為複雜密碼.
原因如下:
auth
命令,可以理解為是Redis
的普通命令,即能夠被無限執行,換言之有被爆破的可能.redis-cli
可以通過載入使用者端的redis.conf
檔案來校驗伺服器, 不需要管理員記住密碼.如上所屬,使用者端在校驗身份的時候,傳送的是auth
命令,該命令可以理解為Redis
的普通命令,是沒有被加密的, 若請求報文被監聽了,也有洩密的可能. 所以儘可能的使用加密進行通訊,即: SSL/TLS
.
在Redis
中有一些非常危險的命令,例如: FLUSHALL
,FLUSHDB
,該命令前者是清空所有的資料,後則是清空當前庫的資料, 在日常工作中,如果誤操作了,那後果不堪設想. 還有一些命令,執行後可能會導致系統阻塞,非常不建議使用,例如:KEYS
,HGETALL
等.
基於上述情況,禁用某些命令來保證系統安全是非常有必要的, 好在Redis
給我們提供了方法. 若想禁用某些命令,可以在其伺服器redis.conf
組態檔中,使用rename-command
指令,例如:
rename-command FLUSHALL "" rename-command FLUSHDB ""
若設定為空的話,則是禁止使用命令.修改設定,啟動伺服器後,若再使用這些命令,即會報錯: ERR unknown command
.
若並非想禁用命令,而是想重新命名命令,那麼將空字串修改為重新命名後的命令即可,例如:
rename-command KEYS FINDALL
設定後,即可使用FINDALL
來代替KEYS
, 案例如下:
127.0.0.1:6379> set juejinNmae pdudo OK 127.0.0.1:6379> FINDALL * 1) "juejinNmae" 127.0.0.1:6379>
開啟ssl/tls
後勢必會降低Redis
的吞吐量,所以是否採用該設定主要還是看業務情況,若業務想要避免被抓包等,適合開啟該設定,若僅在某一內網使用,那就沒必要的.
Redis 6.0
以後啟用了SSL/TLS
,但是注意, 若想使用SSL/TLS
的話,在編譯的時候需要指定make BUILD_TLS=yes
, 這裡需要注意的是, 使用者端和伺服器都需要編譯才行.
這裡簡單舉個例子如何啟動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
資料庫啟動
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
埠後,可以直接設定:
port 0 tls-port 6379
這樣的話,通過6379
連線,預設情況下是走的SSL/TLS
安全一直是大家比較關心的話題,在Redis
中,我們不僅僅要防外部入侵, 還要知道, 技術人員的誤操作也許破壞的更為嚴重, 始終需要記住, 許可權最小化.不僅對外,也需要對內.
以上就是Redis資料庫安全詳解的詳細內容,更多關於Redis資料庫安全的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45