Ksocket は検知した機器に対して外部に公開されている情報を取得します。
ただ、詳細情報を取得するためには対象機器へのアカウント情報の設定が必要になります。
本記事では、詳細情報を取得するためのアカウント情報の設定方法を記載します。
同様の内容については Ksocket 利用マニュアル にも記載があるため、必要に応じて参照してください。
対応プロトコル
Ksocket は以下の形式のアクセスに対応しています。
- SNMP(v2c/v3)
- SSH
- WinRM
設定ファイル
設定ファイルのテンプレートは、下記のパスに 999-example.toml.skeleton
というファイル名で保管されています。
設定は toml 形式のファイルにコピーして記載し、以下のパスに格納します。
Linux の場合
プロトコル | フォルダパス |
SNMP(v2c/v3) | /opt/fixpoint/ksocket/etc/ksocket/credentials/snmp |
SSH | /opt/fixpoint/ksocket/etc/ksocket/credentials/ssh |
WinRM | /opt/fixpoint/ksocket/etc/ksocket/credentials/winrm |
Windows の場合
プロトコル | フォルダパス |
SNMP(v2c/v3) | C:\ProgramData\Fixpoint\ksocket\etc\ksocket\credentials\snmp |
SSH | C:\ProgramData\Fixpoint\ksocket\etc\ksocket\credentials\ssh |
WinRM | C:\ProgramData\Fixpoint\ksocket\etc\ksocket\credentials\winrm |
1 つのアカウント情報ごとに 1 つの toml ファイルを作成します。
各プロトコルごとに記載し、ファイルのソート順の早い順で認証情報を適用してアクセスを試みます。
toml ファイルで設定する要素の一覧は、Ksocket 利用マニュアル > 設定ファイル > 認証情報の設定 > toml ファイルの作成 を参照してください。
SNMP v2cの場合
例えば、以下のように記載します。
includes = ["10.10.0.0/24", "10.20.0.0/24"] port = 161 [authData] community = "public"
上記の “includes” はアカウント情報を適用する対象の IP アドレスを指します。
Ksocket が検知した際に、 “includes” に含まれているアドレスであった場合は記載されているアカウント情報を利用してアクセスを試みます。
“includes” に記載した IP アドレス全てに対して Ksocket からアクセスを試みるのではない点にご注意ください。
SNMP v3の場合
例えば、以下のように記載します。
includes = ["10.10.0.0/24", "10.20.0.0/24"] port = 161 [authData] username = "snmp-user" authProtocol = "usmHMACMD5AuthProtocol" authKey = "your-password" privProtocol = "usmAesCfb128Protocol" privKey = "priv-password"
“authprotocol” には以下のいずれかを記載します。
- 認証をしない場合: “usmNoAuthProtocol”
- MD5を使用する場合: “usmHMACMD5AuthProtocol”
- SHAを使用する場合: “usmHMACSHAAuthProtocol”
“privProtocol” には暗号化方式を記載します。
- 暗号化をしない場合: “usmNoAuthProtocol”
- DESを使用する場合: “usmDESPrivProtocol”
- AESを使用する場合: “usmAesCfb128Protocol”
SSHの場合
パスワードログインの場合の例
includes = ["10.10.0.0/24"] port = 22 [account] username = "john" password = "passw0rd"
鍵認証でのログインの場合の例
includes = ["10.10.0.0/24"] port = 22 [account] username = "john" [[account.clientKeys]] filename = "../../id_rsa.common" passphrase = "secret_credential"
WinRMの場合
接続先側の WinRM 接続を有効にするためには、Kompira Sonar 基本マニュアル > 設定手順 > Ksocket セットアップ > Ksocket のインストール > WinRM 接続の有効化 を参照してください。
includes = ["10.10.0.0/24"] port = 5985 authMethod = "ntlm" [account] username = "john" password = "passw0rd"
“authMethod” には以下のいずれかの認証形式を記載します。
- “basic”
- “ntlm”
- “credssp”
複数のアカウント情報が存在する場合
上記のように複数のアカウント情報ファイル(tomlファイル)が存在する場合には、以下の順序で処理されます。
- 100-test1.toml のアカウントを使ってsshアクセス試行する
- 200-test2.toml のアカウントを使ってsshアクセス試行する
- 300-test3.toml のアカウントを使ってsshアクセス試行する
- 999-example.toml のアカウントを使ってsshアクセス試行する
あるネットワークのゾーン内のアカウント情報を共通化させたい場合には、”includes” で指定することができます。
各接続先ごとに認証情報が異なる場合には、接続先の認証情報に応じてアカウント情報ファイルを用意する必要があります。
設定ファイルを暗号化/復号化する
toml 形式で保存されたアカウント情報は平文で保存されていますので、必要に応じて暗号化を行います。
$sudo /opt/fixpoint/ksocket/bin/ksocket encrypt (認証情報の toml ファイル名) 例 $sudo /opt/fixpoint/ksocket/bin/ksocket encrypt 999-sample.toml
拡張子 “.toml” が “.toml.kscrypt” という暗号化ファイルになります。
Ksocket 本体は kscrypt ファイルを読み取り、内部的に復号処理を行って対象の機器にアクセスを行います。
暗号化したアカウント情報ファイルを復号する際は以下のように行います。
$sudo /opt/fixpoint/ksocket/bin/ksocket decrypt (暗号化認証情報の .kscrypt ファイル名) 例 $sudo /opt/fixpoint/ksocket/bin/ksocket decrypt 999-sample.toml.kscrypt
拡張子 “.toml.kscrypt” ファイルが平文の “.toml” に復号されます。
復号後はテキストエディターで編集できるようになりますので、必要に応じて再度暗号化を行ってください。
暗号化設定ファイルの保存・バックアップ
Ksocket は初回起動時に RSA 鍵ペアを作成保存します。
暗号化・復号化では、上記手順で作成した RSA 鍵が利用されます。
暗号化されたファイルを別の Ksocket 用サーバーに移動させるなど、 元の RSA 鍵にアクセスできない場合には復号化はできません。
アカウント情報ファイルのバックアップや移動を行う際には、必ず復号化してから行ってください。
特にコールドスタンバイ用などで Ksocket サーバーを複数運用してアカウント情報ファイルを共有する場合、kscrypt ファイルのコピーは利用できませんのでご注意ください。