WordPressのセキュリティを高める.htaccessの設定

こんにちは。「クロジカサーバー管理」コンサルティングチームの西原です。

.htaccess」ファイルは、ページやファイルへのアクセスを制御するWebサーバー用の設定ファイルです。WordPressでもパーマリンク設定に使われる重要なファイルで、内容も複雑なコマンドで書かれているので初心者の方には取り扱いが難しく感じられそうです。しかし、特定の内容を書き加えるだけでWordPressのセキュリティを向上できるため、WordPressを立ち上げたら最初に実施したい内容を紹介します。


Webサイトにまつわるセキュリティで最低限注意しておきたい、
最新のサイバー攻撃手法と対応する防御策について要点をまとめた図解解説はこちら

サイバー攻撃の最新手法と防御策とは?〜事例とあわせて解説〜

(無料公開中)ホワイトペーパー
「サイバー攻撃の最新手法と防御策とは?〜事例とあわせて解説〜」


WordPressの.htaccessを編集するうえでの注意

WordPressをインストールした直後の.htaccessは以下のようになっています。


      # 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
    

# BEGIN WordPressから# END WordPressに挟まれた範囲はWordPressのための設定で、WordPressで設定を変更すると書き換えられるため、よく分からないうちは# BEGIN WordPressより上に書き加えるようにします。

.htaccessの保護

.htaccess自体が不正アクセスされては他の設定も無意味になってしまうので.htaccessファイルへのアクセスをすべて拒絶します。


      <Files ~ "^\.(htaccess|htpasswd)$">
        deny from all
      </Files>
    

ディレクトリ表示の禁止

ブラウザでディレクトリにアクセスされた時にファイル一覧が見れる状態は攻撃の手がかりになってしまうため、表示されないようにします。


        Options -Indexes
      

ログイン管理画面(wp-login.php)のアクセス制限

ログイン画面への攻撃を防ぐため、関係者以外はログイン画面にアクセスできないようにします。IP制限かベーシック認証を使うパターンがあります。

IP制限

会社で固定IPを持っている場合はIP制限をします。


        <Files wp-login.php>
          Order deny,allow
          Deny from all
          Allow from 00.00.00.00
        </Files>
      

Allow fromにはIPを記入してください。

ベーシック認証

固定IPを持っていない、また外部関係者がアクセスする場合はベーシック認証をかけます。

まずベーシック認証用に暗号化されたユーザーIDとパスワードを記した「.htpasswd」ファイルが必要です。以下のサイトで簡単に作ることができます。

.htaccessEditor


        <Files wp-login.php>
          AuthName "Please enter your ID and password"
          AuthType Basic
          AuthUserFile /home/www/***/.htpasswd
          Require valid-user
        </Files>
      

AuthUserFileにはアップした.htpasswdのサーバーパスを記入してください。


▼ WEBサイトのセキュリティ対策ならクロジカへ ↓


管理者画面(wp-admin)のアクセス制限

wp-adminディレクトリ以下はログインユーザー以外は不要なため、一切のアクセスを禁止します。wp-adminディレクトリ内に.htaccessを新規作成しアクセス制限をかけます。


          Order deny,allow
          Deny from all
          Allow from 00.00.00.00
        

Allow fromにはIPを記入してください。

攻撃されやすいファイルのアクセス制限

  • wp-config.php:WordPressの動作に必要な設定ファイル
  • wp-cron.php:予約投稿やアップデート通知など時刻連動の処理に使われるファイル

        <FilesMatch "^(wp-config\.php|wp-cron\.php)">
          order allow,deny
          deny from all
        </FilesMatch>
      
  • xmlrpc.php:特定のホストへpinbackを送るファイル

        <IfModule mod_rewrite.c>
          RewriteEngine On
          RewriteBase /
          RewriteRule ^xmlrpc\.php$ "http\:\/\/0\.0\.0\.0\/" [R=301,L]
        </IfModule>
      

xmlrpc.phpへのアクセスは0.0.0.0へリダイレクトして負荷を避けるノウハウが一般化されています。なおxmlrpc.phpは有名プラグイン「Jetpack」で使われているため、もし使っている場合は以下の対応も検討してください。

参照:WordPressのxmlrpc.phpへのブルートフォースを防ぐ

さいごに

.htaccessで制御できるWordPressのセキュリティ対策はおよそ以上となります。定番の形さえ掴んでしまえばあとはほぼコピペで流用できます。本稿が.htaccessの編集にお役立てば幸いです。


WEBサイトのセキュリティ対策ならクロジカへ

2004年よりWEBサイトのサーバー運用を行い、250社以上の構築・運用実績を誇るクロジカが培った、運用保守のノウハウを活かして貴社のWEBサイトを24時間365日セキュアに保ちます。WordPressをせセキュアなクラウド(AWS)環境へ無料で構築・移行することができます。

また、AWSへの移行後は、ログ調査・定期的なアップデート、OSミドルウェア保守、リソース監視、監視一時復旧、セキュリティアップデート情報の早期案内など網羅的にセキュリティ対策を行います。

クラウドサーバーに特化した専門家が、WordPressに最適化したAWS構築を行います。また、別サーバーからWordPress移行作業も代行します。そもそもAWSに構築するメリットがわからないお客様も、お気軽にご相談ください。豊富な実績から様々なメリットをご案内いたします。

初期構築・移行費用を無料でWordPressをセキュアなAWS環境で運用しませんか?

▼ サービスページはコチラから ↓


Webサイトにまつわるセキュリティで最低限注意しておきたい、
最新のサイバー攻撃手法と対応する防御策について要点をまとめた図解解説はこちら

サイバー攻撃の最新手法と防御策とは?〜事例とあわせて解説〜

(無料公開中)ホワイトペーパー
「サイバー攻撃の最新手法と防御策とは?〜事例とあわせて解説〜」


監修者:クロジカサーバー管理編集部

コーポレートサイト向けクラウドサーバーの構築・運用保守を行うサービス「クロジカサーバー管理」を提供。上場企業や大学、地方自治体など、セキュリティ対策を必要とするコーポレートサイトで250社以上の実績があります。当社の運用実績を踏まえたクラウドサーバー運用のノウハウをお届けします。

コーポレートサイトクラウドでセキュアに

コーポレートサイトをクラウドでセキュアに クロジカガイドブック

無料ではじめるサーバー管理
クロジカガイドブック

「クロジカサーバー管理」の詳しい内容がわかる資料をご用意しました。
  • コーポレートサイト構築・運用の課題を解決
  • クロジカサーバー管理の主な機能
  • 導入事例
  • 導入までの流れ

詳しい資料をご覧いただけます

クロジカサーバー管理のサービス内容を記載した資料をダウンロードできます。
クロジカの機能や事例が分かる
資料ダウンロード