Ksocket 利用マニュアル 目次

Ksocket 利用マニュアル

株式会社フィックスポイント の Ksocket 利用マニュアルです。

最終更新日: 2024/04/12

Ksocket とは

Ksocket はネットワーク内の様々な情報を調査・収集するためのソフトウェアです。

Kompira Sonar (以下、Sonar)と連携して動作する前提となっており、Sonar からの実行命令を受けてネットワーク内の情報を収集します。

用語

本ドキュメントに登場する用語について説明します。

用語説明
Ksocket トークンKsocket が Kompira cloud に接続する際に利用する認証文字列
API トークンとは異なるものなので注意
設定ファイルKsocket が Kompira cloud に接続するための情報や、ログの出力方法などが記載されたファイル
接続情報ファイルKsocket がスキャン対象機器にログインするための情報が記載されたファイル

Ksocket のインストール

Ksocket は使用する環境により、ローカルネットワーク、Microsoft Azure、AWS(Amazon Web Services)もしくは Google Cloud へのインストールが必要になります。

各章の手順に従い、インストール先の環境に合わせて必要な操作を行ってください。

ローカルネットワークへのインストール

社内ネットワーク等のローカルネットワークをスキャンする Ksocket のインストール方法です。

Ksocket ダウンロードページから対象プラットフォーム用のインストーラをダウンロードし、次項以降に記載の各プラットフォームごとの指示に従ってください。

Linux へのインストール

Linux への Ksocket インストール方法を説明します。

ダウンロードしてきたインストーラ(例: ksocket-2.0.0.0-linux-x86_64.tar.gz )に対して管理者権限にて以下のように実行してください

% tar xf ksocket-2.0.0.0-linux-x86_64.tar.gz
% ./ksinstall

上記によりインストーラーが起動するため、Ksocket インストーラー 項に従ってインストールを進めてください。

Windows へのインストール

Windows への Ksocket インストール方法を説明します。

Npcap のインストール

Ksocket は Windows にてパケットを扱うために Npcap が提供する API に依存してるため、事前に Npcap (0.9989 以上) をインストールします。

インストールの際には、「Install Npcap in WinPcap API-compatible Mode」にチェックを入れます。

Ksocket インストーラの実行

Npcap インストール後、ダウンロードしてきたインストーラ(例: ksocket-2.0.0.0-windows-x86_64.zip)を解凍します。

フォルダ内の ksinstall.exe をダブルクリックして、Ksocket インストーラーを起動します。

Ksocket インストーラー 項を参照し、インストールを進めます。

インストール先フォルダーの表示

Ksocket は標準では C:\ProgramData\Fixpoint\ksocket 以下に配置されます。

上記フォルダーが Windows エクスプローラー上では表示されない場合は、以下の手順でフォルダーオプションを変更します。

エクスプローラーからオプションを表示します。

表示タブから「隠しファイル、隠しフォルダー、および隠しドライブを表示する」を選択し、適用します。

Ksocket インストーラー

Ksocket インストーラーが起動すると以下のような画面が表示されます。

図の黄色字部分を参考に、下記の通り必要な項目を入力します1

  1. Prefix:Ksocket のインストール先ディレクトリです。デフォルト値2が入っています。

  2. Scan mode:Ksocket のスキャン動作モードです。通常は intranet を入力してください。
    対象が Azure , AWS , Google Cloud 上の仮想ネットワークの場合は、各ネットワークに合わせ azure aws googlecloud のいずれかを入力してください。
    設定コマンド にて後で有効な値を設定することもできます。

  3. Host:接続先スペースの FQDN (Fully Qualified Domain Name) です。
    スペース名 + .cloud.kompira.jp と入力してください(例:スペース名が fixpoint の場合 fixpoint.cloud.kompira.jp)。
    設定コマンド にて後で有効な値を設定することもできます。

  4. Token:Ksocket 接続トークンです。
    Kompira cloud supportKsocket トークンの発行 を参考に、発行した有効な Ksocket トークンを入力してください。
    設定コマンド にて後で有効な値を設定することもできます。

入力が完了すると Ksocket のインストールが開始します。

インストール後、 Ksocket は初期化処理を行ってからインストーラにて指定されたスペースに接続します3

対象スペースにアクセス後「設定 > Ksocket > 対象の Ksocket スロット」のステータスが「接続済み」になっていれば、インストール完了です。

なお、インストール時に存在しない Host や Token を入力した場合は、所定回数リトライした後 Ksocket サービスが停止します。

正しい情報を入力して Kompira cloud に接続するには 設定コマンド にて有効な値を設定した後、サービス管理コマンド の restart サブコマンドにて Ksocket サービスを再起動してください。

1

Windows 版 Ksocket インストーラーではクリップボードにコピーされた値を右クリックで貼り付けることができます。Linux 版では使用しているターミナルの設定に依存します。

2

デフォルトのインストール先は下記の通りです。

  • Windows:C:\ProgramData\Fixpoint\ksocket
  • Linux:/opt/fixpoint/ksocket
3

初期化処理に必要な時間は CPU の処理能力により変わります。特に ARM 等、比較的処理能力が低い CPU では、インストール後に Kompira cloud への初回接続が行われるまで時間がかかります。

Azure へのインストール

Microsoft Azure 上に構築された Azure VNET (Azure Virtual Network) (以下 VNET)に存在する Azure VM (Azure Virtual Machine) (以下 VM)インスタンスをスキャンする Ksocket のインストール方法です。

スキャン対象となる VNET 上に Ksocket インストール用の新規 VM インスタンスを Ubuntu 20.04 もしくは 22.04 で用意し1 ローカルネットワークへのインストール に従って Ksocket をインストールしてください。

その際、スキャン動作モード選択では azure を指定してください2

注意

Ksocket は管理対象 VNET 毎にインストールする必要があります。

スキャン対象の VM 内のハードウェア構成やインストール済みパッケージの取得は、ローカル ネットワークスキャンと同様に行います。

そのため Ksocket に対して適切な接続情報ファイルを提供し SSH/WinRM/SNMP アクセスを可能にする必要があります。

1

VM インスタンスとして指定した OS 以外も利用できますが、ここでは説明の簡略化のために限定しています。

2

インストール時にスキャンモードの選択を間違えた場合は 設定コマンド を参照して azure に再設定してください。

Azure リソースに対するアクセス権限の付与

スキャンモードが azure で動作する Ksocket は VM インスタンスに関する情報を API 経由で収集します。

この際、対象の Azure のサブスクリプションに対して Reader 相当の権限を必要とします。

そのため、以下のいずれかの方法で必要な権限を付与してください。

Azure リソースのマネージド ID を使用する場合

リソースのマネージド ID を使用し Ksocket がインストールされた VM インスタンスに対象サブスクリプションへの権限を付与します。

具体的な設定手順は下記リンクを参照してください。

※サービスプリンシパル用のファイル(Ksocket インストール先の ./etc/ksocket/azure.toml)が存在する場合は削除してください。

サービスプリンシパルを使用する場合

サービスプリンシパルを使用し Ksocket に対象サブスクリプションへの権限を付与します。

Azure ポータルを使用してサービスプリンシパルを作成します。

次に対象のサブスクリプションをスコープとするロールを、作成したサービスプリンシパルに付与します。

上記の具体的な手順は下記リンクを参照してください。

その後 Ksocket のインストール先に ./etc/ksocket/azure.toml を作成し、以下のように設定してください。

# 作成したサービスプリンシパルの「アプリケーション ID」
clientId = "Application ID"

# 作成したサービスプリンシパルの「認証キー」
secret = "xxxxxxxxxxxxxx"

