web-dev-qa-db-ja.com

Debian BusterのFail2ban-設定する正しい方法?

Fail2banは非常に多くの場所で構成できます。

$ fail2ban-client -i 
Fail2Ban v0.10.2 reads log file that contains password failure report
and bans the corresponding IP addresses using firewall rules.

Debian Busterでは、いくつかの設定ファイルで設定を編集できます。

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

いくつかのチュートリアルが推奨します:

cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Fail2banのドキュメントは言う:

変更は.confではなく.localで行う必要があります。これにより、アップグレード時のマージの問題が回避されます。これらのファイルは十分に文書化されており、詳細情報がそこにあります。

つまり、編集するすべての.confファイルは.localファイルとして存在する必要がありますか?

私は混乱しています!誰かがこれにいくつかの光を当てることができますか?

2
Gill-Bates

1つのファイルを編集するだけで済みます。

システムのアップグレード中の問題を回避するには、常にjail.confjail.localにコピーし、後者のみを変更する必要があります。他のすべてのfail2ban構成ファイルについても同じです。

cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

次に、このファイルを編集して、使用するフィルターまでスクロールします。

それらのフィルターで、enabled = trueを追加します。最初はあまり多くのフィルターを有効にしないことをお勧めします。 1つまたは2つで十分です。 SSH経由で接続している場合は、SSHフィルターに注意してください。あなたは自分を締め出すかもしれません。

フィルター

filter.dディレクトリを調べて、使用可能なすべてのフィルターを確認します。適切なものを1つまたは2つ選択してください。それらの正規表現が一致するものと、必要なログファイルを必ず理解してください。

Fail2banはログファイルで動作します。したがって、フィルターは適切なログファイルと一致する必要があります。あなたはこれをテストすることができます

fail2ban-regex <logfile> <filter>

例えば

fail2ban-regex /var/log/nginx/default_access.log /etc/fail2ban/filter.d/nginx-botsearch.conf

このフィルターは、たとえば、NGINX 404access.logエラーを探し、条件が一致する場合はそれらをブロックします。条件は以下をご覧ください。

編集が完了したら、fail2banを再起動します。

systemctl restart fail2ban

jail.localファイルの他の設定:

すべての設定をグローバルにしたり、フィルター固有にすることができます。

bantime  = 7200
findtime  = 10m
maxretry = 10

10分で10のエラーが発生すると、2時間禁止になります。

禁止にiptablesを使用したくない場合は、banactionを変更できます。デフォルトの禁止アクションはiptablesを使用しました。これは私が知っているすべてのシステムで機能するはずですが、おなじみのファイアウォールインターフェースでは禁止が表示されない場合があります。

banaction = ufw

action.dのアクションを参照してください。この設定では、fail2banはufwを使用してIPをブロックします。その後、「fw status」を介して禁止を確認できます。

特にSSHの場合は、ローカルIP範囲を禁止対象から除外してください。禁止しないようにしてください。 :

ignoreip = 127.0.0.1/8 ::1 192.168.178.0/24

新しいフィルターまたはアクションを作成または変更するには、notをお勧めします。付属のものを使用して、幸せになってください。独自のrgesパターンを作成するのは簡単ではありません。

2
Corni