1

Jetty サーバーが DDoS などによってダウンするのを防ぐためのソリューションを探しています。現在、サーブレットは着信接続ごとに新しいスレッドを開くため、1 ミオの着信接続で 1 ミオのスレッドが開かれ、Jetty が爆発します。

このスレッドを回避する最善の方法は何ですか? クライアントとサーバーの間にApacheを配置することを考えました.Webサーバーには、着信接続を1つのIPからたとえば5接続/秒に制限する機能があるためです。

私の考えについてどう思いますか?

敬具、

ヘンドリック

4

3 に答える 3

2

Jetty には、希望どおりのサービス品質フィルターが付属しています。http://wiki.eclipse.org/Jetty/Feature/Quality_of_Service_Filterを参照してください

于 2011-03-17T11:23:36.523 に答える
1

DosFilterは、DDoS保護を提供するために使用できます。

ウィキからの説明を引用するには、

サービス拒否(DoS)フィルターは、悪意のあるものであれ、クライアントの構成ミスの結果であれ、リクエストフラッディングへの露出を制限します。DoSフィルターは、1秒あたりの接続からの要求数を追跡します。リクエストが制限を超えると、Jettyはリクエストを拒否、遅延、または抑制し、警告メッセージを送信します。

有効にするには、webappのweb.xmlまたはjetty-web.xmlの構成に以下を含める必要があります

<filter>
   <filter-name>DoSFilter</filter-name>
   <filter-class>org.eclipse.jetty.servlets.DoSFilter</filter-class>
   <init-param>
     <param-name>maxRequestsPerSec</param-name>
     <param-value>30</param-value>
   </init-param>
 </filter>

カスタマイズについてはwikiを確認してください。

于 2012-09-19T07:09:47.297 に答える
0

org.eclipse.jetty.servlets.QoSFilter で新しい接続を提供するというアイデアは良いですが、私はむしろ iptables に基づいた典型的なアンチ ddos​​ 構成を使用します (この記事のように: http://blog.bodhizazen.net/linux/prevent-dos -with-iptables/ )。

sudo iptables -A INPUT -p tcp --dport 80 -m state --state NEW -m limit --limit 50/minute --limit-burst 200 -j ACCEPT
sudo iptables -A INPUT -m state --state RELATED,ESTABLISHED -m limit --limit 50/second --limit-burst 50 -j ACCEPT

この場合、ddos 保護はアプリから分離されており、jetty にアクセスする前に余分なパッケージがドロップされるため、より生産的です。

于 2012-11-24T03:47:35.297 に答える