WordPressセキュリティ対策
WordPressのセキュリティ設定、ちゃんとしてますか?
SiteGuard WP Pliugun 使ってるサイトが多いイメージですが、、、
実はちゃんと設定されてないサイトが多かったりします。
ログインの時に、日本語表示されるから、日本人に人気が高いのかな?って気がします。
All In One WP Security and Firewall は、設定箇所が多いから、それで敬遠されてるのかな?
と思いながら、自分なりの設定ですが、ぜひこれを参考にチャレンジしてみてください。
もし、設定することで、影響が出て、どの設定が影響しているかわからない時は、
プラグインを無効にして、削除してください。設定が初期化されます。
- バージョン 5.3.8 での設定内容で制作しています。
- バージョンが変わると、項目等が変わる可能性があるので注意して設定してください。
- 使用環境によって、設定することで不具合が起きる可能性があります。
- 事前にバックアップを取り、自己責任で設定してください。

All In One WP Security and Firewall 入手・インストール
こちらのサイトからダウンロードして、インストールしてください。

WP セキュリティ: ダッシュボード の設定
PHP ベースのファイアウォールを設定
「今すぐ設定」ボタンを押す。

WP セキュリティ: 設定 の設定
WP バージョン情報
WP Generator メタ情報の削除 を有効にします


WP セキュリティ:ユーザーセキュリティ の設定
User accounts の確認
ユーザー名に”admin”を使用しているものがあれば、削除して作り直しましょう。

ログイン ロックアウトの設定
ログインロックダウン機能を有効にします

メールで通知を有効にします
最大ログイン試行回数の失敗により、誰かがロックアウトされた場合にメールを受信したい場合は、これを有効にします。

WP セキュリティ: Additional setting の設定
アプリケーションパスワードを無効化 を有効にします
アプリケーションのパスワードを無効化 を有効にして、「Save settings」を押します。

WP セキュリティ: データベースセキュリティ(Database security) の設定
データベース接頭辞を変更
テーブルプレフィックスにランダムな6文字の文字列をプラグインに生成させたい場合は、これを有効にします。
あるいは
アルファベットや数字、アンダースコアを含む文字列を指定して、独自のデータベースプレフィックスを選択します。
データベースのテーブル接頭語を新しく生成 を有効にして、「データベース接頭辞を変更」を押すと、ランダムに変更されます。
任意の文字列にしたい場合は、データベースのテーブル接頭語を新しく生成 は 無効のまま、入力フォームに、任意の文字列を入力して、「データベース接頭辞を変更」を押します。


WP セキュリティ: ファイルのセキュリティ(File security) の設定
File protection
Delete default WP files の実行
readme.html、license.txt、wp-config-sample.phpを削除する。
有効にして、「削除」を押して、「Save settings」を押します。

直リンクの防止 を有効にする
画像の直リンクを防止する を有効にして、「Save settings」を押します。

PHPファイル編集を無効化する
この機能により、ダッシュボードから PHP ファイルを編集する機能が無効になります。
PHP ファイル編集機能を無効化 を有効にして、「Save settings」を押します。

WP セキュリティ: ファイアウォールの設定
PHP rules を設定する
Security enhancements
XML-RPC へのアクセスを完全にブロック を有効にして、「基本ファイアウォール設定を保存」を押します。
XML-RPC の機能が必要な場合は「XML-RPC へのアクセスを完全にブロック」のチェックを外し、「XML-RPC のピンバック機能を無効化」のみチェックしてください。

Feed control
Disable RSS and ATOM feeds を有効にして、「基本ファイアウォール設定を保存」を押します。
ユーザーにフィードを使用させたくない場合は、これを有効にしてください。 RSSとATOMフィードは、あなたのサイトのコンテンツを読むために使用されます。

Comment protection
プロキシ経由のコメント投稿を禁止 を有効にして、「基本ファイアウォール設定を保存」を押します。
プロキシによるコメント投稿を禁止したい場合は、これを有効にしてください。

URL security
不正なクエリー文字列を拒否 を有効にして、「基本ファイアウォール設定を保存」を押します。
これは、XSS を通じた悪意のあるクエリーからユーザーを保護するのに役立ちます。

String filtering
高度な文字列フィルターを有効化 を有効にして、「基本ファイアウォール設定を保存」を押します。
これはXSS攻撃に似た文字列をブロックします。
パーマリンクの設定が投稿名になっていて、日本語が含まれているページは、403エラーが発生することがあります。その時は無効に設定してください。

WP REST API
未認証の REST リクエストを禁止 を有効にして、「基本ファイアウォール設定を保存」を押します。
ログインしていないユーザーからのリクエストに対して REST API へのアクセスを停止するには、これを有効化してください。

.htaccess rules を設定する
基本的なファイアウォール設定
基本的なファイアウォール保護を有効化 を有効にして「Save .htaccess firewall settings」を押します。
サイトに基本的なファイアウォール保護を適用するには、これを有効にします。
.htaccess を書き換えられて、サイトが表示されなくなるなどあるので、特別な理由がない限り有効にする。

Block debug log
debug.log ファイルへのアクセスをブロック を有効にして「Save .htaccess firewall settings」を押します。
デバッグロギングが有効になっているときにWordPressが作成するdebug.logファイルへのアクセスをブロックしたい場合は、これを有効にします。

