LoginSignup
6
8

Security Onionで始めるネットワーク監視 #1 インストール編

Posted at

セキュリティツールおよびセキュリティ向けLinuxディストリビューションというとkali linuxなどが有名ですが、今回はSecurity OnionというLinuxディストリビューションを紹介します。

Security Onionとは

Security Onionをとてもざっくり説明すると守りのセキュリティ向けDebianベースのLinuxディストリビューションです。kali linuxはペネトレーションツールなどを多く含んだ攻めのセキュリティ向けLinuxディストリビューションですが、Security Onionはパケットキャプチャや侵入検知・エンドポイント監視などを中心に搭載している特に運用者向きのOSになっています。

ネットワークのトラフィックをこのOSに流すことで、見やすく監視しつつ、やばいトラフィックにアラート鳴らしてくれるとかをやってくれます。筆者はこれを書いている段階で学生なので実務でどの程度まで用いられているかは推測になりますが、ある程度のセキュリティ運用現場においては使われている様子だと思われる一方、一般向けには日本語ドキュメントが少ないため公式ドキュメントをしっかり読み解きましょう。

搭載されているツール

  • Playbook
  • FleetDM
  • osquery
  • CyberChef
  • Elasticsearch
  • Logstash
  • Kibana
  • Suricata
  • Zeek
  • Wazuh

そしてこれらを利用するためのwebコンソールとして

  • Security Onion Console

細かい内容に関しては以下の公式ドキュメント内introductionなどを参照すると色々書いてあります

インストール形態

Security Onionにはいくつかの形態が含まれています。

  • Import
    • 簡易的にpcapファイルやlogファイルを解析するだけの形態
  • Evaluation
    • 小規模ネットワーク向けでログとかを少なめに取るようにした評価版らしい
  • Production
    • 中大規模ネットワーク向けでこっちは本番環境向けらしい
      • Standalone
        • 一台で動かすためのもの。一台でなんとかなるスペックで全部ネットワークを収容できるならこっちで十分
      • Distributed Deployment
        • 複数台で構築するためのもので恐らく複数のサブネットを跨いで構築できる。セキュリティポリシーとかの関係でいっぺんに全部のサブネットを一台にさせなかったりしたら多分こっち
  • Analyst
    • GNOMEが搭載されててWiresharkとNetworkMinerが使える。Productionと組み合わせて別で立てることを推奨している様子だが、その他の形態に無理矢理相乗りさせることも可能。

今回はProductionのStandaloneで構築していきます。

なお本記事執筆時点でのバージョンは2.3.260でした

セットアップ

今回は原則公式ドキュメントの手順に則ってインストールを行なっていきます。

環境紹介

今回筆者はESXi上のVMに以下の環境で構築します。

CPU : 4core
RAM : 16GB
Storage : 256GB
NIC : 10個

Requirementsは以下に書いてあります

また、各環境におけるインストール手順が公式ドキュメントにまとまっているので、異なる環境でよくわからない部分はそれらをそれぞれ参照してください。オンプレからクラウドまで一通り揃っています。

余談ですが、ESXiを使うような人間に説明はいらないだろと、なぜかESXiの部分だけ適当です

ネットワーク環境に関してはVLANが9個あるので、マネジメント用のNICを一つ足したVMに仮想NICを10個刺しています。
ベースのOSがCentOS7なのでESXiのVM側にはCentOS7として設定しました。

また、ブラウザから各ツールにアクセスするために、IPは固定します。

isoのダウンロード

こちらにやり方が書いてありますが、isoファイルのダウンロードリンクと署名の検証方法がついています。分野の特性上署名の検証までやれるようになっています。めんどくさいと思う人は自己責任で飛ばしてください。

VMへのインストール

isoからの起動

