
こんにちは、総務ちゃんです。
最近、とあるベンダーからこんな電話がありました。

御社のホームページ、管理画面が丸見えです!IDまで外部から把握できてしまう仕様なので、ぜひ弊社のセキュリティ対策が云々…
弊社のホームページはWordPressを使用しています。
どうやら、管理画面から不正アクセスやウイルス感染のリスクがある、というお話のようで。
※不正ログインまではされていないので、あくまでリスクが高いというお話
正直、最終的には有料サービスの営業だろうな〜とかわしつつも…
「いや、これ本当に大丈夫なん?」とちょっと不安に。
現状が良くないことだとはわかりつつも、
セキュリティ対策に関して、なんでもかんでも外注できるわけではないんですよね。

中小企業は特に予算がね…
ということで今回は、
自分でできるセキュリティ対策として、
WordPressの管理画面にIP制限をかけてみた話
を備忘録としてまとめます!
WordPressの管理画面にIP制限をかける
弊社は固定IPを取得しているため、
社内のネットワーク(固定IP)からしか管理画面にアクセスできないように修正をかけていきます。
public_html(ドキュメントルート)直下に.htaccessを作成 or 追記
まずはpublic_html直下(wp-login.phpと同じ階層)に.htaccessを作成します。※すでにある場合は追記
結構大事なファイルだったりするので、まずはバックアップをとっておきましょう。
そして、そのファイルに下記を記述します。
# 管理画面 IP制限
<Files "wp-login.php">
Require ip xx.xxx.xxx.xxx #ここに固定IP
</Files>
# wp-admin も制限する
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/wp-admin/ # wp-adminへのアクセスを判定
RewriteCond %{REQUEST_URI} !^/wp-admin/admin-ajax\.php$ # admin-ajax.php へのアクセスは除外
RewriteCond %{REMOTE_ADDR} !^xx\.xxx\.xxx\.xxx$ # ここに固定IP
RewriteRule ^ - [F,L] # 上記の条件に当てはまる場合、403 Forbidden(禁止)を返す
</IfModule>xx.xxx.xxx.xxxとなっているところに、アクセスを許可したいIPを適宜変更していれてください。
保存して、別ネットワークで検証する
保存ができたら、別ネットワークからアクセスできなくなっているか、検証を行います。
wp-login.phpの場合
https://あなたのサイトURL/wp-login.php をたたくと…

しっかりと拒否されました!!
wp-adminの場合
https://あなたのサイトURL/wp-admin をたたくと…

こちらもしっかりアクセスが拒否されました!
固定IPが無い場合の対策
固定IPをもっていない場合は、
- Basic認証
- 二要素認証のプラグインを導入する
このあたりが対策としてあげられるようです。
これに関してはまた別の記事でまとめようかと思います。
まとめ

いったんはこれで大丈夫…かな。
全面的にセキュリティのサポートを導入できればそれに越したことはないんですが、なかなか費用面で折り合いがつかないことの方が多いですよね。
とはいえ、やっていかなきゃいけないことではあるので、何かしらこの記事を見た方のお役に立てれば幸いです。
