WordPress Tips

WordPress 管理画面 wp-login.phpへの攻撃からの保護、アクセス制限

2016-03-16

WordPress 管理画面 wp-login.phpへの攻撃からの保護、アクセス制限

WordPressの不正アクセス・不正ログインなどの対策やっていますか?

WordPressは世界中で最も利用されているオープンソースのCMSです。

オープンソースであるがゆえにディレクトリ構造やソースコードは全て公開されているので攻撃者にとっても容易に目的のファイルにたどり着くことができてしまいます。

ここではWordPressの不正アクセス・不正ログインなどの攻撃から保護する方法をまとめます。

最近はレンタルサーバー会社で海外IPをブロックする対策を導入しておりセキュリティにおける安心度は増しました。

WordPressの不正ログイン対策があるレンタルサーバー

エックスサーバー ConoHa WINGはWordPressのセキュリティ対策が標準装備されています。

海外(国外IP)アクセス制限

対象:ダッシュボード、XML-RPC API、REST-API、wlwmanifest.xml

XML-RPC APIへのアクセス制限がある場合、海外にいるときに自分のWordPressへアクセスできなくなる場合があります。

またプラグインによってこのアクセス制限によって正常に動かない場合もあります。

不正なログイン制限

管理画面に短時間に複数回ログイン試行があった場合アクセスを制限されます。

コメント・トラックバック制限

短時間に大量コメント・トラックバックがあった場合の制限、海外からのコメント・トラックバックを制限する機能

エックスサーバーのWordPressセキュリティ設定
ConoHa WingのWordPressセキュリティ設定

でも海外IPをブロックするだけでは絶対安心とは限りません。

.htaccessによるファイル・ディレクトリへのアクセス制限


特定のIPだけを許可したい、特定のIPだけを拒否したいという場合があると思うのでメモしておきます。

制限をかける対象のファイル・ディレクトリ

  • wp-config.php
  • wp-login.php
  • wp-admin/
  • xmlrpc.php

wp-config.phpのアクセス制限

wp-config.php はデータベース情報など重要情報が記載されているのでアクセスできないようにしておきます。

<Files "wp-config.php">
order deny,allow
deny from all
</Files>

wp-login.phpのアクセス制限

■特定のIPのみ許可する

<Files "wp-login.php">
order deny,allow
deny from all
allow from 192.168.xx.xx
</Files>

※192.168.xx.xxからのアクセスだけ許可する
複数指定する場合は、改行してallow from を記述

■特定のIPを拒否する

アクセスする場所が限定できない場合

<Files "wp-login.php">
order allow,deny
allow from all
deny from 192.168.xx.xx
</Files>

※192.168.xx.xxからのアクセスを拒否する

wp-adminディレクトリのアクセス制限

※wp-adminディレクトリ内にある「admin-ajax.php」は、プラグインで使われている場合があるので対象から外した方が良いです。
Gatespace's Blogさんの記事から
http://gatespace.jp/2013/05/21/wp-admin-access-restriction-ver3-5-1/

ルートディレクトリではなく、wp-adminディレクトリに.htaccess を置くこと

■特定のIPのみ許可する

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>

xmlrpc.phpの対策

xmlrpc.phpに対しブルートフォースアタックをかけられるのを防ぐため
※Pingback機能を悪用して踏み台にする攻撃がある

<Files "xmlrpc.php">
order deny,allow
deny from all
</Files>

もしくは、Disable XML-RPC Pingbackプラグインを利用する
https://ja.wordpress.org/plugins/disable-xml-rpc-pingback/

.htaccessでの制限の記述おさらい

アクセス制限をかける場合、

「すべてを許可してから特定のIPを拒否する」
「すべてを拒否してから特定のIPを許可する」

という設定方法があります。

それを記述するのが「order」です。

すべてを許可する

order deny,allow

すべてを拒否する

order allow,deny

「すべてを許可してから特定のIPを拒否する」

order deny,allow
allow form 許可する対象
deny from 拒否する対象


「すべてを拒否してから特定のIPを許可する」

order allow,deny
deny from 拒否する対象
allow from 許可する対象

プラグインを使って総合的なセキュリティ対策をする

セキュリティ系のプラグインには、前述のような.htaccessによるアクセス制限やログインロックアウトを備えています。

WordPressのログインを一定回数以上間違えるとロックするプラグイン

Limit Login Attempts
https://wordpress.org/plugins/limit-login-attempts/

ログイン履歴(エラーもふくめて)を記録してくれるプラグイン

総合的なセキュリティ対策

All-In-One Security (AIOS) – Security and Firewall

SiteGuard WP Plugin

基本はWordPressとプラグインを最新の状態に保つこと

WordPressを安全に保つ方法はWordPress本体とプラグインを最新の状態にしておくことです。

セキュリティアップデートがあった場合は早急な対応が必要です。

セキュリティホールをそのままにしておくことはとても危険です。

脆弱性を放置したことが原因で不正アクセス、ウェブサイトの改ざんや個人情報の漏洩が起こった場合、元に戻すのには大変な作業になります。

その期間、Webサイトは機能しなくなりビジネスチャンスを逃し、信頼性を損ねることにつながるのです。

「自分のサイトはアクセスが少ないから大丈夫」というわけではありません。

WordPressだけに限りませんがCMSなどWebアプリケーションを利用する場合は不正アクセス対策をしっかりすることが重要です。

月385円からできる定期セキュリティ診断

WordPressの脆弱性診断、マルウェア診断・駆除、改ざんチェックを行うサービス。

知らずにサイトに埋め込まれたマルウェアや不正コードを検知して駆除してくれます。

WordPressだけでなくMovableTypeや問い合わせフォーム、ショッピングカートなどのアプリにも対応しています。

サイトロックの詳細

保守管理から緊急時の対応まで全て任せたいなら

WordPressを熟知した専任スタッフがWordPressのバージョンアップなどの運用、保守管理、バックアップや脆弱性対策までをオールインワンで任せられるのが「wp.support」です。

万一の不測の事態でもバックアップからの復元作業までwp.supportで行ってくれます。

月額44000円で、WordPressコア、プラグインのアップデートから定期バックアップ、改ざんチェック、月次レポートまで対応しています。

-WordPress Tips
-