どんな攻撃を受けているの?
ログイン画面(wp-login.php)への「頻繁なアクセス」と「過剰なログイン試行」。彼らはプログラムを使って人外魔境の速度で何度もIDとパスワードを執拗に入力してきます。
どう対策したらいいの?
ワードプレスは常に最新にする
これは絶対です。
テーマが崩れる場合は崩れないように親テーマの編集ではなく子テンプレートを作成するか変更分を追加しましょう。
古いプラグインは停止、削除する
色々便利だと思ってプラグインを追加する人も多いと思いますが、最終更新が古いものだとセキュリティホールがあったりします。
なので1,2年以上更新がないものは捨てる候補にいれる事をお薦めします。
メンバーシップの設定
【設定】→【一般】→【メンバーシップ】の「誰でもユーザー登録ができるようにする」のチェックをはずすIDとパスワードを強化する
基本的にパスワードが長いほど強固になります。覚えられないパスワードはブラウザに記憶させておくのがいいでしょう。
(ランダムな文字列の作成はツールを使うといいでしょう:http://www.luft.co.jp/cgi/randam.php)
.htaccessで制限をかける
ドキュメントルートにおく.htaccess
<Files "wp-config.php">
order deny,allow
deny from all
</Files>
<Files "wp-login.php">
order deny,allow
deny from all
allow from 192.168.xx.xx
</Files>
<Files "xmlrpc.php">
order deny,allow
deny from all
</Files>
wp-adminに置く.htaccess
order deny,allow
deny from all
allow from 192.168.xx.xx
<FilesMatch "(admin-ajax.php)$">
Satisfy Any
Order allow,deny
Allow from all
Deny from none
</FilesMatch>
192.168.xx.xx
の部分はご自分のIPアドレスに書き換えてください。
http://www.cman.jp/network/support/go_access.cgiの「あなたの利用している IPアドレス」の下にある青文字の数字になります。
wp-config.phpにはDBのID、PASSなど見られたくない情報があるのでアクセスを拒否します
wp-login.phpは自分だけがアクセスできるようにします。
xmlrpc.phpはPingbackを利用したブルートフォースアタックの攻撃対象になりうるので拒否しておきます。
admin-ajax.phpはプラグインで使うことがあるのでこれだけを除外しておきます。
使ってない場合<FilesMatch "(admin-ajax.php)$">
の箇所は不要です。
ブログ記事がURLが古いとか見られなくなった場合
管理画面→設定→パーマリンク→変更を保存をやってみてください。どうしても駄目なら設定が悪いです。その場合は追加したファイルを削除、元に戻してください。
これが起る原因はパーマリンクをデフォルトから変更している人で、
public_htmlに元からあった.htaccessを必要な設定を消して上書きしたことが原因です。
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
これが、パーマリンクのURLを割り当ててる部分です。