私はsynエージェントとconnlimitルールを作成したいと思います。パフォーマンスの問題のため、まずパケットをSynプロキシに送信したいと思います。
これは例示的なルールです。
#syn proxy rule
iptables -t raw -A PREROUTING -i eth1 -p tcp -m tcp --syn -j CT --notrack
iptables -t filter -A FORWARD -i eth1 -p tcp -m tcp -m state --state INVALID,UNTRACKED -j SYNPROXY --sack-perm --timestamp --wscale 7 --mss 1460
iptables -t filter -A FORWARD -i eth1 -m state --state INVALID -j DROP
#connlimit rule
iptables -t filter -A FORWARD -i eth1 -p tcp -m tcp --syn -m connlimit --connlimit-above 100 -j DROP
問題は、synパケット(接続を開くパケット)がsynプロキシルールを超えることができないため、connlimitと一致できないことです。私はsynproxyで使用できるようにconnlimitを書く別の方法を探しています。
答え1
私は同じルール(ブリッジのsynproxy)を使用しましたが、通常のtcpリクエストが機能しないことに気づきました。つまり、synproxy ルールを実装した後、すべての syn 要求がブロックされました。 tcpdumpを使用して監視しました。同期エージェントのルールが期待どおりに機能するかどうか疑問に思います。