# サービスプリンシパルを作成した Azure AD の「テナント ID」
tenant = "Directory ID"

AWS へのインストール

AWS (Amazon Web Services) 上に構築された Amazon VPC (Amazon Virtual Private Cloud) (以下 VPC)に存在する Amazon EC2 (Amazon Elastic Compute Cloud)(以下 EC2)インスタンスをスキャンする Ksocket のインストール方法です。

スキャン対象となる VPC に Ksocket インストール用の新規 EC2 インスタンスを Ubuntu 20.04 もしくは 22.04 の LTS 64 ビット (x86) で用意し1 ローカルネットワークへのインストール に従って Ksocket をインストールしてください。

その際、スキャン動作モード選択では aws を指定してください2

注意

インストール時

Ksocket はスキャン対象の VPC 毎にインストールする必要があります。

スキャン対象の VPC 内のハードウェア構成やインストール済みパッケージの取得は、ローカルネットワークスキャンと同様に行います。

そのため Ksocket に対して適切な接続情報ファイルを提供し SSH/WinRM/SNMP アクセスを可能にする必要があります。

インスタンス名とインスタングタグ取得時

インスタンス名およびインスタンスタグを取得するには、EC2 Management Console にて「インスタンスメタデータのタグを許可する」設定が必要です。

設定方法については、公式ドキュメントの インスタンスメタデータのタグへのアクセスを許可する を参照してください。

1

EC2 インスタンスとして指定した OS 以外も利用できますが、ここでは説明の簡略化のために限定しています。

2

インストール時にスキャンモードの選択を間違えた場合は 設定コマンド を参照して aws に再設定してください。

AWS リージョンの指定

API アクセスに使用する AWS リージョンを指定します。

以下のコマンドを 管理者権限 で実行して ~/.aws/config ファイルを作成します。

管理者のホームディレクトリを指すことに注意してください。

% mkdir -p ~/.aws
% touch ~/.aws/config

~/.aws/config を vi や nano などのテキストエディタで開き、以下のように記載・編集してください。

[default]
region = us-east-2
# us-east-2 の部分は利用しているリージョンコード名に置き換えてください

リージョン名とコードの一覧は AWS サービスエンドポイント を参照してください。

AWS リソースに対するアクセス権限の付与

スキャンモードが aws で動作する Ksocket は EC2 インスタンスに関する情報を API 経由で収集します。

この際、対象の AWS リソースに対して ReadOnlyAccess 相当の権限を必要とします。

そのため、以下のいずれかの方法で必要な権限を付与してください。

IAM ロールを使用する場合

Amazon EC2 の IAM ロール を使用し Ksocket がインストールされた EC2 インスタンスに対象 AWS リソースに対する権限を付与します。

具体的な設定手順はリンク先を参照してください。

AWS CLI プロファイルを使用する場合

AWS CLI プロファイルを使用し Ksocket プロセスに対象 AWS リソースに対する権限を付与します。

まず AWS CLI バージョン2のインストール を参考に AWS CLI を Ksocket がインストールされた EC2 インスタンスにインストールしてください。

その後、管理者権限で AWS CLI のかんたん設定 に従って設定を行ってください。

これにより管理者のホームディレクトリに ~/.aws/config および ~/.aws/credentials が作成されます。

AWS CLI を利用せず、直接設定ファイルと認証情報ファイルを準備する場合は、以下の AWS ドキュメントを参考に該当ファイルを手動作成してください。

その際、管理者のホームディレクトリに対して該当ファイルを作成することに注意してください。

Google Cloud へのインストール

Google Cloud 上に構築された Google Cloud Platform (GCP) に存在する Google Compute Engine (以下 GCE)インスタンスをスキャンする Ksocket のインストール方法です。

スキャン対象となる GCP 上に Ksocket インストール用の新規 GCE インスタンスを Ubuntu 20.04 もしくは 22.04 で用意し1 ローカルネットワークへのインストール に従って Ksocket をインストールしてください。

その際、スキャン動作モード選択では googlecloud を指定してください2

注意

Ksocket は管理対象プロジェクト毎にインストールする必要があります。

スキャン対象の GCE 内のハードウェア構成やインストール済みパッケージの取得は、ローカル ネットワークスキャンと同様に行います。

そのため Ksocket に対して適切な接続情報ファイルを提供し SSH/WinRM/SNMP アクセスを可能にする必要があります。

1

GCE インスタンスとして指定した OS 以外も利用できますが、ここでは説明の簡略化のために限定しています。

2

インストール時にスキャンモードの選択を間違えた場合は 設定コマンド を参照して googlecloud に再設定してください。

Google Cloud リソースに対するアクセス権限の付与

スキャンモードが googlecloud で動作する Ksocket は GCE インスタンスに関する情報を API 経由で収集します。

この際、対象の Google Cloud のプロジェクトに対して Compute 閲覧者(Compute Viewer) 相当のロールを必要とします。

そのため、以下のいずれかの方法で必要な権限を付与してください。

接続されたサービスアカウントを使用する場合

接続されたサービスアカウント を使用し Ksocket がインストールされた GCE インスタンスに対象プロジェクトへの権限を付与します。

具体的な設定手順は下記リンクを参照してください。

※サービスアカウントキー用のファイル(Ksocket インストール先の ./etc/ksocket/googlecloud.toml)が存在する場合は削除してください。

サービスアカウントキーを使用する場合

サービスアカウントキーを使用し Ksocket に対象となる管理対象プロジェクトへの権限を付与します。

サービスアカウントおよびサービスアカウントキーを作成します。

対象のプロジェクトをスコープとするロールを、作成したサービスアカウントに付与します。

上記の具体的な手順は下記リンクを参照してください。

作成したサービスアカウントキーは Ksocket を動作させるインスタンス内に配置します。

その後 Ksocket のインストール先に ./etc/ksocket/googlecloud.toml を作成し、以下のように設定してください1

# Google Cloud からダウンロードしたサービスアカウントキーのファイルパスを指定
# 絶対パスまたは相対パスを指定でき、相対パスの場合は、`$KSOCKET_HOME/etc/ksocket` を基準とする
serviceAccountFile = "/opt/fixpoint/ksocket/etc/ksocket/service-account-key.json"
# Windows の場合は、"C:\ProgramData\Fixpoint\ksocket\etc\ksocket\service-account-key.json"
1

設定ファイルがある場合はサービスアカウントキーの利用を優先します。
設定ファイル中に指定がない場合は、接続されたサービスアカウントによるスキャンを試みます。

アンインストール

Ksocket のアンインストールについて説明します。

Ksocket をアンインストールすると、設定ファイルや接続情報ファイル等も削除されます。

必要に応じて、Ksocket インストール先の以下ディレクトリのバックアップを行ってください。

  • ./etc/ksocket:設定ファイルや接続情報ファイル等
  • ./var/log/ksocket:ログファイル等

Linux からのアンインストール

Ksocket はホスト Linux のパッケージを利用しないため、以下の手順でアンインストールができます。

  • Ksocket サービスのアンインストール
  • Ksocket インストール先ディレクトリの消去

上記手順を自動的に行う場合は、以下のコマンドを実行してください1

% /opt/fixpoint/ksocket/ksuninstall

This is a ksocket uninstaller and it will:

- Unregister ksocket service (systemd/upstart/windows service)
- Remove the files installed under '/opt/fixpoint/ksocket'

DO NOT FORGET TO BACKUP CONFIGURATIONS if you will re-install ksocket later.

Are you sure to continue? [y/N]: y
... 略
1

インストール先に /opt/fixpoint/ksocket を利用していると想定しています。

