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

セキュリティツールおよびセキュリティ向けLinuxディストリビューションというと[kali linux](https://www.kali.org)などが有名ですが、今回はSecurity OnionというLinuxディストリビューションを紹介します。
# Security Onionとは
Security Onionをとてもざっくり説明すると**守り**のセキュリティ向けDebianベースのLinuxディストリビューションです。kali linuxはペネトレーションツールなどを多く含んだ**攻め**のセキュリティ向けLinuxディストリビューションですが、Security Onionはパケットキャプチャや侵入検知・エンドポイント監視などを中心に搭載している特に運用者向きのOSになっています。

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

https://securityonionsolutions.com

## 搭載されているツール
- Playbook
- FleetDM
- osquery
- CyberChef
- Elasticsearch
- Logstash
- Kibana
- Suricata
- Zeek
- Wazuh

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

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

https://docs.securityonion.net/en/2.3/introduction.html#

## インストール形態
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は以下に書いてあります

https://docs.securityonion.net/en/latest/hardware.html#

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

:::note 
余談ですが、ESXiを使うような人間に説明はいらないだろと、なぜかESXiの部分だけ適当です
:::
ネットワーク環境に関してはVLANが9個あるので、マネジメント用のNICを一つ足したVMに仮想NICを10個刺しています。
ベースのOSがCentOS7なのでESXiのVM側にはCentOS7として設定しました。

また、ブラウザから各ツールにアクセスするために、IPは固定します。
## isoのダウンロード
https://github.com/Security-Onion-Solutions/securityonion/blob/master/VERIFY_ISO.md

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

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

- OSインストールで全部消えるのはもちろんそうなのでyesでenter
![スクリーンショット 2023-09-16 17.23.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986547/81828b26-881d-1a50-57fa-566c58bd7e5a.png)
- adminのユーザー名を入力
![スクリーンショット 2023-09-16 17.24.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986547/cb81f512-d87c-234f-b0af-c3fc88ba39f7.png)
- adminのパスワードを入力
![スクリーンショット 2023-09-16 17.25.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986547/43dd815b-76bf-e7fe-0e2c-505a3d5effde.png)
- adminのパスワードを再入力
![スクリーンショット 2023-09-16 17.25.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986547/f5baa186-466e-fc58-cc91-32f9368570fb.png)
- インストールプロセスが勝手に進んできます。次の画面までそこそこ時間かかります
![スクリーンショット 2023-09-16 17.26.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986547/9564cee6-eef4-f753-1998-176ecd07c846.png)
- この画面に到達したらenterでreboot
![スクリーンショット 2023-09-16 17.36.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986547/92ac641e-f602-f9d3-4a16-5ee25ca6f239.png)
この段階でVMだとドライブのマウントが外されます。実機やその他の環境でもそのようにしてください。
### 再起動後ストレージからの起動
- reboot後再起動前のadminアカウントでログイン。ユーザー名を入力
![スクリーンショット 2023-09-16 17.39.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986547/2238d8ab-6e34-778b-0d84-ab475006c8f9.png)
- パスワードを入力
![スクリーンショット 2023-09-16 17.40.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986547/29ea20cb-0c48-dd36-7bb4-26ccb1150952.png)
- 続けるのでYesでEnter。書いてあるようにこの先の画面ではSpaceで選択、Enterで確定。加えて上下キーで上下選択です
![スクリーンショット 2023-09-16 17.40.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986547/44cfa582-58e8-feeb-20ed-8843fd61a4bb.png)
- installなのでそのままEnter
![スクリーンショット 2023-09-16 17.44.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986547/6c08bdf1-2345-cf26-12f7-3fbc2fe57483.png)
- 上下キーで移動してSTANDALONEでSpace、Enter
![スクリーンショット 2023-09-16 17.44.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986547/252832be-2272-c6be-4093-5e8e0cc44448.png)
- Elasticsearchのライセンスに同意する必要があるので、AGREEと入力してEnter
![スクリーンショット 2023-09-16 17.47.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986547/5daf3b43-7655-c0fb-295b-4b46e0e419cc.png)
- ホスト名を入力後Enter
![スクリーンショット 2023-09-16 17.49.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986547/82652be8-b707-3abb-7371-1c31d8ba105e.png)
- ホストの詳細について入力(何もいらなければEnter)
![スクリーンショット 2023-09-16 17.50.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986547/08f9038b-1de6-ad20-886a-a51cbf63aaba.png)
- managementのNICを選択、ここで選択したネットワークにIPを割り当ててブラウザ経由で接続できるようになります。
![スクリーンショット 2023-09-16 18.15.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986547/5cfc6671-bbec-90ee-cf1e-b93df7c4063c.png)
- Staticを選択
![スクリーンショット 2023-09-16 17.54.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986547/e0adaf1c-0ae3-226f-1793-02ab0081929a.png)
- IPとサブネットマスクを入力
![スクリーンショット 2023-09-16 18.01.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986547/da6aa15f-9dea-facf-5212-91cc9697bf54.png)
- デフォルトゲートウェイを入力
![スクリーンショット 2023-09-16 18.04.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986547/f8fcca86-8e2e-8359-2d82-94eade32ee0f.png)
- DNSサーバーを入力
![スクリーンショット 2023-09-16 18.05.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986547/134ece42-2c84-4903-6ae8-66f0244bcef5.png)
- DNS search domainがあれば入力
![スクリーンショット 2023-09-16 18.07.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986547/d2775556-9b9f-e7a2-0e7c-099a9a756039.png)
- 正しく設定できていればこうなる。Enterで続行
![スクリーンショット 2023-09-16 18.08.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986547/0330486a-7437-e047-d380-1d76d0f58b2c.png)
- インターネットにつながる環境ならStandard、そうでなければAirgap。ここではStandardで続行
![スクリーンショット 2023-09-16 18.09.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986547/06d7eb78-9ba9-1160-1e65-479eb6d3220b.png)
- proxyの設定。ここではDirectで続行
![スクリーンショット 2023-09-16 18.10.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986547/8085541d-d879-692d-330b-9c6d513ee4dc.png)
- モニター用のNICをSpaceで選択。複数選択可
![スクリーンショット 2023-09-16 18.23.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986547/d232ed85-361a-ff84-f7b0-eed38dc0ff2b.png)
- OSのPatchインストールのタイミングを選択。ここではAutomaticで続行する
![スクリーンショット 2023-09-16 18.24.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986547/35f96466-552d-047c-7b12-01fd766626e1.png)
- LANのサブネットを入力。監視対象のサブネットも含むのかは不明だが、筆者は一つ一つ全部入れた
![スクリーンショット 2023-09-16 18.25.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986547/f387082a-9bb7-3a8d-720b-8802895180c1.png)
- インストールのセッティングを選択、今回はADVANCEDで進める
![スクリーンショット 2023-09-16 18.32.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986547/f204e49d-3cf4-c866-9bd2-75347a7e11c3.png)
- ZeekかSuricataのどちらのNIDSツールを使うかを選択。今回はZeekで進める
![スクリーンショット 2023-09-16 18.36.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986547/656d5f24-94cb-e50c-f772-afa007124992.png)
- 送るログの種類を選択。今回は触らずにこのまま続行
![スクリーンショット 2023-09-16 18.38.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986547/c1a08664-468a-d90d-113a-ed86fa09af0e.png)
- IDS rulesetで何を使うかを選択。今回は無料で使えるETOPENを選択
![スクリーンショット 2023-09-16 18.39.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986547/ff2e0827-260f-e52f-fa0b-48e655b28401.png)
- Optional Servicesを選択。今回は全部インストールしておく
![スクリーンショット 2023-09-16 18.44.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986547/be6cbd4b-f761-3c09-314c-e3f423e33bdd.png)
- Docker Networkで使うIPを変更するかどうかを選択。筆者の環境で競合は起きないのでYesで続行
![スクリーンショット 2023-09-16 18.44.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986547/39e811cb-a542-88d7-020d-0ab35d1e1c03.png)
- Webインターフェースにログインするためのメールアドレスを入力
![スクリーンショット 2023-09-16 18.45.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986547/e223dc6b-892d-218e-9032-0eaa08c6fa73.png)
- Webインターフェースにログインするためのパスワードを入力
![スクリーンショット 2023-09-16 18.46.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986547/5ac0f0ed-4956-c90c-0aaa-eb3fa6be23eb.png)
- もう一度入力
![スクリーンショット 2023-09-16 18.47.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986547/4c872183-a104-7b31-ee41-4b1cf1fc24e0.png)
- 接続の制限でIPを直接叩くか、ドメインからの接続に限定するか等の設定。今回はIP
![スクリーンショット 2023-09-16 18.47.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986547/847932d2-6250-ee8d-0e00-04700a6c6d5e.png)
- soremoteのユーザーを追加する。SSH用のユーザーらしい。OKで続行
![スクリーンショット 2023-09-16 18.49.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986547/42949123-3e3f-8ebe-2ff3-51efe41f9168.png)
- soremoteのパスワードを入力
![スクリーンショット 2023-09-16 18.52.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986547/5f55ad3b-c3bf-6f8d-f6bf-d90edb1b0f00.png)
- もう一度
![スクリーンショット 2023-09-16 18.52.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986547/b98dd5fb-79c1-bf75-1107-23791ced4cce.png)
- NSM componentsのオプション設定。今回はADVANCEDで続行
![スクリーンショット 2023-09-16 18.53.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986547/ef4b57b2-de3a-0457-4a3e-eb195486066e.png)
- zeekで使うコアを選択。今回は1で続行
![スクリーンショット 2023-09-16 18.54.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986547/566160f2-617c-d263-3cbf-2b5df6424642.png)
- Suricataで使うコアを選択。今回は0で続行
![スクリーンショット 2023-09-16 18.55.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986547/5e894b19-6161-5909-3058-373cddf8ed55.png)
- MTUを選択。今回の環境は1500なのでこのまま続行
![スクリーンショット 2023-09-16 18.56.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986547/e28c7378-1512-5aa5-152d-d28b4cc90a00.png)
- ntpサーバーがあれば設定する。今回はないのでNoで続行
![スクリーンショット 2023-09-16 18.59.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986547/9c2fc7e4-d076-cb49-8d53-dcd4b30c3bdd.png)
- Nodeの設定についてのオプション。今回はAdvancedで続行
![スクリーンショット 2023-09-16 19.00.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986547/17fe5cde-bcab-cccc-2ca2-03a63599522d.png)
- ES heapサイズの設定。今回は標準のまま続行
![スクリーンショット 2023-09-16 19.01.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986547/b1b0af3d-cab9-98b7-d70a-4d2e3fa18675.png)
- ElasticSerach用にどれだけのストレージを確保しておくかの設定。今回は標準のままで続行
![スクリーンショット 2023-09-16 19.02.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986547/9c63ba78-c5e3-7e43-2dbd-51d108a9ca73.png)
- Logstash heapサイズの設定。今回は標準のまま続行
![スクリーンショット 2023-09-16 19.03.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986547/deb71e1b-adb8-b213-6682-affd76245d9b.png)
- Logstash pipeline workerの数の設定。標準で続行
![スクリーンショット 2023-09-16 19.03.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986547/2e27a09b-62a2-07aa-6a09-d3b8fec06dbf.png)
- Logstash pipeline batch sizeの数の設定。標準で続行
![スクリーンショット 2023-09-16 19.04.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986547/c2d83327-0190-81f4-5a8f-9a0e2b6643fe.png)
- Logstash input threadsの数の設定。標準で続行
![スクリーンショット 2023-09-16 19.04.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986547/514e06de-746e-7acb-68c8-3022b8db9d2c.png)
- 他のホストがWebインターフェースを通してSecurity Onionのインストーラーの実行を許可するため？のオプション。正確なことはわからないがこのままyes
![スクリーンショット 2023-09-16 19.05.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986547/31fe8258-e4a8-8055-c4b9-f55aacfae534.png)
- 先の許可のIPの範囲。適切なものを入力して続行
![スクリーンショット 2023-09-16 19.07.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986547/e247b3b8-8f4e-36cb-2569-2b795d802a17.png)
- 最終確認画面が出てくるので確認してYes
![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f323938363534372f36616264373763352d366533372d663462342d643033632d6562366135326430663938642e706e67.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986547/b4842801-0f2c-8546-c635-3de380647778.png)
- しばらく設定反映まで待機
![スクリーンショット 2023-09-16 19.11.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986547/d899717d-0f66-76e1-46a6-99c55e284548.png)
- うまくいくと以下のような画面でインストールが完了します。Enterでrebootしてインストール完了です
![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f323938363534372f65396437666138322d643630382d623865382d303734332d6331636636313565623233372e706e67.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986547/bf21fae4-1fa4-6e19-0946-55344275172a.png)

### インストール完了後
再起動後ログインすると`You may need to run so-allow first if you haven't yet`と出ているので
```shell
sudo so-allow
```
と実行しましょう。
色々なツールを立ち上げられますが、aを選択することでwebコンソールに接続できるようになります。
![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f323938363534372f36353562656261342d616436312d383931302d383937392d6663336162373537636234632e706e67.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986547/94b86fd1-59e4-5c0f-9108-d677664f9942.png)

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

以上で初期設定は完了です。先ほど設定した固定IPに別の端末からアクセスするとこのように表示されて正常にウェブコンソールが見れることがわかります。
![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f323938363534372f37303265313538322d643631382d643765342d653130392d6562333165383734316262372e706e67.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986547/a1e5fb6a-f58a-e23f-ce0f-02d0add65a9e.png)


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