Kompira cloudを試してみました
運用自動化プラットフォーム「Kompira」を展開しているフィックスポイント社が構成情報収集と管理を自動化するツール「Kompira cloud」を新たに提供されたので試してみました。
Kompira cloudとは?
ネットワークレイヤー、オンプレ、クラウドにまたがった、すべての機器の構成情報を取得できるサービスです。
ネットワーク内に様々な情報を調査・収集するためのソフトウェア「ksocket」を導入したサーバを用意することで、Kompira cloudからの実行命令を受けて ksocketがネットワーク内の機器の構成情報を収集して Kompira cloudに送信することで、Kompira cloudサイトで各機器の構成情報を確認することができます。
詳しくは、フィックスポイント社のKompira cloudサイトをご覧ください。
https://cloud.kompira.jp/
導入方法
■Kompira cloudへの登録
登録画面でユーザー登録を行い、専用サイトを作成します。
※11月末までは無料で試すことができるようです。
ユーザー登録が完了すると専用のサイトにログインすることができます。
■ksocketトークンの発行
ksocketとKompira cloudを接続するために必要なksocketトークンを作成します。
(1)全体設定よりksocket一覧を表示して、「登録する」をクリックします。
(2)ksocket名を入力して、「登録する」をクリックします。
(4)ksocketトークン作成項目の失効日にトークンを失効させる日付を入力して、「作成する」をクリックします。
■ksocketのインストール
(1)以下ページよりksocketのインストールファイルを入手します。
https://blog.cloud.kompira.jp/entry/downloads
(2)入手したインストールファイルをあらかじめ用意していたサーバ上で実行します。
# /bin/bash ksocket-20181012-linux-64.0.sh
[1/2] Checking MD5 sum of a composed archive ...
[2/2] Extracting a composed archive ...
AUTHENTICATION
------------------------------------------------------------------------
Please visit ".cloud.kompira.jp" to obtain a ksocket token and fill it
ksocket token (xxxxxxxx): fjewklezxfklqwladalfqwklq ←ここで、ksocketトークンの文字列を入力
HOST
------------------------------------------------------------------------
Please fill it to "<space_name>.cloud.kompira.jp".
Host (<space_name>.cloud.kompira.jp): quickguard.cloud.kompira.jp ←ここで、Kompira cloudサイトアドレスを入力
PORT
------------------------------------------------------------------------
Please fill it to "443".
Port (443): 443 ←ここは「443」を入力
CONFIRM
------------------------------------------------------------------------
KSOCKET_HOME: /opt
ksocket token: fjewklezxfklqwladalfqwklq
Host: quickguard.cloud.kompira.jp
Port: 443
Are you sure to continue? (Yes|No): Yes ←ここは「Yes」を入力
■ksocket設定ファイルの確認
以下の場所に作成されたksocketの設定ファイルを確認します。
・$KSOCKET_HOME/etc/ksocket/ksocket.yml
# ログファイルの保存先
# '-' を指定すると標準エラーに出力する
logfile: ${KSOCKET_HOME}/var/log/ksocket/ksocket.yml
# ログレベルの指定。以下の値が指定可能
# - NOTSET
# - DEBUG
# - INFO
# - WARN
# - WARNING
# - ERROR
# - CRITICAL
#loglevel: 'WARNING'
# ログ出力フォーマットの指定。
# https://docs.python.jp/3/library/logging.html#logrecord-attributes
# に列挙されるフォーマット文字列を利用可能
#logformat: "%(asctime)s %(levelname)s %(name)s:%(funcName)s:%(lineno)d:%(message)s"
# connect コマンドの設定
connect:
# ksocket トークンの指定
token: 'xxxxxxxxxx'
# 接続先のホスト名
host: '.cloud.kompira.jp'
# 接続先のポート番号
port: 443
# ディレクトリ関係
directories:
# 接続情報を検索するディレクトリ
credentials: $KSOCKET_HOME/etc/ksocket/credentials
※ログファイルの保存先やログレベルを変更する場合には、上記の設定ファイルを編集して、ksocketの再起動を行います。
■ksocketと各ホストとの接続設定
ksocketと各ホストとの接続は以下の方法で行うことになるが、接続方法ごとに設定が必要となるが、今回はLinuxホストのみが対象であるため、SSHの設定のみ行います。
・SSH
・WINRM (Windows Remote Management)
・SNMP (Simple Network Management Protocol)
$KSOCKET_HOME/etc/ksocket/credentials/ssh以下に以下の内容で設定ファイルを作成します。
# この認証情報を利用して接続する IP アドレスもしくはネットワークの一覧
# 以下例では 10.10.0.0/16 のホスト及び 10.20.0.1, 10.20.0.3 が指定されている
includes:
- 10.10.0.0/16
- 10.20.0.1
- 10.20.0.3
# 除外対象とする IP アドレスもしくはネットワークの一覧
# includes よりも優先されるため includes で大きな範囲を指定した後に
# excludes で除外設定を行うことが可能
excludes:
- 10.10.1.0/24
- 10.20.0.1
# 接続に使用するアカウント情報
account:
username: test
password: *******
# 接続に使用する鍵ファイル候補一覧
clientKeys:
- filename: ../../client_keys/id_test
passphrase: *********
- filename: ../../client_keys/id_rsa.common
passphrase: common
# 接続に使用するポート番号。省略時は 22
port: 22
# 接続のタイムアウト時間
timeout: 5.0
# 踏み台とするホストの IP アドレスリスト
sshTunnels:
- 10.10.0.1
- 10.10.0.2
■ksocketとKompira cloudとの接続確認
Kompira cloud にアクセスして、「全体設定 > ksocket」を表示後、対象の ksocket を選択します。
⇒接続状況が「接続済」となっていれば ksocket は正常に Kompira cloud に接続できています。
■スキャン対象ネットワークの作成
Kompira cloudサイトで構成情報を取得する対象のネットワークを作成します。
(1)Kompira cloudサイトにログインして、ネットワーク一覧を表示し、「作成する」をクリックします。
(2)ネットワーク名を入力して、「作成する」をクリックします。
ここまでで一通りの導入作業が完了です。
スキャンの実行
一通りの導入作業が完了しましたら、Kompira cloudサイト上でスキャンを実行し、ネットワーク内の各ホストの構成情報の取得を行います。
(1)Kompira cloudサイトのネットワーク一覧からスキャンページを表示して、「スキャン」をクリックします。
(2)スナップショット一覧ページを表示して、正常にスキャンが完了しているかを確認します。
各ノードの構成情報の確認
スキャンが正常に完了しましたら、各ノードの構成情報の確認することができます。
ノード一覧ページで構成情報が取得できたノードが表示されます。
ノード一覧ページで確認したいノードを選択すると、そのノードの概要情報が表示されます。
詳細情報を選択すると、各ノードのハードウェア情報が表示されます。
パッケージを選択すると、各ノードにインストール済みのパッケージ情報が表示されます。
ノード検索
さまざまな条件を基に各ノードの検索を行うことができます。
たとえば、ノード検索ページを表示して、検索キーワード欄に「package:PHP:5.3」と入力すると、PHP5.3系がインストールされているノードを検索することができます。
最後に試してみて・・・
構成情報を取得したいホスト側に特別なソフトウェアをインストールする必要がないため、台数が多い環境に対しては比較的簡単に情報を取得できそうな感じがしますね。
特に脆弱性が発見されたソフトウェアが発表された際には、どのホストが対象になるかを簡単に検索できるため、有用なものになるのではないかと思います。
欲を言えば、条件を入力せずに自動的に脆弱性があるソフトウェアがインストールされているノードが表示されるような仕組みがあれば、かなり使えるツールになります。かなり頻繁にアップデートを行っているので、このあたりは今後に期待したいところですね。