私は以前の従業員によって開発された私が仕事をしているウェブサイトを引き継いでいます、最近このサイトはこのようなログエントリによって証明されたxmlrpc pingbackの使用による一連のDDoS攻撃の犠牲者です
154.16.63.40 - - [22/May/2016:06:52:49 +0100] "POST /xmlrpc.php HTTP/1.1" 200 596 "-" "Googlebot/2.1 (+http://www.google.com/bot.html)"
(グーグルがこのファイルに投稿する理由はないので、明らかにこれはグーグルボットではありません。)
これには多くの解決策があると思います( このチュートリアル )が、ファイルへのアクセスを完全にブロックすることに傾いている傾向があります。しかし、私はこのサイトが実際にxmlrpcがあなたに使用を許可するサービスを使用しているかどうか不明です。前の開発者がwordpress xmlrpc機能を使用するために何かを準備しているかどうかを確認することができる特別な方法はありますか?特定のファイル内の機能をチェックできますか?/用途を特定するために叫ぶ何かがありますか?
これで任意の助けが素晴らしいでしょう!
編集: このようなことが役に立ちますか?
<FilesMatch "^(xmlrpc\.php)">
Order Deny,Allow
# IP address Whitelist
Allow from xxx.xxx.xxx.xxx
Deny from all
</FilesMatch>
もし私がサーバーのIPアドレスから許可するなら、これはプラグインなどのために働くでしょうか、またはそれらはすべて追加される必要があるだろう彼ら自身のIPアドレスを持っていますか?
これは、DDoS攻撃ではなく、スパムボットや列挙型のように見えます。確かに、あなたはあなたのリソース消費、IPアドレスのダイナミックス、そしておそらくペイロードを調べるべきです。
1. xmlrpc.php
ファイルへのアクセスをブロックしています。 :
私はあなたがすべきではないと思います:
私はよくxmlrpc.php
にリクエストを出したすべてのIPをログに記録します。iptablesを使ってレート制限を設定します。それから、きっと悪であるIPをブロックしてください。
2.あなたのサイトがxmlrpc.php
を使っているかどうかを知る方法
xmlrpc
という文字列が含まれているので、テーマとプラグインを調べて、一致するものがあるかどうかを確認できます。define('XMLRPC_REQUEST', true)
であるxmlrpc.php
を通過するので、次のものを使用できます。if ( defined('XMLRPC_REQUEST') && XMLRPC_REQUEST ) {
// Log something.
// Or exit immediately if something is evil in the request.
}
テーマ/プラグインファイルでコードを使用することはできません。 xmlrpc.php
はテーマやプラグインから独立しているので、wp-config.php
ファイルに入れる必要があります。
あなたが説明したように、あなたはDDoS攻撃の犠牲者でした(あるいはそうではないかもしれませんが、私はあなたがそれを知っているとだけ仮定します)。これらの種類の攻撃は、動的なWebサイトのあらゆる部分、たとえばindex.phpファイルまたはxml-rpc.phpファイルに対して行われる可能性があります。
私の観点からは、 正しい解決策は攻撃された部分をブロックするのではなく攻撃者をブロックすることです 。
そのため、WrodPressでXML-RPC APIをブロックしないでください。これは多数のプラグインと外部クライアントによって使用されます。自分がしていることとその結果を本当に知っている場合にのみブロックしてください。代わりに、サーバーレベルで攻撃者をブロックしてください。たとえば、サーバーファイアウォールまたは.htaccessで攻撃者のIPをブラックリストに登録することができます。