SSH へのアタックのログを保存

スポンサーリンク

ada-u さんからのすすめで、SSH へのアタックのログを保存してみることにした。

  1. iptables でログを残すようにする。
    # /sbin/iptables -A INPUT -p tcp --dport 22 -j LOG

    これにより、/var/log/messages に次のようなログが残るようになる。

    Jun  7 15:12:48 ns1 kernel: IN=eth0 OUT= MAC=00:16:36:22:fb:58:00:26:ca:85:6a:46:08:00 SRC=XXX.XXX.XXX.XXX DST=YYY.YYY.YYY.YYY LEN=60 TOS=0x00 PREC=0x00 TTL=33 ID=61747 DF PROTO=TCP SPT=50312 DPT=22 WINDOW=5840 RES=0x00 SYN URGP=0
  2. そのままでは見づらいので、別のファイルに切り出すシェルスクリプトを作成する。
    #!/bin/sh

    cd <書き出し先のディレクトリ>
    cp sshd.log sshd.tmp
    cat /var/log/messages | grep DPT=22 | awk '{print sprintf("%s %02d %s %s", $1, $2, $3, $9)}' >> sshd.tmp
    cat sshd.tmp | sort | uniq > sshd.log
    rm sshd.tmp

  3. このスクリプトを /etc/cron.quarter-hourly などに置き、定期的に実行させる。

これにより、定期的にアタックのログが切り出されるようになった。ただし、ログのローテーションは考慮していない。なお、うちのサーバは自分が使う IP アドレス以外からは SSH に入れないようにしてあるので、アクセスしようとした痕跡が残るだけで、ブルートフォースアタックのログは取れない。

取得したログは下記の URL で公開している。

コメント

タイトルとURLをコピーしました