デジタル化

SSHGUARDを使用してSSHブルートフォース攻撃をブロックする方法

( oneechanblog ) – SSHGuard は、ブルートフォース攻撃からホストを保護するオープンソースデーモンです。 これは、システムログの監視と集約、攻撃の検出、およびLinuxファイアウォールバックエンドの1つを使用した攻撃者のブロックを通じて実現されます。 iptables、 FirewallD、 pf、 と ipfw。

当初は、OpenSSHサービスに追加の保護レイヤーを提供するように設計されていました。 SSHGuard また、次のような幅広いサービスを保護します Vsftpd と Postfix。 Syslog、Syslog-ng、およびrawログファイルを含むいくつかのログ形式を認識します。

[ You might also like: How to Secure and Harden OpenSSH Server ]

SSHGuard それが書かれていることだけがFail2banに非常に似ています C ((Fail2ban で書かれています Python)、軽量で、提供する機能が少なくなります。

このガイドでは、インストールと構成の方法を示します SSHGuard 封鎖する SSH Linuxサーバーでのブルートフォース攻撃。

ステップ1:LinuxにSSHGuardをインストールする

まず、のインストールから始めます。 SSHGuard Linuxの場合。

SSHGuardをDebian / Ubuntuにインストールする

まず、パッケージリストを更新してからインストールします SSHGuard aptパッケージマネージャーを使用してデフォルトのリポジトリから。

$ sudo apt update
$ sudo apt install sshguard

インストールすると、 SSHGuard サービスは自動的に開始され、次のコマンドを使用してこれを確認できます。

$ sudo systemctl status sshguard

UbuntuでSSHGuardを確認してください

RHELシステムにSSHGuardをインストールする

次のようなRHELベースのディストリビューションの場合 CentOS、 ロッキー、 と AlmaLinux、インストールすることから始めます EPEL 以下のコマンドで提供されるリポジトリ。

$ sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
OR
$ sudo dnf install epel-release

と EPEL 所定の位置に、先に進んでインストールします SSHGuard dnfパッケージマネージャーを使用します。

$ sudo dnf install sshguard

インストールしたら、起動して設定します SSHGuard システムの起動時または再起動時に開始します。

$ sudo systemctl start sshguard
$ sudo systemctl enable sshguard

必ず確認してください SSHGuard 期待どおりに実行されています。

$ sudo systemctl status sshguard

RHELでSSHGuardを確認する

ステップ2:LinuxでのSSHGuard構成

SSHGuard 積極的に監視します /var/log/auth.log、 / var / log / secure systemdジャーナル、および syslog-ng ログイン試行の失敗のログファイル。

ログインに失敗するたびに、リモートホストは限られた時間だけ禁止されます。この時間は、デフォルトで次のように設定されています。 120 秒。 その後、ログイン試行が連続して失敗するたびに、禁止時間は1.5倍になります。

他のパラメータに加えて、問題のあるホストが禁止される時間は、 sshguard.conf ファイル。 図のように、vimエディターを使用して構成ファイルにアクセスできます。

$ sudo vim /etc/sshguard/sshguard.conf

RHELベースのディストリビューションでは、設定ファイルは次のパスにあります。

$ sudo vim /etc/sshguard.conf

これは、から見たときの構成ファイルのサンプルです。 Ubuntu / Debian。

SSHGUARD構成ファイル

メインオプションに焦点を当てましょう。

The バックエンド ディレクティブは、バックエンド実行可能ファイルのフルパスを指します。 この例では、 IPtables デフォルトのファイアウォールバックエンドとして設定されています。

The しきい値 ディレクティブは、攻撃スコアが指定された値を超えると、攻撃者をブロックします。

The BLOCK_TIME オプションは、ログイン試行が連続して失敗するたびに攻撃者がブロックされる秒数です。 デフォルトでは、これは最初の試行後に120に設定されます。 これは、ログイン試行が連続して失敗するたびに増加します。

The DETECTION_TIME オプションとは、攻撃者がスコアをリセットする前に、攻撃者がシステムに登録または記憶されている時間を秒単位で示します。

The WHITELIST_file オプションは、ブラックリストに登録されていないホストを含​​むホワイトリストファイルのフルパスを指します。

手順3:SSHブルートフォース攻撃をブロックするようにSSHGuardを構成する

追い払うために 強引な 攻撃の場合は、次のファイアウォールで機能するように構成する必要があります sshguard。

UFWを使用してSSH攻撃をブロックする

UFWをインストールして有効にしている場合 Ubuntu / Debian システム、変更 /etc/ufw/before.rules ファイル。

$ sudo vim etc/ufw/before.rules

の直後に次の行を追加します allow all on loopback セクション。

# allow all on loopback
-A ufw-before-input -i lo -j ACCEPT
-A ufw-before-output -o lo -j ACCEPT

# hand off control for sshd to sshguard
:sshguard – [0:0] -A ufw-before-input -p tcp –dport 22 -j sshguard

ファイルを保存してUFWを再起動します。

$ sudo systemctl restart ufw

ここで、間違った資格情報を使用して別のシステムからサーバーにログインしようとすると、最初に失敗したログイン試行から120秒間ロックアウトされることに注意してください。

これを確認するには、 auth.log ログファイル。

$ sudo tail -f /var/log/auth.log

SSHブルートフォース攻撃を確認する

次に失敗したログの試行後、ブロック時間は次のように増加します。 240 秒、その後 480 秒、その後 960 秒など。

Firewalldを使用してSSH攻撃をブロックする

Firewalldを実行している場合は、firewalldが設定され有効になっていることを確認してください。 次に、次のコマンドを実行して有効にします sshguard お好みのゾーンで。

$ sudo firewall-cmd –permanent –zone=public –add-rich-rule=”rule source ipset=sshguard4 drop”

変更を適用するには、リロードします ファイアウォールで保護 と sshguard。

$ sudo firewall-cmd –reload
$ sudo systemctl restart sshguard

次に、次のようにルールを確認します。

$ sudo firewall-cmd —-info-ipset=sshguard4

FirewalldでSSHGuardを確認する

Iptablesを使用してSSH攻撃をブロックする

まだ使用している場合 Iptables、最初に、の新しい連鎖律を作成します sshguard の Iptables 悪者をブロックし始めるために。

# iptables -N sshguard

次に、を更新します 入力 トラフィックをに転送するチェーン sshguard 悪意のある当事者からのすべてのトラフィックをブロックします。

# iptables -A INPUT -j sshguard

次のような特定のポートをブロックするには SSH、 ポップ、 と IMAP 悪用者から次のコマンドを実行します。

# iptables -A INPUT -m multiport -p tcp –destination-ports 22,110,143 -j sshguard

最後に、変更を有効にするためのルールを保存します。

# iptables-save > /etc/iptables/iptables.rules

ステップ4:SSHでブロックされたホストをホワイトリストに登録する方法

ブロックされたホストをホワイトリストに登録するには、次の場所にあるホワイトリストファイルでホスト名またはIPアドレスを指定するだけです。

/etc/sshguard/whitelist – Ubuntu/Debian
/etc/sshguard.whitelist – RHEL-based distros

その後、必ず再起動してください sshguard 変更を適用するためのデーモンとファイアウォールバックエンド。

このガイドでは、ブロックする方法を示しました SSH ブルートフォース攻撃を使用して SSHGuard Linuxサーバーのデーモン。 フィードバックは大歓迎です。

ここでTecMintで行っていることを理解する場合は、次のことを検討する必要があります。

TecMintは、あらゆる種類のLinuxの記事、ガイド、およびWeb上の書籍について、最も急速に成長し、最も信頼されているコミュニティサイトです。 何百万人もの人々がTecMintを訪れます! すべての人が無料で利用できる何千もの公開された記事を検索または閲覧できます。

あなたが読んでいるものが好きなら、感謝の印として私たちにコーヒー(または2)を買うことを検討してください。

あなたはおそらくそれも好きでしょう

より類似した投稿

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Fill out this field
Fill out this field
有効なメールアドレスを入力してください。
You need to agree with the terms to proceed

メニュー