Listing directory content
インデックスビューを無効化 を有効にして「Save .htaccess firewall settings」を押します。
ディレクトリとファイルのリストを無効にしたい場合は、これを有効にする。

6G fierwall rules の設定をする
6G ファイアウォール保護を有効化 を有効にして、「Save firewall settings」を押します。

オンラインのボット を設定する
偽の Googlebots をブロック を有効にして、「オンラインボットの設定を保存する」を押します。
すべての偽Googleボットをブロックしたい場合は、これを有効にします。
空白の user-agent と referer を持つ POST リクエストの禁止 を有効にして、「オンラインボットの設定を保存する」を押します。

WP セキュリティ: 総当たり攻撃 (Brute force) の設定
ログインページの名称を変更
ログインページ URL にURLを入力する。
ここで設定したログインURLは、控えておくこと
ログインページの名前変更機能を有効化 を有効にして、「Save setttings」を押します。
セキュアログインページのスラッグ 推測が難しく、あなただけが覚えているようなものを選ぶことをお勧めします。

CAPTCHA settings を設定する
WordPress forms
Default CAPTCHA を、Google reCAPTCHA V2 に設定する。
サイトキーとシークレットキーを取得して、入力する。

Enable CAPTCHA on login page を有効にする。
ログインページに CAPTCHA フォームを追加したい場合はこれをチェック
Enable CAPTCHA on registration page を有効にする。
WordPressのユーザー登録ページ(ユーザー登録を許可している場合)にCAPTCHAフォームを挿入したい場合は、これを有効にしてください。
Enable CAPTCHA on lost password page を有効にする。
パスワード再設定フォームに CAPTCHA を追加したい場合は、これをチェックしてください。
Enable CAPTCHA on custom login form を有効にする。
次の WP 関数によって生成されたカスタムログインフォームに CAPTCHA を追加したい場合は、これをチェックしてください: wp_login_form()

Enable CAPTCHA on comment forms を有効にする。
コメントフォームにCAPTCHAフィールドを挿入したい場合は、これを有効にしてください。
Enable CAPTCHA on password protected pages/posts を有効にする。
パスワードで保護された投稿やページにCAPTCHAフィールドを挿入したい場合は、これを有効にしてください。
設定したら、「Save settings」を押します。

ログイン画面は、こんな感じになります。

Other forms
Contact Form 7 で、reCAPTCHA V2 を使用する場合は有効にするが、Contact Form 7 側で、reCAPTCHA V3 の設定をする場合は、ここで設定しない。
Enable CAPTCHA on Contact Form 7 を有効にして、「Save settings」を押します。
Contact Form 7 のフォームに CAPTCHA フィールドを挿入したい場合はこれを有効にしてください。
AIOS は自動的にフォームの送信ボタンの前に CAPTCHA フィールドを挿入しようとします。
CAPTCHA を正確に配置するには、Contact Form 7 のテンプレートで以下のショートコードを使うことができます。
[aios_captcha]
この機能を使うには Contact Form 7 のバージョン 5.0 以上が必要です。
バリデーションメッセージは Contact Form 7 のバージョンが 5.6 以上の場合にのみ表示されます。

ハニーポット を設定する
ログインフォームのハニーポットを有効化 を有効にする。
ログインページにハニーポット機能を使用したい場合は、これを有効にします。
ユーザー登録ページでハニーポット機能を有効化する を有効にする。
登録ページのハニーポット機能が必要な場合は、これを有効にします。
「Save settings」を押します。

WP セキュリティ: スパム防止(Spam prevention)の設定
Comment spam の設定
Detect spambots posting comments を有効にする。
スパムボットからのコメントを検出したい場合は、これを有効にしてください。
この機能は、スパムボットから発信されたコメントを検出します。
正当なコメントとは、人間がコメントフォームに記入し、送信ボタンを押すことで投稿されるコメントです。
スパムボットによって投稿されたコメントは、wp-comments-post.phpファイルを直接呼び出すことによって行われます。
この機能はこれらのコメントを検出し、完全に破棄するか、スパムとしてマークします。
Use cookies to detect comment spam を有効にする。
クッキーを使用すると、コメントフォームを含むページのキャッシュを防ぐことができます。
この機能はクッキーを使用しています。 お使いのキャッシュ(Cloudflareなど)がこれらのクッキーを無視するように設定されていない限り、これらのページのいずれもキャッシュしないように決定される可能性があります。
Cloudflareはset-cookieヘッダーが設定されていることを検出し、デフォルトでページをキャッシュしません。
Spam comments detected should be を Discarded(削除) を選択する。
スパムコメントをゴミ箱に移動 を有効にし、14 日後に設定する。
この機能を有効にすると、指定した日数後にスパムコメントをゴミ箱に移動することができます。
※14日後は、目安なので、適度な日数にしてください。
「Save settings」を押します。

WP セキュリティ: スキャナーの設定
File change detection
自動ファイル変更検知スキャンを有効化する を有効にする。
以下の設定に基づき、自動的に定期的にファイルをスキャンし、ファイルの変更をチェックしたい場合は、これを有効にします。
スキャン時間の間隔 を、「1」,「日」に設定。※任意の間隔に設定する。
変更を検知したらメールする に、送信先メールアドレスを設定する。
ファイルの変更が検出された場合、システムから電子メールを送信する場合は、このオプションを有効にします。
「Save settings」を押します。

以上で設定は終了です。
