メインコンテンツへスキップ
見出し画像

XServer 固定IPアクセスでWordPress・a-blog cmsの管理ログインを制限する

    「XServer 固定IPアクセス」を利用し、CMS(WordPress・a-blog cms)の管理画面に「特定のIPアドレス(自分)」からしかログインできないようにアクセス制限を行いました。

    実際のサイトで行った作業を、説明用ドメイン example.com に置き換えています。設定するときは、自分が管理するサイトのドメインへ読み替えてください。

    また、この記事は、XServerへログインできる状態から進めます。初めて利用する場合は、先に会員登録などの手続きを済ませてください。

    1. 接続方法とプランを選んで申し込む

    XServer 固定IPアクセスから申し込みます。XServerアカウントがある場合は既存アカウントでログインし、初めて使う場合は会員登録と申し込みを進めます。

    今回の内容

    • 接続方法:専用アプリで接続(WireGuard)

    • プラン:ライト

    • ライセンス数:1

    • 端末:Mac 1台

    接続方法、プラン、ライセンス数を選び、確認画面で内容を確認します。支払いや更新条件も確認して、画面の案内に沿って手続きを完了します。

    画像

    2. 発行された固定IPと接続情報を確認する

    申し込みが完了すると、登録メールアドレスに案内が届きます。
    XServerアカウントの「XServer 固定IPアクセス契約管理」を開き、IPアドレス一覧で、自動割り当てされた「固定IP」と契約の状態を確認します。

    ステータスが「有効」になったら、対象IPの「詳細」をクリックしてライセンスの設定画面を開きます。
    接続許可が「ON」になっていることを確認し、「設定ファイル(PC)」をダウンロードしておきます(.conf というファイルが保存されます)。

    画像

    3. WireGuardをインストールして接続する

    次に、PC側でVPNに接続するためのアプリを設定します。ここではMacを例に進めます。 各端末への設定方法は、XServerの接続設定マニュアルもあわせて確認してください。

    1. アプリのインストール
      WireGuard公式ページからアプリをダウンロードしてインストールします。

    2. 設定ファイルの取り込み
      WireGuardを起動し、「ファイルからトンネルをインポート」を選びます。先ほどダウンロードした .conf ファイルを指定し、VPN構成の追加確認が表示されたら許可します。
      ※取り込みが済めば、元の .conf ファイルは削除しても構いません

    3. 接続とIPの確認
      WireGuardを「ON(有効化)」にした状態で、ブラウザで「IP確認ページ」を開きます。表示されたIPが、XServerの契約管理画面にあった「固定IP」と一致することを確認してください。

    ※設定後、接続を止めたいときはMacのメニューバーにあるWireGuardアイコンから「無効化」を選びます。

    画像
    画像
    画像

    これでPC側のIP制限の準備が整いまいた。

    4. サーバー・CMSに許可する固定IPを登録する

    ここからが実際のIP制限の設定になります。サイト側に許可したIPからしか管理画面に入れないようにします。
    適用後は、VPNのON/OFFを切り替えてログイン制限が効いているかを確認してください。

    WordPress ✕ Xserverの場合

    サーバーパネルの「WordPress → WordPressセキュリティ設定」で対象ドメインを選びます。「IPアドレス制限 → ダッシュボード アクセス制限」のホワイトリストを編集し、固定IP 203.0.113.25 を登録します。

    画像

    WordPress ✕ ロリポップ!の場合

    サーバーの管理画面ではなく、WordPressを設置した公開フォルダーにある .htaccess ファイルを直接編集します。 .htaccessの編集は事前にバックアップをとってから行ってください。
    以下の記述を、.htaccess の先頭(# BEGIN WordPress などの自動生成ブロックの外側)に追加します。

    # BEGIN WORDPRESS DIRECT FIXED IP - MANUAL
    RewriteEngine On
    RewriteCond %{REMOTE_ADDR} !^(?:::ffff:)?203\.0\.113\.25$ [NC]
    RewriteRule ^(?:wp-login\.php(?:/|$)|wp-admin(?:$|/(?!admin-ajax\.php$))) - [F,L,NC]
    # END WORDPRESS DIRECT FIXED IP - MANUAL
    • 固定IPの変更
      203\.0\.113\.25 の部分を、ご自身の固定IPアドレスへ変更してください(IPアドレスの各 . の前にはバックスラッシュ \ を付けます)。

    • 除外設定について
      この設定では、許可IP以外からの /wp-login.php と /wp-admin/ へのアクセスを拒否しますが、公開ページでも使われる /wp-admin/admin-ajax.php はブロックしないよう除外しています。
      ログインURLを独自に変更している場合はルールの調整が必要です。

    a-blog cmsの場合

    対象ブログの「コンフィグ → アクセス設定」を開きます。 「管理ログイン制限 → 許可リスト」に、ご自身の固定IPアドレスに /32 をつけて登録し(例:203.0.113.25/32)、保存します。
    ※/32 は「このIPv4アドレス1つだけを指定する」という書き方です。

    https://developer.a-blogcms.jp/document/operation/access.html

    画像

    【子ブログがある場合】

    子ブログが参照する「共通のコンフィグセット」がある場合はそちらを設定し、分かれている場合は個別に子ブログの「コンフィグ → アクセス設定」で設定を行います。

    5. VPNの「あり・なし」で動作をテストする

    設定が終わったら、確実に制限が効いているかテストします。

    1. VPN「なし(OFF)」でアクセス
      ログインURLへアクセスし、管理画面へのアクセスが拒否されることを確認します。
      また、この状態で「公開ページ」や「お問い合わせフォーム」が一般の閲覧者から正常に見えているかも確認してください。

    2. VPN「あり(ON)」でアクセス
      WireGuardをONにしてからアクセスし、ログイン画面が表示され、正常に管理画面まで入れることを確認します。

    ロリポップ+WordPressの結果

    画像

    Xserver+WordPressの結果

    画像

    a-blog cmsの結果

    画像

    おわりに:固定IPでログイン画面へのアクセスを制限する

    これで、XServerの固定IPアクセスを使ったCMS管理画面のアクセス制限が完了しました。

    管理画面への不正ログイン対策として、IDやパスワードを複雑にする方法に加えて、「あらかじめ許可したIPアドレス以外は、そもそもログイン画面を開けないようにする」設定はとても効果的です。

    また、「XServer 固定IPアクセス」と「WireGuard」の組み合わせは動作も軽く、出先のWi-Fiやスマートフォンのテザリングからでも、アプリをオンにするだけでいつもの固定IPで安全に通信できます。

    サイトを守るセキュリティ設定の1つとして、ぜひ試してみてください。



    あなたへのおすすめ