ESXiでは事前にNICを接続し、isoファイルをドライブにマウントしてあります。この状態でシステムをドライブから立ち上げ以下の順番でこなしていきます。

  • OSインストールで全部消えるのはもちろんそうなのでyesでenter
    スクリーンショット 2023-09-16 17.23.19.png
  • adminのユーザー名を入力
    スクリーンショット 2023-09-16 17.24.46.png
  • adminのパスワードを入力
    スクリーンショット 2023-09-16 17.25.19.png
  • adminのパスワードを再入力
    スクリーンショット 2023-09-16 17.25.46.png
  • インストールプロセスが勝手に進んできます。次の画面までそこそこ時間かかります
    スクリーンショット 2023-09-16 17.26.29.png
  • この画面に到達したらenterでreboot
    スクリーンショット 2023-09-16 17.36.34.png
    この段階でVMだとドライブのマウントが外されます。実機やその他の環境でもそのようにしてください。

再起動後ストレージからの起動

  • reboot後再起動前のadminアカウントでログイン。ユーザー名を入力
    スクリーンショット 2023-09-16 17.39.06.png
  • パスワードを入力
    スクリーンショット 2023-09-16 17.40.07.png
  • 続けるのでYesでEnter。書いてあるようにこの先の画面ではSpaceで選択、Enterで確定。加えて上下キーで上下選択です
    スクリーンショット 2023-09-16 17.40.48.png
  • installなのでそのままEnter
    スクリーンショット 2023-09-16 17.44.05.png
  • 上下キーで移動してSTANDALONEでSpace、Enter
    スクリーンショット 2023-09-16 17.44.52.png
  • Elasticsearchのライセンスに同意する必要があるので、AGREEと入力してEnter
    スクリーンショット 2023-09-16 17.47.04.png
  • ホスト名を入力後Enter
    スクリーンショット 2023-09-16 17.49.13.png
  • ホストの詳細について入力(何もいらなければEnter)
    スクリーンショット 2023-09-16 17.50.22.png
  • managementのNICを選択、ここで選択したネットワークにIPを割り当ててブラウザ経由で接続できるようになります。
    スクリーンショット 2023-09-16 18.15.02.png
  • Staticを選択
    スクリーンショット 2023-09-16 17.54.07.png
  • IPとサブネットマスクを入力
    スクリーンショット 2023-09-16 18.01.02.png
  • デフォルトゲートウェイを入力
    スクリーンショット 2023-09-16 18.04.31.png
  • DNSサーバーを入力
    スクリーンショット 2023-09-16 18.05.22.png
  • DNS search domainがあれば入力
    スクリーンショット 2023-09-16 18.07.51.png
  • 正しく設定できていればこうなる。Enterで続行
    スクリーンショット 2023-09-16 18.08.52.png
  • インターネットにつながる環境ならStandard、そうでなければAirgap。ここではStandardで続行
    スクリーンショット 2023-09-16 18.09.42.png
  • proxyの設定。ここではDirectで続行
    スクリーンショット 2023-09-16 18.10.59.png
  • モニター用のNICをSpaceで選択。複数選択可
    スクリーンショット 2023-09-16 18.23.41.png
  • OSのPatchインストールのタイミングを選択。ここではAutomaticで続行する
    スクリーンショット 2023-09-16 18.24.49.png
  • LANのサブネットを入力。監視対象のサブネットも含むのかは不明だが、筆者は一つ一つ全部入れた
    スクリーンショット 2023-09-16 18.25.52.png
  • インストールのセッティングを選択、今回はADVANCEDで進める
    スクリーンショット 2023-09-16 18.32.43.png
  • ZeekかSuricataのどちらのNIDSツールを使うかを選択。今回はZeekで進める
    スクリーンショット 2023-09-16 18.36.24.png
  • 送るログの種類を選択。今回は触らずにこのまま続行
    スクリーンショット 2023-09-16 18.38.24.png
  • IDS rulesetで何を使うかを選択。今回は無料で使えるETOPENを選択
    スクリーンショット 2023-09-16 18.39.08.png
  • Optional Servicesを選択。今回は全部インストールしておく
    スクリーンショット 2023-09-16 18.44.01.png
  • Docker Networkで使うIPを変更するかどうかを選択。筆者の環境で競合は起きないのでYesで続行
    スクリーンショット 2023-09-16 18.44.46.png
  • Webインターフェースにログインするためのメールアドレスを入力
    スクリーンショット 2023-09-16 18.45.44.png
  • Webインターフェースにログインするためのパスワードを入力
    スクリーンショット 2023-09-16 18.46.58.png
  • もう一度入力
    スクリーンショット 2023-09-16 18.47.28.png
  • 接続の制限でIPを直接叩くか、ドメインからの接続に限定するか等の設定。今回はIP
    スクリーンショット 2023-09-16 18.47.51.png
  • soremoteのユーザーを追加する。SSH用のユーザーらしい。OKで続行
    スクリーンショット 2023-09-16 18.49.19.png
  • soremoteのパスワードを入力
    スクリーンショット 2023-09-16 18.52.10.png
  • もう一度
    スクリーンショット 2023-09-16 18.52.44.png
  • NSM componentsのオプション設定。今回はADVANCEDで続行
    スクリーンショット 2023-09-16 18.53.14.png
  • zeekで使うコアを選択。今回は1で続行
    スクリーンショット 2023-09-16 18.54.58.png
  • Suricataで使うコアを選択。今回は0で続行
    スクリーンショット 2023-09-16 18.55.38.png
  • MTUを選択。今回の環境は1500なのでこのまま続行
    スクリーンショット 2023-09-16 18.56.45.png
  • ntpサーバーがあれば設定する。今回はないのでNoで続行
    スクリーンショット 2023-09-16 18.59.04.png
  • Nodeの設定についてのオプション。今回はAdvancedで続行
    スクリーンショット 2023-09-16 19.00.44.png
  • ES heapサイズの設定。今回は標準のまま続行
    スクリーンショット 2023-09-16 19.01.32.png
  • ElasticSerach用にどれだけのストレージを確保しておくかの設定。今回は標準のままで続行
    スクリーンショット 2023-09-16 19.02.05.png
  • Logstash heapサイズの設定。今回は標準のまま続行
    スクリーンショット 2023-09-16 19.03.08.png
  • Logstash pipeline workerの数の設定。標準で続行
    スクリーンショット 2023-09-16 19.03.45.png
  • Logstash pipeline batch sizeの数の設定。標準で続行
    スクリーンショット 2023-09-16 19.04.22.png
  • Logstash input threadsの数の設定。標準で続行
    スクリーンショット 2023-09-16 19.04.46.png
  • 他のホストがWebインターフェースを通してSecurity Onionのインストーラーの実行を許可するため?のオプション。正確なことはわからないがこのままyes
    スクリーンショット 2023-09-16 19.05.27.png
  • 先の許可のIPの範囲。適切なものを入力して続行
    スクリーンショット 2023-09-16 19.07.50.png
  • 最終確認画面が出てくるので確認してYes
    68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f323938363534372f36616264373763352d366533372d663462342d643033632d6562366135326430663938642e706e67.png
  • しばらく設定反映まで待機
    スクリーンショット 2023-09-16 19.11.46.png
  • うまくいくと以下のような画面でインストールが完了します。Enterでrebootしてインストール完了です
    68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f323938363534372f65396437666138322d643630382d623865382d303734332d6331636636313565623233372e706e67.png

インストール完了後

再起動後ログインするとYou may need to run so-allow first if you haven't yetと出ているので

sudo so-allow

と実行しましょう。
色々なツールを立ち上げられますが、aを選択することでwebコンソールに接続できるようになります。
68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f323938363534372f36353562656261342d616436312d383931302d383937392d6663336162373537636234632e706e67.png

アクセス元のIPを求められるので適切なものを設定してください。(制限が特になければ0.0.0.0/0で大丈夫です)

以上で初期設定は完了です。先ほど設定した固定IPに別の端末からアクセスするとこのように表示されて正常にウェブコンソールが見れることがわかります。
68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f323938363534372f37303265313538322d643631382d643765342d653130392d6562333165383734316262372e706e67.png

長くなりましたので一旦ここで区切ります。各ツールの使い方・適用方法は続きの記事に書きます 。(書けたら)

6
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
8