WordPressのログインURLを隠蔽することは、セキュリティ強化のための有効な手段の一つです。デフォルトでは、WordPressのログインページは「/wp-admin」または「/wp-login.php」でアクセスでき、これは多くの攻撃者が狙うポイントです。このログインURLを隠すことで、ブルートフォース攻撃やその他の不正アクセスのリスクを低減できます。
ログインURLを隠す方法
1. プラグインを使用する方法
最も簡単にログインURLを変更・隠蔽する方法は、WordPressのプラグインを利用することです。これらのプラグインは、カスタマイズされたURLに変更するだけでなく、ログイン試行回数の制限など、他のセキュリティ機能も提供します。
WPS Hide Login
使いやすいプラグインで、デフォルトのログインURLを好きなURLに変更できます。導入後は、「/wp-admin」や「/wp-login.php」へのアクセスは404エラーページにリダイレクトされます。
2. htaccessで変更する方法
プラグインを使用しないで手動でログインURLを隠す方法もありますが、少し技術的な作業が必要です。
.htaccessファイルを使用
このように特定のIPアドレスを許可することで、公開URLをそのままにしてもセキュリティを強化できます。
WordPressのインストールディレクトリにある.htaccessファイルを編集し、特定のIPアドレスのみが「/wp-admin」や「/wp-login.php」にアクセスできるように制限することができます。以下は、その設定の一例です
<Files wp-login.php> Order Deny,Allow Deny from all Allow from xxx.xxx.xxx.xxx </Files>
3. functions.phpで変更する方法
/wordpress/直下にwp-login.phpをコピーして作成したファイルを作成してファイル名をつけます。
例:login-url-nandemo.php
注意点:wp-login.phpは削除しないでそのままにします。
<?php
define( 'LOGIN_CHANGE', sha1( 'keyword' ) );
require_once './wp-login.php';
?>
functions.phpに以下を記載します
functions.php
// WordPress管理画面のログインURLを変更
define( ‘LOGIN_CHANGE_PAGE’, ‘login-url-nandemo.php’ );
add_action( ‘login_init’, ‘login_change_init’ );
add_filter( ‘site_url’, ‘login_change_site_url’, 10, 4 );
add_filter( ‘wp_redirect’, ‘login_change_wp_redirect’, 10, 2 );
// 指定以外のログインURLはトップページへリダイレクト
if ( ! function_exists( ‘login_change_init’ ) ) {
function login_change_init() {
if ( !defined( ‘LOGIN_CHANGE’ ) || sha1( ‘keyword’ ) != LOGIN_CHANGE ) {
wp_safe_redirect( home_url() );
exit;
}
}
}
// ログイン済みまたは新設のログインURLの場合、wp-login.phpを書き換え
if ( ! function_exists( ‘login_change_site_url’ ) ) {
function login_change_site_url( $url, $path, $orig_scheme, $blog_id ) {
if ( $path == ‘wp-login.php’ &&
( is_user_logged_in() || strpos( $_SERVER[‘REQUEST_URI’], LOGIN_CHANGE_PAGE ) !== false ) )
$url = str_replace( ‘wp-login.php’, LOGIN_CHANGE_PAGE, $url );
return $url;
}
}
// ログアウト時にリダイレクトする先の設定
if ( ! function_exists( ‘login_change_wp_redirect’ ) ) {
function login_change_wp_redirect( $location, $status ) {
if ( strpos( $_SERVER[‘REQUEST_URI’], LOGIN_CHANGE_PAGE ) !== false )
$location = str_replace( ‘wp-login.php’, LOGIN_CHANGE_PAGE, $location );
return $location;
}
}
/wordpress/login-url-nandemo.phpにアクセスします。これがログインURLになります。特定されないURLなので安心です。
4. セキュリティのベストプラクティス
ログインURLを隠すことは効果的なセキュリティ強化ですが、他のセキュリティ対策と組み合わせることでさらに効果を高められます。
2段階認証(Two-Factor Authentication)
追加のセキュリティ層として、ログイン時にSMSや認証アプリを使った2段階認証を導入することが推奨されます。
ログイン試行回数の制限
ブルートフォース攻撃を防ぐために、ログイン試行回数を制限するプラグイン(例えば、「Limit Login Attempts Reloaded」など)を使用することが効果的です。
強力なパスワードの使用
推測されにくい強力なパスワードを設定し、定期的に更新することも基本的なセキュリティ対策の一つです。
まとめ
WordPressのログインURLを隠すことは、セキュリティを強化するための重要な手段ですが、それだけでなく、2段階認証やログイン試行回数の制限などのセキュリティ対策と併用することが推奨されます。プラグインを活用することで、簡単にカスタマイズでき、サイトの保護を強化できます。