Debian 9でFail2banをセットアップする方法

Fail2banは、その名前が示すように、選択したオープンポート、特にSSHポートに対するブルートフォース攻撃からLinuxマシンを保護するために設計されたユーティリティです。システムの機能と管理のために、ファイアウォールを使用してこれらのポートを閉じることはできません。この状況では、ファイアウォールへの補足的なセキュリティ対策としてFail2banを使用して、これらのポートでのブルートフォース攻撃トラフィックを制限することをお勧めします。

この記事では、Vultr Debian 9サーバーインスタンスで最も一般的な攻撃対象であるSSHポートを保護するためにFail2banをインストールして構成する方法を示します。

前提条件

  • 新しいDebian 9(Stretch)x64サーバーインスタンス。
  • としてログインしていrootます。
  • 未使用のポートはすべて適切なIPTablesルールでブロックされています。

ステップ1:システムを更新する

apt update && apt upgrade -y
shutdown -r now

システムが起動したら、として再度ログインしますroot

ステップ2:SSHポートを変更する(オプション)

デフォルトのSSHポート番号22は一般的すぎて無視できないため、これをあまり知られていないポート番号に変更38752することは、賢明な決定と言えます。

sed -i "s/#Port 22/Port 38752/g" /etc/ssh/sshd_config
systemctl restart sshd.service

変更後、IPTablesルールを適宜更新する必要があります。

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP
iptables -A INPUT -p tcp --dport 38752 -j ACCEPT

永続化のために、更新されたIPTablesルールをファイルに保存します。

iptables-save > /etc/iptables.up.rules
touch /etc/network/if-pre-up.d/iptables
chmod +x /etc/network/if-pre-up.d/iptables
echo '#!/bin/sh' >> /etc/network/if-pre-up.d/iptables
echo '/sbin/iptables-restore < /etc/iptables.up.rules' >> /etc/network/if-pre-up.d/iptables

この方法では、IPTablesルールはシステムを再起動した後でも永続的です。これ以降、38752ポートからログインする必要があります。

手順3:SSHを保護するためにfail2banをインストールして構成する

apt現在安定しているFail2banのバージョンをインストールするために使用します0.9.x

apt install fail2ban -y

インストール後、Fail2banサービスが自動的に開始されます。次のコマンドを使用して、そのステータスを表示できます。

service fail2ban status

Debianでは、デフォルトのFail2banフィルター設定が/etc/fail2ban/jail.confファイルとファイルの両方に保存され/etc/fail2ban/jail.d/defaults-debian.confます。後者のファイルの設定は、前のファイルの対応する設定を上書きすることに注意してください。

詳細を表示するには、次のコマンドを使用します。

cat /etc/fail2ban/jail.conf | less
cat /etc/fail2ban/jail.d/defaults-debian.conf
fail2ban-client status
fail2ban-client status sshd

参考までに、SSHに関するコードの抜粋を以下に示します。

/etc/fail2ban/jail.conf

[DEFAULT]

bantime = 600
...
maxentry = 5

[sshd]

port = ssh
logpath = %(sshd_log)s
backend = %(sshd_backend)s

/etc/fail2ban/jail.d/defaults-debian.conf

[sshd]
enabled = true

上記の2つの構成ファイルの内容は将来のシステムアップデートで変更される可能性があるため、独自のfail2banフィルタールールを格納するローカル構成ファイルを作成する必要があります。このファイルの設定は、前述の2つのファイルの対応する設定を上書きします。

vi /etc/fail2ban/jail.d/jail-debian.local

次の行を入力します。

[sshd]
port = 38752
maxentry = 3

注:必ず独自のSSHポートを使用してください。除くportと、maxentry上述したように、他のすべての設定はデフォルト値を使用します。

保存して終了:

:wq

新しい構成をロードするためにFail2banサービスを再起動します。

service fail2ban restart

これでセットアップは完了です。今後、いずれかのマシンが不正なSSH認証情報をDebianサーバーのカスタムSSHポート(38752)に3回以上送信すると、この潜在的に悪意のあるマシンのIPは600秒間禁止されます。



Leave a Comment

CentOS 7にApacheをインストールする方法

CentOS 7にApacheをインストールする方法

CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1におけるBlacklistdのインストール方法について詳しく解説します。この方法を通じて、強力なセキュリティ対策を実装できます。

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

サーバーマネージャーを使用して、Windows Serverの管理が向上します。セキュリティリスクを軽減し、効率的な管理を実現します。

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法。Seafile(コミュニティバージョン)は、ownCloudに似た無料のオープンソースファイル同期および共有ソリューションです。

DebianでSnortを設定する方法

DebianでSnortを設定する方法

Snortは無料のネットワーク侵入検知システムです。最新の方法で、SnortをDebianにインストールし、設定する手順を紹介します。ネットワークのセキュリティを強化しましょう。

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsサーバーでWebサイトを実行している場合、電子メールも受信できるようにするためにhMailServerを使用する方法を解説します。

Ubuntu 19.04にFiveMサーバーをインストールする方法

Ubuntu 19.04にFiveMサーバーをインストールする方法

FiveMサーバーをUbuntu 19.04にインストールするための詳細なガイド。必要条件からインストール、起動、トラブルシューティングまで、すべてのステップを含みます。

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

Debian 10にWebDAVをデプロイする方法を学び、WsgiDAVとSSL証明書で安全な接続を実現しましょう。

ヘルスケア2021における人工知能の影響

ヘルスケア2021における人工知能の影響

ヘルスケアにおけるAIは、過去数十年から大きな飛躍を遂げました。したがって、ヘルスケアにおけるAIの未来は、日々成長を続けています。