📄

マニュアル:NEEDLEWORK-ScenarioWriter

はじめにお読みください

本ツールはMITライセンスです。ライセンスの内容、および下記注意事項・仕様を確認のうえ、同意いただける場合にのみご利用ください。
本ツールは補助ツールとして公開しています。サポートはベストエフォートとなり、動作を保証するものではないことをあらかじめご了承願います。
また、本ツールにプログラミング上の誤りその他の瑕疵のないこと、本ツールが特定目的に適合すること並びに本ツール及びその利用が利用者または第三者の権利を侵害するものでないこと、その他いかなる内容の保証も行うものではありません。本ツールに関して発生するいかなる問題も、利用者の責任及び費用負担により解決されるものとします。

本ツールについて

本ツールはファイアウォールのコンフィグファイルからNEEDLEWORKで使用できるcsvを生成するツールです。現在対応しているファイアウォールは以下の通りです。
  • Juniper SSG5※動作確認バージョン:6.3.0r17.0

ツールの仕様

protocol

対応しているプロトコルは下記の通りです。
  • icmp
  • tcp
  • udp

IP

  • ポリシーのIPがAnyの場合、csvに出力されるIPは下記の通りです。
    • Untrustゾーン:8.8.8.8
    • IPアドレスが設定されていないゾーン(トランスペアレントモードのゾーン等):※「Untrust」の文字列を含んでいるゾーンは送信元IP、宛先IP関係なく「8.8.8.8」を出力します
      • 送信元IP : 4.4.4.4
      • 宛先IP : 6.6.6.6
    • その他のゾーン:設定されているルーティングのネットワークアドレスからFW IPを除いた後のアドレス空間が最も広いネットワークの開始および終了IP(ネットワークアドレスとブロードキャストアドレスを除く)例:下記のように設定がされている場合、以下の処理が行われます。10.0.0.0/16からFW IPを除いた後のネットワークアドレスIPv4Network('10.0.128.0/17')の開始および終了IPである10.0.128.110.0.255.254がcsvに出力されます。
      • set route 10.0.0.0/24 interface ethernet0/0 gateway 10.0.0.1 set route 10.0.0.0/16 interface ethernet0/0 gateway 10.0.0.2 set interface ethernet0/0 ip 10.0.0.254/24 set interface bgroup0 ip 172.16.0.254/24
        [IPv4Network('10.0.128.0/17'), IPv4Network('10.0.64.0/18'), IPv4Network('10.0.32.0/19'), IPv4Network('10.0.16.0/20'), IPv4Network('10.0.8.0/21'), IPv4Network('10.0.4.0/22'), IPv4Network('10.0.2.0/23'), IPv4Network('10.0.1.0/24'), IPv4Network('10.0.0.0/25'), IPv4Network('10.0.0.128/26'), IPv4Network('10.0.0.192/27'), IPv4Network('10.0.0.224/28'), IPv4Network('10.0.0.240/29'), IPv4Network('10.0.0.248/30'), IPv4Network('10.0.0.252/31'), IPv4Network('10.0.0.255/32')]

DIP

  • dipを範囲で指定した場合、開始IPのみをcsvに出力します。

VIP

  • VIP対応サービス(ポート)は以下の通りです。
    • FTP(21)
    • DNS(53)
    • HTTP(80)
    • NTP(123)
  • ポリシーのIPがVIPかつServiceがANYの場合、VIPに設定した全てのIPを出力します。例:下記のように設定がされている場合、192.168.10.1192.168.30.3192.168.80.8がcsvに出力されます。
    • PowerShell

Service

  • serviceのポートを範囲設定した場合、終了ポートのみを出力します。(範囲指定した全ポートを出力しません)例:ポート:1000-2000の場合、2000を出力※送信元ポート、宛先ポートともに同じ仕様です
  • デフォルトで登録されている下記サービスの宛先ポートは以下の通りです。下記以外のサービスには対応していません。
    • PING(ICMP)
    • ICMP-ANY(ICMP)
    • FTP(TCP 21)
    • SSH(TCP 22)
    • TELNET(TCP 23)
    • SMTP(TCP 25)
    • MAIL(TCP 25)
    • DNS(TCP,UDP 53)
    • TFTP(TCP 69)
    • HTTP(TCP 80)
    • POP3(TCP 110)
    • NTP(TCP,UDP 123)
    • MS-RPC-EPM(TCP,UDP 135)
    • NBNAME(UDP 137)
    • NBDS(UDP 138)
    • SMB(TCP 139,445)
    • IMAP(TCP 143)
    • SNMP(TCP,UDP 161,162)
    • LDAP(TCP 389)
    • HTTPS(TCP 443)
    • IKE(UDP 500)
    • SYSLOG(UDP 514)
    • TALK(UDP 517,518)
    • MS-SQL(TCP 1433)
    • WINFRAME(TCP 1494)
    • L2TP(UDP 1701)
    • H.323(TCP 1720)
    • PPTP(TCP 1723)
    • RADIUS(UDP 1812,1813)
    • SIP(TCP,UDP 5060)
    • X-WINDOWS(TCP 6000)
    • HTTP-EXT(TCP 8000)
    • TRACEROUTE(ICMP, UDP 33400)
    • TCP-ANY(TCP 65535)
    • UDP-ANY(UDP 65535)
  • ポリシーのServiceがANYの場合、csvに出力される宛先ポート番号は下記の通りです。
    • ICMP:なし
    • TCP,UDP:65535

