接続を受け入れるWebSocketサーバーがあります。残念ながら、一部のクライアントが不正になり、接続/切断/接続...が非常に高い頻度でループしていることをまだ特定していないという理由で。これは、他の合法的なクライアントに対処し、ペナルティを課すための混乱です。
トラフィックをドロップするためにIPTABLEレコードを追加しましたが、すぐに別のクライアントが混乱し始めます。同時に、以前は悪い動作をしていたクライアントが再び正常に動作し始める可能性があります。 IPTABLEを一日中手動で編集することはあまりスケーリングしません。
頻繁に接続しようとするこれらのクライアントからのトラフィックを動的にブロックする方法はありますか?もちろん、これを行うと、他の正当なクライアントからリソースが奪われるため、WebSocketサーバーでこれを行うことは避けたいと思います。
はい、クライアントからの特定の頻度の接続要求をブロックするようにiptablesを構成できます。
http://www.debian-administration.org/articles/187
iptables -I INPUT -p tcp --dport 80 -i eth0 -m state --state NEW -m latest --set
iptables -I INPUT -p tcp --dport 80 -i eth0 -m state --state NEW -m latest --update --seconds 60 --hitcount 10 -j DROP
基本的に、ユーザーを1分間に10回だけ接続するように制限します。