Windows からのアンインストール

Ksocket はホスト Windows のパッケージを利用しないため、以下の手順でアンインストールができます。

  • Ksocket サービスのアンインストール
  • Ksocket インストール先ディレクトリの消去
  • Npcap のアンインストール(オプショナル)

上記手順を自動的に行う場合は スタート > Fixpoint > Uninstall ksocket を実行してください。(Windows Server 2016/2019 の場合)

なお、アンインストーラーを利用したアンインストールでは Npcap のアンインストールは行わないため、必要に応じて手動にてアンインストールしてください。

コマンド使用方法

設定変更や問題の調査等を目的として ksocket コマンドを直接実行する方法について説明します。

ネットワークスキャン等、機能的な利用方法に関しては Kompira Sonar 基本マニュアル を参照してください。

具体的な使用方法等については下記記事を参照してください。

コマンド実行方法

Ksocket はホストの環境をクリーンに保つため $PATH 等の環境変数を変更しません。

そのため、設定や検証等で ksocket コマンドを実行したい場合は、以下のように Ksocket シェルを立ち上げて作業する必要があります。

Linux

管理者権限でターミナルを起動後、以下のコマンドで新規シェルを立ち上げてください。

なお Ksocket を /opt/fixpoint/ksocket 以外にインストールした場合は、ディレクトリ名を読み替えてください。

% PATH=/opt/fixpoint/ksocket/bin:$PATH $SHELL

起動したシェルにて以下のコマンドが実行できることを確認してください。

% ksocket version
2.0.0

Windows

スタートメニューから ksocket と検索すると、以下の通りアプリケーションが表示されるため、クリックして開きます。

「このアプリがデバイスに変更を与えることを許可しますか?」と表示された場合は、「はい」をクリックしてください。

sYQFa3kfEz

Windows PowerShell が起動されるため、以下のコマンドが実行できることを確認してください。

ksocket version

スタートメニューから検索ができない場合

検索してもアプリケーションが表示されない場合は、下記ディレクトリに移動します。

C:\ProgramData\Fixpoint\ksocket\Scripts

ksocket.bat ファイルを右クリックし「管理者として実行」をクリックして Windows PowerShell を開きます。

設定コマンド

Ksocket の設定コマンドについて説明します。

「コマンド使用方法 > コマンド実行方法」を参照し Ksocket シェルを起動した上で実行してください。

設定一覧の確認

設定一覧を確認するには ksocket config コマンドを引数なしで実行します。

以下に実行例を記載します。

= より左側が「設定名」で右側が「設定値」です。

% ksocket config
logfile=$KSOCKET_HOME/var/log/ksocket/ksocket.log
loglevel=INFO
logformat=%(asctime)s %(levelname)s %(name)s:%(funcName)s:%(lineno)d %(message)s
logfilters=ksocket
connect.token=YourKsocketToken
connect.name=ksocket
connect.protocol=wss
connect.host=fixpoint.cloud.kompira.jp
connect.port=443
connect.endpoint=%(protocol)s://%(host)s:%(port)d/api/ksocket/connect
connect.heartbeatTimeout=30.0
connect.heartbeatInterval=60.0
connect.resumeTimeout=60.0
connect.resumeRetries=120
connect.resumePlateau=10
connect.resumeThreshold=120.0
connect.requestTimeout=60.0
connect.requestRetries=10
connect.maxOperations=100
connect.maxRunningOperations=5
operations.networksScanMode=intranet
directories.credentials=$KSOCKET_HOME/etc/ksocket/credentials

設定の確認

任意の設定値を確認するには ksocket config コマンドを、確認したい設定名と共に呼び出します。

例えば connect.host の値を確認したい場合は以下のように入力します。

% ksocket config connect.host
fixpoint.cloud.kompira.jp

設定の変更

設定の変更を行うには ksocket config コマンドを変更対象の設定名および設定値と共に呼び出します。

例えば connect.host の値を myspace.cloud.kompira.jp に変更したい場合は以下のように入力します。

% ksocket config connect.host myspace.cloud.kompira.jp

値にスペースや特殊文字等を含む場合は各シェルのエスケープルールに従って、適切にエスケープしてください。

  • Linux (Bash)
% ksocket config connect.token "e.g. \$, \", and \\"
  • Windows (PowerShell)
> ksocket config connect.token "e.g. ^$, \^", and ^^"

注意

Ksocket は起動時に設定ファイルを読むため、設定を適用するには Ksocket を再起動してください。

自己診断コマンド

問題調査等で Ksocket の動作確認を行いたい場合の自己診断コマンドについて説明します。

「コマンド使用方法 > コマンド実行方法」を参照し Ksocket シェルを起動した上で、ksocket diagnostics コマンドを実行します。

なお ksocket diagnostics コマンドは Ksocket スロットの一時的な占有を防ぐため authenticate を実行しません。

認証まで含めて診断する場合は、続けて ksocket diagnostics authenticate コマンドを実行してください。

システム診断

システム的な不備がないか診断するには ksocket diagnostics system を呼び出してください。

以下のようにすべて OK であれば、システム的な問題はありません。

% ksocket diagnostics system
Python:  3.9.13 (main, Aug 29 2023, 03:50:02)  [GCC 4.4.7 20120313 (Red Hat 4.4.7-23)]
Ksocket: 2.4.2

KSOCKET_HOME:    /opt/fixpoint/ksocket
KSOCKET_CONFIG:  /opt/fixpoint/ksocket/etc/ksocket/ksocket.toml

$PYTHONHOME:
$PYTHONPATH:
$PYTHONOPTIMIZE: 1
$PYTHONENCODING:
$PYTHONUTF8:
$KSOCKET_HOME:   /opt/fixpoint/ksocket
$KSOCKET_CONFIG:

ssl ................... OK
aiofiles .............. OK
aiohttp ............... OK
asyncssh .............. OK
dpkt .................. OK
hashlib ............... OK
netifaces ............. OK
Cryptodome ............ OK
pcap .................. OK
pysnmp ................ OK
pytz .................. OK
winrm ................. OK
yaml .................. OK
requests_credssp ...... OK
ntlm_auth ............. OK
jsonref ............... OK
stringcase ............ OK
websockets ............ OK
websockets.speedups ... OK

設定ファイル診断

設定ファイルに不備がないか診断するには ksocket diagnostics config を呼び出してください。

以下のようにすべて OK であれば、設定ファイルに問題はありません。

% ksocket diagnostics config
Python:  3.9.13 (main, Aug 29 2023, 03:50:02)  [GCC 4.4.7 20120313 (Red Hat 4.4.7-23)]
Ksocket: 2.4.2

KSOCKET_HOME:    /opt/fixpoint/ksocket
KSOCKET_CONFIG:  /opt/fixpoint/ksocket/etc/ksocket/ksocket.toml

$PYTHONHOME:
$PYTHONPATH:
$PYTHONOPTIMIZE: 1
$PYTHONENCODING:
$PYTHONUTF8:
$KSOCKET_HOME:   /opt/fixpoint/ksocket
$KSOCKET_CONFIG:

Read KSOCKET_CONFIG as bytes .......... OK
Read KSOCKET_CONFIG as UTF-8 .......... OK
Read KSOCKET_CONFIG as TOML/YAML ...... OK
Read KSOCKET_CONFIG as config file .... OK

疎通状況診断

DNS 設定等 Kompira cloud との疎通に不備がないか診断するには ksocket diagnostics connect を呼び出してください。

以下のようにすべて OK であれば、疎通状況に問題はありません。

