22 以外のポートで SSH サーバーを検出する方法Issue <!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: #000000; } span { font-size: 12pt; font-family: Lato; color: #000000; } h2 { font-size: 24pt; font-family: Lato; color: black; } h3 { font-size: 18pt; font-family: Lato; color: black; } h4 { font-size: 14pt; font-family: Lato; color: black; } a { font-size: 12pt; font-family: Lato; color: #00718F; } a:hover { font-size: 12pt; color: #024F69; } a:target { font-size: 12pt; color: #032D42; } a:visited { font-size: 12pt; color: #00718f; } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } この記事では、デフォルトの 22 ポート以外のポートで SSH サーバーを検出するようにディスカバリーを構成する 2 つの方法について説明します。 注: この KB 全体では、例としてポート 22000 を使用します。ただし、このポートは、環境に最適なポート (SSH デバイスがリッスンしているポート) に変更できます。したがって、「22000」が表示されている場合は、目的のポートに置き換えます。 Release<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: #000000; } span { font-size: 12pt; font-family: Lato; color: #000000; } h2 { font-size: 24pt; font-family: Lato; color: black; } h3 { font-size: 18pt; font-family: Lato; color: black; } h4 { font-size: 14pt; font-family: Lato; color: black; } a { font-size: 12pt; font-family: Lato; color: #00718F; } a:hover { font-size: 12pt; color: #024F69; } a:target { font-size: 12pt; color: #032D42; } a:visited { font-size: 12pt; color: #00718f; } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } すべて Resolution<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: #000000; } span { font-size: 12pt; font-family: Lato; color: #000000; } h2 { font-size: 24pt; font-family: Lato; color: black; } h3 { font-size: 18pt; font-family: Lato; color: black; } h4 { font-size: 14pt; font-family: Lato; color: black; } a { font-size: 12pt; font-family: Lato; color: #00718F; } a:hover { font-size: 12pt; color: #024F69; } a:target { font-size: 12pt; color: #032D42; } a:visited { font-size: 12pt; color: #00718f; } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } IP サービスの追加 [IP サービス>ディスカバリー定義」に移動し、次の情報を含む新しいエントリを追加します。 名前:SSH on 22000サービス名:Secure Shell Service on 22000ポート:22000プロトコル:TCP作成:なし [ポートプローブ>ディスカバリー定義] に移動し、エントリー「ssh」を編集します 「サービスによってトリガー」フィールドのロックを解除しますそれに「SSH on 22000」を追加しますディスカバリーポートプローブを保存します。 次回ディスカバリーを実行するときに、デフォルトではポート 22 と 22000 の両方がスキャンされます。応答するポートは、残りのディスカバリーでトリガーされた SSHCommand プローブに使用されるポートです。唯一の欠点は、スキャンごとにポート 22 と 22000 の両方がスキャンされることです。 非常に特殊な状況では、ポート 22 と 22000 の両方が使用可能であり、どちらも SSH サーバーで使用できますが、22000 のポートを使用する場合もあります。これらの欠点は、[ ] を使用して回避できます。 動作の使用 [IP サービス>ディスカバリー定義」に移動し、次の情報を含む新しいエントリを追加します。 名前:SSH on 22000サービス名:Secure Shell Service on 22000ポート:22000プロトコル:TCP作成:なし 「Discovery Definition > Port Probes」に移動し、新しいエントリを追加します (これはほぼ「ssh」のコピーです)。 名前:SSH on 22000説明:22000 ログイン時のセキュアシェルスキャナー:バナー付きの汎用 TCPトリガーとなるサービス:SSH on 22000トリガー probe: UNIX - 分類使用された分類:UNIX 分類分類の優先度:2アクティブ:trueCIs:trueIP:true ディスカバリーがディスカバリープロセスを開始すると、機能定義「すべて」で定義されたポートプローブがデフォルトで含まれている Shazzam プローブが送信されます。 機能定義「すべて」には、デフォルトで次のものが含まれます。 wmisnmpsshhttpwinsdnsプリンターosxip_phoneslpwbem 22000 でリッスンしているデバイスのみを検出することがわかっている場合は、「SSH on 22000」(または「ssh」と「SSH on 22000」の両方) のみを含む 機能定義 を作成できます。次に、その機能を使用する動作を作成し、ディスカバリースケジュールを実行するときにその動作を使用するように指示するだけです。 ディスカバリースケジュールは、その動作/機能にあるデバイスのみを検出します。 「ディスカバリー定義>機能定義」に移動し、新しいエントリを追加します 名前:SSH on 22000ポートプローブ:SSH on 22000 22 と 22000 の両方が必要な場合は、この機能定義を「SSH MyName」などと呼び、ポートプローブ「ssh」と「ssh on 22000」の両方を含めることができます。 [ディスカバリー定義>動作] に移動し、新しいエントリを追加します。 名前:ssh ipsos[保存] を選択します。エントリーを開き、関連リスト [ディスカバリー機能] に新しいエントリーを追加します。 フェーズ:0機能定義:SSH on 2000 (手順 3 で使用した名前)MID サーバー:この機能を実行する MID サーバー (1 つ以上) を追加します。 ディスカバリースケジュールで、フィールド 動作 を「SSH NyName」に設定します。これにより、スケジュールの開始時に、送信された Shazzam プローブは、ステップ 3 で説明したように、機能定義に含まれるポートプローブに対応するポートのみをスキャンします。 [MID サーバー] フィールドがディスカバリースケジュールから消えることを確認します。これは、このスケジュールを処理するためにどの MID サーバーが必要かをすでに指定しているためです。 これらすべてに多くの柔軟性があり、もちろん、特に MID サーバーが負荷分散クラスターに設定されている場合は、考慮すべき点が他にもあります。 パターン 検出中のデバイスがパターンを使用している場合は、MID サーバープロパティ mid.sa.ssh.port も追加します。 ecc_agent_propertyテーブルに移動します。[新規] をクリックします。名前を mid.sa.ssh.port に設定します。値をカンマ区切りのポートリストに設定します。すべての MID サーバーでプロパティを有効にするには MID サーバーを空に設定するか、MID サーバーを指定します 注: 環境がハイブリッドの場合、つまり 22 または 22000 でリッスンしているデバイスがある場合は、プロパティ値を 22,22000 に設定します。 センサーがトリガーしたプローブ 一部のセンサーは追加のプローブをトリガーし、「port」パラメーターを渡さない場合があります。この場合、トリガーされたプローブはデフォルトでポート 22 になります。このような場合は、「port」プローブパラメーターを渡すためにセンサーのコードを更新する必要があります。 初期設定では、次のプローブがこの問題に含まれます。 <instance>.service-now.com/discovery_sensor_list.do?sysparm_query=scriptLIKETriggerProbe%5Ereacts_to_probe.ecc_queue_topic%3DSSHCommand 代替ポートおよびシステムプロパティ glide.discovery.ip_service_affinity = true でデバイスが正常に検出されると、デバイスを正常に検出するために使用されたポートを示すテーブルip_service_affinityのエントリが作成されます。これは、センサー内からトリガーされたプローブにポートを追加するために使用できます。追加するコード例: var ip = this.getSource();var sa = new GlideRecord('ip_service_affinity');sa.addQuery('ip_address',ip);sa.query();// If we find an affinity, get the port and add to the probe as a parameterif(sa.next()){ // Check that ip_service and ip_service_port are not empty, to avoid any potential nullpointers if(!gs.nill(sa.ip_service) && !gs.nill(sa.ip_service.port)){ // Now that we have the port, lets add it to the probe probe.addParameter("port", sa.ip_service.port); }} この KB には、OOB センサーに必要な変更を含む更新セットが添付されています。更新セットを使用することにした場合は、まず非本番環境でテストしてください。 Related Links<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: #000000; } span { font-size: 12pt; font-family: Lato; color: #000000; } h2 { font-size: 24pt; font-family: Lato; color: black; } h3 { font-size: 18pt; font-family: Lato; color: black; } h4 { font-size: 14pt; font-family: Lato; color: black; } a { font-size: 12pt; font-family: Lato; color: #00718F; } a:hover { font-size: 12pt; color: #024F69; } a:target { font-size: 12pt; color: #032D42; } a:visited { font-size: 12pt; color: #00718f; } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } MID サーバーを使用してポート 22 のデバイスを検出し、別の MID サーバーをポート 22000 に、別の MID サーバーを WMI に使用する動作を定義することもできます。さまざまな機能を含む動作を作成するだけです。これにより、スケジュールがその動作で実行されるときに、検出されたデバイスごとに適切な MID サーバーが選択されます。 詳細については、ドキュメントサイトを参照してください: 動作