web-dev-qa-db-ja.com

「wp-login.php」攻撃者からのIPの自動禁止

Apacheログother_vhosts_access.logを見ると、次のような1か月あたりのいくつかの異なるIPからの多くの試行が見られます。

www.example.com:80 91.200.x.x - - [25/Jun/2017:17:20:19 +0200] "POST /wp-login.php HTTP/1.1" 
www.example.com:80 91.200.x.x - - [25/Jun/2017:17:20:19 +0200] "POST /wp-login.php HTTP/1.1" 
www.example.com:80 91.200.x.x - - [25/Jun/2017:17:20:20 +0200] "POST /wp-login.php HTTP/1.1" 

ブルートフォース攻撃のようです。

自動禁止する簡単な方法はありますかアウトバーン とのリンクはありません)これら攻撃者?

  • Wordpressプラグインを使用してそれを行うと、トラフィックは引き続きPHPに入り、リソースを浪費します。

  • 私がApacheレベルでそれを行う場合、それは確かにまだリソースを浪費します

  • 可能な限り最低レベルでそれを行うべきですか?つまり、IPテーブル?

other_vhosts_access.logでそのような攻撃者を探し、iptablesでそれらを自動的に禁止するツールはありますか?

2
Basj

私はついに解決策を見つけました(数日で機能するかどうかを確認します):fail2ban。

これを/etc/fail2ban/jail.confに入れましょう:

#
# HTTP servers
#

[Apache-wp-login]
enabled = true
port    = http,https
filter  = Apache-wp-login
logpath = /var/log/Apache2/other*.log
maxretry = 6
findtime = 36000
bantime = 36000

次に、これを/etc/fail2ban/filter.d/Apache-wp-login.confで:

[Definition]
failregex = .*:(80|443) <Host> .*/wp-login.php.*
ignoreregex =

次に、サービスを開始して禁止事項を見てみましょう。

service fail2ban start
tail -f /var/log/fail2ban.log

非常に便利です。これは、フィルタリング正規表現をデバッグし、それが機能するかどうかを確認するのに役立ちます。

fail2ban-regex /var/log/Apache2/other_vhosts_access.log /etc/fail2ban/filter.d/Apache-wp-login.conf
3
Basj