% ksocket diagnostics connect
Python:  3.9.13 (main, Aug 29 2023, 03:50:02)  [GCC 4.4.7 20120313 (Red Hat 4.4.7-23)]
Ksocket: 2.4.2

KSOCKET_HOME:    /opt/fixpoint/ksocket
KSOCKET_CONFIG:  /opt/fixpoint/ksocket/etc/ksocket/ksocket.toml

$PYTHONHOME:
$PYTHONPATH:
$PYTHONOPTIMIZE: 1
$PYTHONENCODING:
$PYTHONUTF8:
$KSOCKET_HOME:   /opt/fixpoint/ksocket
$KSOCKET_CONFIG:

Resolve DNS forward lookup (cloud.kompira.jp) ..... OK [40.81.216.149]
Establish TCP connection (cloud.kompira.jp:80) .... OK
Establish TCP connection (cloud.kompira.jp:443) ... OK

KSOCKET_INSECURE: False

Host:     fixpoint.cloud.kompira.jp
Port:     443
Protocol: wss
Endpoint: wss://fixpoint.cloud.kompira.jp:443/api/ksocket/connect

Resolve DNS forward lookup ... OK [40.81.216.149]
Establish TCP connection ..... OK
Establish websocket .......... OK

認証情報診断

Ksocket token の誤り等、認証情報に不備がないか診断するには ksocket diagnostics authenticate を呼び出してください。

以下のようにすべて OK であれば、認証情報に問題はありません。

% ksocket diagnostics authenticate
Python:  3.9.13 (main, Aug 29 2023, 03:50:02)  [GCC 4.4.7 20120313 (Red Hat 4.4.7-23)]
Ksocket: 2.4.2

KSOCKET_HOME:    /opt/fixpoint/ksocket
KSOCKET_CONFIG:  /opt/fixpoint/ksocket/etc/ksocket/ksocket.toml

$PYTHONHOME:
$PYTHONPATH:
$PYTHONOPTIMIZE: 1
$PYTHONENCODING:
$PYTHONUTF8:
$KSOCKET_HOME:   /opt/fixpoint/ksocket
$KSOCKET_CONFIG:

KSOCKET_INSECURE: False

Host:     fixpoint.cloud.kompira.jp
Port:     443
Protocol: wss
Endpoint: wss://fixpoint.cloud.kompira.jp:443/api/ksocket/connect

Complete authentication ...... OK

注意

  • 自己診断を行う場合は、一度 Ksocket のサービスを停止してください。
    サービスの停止方法は、コマンド使用方法 > サービス管理コマンド > サービスの管理 を参照してください。

  • 認証処理を行うため、すでに同じ Ksocket スロットに対して別の Ksocket が接続している場合は失敗します。
    認証情報診断を行う際は新規 Ksocket スロットを作成して、そのスロットに対して接続を行ってください。

サービス管理コマンド

Ksocket が利用しているデーモン/サービスを管理するためのコマンドです。

「コマンド使用方法 > コマンド実行方法」を参照し Ksocket シェルを起動した上で実行してください。

各プラットフォームに合わせて systemd , Upstart もしくは NSSM をバックエンドとして使用します。

以降、Ksocket デーモン/サービスを Ksocket サービスと呼称します。

インストールとアンインストール

Ksocket サービスのインストールとアンインストールについて説明します。

インストール(install)

Linux

Ksocket サービスをインストールします。

成功時は以下のように表示されます。

※プラットフォームによって若干表示内容に差があります。

% ksocket service install
Check if ksocket runner exists .......... OK
Create a service file ................... OK [/opt/fixpoint/ksocket/usr/lib/systemd/
,→system/ksocket.service]
Install the service ..................... OK
Get status of the service ............... OK
Restart the service ..................... OK

Linux では systemd もしくは Upstart のうち、検出できた方に対して ksocket という名前のデーモンを登録します。

各設定ファイルのインストール先は以下を参照してください。

  • systemd
    • /usr/lib/systemd/system/ (CentOS/RedHat)
    • /lib/systemd/system/ (Ubuntu/Debian)
    • /usr/local/lib/systemd/system/ (FreeDesktop)
  • Upstart
    • /etc/init
windows

Windows では Ksocket にバンドルされている NSSM を利用して Fixpoint ksocket service という名前のサービスを登録します。

確認する場合は スタート > Windows 管理ツール > サービス から確認してください。

注意

Windows にて CPU 使用率が異常に高い場合(シングルコアに対して 4 スレッドで 100% の使用率等)は Ksocket サービスのインストールに失敗することがあります。

その場合は CPU 使用率が下がってから再度サービスインストールを実行してください。

アンインストール(uninstall)

Ksocket サービスをアンインストールします。

成功時は以下のように表示されます。

※プラットフォームによって若干表示内容に差があります。

% ksocket service uninstall
Stop the service ........................ OK
Uninstall the service ................... OK
Remove a service file ................... OK [/opt/fixpoint/ksocket/usr/lib/systemd/
,→system/ksocket.service]

サービスの管理

サービスの管理コマンドについて説明します。

サービスの状態確認 (status)

Linux

Ksocket サービスの状態を確認します。

下表のいずれかの状態が表示されます。

ステータス名状態
missingKsocket サービスはインストールされていません
runningKsocket サービスは作動しています
stoppedKsocket サービスは停止しています
processingKsocket サービスは状態変化中です

以下、作動中に実行した例です。

% ksocket service status
running
Windows

スタート > Windows 管理ツール > サービス を開き、Fixpoint ksocket service から状態を確認することができます。

サービスの開始(start)

Linux

Ksocket サービスを開始します。

成功時は以下のように表示されます。

※プラットフォームによって若干表示内容に差があります。

% ksocket service start
Get status of the service ............... OK
Start the service ....................... OK

既に Ksocket サービスが開始されていた場合は Skip と表示され、成功扱いになります。

% ksocket service start
Get status of the service ............... OK
Start the service ....................... Skip
Windows

スタート > Windows 管理ツール > サービス を開きます。

Fixpoint ksocket service を右クリックでメニューを表示し、開始 をクリックしてください。

サービスの停止(stop)

Linux

Ksocket サービスを停止します。

成功時は以下のように表示されます。

※プラットフォームによって若干表示内容に差があります。

% ksocket service stop
Get status of the service ............... OK
Stop the service ........................ OK

既に Ksocket サービスが停止されていた場合は Skip と表示され、成功扱いになります。

% ksocket service stop
Get status of the service ............... OK
Stop the service ........................ Skip
Windows

スタート > Windows 管理ツール > サービス を開きます。

Fixpoint ksocket service を右クリックでメニューを表示し、停止 をクリックしてください。

サービスの再起動(restart)

Linux

Ksocket サービスを再起動します。

成功時は以下のように表示されます。

※プラットフォームによって若干表示内容に差があります。

% ksocket service restart
Get status of the service ............... OK
Restart the service ..................... OK

既に Ksocket サービスが停止されていた場合もリスタート扱いとなります。

Windows

スタート > Windows 管理ツール > サービス を開きます。

Fixpoint ksocket service を右クリックでメニューを表示し、再起動 をクリックしてください。

設定ファイル

Ksocket の設定ファイルについて説明します。

Ksocket は各種設定ファイルを TOML 0.4.0 形式で記載します1

Ksocket 設定

Ksocket は起動時に Ksocket インストール先の $KSOCKET_HOME/etc/ksocket/ksocket.toml に記載された設定を読み込みます。

インストール先がデフォルトの場合、 $KSOCKET_HOME は以下になります。

  • Windows:C:\ProgramData\Fixpoint\ksocket
  • Linux:/opt/fixpoint/ksocket

設定の確認・変更には 設定コマンド が利用できます。

