WordPressのxmlrpc攻撃対策 .htaccessでアクセス制限

スポンサーリンク
スポンサーリンク

xmlrpc攻撃

WordPressのxmlrpc.phpに対する攻撃で503エラーが頻発するようになったので、サーバの.htaccessでアクセスを制限しました。

以前にいわしブログで503エラーが頻発した時は、.htaccessを使って怪しい海外IPのアクセスを制限しましたが、今回は方法を変えて、xmlrpc.phpに対するアクセスを制限しました。

.htaccessを使ったアクセス制限は、WordPressを使ったウェブサイトやブログで増加中のxmlrpc.php攻撃対策として有効な手段です。

最近やたら503エラーが出るようになったという方は、一度サーバーの情報を確認してみてください。

スポンサーリンク

いわしブログで再度503エラーが頻発

以前、いわしブログで503エラーが頻発するようになったのですが、この時は海外同一IPからのアクセス激増が原因でした。このIPアドレスを.htaccessに記述してアクセスを制限すると、503エラーは表示されなくなりました。

「アクセス制限で解決 503エラーの原因と対処法」という記事で対処法を紹介してます。

サーバのアクセス制限で解決 503エラーの原因と対処法
いわしブログで503エラーが頻発するようになった原因と、サーバのアクセス制限で対処する方法をご紹介します。 いわしブログのPVは現在1000~1500PV/日ですが、この程度で503エラーが出ることは通常考えられません。調べて...

そして、一旦去ったはずの503エラーがまた再来しました。いわしブログで使用中のさくらインターネットのサーバーコントロールパネルでリソース情報を確認すると、「HTTP 503 エラー発生回数」が激増しています。

さくらインターネット サーバーコントロールパネル 503エラー発生状況

今回の503エラー頻発も、海外同一IPからのアクセス激増が原因なのですが、その矛先はWordPressのxmlrpc.phpという1つのファイルだけに向かっています。

最近はWordPressのxmlrpc.phpに対する攻撃が増えているようで、どうやらいわしブログもその攻撃対象になってしまったようです。

ちなみに、xmlrpc.phpが攻撃されると、XML-RPCの機能を悪用したスパムメール送信やDDoS攻撃の踏み台になる恐れがあります。

エラーログを見ると、ご覧のとおりxmlrpc.phpに対してアクセスが集中していることがわかります。

エラーログ xmlrpc攻撃の様子

これが原因だとすると、xmlrpc.phpに対するアクセスを制限してやれば済む話です。というわけで、今回は.htaccessを使ってxmlrpc.phpに対する攻撃を回避することにしました。

WordPressにはxmlrpcを無効化することができるプラグイン「Disable XML-RPC Pingback」もありますが、あまりプラグインは増やしたくないので、.htaccessで対処することにします。

.htaccessへの記述でxmlrpcを無効化

では、.htaccessを使ってxmlrpc.phpへのアクセスを制限してみましょう。サーバーから.htaccessをダウンロードして、以下を追記すればOKです。

#xmlrpc無効化
<Files "xmlrpc.php">
order deny,allow
deny from all
</Files>

終わったら元の位置に上書きしてください。これでxmlrpc.phpへのアクセスが無効になります。

xmlrpc.phpを無効化することで、ご覧のとおり503エラーが激減しました。やっぱり原因はコイツでしたね。

さくらインターネット サーバーコントロールパネル 503エラー発生状況

ちなみに、アクセス制限なしの状態でxmlrpc.phpへアクセスすると、「XML-RPC server accepts POST requests only.」というメッセージが表示されますが、アクセス制限後は「Forbidden You don’t have permission to access /blog/xmlrpc.php on this server.」と表示されます。

Forbiddenメッセージ

.htaccessに追加したアクセス制限がきちんと有効化されているかどうかは、このメッセージで判断してください。

xmlrpc.phpへの攻撃は.htaccessで対処しよう

xmlrpc.phpは、スマホや外部アプリから記事の更新、画像の投稿を行う際に必要なファイルで、削除しても特に問題はありません。

ただ、削除してもWordPressをアップデートすると復活するので面倒ですが、.htaccessでアクセスを制限しておけば、そのまま放置でも大丈夫です。

xmlrpc.phpに対する攻撃対策としては、他にもfunctions.phpに記載する方法や、「Disable XML-RPC Pingback」といったプラグインを使う方法もありますが、一番のオススメは、やっぱり.htaccessを使ったアクセス制限です。

ちなみに、エックスサーバーでは5月19日から国外IPアドレスからの「XML-RPC」に対するアクセス制限を実施しています。さすがエックスサーバー、対処が早い・・・

WordPressの「XML-RPC」機能に対するセキュリティ向上を目的とした国外IPアドレスからのアクセス制限の実施および『XML-RPC API アクセス制限』機能追加のお知らせ
レンタルサーバー【エックスサーバー】からのお知らせ | 2015/05/14 WordPressの「XML-RPC」機能に対するセキュリティ向上を目的とした国外IPアドレスからのアクセス制限の実施および『XML-RPC API アクセス制限』機能追加のお知らせ
タイトルとURLをコピーしました