過去1週間、中国のさまざまなIPアドレスから大量のトラフィックが流れてきました。このトラフィックは通常のユーザーからのものであり、HTTPリクエストは、私が次のように思っていることを示しています。
これらはすべて、人々がVPNを使用するようなものに聞こえます。または万里の長城を怒らせるもの。
ユーザーエージェントには、ウェブブラウザ、Android、iOS、FBiOSSDK、Bittorrentが含まれます。 IPアドレスは、通常の中国の商用プロバイダーです。
ホストが正しくないか、ユーザーエージェントが明らかに間違っている場合、Nginxは444を返します。
## Deny illegal Host headers
if ($Host !~* ^({{ www_domain }})$ ) {
return 444;
}
## block bad agents
if ($http_user_agent ~* FBiOSSDK|ExchangeWebServices|Bittorrent) {
return 444;
}
これで負荷を処理できるようになりましたが、最大2k /分までのバーストがいくつかありました。彼らが私に来る理由を見つけて、それを止めたいです。また、正当なCNトラフィックがあるため、地球の6分の1を禁止することはできません。
悪意があり、個人的なものである可能性もありますが、DNSの設定が間違っている可能性があります。
私の理論では、これは誤って構成されたDNSサーバー、またはおそらく人々が万里の長城を回避するために使用しているいくつかのVPNサービスだと考えています。
与えられたクライアントIPアドレス:
183.36.131.137 - - [05/Jan/2015:04:44:12 -0500] "GET /announce?info_hash=%3E%F3%0B%907%7F%9D%E1%C1%CB%BAiF%D8C%DE%27vG%A9&peer_id=%2DSD0100%2D%96%8B%C0%3B%86n%8El%C5L%11%13&ip=183.36.131.137&port=11794&uploaded=4689970239&downloaded=4689970239&left=0&numwant=200&key=9085&compact=1 HTTP/1.0" 444 0 "-" "Bittorrent"
私は知ることができます:
descr: CHINANET Guangdong province network
descr: Data Communication Division
descr: China Telecom
クライアントのDNSリゾルバーを決定する理論的な方法は1つありますが、それは非常に高度であり、あなたのためにそれを行う市販のソフトウェアを知りません。そのためには、nginxに加えて、信頼できるDNSサーバーを実行する必要があります。
HTTPホストヘッダーが正しくない場合は、エラードキュメントを提供し、データベースに記録するすべてのリクエストに対して動的に作成された一意のFQDNへのリクエストを含めます。例えば。
Chinasの優れたファイアウォールがその要求をいじらないで、クライアントがその一意のFQDN + URIからドキュメントを要求する限り、各要求は、example.comの信頼できるDNSへの新しいDNSルックアップの結果、IPのIPを記録できますDNSリゾルバ以降は、動的に生成されたURIとこれを関連付けます。
「ブロックされた」トラフィックを少数の偽のIPにリダイレクトするために使用された優れたファイアウォールを聞いたことがありますが、これによりブロックが簡単に発見されていました(簡単なSubversionが許可されているかどうかはわかりません)。いずれにしても、管理者はランダムなIPへのリダイレクトを開始しました。これにより、一部の中国のユーザーは、facebookやvpnではなくポルノを取得しているようです。
あなたのIPの1つがブロックされた中国のトラフィックの受信者であることが判明したため、Facebook IPIユーザーエージェントが表示されています。
これは、ホストヘッダーチェックが適切であることを意味します。最近のほとんどのユーザーエージェントはSNIをサポートしているため、ホストヘッダーのないトラフィックを比較的無害にドロップできるはずです。
編集: http://www.infosecurity-magazine.com/news/great-firewall-upgrade-redirects/
これらの顧客が使用しているDNSサーバーを確認するにはどうすればよいですか?
チャイナネットに連絡して質問してください真剣に、DNSはクライアント側で構成可能です。ほとんどの人はDHCP経由でDNS設定を取得しますが、OpenDNSとGoogleのDNSオファリングは、それらを変更できなければビジネスモデルを持っていません。
とにかく、HTTPリクエストがVPNからのものかどうかを判断する方法はありますか?
そうではありません。ただし、IPはVPNのものであり、中国のエンドユーザーのものではありません。
ここで何が起こっているのですか?
それは私には言えませんが、おそらく中国のグレートファイアウォール に何らかの設定ミスがあるのでしょうか ?