2018.08.22なぜセキュリティ対策が必要なのか→自分のサイトを守るため&他人に迷惑をかけないためオープンソース(無料)のCMSであるWordpressは、日本だけでなく世界中で使われていて、その普及率はCMSの中では断とつトップです。≫ワードプレスの普及率(日本・世界)しかも、テーマやプラグインを開発してインターネットで提供できますし、そのドキュメントや使い方なども色々な人たちが情報を発信しているので、Wordpress自体の普及率以上に、インターネット上に広まっていると言えます。重要なのは、広く使われているということはそれだけ不正アクセスのターゲットになりやすい、ということなんですね。インターネットは世界中の誰でもアクセスできる空間なので、つまり、ネットで公開しているWordpressサイトは海外のハッカーからもアタックを受ける可能性が高いんです。「不正アクセスを受けたって別にいいよ。自分のサイトには個人情報やクレジットカード情報のような大事な情報はないし。」と思った方、その考えはちょっと危険です。「不正アクセスを受ける」と聞くと、「自分が被害を受けるだけ」という印象が強いかもしれないのですが、実はインターネットの怖いところは、「被害者」であると同時に「加害者」になってしまう可能性が非常に高い、ということなんです。いうことかというと、自分のブログやサイトが不正アクセスを受けて不正なプログラムやウィルスを仕込まれてしまうと、その不正プログラム・ウィルスを実行している自分のブログサイトが、他のサイトや訪問者のパソコンを攻撃してしまう、という状況になります。いった状況を防ぐためにも、ぜひ、セキュリティ対策を行ないましょう。このページでは、レンタルサーバーでWordpressサイトを運営している方なら誰でもできるセキュリティ対策を紹介しています。作業自体はシンプルなものが多いのですが、一度に全てやろうとすると大変なので、是非、少しずつでも実施してみてください。サーバーのエラーメッセージを非表示にするWordPressアップデートは必ず行なうWordPress本体、テーマ、プラグイン、翻訳でアップデートが発生しています。アップデートの内容自体は、セキュリティ対策だけでなく、バグ修正、機能追加などもありますが、どれも常に最新の状態にするようにしましょう。≫Wordpressの手動アップデートの方法はこちらアップデートを全て自動更新にする方法WordPressの初期設定では、自動更新になっているのは「Wordpressコアファイル(マイナーアップデート)」「翻訳ファイル」のみです。WordPressコアファイル(メジャーアップデート)、プラグイン、テーマは手動更新しないといけませんが、これらを全て自動更新にすることもできます。≫Wordpressアップデートを自動更新にする方法はこちらテーマやプラグインは公式のものを使う公式のテーマやプラグインは厳密に審査を受けており、クリアーしたものだけが公式として利用できるようになります。その審査項目の中にセキュリティ関するチェックもありますので、セキュリティホールが少ない、悪意あるコードが無い、という保証になります。以前、公式プラグインの中で、セキュリティに関する改善事項が対処されなかったため、公式プラグインから削除されたという事例もありました。一度審査を通った後も、何らかのチェックが継続して行なわれている、ということです。いったことからも公式テーマ・プラグインを利用することは安心材料と言えます。ユーザー名「admin」は削除する「admin」「administrator」「root」といった名前のユーザー名は絶対に利用しないでください。これらのユーザー名はシステム管理者を表すため、不正ログインの絶好のターゲットになってしまいます。これらのユーザー名がある場合は、別の名前の管理者権限ユーザーを作成した後、必ず削除しましょう。【管理者権限ユーザーの新規作成手順】ユーザー>新規追加をクリックします。ユーザー名、メールアドレスを入力し、ユーザーグループを管理者にして、「新規ユーザーを追加」をクリックします。【不要な管理者ユーザーの削除手順】この新しい管理者アカウントでログインしなおして、ユーザー名「admin」を削除します。パスワードは複雑な文字列にするブルートフォースアタックでは、よく使われそうな文字列をパスワードとして不正ログインを大量に試みます。そのため、推測できそうな意味のある言葉や単純な単語や数字、自分のサイト名やサイトURLと同じ文字列を使ったパスワードは危険です。WordPressではユーザー作成時に難解なパスワードを自動生成してくれるので、それを使うか、複雑なパスワードを作成して使いましょう。【パスワードの変更手順】ユーザー一覧を表示して、パスワードを変更するユーザー名の「編集」をクリックします。「パスワードを生成する」をクリックします。パスワードをメモする、もしくは複雑なパスワードを入力して、「ユーザーを更新」をクリックします。表示名の変更WordPressの初期状態では、サイトに表示される投稿者名が「ユーザー名」となっています。ログインIDとパスワードのうち、ログインIDを公開してしまっている状態、になっています。これはちょっと危険な状況なので、サイトの表示される「表示名」を変更しておきます。≫Wordpressの表示名を変更する方法はこちら投稿者アーカイブの非表示化WordPressには「投稿者アーカイブページ」というものがあります。これは、投稿者毎にそのユーザーが投稿した記事の一覧を表示するページなのですが、Wordpressの初期状態ではそのURLに「ユーザー名」が使われています。これも、つまり、ログインIDをインターネット上に晒してしまっている状態、なので、危険です。実際にどうやって投稿者アーカイブページ分かるかというと、試しに、以下のURLをブラウザでアクセスしてみてください。https://サイトURL/?author=1(もしくはhttp://サイトURL/?author=1)もしこれでURLにユーザー名の入ったページになったら、要対策、です。※「author=」の後ろの数字を変えていくと、全ユーザーのユーザー名が分かってしまいます。この対策としては、テーマのfunctions.phpにコードを追記するやり方があります。≫投稿者アーカイブページのURLを非表示にする方法この作業ではFTPを使いますので、使ったことがない場合は、以下の記事を参考にしてFTPツールを設定してみてください。Plugin」を紹介します。このプラグインはいくつかのセキュリティ対策をお手軽に利用することができる、非常に優れたプラグインです。無料ですので、Wordpressセキュリティ対策を検討するなら、使わない手はないプラグインです。以下に、ざっと利用可能な機能を挙げてみます。未ログインのIPアドレスからのアクセスを遮断します。wp-adminフォルダ以下にあるプログラムへのアクセスを遮断できるので、不正アクセス防止になります。ログインページ(wp-login.php)の変更ログインページURLである「wp-login.php」を変更します。通常、不正ログイン攻撃はwp-login.phpに対してアタックするのですが、そのログインURL自体を変えるので、不正ログイン攻撃自体を受けにくくなります。画像認証ログイン時に、ユーザーIDとパスワードの他に、画像認証(画像に表示された文字を入力)が利用できるようになります。画像認証の文字として「英数字」の他に「ひらがな」が使えるので、海外からの不正ログインに効果を発揮します。画像認証の文字は毎回異なります。ログイン失敗時のエラーメッセージの無効化WordPressにログインする時に、ユーザー名、パスワードを入力するのですが、実は、ユーザー名を間違えた時とパスワードを間違えた時で、表示されるエラーメッセージが異なります。ユーザー名が無効です。パスワードが間違っています。画像認証が間違っています。これでは、不正アタックでログインをしようとしている攻撃者に対して「ヒントを出してしまっている」といえます。「エラーメッセージ詳細無効化」機能では、このエラーメッセージを全て同じ内容にできます。ログインロック指定時間に指定回数ログインに失敗すると、指定期間ログイン受付を停止します。ブルートフォースアタックではプログラムで不正ログインしようとするため、機械的な攻撃の防御になります。ログイン通知メール誰かがログインすると、「ログインがありました」メールが管理者に送信されます。不正ログインを気づきやすくするための機能です。正しいログインID、正しいパスワードを入力しても、1回目はログイン失敗する機能です。2回続けて正しい情報でログインしないとログインできない、ということになるので、不正アタックには非常に効果があります。XMLRPCを無効にする方法XML-RPCとは、ざっくりいうと、「ログイン画面以外の方法でWordpressにログインする方法」です。プログラムを使って記事投稿したり、スマホなどのアプリで記事投稿したりする場合に、このXMLRPCを使っている場合があります。普段パソコンから、Wordpressの管理画面にログインして記事投稿などしている場合は、無効にしても問題ないと思いますので、無効にしておきましょう。わからない場合は一旦XMLRPCを無効にしてみて、記事投稿などに不具合が出た場合に、再度有効化してもよいと思います。詳細に書いた記事はこちらです。≫WordpressでXMLRPCを無効化ログイン履歴のログ取得ログイン失敗も含めたログイン履歴が閲覧できます。日時、結果(成功・失敗・ロック・フェールワンス)、ログイン名(入力されたユーザーID)、タイプ(ログインページ・XMLRPC)などを見ることができます。Plugin」はこれらの機能が無料で使えるので、ぜひインストールしておきましょう。Authentication」を使います。設定方法などはこちらをご覧ください。Authentication」の設定方法キーコードを固有の文字列に変更するwp-config.phpには8つのキーコード、salt値が設定されています。デフォルト(wp-config-sample.php)では以下のようの文字列になっています。here');これらをそれぞれ別の文字列に変更しておきます。以下のURLで自動生成してくれるのでそれを使うのがよいです。秘密鍵サービスftpでwp-config.phpをダウンロードし、上記の箇所を書き換えてアップロードします。この作業を実施した直後は、現在ログイン中のユーザーが一旦強制ログアウトされます。wp-config.phpのパーミッション(アクセス権限)を変更するWordPressの色々な設定項目が記述されているwp-config.phpの、アクセス権限を管理者のみに変更します。FTPを使って変更できます。以下の手順はFilezillaを使った例です。FTPでサーバーにログインします。wp-config.phpを選択して右クリックし「ファイルのパーミッション」をクリックします。「400」と入力して、「OK」をクリックします。トップディレクトリにある不要なファイルを削除するWordPressをインストールしたディレクトリにあるファイルのうち、使わなさそうなものは削除しておきます。以下のファイルは削除できます。/license.txt(ライセンス)/readme.html(説明書)/wp-activate.php(ユーザーを追加した際の確認ページ)/wp-comments-post.php(コメント投稿用)/wp-config-sample.php(設定ファイルサンプル)/wp-links-opml.php(リンクのOPMLXML出力用)/wp-mail.php(メール投稿用)/wp-signup.php(ユーザー登録。一人で運営する場合は不要です。)/wp-trackback.php(trackback、ping送信用)wp-adminフォルダにベーシック認証を付けるwp-adminフォルダにベーシック認証を付けるには・wp-adminフォルダに.htaccessを設置する・パスワードファイルを設置するの2つの作業が必要です。htaccessを用意します。ある場合は追記します。valid-user次にパスワードファイルを用意します。パスワードは暗号化する必要がありますので、以下のサイトなどで暗号化しましょう。htpasswdファイル生成(作成)それを.htpasswdというファイル名で保存します。2つのファイルを用意できたら、.htaccessはwp-adminフォルダへアップロードし、.htpasswdは任意の場所にアップロードします。(DocumentRootより上の方がよいです。)wp-content/uploadsフォルダでphp実行を禁止する画像やメディアをアップロードしておくフォルダ「uploads」で、phpプログラムが実行されないように設定しておきます。具体的には、禁止設定を書いた.htaccessというファイルを作って、FTPを使ってuploadsフォルダにアップロードします。Windowsパソコンの場合は、「.htaccess」というファイル名のファイルは作成できませんので、一旦「htaccess.txt」(先頭のドット「.」は無し)というファイルを作ってFTPでサーバーにアップロードして、FTPを使ってファイル名を「.htaccess」に変更します。.htaccessファイルを作ってアップロードする手順パソコンでテキストエディタを開き、以下のコードを記述します。all</Files>ファイル名を「htaccess.txt」として保存します。FTPでサーバーにログインして、wp-content/uploads/フォルダに「htaccess.txt」をアップロードします。「htaccess.txt」を選択して右クリックし、「名前の変更」をクリックします。ファイル名を「.htaccess」と入力して「OK」します。APIとは、Wordpressの記事やデータに、プログラムでアクセス可能にするための機能です。そのため、XMLRPCと同様に、不正アクセスの攻撃対象となりえますので、無効にしておきます。APIアクセスを禁止できます。APIを使っている機能やプラグインもあるので、一律に禁止してしまうとそれらを利用できなくなります。そこで、なるべく影響が出ないような形で設定する方法の紹介です。7」は許可しています。);上記のコードをテーマファイルのfunctions.phpに追記すればOKです。こちらのサイトを参考にさせていただきました。Firewall」の略で、その名のとおり、Webアクセスをチェックするファイヤーウォールです。レンタルサーバーの場合は、レンタルサーバー会社が提供してくれているので、機能が有効になっているかどうか確認しましょう。WordPress利用におすすめの「エックスサーバー」は、以前はWAFがなかったのですが、2018年7月に提供開始されました。それ以前からエックスサーバーを利用している方は、初期設定ではOFFになっているので、ONにしておきましょう。エックスサーバーでWAFを設定する手順サーバーパネルにログインし、右下にある「WAF設定」をクリックします。WAFをONにしたいドメイン欄にある「選択する」をクリックします。各設定項目の「ONにする」をクリックします。「WAFがないからエックスサーバーは避けてたんだ」という方も、今ならもうエックスサーバーおすすめです。≫WAFも使える『エックスサーバー』はこちらサーバーのエラーメッセージを非表示にするphp、MySQLのエラーメッセージにはアタックの足掛かりになるような情報が表示されることがありますので、ブラウザにエラーメッセージを表示させないようにします。レンタルサーバーの場合、サーバー管理画面(エックスサーバーならサーバーパネル)に「php.ini設定」というような項目があります。その中に、以下の項目がありますので、それぞれ「OFF」にしておきます。display_startup_errorsdisplay_errors【WPサポート】WordPressの保守サポート、設定代行をいたします。こちらからお問い合せください。サイトの速度についての相談ページが開きます。シンプルな1カラムのWordpress無料テーマ「Onepress」。