SSH接続の総当たり攻撃(ブルートフォースアタック)対策:fail2banの導入

このブログのサーバー(Google Cloud Platform のVM)を一番安いマシンタイプに変更した所、SSH接続の総当たり攻撃でダウンするようになってしまった。一番安いので仮想マシン上のメモリが少なく(600MB)、それがダウンの原因であるようだ。そこで、この記事ではその対策を解説しようと思う。

3つの選択肢:fail2ban, sshguard, DenyHosts

Webを検索すると、SSHに対する総当たり攻撃の対策として fail2ban, sshguard, DenyHostsのいずれかの導入が解説されている。これらはどれも、総当たり攻撃してくるIPアドレスを検知してそのパケットを破棄することで攻撃に対処する。今回はfail2banを導入することにした。他の2つと異なり、fail2banはsshの他にhttpやsmtpへの攻撃にも対処できるからである。

fail2banの導入

以下の解説を参考にした。
CentOS7 fail2banでSSH, SMTPへの攻撃からサーバを守る
なお、若干の不明点があったので以下に補足する。

  • fail2ban.local, jail.local を置く場所は、/etc/fail2ban である。
  • iptables-common.conf の場所は、/etc/fail2ban/action.d/ である。

以上を注意すれば、あとは上記のサイトに従ってfail2banを導入することでができる。