Security Blog
Security Blog
Posted By Gregory

WordPressをフォートノックスに変える

WordPressをフォートノックスのような保護された要塞に変える方法


English version: Turn your WordPress into Fort Knox


この記事は、WordPressを利用した防弾保護されたWebサイトを取得したいことを前提としています。以下のすべてのステップを、説明されているとおりに、単語ごとに、ポイントごとに実行する必要はありません。ただし、独自のフォートノックスを作成する場合はお勧めします。

次の手順のいくつかは、WordPressフォルダー内のファイルを直接変更しようとするいくつかの奇妙なプラグインとの非互換性の問題の原因である可能性があります。そのようなプラグインは無視することをお勧めします。ハッカーがサイトにインストールされているプラグインやテーマの穴を調べたときに、それらを使用すると、すぐにまたは将来、多くの問題やセキュリティの問題が発生する可能性があるためです。この記事が役立つことを願って作成しましたが、保証はありません。

注:共有ホスティングを使用している場合、この記事は適用されません。少なくとも、VPSでホストされているサイトが必要です。

要件:WebサイトがホストされているLinuxサーバーへのルートアクセス。 root権限でシェルにアクセスできない場合、実際に保護されたWebサイトを作成するのに役立つことは何もできません。 WordPressとそのディレクトリ内のファイルをPROレベルで保護できる方法やプラグインはありません。すべてのセキュリティプラグインには、ハッカーやボットと同じレベルの特権(権限)があります。例外なし。一部のセキュリティプラグインがWebサイトのファイルに変更を加えて保護した場合、ハッカーや悪意のあるコードがそれらの変更を元に戻したり、保護を解除したりする可能性があります。

これが私のアプローチに関するいくつかの重要なポイントです

  • すべてのコードファイル(PHPコード)とすべての.htaccessファイルは書き込み保護されている必要があります。例外なし
  • すべてのデフォルト(フォルダー、Cookie、ログインパス、その他のランドマーク)を別の値に変更する必要があります
  • WordPressフォルダー内のPHPまたは.htaccessファイルを操作および変更しようとするプラグインまたはテーマを使用してはなりません。

第一歩。 WordPressのインストール

データベーステーブルにwp_プレフィックスを使用しないでください。代わりに、2つまたは3つのアルファベット記号を使用してください。一部のWordPress固有の攻撃や攻撃者は、テーブルプレフィックスがwp_あると想定しています。プレフィックスを変更すると、SQLインジェクション攻撃をブロックするのに役立ちます。

ステップ2。 WordPressレベルでウェブサイトを強化する

  1. アップロードフォルダーを/ wp-content /フォルダー内からWordPressインストールフォルダーのルートまで1レベル上に移動します。
  2. アップロードフォルダの名前をメディア(またはそのようなもの、好きなもの)に変更します。
  3. wp-contentフォルダーの名前をcontent (またはそのようなもの)に変更します。
  4. プラグインフォルダの名前をmod (またはそのようなもの、好きなもの)に変更します。
  5. wp-config.phpファイルの先頭に次の行を追加します。メディアコンテンツmodを以前に選択した実際の値に変更することを忘れないでください。
     define( 'AUTOMATIC_UPDATER_DISABLED'、true); //はい、手動で行うのは安全です
    define( 'DISALLOW_FILE_EDIT'、true); //誰もあなたのファイルに触れることを決して許しません
    define( 'DISALLOW_FILE_MODS'、true); //はい、手動で行うのは安全です
    define( 'FS_METHOD'、 'direct'); //もちろんFTPはありません
    define( 'WP_HTTP_BLOCK_EXTERNAL'、true);
    define( 'UPLOADS'、 'メディア'); //アップロードの名前を変更し、レベルを上げました
    define( 'WP_CONTENT_DIR'、 '/ path / to / wordpress / dir / content '); //ホスト名、末尾のスラッシュなし
    define( 'WP_CONTENT_URL'、 'http://example.com/ content ');
    define( 'WP_PLUGIN_DIR'、 '/ path / to / wordpress / dir / content / mod '); //ホスト名、末尾のスラッシュなし
    define( 'WP_PLUGIN_URL'、 'http://example.com/ content / mod ');
    ini_set( 'display_errors'、0); //フロントエンドでのPHPエラーの表示をオフにします

