Archives 11月 2025

WordPressの管理ページへのアクセス制限の話

wordpressでwebページを構築すると、wp-adminやwp-login.phpにアクセスしてwebページの管理を行うことになる。
なのでそのページへのアクセスはローカルIPからのみを許可したい。

ただここで問題になるのがSynology NASのWebStation。

synologyはデフォルトでnginxを使用してユーザーごとにwebページを作成する機能がある。
アクセスされたポートやエイリアスによってどのサービスに転送するかを決定しており、
このサイトの場合はbassdig.ddns.netからのアクセスはすべてwordpressへと転送する設定にしている。

その過程でアクセス元のIPはグローバルIPに書き換えられる。
htaccessで192.168.1.0/24に制限とかするのが一般的だが、それをしてしまうとローカルからのアクセスでも既にグローバルIPに書き換えられているため弾かれてしまうっぽい。

解決するためにChatGPTに聞きながら色々試してみたけどどうもうまくいかない。とりあえずは二要素認証を有効にしといたけど、なんかいい方法ないかなぁ。。

SynologyのDNSサーバとNo-IPでの設定

前置き

ローカルや外からのアクセスで生のIPアドレスを使用するのはちょっと。
ということでまずはDDNSの設定。

No-IPの設定

アカウントの作成等については割愛。

ManagedDNS > DNS Record から Add Record をクリックでDNSの設定を行う。
デフォでアクセスしてるIPv4アドレスが入り、Hostに任意のホストネームを設定する。

最低限Aレコードを設定しておけばアクセスはできる。

  • AはIPv4
  • AAAAはIPv6
  • MXはメールサーバ
  • CNAMEはCDNとかリダイレクト
  • NSが権威DNSサーバ

ぐらいまで覚えておけば個人で使う分には事足りるんじゃないかな。

SynologyのDNS Serverの設定

Synologyの方で使うのはこれ。

インストールしたらメインメニューからDNS Serverを選び設定画面を起動

作成からプライマリゾーンを選択。

追加できたら作成したレコードを選択して
リソースレコードを編集。とりあえずAタイプ。

リソースレコードの追加。

名前を空白にすると、リソースレコードがドメイン名と同じになる。
空白と、*で登録しておく。

最終的には以下のような形。これで内向きの設定が完了。

WordPressの設定

サイトアドレスに登録したホスト名を入れて保存しておく。

Webstationの設定

デフォルトポータルはすべて無効化しておく。外からアクセスできるようになってしまうので。
ユーザー定義で以下のように設定することで、bassdig.ddns.netでのアクセスはすべてWordpressに転送する。所謂、リバースプロキシと思っていいのかな。

最後に。

以上で基本的には終了だが、LAN内の危機からDNSでの接続を行うには、各機器でDNSサーバの割当をこのDNSサーバにするか、ルータやモデムの設定でプライマリDNSサーバをこのサーバに設定する必要がある。

ルータやモデムの設定についてはメーカーや型番によって千差万別なので各自で調べる感じで。