Elasticsearch 如何安全加固


①不對外開放端口、不公網裸奔

操作如下:

默認開啟的 9200 端口(ES)、5601 端口(Kibana)、9000 端口(cerebro)、5000 端口(ElasticHQ)等 ELK stack 相關端口不對外公布。

盡量內網環境運行,不公網裸奔。

如果要映射開放端口,要限定好指定 IP 訪問,用完后關閉端口映射。

②升級高版本 Elasticsearch,使用 X-pack 基礎安全功能

Elasticsearch 7.1&6.8 版本之后,X-pack 基礎安全功能免費。

這意味着:

Space、角色、用戶基礎功能免費,Elasticsearch、Kibana 訪問都可以設置上復雜的用戶名和密碼。

集群之間 TLS 加密通信免費。

互聯網訪問可以由 HTTP 升級為 HTTPS。

③設置 Nginx 反向代理服務器,並設置 HTTP Basic 認證來實現 Elasticsearch 的登錄認證

Elasticsearch 6.8 及 7.1 之前的版本適用。

④Elasticsearch 集群禁用批量刪除索引

批量刪除操作類似“rm -rf ”刪庫跑路操作,若 ES 集群沒有備份,后果不堪設想。

  1. 禁用批量刪除不止是對外,對內也能起到防護作用。對一些人來說,能夠用單個命令來刪除所有數據可能會導致可怕的后果。
  2. 如何避免意外的大量刪除?

實踐方案 1

你可以在你的 elasticsearch.yml 做如下配置:

action.destructive_requires_name: true

實踐方案 2

PUT /_cluster/settings
{
    "persistent" : {
       "action.destructive_requires_name":true
    }
}

驗證:

DELETE kibana_*

報錯如下,也就是說不能批量刪除索引了:

{
  "error": {
    "root_cause": [
      {
        "type": "illegal_argument_exception",
        "reason": "Wildcard expressions or all indices are not allowed"
      }
    ],
    "type": "illegal_argument_exception",
    "reason": "Wildcard expressions or all indices are not allowed"
  },
  "status": 400
}

⑤定期做好集群的全量和增量快照

結合:Elasticsearch _snapshot 和 restore API 能很好實現備份和恢復功能。確保數據由於誤操作,能第一時間恢復還原數據。

第三方導出工具:elasticdump,esm 等也都可以拿來主義。

⑥Elasticsearch 中保存的數據要做基本的脫敏處理

在涉及客戶安全數據或者一些商業性敏感數據的情況下,在不違反系統規則條件下,對真實數據進行改造並提供測試使用,如身份證號、手機號、卡號、客戶號等個人信息都需要進行數據脫敏。是數據庫安全 技術之一。

數據脫敏方式——通過對敏感信息采用脫敏方式進行匿名化,防止因生產庫中的主要數據,明文顯示在測試系統中,導致數據泄漏問題。

生活中也不乏數據脫敏的例子,比如:火車票上的身份證、電商收貨人電話都會對敏感信息做處理,打上 XXXX。

實際 Elasticsearch 存儲層面涉及較少,更多的是:后端做業務脫敏處理,前端脫敏顯示。

出處:轉載自微信公眾號銘毅天下


免責聲明!

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



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