
Wordpressのセキュリティ対策で悪意ある攻撃から守る(.htaccess操作も紹介)
Wordpressのセキュリティを高めるため、まずはインストール先と出力先を分ける事です。
そして.htaccessかプラグインを使ってログイン画面や主要ファイルにアクセス制限を掛けましょう。
システムやプラグインは常にバージョンアップをして、脆弱性をそのままにしない事が重要です。
Wordpressの重要課題はセキュリティ対策
Wordpressはご存じの通り今一番有名なCMSです。
このツールを使えば誰でも簡単に、WEBサイトが構築できるようになりましたよね。
深い知識が無くてもすぐに開設できる設備環境が整っていますから、初心者には嬉しい限りです。
Wordpressシステムの抱える課題
Wordpressは非常に便利なツールであり、同時にオープンソースのCMSでもあります。
常に中身が「公開されているシステム」である事を忘れてはいけません。
公開されているという事は、悪意ある第三者のハッキングターゲットになりやすい事を意味しているのです。
オープンソースのデメリット
・インストールした時どのような構成になるか
・ファイルの名前や機能について
・どのように動作するのか
こういった事が全て公開され、それを紹介した記事もごまんと出回っている訳です。
構成と内容がわかれば、その「隙」やウィークポイントを突いてハッキングの足掛かりとするのがハッカーの常とう手段です。
常にハッキングの危険に晒されているツール
ですのでWordpresは、常にハッキングの危険に晒されているツールと言って良いでしょう。
利便性の向上ももちろんですが、Wordpressはもっと重要な責務を抱えています。
それは、いつどうやって狙ってくるかわからない脅威へのセキュリティ対策です。
単にインストールして使うだけのユーザーが多い
これだけセキュリティ対策の必要性が唄われているにも関わらず、単にインストールしてそのまま使っている人が後を絶ちません。
今レンタルサーバーにはWordpressの自動インストール機能があるので、何の障害も無くWEBサイトが開設できてしまうからでしょう。
しかしそれは刃物を持った不審者に対し、裸一貫で立つようなものです。
相手はあなたを狙ってはいない
「大したサイトでもないから自分のは狙われない」という考え方はちょっと違います。
ハッカーは特定の相手を狙うのではなく、ほとんどがランダム・無作為です。
つまりあなたのサイトを認識して狙ってくる訳では無いのですね。
網漁と同じ
いわゆる漁と同じで、適当に網を張りターゲットとなる魚(サイト)がヒットするまで待ちます。
脆弱性を持ったWordpressサイトがその仕掛けに引っ掛かると、ハッカーに知らせがいきます。
そこで改めて、ハッカー手動によるハッキングや改ざんなどの行為が行われる訳です。
魚を釣るところまでは機械による自動作業です。
最低限度のセキュリティを施す
単にインストールして使うのではなく、自分で様々な設定をする事でハッキングに対する防御姿勢を取る事ができます。
それによりかなりの脅威を防ぐ(網に掛からないようにする)事ができます。
商売としてWordpress制作サイトを納品する人であればなおさら、対策準備をしておくべきでしょう。
本記事ではWordpressに対して自分で実施できる最低限度のセキュリティ対策をご紹介します。
自分のサイトのセキュリティを診断
まずは自分のサイトがマルウェア等のハッキング攻撃を受けていないか、判断する必要があるでしょう。
そこでおすすめの診断ツールを紹介します。
WPdoctor
「WPdoctor」は、日本語で分かりやすく解説されている大変便利な診断ツールです。
自分のサイトのURLを貼り付けるだけで簡単に診断できます。
レポートで指摘された項目に対処していく事で、セキュリティを強化することができます。
自力で対応ができない場合は、WPdoctorにセキュリティ対策の相談や依頼をする事もできます。
上の診断結果でも出てくると思いますが、必須で実施しておくべき対策を以下より紹介します。
インストール先と出力先URLを変える
まずは抜本的なところからいきましょう。
トップディレクトリにWordpressをインストールしている場合、可能であれば入れ直しをお勧めします。
一つ区画を作って、その中にWordpressファイルをインストールするべきです。
その上で出力先を一つ上のトップディレクトリに切り替える訳です。
インストールされた場所をわからなくする
インストール先
https://lpeg.info/wpsystem/(ディレクトリ名は自由)
表示(出力)先
https://lpeg.info/
システムをインストールするディレクトリは自由に決定できるので、外部の人にはわかりにくくなります。
インストール先と出力先を変える理由
ハッキングの一番の窓口はやはりログイン画面です。
パスワードを突破されるとサイト乗っ取りに遭う訳ですから、一番危険な場所ですよね。
トップディレクトリにインストールすると、自然とログイン画面のurlは決まってしまいます。
オープンソースのためどのサイトも同じ構成になります。
インストール先と出力先が同じ場合
https://lpeg.info/wp-login.php
もしくは
https://lpeg.info/wp-admin
この様にログイン画面URLは確定してしまいます。
インストール先のディレクトリはわからない
ここでインストール先のURLを一つ下の階層に入れておけば、それによりログイン画面URLが変わります。
つまりそのサイト固有の状態が作れる訳です。
インストール先と出力先が違う場合
https://lpeg.info/○○○○/wp-login.php
もしくは
https://lpeg.info/○○○○/wp-admin
一つ下の階層内に入れていれば、この「○○○○」部分がわからないとログイン画面がわかりません。
この様にログインURLが簡単に見つからない状態にするべきです。
小さな事でもやっておく姿勢
ログイン画面まで来ても、パスワードがわからなければ問題は無いと思うでしょう。
しかし今はパスワードの総当たり攻撃などもあります。油断はできません。
小さな可能性すらも摘み取っておくべきなのです。
wp-config.phpへのアクセス制限
wp-config.phpは、DB情報などが書き込んである重要な設定ファイルです。
Wordpressはこの重要な情報が入ったファイル位置まで周知されているシステムなのですね。
もしDB情報が盗まれたらデータベース自体がハッキングを受ける事になり、簡単に改ざんされてしまいます。
wp-config.phpの位置
このファイルは通常、管理者以外は閲覧不可になっています。
ただ先述したインストール先と出力先が同じだと、ファイルの位置はすぐにわかってしまいます。
別階層にすれば位置も特定されにくくなる
https://lpeg.info/wp-config.php
特定されない様にするためにも、一つ下の区画にWordpressシステムを入れる手段は有効です。
https://lpeg.info/○○○○/wp-config.php
任意のディレクトリ内に入れておけば、この○○○○部分がわからないので探せなくなります。
wp-config.phpのパーミッション
wp-config.phpのパーミッション設定は本来、管理者のみが開ける「400」か「600」が理想です。
それ以外は非常に危険な状態で、自分以外の人にダウンロードや表示されてしまいます。
一度も確認した事が無い人は、すぐにパーミッションを確認して下さい。
.htaccessへのアクセス制限
次に.htaccessを使って様々なアクセスを制限する方法を紹介します。
これはあなたやクライアントなど「関係者以外からのログインを制限」する事が目的です。
Wordpressの構成ファイル内にある「.htaccess」ファイルに追加で記述していく事になります。
情報を追記する位置は上に
これから紹介する記述は全て、.htaccessの上部に入れる様にしましょう。
----------------------------- この付近に入れましょう(何行か改行を入れてもOKです) ----------------------------- # 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
Wordpressによる自動記述はそのまま、それより上にスペースを作って追記する事です。
自動記述部分より下に入れると動かない場合があります。
ログイン管理画面(wp-login.php)のアクセス制限
すでにインストール時URLと出力先URLが同じ状態で完成してしまっている場合、全てやり直しは難しいでしょう。
そんな時はログイン画面への攻撃を防ぐため、関係者以外はログイン画面にアクセスできないようにします。
まずは「許可したIPアドレス先」のみがアクセスできる様にします。
IP制限の記述
<Files wp-login.php> Order deny,allow Deny from all Allow from 000.000.000.000 Allow from 000.000.000.000 </Files> # BEGIN WordPress…の記述が続く
Allow fromの欄には、ログインを許可するIPアドレスを入れて下さい(複数段記述可)。
自分(家や事務所)の接続元IPアドレスを調べる方法
下記サイトでIPアドレスを調べる事ができます。
BASIC認証
またはBASIC認証を使う事で、外部関係者や固定IPでない人からのアクセスも許可できます。
BASIC認証については別記事で取り扱っているので、参考にして下さい。
管理者画面(wp-admin)のアクセス制限
そもそもwp-admin/内は管理者以外に見せる必要はありませんので、アクセスを禁止して良いと思います。
wp-adminディレクトリ内に.htaccessを新規に設置して、アクセス制限を記述しましょう。
wp-adminディレクトリ内の.htaccessへの記述
Order deny,allow Deny from all Allow from 000.000.000.000 Allow from 000.000.000.000
このファイルは上記部分のみで、wordpressによる自動出力の部分は必要ありません。
Allow fromの欄には、先ほど同様にIPアドレスを入れて下さい。
その他攻撃されやすいファイルへのアクセス制限
それ以外に攻撃の対象となりやすいファイルは以下です。
wp-config.php…WordPressの動作に必要な設定ファイル
wp-cron.php…予約投稿やアップデート通知など時刻連動処理ファイル
xmlrpc.php…特定のホストへpinbackを送るファイル
いずれもwp-config.phpと同じ位置にあります。
アクセス制限を掛けるため、同じ位置にある.htaccessの上部に追記します。
wp-config.phpとwp-cron.phpへのアクセス制限
<FilesMatch "^(wp-config\.php|wp-cron\.php)"> order allow,deny deny from all </FilesMatch> # BEGIN WordPress…の記述が続く
xmlrpc.phpへのリダイレクト設定
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^xmlrpc\.php$ "http\:\/\/0\.0\.0\.0\/" [R=301,L] </IfModule> # BEGIN WordPress…の記述が続く
xmlrpc.phpへのアクセスは、上記の様にhttp://0.0.0.0/へリダイレクトして負荷を避ける形が一般的です。
プラグインを使った対策
これらのアクセス制限や認証を自作でするのが難しい場合は、プラグインを使いましょう。
アクセス制限などを設定できる代表的なプラグインを紹介します。
代表プラグイン紹介2つ
Wordpress管理画面のプラグイン新規追加の画面で、検索して探しましょう。
SiteGuard WP Plugin
SiteGuard WP Pluginは簡単に設定できるので、初心者の方におすすめのプラグインの1つです。
Invisible reCAPTCHA for WordPress
Invisible reCAPTCHA for WordPressは、ログイン画面を機械で自動突破されない様に認証するプラグインですね。
不要なプラグインは削除する
プラグインは、Wordpressで攻撃を受けやすい要素の1つでもあります。
拡張性が高く簡単便利なので、たくさんのプラグインを利用しているはずです。
しかしプラグインに脆弱性があると、そこをめがけてハッカーが悪意のあるプログラムを埋め込んできます。
つまり導入しているプラグインの数だけ、ハッキングされる危険性も高まる事になるのですね。
あまり使わなかったり無くても影響のないプラグインは、できるだけ削除しておきましょう。
まとめ
本記事では特に紹介していませんが、Wordpressやプラグインのバージョンアップはこまめにしておくべきです。
システムやプラグインにセキュリティホールが見つかると、すぐにアップデートをする様に告知が出回ります。
全てはそこから突破されない様にするための措置ですので、必ずやりましょう。
これを放っておいている人もいるはずです。
そして構成ファイルやDBデータのバックアップを定期的に取る事。これが基本でしょう。
セキュリティ対策
ハッキングを未然に防ぐために必要な対策をまとめてみました。
定期的にバックアップを取得する
ソフトウェア、プラグイン、テーマを最新にする
ファイルへのアクセスを制限する
ログイン画面の認証強化する
不要なプラグインは削除
もちろん大前提として、操作PCにはセキュリティソフトを入れておくべきです。
PC自体をハッキングされパスワードを盗み見されは意味がありませんからね。
こういった基本的な設定をきちんと進める事は、Wordpress利用者の宿命と言えると思います。