マイクラ鯖を運用されている方の中にはレンタルサーバーでサーバーを開放されている方も多いと思います。
レンタルサーバーの場合、SSH接続でサーバーのコンソールを操作する方も多いでしょう。
でもそれ安全ですか?
概要
この記事のターゲット
世の中には様々な攻撃方法が存在しますが、比較手軽に攻撃されやすいSSHに関する総当たり攻撃について対策します。
今回の環境は CentOS 7 ですがUbuntu等のLinux系であれば操作は違えど基本的な対策方法は同じです。
総当たり攻撃
SSH接続はデフォルト設定では総当たり攻撃(ブルートフォースアタック)が容易に行われます。
ユーザー名とパスワードが盗まれればサーバー内部は野ざらし状態になりパスワードが保管されたデータベース等も盗まれてしまうだけでなく、大切なデータに被害が及んだりもします。
この攻撃はちょっと手を入れれば効果は大きいので行うべきです。
実際の攻撃
CentOSの場合、ログイン時にこのように表示されていたら攻撃を疑いましょう。
大概Botによる総当たり攻撃がされています。
There were 9546451 failed login attempts since the last successful login.
SSHポートを変更する
ファイヤーウォールのポート設定
SSHのポートを変更する場合、先にポートの開閉を行います。
今回は22番ポートから222ポートへ変更します。
(222はベタすぎるので2が付かないポートを指定するのも手)
早速222番ポートの開放を行います。
sudo firewall-cmd --add-port=222/tcp --permanent
SSHのデフォルトポートを閉じます。
firewall-cmd --remove-service=ssh --permanent
ファイアウォールを再起動します。
sudo systemctl restart firewalld
SSHの設定から使用ポートを変更
サービスが使用するSSHポートを変更します。
WinSCPなど使ってコンフィグを変更しても良いですがvimで触れると良いですね。
早速SSHのコンフィグを変更します。
sudo vi /etc/ssh/sshd_config
viで変更する場合はエディタでaをタイプすると編集モードへ、Escキーで移動モードになります。移動モード時にxをタイプすると文字が削除できます。
変更しましたら 移動モードで「:wq」とタイプするとコンソールへ戻ります。
何操作したか分からなくなった等あれば「Esc」キーをとりあえずタイプして「:q!」とタイプすると上書きせずコンソールへ戻れます。
「# Port 22」の部分を下記のように変更します。
Port 222
SSHサービスを再起動します。
sudo systemctl restart sshd
ログイン確認
操作したセッションは閉じずに別のセッションでSSHを起動します。
もし設定が誤っていて閉め出しを食らう可能性があり、後々面倒なので新しいセッションで接続しましょう。
222ポートでSSH接続が出来ればポート変更はできています。
次のステップへ進みましょう。
総当り攻撃IPを自動BAN
年中総当り攻撃を監視するのは現実的ではありませんので自動化します。
今回はfail2banという定番アプリケーションを使います。
yum install fail2ban -y
fail2banのコンフィグ一部オーバーライドします。
vi /etc/fail2ban/jail.d/jail.local
ファイル内容は下記のうように記述します。
必要に応じて変更してください。しつこいBotが多いのでBAN期間を2w (2週間) に設定しています。
[DEFAULT]
ignoreip = 127.0.0.1/8 192.168.0.0/24
bantime = 2w
findtime = 3d
maxretry = 3
[sshd]
enabled = true
[postfix-sasl]
enabled = true
bantime = 2w
findtime = 3d
ステイタスを確認します。
fail2ban-client status sshd
えげつないほどBANされています。
厳し目の設定なので自分自身BANされたら面倒なので気をつけてください。
Status for the jail: sshd
|- Filter
| |- Currently failed: 37
| |- Total failed: 2414
| `- Journal matches: _SYSTEMD_UNIT=sshd.service + _COMM=sshd
`- Actions |- Currently banned: 83 |- Total banned: 83 `- Banned IP list: 218.92.0.220 ... (略)