資料千萬條,安全第一條

HULK一線技術雜談發表於2019-02-20

短短一個月內Elasticsearch被曝了5次資料洩露事件。他們一定沒有看到女主大大之前發過的文章《謹慎前行-淺談Elasticsearch安全策略》,今天帶大家回顧一下~

ElasticSearch伺服器這一為搜尋功能提供動力的技術,在2019年的第一個月就頻繁地發生了資料洩露事件,而且洩露資料的輻射面都不算小。

VOIPO 超百萬的電話和簡訊資料洩露;

 青年學生組織 AIESEC 的 400 萬條志願者資訊洩露;

 線上賭場洩漏 1.08 億投注資訊; 

美國多家大銀行貸款檔案遭洩露,檔案數量達 2400 萬; 

美國多家大銀行貸款檔案遭洩露,檔案數量達 2400 萬;

真是不能讓人好好過年

資料千萬條,安全第一條

為此,

360 DBA 團隊提醒您

資料千萬條,安全第一條

使用不謹慎,使用者兩行淚

資料千萬條,安全第一條

在之前的文章《謹慎前行-淺談Elasticsearch安全策略》,分享了我們團隊所做的一系列保證Elasticsearch的安全的措施,今天帶大家回顧一下重點~~

安全策略

網路層

除卻“內鬼”的因素,駭客的攻擊基本都是透過外部網路,所以這裡是保障Elasticsearch安全的第一道屏障。相信大家都有自己的網路安全策略,硬體防火牆也好,軟體防火牆也罷,按照自己的需求做好設定和維護即可。可是如果沒有的話,那對不起,“蓬門今始為君開”,駭客豈有不光顧的道理。

OS層

 
解除安裝公網IP

如果說網路屏障給大家圈起了“院牆”,那我們伺服器上的公網IP就像是搭在後院牆上的“梯子”。雖然有了圍牆,卻也難保不會有順梯翻牆的“樑上君子”。所以如果大家的Elasticsearch都在內網環境使用,儘量解除安裝掉沒有使用的公網IP吧,騰出網路卡做更多有意義的事情。

普通使用者啟動

之前已經不止一次的曝出Linux下各種ROOT提權的問題,所以還是建議使用非ROOT使用者啟動Elasticsearch吧,並且相關資料目錄的許可權和屬主一併改為非ROOT使用者。就像是把你家金庫託管給你最信任的人一樣。

 Server層

替換預設埠

眾所周知,Elasticsearch預設的http.port是9200,叢集各節點間的通訊埠transport.tcp.port是9300;這就像是你家金庫的大門,如果一眼就能辨識,那駭客攻擊就可以在最短的時間做到有的放矢。

所以強烈建議替換掉Elasticsearch的監控埠,就像是給你家金庫做了個“暗門”,駭客想要進入金庫至少先得找到門路才行。

使用者及許可權認證

如果說Elasticsearch是一個存放著寶貝,時刻受到“樑上君子”覬覦的保險櫃,那麼沒有開啟許可權認證的Elasticsearch就像是沒有密碼鎖一樣,只要找到了這個保險櫃,那裡面的寶貝就可以任之取之了。所以要避免駭客入侵的最有力的手段,也是最後一層屏障,那就是使用者及許可權認證。

可是在開題我們就說到了,Elasticsearch本身沒有使用者及許可權認證體系。

雖然官方提供了自己的許可權管理系統—— Shield, 但是它——收費! (小編不自覺的豎起了中指)

本著“能免費用,絕不花錢買”的持家宗旨,在這裡給大家介紹一款實用的開源Elasticsearch許可權管理系統——Search Guard

先來看看Search Guard都支援哪些功能及特性:(請原諒小編是個截圖黨)

資料千萬條,安全第一條

接下來就大家最關心的問題簡單總結一下(這裡只翻譯一下免費版提供的功能)

  1. Search Guard支援Transport Layer(Node-to-node)和REST Layer(HTTP/HTTPS)的SSL/TLS加密傳輸,並且Transport Layer和REST Layer都可以單獨配置是否開啟SSL/TLS加密。

  2. Search Guard提供了一套完整的“使用者-角色-許可權”控制系統。免費版許可權可以控制到indice/type、host級別。

  3. 如果需要Document level security(DLS)和Field level security(FLS)級別的許可權控制,或者Audit logging審計功能,或者需要支援如LDAP、Kerberos等第三方使用者認證系統的話,那就乖乖購買Enterprise License吧(每個叢集一個License,無所謂叢集規模)。

  4. Search Guard許可權可以動態配置,我們可以把需要的許可權新增到對應的檔案,這些檔案都作為文件儲存在Elasticsearch中的searchguard索引中,然後透過sgadmin工具來更新配置(即將檔案載入到ES),載入後立即生效,無需重啟ES節點。

  5. Search Guard 以外掛的形式釋出,它要提供服務需要依賴Search Guard SSL。在Elasticsearch 5.x之前需要單獨安裝Search Guard和Search Guard SSL;Elasticsearch 5.x之後,Search Guard預設已經整合了對應版本的Search Guard SSL,無需單獨安裝了。

補充一點,Search Guard可以實現和Logstash、Kibana的完美結合,對於使用ELK的使用者大可不必擔心,修改整合很容易的。

並且,Elasticsearch在5.x之後,對Search Guard、Search Guard SSL (當然還有Logstash 、Kibana)等外掛的版本號都做了統一,變得更加的簡單直觀了。

總結

以上是我們在部署Elasticsearch時所作的一些安全策略,把這些分享出來希望可以幫助到大家。有一些策略其實很簡單,可往往越是細小的點,越容易被大家忽略,越容易成為日後維護的坑。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31555491/viewspace-2636498/,如需轉載,請註明出處,否則將追究法律責任。

相關文章