Kompira Sonarでは、Ksocket という連携プログラムを使用することにより、オンプレ環境やクラウド (AWS, Azure) 上の構成情報を収集することができます。この記事では、Ksocketによって情報収集される機器側に必要な設定、確認方法について解説します。
スキャン対象の各機器に必要な設定
UNIX/Linux
UNIX/Linuxをスキャンする場合、SSHでのアクセスを有効にする必要があります。
SSHでの接続アカウント情報は、Ksocketをインストールしたサーバの
/opt/fixpoint/ksocket/etc/ksocket/credentials/ssh
以下にtomlファイルを作成することで指定できます。
Windows
Windowsをスキャンする場合、WinRMでのアクセスを有効にする必要があります。 また、WinRMでのログイン後に詳細情報を取得するため、WMIリソースへのアクセス権限を許可する必要があります。
WinRM 接続の有効化の方法
に設定方法を詳しく記載しているので、ご確認ください。
WinRMでの接続アカウント情報は、Ksocketをインストールしたサーバの
/opt/fixpoint/ksocket/etc/ksocket/credentials/winrm
以下にtomlファイルを作成することで指定できます。
ネットワーク機器 (ルータ・スイッチなど)
ネットワーク機器からは、SNMP経由で情報を取得します。 KsocketからSNMP接続ができているか、また必要なMIB情報が取得できているかは以下のコマンドで確認することができます。
Linuxから確認する場合
- SNMP Agentが動作しているかの確認
(ksocket server) $ snmpget -v 2c -c public 172.16.0.1 1.3.6.1.2.1.1.1.0 SNMPv2-MIB::sysDescr.0 = STRING: BUFFALO BS-G3024MR
上記例のような出力が得られない場合やエラーが表示される場合は、「機器側がSNMPに応答しないようになっている」「コミュニティ名が設定と異なっている」などの原因が考えられます。
- 必要なMIBが取得できるかの確認
(ksocket server) $ snmpbulkwalk -v 2c -c public 172.16.0.1 1.3.6.1.2.1.4.21.1.7 ... Next HOP が設定されていれば出力される (ksocket server) $ snmpbulkwalk -v 2c -c public 172.16.0.1 1.3.6.1.2.1.4.22.1.3 ... ARP cache があれば出力される
SNMP Agentは動作している状態で、特定のMIBは取得できないような場合は、設定で制限されている可能性があります。
Windowsから確認する場合
- SNMP Agentが動作しているかの確認
(PowerShellコンソールを起動) > $snmp = new-object -ComObject olePrn.OleSNMP > $snmp.open("172.16.0.1", "public", 2, 1000) > $snmp.Get(".1.3.6.1.2.1.1.1.0") EPSONCA929E
- 必要なMIBが取得できるかの確認
(PowerShellコンソールを起動) > $snmp = new-object -ComObject olePrn.OleSNMP > $snmp.open("172.16.0.1", "public", 2, 1000) > $nexthops = $snmp.GetTree(".1.3.6.1.2.1.4.21.1.7") > $nexthops[(0..($nexthops.count/2) | ForEach-Object { ,@(0, $_) })] ... Next HOPが設定されていれば出力される > $arps = $snmp.GetTree(".1.3.6.1.2.1.4.22.1.3") > $arps[(0..($arps.count/2) | ForEach-Object { ,@(0, $_) })] ... ARP cache があれば出力される
SNMPでの接続アカウント情報は、Ksocketをインストールしたサーバの
/opt/fixpoint/ksocket/etc/ksocket/credentials/snmp
以下にtomlファイルを作成することで指定できます。
スキャン対象機器までの経路上に存在するネットワーク機器の設定について
Ksocketは、SNMP接続ができる機器の上記のMIBからNext HOP, ARP cache情報を取得し、それらのIPアドレスに対して情報取得を行う、という処理を繰り返し行います。
例えばKsocketとスキャンさせたいWindows機の間に、ネットワーク構成上あるルータが存在したとしましょう。
この時、KsocketはWindows機に対するWinRM接続だけでなく、ルータに対するSNMP接続ができる必要があります。
もしルータをSNMP応答可能であるように設定できない場合は、スキャンオプションの「スキャン起点アドレス」にWindows機のIPアドレスを入力することで、スキャンさせることができます。