web-dev-qa-db-ja.com

IPアドレスを自動的に永続的に禁止するにはどうすればよいですか?

現在、私はアスタリスクを実行している新しいDebianサーバーでiptablesを使用しています。

毎日、auth.logでIPアドレスをチェックし、手動でiptables -A INPUT -s IPA.DRE.SS.0/24 -j DROP

最初はIPアドレスだけを使用していましたが、同様のIPアドレスからのヒットが多かったため、/ 24の方がうまく機能しており、/ 16を数回使用しています。

すでに何百ものiptablesエントリがあり、これは制御不能になっています!これを行うにはもっと簡単な方法があるはずです。

fail2banは私に推奨されていますが、特定の回数の試行後に一時的にのみIPをブロックするようです。

私が目にする2つの主な侵入の試みは、偽のユーザー名とランダムなポートの使用です。

現在使用していないユーザー名でログインを試みた場合、IPアドレスを自動的に永続的にブロックすることはできますか?使用されていないポートと同じですか?

私もこのようなものがたくさんあります:

Did not receive identification string from (malicious IP) port 48334

私もそれらのIPを禁止したいと思います。

誤ったログインの試みを自動的にブロックすることはありません。まるで、ロックされてしまう可能性のあるパスワードを太い指で叩いたかのようです。しかし、おそらく3回の試行の後、IPの永久的な禁止で十分です。

Iptablesでこれを行うことはできますか?このように機能する「恒久的な禁止」については何も見つかりませんでしたが、現時点ではより機能しているようです。

自分がやっていることを手動で達成したいと思います。 1つの誤ったユーザー名のログイン、1つの間違ったポート接続、または3つの誤ったログイン試行(正しいユーザー名で)の後で、IP範囲を永続的にブロックします。これがauth.logのスパムを防ぐことを願っています。

3
InterLinked

bantinefail2banに設定すると、-1を恒久的に禁止するように設定できます

jail.conf

bantime = -1 

これらは再起動時に失われますが、ボットネット内のpwned homeマシンからの非常に多くの試みが一時的であるため、それは必ずしも悪いことではありません...

持続性が必要な場合は、 https://arno0x0x.wordpress.com/2015/12/30/fail2ban-permanent-persistent-bans/ がガイダンスを提供する場合があります。

基本的にfail2ban configを変更して、すべての禁止されたIPの永続的な構成ファイルを作成し、再起動時にiptablesがこのリストをロードするようにします...

したがって、デフォルトのjail.confを確認すると、デフォルトのアクションはiptables-multiportであることがわかります。これは構成ファイル/etc/fail2ban/ction.d/iptables-multiport.confに対応します

次のエントリを追加できます。

[Definition]
# Option:  actionstart
# Notes.:  command executed once at the start of Fail2Ban.
# Values:  CMD
#
actionstart = iptables -N fail2ban-<name>
              iptables -A fail2ban-<name> -j RETURN
              iptables -I <chain> -p <protocol> -m multiport --dports <port> -j fail2ban-<name>
          cat /etc/fail2ban/persistent.bans | awk '/^fail2ban-<name>/ {print $2}' \
          | while read IP; do iptables -I fail2ban-<name> 1 -s $IP -j <blocktype>; done

# Option:  actionstop
# Notes.:  command executed once at the end of Fail2Ban
# Values:  CMD
#
actionstop = iptables -D <chain> -p <protocol> -m multiport --dports <port> -j fail2ban-<name>
             iptables -F fail2ban-<name>
             iptables -X fail2ban-<name>

# Option:  actioncheck
# Notes.:  command executed once before each actionban command
# Values:  CMD
#
actioncheck = iptables -n -L <chain> | grep -q 'fail2ban-<name>[ \t]'

# Option:  actionban
# Notes.:  command executed when banning an IP. Take care that the
#          command is executed with Fail2Ban user rights.
# Tags:    See jail.conf(5) man page
# Values:  CMD
#
actionban = iptables -I fail2ban-<name> 1 -s <ip> -j <blocktype>
        echo "fail2ban-<name> <ip>" >> /etc/fail2ban/persistent.bans

現在、fail2banがエントリにフラグを立てると、/etc/fail2ban/persistent.bansに(actionban構成を介して)行が追加されます。 fail2banが起動すると、actionstartが呼び出され、このファイルが読み取られ、必要なiptablesルールが作成されます。

もちろん、fail2banは、構成ファイルが変更された後に再起動する必要があります。

「arno0x0x」とこのレシピの彼のwordpressサイトへのすべてのクレジット。

8
Stephen Harris