Redhat Insights
みるからに Amazon Inspector 的な感じな気がする
インストール
検証用に開発ライセンスで用意した Redhat8 にインストールしてみる
Redhat と名を関している通り、 RHEL にサブスクライブされている必要がある
Red Hat Insightsは、Red HatがサポートするすべてのバージョンのRed Hat Enterprise Linuxバージョン6.10以降で使用できます
インストール手法は Ansible、 Puppet も用意されているけどここでは手動でアナログにインストールしてみる
RED HAT INSIGHTS ON RED HAT ENTERPRISE LINUX (RHEL)
デフォルトでは基本インストールされているけどされていない場合はインストールしておく
# dnf install insights-client
ちなみにデーモンで動いているのかなー?と見てみると
確かに systemd にサービスは登録されているけれど
# systemctl status insights-client
● insights-client.service - Insights Client
Loaded: loaded (/usr/lib/systemd/system/insights-client.service; static; vendor preset: disabled)
Active: inactive (dead)
Docs: man:insights-client(8)
有効化しようとすると「違うよ」と言われる
# systemctl enable insights-client
The unit files have no installation config (WantedBy, RequiredBy, Also, Alias
settings in the [Install] section, and DefaultInstance for template units).
This means they are not meant to be enabled using systemctl.
Possible reasons for having this kind of units are:
1) A unit may be statically enabled by being symlinked from another unit's
.wants/ or .requires/ directory.
2) A unit's purpose may be to act as a helper for some other unit which has
a requirement dependency on it.
3) A unit may be started when needed via activation (socket, path, timer,
D-Bus, udev, scripted systemctl call, ...).
4) In case of template units, the unit is meant to be enabled with some
instance name specified.
insights-client は timer サービスで動いている
# systemctl status insights-client.timer
● insights-client.timer - Insights Client Timer Task
Loaded: loaded (/usr/lib/systemd/system/insights-client.timer; enabled; vendor preset: disabled)
Active: active (waiting) since Thu 2019-09-26 16:14:34 JST; 7min ago
Trigger: Fri 2019-09-27 02:07:00 JST; 9h left
Docs: man:insights-client(8)
中身を見てみると
# cat /usr/lib/systemd/system/insights-client.timer
[Unit]
Description=Insights Client Timer Task
Documentation=man:insights-client(8)
After=network.target
[Timer]
OnCalendar=daily
RandomizedDelaySec=14400
[Install]
WantedBy=multi-user.target
どうやら日次で動いてデータを更新しているようだ
Insights の実行
Insigths のサブスクライブ関連づけ
間に Proxy とかある場合は下記設定ファイルに定義しておく
# vim /etc/insights-client/insights-client.conf
proxy=http://hogehoge.com:8080
いざ
# insights-client --register
You successfully registered ******************************* to account *********.
Successfully registered host localhost.localdomain
Automatic scheduling for Insights has been enabled.
Starting to collect Insights data for localhost.localdomain
Uploading Insights data.
Successfully uploaded report from localhost.localdomain to account ********.
初回はシステム情報を収集しているのか少し時間がかかる
無事完了していることを確認
# insights-client --status
System is registered locally via .registered file. Registered at 2019-09-26T15:49:26.965017
Insights API confirms registration.
実行結果
解析結果は下記サイトから確認出来る
Insights Console
OS自体は開発検証用なので簡単に初期設定しただけのもの
重要なリスクが1件、普通のリスクが4件、低リスクが1件見つかっている
重要リスクを見てみると
CVE情報とナレッジベースへのリンク等脆弱性への情報を確認できる(対応策くらいもリンクじゃ無くて教えてくれや)
Topic
直近のセキュリティ Topic を教えてくれて、管理対象のマシンで対象があれば教えてくれる
Inventory
管理対象ホスト一覧
サーバ上の推奨設定についてはここでホストを選択すると見ることが出来る
例えば下記の例では SSH の設定についてアドバイスしてくれている
Remediations
検知された Rules に対して Ansible Playbook を管理実行出来るっぽい
手動更新の仕方
脆弱性に対して対応したあとに次の日次更新を待つのが気持ち悪い場合は systemd で定義してあるコマンドを実行すればいいかな
# /usr/bin/insights-client --retry 3
Starting to collect Insights data for localhost.localdomain
結局のところ OpenSCAP の redhat ルールを Webベースで見やすくして複数ホストを管理しやすくした感じくらい
膨大な Redhat のナレッジから推奨パラメータを教えてくれるのは嬉しいところ
ただクラウド形式で利用者側が直接 Redhat のサブスクリプションライセンスを持たない場合利用できないんじゃないかな?
そう考えると OpenSCAP 以上で無いのであれば 独自に html レポート出せる OpenSCAP のほうが小回りがきく
コマンドでサーバサイドでもレポート見れないかなーと思ったけど今々はそのようなコマンドはないようだ
APIで通信してるみたいだし、公開してくれないかなー
あと OpenSCAP のときもあったが、 kernel 等脆弱性でアップデートしてもインシデントが解消されない、あるいはまだ対応パッケージが出ていないのは改善してほしい