目的
Raspberry Piを簡易Gatewayとして使いたい。
SuricataでIPS/IDSを作るというよりは、セキュリティの解析用環境からイケナイ通信が出ていくのを止めたり、特定の通信の発生をキャッチしたい。
でも、今回は、インストールと起動の確認まで。
前提
Raspberry PiのOSは、Raspbianで、WiFiルータ(WAN)に接続、eth0にDHCPサーバを設定している。
今回は、eth0のLAN側の通信を監視してみる。
手順
Raspberry PiのUpdate
以下の手順を参照して、Raspberry PiをUpdateする
https://qiita.com/tanuwo/items/04df160281153c0e24bc
Suricataのインストール
結構みんな、公式サイトのinstallation見れば良いよと教えてくれている。
どれを見ろとは教えてくれていない。。。
Debianのインストール手順参照しました。
Suricata公式サイトのDoc>Suricata installation>Debian install
手順の最後の部分だけメモ
./configure --enable-nfqueue --prefix=/usr --sysconfdir=/etc --localstatedir=/var
make
make install-full
ldconfig
make install-fullでルールのインストールも出来ているはず。
Suricataの起動
公式サイトのBasic setupを参照してみる
https://redmine.openinfosecfoundation.org/projects/suricata/wiki/Basic_Setup
make install-fullしているので、ほとんどの手順は不要。
sudo suricata -c /etc/suricata/suricata.yaml -i wlan0 --init-errors-fatal
でサクッと起動して完了!!
と思いきや
Warning> - [ERRCODE: SC_ERR_NO_RULES(42)] - No rule files match the pattern /etc/suricata/rules/tls-events.rules
だって。
確かに/etc/suricata/rules/
にtls-events.rules
がいない。
そこで、downloadしたソースパッケージ内のrulesフォルダにtls-events.rulesがいたのでrulesフォルダ内のrulesファイルを全コピーしたところ解決。
再度、起動を試すと
<Warning> - [ERRCODE: SC_ERR_AFP_CREATE(190)] - Using AF_PACKET with GRO or LRO activated can lead to capture problems
GROやLROが有効だと出るエラーらしい。
※GRO/LROは、オフロード方法らしい(<=ちゃんと勉強しなさい)
エラーを絶対に回避する必要があるか分からないけど、気持ち悪いので解決します。
以下のURLを参考にします。
https://ac-as.net/how-to-setting-nic-offload/
ethtoolがねぇので。
apt-get install ethtool
ethtool -k eth0
で見てみると、確かにgeneric-receive-offload: on
となっている。
ethtool -K eth0 gro off
でGROをコロスと上手くいった。
今日はここまで、後は、自動起動と目的に合わせたルールの設定。
追記
GRO無効化の恒久化
コマンドラインでethtool
を叩いただけだと恒久的な設定にはならないので、rc.local
に以下の通り追記
/sbin/ethtool -K eth0 gro off