ワードプレスのセキュリティを強化するプラグインは数多くありますが、そのうちのひとつに「All In One WP Security & Firewall」があります。さくらのレンタルサーバーでWordPress(ワードプレス)のクイックインストールを行うと、標準でいくつかのプラグインがインストールされますが、そのうちのひとつでもあります。今回はその設定と機能について解説します。
ワードプレスのセキュリティを強化するプラグイン
All In One WP Security & Firewall
1.All In One WP Security のインストール
ワードプレスのダッシュボードから「プラグイン」>「新規追加」を選びます。検索窓に「All In One WP」と入力して検索し、インストールします。※さくらのレンタルサーバーの場合は最初からインストールまではされています。
「有効化」をクリックし有効化するとワードプレスのダッシュボードに「WP Security」が設置されます。
2.All In One WP Security の機能とおすすめ設定
下記でおすすめ設定を項目ごとに記載しておきます。各画像の通りに設定しましょう。
1)基本設定(Settings)
(1) WP Version info
ワードプレスは作成時にサイトの各ページの “head”タグの中に自動でメタタグとしてサイトが現在どのバージョンのWordPressを実行しているかを示します。またはスタイルやスクリプトのロード中などにバージョン情報を表示します。それらによりハッカーやクローラがあなたのサイトをスキャンして古いバージョンのWordPressかどうかを調べることができます。下記を設定することによりその情報を隠すことができます。
「WP Security>Settings>WP Version Info>WP Generator Meta Info」から下記にチェックを入れ「Save Settings」をクリックします。
2)ユーザーログイン(User Login)
(1) ログインロック機能(Login Lockdown Options)
不正なユーザーによるログインを防ぐために、下記設定によりログインロック機能を設定できます。
「WP Security>User Login>Login Lockdown」の各設定を行い「Save Settings」をクリックします。
- Enable Login Lockdown Feature:
ロックダウン機能の有効化 - Allow Unlock Requests:
ロックを解除するリンクを生成できるようにする - Max Login Attempts:
ロックがかかるまでのログイン試行回数 - Login Retry Time Period (min):
設定した時間内でのログイン試行に対してカウントされる - Time Length of Lockout (min):
ロックされる時間を設定する(標準60分) - Display Generic Error Message:
一般的なエラーメッセージを返すかどうか - Instantly Lockout Invalid Usernames:
登録されていないユーザー名だとロックする - Instantly Lockout Specific Usernames:
右の枠に設定したユーザー名でのログインを禁止する - Notify By Email:
ログインロックがかかると登録したメールに通知する
上記の設定にしておくと、パスワード等を5分以内に6回間違うと60分間ログイン禁止。登録されていないユーザー名を入力するとログイン禁止。adminだとログイン禁止。 誰かがログイン禁止になるとメールが送られる。という防御策を実現できます。
(2) 強制ログアウト(Force Logout)
長時間ログインしているユーザーを強制的にログアウトさせる設定ができます。下記だと600分(10時間)を超えてログインしているとログアウトになります。
「WP Security>User Login>Force Logout」の各設定を行い「Save Settings」をクリックします。
(3) User Login その他
また、User Loginではほかに、
- Failed Login Records:ログイン失敗履歴
- Account Activity Logs:アカウントログ
- Logged In Users:現ログインユーザー
のログが確認できます。定期的に確認して身に覚えがないログインがあれば不正なユーザーにログインされている可能性があります。
ログイン履歴だけでなく不正なログイン試行のログも確認できます。不正なIPからのログインはブロックリストに登録してしまうのも良いかもしれませんね。
4)ファイアウォール(Firewall)
(1) 基本ファイアウォール(Basic Firewall Settings)
基本的なファイアウォール機能を設定します。
「WP Security>Firewall>Basic Firewall Rules>Basic Firewall Settings」の「Enable Basic Firewall Protection」をチェックし「Save Basic Firewall Settings」をクリックします。
(2) WordPress XMLRPC & Pingback Vulnerability Protection
ワードプレスには「xmlrpc.php」という外部からワードプレスを制御するためのプログラムが含まれています。DoS攻撃の対象となることも多くあります。この画面でその攻撃を防ぐことが可能です。JetPackなど外部からの制御を行うプラグインを使っている場合は上の設定を入れると動きがおかしくなります。下の 「WP Security>Firewall>Basic Firewall Rules>Basic Firewall Settings」の「Disable Pingback Functionality From XMLRPC」を設定しましょう。
(3) 追加ファイアウォール(Additional Firewall Protection)
「WP Security>Firewall>Additional Firewall Protection」の各機能をチェックし「Save Basic Firewall Settings」をクリックします。 各機能の詳細は下記の各項目をご覧ください。
① ディレクトリのインデックス表示を禁止(Listing of Directory Contents)
ディレクトリのインデックス表示を禁止します。標準ではindex.htmlがない場合インデックス表示となるのを禁止します。
② トレース&トラックを無効(Trace and Track)
サーバーのトレース&トラック機能を無効化します。サイトを動かしていて特に問題なければ設定しましょう。
③ プロキシを介したコメントを禁止(Proxy Comment Posting)
プロキシを介したコメントを禁止します。不正なユーザーはプロキシサーバーを介しての操作なことも多いため、それによるコメントを禁止します。
④ 不適切なクエリを拒否(Bad Query Strings)
クロスサイトスクリプティング(XSS)を利用した不適切なクエリ操作を拒否します。
⑤ 高度な文字列フィルター(Advanced Character String Filter)
さらに高度な文字列フィルター機能を有効にします。
5)総当たり攻撃の防止(Brute Force)
(1) Login Captcha
ブルートフォース攻撃の防止から、各ログインページへのキャプチャ(数字入力によるスパム防止機能) の設置を行います。
各ログインページに左のような数字ベースのキャプチャを設置させることができます。これにより総当たり攻撃を防ぎます。 |
① Login Form Captcha Settings
② Custom Login Form Captcha Settings
③ Woocommerce Forms Captcha Settings
ワードプレスでネットショップを起ち上げる 「Woocommerce」のフォームにキャプチャを設置します。
④ Lost Password Form Captcha Settings
パスワードを忘れたとき用のフォームにキャプチャを設置します。
6)スパム防止(SPAM Prevention )
(1) コメントスパム防止(Comment SPAM Settings)
コメントフォームにキャプチャ(数字入力によるスパム防止機能)を付けます。
「WP Security>SPAM Prevention>Comment SPAM」の「Add Captcha To Comments Form」の設定を行い「Save Settings」をクリックします。
以上がおすすめの設定です。ワードプレスは非常に普及しているため、クラッカー(攻撃者)もまた多いので、セキュリティ設定はぜひ行いましょう。