WordPress をブルートフォースアタックから守る

1. « admin » をユーザーネームに使わない。


新しくユーザーを追加して "admin" という名のユーザーを削除する。


2. 更新を長く待たない。


速やかに更新する。


3. « wp-config.php » を守る。

.htaccess # END WordPress の後に
<Files wp-config.php>
order allow,deny
deny from all
</Files>

4. « xmlrpc.php » を守る。

.htaccess # END WordPress の後に
<Files xmlrpc.php>
order deny,allow
deny from all
</Files>

5. « admin » の様な怪しいユーザーネームを弾く。

wp-config.php 上部に
if ( isset($_POST['log']) && preg_match('/^(admin|administrator|root|Admin|adm|support|)$/i', $_POST['log']) ) {
  header("HTTP/1.1 403 Forbidden");
  die();
}

6. 特定のユーザーネームしか受け付けない。

wp-config.php 上部に
if ( isset($_POST['log']) && !preg_match('/^(username1|username2)$/i', $_POST['log']) ) {
header("HTTP/1.1 403 Forbidden");
die();
}

7. ユーザーエージェントでアクセス拒否する。

.htaccess # END WordPress の後に
XXXXX=拒否したいユーザーエージェント名の一部
<Files wp-login.php>
SetEnvIf User-Agent "XXXXX" deny_ua
order allow,deny
allow from all
deny from env=deny_ua
</Files>

8. 特定のIPアドレスの « wp-login.php » へのアクセスを拒否する。

.htaccess # END WordPress の後に
XXX.XX.XX.XX=拒否するIPアドレス
<Files wp-login.php>
Order allow,deny
allow from all
deny from XXX.XX.XX.XX
</Files>

9. « wp-login.php » へのアクセスを特定のIPアドレスのみ許可する。

.htaccess # END WordPress の後に
XXX.XX.XX.XX=許可するIPアドレス
<Files wp-login.php>
Order deny,allow
Deny from all
Allow from XXX.XX.XX.XX
</Files>

10. « /wp-admin/ »へのアクセスを特定のIPアドレスのみ許可する。

.htaccess wp-admin の中に
XXX.XX.XX.XX=許可するIPアドレス
Order deny,allow
Deny from all
Allow from XXX.XX.XX.XX
<FilesMatch "(admin-ajax.php)$">
    Satisfy Any
    Order allow,deny
    Allow from all
    Deny from none
</FilesMatch>

参考:
ブルートフォース攻撃 – WordPress Codex 日本語版
WordPressの管理画面に制限をかける(ver3.5.1)
[WordPress] 管理画面へのログイン履歴を保存するプラグイン「Crazy Bone(狂骨)」

thumbnails: FLAT ICON DESIGN