Ksocket 利用マニュアル 目次
Ksocket 利用マニュアル
株式会社フィックスポイント の Ksocket 利用マニュアルです。
最終更新日: 2024/05/29
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。
-
Prefix:Ksocket のインストール先ディレクトリです。デフォルト値2が入っています。
-
Scan mode:Ksocket のスキャン動作モードです。通常は
intranet
を入力してください。
対象が Azure , AWS , Google Cloud 上の仮想ネットワークの場合は、各ネットワークに合わせazure
aws
googlecloud
のいずれかを入力してください。
設定コマンド にて後から設定もできます。 -
Host:接続先スペースの FQDN (Fully Qualified Domain Name) です。
スペース名 + .cloud.kompira.jp
と入力してください(例:スペース名が fixpoint の場合fixpoint.cloud.kompira.jp
)。
設定コマンド にて後から設定もできます。 -
Token:Ksocket 接続トークンです。
Kompira cloud support の Ksocket トークンの発行 を参考に、発行した有効な Ksocket トークンを入力してください。
設定コマンド にて後から設定もできます。
入力が完了すると Ksocket のインストールが開始します。
インストール後、 Ksocket は初期化処理を行ってからインストーラーにて指定されたスペースに接続します3。
対象スペースにアクセス後「設定 > Ksocket > 対象の Ksocket スロット」のステータスが「接続済み」になっていれば、インストール完了です。
なお、インストール時に存在しない Host や Token を入力した場合は、所定回数リトライした後 Ksocket サービスが停止します。
正しい情報を入力して Kompira cloud に接続するには 設定コマンド にて有効な値を設定します。
設定後、サービス管理コマンドの restart サブコマンドにて Ksocket サービスを再起動してください。
Windows 版 Ksocket インストーラーではクリップボードにコピーされた値を右クリックで貼り付けることができます。Linux 版では使用しているターミナルの設定に依存します。
デフォルトのインストール先は下記の通りです。
- Windows:C:\ProgramData\Fixpoint\ksocket
- Linux:/opt/fixpoint/ksocket
初期化処理に必要な時間は 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 アクセスを可能にする必要があります。
VM インスタンスとして指定した OS 以外も利用できますが、ここでは説明の簡略化のために限定しています。
インストール時にスキャンモードの選択を間違えた場合は 設定コマンド を参照して azure に再設定してください。
Azure リソースに対するアクセス権限の付与
スキャンモードが azure で動作する Ksocket は VM インスタンスに関する情報を API 経由で収集します。
この際、対象の Azure のサブスクリプションに対して Reader 相当の権限を必要とします。
そのため、以下のいずれかの方法で必要な権限を付与してください。
Azure リソースのマネージド ID を使用する場合
リソースのマネージド ID を使用し Ksocket がインストールされた VM インスタンスに対象サブスクリプションへの権限を付与します。
具体的な設定手順は下記リンクを参照してください。
- Windows VM のシステム割り当てマネージド ID を使用して Resource Manager にアクセスする
- Linux VM のシステム割り当てマネージド ID を使用して Resource Manager にアクセスする
※サービスプリンシパル用のファイル(Ksocket インストール先の ./etc/ksocket/azure.toml
)が存在する場合は削除してください。
サービスプリンシパルを使用する場合
サービスプリンシパルを使用し Ksocket に対象サブスクリプションへの権限を付与します。
Azure ポータルを使用してサービスプリンシパルを作成します。
次に対象のサブスクリプションをスコープとするロールを、作成したサービスプリンシパルに付与します。
上記の具体的な手順は下記リンクを参照してください。
- リソースにアクセスできる Azure AD アプリケーションとサービス プリンシパルをポータルで作成する
- Azure RBAC と Azure portal を使用してロールの割り当てを追加または削除する
その後 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 。
注意
インストール時
2023年11月以降に作成した EC2 インスタンスに Ksocket v2.5.0 以下をインストールしてスキャンした場合、AWS
との互換性の問題によりスキャン結果がエラーになる可能性があります。
AWS をスキャンする際は Ksocket v2.5.1 以上の利用を推奨します。
Ksocket はスキャン対象の VPC 毎にインストールしてください。
スキャン対象の VPC
内のハードウェア構成やインストール済みパッケージの取得は、ローカル ネットワークスキャンと同様に行います。
そのため Ksocket に対して適切な
接続情報ファイル を提供し SSH/WinRM/SNMP アクセスを可能にする必要があります。
インスタンス名とインスタングタグ取得時
インスタンス名およびインスタンスタグを取得するには、EC2 Management Console にて「インスタンスメタデータのタグを許可する」設定が必要です。
設定方法については、公式ドキュメントの インスタンスメタデータのタグへのアクセスを許可する を参照してください。
EC2 インスタンスとして指定した OS 以外も利用できますが、ここでは説明の簡略化のために限定しています。
インストール時にスキャンモードの選択を間違えた場合は 設定コマンド を参照して 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 アクセスを可能にする必要があります。
GCE インスタンスとして指定した OS 以外も利用できますが、ここでは説明の簡略化のために限定しています。
インストール時にスキャンモードの選択を間違えた場合は 設定コマンド を参照して 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"
設定ファイルがある場合はサービスアカウントキーの利用を優先します。
設定ファイル中に指定がない場合は、接続されたサービスアカウントによるスキャンを試みます。
アンインストール
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
... 略
インストール先に /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
と検索すると、以下の通りアプリケーションが表示されるため、クリックして開きます。
「このアプリがデバイスに変更を与えることを許可しますか?」と表示された場合は、「はい」をクリックしてください。
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 サービスの状態を確認します。
下表のいずれかの状態が表示されます。
ステータス名 | 状態 |
---|---|
missing | Ksocket サービスはインストールされていません |
running | Ksocket サービスは作動しています |
stopped | Ksocket サービスは停止しています |
processing | Ksocket サービスは状態変化中です |
以下、作動中に実行した例です。
% 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
から指定します。
検証時は DEBUG
か INFO
、運用時は 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 |
SSH | C:\ProgramData\Fixpoint\ksocket\etc\ksocket\credentials\ssh |
WinRM | C:\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 |
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 アドレスをもとに適切な接続情報ファイルが検索されます。
この検索は、以下のルールに基づき行われます。
- Ksocket インストール先の
./etc/ksocket/credentials/<接続方式名>
内のファイル・フォルダを辞書順に検索 - ファイル名・フォルダ名が
_
から始まる場合は除外 - ディレクトリの場合
- ディレクトリ内のファイルに対して同様の検索(幅優先)
- ファイルの場合は以下の適合テストに移行
- ファイル名が
.toml
または.yml
で終わっていない場合は除外 includes
の値を読み取り、対象の IP アドレスが含まれていない場合は除外excludes
の値を読み取り、対象の IP アドレスが含まれている場合は除外- 上記にて除外されなかった場合は適合と判定
- ファイル名が
上記の検索にて適合した接続情報ファイルは 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
この場合以下の順で適合テストが行われ、適合した順に対象ホストへの接続試行を行います。
./00_common.toml
./01_specific/00_common.toml
./01_specific/02_final.toml
./02_final.toml
補足資料
代表的なトラブルと解決法などについて説明します。
該当するものが見つからない場合、製品情報サイトのコミュニティの Sonar 関連トピックもしくは support@kompira.jp にお問い合わせください。
なお、問い合わせの際に以下の情報を追加していただけると、スムーズな問題解決につながります。
- 利用しているスペース名
- 自己診断コマンドの結果
- DEBUG レベルで出力した Ksocket ログ
- スキャンを行った大まかな日時
ksocket コマンドが見つからない
ksocket コマンドを実行した場合、以下のように ksocket コマンドが見つからないというメッセージが表示されることがあります。
シェル | メッセージ |
---|---|
bash | -bash ksocket: command not found |
PowerShell | ksocket : 用語 'ksocket' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認してから、再試行してください。 |
cmd | 'ksocket' は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。 |
これは Ksocket がホストの環境をクリーンに保つため $PATH 等の環境変数を変更しないことに起因します。
詳細は コマンド実行方法 を参照してください。
自己診断コマンドによる診断
Ksocket にまつわる問題を調査する場合は 自己診断コマンド を参照し自己診断コマンドを実行してください。
system 診断が失敗する
システム的な不備があります。
自己診断コマンドの出力結果と共にサポートまでお問い合わせください。
config 診断が失敗する
設定ファイルに不備があります。
表示されたメッセージ等を参考に設定ファイルを修正してください。
connect 診断が失敗する
疎通状況に不備があります。
DNS やファイアーウォール等のネットワーク設定を見直してください。
なお Ksocket 単体では HTTP Proxy 配下で利用できません。
HTTP Proxy 下で利用する場合は プロキシ経由で Ksocket を使用する を参考に ksbridge を利用してください。
authenticate 診断が失敗する
Ksocket の認証処理に不備があります。
- Ksocket トークンが失効していないか確認してください
- Ksocket スロットに対してすでに接続が存在しないか確認してください
※Ksocket スロットに対して同時に接続できる Ksocket は 1 つのみです。
デバッグログによる調査
ログレベルを変更するために サービス管理コマンド の 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 v1 | Ksocket v2 |
---|---|
connect.insecure | Ksocket_INSECURE 環境変数を代わりに利用してください |
connect.heartbeat_timeout | connect.heartbeatTimeout |
connect.heartbeat_interval | connect.heartbeatInterval |
connect.resume_timeout | connect.resumeTimeout |
connect.resume_retries | connect.resumeRetries |
connect.resume_plateau | connect.resumePlateau |
connect.resume_threshold | connect.resumeThreshold |
connect.request_timeout | connect.requestTimeout |
connect.request_retries | connect.requestRetries |
connect.max_operations | connect.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.toml
の token
を再作成したトークンに書き換えます。
Ksocket の再起動
サービスの管理 を参照し、Ksocket を再起動します。
接続の確認
Kompira cloud 共通メニューで Sonar と Ksocket の接続を確認します。
仕様情報
Ksocket の仕様情報について記載します。
システム要件
項目 | 内容 | 備考 |
---|---|---|
サポート対象 OS | Red 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 -> Sonar | TCP-443 WSS | Proxy 環境下の場合は 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.1 - 2024-05-29
- AWS の Instance Metadata Service 2 (IMDS2) に対応し、IMDSv2 が必須なインスタンスでも
aws
スキャンモードを利用できるようになりました- 2023年11月以降に作成した EC2 インスタンスに Ksocket v2.5.0 以下をインストールしてスキャンした場合、AWS との互換性の問題によりスキャン結果がエラーになる可能性があります。AWS をスキャンする際は Ksocket v2.5.1 以上の利用を推奨します
- インストーラーのヘルプにおいて、以下の値を
-scan-mode
オプションに指定できるよう修正しましたintranet
azure
aws
googlecloud
- Windows 版のインストーラーにおいて、インストール処理完了時にインストーラーがユーザーのキー入力待ちになる挙動を、
-batch
オプションの指定時はスキップするように変更しました
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 のルーティングテーブルを考慮しない問題を修正しました
- ネットワーク遅延等によりオペレーションが重複発行された場合にスキャンが不安定になる問題を修正しました
- 大量のアドレスをスキャンした際にスキャンが不安定になる問題を修正しました