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

DebianでSnortを設定する方法

DebianでSnortを設定する方法

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

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

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

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

DebianでNFS共有をセットアップする

DebianでNFS共有をセットアップする

NFSはネットワークベースのファイルシステムであり、コンピューターはコンピューターネットワークを介してファイルにアクセスできます。このガイドでは、NFを介してフォルダーを公開する方法について説明します

CentOS 7、Ubuntu 16.04、Debian 9にGolang 1.8.3をインストールする方法

CentOS 7、Ubuntu 16.04、Debian 9にGolang 1.8.3をインストールする方法

GolangはGoogleが開発したプログラミング言語です。汎用性、シンプルさ、信頼性のおかげで、Golangは最も人気のあるものの1つになりました

Debian、CentOS、およびFreeBSDでSudoを使用する方法

Debian、CentOS、およびFreeBSDでSudoを使用する方法

LinuxおよびUnixのシステム管理者の間では、sudoユーザーを使用してサーバーにアクセスし、コマンドをルートレベルで実行することは非常に一般的です。sudの使用

DebianでのChrootのセットアップ

DebianでのChrootのセットアップ

この記事では、Debianでchroot jailをセットアップする方法を説明します。私はあなたがDebian 7.xを使っていると思います。Debian 6または8を実行している場合、これは機能する可能性があります、bu

DebianにPiVPNをインストールする方法

DebianにPiVPNをインストールする方法

はじめにDebianでVPNサーバーを設定する簡単な方法は、PiVPNを使用することです。PiVPNは、OpenVPNのインストーラーおよびラッパーです。それはあなたのための簡単なコマンドを作成します

Debian 9でソースからBrotliをビルドする方法

Debian 9でソースからBrotliをビルドする方法

別のシステムを使用していますか?Brotliは、Gzipよりも圧縮率が高い新しい圧縮方法です。そのソースコードはGithubで公開されています。ティ

Debian 9にNeos CMSをインストールする方法

Debian 9にNeos CMSをインストールする方法

別のシステムを使用していますか?Neosは、CMSとアプリケーションフレームワークをコアとするコンテンツアプリケーションプラットフォームです。このガイドでは、インストール方法を説明します

Debian JessieでCactiをセットアップする

Debian JessieでCactiをセットアップする

はじめにCactiは、RRDデータに完全に基づいたオープンソースの監視およびグラフ作成ツールです。サボテンを通じて、ほぼすべてのタイプのデビックを監視できます

CentOS 8、Ubuntu 18.04、Debian 10、Fedora 31にGolang 1.13をインストールする方法

CentOS 8、Ubuntu 18.04、Debian 10、Fedora 31にGolang 1.13をインストールする方法

Go(Golangとも呼ばれます)は、静的に型付けされ、コンパイルされた、Cのようなプログラミング言語で、Googleによって開発されました。シンプルさと多用途性により、b

Debian 8のFlash 5にPBXをインストールする

Debian 8のFlash 5にPBXをインストールする

PBX In A Flash 5(PIAF5)は、Vultr VPSを本格的なPBXに変えるDebian 8ベースのオペレーティングシステムです。次のような特徴があります。

Ubuntu 16.04およびDebian 9にTermRecordをインストールする方法

Ubuntu 16.04およびDebian 9にTermRecordをインストールする方法

別のシステムを使用していますか?TermRecordはPythonで記述されたシンプルなオープンソースツールで、ターミナルセッションを簡単に共有できる自己完結型に保存できます。

Debian 9にMatomo Analyticsをインストールする方法

Debian 9にMatomo Analyticsをインストールする方法

別のシステムを使用していますか?Matomo(旧Piwik)は、Google Analyticsのオープンな代替手段であるオープンソースの分析プラットフォームです。Matomoのソースはoでホストされています

OSの選択:CentOS、Ubuntu、Debian、FreeBSD、CoreOS、またはWindows Server

OSの選択:CentOS、Ubuntu、Debian、FreeBSD、CoreOS、またはWindows Server

この記事では、Vultrでテンプレートとして提供されるサーバーオペレーティングシステムの概要を説明します。CentOS CentOSはRHEL(Re

X-Cart 5をDebian 10にインストールする方法

X-Cart 5をDebian 10にインストールする方法

別のシステムを使用していますか?X-Cartは、数多くの機能と統合を備えた非常に柔軟なオープンソースのeコマースプラットフォームです。X-Cartのソースコードはホストです

MuninでDebianサーバーのステータスを監視する

MuninでDebianサーバーのステータスを監視する

Muninは、マシンのプロセスとリソースを調査する監視ツールであり、Webインターフェースを介して情報をグラフで表示します。フォローインを使用する

サーバーにIPアドレス範囲を追加する(CentOS / Ubuntu / Debian)

サーバーにIPアドレス範囲を追加する(CentOS / Ubuntu / Debian)

はじめにこのチュートリアルでは、CentOS、Debian、またはUbuntuを実行しているLinuxサーバーにIP範囲/サブネット全体を追加するプロセスについて説明します。プロセス

Debian 9のディアスポラでソーシャルネットワークを構築する

Debian 9のディアスポラでソーシャルネットワークを構築する

別のシステムを使用していますか?Diasporaはプライバシーを意識したオープンソースのソーシャルネットワークです。このチュートリアルでは、ディアスポラpoを設定する方法を学びます

Selfoss RSSリーダーをDebian 9 LAMP VPSにインストールする方法

Selfoss RSSリーダーをDebian 9 LAMP VPSにインストールする方法

別のシステムを使用していますか?Selfoss RSSリーダーは、無料でオープンソースのセルフホスト型のWebベースの多目的ライブストリーム、マッシュアップ、ニュースフィード(RSS / Atom)です。

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の未来は、日々成長を続けています。