Rename Admin Paths
Drupalのデフォルトの/adminおよび/userパスをカスタムパスに変更できるセキュリティモジュール。標準的なDrupal URLを狙った自動攻撃からサイトを保護します。
rename_admin_paths
インストール
composer require 'drupal/rename_admin_paths:^3.1'
composer require 'drupal/rename_admin_paths:8.x-2.3'
概要
Rename Admin Pathsは、管理者がデフォルトの管理パスとユーザーパスをカスタマイズできるようにすることで、Drupalサイトを保護するセキュリティ重視のモジュールです。自動ボットや攻撃者に広く知られ標的とされる標準の/adminおよび/userパスを使用する代わりに、このモジュールを使用してこれらのパスを任意のカスタム値に変更できます。
このモジュールは、イベントサブスクライバーを通じてDrupalのルート構築プロセスをインターセプトすることで動作します。ルートが構築される際に、/adminまたは/userで始まるすべてのパスを、設定された置換値を使用するように動的に書き換えます。これはルーティングレベルで行われるため、サイト全体のすべての管理パスとユーザーパスが一貫して変更されます。
このアプローチは、自動スクリプトが管理ログインページ、ユーザー登録フォーム、その他の機密性の高い管理インターフェースを見つけにくくすることで、隠蔽によるセキュリティを提供します。これ単体で完全なセキュリティソリューションではありませんが、他のセキュリティ対策と組み合わせることで効果的な追加の防御層として機能します。
Features
- /adminパスのプレフィックスをカスタム値に変更(例:/adminが/backendになる)
- /userパスのプレフィックスをカスタム値に変更(例:/userが/memberになる)
- 管理パスとユーザーパスの変更を個別に有効/無効化
- 置換値が安全な文字(英字、数字、ハイフン、アンダースコア)のみを含むことを検証
- ルートの競合を避けるため、予約名('admin'または'user')へのパス変更を防止
- 設定保存時にルートを自動的に再構築
- テーマの互換性のため、管理ページに'path-admin' CSSクラスを維持
- 簡単なエクスポート/インポートのためDrupalの構成管理システムと統合
Use Cases
自動攻撃から管理ページを保護
管理パスの変更を有効にして、/adminを/backendや/manageなどのカスタム値に変更します。これにより、標準のDrupal管理パスをスキャンする自動ボットが管理インターフェースを見つけることを防ぎます。例えば、変更後は/admin/contentが/backend/contentになります。
スパムボットからユーザー登録を隠す
多くのスパムボットは、スパムアカウントを作成するために/user/registerをターゲットにします。ユーザーパスを/memberや/accountなどに変更することで、標準の登録パスは404になり、自動登録の試行をブロックします。一方、正規のユーザーは/member/registerで登録できます。
セキュリティポリシーへの準拠
一部の組織では、セキュリティ強化ポリシーの一環として、デフォルトの管理パスを隠すことを要求しています。このモジュールは、Drupalコアファイルを変更することなく、そのような要件を満たす簡単な方法を提供します。
異なる管理パスを持つマルチサイト構成
複数のDrupalサイトを管理する際、各サイトに異なる管理パスを設定できます。これにより、作業時にサイトを区別しやすくなり、攻撃者がすべてのサイトで同じパスを使用できないため、追加の保護層が加わります。
Tips
- モジュールを有効にする前に、後でアクセスが必要になった場合に備えて、変更したパスを安全な場所に保存または文書化してください
- 本番環境に適用する前に、開発環境でパスの変更をテストしてください
- 覚えやすいが推測されにくいパス名の使用を検討してください。組織にとって意味があるが、簡単に推測できないものが良いでしょう
- モジュールは管理ページで'path-admin' CSSクラスを維持するため、このクラスに基づくテーマのスタイリングは引き続き機能します
- Drupalの構成管理を使用して設定をエクスポートおよびインポートでき、環境間でパス設定を簡単にデプロイできます
- 包括的な保護のために、このモジュールをfail2ban、レート制限、強力なパスワードなどの他のセキュリティ対策と組み合わせてください
Technical Details
Admin Pages 1
/admin/config/system/rename-admin-paths
デフォルトの/adminおよび/userパスのカスタム置換を設定するための設定ページ。このページでは、管理者がパスの変更を有効にし、各パスタイプの置換値を指定できます。
権限 1
Drush Commands 2
drush cget rename_admin_paths.settings
現在のパス変更設定を表示します。パスを何に変更したか忘れた場合に便利です。
drush cset rename_admin_paths.settings admin_path 1
Drush経由で管理パスの変更を有効化
Troubleshooting 5
問題のモジュールは、ルート名を使用してDrupalのルーターで生成されたパスではなく、ハードコードされたパスを使用している可能性があります。これはRename Admin Pathsでは修正できません。影響を受けるモジュールのイシューキューで、ハードコードされたパスではなくルーター生成パスを使用するようリクエストしてください。
Drushを使用して設定を表示: drush cget rename_admin_paths.settings。または、データベースを直接確認: 'config'テーブルで、name 'rename_admin_paths.settings'の行を探してください。
これは既知の制限です。管理レポートのリンクはハードコードされたパスでViewsによって生成されるため、このモジュールでは変更できません。この問題を追跡するコアイシュー(https://www.drupal.org/project/drupal/issues/2939986)があります。
ロックアウトされた場合は、データベースを直接変更して設定をリセットできます。'config'テーブルで'rename_admin_paths.settings'を見つけ、admin_pathを0に設定するか、admin_path_valueを既知の値に更新します。その後、キャッシュをクリアしてください。
パスの置換値には、英字(a-z、A-Z)、数字(0-9)、ハイフン(-)、アンダースコア(_)のみを含める必要があります。また、デフォルトパスと競合するため、'admin'または'user'を置換値として使用することはできません。
Security Notes 6
- このモジュールは隠蔽によるセキュリティを提供するため、唯一のセキュリティ対策としてではなく、追加の保護層として使用すべきです
- 権限'administer path admin'は、管理パスの変更には重大なセキュリティ上の影響があるため、制限付きアクセスとしてマークされています
- この権限を持つユーザーは、連絡なしにパスを変更することで、他の管理者を締め出す可能性があります
- 少なくとも1人の管理者が設定されたパスを知っていることを常に確認してください
- パスのバリデーションにより、ルートの競合や潜在的なセキュリティ問題を回避するため、予約名と特殊文字の使用が防止されます
- このモジュールは、適切な権限を持つ認証済みユーザーから管理機能の存在を隠すものではありません