wordpressのログインアタック (ブルートフォース攻撃) の阻止

普通の対策では認証をさせないだけなのでアクセスは減らず,サーバーのパフォーマンス低下は避けられない。
以下はwp-login.phpへのアクセス自体を阻止する対策。

WordPressの自動更新にも対応

.htaccess に追加

# END WordPress の下に

 redirect 301 /wp-login.php /new-login.php  

nginxなら default.conf に

 rewrite ^/wp-login.php /new-login.php permanent; 

wp-login.php を new-login.php に別名コピー

ファイルを開いてwp-login.php → new-login.phpに全置換

new-login.phpの<?php 以下に追加

session_start();
  if(!isset($_SESSION['任意文字'])){ 
     echo '<h1>404 Not Found<hr></h1>';
   exit;
}

if($_SESSION['任意文字']!="てきとうなひらがな"){
    echo '<h1>404 Not Found<hr></h1>';
    exit;
}

[logon.php] ← セッションを作るためのダミーのログインファイル

 <?php
  session_start(); //セッション開始

  $_SESSION["任意文字"]="てきとうなひらがな";
 ?>

  <a href="new-login.php"> 秘密のログインへ </a>

普通に/wp-admin/ や /wp-login.php でログインしようとすると 404 Not Found になる。
ダミーで作った /login.php からならログインできる。


Categories:

Tags: