所有のWordPressを JetPackプラグインを介在し、
WordPress.comでサイトの一元管理ができることは知っている方も多いと思います。これは2014年12月に実装されて随分経っているので今更なのですが、ようやく重い腰をあげて対応してみました。
まぁ通常だとそんなに躓かないのですが、BASIC認証などによってパスワード保護されたWordPressについてはちょろっとしたコツがいるので合わせて備忘録としてメモしておきます。
XMLRPC対策をしている場合
現在WordPressで標準搭載されているxmlrpc機能(/xmlrpc.php)は、WordPressから直接ログインせずにWordPressを管理できる機能を有しています。たとえば Microsoft WordからWordPressの記事を更新できますし、それ以外の対応ソフトからもxmlrpc.phpを介在してコンテンツを閲覧したりテーマ変更したりなどが可能です。
しかしながら、ここへの総当たり攻撃をされるとサイト全体がとても重くなったり、xmlrpc.php 自体に脆弱性があった場合には不正アクセスされる恐れもあります。
従って外部からのアクセスを遮断しているケースも多いかと思います。
そういう場合には、サーバーの設定で(.htaccess等)
<Files ~ "xmlrpc.php$">
allow from 192.0.64.0/18
deny from all
</Files>
をしているケースも多いと思います。
192.0.64.0/18 は、Automattic社が管理するIPアドレス全体。
xmlrpc.php は基本拒否するけれども、JetPackと連携するために WordPress.comからのアクセスのみは許可したいということです。どの範囲か分からないので、JetPackやWordPress.com提供元のAutomattic社のIPアドレスまるごと許可しているというわけです。
しかーし、サイト丸ごとパスワードロックしている場合にはダメで・・・
通常はそれでいけるのですが、このケースが厄介です。
サイトを見られたくないけど、xmlrpc.php のみ アクセスして欲しいという要望はあるわけです。そういう場合には、Satisfy設定を使いましょう。
<Files ~ "xmlrpc.php$">
allow from 192.0.64.0/18
deny from all
Satisfy Any
</Files>
とまぁ一行追加するだけです。
これで、BASIC等認証をかけていた場合、OR判定になります。
つまりBASIC認証をかけていたとしても、xmlrpc.phpへのアクセスだけ、 192.0.64.0/18 からはBASIC認証を迂回して普通にアクセスできるようになります。
間違っても、サイト丸ごとのBASIC認証に対して、 192.0.64.0/18をSatisfy Anyに設定することはしないようにしましょう。それやっちゃうと、Automattic社のネットワークからローカルなサイトが丸ごと閲覧されちゃいますよ〜。
付録:あれ?JetPackプラグインいれたら画像が表示されなくなったけど?
とりあえず、JetPack設定より、Photonを無効にしてみてください。
を見ると、キャッシュが適応されるまで時間がかかるからってことですね。
しかしならばデフォルトでONにしている以上、そのことの注意喚起がないと困りますねぇ。またサイト丸ごとパスワードロックしているサイトで、有効にして2日経っても画像が表示されませんでした。もしかしたらサイトまるごとパスワードロックしている場合には、キャッシュできないのかもしれませんね。
2016年2月10日 @kimipooh
2016年2月12日 付録を追加