メインコンテンツにスキップ
ブログセキュリティWordPressを安全にする方法。アドバンスステップ

WordPressを安全にする方法。高度なステップ

WordPressの高度なセキュリティ

WordPress のセキュリティは、開発チームによって非常に重要と捉えられています。セキュリティパッチやアップグレードは頻繁にリリースされ、WordPress がますます厳しくなるオンライン環境に対応していくために役に立っています。これらの取り組みの一環として、WordPress は脆弱性に対する責任ある開示プログラムを実施しており、これらの問題が解決されないまま放置されることはありません。

WordPress 開発チームの努力とは別に、個々のユーザーはセキュリティリスクを最小限に抑えるための対策を講じる必要があります。いくつかの手っ取り早い方法で、WordPress ウェブサイトのセキュリティを確保することができますが、最近の記事 "WordPress を安全に保つ方法:基本編" では、これらの簡単に実装できる手順を取り上げました。

基本的なステップの他にも、WordPressウェブサイトのセキュリティをさらに強化するために採用できる、より高度なセキュリティテクニックや、WordPressウェブサイトを管理する際の重要なセキュリティ上の注意点などがあります。

実際に幾つかを見てみましょう。

SFTP - サーバーへの接続

まず、ウェブサーバーに接続する際には、FTPに似ているもののパスワードやその他のデータが暗号化されているSFTPを使用して接続することが重要です。FileZilla はSFTPを含むいくつかのファイル転送プロトコルをサポートする優れたファイル転送アプリケーションです。ここでは、FileZilla を使用してLinode ファイルをインストールして転送する方法を見つけることができます。

ブルートフォースアタック対策

ブルートフォース攻撃は、攻撃者がウェブサイトへのアクセスを試みるために、異なるユーザー名とパスワードを繰り返し計画的に送信してくることで発生します。ブルートフォース攻撃はWordPressに限ったものではないことに注意が必要です。すべてのウェブアプリが影響を受ける可能性があります。

この種の攻撃に対する最初の防御策はパスワードの安全性を確保することです。ブルートフォース攻撃の究極の目的は、あなたのウェブサイトに侵入することです。クラックされにくいパスワードの選択については、前回の記事 "WordPress の安全性" で説明しましたので、ここでは詳しくは触れません。一言で言えば、あなたのパスワードが良いものであることを確認してください。また WordPress のインスタンス内で 2 段階認証を有効にすることも価値があります。

次に、プラグインを使って、サイトへの連続したログイン試行回数を制限します。人気のプラグインはLimit Login Attempts Reloadedで、100万以上のダウンロードがあります。このプラグインは、通常のログインだけでなく、XMLRPC、WooCommerce、カスタムログインページなどで可能なログイン試行回数を制限します。

もうひとつの方法は、wp-admin のログイン場所を変更することです。デフォルトでは、すべてのWordPressウェブサイトのログインページは、/wp-admin(例:www.examplesite.com/wp-admin)に配置されています。ブルートフォース攻撃を行うボットは、しばしばすぐにこのページをターゲットにします。WPS Hide Loginをご利用ください。

新しいプラグインやテストされていないプラグインをインストールする前に、あなたのサイトのバックアップを取ることも有益です。人気のあるプラグインのほとんどはあなたのウェブサイトに害を与えることはありませんが、常に非互換性の問題を起こす可能性があります。バックアップは、誤ったプラグインによって行われたいかなる損傷も迅速かつ容易に元に戻すことができることで安心を与えます。

WordPress管理者のHTTP認証

基本的なHTTP認証を追加することで、さらにWP Adminをロックダウンすることができます。このプロセスにより、ユーザーはWPログインページに到達する前にユーザー名とパスワードを入力する必要があり、これはブルートフォースボットの追跡を阻止するのに役立ちます。

これを行うには、.htpasswd ファイルを作成する必要があります。これを行うには、Hosting Canadaのすばらしい無料リソースを使用してみてください。パスワードと一緒に使用したいユーザー名を入力し、ドロップダウンボックスから暗号化方法を選択し、'パスワードの生成'をクリックします。長いテキスト文字列が生成されますので、これをコピーして新しいテキストファイルに貼り付けます。このファイルを '.htpasswd' として保存するだけです。 

次に、サーバーにログインして、WordPressのwp-adminフォルダを開きます。wp-adminで"htpasswd"という名前の新しいフォルダを作成します。そして、先ほど作成した.htpasswdファイルをこのフォルダにアップロードします。ファイルは「ASCII」モードのみを使用し、「BINARY」モードではなく、「ASCII」モードで転送しなければなりません。 

最後に、以下のようなファイルを作成します。

AuthName "Admins Only"
AuthUserFile /home/public_html/wp-admin/htpasswd/.htpasswd
AuthType basic
Require user yourusername

<Files admin-ajax.php>
    Order allow,deny
    Allow from all
    Satisfy any
</Files>

