【KUSANAGI】Suricataの初期設定方法

KUSANAGIでSuricataを導入、初期設定する方法を紹介します。

KUSANAGIで利用できるIPS / IDS Suricata

detectiveは「探偵」や「探知用の」、preventionは「妨害」という意味の単語。

大雑把な表現ですが、ファイアーウォールが「サーバー運営者が許可していない通信を弾く壁」だとすると、IPSやIDSは「正しい通信を装いファイアーウォールを通り抜けてOSやミドルウェアを狙う攻撃を探知、防御する仕組み」だといえます。

KUSANAGIのfirewalldやWAFとは違い設定に一手間必要ですが、できれば3点セットでセキュリティを高めておきたいところ。

Suricataのインストールと初期設定

KUSANAGIコマンドで簡単にSuricataがインストール、セットアップできます。

#Suricataを導入

# kusanagi addon install suricata
Please tell me the interface card you would like to use to sniff packets from. [1-2]
(1) : eth0 (current)
(2) : lo 

#1のeth0を選択

1
You choose: eth0
disabled
Created symlink from /etc/systemd/system/multi-user.target.wants/suricata.service to /usr/lib/systemd/system/suricata.service.

	For more information about Suricata, please refer to the link below
	https://suricata.readthedocs.io/en/latest/
	
INFO: add-on install was successful
完了しました。

KusanagiでSuricataを動作させるため、設定ファイルを編集します。

まず必要な「IPアドレス」をチェック。

#2行目の「inet」横に書かれたIPアドレス情報が必要

# ifconfig
eth0: flags=4163  mtu 1500
        inet IPアドレス  netmask 255.255.254.0  broadcast aaa.bbb.ccc.dd
        inet6 0000:0000:0000:000:000:000:000:000  prefixlen 128  scopeid 0x0
        inet6 fe80::1:85ff:fe82:67cf  prefixlen 64  scopeid 0x20
        ether 00:00:00:00:00:cf  txqueuelen 1000  (Ethernet)
        RX packets 3279  bytes 2052584 (1.9 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 899  bytes 136444 (133.2 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 228  bytes 276508 (270.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 228  bytes 276508 (270.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Rootで設定ファイルを編集します。

#suricataの設定ファイルを開く
$ vim /etc/suricata/suricata.yaml

14行目あたりにある「address-groups」を書き換える。

一番上の「HOME_NET: 〜」をコメントアウト、一行下の「#HOME_NET〜」のコメントアウトを外し、先程チェックしておいたIPアドレスに書き換え。

この際、仮にIPアドレスが「aaa.bbb.ccc.dd」だとしたら、設定ファイルには「aaa.bbb.ccc.0/24」と入力する。

#編集前
HOME_NET: “[192.168.0.0/16,10.0.0.0/8,172.16.0.0/12]”
#HOME_NET: “[192.168.0.0/16]”

#編集後
#HOME_NET: “[192.168.0.0/16,10.0.0.0/8,172.16.0.0/12]”
HOME_NET: “[aaa.bbb.ccc.0/24]”

SSHのポート番号を変更している場合、41行目あたりにあるport-groupsの「SSH_PORTS」を書き換える(ここでは例として54321ポート)。

#編集前
SSH_PORTS: 22

#編集後
SSH_PORTS: 54321

1050行あたりにあるhost-os-policyでwindowsをコメントアウト、linuxの設定を追加。

IPアドレスの書き方は上と同じ。

#編集前
windows: [0.0.0.0/0]
bsd: []

#編集後
#windows: [0.0.0.0/0]
linux: [aaa.bbb.ccc.0/24]
bsd: []

nginxを再起動して、Suricataが可動しているかを確認。

#nginxを再起動
#kusanagi nginx

# systemctl status suricata.service
● suricata.service - Suricata Intrusion Detection Service
   Loaded: loaded (/usr/lib/systemd/system/suricata.service; enabled; vendor preset: disabled)
   Active: active (running) since 日 YYYY-MM-DD HH:MM:SS JST; 0 min ago
 Main PID: 3743 (Suricata-Main)
   CGroup: /system.slice/suricata.service
           └─3743 /sbin/suricata -c /etc/suricata/suricata.yaml -i eth0 --use...

ログは /var/log/suricataディレクトリにある。

# cd /var/log/suricata

# ls -l
-rw-r--r-- 1 suricata suricata  eve.json
-rw-r--r-- 1 suricata suricata  fast.log
-rw-r--r-- 1 suricata suricata  stats.log
-rw-r--r-- 1 root     root      suricata.log

シェアする