私は、それぞれ異なるサービスが稼働している EC2 インスタンスに fail2ban を設定しています。そのため、各サービス専用の jail を構成しています。質問が 2 つあります (他の場所では答えが見つかりませんでした)。
- あるポートに対する認証に失敗したために fail2ban によって IP がブロックされた場合、そのユーザーは他の開いているポートから引き続きアクセスできますか?
- ここで説明した構成を使用して特定のポートをブロックすることと、すべてのポートをブロックすることとでは、どのような違いがありますか? 最終的にはハッカーの侵入を防ぎたいので、開いているポートをすべてブロックする方が安全ではないでしょうか?
答え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バン侵入の試みを検知する)
貴重な情報を提供している可能性のある以下のコメントも確認してください。