ゾーン

  • ゾーンにIPアドレスが設定されていない場合(トランスペアレントモード等)、 シナリオCSVの「FW IP」にはIPアドレスではなくゾーン名が出力されます。

マルチセルポリシー

※マルチセルポリシー:1つのポリシーに複数のIPアドレス、サービスを設定しているポリシー
  • マルチセルポリシーは1行目のポリシーをベースにテストシナリオを作成します。(全てのパターンでは作成しません)上記ポリシーの場合、下記がベースポリシーになります。送信元IPアドレス(set src-address "192.168.255.100/32")がマルチセルポリシーの要素として定義されているので、ベースポリシーの送信元IPを変更したテストシナリオを作成します。サービス(set service "HTTPS")もマルチセルポリシーの要素として定義されているため、ベースポリシーのサービスを変更したテストシナリオを作成します。上記ポリシーでは、ベースシナリオの他に2つのシナリオが出力されます。※ベースポリシーから出力したテストシナリオをベースシナリオと記述
    • PowerShell

その他

  • アドレス名またはサービス名にスペースが含まれる場合、正常にcsvが出力されない可能性がありますのでご注意ください。
  • csvに非出力のポリシーは理由がメッセージとして出力されます。

エラー

出力されるエラーは以下の通りです。
  • 有効化していないポリシーの出力オプションが入力されていません 有効化していないポリシーは出力しませんツール実行時にオプションでnを指定した場合、およびオプションを指定しない場合に出力されます。(無効になっているポリシーのシナリオ出力をスキップします)
  • policy id = xx は{宛先 or 送信元}IPが登録されていないため出力されませんでしたポリシーに設定されているアドレスオブジェクトにIPアドレスが設定されていない場合に出力されます。(シナリオ出力をスキップします)
  • {tcp or udp or icmp}の{サービス名}は対応していないサービスです 出力をスキップしました対応していないサービスを含んでいる場合に出力されます。(シナリオ出力をスキップします)
  • 前のポリシーで出力しているためpolicy_id = {ポリシーID}では{tcp or udp or icmp}のポリシーの出力をスキップします内容が重複しているポリシーがある場合に出力されます。(シナリオ出力をスキップします)

ツールの使用方法

本ツールはの利用方法は以下の通りです。

動作環境

  • OS : Windows 10(64bit)

事前準備

  1. 下記URLよりzipファイルをダウンロードします。※最新バージョンをご利用ください
  1. ダウンロードしたzipファイルを解凍し、出力されたディレクトリを任意のディレクトリに移動します。 ※解凍ディレクトリの中にexeファイルが格納されています

実行手順

  1. コマンドプロンプトを起動し、事前準備でダウンロードしたexeファイルの格納ディレクトリに移動します。
  1. 下記コマンドをコマンドプロンプトで実行します。
    1. オプション:コンフィグファイルで有効化していないポリシーをcsvに出力するかを決定します。
      • y : 出力する
      • n : 出力しない
      • 未入力 : 出力しない
      PowerShell
  1. コマンドプロンプトに、csvが生成されましたと表示されると完了です。

開発環境

本ツールの開発環境は以下の通りです。

環境

  • OS : Windows 10
  • python : 3.7.4
  • git : 2.20.1 (Apple Git-117)
  • pip : 19.1.1

環境構築手順

pythonのインストール

  1. pythonを公式サイトからインストールします。
  1. 環境変数を設定します。
      • 詳しくはツールの使用方法の項番5へ

gitのインストール

  1. https://git-for-windows.github.io/よりgitをインストールします。

その他作業

  1. コマンドプロンプトを起動します。
  1. 作業用ディレクトリを作成します。
      • mkdir ディレクトリ名
        • サンプルコマンド:mkdir C:\test
  1. 作成したディレクトリに移動します。
      • cd ディレクトリ名
        • サンプルコマンド:cd C:\test
  1. 作成したディレクトリに本リポジトリをcloneします。
      • git clone https://github.com/ap-communications/NEEDLEWORK-ScenarioWriter.git
  1. 作成されたディレクトリに移動します。
      • cd NEEDLEWORK-ScenarioWriter
  1. 環境変数に設定するパス(カレントディレクトリの絶対パス)を表示します。
      • cd
  1. 「5.」で表示したパスを環境変数に設定します。
      • setx PYTHONPATH 5.で表示したパス
        • サンプルコマンド:setx PYTHONPATH C:\test\NEEDLEWORK-ScenarioWriter
  1. PCを再起動します。
  1. コマンドプロンプトを起動します。
  1. ツールに使用する外部ライブラリをインストールします。
      • python -m pip install pandas==0.25.0
  1. 「4.」で作成されたディレクトリに移動します。
      • cd 4.で作成されたディレクトリ
        • サンプルコマンド:cd C:\test\NEEDLEWORK-ScenarioWriter
  1. コマンドプロンプトにて以下のコマンドを実行し、シナリオCSVを出力します。
      • python main\gencsv.py file_name disable_policy_output
        • file_name:ファイアウォールのコンフィグファイルを相対パスまたは絶対パスで入力、またはドラッグ&ドロップします。
        • disable_policy_output:コンフィグファイルで有効化していないポリシーをcsvに出力するかを決定します。
          • y : 出力する
          • n : 出力しない
          • 未入力 : 出力しない
          • サンプルコマンド : python main\gencsv.py SSGconfig.txt y

お問い合わせ