説明
fail2ban は、ブルート フォース攻撃を防ぐために実装できる最も簡単で効果的なセキュリティ対策の1つです。
WP fail2ban provides the link between WordPress and fail2ban:
Oct 17 20:59:54 foobar wordpress(www.example.com)[1234]: Authentication failure for admin from 192.168.0.1
Oct 17 21:00:00 foobar wordpress(www.example.com)[2345]: Accepted password for admin from 192.168.0.1
WPf2b には、wordpress-hard.conf、wordpress-soft.conf、wordpress-extra.conf という3つのfail2ban フィルターが搭載されています。これらは、即時の禁止 (hard) と伝統的なより緩やかなアプローチ (soft) を分けて考えられるように設計されており、カスタム設定のための追加ルールもあります。
機能
-
Failed Login Attempts
The very first feature of WPf2b: logging failed login attempts so the IP can be banned. Just as useful today as it was then. -
Block User Enumeration
One of the most common precursors to a password-guessing brute force attack is user enumeration. WPf2b can block it, stopping the attack before it starts. -
Block username logins
Sometimes it’s not possible to block user enumeration (for example, if your theme provides Author profiles). WPf2b can require users to login with their email address instead of their username. -
Blocking Users
Anther of the older WPf2b features: the login process can be aborted for specified usernames.
Say a bot collected your site’s usernames before you blocked user enumeration. Once you’ve changed all the usernames, add the old ones to the list; anything using them will trigger a “hard” fail. -
Empty Username Login Attempts
Some bots will try to login without a username; harmless, but annoying. These attempts are logged as a “soft” fail so the more persistent bots will be banned. -
Spam
WPf2b will log a spammer’s IP address as a “hard” fail when their comment is marked as spam; the Premium version will also log the IP when Akismet discards “obvious” spam. -
Attempted Comments
Some spam bots try to comment on everything, even things that aren’t there. WPf2b detects these and logs them as a “hard” fail. -
Pingbacks
Pingbacks are a great feature, but they can be abused to attack the rest of the WWW. Rather than disable them completely, WPf2b effectively rate-limits potential attackers by logging the IP address as a “soft” fail. -
Block XML‑RPC Requests [Premium]
The only reason most sites need XML‑RPC (other than Pingbacks) is for Jetpack; WPf2b Premium can block XML‑RPC while allowing Jetpack and/or Pingbacks. -
Block Countries [Premium]
Sometimes you just need a bigger hammer – if you’re seeing nothing but attacks from some countries, block them! -
Cloudflare and Proxy Servers
WPf2b will work with Cloudflare, and the Premium version will automatically update the list of Cloudflare IP addresses.
You can also configure your own list of trusted proxies. -
新しい – syslog ダッシュボード ウィジェット
何が記録されているのか疑問に思ったことはありますか? 新しいダッシュボードウィジェットには、最後の5つのメッセージが表示されます。Premium バージョンでは、攻撃の分析と防止に役立つ完全な履歴が保持されます。 -
Site Health Check
WPf2b will (try to) check that yourfail2banconfiguration is sane and that the filters are up to date; out-of-date filters are the primary cause of WPf2b not working as well as it can.
When did you last run the Site Health tool? -
mu-pluginsサポート
WPf2b は、必用プラグインとして簡単に構成できます – 設定を見てください。 -
API to Extend WPf2b
If your plugin can detect behaviour which should be blocked, why reinvent the wheel? -
Event Hooks [Premium]
Need to do something special when WPf2b detects a particular event? There’s a hook for that.
Premium
- Web Application Firewall (WAF)
- Akismet support.
- Block XML‑RPC while allowing Jetpack and/or Pingbacks.
- Block Countries.
- Auto-update Cloudflare IPs.
- Event log.
- Event hooks.
インストール
- Plugin ディレクトリを介してインストールするか、プラグインディレクトリにアップロードします。
- WordPressのプラグインメニューよりプラグインを有効化します。
- 必要に応じて
wp-config.phpを編集 – 設定を参照してください。
FAQ
-
Does WP fail2ban replace fail2ban?
-
No. WP fail2ban is an “integration” or “bridge” between WordPress and
fail2ban. It enablesfail2banto recognise WordPress-specific events by providing log entries thatfail2bancan monitor and act upon.In other words, WP fail2ban itself doesn’t directly ban IP addresses or manage firewall rules; you must have
fail2baninstalled and correctly configured on your server.
評価
貢献者と開発者
変更履歴
5.4.1-LTS
- Fix compatibility for WordPress 6.8.
- Fix incorrect dependency requiring PHP>=8.1. [Premium only]
- Add license for Packagist.
5.4.0-LTS
- Add support for Composer. [Canonical only]
- Add support for AspirePress Update. [Canonical only]
- Add support for GitHub Updater. [Canonical only]
- Improve i18n.
- Fix harmless warning in Site Health filters check (h/t Rodolphe).
- Freemius ライブラリを更新。
5.3.4
- Improve Site Health filter messages (h/t @yardstudio).
- Freemius ライブラリを更新。
5.3.3
- Fix activation bug when
$wp_scriptsis uninitialised. [Premium only] - Fix world map dashboard widget. [Premium only]
- Freemius ライブラリを更新。
5.3.2
- Drop Site Health checks for free add‑ons.
5.3.1
- Fix regression in plugin message registration.
5.3.0
- Add
WP_FAIL2BAN_SYSLOG_TAG_HOSTto simplifyfail2banconfiguration withjournald. - Fix database upgrade when jQuery not loaded. [Premium only]
- Freemius ライブラリを更新。
5.2.2
- Fix regression in Site Health when
execis disabled (h/t @ahardy42). - PHP 8.3: Fix harmless warning on About tab.
- WAF: Add support for themes that update image size options (h/t Jerker Wredenmark). [Premium only]
- Freemius ライブラリを更新。
5.2.1
- Fix bug in WAF when not logged in (h/t Rudi Diedrich). [Premium only]
- Site Health: Add support for
open_basedir(h/t Jaroslav Huba). - Freemius ライブラリを更新。
5.2.0
- WAF: Add new filter file for WAF events. [Premium only]
- WAF: Add feature: prevent unauthorised user deletion. [Premium only].
- Fix untrusted proxy message.
- Work-around for WooCommerce bug causing double logging of password reset requests (h/t @anuja).
- Site Health: Improve notifications.
5.1.1
- Freemius ライブラリを更新。
5.1.0
- Web Application Firewall. [Premium only]
- Add PTR record lookup to event report. [Premium only]
- Improve report performance. [Premium only]
- Site Health: Check
fail2banis running. - Site Health: Obsolete Filters – Detect DigitalOcean Droplet and link to documentation.
- Fix harmless warning (h/t @Yavor).
- Fix warning caused by bug in Google Sitekit (h/t @DaWolfey).
- Freemius ライブラリを更新。
5.0.1
- Tweak Site Health notifications.
- Freemius ライブラリを更新。
5.0.0 “Delphi”
- IPv6 support.
- Akismet support. [Premium only]
- Auto-update Cloudflare IPs. [Premium only]
- Event hooks. [Premium only]
- Performance improvements:
- Improve reports. [Premium only]
- Cache IP lists. [Premium only]
- Cache Plugin API message registration. [Premium only]
- Site Health: Check installed filters against previous versions.
- Moved “Authentication attempt for unknown user” to
wordpress-soft.conf. - Moved “extra” Comment messages to
wordpress-soft.conf. - Show date/time in local timezone (h/t @geniusmedia). [Premium only]
- Deprecate
WP_FAIL2BAN_LOG_COMMENTS_EXTRAandWP_FAIL2BAN_COMMENT_EXTRA_LOG; useWP_FAIL2BAN_LOG_COMMENT_ATTEMPTSandWP_FAIL2BAN_COMMENT_ATTEMPT_LOGinstead. - Freemius ライブラリを更新。
Please read the notes before upgrading.
4.4.0.9
- Preparation for v5: prevent auto-updating across major release.
- Freemius ライブラリを更新。
4.4.0.8
- Back-port fix for
mu-pluginsactivation. - Freemius ライブラリを更新。
4.4.0.7
- Back-port fix for type error in menu-fixer when viewing Event Log (h/t @geniusmedia). [Premium only]
- Back-port fixes for event summaries. [Premium only]
- Freemius ライブラリを更新。
4.4.0.6
- Fix initialisation error in event log. [Premium only]
- Fix type error in event log when no events available. [Premium only]
- Freemius ライブラリを更新。
4.4.0.5
- Fix type error on Remote IPs tab with no MaxMind database configured (h/t @Tobias‑Conrad). [Premium only]
- Freemius ライブラリを更新。
4.4.0.4
- Fix warning with array of blocked users (h/t @Znuff).
- Fix reports. [Premium only]
4.4.0.3
- Fix type error (h/t @brianshim).
4.4.0.2
- Add
WP_FAIL2BAN_USE_AUTHPRIV– a single place to switch toLOG_AUTHPRIVfor systems withoutLOG_AUTH. - Add
WP_FAIL2BAN_FREE_ONLY. - Add
WP_FAIL2BAN_PLUGIN_LOG_OTHERandWP_FAIL2BAN_PLUGIN_OTHER_LOG. - Improve performance.
- Moved cron event to update trusted Cloudflare IP ranges to the Cloudflare add-on. [Premium only]
- Add support for Pingbacks while blocking XML‑RPC. [Premium only]
- Freemius ライブラリを更新。
4.3.2.2
- Add cron event to update trusted Cloudflare IP ranges weekly. [Premium only]
- Add cron event to update trusted Jetpack IP ranges weekly. [Premium only]
- Add cron event to update MaxMind database weekly. [Premium only]
- Workaround for missing
syslogconstants in Windows (h/t @dmarkowicz). - Clarify upgrade message on Last 5 Messages widget. [Free only]
- Merge About and Status tabs. [Premium only]
- Freemius ライブラリを更新。
4.3.2.1
- Add support for WP fail2ban Blocklist.
- Add new Standard Configurations.
- Improve Help links.
- Fix logging checkboxes [Premium only].
- 最後のメッセージを無効にする間違った定数を修正 (h/t @kermina)。
- 共同作成者が別のユーザーによる投稿をリストしようとしたときに、ユーザーの列挙をブロックすることで誤検知を修正。
- Fix index issue with ancient versions of MySQL.
- 定義されているが空の無害な警告
WP_FAIL2BAN_PROXIESを修正 (h/t @stevegrunwell)。 - 新しいブロック イベント クラスをバックポート。
- Freemius ライブラリを更新。
- Change to GPLv3 with additional terms as per Section 7.
4.3.2.0
- Add support for blocking by Country. [Premium only]
- Add XML‑RPC blocking; allow trusted IPs and Jetpack (h/t @mhweb). [Premium only]
4.3.0.9
- 最後のメッセージを無効にする間違った定数を修正 (h/t @kermina)。
- 共同作成者が別のユーザーによる投稿をリストしようとしたときに、ユーザーの列挙をブロックすることで誤検知を修正。
- MySQL の古いバージョンでのインデックスの問題を修正。[プレミアムのみ]
- 定義されているが空の無害な警告
WP_FAIL2BAN_PROXIESを修正 (h/t @stevegrunwell)。 - 新しいブロック イベント クラスをバックポート。
- Freemius ライブラリを更新。
4.3.0.8
- Gutenberg 事前読み込み作成者リストによってトリガーされるユーザー列挙ブロックの回避策の問題。(h/t @brrrrrrrt)[WordPress のみ]
4.3.0.7
wp-config.phpに定数を含めることを可能にするリファクタリングが完了。(h/t @iCounsellor)- MaxMind のデータベースの更新を修正。[プレミアムのみ]
4.3.0.6
- ユーザーの列挙ブロックが有効になっている場合、エディタの下のロールの [投稿] ページで [禁止エラーを修正します。[WordPress のみ]
4.3.0.5
- マルチサイトの空のユーザー名検出を修正。
- 新しいマルチサイト インストールをアクティブ化する際の無害な警告を修正。
functions.phpファイルを含むディレクトリ内の CLI から実行されるスクリプトを介してwp-load.phpが読み込まれる難解なエッジケースを修正。
4.3.0.4 “Columbo”
- 新しいダッシュボードウィジェットを追加: 最後の5つの
syslogメッセージ。 - 完全なマルチサイト サポートを追加 。
- ユーザー名ログインブロックを追加 (電子メールでログインを強制)。
- 空のユーザー名を使用してログイン試行用に 個別のログを 追加します。
- WordPress ブロックエディター (Gutenberg) との ユーザー列挙ブロック の互換性を向上。
- PHP の最小バージョンを 5.6 に設定します。
4.2.8
- 新しいサポートフォーラムにリンクを追加。
- Gutenberg とのユーザー列挙の競合を修正 (h/t @dinghy)。
- 通知の通知管理メニューを修正 (h/t @marioivangf)。
- 無害な XDebug 通知を修正 (h/t @dinghy)。
- Freemius ライブラリを更新。
4.2.7.1
oembedを介してユーザーの列挙をブロックするときのエラー を修正 (h/t @wordpressfab)。
4.2.7
- REST を介してユーザーの列挙をブロックする場合のエラーを修正。
- [設定] タブのボタンを修正。
4.2.6
- リモート ツールアドオンのサポートを追加。
- 新しい ClassicPress セキュリティ ページのサポートを追加。
- ユーザー列挙ブロックの改善。
4.2.5.1
- PHP < 7.0 でプレミアムアクティベーションの問題を修正。
4.2.5
- PHP 5.3 のサポートを正しく修正します。CentOS 6でテストされました。UI またはプレミアム機能をサポートしていません。
- 管理領域から REST API または XMLRPC を呼び出す場合の
WP_FAIL2BAN_BLOCK_USER_ENUMERATIONの潜在的な問題を修正。
4.2.4
- ログイン失敗メッセージのフィルタを追加。
- 管理領域からのスパムコメントのログ記録を修正。
- プラグインページから設定リンクを修正。
- Freemius ライブラリを更新
4.2.3
- いくつかのバージョンの PHP 7.x では
define()が無視される問題を回避します。 - 設定タブに設定メモを追加。
- ドキュメントリンクを修正。
4.2.2
- 5.3 の互換性を修正。
4.2.1
WP_FAIL2BAN_COMMENT_EXTRA_LOGのサポートを完了。- Add support for 3rd-party plugins; see Developers.
- Add-on for Contact Form 7 (experimental).
- Gravity Forms 用アドオン (実験的)。
- パスワードが正しくない既知のユーザーのログを変更します。以前は不明なユーザーとして記録され、
hardフィルタによって一致しました (古いバージョンの WordPress の制限による)、現在は既知のユーザーとして記録され、softによって一致します。 - ユーザー名として電子メールのバグ修正 – 正しく記録され、
hardフィルターではなく 、softフィルターによって一致しました。 - 無料/プレミアムの競合を防ぐためのコードでの回帰のバグ修正。
4.2.0
- リリースされていません。
4.1.0
- REST 認証用に個別のログを追加。
mu-pluginsにプレインストールされた以前のバージョンとの競合を修正。WPf2bは既にインストールされていますか ?。
4.0.5
WP_FAIL2BAN_COMMENT_EXTRA_LOGを追加。WP_FAIL2BAN_PINGBACK_ERROR_LOGを追加 (将来の機能)。WP_FAIL2BAN_LOG_SPAMがLOG_NOTICE使用するように変更。WP_FAIL2BAN_SPAM_LOGをLOG_AUTHに変更。WP_FAIL2BAN_LOG_COMMENTS_EXTRAイベントを、デフォルトでLOG_NOTICEを使用するように変更。mu-pluginsで 3.x との競合を修正。
4.0.2
- PHP 5.3 の互換性を修正。
WP_FAIL2BAN_LOG_COMMENTS_EXTRAのバグ修正。WP_FAIL2BAN_REMOTE_ADDR概要のバグ修正。
4.0.1
- Freemius 経由で追加機能を追加します。これは完全にオプションです。 WPf2b は、ここに記載されている新機能を含め、以前と同様に動作します。
- 設定の概要ページを追加 (設定 -> WP fail2ban)。
WP_FAIL2BAN_PASSWORD_REQUEST_LOGを追加。WP_FAIL2BAN_SPAM_LOGを追加。- Add
WP_FAIL2BAN_LOG_COMMENTS_EXTRA– enable logging for attempted comments on posts which are:- not found,
- コメントのために閉じ、
- ゴミ箱で、
- ドラフト、
- パスワードで保護
- REST API を使用してユーザーの列挙をブロック。
4.0.0
- リリースされていません。
3.6.0
- PHPDoc からコード内にフィルタファイルが生成されます。これまでは、フィルターとコードが同期していないことが多々ありましたが(プログラマーのミス)、これはパターンとそれを発するコードを近づけることで解決するはずです。
- PHPUnit テストを追加。ほぼ100 % コードをカバー、適切にテストすることは非常に困難な
WP_FAIL2BAN_PROXIES例外を除いて。 wordpress-soft.confのバグ修正。WP_FAIL2BAN_XMLRPC_LOGを追加。WP_FAIL2BAN_REMOTE_ADDRを追加。WP_FAIL2BAN_PROXIESはPHP 7で IP の配列をサポートするようになりました。- すべてのドキュメントを https://docs.wp-fail2ban.com/に移動。
3.5.3
wordpress-hard.confのバグ修正。
3.5.1
WP_FAIL2BAN_BLOCK_USER_ENUMERATIONのためのバグ修正。
3.5.0
WP_FAIL2BAN_OPENLOG_OPTIONSを追加。WP_FAIL2BAN_LOG_COMMENTSとWP_FAIL2BAN_COMMENT_LOGを追加。WP_FAIL2BAN_LOG_PASSWORD_REQUESTを追加。WP_FAIL2BAN_LOG_SPAMを追加。WP_FAIL2BAN_TRUNCATE_HOSTを追加。WP_FAIL2BAN_BLOCKED_USERSでは、PHP 7 を使用してユーザーの配列をサポートしています。
3.0.3
wordpress-hard.conf内での正規表現を修正。
3.0.2
- XML-RPC 認証エラーの WP 4.5.x での二重ログの防止
3.0.1
wordpress-hard.conf内での正規表現を修正。
3.0.0
WP_FAIL2BAN_SYSLOG_SHORT_TAGを追加。WP_FAIL2BAN_HTTP_HOSTを追加。- XML-RPC 認証エラーをログに記録。
- MU 展開のサポートを強化。
2.3.2
2.3.0
- 実験
WP_FAIL2BAN_PROXIESコードのバグ修正 (KyleCartmell に感謝)。
2.2.1
WP_FAIL2BAN_BLOCKED_USERSの愚かな間違いを修正。
2.2.0
- カスタム認証ログは、
WP_FAIL2BAN_AUTH_LOGと呼ばれるようになりました。 - pingback のログ記録を追加。
WP_FAIL2BAN_LOG_PINGBACKSを参照してください。 - カスタムの pingback ログは、
WP_FAIL2BAN_PINGBACK_LOGと呼ばれます 。
2.1.1
- マイナーなバグ修正。
2.1.0
- ユーザーの列挙をブロックするためのサポートを追加。
WP_FAIL2BAN_BLOCK_USER_ENUMERATIONを参照してください。 - CIDR 表記のサポートを
WP_FAIL2BAN_PROXIESで追加します。
2.0.1
WP_FAIL2BAN_PROXIES用実験コードのバグ修正。
2.0.0
- X-Forwarded-For ヘッダーの実験的なサポートを追加。
WP_FAIL2BAN_PROXIESを参照してください。 - 正規表現ベースのログインブロッキングの 実験的 なサポートを追加。
WP_FAIL2BAN_BLOCKED_USERSを参照してください。
1.2.1
- FAQ を更新。
1.2
- 無害な警告を修正。
1.1
- マイナーなコスメティックの更新。
1.0
- 最初のリリース。
