KUSANAGIでSuricataを導入、初期設定する方法を紹介します。
KUSANAGIで利用できるIPS / IDS Suricata
- IPS:Intrusion Detection System
- IDS:Intrusion Prevention System
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=4163mtu 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
- KUSANAGI参考書籍
- ゼロからはじめるLinuxサーバー構築・運用ガイド 動かしながら学ぶWebサーバーの作り方
- 新しいLinuxの教科書
- 入門者のLinux 素朴な疑問を解消しながら学ぶ (ブルーバックス)
- 標準テキスト CentOS 7 構築・運用・管理パーフェクトガイド
- プロに管理してもらえるKUSANAGI搭載サーバー
- カゴヤ・ジャパンの「WordPress専用サーバー」
- CloudGarage(旧エクスクラウド)の「WordPressプラン」