WordPress をフォートノックスに変える
WordPress をフォートノックスのような保護された要塞に変える方法
English version: Turn your WordPress into Fort Knox
この記事では、WordPress を利用した防弾で保護された Web サイトを取得したいと想定しています。以下のすべての手順を、必ずしも説明どおりに一字一句正確に実行する必要はありません。ただし、独自のフォートノックスを作成したい場合は、それをお勧めします。
次の手順の一部は、WordPress フォルダー内のファイルを直接変更しようとする奇妙なプラグインとの非互換性の問題の原因となる可能性があります。そのような種類のプラグインは無視することをお勧めします。ハッカーがサイトにインストールされているプラグインやテーマの穴を調査したときに、それらを使用すると、すぐにまたは将来、多くの問題やセキュリティ上の問題が発生する可能性があるためです。この記事は役に立つことを願って作成しましたが、保証はありません。
注: この記事は、共有ホスティングを使用している場合には適用されません。少なくとも VPS でホストされるサイトが必要です。
要件: Web サイトがホストされている Linux サーバーへの root アクセス。 root 権限を持つシェル アクセス権がない場合、実際に保護された Web サイトを作成するために役立つことは何もできません。 WordPress とそのディレクトリ内のファイルを PRO レベルで保護できる方法やプラグインはありません。すべてのセキュリティ プラグインには、ハッカーやボットが持つのと同じレベルの権限 (アクセス許可) があります。例外なし。セキュリティ プラグインが Web サイトのファイルを保護するために変更を加えた場合、ハッカーや悪意のあるコードによってそれらの変更が元に戻されたり、保護が削除されたりする可能性があります。
私のアプローチに関する重要なポイントをいくつか紹介します
- すべてのコード ファイル (PHP コード) とすべての .htaccess ファイルは書き込み保護する必要があります。例外なし
- すべてのデフォルト (フォルダー、Cookie、ログイン パス、その他のランドマーク) を別の値に変更する必要があります。
- WordPress フォルダー内の PHP または .htaccess ファイルで動作するプラグインやテーマを使用したり、変更しようとしたりしてはなりません
第一歩。 WordPress のインストール
データベーステーブルにはデフォルトのwp_
接頭辞を使用しないでください。代わりに、2 つまたは 3 つのアルファベット記号を使用してください。一部の WordPress 固有の攻撃や攻撃者は、テーブルのプレフィックスがwp_
であると想定します。プレフィックスを変更すると、一部の SQL インジェクション攻撃をブロックできます。
ステップ2。 WordPress レベルで Web サイトを強化する
- アップロードフォルダーを 1 つ上のレベル、/wp-content/ フォルダー内から WordPress インストール フォルダーのルートに移動します。
- アップロードフォルダーの名前をメディア(またはそのような名前、任意の名前) に変更します。
- wp-contentフォルダーの名前をcontent (またはそのような名前、任意の名前) に変更します。
- pluginsフォルダーの名前をmod (またはそのような名前、お好みの名前) に変更します。
- wp-config.phpファイルの先頭に次の行を追加します。media 、 content 、 mod を以前に選択した実際の値に変更することを忘れないでください。
定義('AUTOMATIC_UPDATER_DISABLED', true ); // はい、手動で行っても安全です
定義('DISALLOW_FILE_EDIT', true ); // 誰もあなたのファイルに触れることを決して許可しません
定義('DISALLOW_FILE_MODS', true ); // はい、手動で行っても安全です
定義('FS_METHOD', 'ダイレクト'); // もちろんFTPはありません
定義('WP_HTTP_BLOCK_EXTERNAL', true );
定義('アップロード', 'メディア' ); // アップロードの名前を変更し、上のレベルに移動しました
define('WP_CONTENT_DIR', '/path/to/wordpress/dir/ content '); // ホスト名なし、末尾のスラッシュなし
定義('WP_CONTENT_URL', 'http://example.com/コンテンツ');
定義('WP_PLUGIN_DIR', '/path/to/wordpress/dir/ content / mod '); // ホスト名なし、末尾のスラッシュなし
define( ' WP_PLUGIN_URL', ' http://example.com/content/mod ');
ini_set('表示エラー',0); // フロントエンドでの PHP エラーの表示をオフにする
ステップ 3。デフォルトの Cookie 名を変更します。
これらの行をwp-config.phpファイルの先頭に追加します。
定義('USER_COOKIE', 'my_user_cookie' ); // 別のものに変更します
定義('PASS_COOKIE', 'my_pass_cookie' ); // 別のものに変更します
定義('AUTH_COOKIE', 'my_auth_cookie' ); // 別のものに変更します
定義('SECURE_AUTH_COOKIE', 'my_sec_cookie' ); // 別のものに変更します
定義('LOGGED_IN_COOKIE', 'my_logged_cookie' ); // 別のものに変更します
定義('TEST_COOKIE', 'my_test_cookie' ); // 別のものに変更します
ステップ4。 WordPress をインストールしたらすぐにセキュリティ プラグインをインストールします。
WP Cerber Securityを使用してログイン ページを保護します。上記の保護手順を行ったとしても、ハッカーはブルート フォース攻撃 (ログイン試行) を適用して WordPress Web サイトのドアを突破しようとします。 WP Cerber を使用してこのドアを隠して閉じます。
ステップ5。 Webサイトをサーバーレベルで強化します。
このステップでは、Apache を http サーバーとして使用していることを前提としています。プラグインやテーマを含むすべての WordPress ファイルの所有者を変更する必要があります。デフォルトでは、このユーザーはapacheです。以前にこの目的で作成した別のユーザーに変更する必要があります。このユーザーがcerberであるとしましょう。
- 次のディレクティブを含む .htaccess ファイルをメディアフォルダー (新しいアップロード フォルダー) に置きます。これにより、アップロードされた悪意のある PHP コードが Web サイトで実行されるのを防ぎます。
php_flagエンジンがオフ
注: このディレクティブを機能させるには、Apache 構成ファイルに、アップロード フォルダーまたはその親フォルダーのいずれかの
AllowOverride Options
ディレクティブが含まれている必要があります。 - Web サイトのディレクトリ全体 (/path/to/wordpress/dir) について、すべてのファイルの所有者とアクセス許可を変更します。これを行うには、シェルで次のコマンドを実行します。
find /path/to/wordpress/dir -exec chown cerber:root {} +
find /path/to/wordpress/dir -type d -exec chmod 755 {} +
find /path/to/wordpress/dir -type f -exec chmod 644 {} + - アップロード ディレクトリ (/path/to/wordpress/dir/ media ) には、特別な権限を設定する必要があります。シェルで exec コマンドを使用して実行しましょう
find /path/to/wordpress/dir/ media -exec chown cerber:apache {} +
find /path/to/wordpress/dir/ media -type d -exec chmod 775 {} +
find /path/to/wordpress/dir/ media -type f -exec chmod 664 {} + - WordPress 設定でパーマリンク構造を設定し、 .htaccessファイルのアクセス許可を変更して書き込み保護します。
chown cerber:root /path/to/wordpress/dir/.htaccess
chmod 644 /パス/to/wordpress/dir/.htaccess - wp-config.phpファイルを WordPress インストール ディレクトリの上のディレクトリに移動します。
ステップ6。 NGINX サーバー レベルで Web サイトを強化する
こちらをお読みください: WP Cerber と NGINX による WordPress の強化
ステップ7。 Fail2Ban による Web サイトの強化
こちらをお読みください: Fail2Ban で WordPress を保護する方法