GNU/Linux >> Linux の 問題 >  >> Linux

Fail2Ban Howto:Fail2ban と IPTables を使用して IP アドレスをブロックする

Fail2ban は、さまざまなサービス (SSH、FTP、SMTP、Apache など) のログ ファイルをスキャンし、パスワードの失敗が多すぎる IP。また、これらの IP アドレスを拒否するようにファイアウォール ルールを更新します。

Fail2ban は、Python プログラミング言語で書かれた侵入防止フレームワークです。

Fail2ban の主な目的は、ブルート フォース ログイン攻撃を防ぐことです。

また、Tripwire (Linux ホスト ベースの侵入検知システム) に関する以前の記事も参照してください。

Fail2ban をインストール

ソースから fail2ban をインストールするには、sourceforge からダウンロードしてください。

以下に示すように、apt-get を使用して、Debian ベースのシステムに Fail2ban をインストールします。

# apt-get install fail2ban

また、fail2ban deb パッケージをダウンロードして、Fail2ban を手動でインストールすることもできます。

# dpkg -i fail2ban_0.8.1-1_all.deb

fail2ban の設定方法

すべての Fail2ban 構成ファイルは、/etc/fail2ban ディレクトリの下にあります。

/etc/fail2ban/fail2ban.conf

このファイルの主な目的は、fail2ban ログ関連のディレクティブを構成することです。

  • ログレベル:ログレベル出力を設定します。
  • logtarget :ログ ファイルのパスを指定します

Fail2ban によって実行されたアクションは、/var/log/fail2ban.log ファイルに記録されます。 conf ファイルの詳細度は、1 – ERROR、2 – WARN、3 – INFO、または 4 – DEBUG のいずれかに変更できます。

/etc/fail2ban/jail.conf

jail.conf ファイルには、サービス構成の宣言が含まれています。この構成ファイルは、さまざまなコンテキストに分割されています。 DEFAULT 設定はすべてのセクションに適用されます。

jail.conf の次の DEFAULT セクションは、600 秒または 10 分 (findtime) 以内に単一の IP アドレスからのアクセス試行が 5 回失敗した後、そのアドレスが 600 秒間 (bantime) 自動的にブロックされることを示しています。

[DEFAULT]
ignoreip = 127.0.0.1
maxretry = 5
findtime = 600
bantime = 600
  • ignoreip:これは、fail2ban でブロックできない IP アドレスのスペース区切りのリストです。
  • maxretry:ホストが fail2ban によってブロックされるまでのログイン試行の最大失敗回数。
  • bantime:ホストが fail2ban によってキャッチされた場合にホストがブロックされる時間 (600 秒 =10 分)。

サービス構成

デフォルトでは、一部のサービスがテンプレートとして挿入されます。以下は、ssh サービス セクションの例です。

[ssh]
enabled = true
port	= ssh
filter	= sshd
logpath  = /var/log/auth.log
action = iptables
  • enabled :ssh サービスの fail2ban チェックを有効にします
  • port:サービス ポート (/etc/services ファイルで参照)
  • filter:サービスが一致を検出するために使用するフィルタの名前。この名前は「/etc/fail2ban/filter.d」のファイル名に対応します。 「.conf」拡張子なし。例:「filter =sshd」は「/etc/fail2ban/filter.d/sshd.conf」を参照します。
  • logpath:fail2ban が失敗したログイン試行をチェックするログ ファイル。
  • アクション:このオプションは、フィルタが一致したときに実行するアクションを fail2ban に指示します。この名前は、拡張子「.conf」を除いた「/etc/fail2ban/action.d/」のファイル名に対応します。例:‘action =iptables’ は /etc/fail2ban/action.d/iptables.conf’ を参照します。

Fail2ban は /var/log/auth.log ファイルでアクセス試行の失敗を監視し、同じ IP アドレスまたはホストからの ssh ログイン試行の失敗が繰り返されていることを検出した場合、fail2ban はその IP アドレス/ホストからのそれ以上のログイン試行をブロックすることによって停止します。 fail2ban iptables ファイアウォール ルール。

Fail2ban フィルター

ディレクトリ /etc/fail2ban/filter.d には、さまざまなサービスに対する侵入の試み、パスワードの失敗などを検出するために使用される正規表現が含まれています。

例:

  • sshd.conf – Fail2ban ssh 関連のフィルター
  • apache-auth.conf – Fail2ban Apache サービス フィルタ

独自の正規表現を追加して、不要なアクションを見つけることもできます。

Fail2ban アクション

ディレクトリ /etc/fail2ban/action.d には、フィルターが一致すると実行されるアクションを定義するさまざまなスクリプトが含まれています。サービスごとに許可されるフィルターは 1 つだけですが、複数のアクションを別々の行で指定することができます。

例:

  • IPtables.conf – IP アドレスのブロックとブロック解除
  • Mail.conf – 構成されたユーザーにメールを送信する

Fail2ban サービスの開始/停止

構成を変更したら、以下に示すように Fail2ban デーモンを停止して開始します。

# /etc/init.d/fail2ban stop

# /etc/init.d/fail2ban start

Linux
  1. LinuxサーバーでIPアドレスをブロックする方法

  2. .htaccessを使用してIPアドレスと国をブロックする

  3. LinuxでFirewalld、IPテーブル、UFWを使用してポートとIPアドレスを許可またはブロックするにはどうすればよいですか?

  1. Linuxファイアウォールを使用してローカルのなりすましアドレスをブロックする方法

  2. CentOS / RHEL :iptables を使用して受信ポートと送信ポートをブロックする方法

  3. Linux IPTables を使用して、トレントまたは P2P プロトコルをブロックする方法は?

  1. LinuxサーバーでIPアドレスをブロックする方法

  2. IPSetとIPTablesを使用して個々の国からのすべてのトラフィックをブロックする

  3. ホストのブラックリストとiptablesをブロックする