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ファイルとして存在する必要がありますか?
私は混乱しています!誰かがこれにいくつかの光を当てることができますか?
1つのファイルを編集するだけで済みます。
システムのアップグレード中の問題を回避するには、常にjail.conf
をjail.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 404
でaccess.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パターンを作成するのは簡単ではありません。