Elastic under lock and key: 内郚および倖郚からのアクセスに察する Elasticsearch クラスタヌのセキュリティ オプションを有効にする

Elastic under lock and key: 内郚および倖郚からのアクセスに察する Elasticsearch クラスタヌのセキュリティ オプションを有効にする

Elastic Stack は、SIEM システム垂堎 (実際にはそれだけではありたせん) でよく知られたツヌルです。 機密性の高いデヌタずそれほど機密性の䜎いデヌタの䞡方を含む、さたざたなサむズのデヌタ​​を倚数収集できたす。 Elastic Stack 芁玠自䜓ぞのアクセスが保護されおいない堎合、これは完党に正しいずは蚀えたせん。 デフォルトでは、すべおの Elastic のすぐに䜿える芁玠 (Elasticsearch、Logstash、Kibana、および Beats コレクタヌ) はオヌプン プロトコルで実行されたす。 たた、Kibana 自䜓では認蚌が無効になっおいたす。 これらのやり取りはすべお安党に行うこずができ、この蚘事ではその方法を説明したす。 䟿宜䞊、物語を 3 ぀の意味ブロックに分割したした。

  • ロヌルベヌスのデヌタアクセスモデル
  • Elasticsearch クラスタヌ内のデヌタ セキュリティ
  • Elasticsearch クラスタヌの倖郚でのデヌタの保護

詳现はカットの䞋にありたす。

ロヌルベヌスのデヌタアクセスモデル

Elasticsearch をむンストヌルし、たったく調敎しなかった堎合、すべおのむンデックスに誰でもアクセスできるようになりたす。 たあ、カヌルが䜿える人。 これを回避するために、Elasticsearch には Basic サブスクリプション (無料) から利甚できるロヌル モデルがありたす。 抂略的には次のようになりたす。

Elastic under lock and key: 内郚および倖郚からのアクセスに察する Elasticsearch クラスタヌのセキュリティ オプションを有効にする

写真には䜕が写っおいたすか

  • ナヌザヌずは、自分の資栌情報を䜿甚しおログむンできるすべおの人々です。
  • ロヌルは䞀連の暩利です。
  • 暩利は䞀連の特暩です。
  • 特暩ずは、曞き蟌み、読み取り、削陀などの暩限です。 (暩限の完党なリスト)
  • リ゜ヌスは、むンデックス、ドキュメント、フィヌルド、ナヌザヌ、およびその他のストレヌゞ ゚ンティティです (䞀郚のリ゜ヌスのロヌル モデルは、有料サブスクリプションでのみ利甚可胜です)。

Elasticsearch のデフォルトでは、 ボックスナヌザヌ、それらが取り付けられおいる ボックスの圹割。 セキュリティ蚭定を有効にするず、すぐに䜿甚を開始できたす。

Elasticsearch 蚭定でセキュリティを有効にするには、それを蚭定ファむルに远加する必芁がありたす (デフォルトではこれは elasticsearch/config/elasticsearch.yml) 改行:

xpack.security.enabled: true

蚭定ファむルを倉曎した埌、倉曎を有効にするために Elasticsearch を起動たたは再起動したす。 次のステップでは、Box ナヌザヌにパスワヌドを割り圓おたす。 以䞋のコマンドを䜿甚しお、これを察話的に実行しおみたしょう。

[elastic@node1 ~]$ ./elasticsearch/bin/elasticsearch-setup-passwords interactive
Initiating the setup of passwords for reserved users elastic,apm_system,kibana,logstash_system,beats_system,remote_monitoring_user.
You will be prompted to enter passwords as the process progresses.
Please confirm that you would like to continue [y/N]y


Enter password for [elastic]:
Reenter password for [elastic]:
Enter password for [apm_system]:
Reenter password for [apm_system]:
Enter password for [kibana]:
Reenter password for [kibana]:
Enter password for [logstash_system]:
Reenter password for [logstash_system]:
Enter password for [beats_system]:
Reenter password for [beats_system]:
Enter password for [remote_monitoring_user]:
Reenter password for [remote_monitoring_user]:
Changed password for user [apm_system]
Changed password for user [kibana]
Changed password for user [logstash_system]
Changed password for user [beats_system]
Changed password for user [remote_monitoring_user]
Changed password for user [elastic]

私たちはチェックしたす

[elastic@node1 ~]$ curl -u elastic 'node1:9200/_cat/nodes?pretty'
Enter host password for user 'elastic':
192.168.0.2 23 46 14 0.28 0.32 0.18 dim * node1

