先日、IPAセキュリティセンターから「CMSを用いたウェブサイトにおける情報セキュリティ対策のポイント」が公開されました。WordPress や MovableType など、CMS のセキュリティ対策ガイドラインとして活用できそうですね。このガイドラインの中で「CMS認証画面への攻撃」の対策として、認証画面へのアクセスを、許可されたIPアドレスのみに制限することがあげられていました。そこで今回は、Apache httpd で、WordPress の認証画面を IPアドレスで制限する設定方法をご紹介したいと思います。
Apache httpd の設定方法
Apache httpd では、特定のファイル(今回の場合は認証画面のPHPファイル)やディレクトリへのアクセスを IPアドレスで制限することが簡単にできます。
設定方法は、Files ディレクティブ で、WordPress の認証画面のファイル「wp-login.php」を指定し、接続を許可するIPアドレスを「Allow from」で指定するだけでOKです。
例えば、IPアドレス「192.0.2.1」からのみ、認証画面への接続を許可する場合は、以下のような設定になります。この設定は、Apache httpd 設定ファイルの「httpd.conf」、または「.htaccess」ファイルどちらにも書くことができます。
<Files "wp-login.php"> Order Deny,Allow Deny from all Allow from 192.0.2.1 </Files>
また、WordPressのセキュリティプラグイン「SiteGuard WP Plugin」で、認証画面のURLを変更していたとしても、変更したURLのリダイレクト先は「wp-login.php」になっていますので、上記の設定で問題ありません。
固定IPアドレスが使えない場合の対応
自宅のインターネット環境など、固定IPアドレスが使えない場合は、認証画面をIPアドレスで制限することはできませんが、そういった場合の対応もガイドラインに書かれていました。
契約しているサービス・サーバーによってはインターネット上の認証画面にアクセスせざるをえないという事情も考えられるが、そのような場合は、特定の人しかアクセスできないように、接続可能な端末IPアドレスを登録しておき、ホワイトリストにより接続を制限することが効果的である。その他、特に認証画面を公開する理由、必要性がないと判断できる場合は、非公開設定が賢明である。可能であれば、認証ページに対して VPN のみで接続を許可する運用にすればよい(図 2-2-1)。
CMSを用いたウェブサイトにおける情報セキュリティ対策のポイント P16より引用
ちょっと解釈がむずかしい内容ですが(^^;) 次ページの図を見ると、固定IPアドレスが使える会社などのネットワークに、自宅からVPN接続し、会社のネットワーク(許可された固定IPアドレス)経由で認証画面へ接続することを指しているようです。これは実際の運用でもよく見かける方法ですね。これは、WordPress に限らず、WEBサーバへのSSH接続の制限のセキュリティ対策にも使えます。
最近のルータは、VPNサーバの機能も標準で付いるものが多いので、VPNの導入を検討してみるのも良いかと思います。
終わりに
WordPressの認証画面に限らず、IPアドレスによるアクセス制限は、簡単かつ効果の高いセキュリティ対策です。固定IPアドレスが使える環境ならぜひ導入したいセキュリティ対策ですね。
コメント