セキュリティ補助

config区間抽出・正規化

FortiGateのconfig/editブロックやCisco系インデントブロックから、キーワードに一致する区間だけを抽出し正規化します。

いつ使うか

いつ使うか FortiGateやCisco系configから関係する区間だけを抜き出したいときに使います。
誰向けか ネットワーク・インフラ運用で、外部送信せずに下準備や確認をしたい担当者向けです。
何が分かるか キーワードに一致したconfigブロックとマスクへのハンドオフを表示します。
次に使う関連ツール AI投入前マスク 設定diff比較 ログ用正規表現テスター

入力

結果

出力

抽出結果

実務で使う場面

  • 大きいconfigから、確認対象に関連するblockだけを抽出するとき。
  • AIやTACへ相談する前に対象範囲を絞るとき。
  • interface、policy、routing sectionの関連箇所を確認するとき。
  • full config同士を比較する前に対象sectionを分離するとき。

入力例と期待される出力

FortiGate interface block

入力
mode: FortiGate keywords: interface documentation config system interface edit "lab1" set alias "documentation" next end config firewall policy edit 1 set name "documentation-policy" next end
期待される出力
matched block countは1。config system interfaceから対応するendまでを抽出し、firewall policy blockは含めません。

Cisco interface block

入力
mode: Cisco keywords: interface documentation interface Ethernet1/1 description DOCUMENTATION no shutdown ! router ospf 65000 network 192.0.2.0 0.0.0.255 area 0 !
期待される出力
matched block countは1。interface Ethernet1/1、description DOCUMENTATION、no shutdownのblockだけをcase-insensitiveで抽出し、OSPF blockは含めません。

結果の読み方

  • space区切りのkeywordはORではなくANDで、block全体へcase-insensitive substring searchを行います。
  • matched block countは抽出されたblock数です。FortiGateではnested configをtop-level blockへ含めます。
  • Cisco modeは非indent行と!をblock境界として扱うheuristicです。
  • 行末空白除去optionはtrailing spaceとtabだけを除き、連続空行optionは3個以上の改行を2個へまとめます。

注意事項

  • vendor configの完全なparserやsyntax validatorではありません。
  • indentationや独自syntaxにより、期待と異なるblockになる場合があります。
  • substring matchのため、keywordが別の語の一部へ一致する場合があります。
  • keywordを空にすると広い範囲を返す可能性があります。
  • 抽出結果にもcredential、実IP、hostname、顧客識別子が残る場合があります。
  • 外部相談前にAI投入前マスクを使い、抽出されなかった依存設定も別途確認してください。
  • 抽出結果だけでsyntax、適用可否、影響範囲を判断せず、原本configを別途保持してください。

関連ツールと次の流れ

  1. 設定diff比較抽出した区間の変更前後を行単位で比較します。
  2. AI投入前マスク抽出結果に残る識別子を外部相談前にマスクします。
  3. AI相談プロンプトビルダー対象区間、事象、確認事項を相談文へ整理します。
  4. AI回答の実行前チェック相談後に提示されたcommandを実行前に確認します。

利用メモ

  • 入力内容は保存せず、ブラウザ内で処理します。
  • 外部APIやCDNへ送信しません。

実務上の注意

  • 抽出結果にも機密値が残る場合があります。
  • AIへ渡す前にAI投入前マスクで確認してください。
  • vendor固有構文の完全なparserではありません。