特定のIPアドレスのみWordPress管理画面にアクセスを許可する方法

WordPressのアップデートやプラグインの更新で、「.htaccess」が勝手に書き換わる

WordPressのセキュリティ対策で管理画面へアクセスは、特定のIPアドレスのみアクセスできるように設定していますが、WordPressのアップデートやプラグインの更新の度に「.htaccess」が上書きされ特定IPのみアクセスする設定が消えてしまいます

その都度、気がついた時に「.htaccess」のIPアクセス制限の記述を追記していますが、Apacheの設定ファイルのhttpd.confまたはVirtualHost設定に直接追加することで、WordPressのアップデートやプラグインの更新による設定の上書きを防ぎ事にしました

「.htaccess」ファイルで特定のIPアドレスのみ管理画面にアクセスする設定

特定のIPアドレスの制限の設定は、「.htaccess」ファイルに以下の設定を追加しています。特定のIPアドレスからのみアクセスを許可する設定です。

<FilesMatch "wp-login.php|wp-admin">
  Require all denied
  Require ip x.x.x.x
</FilesMatch>

「.htaccess」ファイルはWordPressのバージョンアップやプラグインの更新で上書きされることがあるため、より安全な方法としてhttpd.confやVirtualHost設定に直接設定を追加します。

「httpd.conf」または「VirtualHost設定」に設定を追加する

httpd.confまたはVirtualHost設定に、管理画面のみ特定のIPアドレスのみアクセスできる設定を追加します。

1.Apache設定ファイルを開く

私の環境ではWordpressを利用しているVirtualHostの設定は「/etc/httpd/conf.d/vhosts/example.conf 」のファイルで設定していますので、vimで編集します

$ sudo vim /etc/httpd/conf.d/vhosts/example.conf

2.VirtualHostセクションに管理画面のアクセス制限の設定を追加

VirtualHostセクション内の<Directory>セクションに、管理画面へのアクセスは特定のIPアドレスのみアクセスできる設定を追加します。

<VirtualHost *:443>
  ServerName  example.com

  DocumentRoot /var/www/vhosts/example.com/html/
  <Directory /var/www/vhosts/example.com/html/>
    Options FollowSymLinks MultiViews
    AllowOverride All
    Require all granted

    # wp-login.phpとwp-adminへのアクセスを特定のIPアドレスに制限する設定
    <FilesMatch "wp-login.php|wp-admin">
      Require all denied
      Require ip x.x.x.x
    </FilesMatch>

  </Directory>
</VirtualHost>

3.Apacheを再起動

設定ファイルを編集したらApacheを再起動します

$ sudo systemctl restart apache2  # Ubuntu/Debianの場合
$ sudo systemctl restart httpd    # CentOS/RedHatの場合

 

スポンサーリンク

0
0