opensearch/openseach dashboardsをfedoraにインストールする。証明書にはLet’s Encryptを利用する。
Opensearchの利用目的であるが、parsedmarc経由でDMARCレポートをOpensearchに取り込みgrafanaで可視化を行うことである。
ここでは、Dashboardsにログインできるところまで。
ドキュメント
以下の公式ページを参照のこと。
- https://opensearch.org/docs/latest/install-and-configure/install-opensearch/rpm/
- https://opensearch.org/downloads.html
リポジトリ設定
以下のコマンドを実行してリポジトリを設定する。
# cd /etc/yum.repos.d/
# wget https://artifacts.opensearch.org/releases/bundle/opensearch/2.x/opensearch-2.x.repo
# wget https://artifacts.opensearch.org/releases/bundle/opensearch-dashboards/2.x/opensearch-dashboards-2.x.repo
つづいて以下のコマンドを実行して正しく設定されていることを確認しておく。
dnf clean all
dnf repolist
dnf list opensearch --showduplicates
Opensearchのインストール
インストール
以下のシェルを作成し実行する。
#!/bin/sh
OPENSEARCH_INITIAL_ADMIN_PASSWORD=l5YklcBDGj
export OPENSEARCH_INITIAL_ADMIN_PASSWORD
dnf -y install opensearch
あとでadminのパスワードは変更するので、上記の環境変数は不要かもしれない。
Let’s Encryptサーバ証明書のコピーと秘密鍵の変換
Let’s Encryptのサーバ証明書を/etc/opensearchにコピーする。
# cd /etc/opensearch
# \rm -rf isrgrootx1.pem
# \rm -rf privkey-pkcs8.pem
# cp /etc/letsencrypt/live/example.com/fullchain.pem .
# openssl pkcs8 -topk8 -nocrypt -in /etc/letsencrypt/live/example.com/privkey.pem \
-out ./privkey-pkcs8.pem
# curl -SL https://letsencrypt.org/certs/isrgrootx1.pem > isrgrootx1.pem
# chown opensearch:opensearch *.pem
Opensearchの設定
/etc/opensearch/opensearch.ymlの設定
network.host: 0.0.0.0
discovery.type: single-node
plugins.security.disabled: false
plugins.security.ssl.transport.pemcert_filepath: fullchain.pem
plugins.security.ssl.transport.pemkey_filepath: privkey-pkcs8.pem
plugins.security.ssl.transport.pemtrustedcas_filepath: isrgrootx1.pem
plugins.security.ssl.http.pemcert_filepath: fullchain.pem
plugins.security.ssl.http.pemkey_filepath: privkey-pkcs8.pem
plugins.security.ssl.http.pemtrustedcas_filepath: isrgrootx1.pem
plugins.security.authcz.admin_dn: ['CN=example.com']
plugins.security.nodes_dn: ['CN=example.com']
/etc/opensearch/jvm.optionsの設定
#-Xms1g
#-Xmx1g
-Xms4g
-Xmx4g
ユーザ登録
ユーザは、/etc/opensearch/opensearch-security/internal_users.ymlに登録する。
設定するパスワードの生成。以下のスクリプトを実行する。
#!/bin/sh
OPENSEARCH_JAVA_HOME=/usr/share/opensearch/jdk
export OPENSEARCH_JAVA_HOME=/usr/share/opensearch/jdk
sh /usr/share/opensearch/plugins/opensearch-security/tools/hash.sh -p password
表示されたハッシュ値をinternal_users.ymlに設定する。
admin:
hash: "上記で生成したハッシュ値"
admin以外のデモIDを削除する。
また、opensearch dashboardsの接続に利用する参照用のユーザを登録しておく。(パスワードは上記のhash.shコマンドで作成する。
internal_user.ymlのシステムへの反映
internal_user.ymlを変更した場合は、システムへの反映を行う必要がある。以下のシェルスクリプトを実行する。なお、以下のコマンドを実行した場合、GUIで登録したユーザはなくなるようなので注意。
#!/bin/sh
OPENSEARCH_JAVA_HOME=/usr/share/opensearch/jdk
export OPENSEARCH_JAVA_HOME=/usr/share/opensearch/jdk
cd /usr/share/opensearch/plugins/opensearch-security/tools
./securityadmin.sh -cd /etc/opensearch/opensearch-security/ \
-cacert /etc/opensearch/isrgrootx1.pem \
-cert /etc/opensearch/fullchain.pem \
-key /etc/opensearch/privkey-pkcs8.pem \
-icl -nhnv -t internalusers \
-icl -nhnv -cacert /etc/opensearch/isrgrootx1.pem \
-cert /etc/opensearch/fullchain.pem \
-key /etc/opensearch/privkey-pkcs8.pem
firewalldの設定
tcpの9200番ポートをとおしておく。
自動起動設定
# systemctl daemon-reload
# systemctl status opensearch
# systemctl enable opensearch
# systemctl start opensearch
# systemctl status opensearch
接続テスト
opensearch.example.comという名前が解決できるようにしておく。
以下のコマンドを実行して、情報が表示されることを確認する。
curl -XGET https://localhost:9200 -u 'admin:password' --insecure
curl -XGET "https://localhost:9200/_cat/plugins?v" -u 'admin:password' --insecure
curl -XGET "https://opensearch.example.com:9200/_cat/plugins?v" -u 'admin:password' --insecure
curl -XGET "https://opensearch.example.com:9200/_cat/plugins?v" -u 'admin:password'
以下のコマンドではエラーになることを確認する。
curl -XGET https://localhost:9200 -u 'admin:password'
curl -XGET "https://localhost:9200/_cat/plugins?v" -u 'admin:password'
Opensearch Dashboardsのインストール
インストール
以下のコマンドを実行する。
# dnf -y install opensearch-dashboards
Opensearch Dashboardsの設定
/etc/opensearch-dashboards/opensearch_dashboards.ymlの設定
server.port: 5601
server.host: opensearch.example.com
server.ssl.enabled: true
server.ssl.certificate: /etc/opensearch-dashboards/fullchain.pem
server.ssl.key: /etc/opensearch-dashboards/privkey-pkcs8.pem
opensearch.hosts: [https://opensearch.example.com:9200]
opensearch.ssl.verificationMode: full
opensearch.username: opensearch-ds
opensearch.password: "password"
証明書のコピーおよびアクセス権設定
# cp /etc/opensearch/fullchain.pem /etc/opensearch-dashboards
# cp /etc/opensearch/privkey-pkcs8.pem /etc/opensearch-dashboards
# chown opensearch-dashboards:opensearch-dashboards /etc/opensearch-dashboards/*.pem
# chmod 660 /etc/opensearch-dashboards/*.pem
自動起動の設定
# systemctl daemon-reload
# systemctl status opensearch-dashboards
# systemctl enable opensearch-dashboards
# systemctl start opensearch-dashboards
# systemctl status opensearch-dashboards
firewalldの設定
firewalldでtcpのポート番号5601をとおしておく。
ブラウザでの接続
ブラウザで以下のURLにアクセスする。
http://ip-address:5601/
ユーザはadmin、パスワードは先ほど設定したものでログインする。
2024/04/18 ログインできるところまで。
コメント