Windows では設定ファイルの編集にメモ帳が利用できますが、その際には「管理者として実行」するよう注意してください。

注意

下記にて明言されていない設定項目も存在しますが、内部的な項目のため変更しないでください。

logfile

ログファイルの書き込み先ファイルを指定します。

値として - を指定した場合、ファイルではなく標準出力に結果を書き出します。

デフォルト値は $KSOCKET_HOME/var/log/ksocket/ksocket.log です。

ksocket コマンドとして実行する場合は --logfile={VALUE} というコマンド引数で上書きできます。

また、以下の特殊変数が利用可能です。

  • $KSOCKET_HOME:Ksocket のインストール先ディレクトリパス

loglevel

ログの出力レベルを DEBUG, INFO, WARNING, ERROR, CRITICAL から指定します。

検証時は DEBUGINFO、運用時は WARNING 以上に設定することをお勧めします。

デフォルト値は INFO です。

ksocket コマンドとして実行する場合は --loglevel={VALUE} というコマンド引数で上書きできます。

connect.token

Kompira cloud との接続時に利用する Ksocket トークンを指定します。

Ksocket トークンの発行は Ksocket トークンの発行 を参照してください。

connect.host

接続先の Kompira cloud スペースを FQDN で指定します。

例えば、スペース名が fixpoint の場合は fixpoint.cloud.kompira.jp となります。

connect.port

Kompira cloud との接続時に利用するポート番号を指定します。

特別な事情がない限り 443 を利用してください。

デフォルト値は 443 です。

connect.protocol

Kompira cloud との接続時に利用するプロトコルを wss, ws から指定します。

特別な事情がない限り wss を利用してください。

デフォルト値は wss です。

operations.networksScanMode

ネットワークスキャンの際に利用するモードを intranet, azure, aws から指定します。

スキャン対象のネットワーク種類によって切り替えてください。

  • intranet:社内ネットワーク等のローカルネットワークをスキャンする場合
  • azure:Microsoft Azure (Azure) 上の Azure Virtual Machine (Azure VM) インスタンスを API 経由でスキャンする場合
  • aws:AWS 上の Amazon EC2 インスタンスを API 経由でスキャンする場合
  • googlecloud:Google Cloud の Google Compute Engine (GCE)インスタンスを API 経由でスキャンする場合

directories.credentials

クレデンシャルファイルの保存先ディレクトリを指定します。

デフォルト値は $KSOCKET_HOME/etc/ksocket/credentials です。

以下の特殊変数が利用可能です。

  • $KSOCKET_HOME:Ksocket のインストール先ディレクトリパス

認証情報の設定

Ksocket は、検知した機器についてIPアドレス等の簡易な情報に加えて、端末の詳細情報をスキャンすることも可能です。

詳細情報のスキャンには、対象ホストにログインするための認証情報を準備する必要があります。

Ksocket は対象ホストに対する接続試行時に Ksocket インストール先の ./etc/ksocket/credentials から対象ホストにマッチする認証情報ファイルを読み込みます。

認証情報ファイルの作成には Kompira cloud ログイン後の「設定 > ツールメニュー > 認証情報生成」を利用してください。

詳細情報取得タイミングに関しては ローカルネットワークスキャンの仕組み を参照してください。

対応プロトコル

Ksocket は以下のプロトコルでの認証に対応しています。

  • SNMP(v2c/v3)
  • SSH
  • WinRM

ファイル形式と保管場所

設定ファイルのテンプレートは、下記のパスに 999-example.toml.skeleton というファイル名で保管されます。1

フォルダが見つからない場合は、隠しフォルダとなっている可能性があるため隠しフォルダも表示するよう設定します。

Windows
プロトコルフォルダパス
SNMP(v2c/v3)C:\ProgramData\Fixpoint\ksocket\etc\ksocket\credentials\snmp
SSHC:\ProgramData\Fixpoint\ksocket\etc\ksocket\credentials\ssh
WinRMC:\ProgramData\Fixpoint\ksocket\etc\ksocket\credentials\winrm
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
1

snmp ディレクトリ下のみ例として 999-default.toml というファイルも存在しています。

toml ファイルの作成

toml ファイルを作成します。

1つの認証情報ごとに1つの toml ファイルを作成する必要があります。

用意されている .skeleton のテンプレートファイルを .toml にコピーして利用してください。

snmp ディレクトリ下のみ 999-default.toml ファイルがありますが、こちらはテンプレートではなく toml ファイルの一例です。

toml ファイルの作成において使用する用語と入力内容を下記に記載します。

用語入力内容
includes認証情報を適用する対象のIPアドレスを入力します。
Ksocket が検知した際に、ここに含まれているIPアドレスであった場合は、記載されている認証情報を利用してアクセスを試みます。
authprotocol以下のいずれかを入力します。
認証をしない場合:"usmNoAuthProtocol"
MD5を使用する場合:"usmHMACMD5AuthProtocol"
SHAを使用する場合: "usmHMACSHAAuthProtocol"
privProtocol暗号化方式を記載します。
暗号化をしない場合:"usmNoAuthProtocol“
DESを使用する場合: "usmDESPrivProtocol“
AESを使用する場合: "usmAesCfb128Protocol"
authMethod認証形式を記載します。
"basic", "ntlm", "credssp"のいずれかから選択できます。

SSH(Linux に対しての接続)

SSH (Secure Shell) を使用した対象ホストへのアクセスに関する接続情報を指定します。

この接続情報ファイルは Ksocket インストール先の ./etc/ksocket/credentials/ssh 以下に保存してください。

このファイルは以下のようなフォーマットで作成します。

# IP addresses/Networks which use this credential file
# この認証情報を利用して接続する IP アドレスもしくはネットワークを指定します。
# 以下の例では 10.10.0.0/24 のホスト及び 10.20.0.1, 10.20.0.3 が指定されます。
includes = ["10.10.0.0/24", "10.20.0.1", "10.20.0.3"]

# 除外対象とする IP アドレスもしくはネットワークを指定します。
# includes よりも優先されるため includes で大きな範囲を指定した後に
# excludes で除外設定を行うことが可能です。
#excludes = ["10.10.0.1", "10.10.0.3"]

# 接続に使用するポート番号を指定します。省略時は 22 になります。
#port = 10022

# 接続のタイムアウト時間を指定します。
#timeout = 5.0

# 踏み台とするホストの IP アドレスリストを指定します。
# 以下の例のように指定すると、以下の経路で SSH 接続を行います。
#
# ksocket --> 10.10.0.1 --> 10.10.0.3 --> (target IP)
#
#sshTunnels = ["10.10.0.1", "10.10.0.3"]

# 接続に使用するアカウント情報を指定します。
[account]
# ユーザ名
username = "john"

# パスワード
password = "passw0rd"

# 接続に使用する鍵ファイル候補一覧を指定します。
# 鍵ファイルを使用しない場合は以降すべてを削除もしくはコメントアウトします。
[[account.clientKeys]]
filename = "../../id_rsa.common"
passphrase = "Common password"

[[account.clientKeys]]
filename = "/root/.ssh/id_rsa"
passphrase = "Admin password"

上記において、 account.clientKeys.filename には絶対パスおよび相対パスが指定可能です。

注意

Windows では、以下の点に注意してください。

  • ディレクトリの指定では (または \ )の代わりに / を利用してください。
    • 例えば c:¥ProgramData¥fixpoint ではなく c:/ProgramData/fixpoint とします。
  • ディレクトリは絶対パス、または C:\ProgramData\Fixpoint\ksocket\etc\ksocket\credentials\ssh\ からの相対パスで指定します。
  • 秘密鍵の配置場所に制限はありませんが、管理・運用上の理由で接続情報と同一ディレクトリを推奨します。

