elasticsearch/logstash/suricata/kibanaで遊ぶ

snortのログを見るのに、長いことBASEを使っていたけど、検索がイマイチに思ったので代替を探してSuricataにたどり着いた。

Javaを使うモノがあるので起動がやや重い問題があるかと思いきや、そもそもsnortもルール読み込みがバカみたいに重たいので、大して差はなかったというオチもついた。

FreeBSDでもpkg installで全部揃うので楽ちん。
リッチなGUIがついたアプリはFreeBSD ports/pkgに少ない印象があったけど、Java実装だったり、サーバの監視に使ったりする関係なのかな。
FreeBSD依存の話はほとんどない(と思う)ので、それぞれのマニュアルを読みながら適当にやればできる。

  • suricataにはdivert port 8000経由で食わせる。/etc/rc.firewallにdivert 8000 ip from ... to ...というようなルールを追加する。
    注意が必要なのは、divertに食われたパケットは帰ってこないということ。インタフェース1本でany to anyなんてしようものなら、sshの接続ごともっていかれる。
    pcap(tcpdump)経由もできそうだけど見てない。
  • logstashの設定をたくさん書きたければ、rc.confでconfig設定をファイルからディレクトリ指定に変えてしまおう。
    logstash_config="/usr/local/etc/logstash/conf.d"
  • パフォーマンスをそれほど求めないなら、zfsの圧縮がよく効く。
    [alraune:~] root# zfs get compression,referenced,logicalused,compressratio sakura/elasticsearch
    NAME                  PROPERTY       VALUE     SOURCE
    sakura/elasticsearch  compression    gzip-4    local
    sakura/elasticsearch  referenced     1.02G     -
    sakura/elasticsearch  logicalused    2.40G     -
    sakura/elasticsearch  compressratio  2.32x     -
  • ircを使っている人はFTP invalid MODEに注意。マッチ条件が/^MODE\s+[^ABSC]{1}/msiだけなので、ircのMODEに引っかかる。きっとほかにも引っかかる。
    我が家はFTPは使わないのでルールごとsuppress。