Image

ナレッジベース → nginxでIPによるサイトの管理セクションへのアクセスを制限する

[仮想サーバー]
公開日: 22.03.2024

コンテンツ管理システム(CMS)によっては、ウェブサーバーレベルでサイトの管理セクションへのアクセスを制限することをお勧めします。

Laravel CMSの例では、管理セクションがサイト本体とは別に存在するため、nginxの設定で以下のような構造が適しています。

...

location /myadmin {
    try_files $uri $uri/ /index.php?$query_string;
    allow 77.xx.80.xxx;
    allow 89.xxx.71.xx;
    deny all;
    }
    
...

ここでのポイントは次の通りです:

/myadmin は管理セクションが配置されているパス (例:https://domain.tld/myadmin) です。

この例では、特定のIPアドレスのリスト(77.xx.80.xxxや89.xxx.71.xx)からのみこのパスへのアクセスが許可されています。これらのIPアドレスからは、ログインとパスワードを使用して認証を続けることができます。それ以外のリストにないIPアドレスからのアクセスには「禁止されました」というメッセージが表示されます。

このルールにより、サイトのセキュリティが大幅に向上します。ただし、CMSによって動作が異なるため、各CMSで別途確認する必要があります。特定の管理セクションを制限することで、サイト全体の動作に影響が出る場合もあるので注意してください。

設定を適用するためには、設定全体を確認し、サーバーを再起動することを忘れないでください。

nginx -t
service nginx restart

常に同じ静的IPアドレスから認証を行う場合は、squidサービスが設定されたVPSサーバーを使用することをお勧めします。





No Comments Yet