Insights 103
帰って来ました!!
サンフランシスコでのクレイジーなイノベーションの 1 週間の後、再び戻って来ました。また Red Hat Insights をニーズに合わせてカスタマイズするお話をしましょう。
ブラックリスト化するか否か、それが問題
以前の Red Hat Insights 102 の投稿でも書きましたが、Red Hat Insights が Red Hat サーバーに送信するデータ、データの送信方法、送信時については、制御が可能です。ただし、デフォルトから外れると、マイナス面もあります。
Insights が収集するデータについては、必要なオプションや制御をお客様に提供することが望まれます。しかし、Red Hat に送信するデフォルトのペイロードに修正を加える度に、使用中の環境において Insights が提供する分析レベルにマイナスの影響を与える可能性があります。これは、Insights は 分析に最小限のもの しか収集しないためです。収集ペイロードからデータを削除するたびに、インフラ内で問題を検出するルール機能にマイナス影響が出ます。
注記
先に進む前に、RHEL 6 と RHEL 7 のシステムにおけるコマンドの違いについて触れておきます。これは、以下に挙げるコマンドに関わってきます。RHEL 7.5 以降では、Red Hat Insights のクライアント名が変わっていますが、RHEL 6 については変更ありません。
RHEL 7.5 以降のユーザーについては、クライアント名 (およびクライアント名を使用するすべてのコマンドと場所) は insights-client
になります。これ以前の RHEL ユーザーについては、RHEL 6.10 リリースで名前とその他の変更がもたらされます。現時点では、RHEL 6 ユーザーはレガシーのクライアント名である redhat-access-insights
の使用を続けてください。
ブラックリスト化の情報、または特定データへのアクセスを拒否する方法
Red Hat Insights は、システムのランタイム設定についてのメタデータ (サポートケースの sosreport で収集される約 1%) を収集しますが、このデータは必要に応じてカスタマイズや匿名化、ブラックリスト化、難読化することができます。
Red Hat に送信するデータからファイル全体や特定のコマンド、特定のパターン、特定のキーワードを除外することができます。このような除外を実行するには、/etc/redhat-access-insights/remove.conf
(RHEL 7.5 を使用している場合は /etc/insights-client/remove.conf
) というファイルを作成し、/etc/redhat-access-insights/redhat-access-insights.conf
(RHEL 7.5 を使用している場合は /etc/insights-client/insights-client.conf
) の remove_file
の行でこのファイルを指定します。以下のようになります。
[remove]
files=/etc/cluster/cluster.conf,/etc/hosts
commands=/bin/dmseg
patterns=password,username
keywords=super$ecret,ultra$ecret
この例のディレクティブについて解説しましょう。
files
: 除外するファイルのコンマ区切り一覧。ファイルのリスト内の各要素は、そのファイルの絶対パスである必要があります。確実に除外するようにするには、これらのファイル名は、収集ルールに示されているものと正確に一致する必要があります。commands
: 実行すべきでない コマンドで、その出力を送信しないコマンドのコンマ区切り一覧。確実に除外するようにするには、これらのコマンド名は、収集ルールに示されているものと正確に一致する必要があります。patterns
: 送信しないパターンのコンマ区切り一覧。keywords
: 送信しないキーワードのコンマ区切り一覧。一致するキーワードは、リテラルキーワードに置き換えられます。このオプションを有効にするには、/etc/redhat-access-insights/redhat-access-insights.conf
ファイルでobfuscate
オプションをTrue
に設定する必要があります。
重要!
パターンは行全体に影響するので、一致するパターンが含まれている行は送信しないでください。
以前の投稿でも説明しましたが、redhat-access-insights --no-upload
コマンドで送信するデータを検証することができます。
実際にやってみましょう。
デフォルト設定を使用して Red Hat Insights クライアントが収集し、Red Hat に送信したものを見てみましょう。
実際にデータを収集することなく収集物を確認するには、以下のように --no-upload
オプションで実行します。
[root@gherkin ~]# redhat-access-insights --no-upload
Starting to collect Insights data
See Insights data in /var/tmp/oLUbKq/insights-gherkin-20180521110933.tar.gz
収集されたものを確認するには、以下のコマンドで 生成された tar.gz ファイルを解凍し、そのファイルに移動します。
[root@gherkin ~]# tar xvfz /var/tmp/oLUbKq/insights-gherkin-20180521110933.tar.gz
[root@gherkin ~]# cd ./insights-gherkin-20180521110933/
ホスト名が収集されたことが分かります。
[root@gherkin insights-gherkin-20180521110933]# cat insights_commands/hostname
gherkin
NIC 情報も収集されています。
[root@gherkin insights-gherkin-20180521110933]# cat insights_commands/ethtool_eno1
Settings for eno1:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised pause frame use: No
Advertised auto-negotiation: Yes
Speed: 1000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 1
Transceiver: internal
Auto-negotiation: on
MDI-X: off (auto)
Supports Wake-on: pumbg
Wake-on: g
Current message level: 0x00000007 (7)
drv probe link
Link detected: yes
カーネルバージョン情報、アーキテクチャー、OS バージョンもあります。
[root@gherkin insights-gherkin-20180521110933]# cat insights_commands/uname_-a
Linux gherkin 3.10.0-693.11.1.el7.x86_64 #1 SMP Fri Oct 27 05:39:05 EDT 2017 x86_64 x86_64 x86_64 GNU/Linux
[root@gherkin insights-gherkin-20180521110933]# cat insights_commands/uptime
11:09:39 up 53 days, 10:27, 3 users, load average: 0.40, 1.24, 0.90
マシンに現在マウントされているファイルシステムも収集されています。
[root@gherkin insights-gherkin-20180521110933]# cat insights_commands/mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
devtmpfs on /dev type devtmpfs (rw,nosuid,size=16323324k,nr_inodes=4080831,mode=755)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
[...]
Insights は、使用中のシステムが認識しているホスト名と IP も収集します (以下は私の自宅の LAN のマシンです)。
[root@gherkin insights-gherkin-20180521110933]# cat etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
# Máquinas virtuales residentes en gherkin
192.168.100.250 ansible-tower ansible-tower.tortilla.org
192.168.100.189 ansible-node1 ansible-node1.tortilla.org
192.168.100.199 icg1 icg1.example.com
192.168.100.202 icg2 icg2.example.com
192.168.100.147 icg3 icg3.example.com
192.168.100.194 icg4 icg4.example.com
これらのデータを Red Hat に送信したくない場合はどうすればいいでしょうか? データを送信しないようにホストを設定しましょう。
まず、使用する remove.conf
の場所を Insights エージェントに知らせるように /etc/redhat-access-insights/redhat-access-insights.conf
で設定します。
[root@gherkin ~]# vi /etc/redhat-access-insights/redhat-access-insights.conf
[redhat-access-insights]
remove_file=/etc/redhat-access-insights/remove.conf
自分のマシン名と IP アドレスを Red Hat に送信したくないので、以下のように同じファイルでこれらを難読化します。
# Obfuscate IP addresses
obfuscate=True
# Obfuscate hostname
obfuscate_hostname=True
Red Hat Insights は、アクセスタイプなどの sshd 設定も収集します。
[root@gherkin insights-gherkin-20180521110933]# cd etc/ssh/
[root@gherkin ssh]# grep -E '[P|p]assword' *
#PermitEmptyPasswords no
# the setting of "PermitRootLogin without-password".
ここで remove.conf
ファイルをそれぞれのニーズに合うように調整してみましょう。
[root@gherkin ~]# vi /etc/redhat-access-insights/remove.conf
[remove]
files=/etc/hosts,/proc/cpuinfo
commands=/bin/dmesg,/bin/mount,/bin/mount,/bin/uname -a,/sbin/ethtool,/usr/bin/uptime
patterns=password,username
こうすることで、上記の情報は収集、送信されなくなります。確認するには、--no-upload
オプションでエージェントを実行して、結果を見てみます。
[root@gherkin ~]# redhat-access-insights --no-upload
WARNING: Excluding data from files
Starting to collect Insights data
WARNING: Skipping command /bin/dmesg
WARNING: Skipping command /sbin/ethtool
WARNING: Skipping command /bin/mount
WARNING: Skipping command /bin/uname -a
WARNING: Skipping command /usr/bin/uptime
WARNING: Skipping file /proc/cpuinfo
WARNING: Skipping file /etc/hosts
See Insights data in /var/tmp/eJ9LoU/soscleaner-3125813513575232.tar.gz
エージェントを実行すると、remove.conf ファイルで指定した除外対象のコマンドを省略していることが表示されます。
さらに、tar.gz
ファイルで上記のコマンドとファイルを調べます。
[root@gherkin soscleaner-3125813513575232]# cat insights_commands/hostname
host0
[root@gherkin soscleaner-3125813513575232]# cat proc/cpuinfo
cat: proc/cpuinfo: No such file or directory
[root@gherkin soscleaner-3125813513575232]# cat etc/hosts
cat: etc/hosts: No such file or directory
[root@gherkin soscleaner-3125813513575232]# cat insights_commands/ethtool_eno1
cat: insights_commands/ethtool_eno1: No such file or directory
[root@gherkin soscleaner-3125813513575232]# cat insights_commands/mount
cat: insights_commands/mount: No such file or directory
[root@gherkin soscleaner-3125813513575232]# cat insights_commands/uptime
cat: insights_commands/uptime: No such file or directory
最後に、パターンが sshd 設定例でどのように機能しているか確認します。
[root@gherkin soscleaner-3125813513575232]# cd etc/ssh/
[root@gherkin ssh]# ls
sshd_config
[root@gherkin ~]# grep -E '[P|p]assword' sshd_config
まとめ
Red Hat Insights は、最小限かつ特定のデータを収集できるように設計されています。
お客様においては、修正を加える前に、--no-upload
オプションを使用して何が収集されているか確認していただくことをお勧めします。
詳細情報
Insights が収集するパターン、ファイル、およびコマンド、さらにデータ収集の際に使用するファイルおよびコマンドを確認するには、こちらの ドキュメント を参照してください。
Comments