サーバーが高負荷の原因はWordPressのxmlrpc.phpを狙った攻撃だった

2018/03/23更新 カテゴリー:ビジネスハック,開発奮闘記 タグ: ,
  • このエントリーをはてなブックマークに追加

ブログにアクセスしたらなかなか読み込まない。なんか重たくなってる!異変にきづいてサーバーにターミナルでアクセスを試みるもつながらず。サーバーのコンパネから強制的に再起動をして復旧した。その原因を調べたらWordPressのxmlrpc.phpにあった。

SPONSOR

xmlrpc.phpに大量のアクセス

log
apacheのログを調べたら、このように断続的に大量のアクセスがあった。apacheのエラーログをみると「server reached MaxClients setting, consider raising the MaxClients setting」と設定数以上のアクセスで、高負荷状態になり接続できなくなっていた模様。

xmlrpc.phpはそもそも、これを使うことで標準の管理画面以外からもAPIを使って、記事の投稿ができるようになるもの。どうやらここへのブルートフォースアタックでのっとりをしようとしているか、Pingback機能を悪用して当サーバーを踏み台にして攻撃に利用するためにアタックされる事例が多いようだ。xmlrpc.phpは使わないので、早速対策をとった。

[対策その1] プラグインで無効化

Disable XML-RPC Pingbackというプラグインがあり、これを利用すればピンバック機能を無効にしてくれるため、踏み台にされることはなくなる。まずはこれを設定した。

SPONSOR

[対策その2] xmlrpc.phpへのアクセス禁止

そもそもxmlrpc.phpへアクセスできないようにした。これはhtaccessに

<Files "xmlrpc.php">
order deny,allow
deny from all
</Files>

のように記述すれば、xmlrpc.phpへアクセスしても403forbiddenエラーとなる。

[対策その3] 攻撃元IPを遮断

htaccessでアクセス拒否しても、apacheは経由するので負荷がかかることにかわりはない。そこで、iptable(ファイアーウォール)で攻撃してきているIPを遮断することにした。

//遮断したいIP
iptables -I INPUT -s 185.62.189.47 -j DROP

//設定を保存
service iptables save

//設定を反映
service iptables restart

攻撃してくるIPはその時によって変わってくるので、高負荷になった時にアラートをいれたり、監視できる仕組みをいれないといけない。面倒だな…。

その後、サーバー攻撃を受けたので繰り返さないようLogwatchで監視をはじめてみました。

サーバー攻撃を受けたので、Logwatchで監視をはじめてみた

WordPressのセキュリテイ関連では、WordPress Popular Postsプラグインにも脆弱性がみつかりましたので、利用している方はご注意を。

WordPress Popular Postsでサムネイルを表示している方は要注意!

WordPressの高速化についてはこちら。

WordPressを高速化する9つのステップ

フリーランスエンジニアの稼ぎ方

  • このエントリーをはてなブックマークに追加
SPONSOR

PROFILE

プロフィール

入江 慎吾/サービス開発だけで生きていく
自分のサービスだけで自由に生きる。勢いで受託開発をすべてやめて、サービスだけ作って生きていくことを決めたフリーのエンジニア。得意を教えて副業にできるMENTAを開発中! (詳しいプロフィール)
WEBサービス・アプリ開発に役立つ情報をイリテクの入江がお届けします。プログラミング、UI/UXデザイン、SNS・ブログマーケティングなど、プロダクト開発だけで自由に生きていくための実践的な情報を配信しています。

PRODUCT

イリテクで開発したプロダクト

RELATION

関連する記事

SPONSOR

TAG

タグから記事をさがす