ConoHa の Fail2ban スタートアップスクリプトを使って SSH の総当たり攻撃をブロックしてみた


このブログでもお世話になっている、「ConoHa」の応援団長、美雲このはの公式 Twitter でこのような告知がありました。

https://twitter.com/MikumoConoHa/status/1136540585668382720

ConoHa などのVPSは簡単にサーバーが作れるのはメリットですが、その分セキュリティ対策も必要になってくるので、早速試してみました。

サーバーを追加してみた

まずは公式マニュアルを確認してみます。

動作を確認している OS は下記のようです。

  • CentOS 7.x以降
  • Ubuntu 16.04以降
  • Debian 9.x以降
  • Fedora 29以降
  • openSUSE-15.x以降

OS イメージはもちろん、WordPress などのアプリケーションイメージも、上記の OS を採用していれば利用できそうです。

アプリケーションイメージは今日時点でこれだけありました。

ConoHa アプリケーションイメージ一覧

今回は、アプリケーションイメージの LEMP(PHP)を利用してみます。

Fail2ban を利用するには、スタートアップスクリプトのテンプレートを選択します。

Fail2ban スタートアップスクリプト

Fail2ban の動作確認してみた

とりあえず5回間違えてみます。

# ssh [email protected]
[email protected]'s password: 
Permission denied, please try again.
(中略:10分以内に5回認証に失敗)
[email protected]'s password: 
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
# ssh [email protected]
ssh: connect to host xxx.xxx.xxx.xxx port 22: Connection refused

このように、Ban されてこれ以降は Connection refused で接続できなくなりました。

サーバー側もこのように、ブロックしたIPが記載されています。

# fail2ban-client status sshd
Status for the jail: sshd
|- Filter
|  |- Currently failed:	2
|  |- Total failed:	14
|  `- Journal matches:	_SYSTEMD_UNIT=sshd.service + _COMM=sshd
`- Actions
   |- Currently banned:	2
   |- Total banned:	2
   `- Banned IP list:	aaa.aaa.aaa.aaa bb.bbb.bb.bbb

詳細は公式ガイドに記載がありますが、例えば BAN を解除するには下記のコマンドを入力します。

fail2ban-client set sshd unbanip IPアドレス

まとめ

VPSでグローバル公開した時に課題になる、総当たり攻撃について、Fail2ban のスタートアップスクリプトを使用することで手軽に対策できることを確認できました。

もちろん、セキュリティ対策をしっかりすると、ポートを変えたり、特定のIPからを制限したり、時間をかけるともっとできることはあるのですが、
手軽にVMを立てられるConoHaにはぴったりな対策法だと思いました。


Comments

comments

コメントを残す

メールアドレスが公開されることはありません。

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)