blocksshd → sshguard

投稿日:

blocksshdがportsから消えてしまったので、代わりのツールということで、sshguardというのを入れてみた。

ツールの仕組みはどちらも同じで、auth.logから不正アクセスを検出し、ある時間内のアクセス数がしきい値を超えたらファイアーウォールで一定時間アクセスを防ぐというもの。

違いは、blocksshdはデーモンで動いてポーリングで処理するのに対して、sshguardはsyslogでパイプ経由で直接(リアルタイムに)処理される所。

ファイアーウォールとしてpacket filter (PF) を使っているので、sshguard-pfをインストール。

まずは、/etc/pf.conf にsshguardから制御するテーブルを追加。

table <sshguard> persist

同じく、/etc/pf.conf にフィルタールールを追加。

block in quick on $if4     proto tcp from <sshguard> to any port 22 label "ssh bruteforce"
block in quick on $if6_ext proto tcp from <sshguard> to any port 22 label "ssh bruteforce"

つぎに、/etc/syslog.confに以下の行を追加。

auth.info;authpriv.info                         |/usr/local/sbin/sshguard

最後に、pf.confを読みなおして、syslogdを再起動して完了。

syslogd再起動後、最初にログが発生した時点で、auth.logに以下のメッセージが表示されて、一応動いていることを確認。

Mar  5 20:09:23 toby sshguard[52924]: Started successfully [(a,p,s)=(40, 420, 1200)], now ready to scan.

終わり。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です