ステップ3。デフォルトのCookie名を変更します。

これらの行をwp-config.phpファイルの先頭に追加します

define( 'USER_COOKIE'、 'my_user_cookie'); //別のものに変更します
define( 'PASS_COOKIE'、 'my_pass_cookie'); //別のものに変更します
define( 'AUTH_COOKIE'、 'my_auth_cookie'); //別のものに変更します
define( 'SECURE_AUTH_COOKIE'、 'my_sec_cookie'); //別のものに変更します
define( 'LOGGED_IN_COOKIE'、 'my_logged_cookie'); //別のものに変更します
define( 'TEST_COOKIE'、 'my_test_cookie'); //別のものに変更します

ステップ4。 WordPressがインストールされた直後にセキュリティプラグインをインストールします

WP CerberSecurityでログインページを保護します。上記の保護手順を使用しても、ハッカーはブルートフォース攻撃(ログイン試行)を適用して、WordPressWebサイトのドアを破ろうとします。 WPCerberでこのドアを隠したり閉じたりします。

ステップ5。サーバーレベルでWebサイトを強化します。

このステップでは、Apacheをhttpサーバーとして使用しているサーバーを使用していると想定しています。プラグインやテーマを含むすべてのWordPressファイルの所有者を変更する必要があります。デフォルトでは、このユーザーはApacheです。以前にこの目的のために作成した別のユーザーに変更する必要があります。このユーザーがcerberだとしましょう。

  1. .htaccessファイルを次のディレクティブを含むメディアフォルダー(新しいアップロードフォルダー)に配置します。これにより、Webサイトがアップロードされた悪意のあるPHPコードを実行するのを防ぎます。
     php_flagエンジンオフ

    注:このディレクティブを機能させるには、Apache構成ファイルにuploadsフォルダーまたはその親フォルダーのAllowOverride Options

  2. Webサイトディレクトリ全体(/ path / to / wordpress / dir)で、すべてのファイルの所有者とアクセス許可を変更します。これを行うには、シェルで次のコマンドを実行します。
     / path / to / wordpress / dir -exec chown cerber:root {} +を検索します
    / path / to / wordpress / dir -type d -exec chmod 755 {} +を検索します
    / path / to / wordpress / dir -type f -exec chmod 644 {} +を検索します

  3. アップロードディレクトリ(/ path / to / wordpress / dir / media )には、特別な権限を設定する必要があります。シェルでexecコマンドを使用してそれを実行しましょう
    / path / to / wordpress / dir / media -exec chown cerber:apache {} +を検索します
    / path / to / wordpress / dir / media -type d -exec chmod 775 {} +を検索します
    / path / to / wordpress / dir / media -type f -exec chmod 664 {} +を検索します

  4. WordPress設定でパーマリンク構造を設定してから、 .htaccessファイルの書き込み許可を変更して保護します。
     chown cerber:root /path/to/wordpress/dir/.htaccess
    chmod 644 /path/to/wordpress/dir/.htaccess

  5. wp-config.phpファイルをWordPressインストールディレクトリの上のディレクトリに移動します。

ステップ6。 NGINXサーバーレベルでウェブサイトを強化する

ここを読む: WPCerberとNGINXでWordPressを強化する

ステップ7。 Fail2Banでウェブサイトを強化する

ここを読む: Fail2BanでWordPressを保護する方法


I'm a team lead in Cerber Tech. I'm a software & database architect, WordPress - PHP - SQL - JavaScript developer. I started coding in 1993 on IBM System/370 (yeah, that was amazing days) and today software engineering at Cerber Tech is how I make my living. I've taught to have high standards for myself as well as using them in developing software solutions.

View Comments
There are currently no comments.

Leave a Reply to Anonymous
Cancel Reply