WinRM(Windows に対しての接続)

WinRM (Windows Remote Management) を使用した対象ホストへのアクセスに関する接続情報を指定します。

この接続情報ファイルは Ksocket インストール先の ./etc/ksocket/credentials/winrm 以下に保存してください。

Windows 機の詳細情報を取得するためには、別途スキャン対象ノード側の WinRM 接続を許可する必要があります。
設定方法は「Kompira Sonar 基本マニュアル > 設定手順 > Ksocket セットアップ > Ksocket のインストール > WinRM 接続の有効化」を参照してください。

このファイルは以下のようなフォーマットで作成します。

# この認証情報を利用して接続する IP アドレスもしくはネットワークを指定します。
# 以下の例では 10.10.0.0/24 のホスト及び 10.20.0.1, 10.20.0.3 が指定されます。
includes = ["10.10.0.0/24", "10.20.0.1", "10.20.0.3"]

# 除外対象とする IP アドレスもしくはネットワークを指定します。
# includes よりも優先されるため includes で大きな範囲を指定した後に
# excludes で除外設定を行うことが可能です。
#excludes = ["10.10.0.1", "10.10.0.3"]

# 接続方法を指定します。
# basic: ベーシック認証 (デフォルト)
# ntlm: NT LAN Manager (NTLM) 認証
# credssp: Credential Security Support Provider (CredSSP) 認証
#authMethod = "basic"

# メッセージ暗号化設定を選択します。
# auto: 暗号化を行う (デフォルト)
# always: 常に暗号化を行う
# never: 暗号化を行わない
#authMessageEncryption = "auto"

# authMethod: credssp 指定時のみ有効となります。
# true を指定すると、TLSv1.2 による通信を無効化します。
# 主に Windows Server 2008 に接続する際に使用します。
#authCredSSPDisableTLSv1.2 = false

# 接続に使用するポート番号を指定します。省略時は 5985 になります。
#port = 5985

# 接続のタイムアウト時間を指定します。
#timeout = 5.0

# SSH 踏み台 IP アドレスリストを指定します。
# 以下の例のように指定すると、以下の経路で SSH/WinRM 接続を行います。
#
# ksocket --> 10.10.0.1 --> 10.10.0.3 --> (target IP)
#
# 終端の IP アドレスへのアクセスのみが WinRM 接続となり、
# そこまでの各経路では SSH 接続を行います。
#sshTunnels = ["10.10.0.1", "10.10.0.3"]

# 接続に使用するアカウント情報を指定します。
[account]
# アカウント名
# ドメインアカウントを使用する場合、
# 'MYDOMAIN\\USER01' (NTLM 形式)
# 'user01@MYDOMAIN' (UPN 形式)
# のように指定します。
username = "john"

# パスワード
password = "passw0rd"

ドメインアカウントを使用する場合、Basic 認証によるアクセスは行うことができません。

この場合は NTLM 認証でアクセスするように接続情報を設定してください。

authMethod パラメータを ntlm と指定することで、NTLM 認証でのアクセスとなります。

SNMP(ネットワーク機器に対しての接続)

SNMP (Simple Network Management Protocol) を使用した対象ホストへのアクセスに関する接続情報を指定します。

この接続情報ファイルは Ksocket インストール先の ./etc/ksocket/credentials/snmp 以下に保存してください。

このファイルは以下のようなフォーマットで作成します。

# この認証情報を利用して接続する IP アドレスもしくはネットワークを指定します。
# 以下の例では 10.10.0.0/24 のホスト及び 10.20.0.1, 10.20.0.3 が指定されます。
includes = ["10.10.0.0/24", "10.20.0.1", "10.20.0.3"]

# 除外対象とする IP アドレスもしくはネットワークを指定します。
# includes よりも優先されるため includes で大きな範囲を指定した後に
# excludes で除外設定を行うことが可能です。
#excludes = ["10.10.0.1", "10.10.0.3"]

# 接続に使用するポート番号を指定します。省略時は 161 になります。
#port = 161

# 接続のタイムアウト時間を指定します。
#timeout = 5.0

# 接続リトライ回数を指定します。
#retries = 0

# 接続リトライ間隔 (秒)を指定します。
#retryInterval = 1.0

[authData]
# 接続に使用するコミュニティ名を指定します。 (SNMP v2c の場合のみ指定)
community = "public"

# 以下は、SNMP v3 の場合のみ指定します。
# ユーザ名
username = "your-username"

# 認証方式
# usmNoAuthProtocol (認証なし、default)
# usmHMACMD5AuthProtocol (MD5(HMAC-MD5-96) に対応)
# usmHMACSHAAuthProtocol (SHA(HMAC-SHA-96) に対応)
# usmHMAC128SHA224AuthProtocol
# usmHMAC192SHA256AuthProtocol
# usmHMAC256SHA384AuthProtocol
# usmHMAC384SHA512AuthProtocol
authProtocol = "usmHMACMD5AuthProtocol"

# 認証パスワード
#authKey = "your-password"

# 暗号化方式
# usmNoPrivProtocol (暗号化なし、default)
# usmDESPrivProtocol (DES(CBC-DES))
# usm3DESEDEPrivProtocol (3DES-EDE)
# usmAesCfb128Protocol (AES(CFB128-AES-128))
# usmAesCfb192Protocol (AES(CFB128-AES-192))
# usmAesCfb256Protocol (AES(CFB128-AES-256))
privProtocol = "usmAesCfb128Protocol"

# 暗号化パスワード
privKey = "priv-your-password"

VMware vSphere API(vCenter、ESXiに対しての接続)

VMware vSphere API (vCenter、ESXi) を使用したリモートホストへのアクセスに関する接続情報を指定します。

この接続情報ファイルは Ksocket インストール先の ./etc/ksocket/credentials/vsphere 以下に保存してください。

このファイルは以下のようなフォーマットで作成します。

# IP addresses/Networks which use this credential file
# この認証情報を利用して接続する IP アドレスもしくはネットワークを指定します。
# 以下の例では 10.10.0.0/24 のホスト及び 10.20.0.1, 10.20.0.3 が指定されます。
includes = ["10.10.0.0/24", "10.20.0.1", "10.20.0.3"]

# 除外対象とする IP アドレスもしくはネットワークを指定します。
# includes よりも優先されるため includes で大きな範囲を指定した後に
# excludes で除外設定を行うことが可能です。
#excludes = ["10.10.0.1", "10.10.0.3"]

# 接続に使用するポート番号を指定します。省略時は 443 になります。
#port = 443

# SSL証明書の検証の無効化します。省略時は true とします。
#disableSslCertValidation = true

# 接続のタイムアウト時間を指定します。
#timeout = 5.0

# 接続に使用するアカウント情報を指定します。
[account]
# ユーザ名
username = "john"

# パスワード
password = "passw0rd"

設定ファイルの暗号化・復号

設定ファイルの暗号化および復号について説明します。

暗号化

toml 形式で保存された認証情報は平文で保存されていますので、必要に応じて暗号化を行います。

  • Windows:下記コマンドを管理者権限にて実行してください。

    C:\ProgramData\Fixpoint\ksocket\bin\ksocket encrypt (認証情報のtomlファイル名)
    
  • Linux:下記コマンドを実行してください。

    $sudo /opt/fixpoint/ksocket/bin/ksocket encrypt (認証情報のtomlファイル名)
    

拡張子“.toml”が “.toml.kscrypt” という暗号化ファイルになります。

