fail2ban を使用して特定のポートをブロックすることと、すべてのポートをブロックすることとでは、どのように異なりますか?

fail2ban を使用して特定のポートをブロックすることと、すべてのポートをブロックすることとでは、どのように異なりますか?

私は、それぞれ異なるサービスが稼働している EC2 インスタンスに fail2ban を設定しています。そのため、各サービス専用の jail を構成しています。質問が 2 つあります (他の場所では答えが見つかりませんでした)。

  1. あるポートに対する認証に失敗したために fail2ban によって IP がブロックされた場合、そのユーザーは他の開いているポートから引き続きアクセスできますか?
  2. ここで説明した構成を使用して特定のポートをブロックすることと、すべてのポートをブロックすることとでは、どのような違いがありますか? 最終的にはハッカーの侵入を防ぎたいので、開いているポートをすべてブロックする方が安全ではないでしょうか?

答え1

(OSがLinuxであると仮定)

失敗2バン高度な構成を備えた、よくできたツールです。

Linux Ubuntuでは、設定は/etc/fail2ban

質問1

jail.conf設定を変更しない限り、特定のサービスに対して指定されたポートのみがブロックされます。

質問2

すべてのポートをブロックすることもできます。必要なセキュリティ レベルによって異なりますが、すべてのポートをブロックすると欠点が生じる可能性があります。

個人的には、悪用されたポートだけをブロックすることを好みます。なぜなら

  • 他のポートも悪用されている場合(および で宣言されている場合jail.conf)、それらもブロックされます。
  • 一部のIPアドレスは会社全体または多くの人々によって共有されています。そのため、すべてのポートをブロックして悪用を防ぐことで、そのアドレスの誰もがたとえばsshアクセスするのを防ぐことができます。http/s
  • 完全なブロックの影響を受ける可能性もあります。たとえば、 の使用時にパスワードを数回間違えるsshと、たとえばプロバイダーからの別のアクセスを許可する別のポートにアクセスできなくなります。

より多くのポートまたはすべてのポートをブロックするには、ファイルを変更できますjail.conf

デフォルトの属性の一部は以下のとおりです([DEFAULT]

# "bantime" is the number of seconds that a host is banned.
bantime  = 10m
# A host is banned if it has generated "maxretry" during the last "findtime"
# seconds.
findtime  = 10m
# "maxretry" is the number of failures before a host get banned.
maxretry = 5

# Ports to be banned (Usually should be overridden in a particular jail)
port = 0:65535

つまり、すべてのポートです。

例えば[sshd](そしてすべてのサービス)はport再定義される

[sshd]
port    = ssh

単にコメントアウトしてportデフォルトに戻すこともできますが、メンテナンスを容易にするためにコメントと新しいポート行を追加します(他の人/3年後のあなた)

[sshd]
# 25 Aug 2020 Rohit, block all ports
#port    = ssh
port = 0:65535

デフォルトの変更

ディレクトリに実行可能なアクションのリストが表示されますaction.d。デフォルトではjail.conf

banaction = iptables-multiport

これも変更可能

banaction = iptables-allports

再定義されていないすべてのサービスに影響しますbanaction

fail2banを再起動する

次にsystemdのサービスを再起動します

systemctl restart fail2ban.service

または

service fail2ban restart

(参考までに、filter.dディレクトリには各サービスが次のようにリストされています失敗2バン侵入の試みを検知する)

貴重な情報を提供している可能性のある以下のコメントも確認してください。

関連情報