現在、私はアスタリスクを実行している新しい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のスパムを防ぐことを願っています。
bantine
をfail2ban
に設定すると、-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サイトへのすべてのクレジット。