AuthUserFileの場所には、.htpasswdファイルの完全なディレクトリURLを、また、usernameには.htpasswdファイルで使用したユーザー名を更新する必要があります。このファイルを.htaccessとして保存し、サーバーのwp-adminフォルダにアップロードすれば完了です。次回、www.examplesite.com/wp-admin、サイトにログインすると、WordPress管理画面のログイン画面が表示される前に、ユーザー名とパスワードの入力が求められます。

役に立つヒント:.htpasswdファイルの完全なディレクトリURLを知らない場合、簡単なPHPスクリプトを使用するトリックがあります。

<?php
    echo "Absolute path: ", getcwd();
?>

testpath.php と呼ばれるこのスクリプトを含むファイルを作成し、これを htpasswd フォルダにアップロードしてから、.passwd ファイルへの完全なファイルパスを取得するためにこの url (例: www.example.com/wp-admin/htpasswd/testpath.php) にアクセスします。

 wp-include の防御

WordPress のインストールには、アクセスを意図していない特定のスクリプトが含まれています。しかし、これらのスクリプトはハッカーがあなたのサイトに侵入するルートを提供している可能性があります。このため、それらをロックする価値があるかもしれません。.htaccess ファイルの mod_rewrite でこれらのファイルへのアクセスをブロックすることができます。これを行うには、以下のコードを .htaccess ファイル (通常は WordPress サイトのドキュメントルートにあります) に # BEGIN WordPress と # END WordPress タグの外側に追加してください。

# Block the include-only files.
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^wp-admin/includes/ - [F,L]
    RewriteRule !^wp-includes/ - [S=3]
    RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
    RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
    RewriteRule ^wp-includes/theme-compat/ - [F,L]
</IfModule>
 
# BEGIN WordPress

ファイル編集を無効にする

WordPress ウェブサイトのセキュリティを確保するための多くの側面は、潜在的なハッカーの仕事を困難にすることを目的にしています。空き巣がアラームや防犯灯のない通りにある家を探すのと同じように、ハッカーは、比喩的な"窓"や"ドア"がしっかりとボルトで固定されているウェブサイトよりも、基本的なセキュリティ機能が欠如しているウェブサイトを標的にしたがるのです。

WordPressはデフォルトでは、管理者がダッシュボード内からテーマやプラグインなどのPHPファイルを編集できるようになっています。この機能はコードの実行を可能にするため、ハッカーにとっては明らかに標的になります。ほとんどのウェブ開発者にとって、コードの変更はダッシュボード内からではなく、Sublime のようなテキストエディタを使って行われます。この特定の WordPress ウィンドウを「ボルトで固定」することは理にかなっており、そうすることでハッカーがアクセスする可能性のあるポイントをひとつ取り除くことができます。

これを行うには、wp-config.phpファイルに以下の行を配置します。この行は、すべてのユーザーの 'edit_themes'、'edit_plugins'、'edit_files' の機能を削除します。

define(‘DISALLOW_FILE_EDIT’, true);

これはハッカーがあなたのサイトに悪意のあるファイルをアップロードするのを防ぐことはできませんが、いくつかの攻撃を阻止するのに役立ちます。

ファイアウォールを使用する

ファイアウォールは、攻撃者があなたのWordPressウェブサイトに到達するのを防ぐための優れた方法です。いくつかのオプションがあります。

ファイアウォールプラグイン

いくつかの優れたファイアウォールプラグインは、WordPress が処理する前に Apache サーバーレベルでアクセスを制限することで機能します。良い例としては、All In One WP Security & Firewall WordFence があります。どちらも悪意のあるトラフィックが WordPress にヒットしないように、受信するリクエストをフィルタリングします。

中間ファイアウォール

WordFence のようなプラグインは、サーバーレベルでトラフィックをフィルタリングします。別のアプローチとしては、サーバーに向かう途中のトラフィックをいったん介入してからスクリーニングを行い、Cloudflare のような製品を使用してサーバーにリクエストを送信する方法があります。この方法は、DNS レコードを変更するだけでサーバーに変更を加える必要がなく、仲介者を介してトラフィックを送信することができるため、人気があります。 

次のステップ 

WordPress のセキュリティは依然として人気のあるトピックです。もしこれらすべてが大変な作業のように思えるのであれば、PressidiumのようなマネージドWordPressホストを利用することを検討してみてください。最後に、定期的にウェブサイトのバックアップを取ることで、いつでもサイトを復元できるので、夜も安心して眠ることができます。


コメント (2)

  1. Author Photo
    Atul Kumar Pandey

    Excellent tips. Strong password and using limit login attempts are the quick fix for any WP blog. Being in the same industry I would like to add one more tip – use only trusted and highly rated themes and plugins.

  2. Author Photo

    A good password is great. Also, hiding or changing the wp-admin slug is really helps.

コメントを残す

あなたのメールアドレスは公開されません。必須項目には*印がついています。