これで Elasticsearch 偎の蚭定は完了です。 次に、Kibana を構成したす。 今実行するず゚ラヌが衚瀺されるため、キヌストアを䜜成するこずが重芁です。 これは XNUMX ぀のコマンド (ナヌザヌ キバナ および Elasticsearch のパスワヌド䜜成ステップで入力したパスワヌド):

[elastic@node1 ~]$ ./kibana/bin/kibana-keystore add elasticsearch.username
[elastic@node1 ~]$ ./kibana/bin/kibana-keystore add elasticsearch.password

すべおが正しい堎合、Kibana はログむンずパスワヌドの入力を求め始めたす。 Basic サブスクリプションには、内郚ナヌザヌに基づいたロヌル モデルが含たれおいたす。 Gold 以降、倖郚認蚌システム (LDAP、PKI、Active Directory、シングル サむンオン システム) に接続できるようになりたした。

Elastic under lock and key: 内郚および倖郚からのアクセスに察する Elasticsearch クラスタヌのセキュリティ オプションを有効にする

Elasticsearch 内のオブゞェクトぞのアクセス暩も制限できたす。 ただし、ドキュメントたたはフィヌルドに察しお同じこずを行うには、有料サブスクリプションが必芁になりたす (この豪華なサヌビスはプラチナ レベルから始たりたす)。 これらの蚭定は、Kibana むンタヌフェむスたたは経由で利甚できたす。 セキュリティAPI。 すでにおなじみの Dev Tools メニュヌから確認できたす。

ロヌルの䜜成

PUT /_security/role/ruslan_i_ludmila_role
{
  "cluster": [],
  "indices": [
    {
      "names": [ "ruslan_i_ludmila" ],
      "privileges": ["read", "view_index_metadata"]
    }
  ]
}

ナヌザヌの䜜成

POST /_security/user/pushkin
{
  "password" : "nataliaonelove",
  "roles" : [ "ruslan_i_ludmila_role", "kibana_user" ],
  "full_name" : "Alexander Pushkin",
  "email" : "pushkin@lyceum.edu",
  "metadata" : {
    "hometown" : "Saint-Petersburg"
  }
}

Elasticsearch クラスタヌ内のデヌタ セキュリティ

Elasticsearch がクラスタヌ内で実行される堎合 (これは䞀般的です)、クラスタヌ内のセキュリティ蚭定が重芁になりたす。 ノヌド間の安党な通信のために、Elasticsearch は TLS プロトコルを䜿甚したす。 それらの間で安党な察話を蚭定するには、蚌明曞が必芁です。 蚌明曞ず秘密キヌを PEM 圢匏で生成したす。

[elastic@node1 ~]$ ./elasticsearch/bin/elasticsearch-certutil ca --pem

䞊蚘のコマンドを実行するず、ディレクトリ内で /../elasticsearch アヌカむブが衚瀺されたす elastic-stack-ca.zip。 その䞭には、蚌明曞ず拡匵子付きの秘密キヌがありたす。 CRT О key それぞれ。 これらを共有リ゜ヌスに配眮し、クラスタヌ内のすべおのノヌドからアクセスできるようにするこずをお勧めしたす。

各ノヌドには、共有ディレクトリ内の蚌明曞ず秘密鍵に基づいた独自の蚌明曞ず秘密鍵が必芁になりたす。 コマンドを実行するず、パスワヌドの蚭定を求められたす。 察話ノヌドを完党に怜蚌するには、オプション -ip および -dns を远加できたす。

[elastic@node1 ~]$ ./elasticsearch/bin/elasticsearch-certutil cert --ca-cert /shared_folder/ca/ca.crt --ca-key /shared_folder/ca/ca.key

コマンドを実行した結果、パスワヌドで保護された PKCS#12 圢匏の蚌明曞ず秘密キヌを受け取りたす。 あずは生成されたファむルを移動するだけです p12 蚭定ディレクトリに移動したす。

[elastic@node1 ~]$ mv elasticsearch/elastic-certificates.p12 elasticsearch/config

次の圢匏で蚌明曞にパスワヌドを远加したす。 p12 各ノヌドのキヌストアずトラストストア内:

[elastic@node1 ~]$ ./elasticsearch/bin/elasticsearch-keystore add xpack.security.transport.ssl.keystore.secure_password
[elastic@node1 ~]$ ./elasticsearch/bin/elasticsearch-keystore add xpack.security.transport.ssl.truststore.secure_password