Ksocket 本体は kscrypt ファイルを読み取り、内部的に復号処理を行って対象の機器にアクセスを行います。

復号

暗号化した認証情報ファイルを復号する際は以下のように行い ます。

  • Windows:下記コマンドを管理者権限にて実行してください。

    C:\ProgramData\Fixpoint\ksocket\bin\ksocket decrypt (暗号化認証情報の.kscryptファイル名)
    
  • Linux:下記コマンドを実行してください。

    $sudo /opt/fixpoint/ksocket/bin/ksocket decrypt (暗号化認証情報の.kscryptファイル名)
    

拡張子“.toml.kscrypt”ファイルが平文の“.toml”に復号されます。

復号後はテキストエディターで編集できるようになりますので、編集後は必要に応じて再度暗号化を行ってください。

!注意! 暗号化設定ファイルの保存・バックアップ

認証情報ファイルのバックアップや移動を行う際には、必ず復号化してから行ってください。

Ksocket では、初回起動時に RSA 鍵ペアが作成保存されており、暗号化・復号の際には作成された RSA 鍵が利用されています。

暗号化されたファイルを別の Ksocket 用サーバーに移動させるなど、元の RSA 鍵にアクセスできなくなると、復号化ができなくなります。

特に Ksocket 用サーバを複数運用して認証情報ファイルを共有する場合、kscrypt ファイルのコピーは利用できませんのでご注意ください。

接続情報ファイルの検索順

対象ホストに対する接続を行うオペレーションが実行されると、接続対象の IP アドレスをもとに適切な接続情報ファイルが検索されます。

この検索は、以下のルールに基づき行われます。

  1. Ksocket インストール先の ./etc/ksocket/credentials/<接続方式名> 内のファイル・フォルダを辞書順に検索
  2. ファイル名・フォルダ名が _ から始まる場合は除外
  3. ディレクトリの場合
    • ディレクトリ内のファイルに対して同様の検索(幅優先)
  4. ファイルの場合は以下の適合テストに移行
    1. ファイル名が .toml または .yml で終わっていない場合は除外
    2. includes の値を読み取り、対象の IP アドレスが含まれていない場合は除外
    3. excludes の値を読み取り、対象の IP アドレスが含まれている場合は除外
    4. 上記にて除外されなかった場合は適合と判定

上記の検索にて適合した接続情報ファイルは INFO レベルでログに記載されます。

また、適合する接続情報ファイルが見つからなかった場合は WARNING レベルでログに記載され、リモートへの接続を試みる前にオペレーションが終了します。

検索例

上記の検索順に基づいた例を記載します。

以下のような構成により接続情報ファイルが保存されていると仮定します。

なお $KSOCKET_HOME は Ksocket インストール先を示すものとします。

+- $KSOCKET_HOME/etc/ksocket/credentials/ssh
  +- 00_common.toml
  +- 01_specific/
  |  +- 00_common.toml
  |  +- 02_final.toml
  |  +- _special.toml
  +- 02_final.toml
  +- 99-example.toml.skeleton
  +- _projectA/
  |  +- 00_common.toml
  |  +- 02_final.toml
  |  +- _special.toml
  +- _projectB/
     +- 00_common.toml
     +- 02_final.toml
     +- _special.toml

この場合以下の順で適合テストが行われ、適合した順に対象ホストへの接続試行を行います。

  1. ./00_common.toml
  2. ./01_specific/00_common.toml
  3. ./01_specific/02_final.toml
  4. ./02_final.toml

補足資料

代表的なトラブルと解決法などについて説明します。

該当するものが見つからない場合、製品情報サイトのコミュニティの Sonar 関連トピックもしくは support@kompira.jp にお問い合わせください。

なお、問い合わせの際に以下の情報を追加していただけると、スムーズな問題解決につながります。

  • 利用しているスペース名
  • 自己診断コマンドの結果
  • DEBUG レベルで出力した Ksocket ログ
  • スキャンを行った大まかな日時

ksocket コマンドが見つからない

ksocket コマンドを実行した場合、以下のように ksocket コマンドが見つからないというメッセージが表示されることがあります。

シェルメッセージ
bash-bash ksocket: command not found
PowerShellksocket : 用語 'ksocket' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認してから、再試行してください。
cmd'ksocket' は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。

これは Ksocket がホストの環境をクリーンに保つため $PATH 等の環境変数を変更しないことに起因します。

詳細は コマンド実行方法 を参照してください。

自己診断コマンドによる診断

Ksocket にまつわる問題を調査する場合は 自己診断コマンド を参照し自己診断コマンドを実行してください。

system 診断が失敗する

システム的な不備があります。

自己診断コマンドの出力結果と共にサポートまでお問い合わせください。

config 診断が失敗する

設定ファイルに不備があります。

表示されたメッセージ等を参考に設定ファイルを修正してください。

connect 診断が失敗する

疎通状況に不備があります。

DNS やファイアーウォール等のネットワーク設定を見直してください。

なお Ksocket 単体では HTTP Proxy 配下で利用できません。

HTTP Proxy 下で利用する場合は プロキシ経由でksocket を使用する を参考に ksbridge を利用してください。

authenticate 診断が失敗する

Ksocket の認証処理に不備があります。

  • Ksocket トークンが失効していないか確認してください
  • Ksocket スロットに対して既に接続が存在しないか確認してください
    ※Ksocket スロットに対して同時に接続できる Ksocket は一つのみです。

デバッグログによる調査

ログレベルを変更するために サービス管理コマンドstop サブコマンドを利用して Ksocket サービスを停止します。

% ksocket service stop
Get status of the service ............... OK
Stop the service ........................ OK

停止後に 設定コマンド を利用して loglevel を DEBUG に変更します。

% ksocket config loglevel DEBUG

現在のログファイルをリネームしてから Ksocket サービスを起動します。

% cd /opt/fixpoint/ksocket
% mv var/log/ksocket/ksocket.log var/log/ksocket/ksocket.prev.log
% ksocket service start
Get status of the service ............... OK
Start the service ....................... OK

これにより Ksocket インストール先の ./var/log/ksocket/ksocket.log に詳細なデバッグログが記録されるようになったため、スキャン等を実行してログを収集してください。

Ksocket v1 から v2 への移行

すでに Ksocket v1 がインストールされている場合は、まず設定ファイルおよび設定情報ファイルをバックアップします。

その後、対応する Ksocket ドキュメントに従って既存の Ksocket をアンインストールしてから Ksocket v2 を新規インストールします。

設定ファイルの移行

Ksocket v2 では設定ファイルに対して以下の変更点があります。

全て内部的な設定値なので、利用していない場合は無視してください。

Ksocket v1Ksocket v2
connect.insecureKSOCKET_INSECURE 環境変数を代わりに利用してください
connect.heartbeat_timeoutconnect.heartbeatTimeout
connect.heartbeat_intervalconnect.heartbeatInterval
connect.resume_timeoutconnect.resumeTimeout
connect.resume_retriesconnect.resumeRetries
connect.resume_plateauconnect.resumePlateau
connect.resume_thresholdconnect.resumeThreshold
connect.request_timeoutconnect.requestTimeout
connect.request_retriesconnect.requestRetries
connect.max_operationsconnect.maxOperations

接続情報ファイルを暗号化している場合

Ksocket v2 は新規インストールが必要なため、接続情報ファイルを ksocket encrypt を利用して暗号化している場合は ksocket decrypt を利用して復号化してください。

暗号化/復号化の詳細は 詳細情報の取得のためのアカウント情報の設定 > 設定ファイルを暗号化/復号化する を参照してください。

systemd を利用している場合

