WordPressを使ったホームページの作り方/プラグインの使い方/ノーコード構築ブログ
wordpressの先生が本気で考えたセキュリティ対策5選
HanamiWEBオンラインスクールでは
●バーチャル自習室でのリアルタイム質問!
●チャットで質問し放題!
●24時間学び放題のEラーニング教材!
全部ついて 2,500円/月!
wordpressで考えられるセキュリティ対策について、wordpressの先生が丁寧に設定方法を解説します!
最近、ビジネスのオンライン化が進み
- 来店前の事前予約
- テイクアウト事前予約
- ネットショップ・オンラインショップ
- 会員限定コンテンツを配信するオンラインサロン
等、単純にwordpressでホームページを運用しているだけではなく、会員情報を集める機会が増えているように感じています。
情報が流出したり、攻撃を受けて不正ファイルを埋め込まれない為にも最低限押さえておきたいセキュリティ対策を紹介します。
実際にあった改ざん事例を以下の記事で紹介しています。
なぜwordpressでセキュリティ対策は必要なのか?
webサイトでは
- 管理画面へ不正ログインをされ、サイトの情報を改ざんされたり情報を盗まれる
- wordpress、テーマ、プラグインの脆弱性を狙った攻撃
- 一度に大量のデータを送り付ける攻撃
について対策を練らないといけないです。
なぜ他のホームページなどのwebサイトよりwordpressが狙われやすいといわれるのかについてですが
- 世界中の訳7割がwordpressで作られているので、ユーザーが多い分wordpressが狙われているという印象になりやすい
- wordpressサイトの構造が全て同じである(ログインURLが同じ、管理画面URLが同じなど)
- 無料で使えるCMSでありオープンソースなので、ハッカーたちが脆弱性を見つける事が可能である
事が原因ではないかと思います。
例えばですが、あるハッカー集団がwordpressの脆弱性を見つけたとします。世界中の7割が利用するwordpressサイトに同じ攻撃を繰り返せば、セキュリティ対策を怠っているサイトは攻撃のされてしまうという事になります。他のCMSなどの脆弱性を見つけるよりも、wordpressの脆弱性を見つけて攻撃をした方がハッカーにとって効率が良いですよね?数打てばあたるという事です。
wordpressのソースコードは無料公開されていて、誰でも使えてカスタマイズなど自由にしてよいというオープンライセンスなので、ハッカーがwordpressの脆弱性を見つけるにしても都合が良いわけなんです。
また、wordpressのファイル構造は皆さん同じですよね。当たり前ですが、同じwordpressファイルをインストールして使います。そこで問題が出てきます。管理画面のURLが〇〇〇.com/wp-adminであったり、ログインURLが〇〇〇.com/loginという決まりがあります。
実際に運用しているドメイン(〇〇〇.com)に
〇〇〇.com/wp-admin
〇〇〇.com/wp-login
と入力してみてください。管理画面やログイン画面が表示されませんか?(Site Guardプラグインでセキュリティ対策を利用している方は表示されないと思います。)
パスワードを数多く攻撃してログインを突破するという事例に関しても、ログインURLがわかっている状況で攻撃をするのか、ログインURLを探してから攻撃をするのかでは、ログインURLがわからないサイトよりもわかるサイトの方に攻撃をしますよね。
wordpressを使わないでくださいという事では全くありません。正しいセキュリティ対策を行い、安全に安心してwordpressを運用をしていくためのwordpressセキュリティ対策の解説を行っていきます!
それでは、早速wordpressのセキュリティ対策を紹介していきますので、実際にサイトでセキュリティを強化していってくださいね!
webサイトのSSL化は必須となります。SSL化については
こちらを参考にしてください。
またxserver独自の標準セキュリティ対策の利用方法については以下の記事を参考にしてください!
WordPressのセキュリティプラ銀Site Guardをインストール
wordpressのセキュリティを強化できるプラグインが存在します。【Site Guard】
Site Guard公式サイト↓↓
https://www.jp-secure.com/siteguard_wp_plugin/
wordpressの新規プラグインの追加で【siteguard】と検索をします
【今すぐインストール】をクリックして【有効化】をします
1.ログインURLを変更してwordpresのセキュリティを強化
まずは、共通で用意されているwordpressのログインURLを変更します。
〇〇〇.com/wp-login.php
〇〇〇.com/wp-login.phpと独自ドメインに【wp-login】または【wp-login.php】を追加するとログイン画面に切り替わります。
Site Guardセキュリティプラグインを利用してログインURLを変更する
worpdressのソースコードを変更してログインURLを変える事は難しいと思いますので、【Site Guard】というプラグインを利用してwordpressログインURLを変更します。
ログインURLを確認する
Site Guardプラグインを有効化にした段階で、ログインのURLが変わります。今までブックマークをしていた方、wp-loginでログインURLを出力していた方は注意が必要です。
ログインURLが何になったのか、確認をします。Site Guardプラグインを有効化にして追加された【SiteGuard】という項目の中の【ログインページ変更】をクリックしてください。
Site Guardセキュリティプラグインログインページ変更画面での設定方法
- 【ON】にします。-デフォルトではONになっています。
- 変更後のログインページ名ー自動出力されたログインURLを使うか、任意の文字列でログインURLを指定します。
- オプションーこのままではwp-adminへアクセスをされるとログインURLへリダイレクトがかかる仕組みになっていますので、ログインURLを変更しても意味が余りまりません。チェックを入れます。
実際にログインURLへアクセスをしてみます
ログアウトしていただき、設定をしたURLへアクセスをしてみてください。
ここで表示されたログインURLはブックマークを取るか、URLを控えておいてください。
これで、wordpressのログインURLを変更する事が出来ました。
その他にもSite Guardで行っておきたい設定があります。
Site Guardセキュリティプラグインを利用してwordpressログイン画面で画像認証を追加する
wordpressのログインURLは変更をしたので、簡単にはログインURLへアクセスできなくなりましたが、それでも万が一ログインされた場合。任意のパスワードを大量に攻撃してログインをしようとした時に、画像認証があるとパスワードの攻撃+画像認証をしないとログインができないので、さらにセキュリティを強化できます。
【Site Guard】プラグインの【画像認証】をクリック
ログイン画面の画像認証をONにする
まずは設定が【ON】になっている事を確認します。
- ログインページ
- コメントページ
- パスワード確認ページ
- ユーザー登録ページ
にひらがな・英数字の画像認証を付加する事が出来ます。
Site Guardセキュリティプラグインを利用してwp-adminである管理画面への不正アクセスを制御
wp-login同様に、管理画面のURLもwp-adminで決まっています。wp-adminへのアクセスに関しても、ログインをしていないユーザーがwp-adminへアクセスしても404エラー、ページがありませんと表示される事が出来ます。
デフォルトではOFFになっている機能です
【Site Guard】>【管理ページアクセス制限】をクリック
管理画面アクセス制限機能を有効化
【ON】へ変更します。
2、アクセスされたくないページへベーシック認証(パスワード保護)をかけます
今回はxserverでの解説となりますが
- ログインURL
- 管理画面URL
このページにサーバーからベーシック認証を行っていきます。
htpasswdパスワードの生成
htpasswdジェネレーターでhtpasswdをまずは生成します。
- ユーザー名を入力
- パスワード
- 暗号化
の手順でhtpasswdを生成します。
コードが生成されます
.htpasswdファイルを作成
メモ帳などで.htpasswdというファイルを作成して、先ほど生成されたコードを入力します。今回はTeraPadを利用しました。
コピペで入力をして【.htpasswd】という名前で保存をします。
もしも画像のように.htpasswd.txtとテキストの拡張子がついてしまったら、名前を変更で.txtの部分を削除します。
以下のファイル形式が正しいです。この作業はサーバーにファイルをアップロードした後に名前を変更しても構いません。
ファイルマネージャーで.htpasswdをアップロード
wordpressが入っている最上位の階層。.htaccessファイルなどが入っている階層に.htpasswdをアップロードします。これで、ベーシック認証をかけ為のパスワードの準備が整いました。
.htaccessファイルでベーシック認証をかけます
同じ階層にある.htaccessファイルをダウンロードしてPCに保存をしておいてください。
.htaccessファイルはwebサイトを表示させる為の大切なファイルです。間違えた記述をしてしまうとサイトが閲覧できなくなる危険がありますので、必ず編集をしていないファイルをPCに保存しておいてください。
万が一の場合は、修正をしていない.htaccessファイルをアップロードすると元に戻ります。
以下のコードを#BEGIN WordPressよりも前に記述をしてください。#BEGIN WordPressいかに記述をすると、アップデートなどで書き換えられてしまう可能性があります。
<Files wp-login.php>
AuthType Basic
AuthUserFile /*サーバーのパス*/.htpasswd
AuthGroupFile /dev/null
AuthName "Please enter your ID and password"
require valid-user
</Files>
ログインURLアクセス時に認証が追加される
設定をするとどうなるかといいますと、ログイン画面で認証画面が出てきます
さらにユーザー名とパスワードの入力を求められます。一度入力をしてしまえば、ブラウザを閉じるまではベーシック認証でのログインは維持できます。
3.管理画面へのアクセスのログを見る
本当に不正アクセスが行われていないのか?気になりますよね。Site Guardプラグインにはアクセスログ機能も備わっています。
アクセスログを定期的に確認する事で、不正アクセスに気づくことが出来ます。
【Site Guard】>【ログイン履歴】
- アクセス日時
- アクセス結果
- ログイン名
- IPアドレス
- ログイン画面のタイプ
を確認する事が出来ます。ここで、万が一いつもと違うIPアドレスが記載されていたり、結果に覚えのない失敗が多数あった場合は、ログインパスワードを変更してください。
この説明以降のwordpressセキュリティ対策は少し難しくなります。個人レッスンで一緒に作業をする事も出来ますので、設定をしたいけれど一人では不安・出来ないという方はお気軽にお問い合わせください。
ファイルのパーミッションを変更する
ファイルにはパーミッションと呼ばれる制限機能があります。
- 読み取り権限
- 書き込み権限
- 実行権限
この3つの組み合わせが3桁の数字で決まっています。
- 自分ー管理者
- グループーサーバーを利用できるユーザー全体
- 他人ー第三者
というように、3桁の詳細は左から自分の権限、グループの権限、他人の権限を表します。表し方ですが
- 7ー書き込み・読み込み・実行可能
- 6ー読み込み・書き込み可能
- 5ー読み込み・実行可能
- 4ー読み込み可能
- 0ー全て付加
主に使われるパーミッションは
- 777ー誰でも読み込み・書き込み・実行可能
- 755ー誰でも読み込みと書き込みは出来るが、実行できるのは自分だけ
- 666ー誰でも読み書きだけが可能
- 644ー管理者は読み可能だけど、グループと他の人は読み取りだけ可能
少し難しいので、理解しにくいかもしれません。
パーミッションの変更方法
FFTPの利用に慣れている方はそちらから変更も可能です。今回はxserverの管理パネルからの変更方法をご紹介します。
xserverのアカウントパネルへログインします。【ファイル管理】をクリックします。
サーバー管理パネルとは別ですのでご注意ください
サーバー上のファイル一覧が見れますので、設定をする【ドメイン】をクリックして進んでください。ドメインをクリックした後は【public_html】をクリックします。
.htaccessファイルは606
.htaccessファイルは常時SSL化などで操作をした事がある方もいらっしゃると思います。サーバーを操作する大切ないファイルです。こちらに勝手に書き込みを行うと攻撃できてしまうんです。管理者と他人は読み込みと書き込みが出来るけれど、グループは全ての権限を与えないという設定になります。
まずは.htaccessファイルのパーミッション変更方法を例にご説明をしますね。
デフォルトでは644
【public_html】の直下、またはwordpressをインストールしたフォルダの直下に【.htaccess】ファイルがあります。
デフォルトでは644となっており、本人は読み書き可能だけど、クループと他人は読み込みだけ可能。この設定に対して、グループには権限をなしにする0を設定し604と変えます。
.htaccessファイルにチェックを入れます
以下、ファイルのパーミッション変更方法は共通となります。別のファイルのパーミッションを変更する場合、変更したいファイルやディレクトリにチェックを入れてください。
パーミッション変更をクリック
設定をするパーミッションを入力
新しく設定をするパーミッションを入力して【パーミッション変更】をクリックすれば変更完了です。
wp-config.phpファイルは400
wp-config.phpファイルにはデータベースのログイン情報などの記載があります。こちらもwordpressを運用するためにはとても大切なファイルとなっています。
wordpressが入っているファイル直下、wp-admin/wp-content/wp-include フォルダがある階層と同じ場所にあります。
400になっていない場合は変更をします。管理者だけが読み込み可能でその他は全て付加にします。
その他のディレクトリ(フォルダ)は705
その他、ディレクトリと呼ばれるファイルマネージャーで見られるフォルダには705を設定します。管理者はすべての権限を与えますが、グループはすべて不可。他人は読み込みと実行だけ許可という705設定になります。
【themes】と【uploads】は707にします。
その他のファイルは604
ディレクトリの中にある各ファイルは604設定に変えます。管理者に読み書きだけの権限を付加し、グループは全て不可。他人は読み込みだけ許可という604設定になります。
4. .htaccessファイルでセキュリティを強化
.htaccessファイルはサーバー上のファイルやページを制御するファイルになります。
wordpressをインストールした初期の状態では以下のような記述になっています。
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteRule ^index\.rdf$ /feed/rdf/ [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
実は、.htaccessファイルはとても繊細なファイルです。
- 1文字間違えて消してしまう
- 全角で記述をしてしまう
このような事でサイトが表示されなくなる事があります。必ず.htaccessファイルを修正する前にはファイルをPCへダウンロードして、万が一の時にはアップロードをして元に戻せる状態にしてから作業をしてください。
ファイル一覧が表示されるのを拒否する
例えばディレクトリにアクセスした際にファイル一覧が表示される場合があります。どんなファイルが存在するのかwebサイト上から確認できてしまいます。.htaccessファイルに以下を追記します。
Options -Indexes
1行加えるだけです。
wordpressの場合、一覧が出力されない場合が多いです。こちらの設定は必要ない事もあります。
wp-config.phpとwp-cron.php にアクセス制限をかける
データベースのログイン情報などが記載されていて、攻撃されやすいwp-config.phpファイルです。それに加え、投稿やアップデート通知などの時刻と連動する処理に使われるwp-cron.phpにアクセス制限を加えます。wp-confing.phpファイルはパーミッションを変更しましたが、さらにアクセス制限もかけていきます。.htaccessファイルに以下を追記します。
<FilesMatch "^(wp-config\.php|wp-cron\.php)">
order allow,deny
deny from all
</FilesMatch>
5.wordpressの各種バージョンを隠す
wordpressのバージョンが誰でも確認が出来てしまいます。また、ソースコードを見ると、wordpressを利用しているサイトなのか、また何のプラグインを利用して、何のテーマを利用しているのかという事もわかってしまいます。
この情報が外部へ漏れると、使用しているwordpressやプラグイン、テーマのバージョンで古いものを利用してる事がわかってしまうと、その脆弱性を利用して攻撃をしてくることがあります。
利用しているテーマのfunction.phpに追記をします。
function.phpへ移動
wordpressがインストールされているファイル直下の
【wp-config】>【themes】の中にインストール済テーマファイルが入っています。
有効化しているテーマファイルへ入り【function.php】を編集します。
編集する前に【functino.php】をクリックしてPCにファイルをふぁうんロードしてください。
変更方法は、チェックボックスにチェックを入れ、【編集】ボタンをクリックします。
コードを入力
以下のコードをfunction.phpの最下部へ入力します。
// generator
remove_action( 'wp_head', 'wp_generator');
// rel="shortlink"
remove_action( 'wp_head', 'wp_shortlink_wp_head', 10, 0 );
// WLW(Windows Live Writer) wlwmanifest.xml
remove_action( 'wp_head', 'wlwmanifest_link');
// RSD xmlrpc.php?rsd
remove_action( 'wp_head', 'rsd_link');
//JavaScriptやCSSに付加されるWordPressのバージョン番号(?ver=4.4.2など)を削除します。
function remove_src_wp_ver( $dep ) {
$dep->default_version = '';
}
add_action( 'wp_default_scripts', 'remove_src_wp_ver' );
add_action( 'wp_default_styles', 'remove_src_wp_ver' );
少し難しいwordpressのセキュリティ設定もありますのが、会員サイトやネットショップを構築される方は必須の設定項目となります!
サーバー側での操作もあるので、一人ではセキュリティ設定が難しい!という方はお気軽にお問い合わせください!オンライン個人レッスンも可能です!
SiteGuardプラグインの使い方
まずはプラグインでセキュリティを強化したいのであればSiteGuardがおすすめ!おすすめ設定方法の動画解説です!
ホームページのリスキリングはお任せください!
2019年よりWordPressやホームページに関するスキルシェアを行ってきました。事例やノウハウが蓄積され、スピーディーかつ的確にお悩みを解決へと導く事を得意としています。ホームページに関するお悩みがございましたら、LINE公式アカウントよりお気軽にご相談ください!
↑クリックするとLINE公式が開きます
新着記事