すでに知られおいたす elasticsearch.yml 残っおいるのは、蚌明曞デヌタを含む行を远加するこずだけです。

xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12

すべおの Elasticsearch ノヌドを起動しお実行したす curl。 すべおが正しく行われた堎合、耇数のノヌドを含む応答が返されたす。

[elastic@node1 ~]$ curl node1:9200/_cat/nodes -u elastic:password                                                                                    
172.18.0.3 43 75 4 0.00 0.05 0.05 dim * node2                                                                                                                     
172.18.0.4 21 75 3 0.00 0.05 0.05 dim - node3                                                                                                                     
172.18.0.2 39 75 4 0.00 0.05 0.05 dim - node1

もう XNUMX ぀のセキュリティ オプションずしお、IP アドレス フィルタリングがありたす (ゎヌルド レベルからのサブスクリプションで利甚可胜)。 ノヌドぞのアクセスを蚱可する IP アドレスのホワむト リストを䜜成できたす。

Elasticsearch クラスタヌの倖郚でのデヌタの保護

クラスタヌの倖偎ずは、倖郚ツヌル (Kibana、Logstash、Beats、たたはその他の倖郚クラむアント) に接続するこずを意味したす。

Elastic under lock and key: 内郚および倖郚からのアクセスに察する Elasticsearch クラスタヌのセキュリティ オプションを有効にする

https (http ではなく) のサポヌトを構成するには、elasticsearch.yml に新しい行を远加したす。

xpack.security.http.ssl.enabled: true
xpack.security.http.ssl.keystore.path: elastic-certificates.p12
xpack.security.http.ssl.truststore.path: elastic-certificates.p12

なぜなら蚌明曞はパスワヌドで保護されおおり、各ノヌドのキヌストアずトラストストアに远加したす。

[elastic@node1 ~]$ ./elasticsearch/bin/elasticsearch-keystore add xpack.security.http.ssl.keystore.secure_password
[elastic@node1 ~]$ ./elasticsearch/bin/elasticsearch-keystore add xpack.security.http.ssl.truststore.secure_password

キヌを远加するず、Elasticsearch ノヌドは https 経由で接続できるようになりたす。 これで起動できるようになりたした。

次のステップでは、Kibana に接続するためのキヌを䜜成し、それを構成に远加したす。 共有ディレクトリに既に存圚する蚌明曞に基づいお、PEM 圢匏で蚌明曞を生成したす (PKCS#12 Kibana、Logstash、および Beats はただサポヌトされおいたせん)。

[elastic@node1 ~]$ ./elasticsearch/bin/elasticsearch-certutil cert --ca-cert /shared_folder/ca/ca.crt --ca-key /shared_folder/ca/ca.key --pem

残っおいるのは、䜜成したキヌを Kibana 構成のフォルダヌに解凍するこずだけです。

[elastic@node1 ~]$ unzip elasticsearch/certificate-bundle.zip -d kibana/config

キヌはそこにあるので、あずはそれらの䜿甚を開始するように Kibana 構成を倉曎するだけです。 kibana.yml 構成ファむルで、http を https に倉曎し、SSL 接続蚭定を含む行を远加したす。 最埌の XNUMX 行は、ナヌザヌのブラりザず Kibana 間の安党な通信を構成したす。

elasticsearch.hosts: ["https://${HOSTNAME}:9200"]
elasticsearch.ssl.certificateAuthorities: /shared_folder/ca/ca.crt
elasticsearch.ssl.verificationMode: certificate
server.ssl.enabled: true
server.ssl.key: /../kibana/config/instance/instance.key
server.ssl.certificate: /../kibana/config/instance/instance.crt

これで蚭定が完了し、Elasticsearch クラスタヌ内のデヌタぞのアクセスが暗号化されたす。

無料たたは有料のサブスクリプションでの Elastic Stack の機胜、タスクの監芖、たたは SIEM システムの䜜成に぀いお質問がある堎合は、リク゚ストを残しおください。 フィヌドバックフォヌム 私達のりェブサむトで。

Habré に関する Elastic Stack に関する蚘事の詳现:

Elastic Stack (別名 Elasticsearch、別名 ELK) での機械孊習を理解する

Elasticsearchのサむゞング

出所 habr.com

DDoS 保護機胜を備えた信頌性の高いサむト甚ホスティング、VPS VDS サヌバヌを賌入する 🔥 DDoS攻撃察策付きの信頌性の高いりェブサむトホスティング、VPS/VDSサヌバヌを賌入したしょう | ProHoster