systemd を利用していて ksocket.service ファイルをカスタマイズしている場合は KillMode=process[Service] セクションに加えてください。

以下に ksocket.service の例を記載します。

[Unit]
Description=A RPC like client service for Fixpoint, Inc. Kompira cloud
After=network.target

[Service]
Type=simple
KillMode=process
WorkingDirectory=/opt/fixpoint/ksocket
ExecStart=/opt/fixpoint/ksocket/bin/ksocket connect
StartLimitInterval=10
StartLimitBurst=5

[Install]
WantedBy=multi-user.target

Azure/AWS で利用している場合

新規インストール時の Scan mode 選択で azure もしくは aws を入力してください。

Ksocket トークンの更新方法

Ksocket トークンを更新する際の手順について説明します。

Ksocket トークンの再発行

Ksocket トークンの発行 を参照し、対象の Ksocket のトークンを再作成します。

設定ファイルの編集

Ksocket 設定 を参照し、ksocket.tomltoken を再作成したトークンに書き換えます。

Ksocket の再起動

サービスの管理 を参照し、Ksocket を再起動します。

接続の確認

Kompira cloud 共通メニューで Sonar と Ksocket の接続を確認します。

仕様情報

Ksocket の仕様情報について記載します。

システム要件

項目内容備考
サポート対象 OSRed Hat Enterprise Linux 7 / 8
CentOS 7
CentOS Stream 8
Ubuntu 18.04 / 20.04 / 22.04
Windows Server 2016 / 2019
推奨ハードウェア構成CPU:1GHz以上
メモリ:1GB以上
HDD:20GB以上
サーバー上での別システムとの同居Ksocket が動作する状態であることが前提

通信要件

項目内容備考
Ksocket -> SonarTCP-443 WSSProxy 環境下の場合は Ksbridge への接続
Ksocket -> スキャン対象ノードTCP-22 SSH
TCP-23 Telnet
TCP-25 SNMP
TCP-53 DNS
TCP-80 HTTP
TCP-135 MS-RPC
TCP-139 NetBIOS Session Service
TCP-443 HTTPS
TCP-445 SMB
TCP-587 SMTP
TCP-5985 WinRM
詳細は、ローカルネットワークスキャンの仕組み を参照
Ksocket -> Ksbridge任意 WSポート番号は Ksbridge 起動時に任意で設定可能

導入・設定

項目内容備考
導入種別パッケージ・ソフトウェアインストールの後サービスとして起動
依存パッケージなし導入先ノードの既存アプリケーションに影響が出ない形でインストールされる
動作モードintranet
azure
aws
googlecloud
Ksocket 導入時に左記いずれかの項目を指定し動作モードを設定
動作ログ出力ログファイル
動作ログ出力レベルDEBUG
INFO
WARNING
ERROR
デフォルトはINFO

変更履歴

Ksocket に対する特筆すべき変更点について記載します。

2.5.0 - 2024-03-27

  • Ksocket のスキャンモードに googlecloud を追加し、Google Cloud Compute 上の仮想マシンのスキャンに対応しました
  • Ksocket の動作環境について、 Windows Server 2012 / 2012 R2 のサポートを終了しました
    • 同 OS をスキャン対象とすることは引き続き可能です

2.4.2 - 2023-12-06

  • Ksocket 2.4.1 以降、 WinRM による情報取得で NTLM 認証を使えなくなった問題を修正しました

2.4.1 - 2023-10-11

  • Ksocket 内部で利用している OpenSSL のバージョンを 3.0 に更新しました

2.4.0 - 2023-03-22

  • VMware vSphere API を使用したスキャンにおいて、vCenter / ESXi 上で動作している VM の情報取得に対応しました

2.3.2 - 2023-01-25

  • Linux に対してパスフレーズ付きの鍵を用いた SSH 接続に失敗する問題を修正しました

2.3.1 - 2022-11-30

  • 一部の Linux ディストリビューションにおいて、Ksocket の実行に依存ライブラリのlibpcap.so を別途インストールする必要が生じていていた問題を修正しました

2.3.0 - 2022-11-09

  • VMware vSphere API を使用した vCenter と ESXi の情報取得をサポートしました

2.2.4 - 2022-10-05

  • Ksocket のサポート対象 OS について、正規サポートが終了している下記 3 OS のサポートを終了しました

    • RHEL 6
    • CentOS 6
    • Ubuntu 16.04
  • 設定ファイルのフォーマットが不正な状態で診断コマンドを実行した場合、診断自体がエラーで止まってしまっていた問題を修正しました

2.2.1 - 2022-12-17

  • 特定のスキャン命令が正常に処理されていなかった不具合を修正しました
    ※ 2020/12 時点では Juniper 製品の LLDP 情報収集処理のみが影響しています

2.2.0 - 2020-10-19

  • ARM 64bit(ARMv8 aarch64) 対応版をリリースしました
  • コマンドのヘルプで利用可能コマンド一覧が表示されていなかった不具合を修正しました

2.1.1 - 2020-08-25

  • 一部のサンプル設定ファイルがインストール時に展開されていなかった問題を修正しました

2.1.0 - 2020-05-14

  • Linux(CentOS7) 上の L2TP/IPsec(ppp) インターフェース経由でのスキャンに対応しました

2.0.1 - 2020-04-03

  • 自己診断コマンド ksocket dignostics を ksocket diagnostics にリネームしました
  • 自己診断コマンドにて疏通確認時にホストの SSL 証明書のみを参照していた問題を修正しました

2.0.0 - 2020-04-01

Ksocket リモートアップデート機能対応と ARMv7 のサポートを含んだリリースです。

多数の非互換変更を含むため Ksocket v1 を利用していた方は「Ksocket v1 から v2 への移行」を参照してください。

新機能

  • CPU アーキテクチャとして ARMv7 Little Endian をサポートしました
  • 自己診断コマンドを追加しました
  • デーモン/サービス管理コマンドを追加しました
  • 上書きインストールに対応しました
  • Windows にて RSA 鍵の読み取り権限を ACL を用いて ksocket 実行ユーザーおよび Administrator に限定する機能を追加しました
  • 内部的に利用するため KSOCKET_CONFIG 環境変数による読み取り設定ファイルの切り替え機能を追加しました
  • 内部的に利用している insecure オプションの廃止および KSOCKET_INSECURE 環境変数を追加しました
  • 内部的なオペレーション同時実行数制限 (maxRunningOperations) を導入しました

変更点

  • セマンティックバージョニングを採用しました
  • 設定ファイルの読み込みに失敗した場合にプロセスが終了するように変更しました(非互換)
  • Azure/AWS の自動判定機能の廃止およびスキャンモードを追加しました(非互換)
  • 内部的な設定項目名を snake_case から camelCase に変更しました
  • 内部的な再配置可能 Python を Conda から独自形式に変更しました
  • 内部的な Windows サービスの登録方式を pywin32 方式から NSSM 方式に変更しました

削除予定の機能

  • YAML 形式の設定ファイル

削除された機能

  • 内部的な設定項目を一部廃止しました(非互換)
  • 内部的なコマンドの一部引数を廃止しました(非互換)
  • 内部的なオペレーションプラグイン機構を廃止しました(非互換)
  • 内部的なコマンドプラグイン機構を廃止しました(非互換)
  • 内部的な一部オペレーションを廃止しました(非互換)

バグ修正

  • 一部のアドレス存在確認プロトコルにて OS のルーティングテーブルを考慮しない問題を修正しました
  • ネットワーク遅延等によりオペレーションが重複発行された場合にスキャンが不安定になる問題を修正しました
  • 大量のアドレスをスキャンした際にスキャンが不安定になる問題を修正しました