udpフラッドを防ぎたいので、内部ネットワークから来ておらず、udp接続に関係のないすべてのudpをドロップすると、udpフラッドを防ぐことができると思います。言い換えれば、内部ネットワークからのudpsと、外部ネットワークからのudpsだけで、最初ではなく、udp接続に関連するudpsが受け入れられ、他の人がudpフラッディングをドロップした場合、発生しないと思います。私が書いたこのiptableコードは働ける
# accept any packet that's a response to anything we sent
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p udp -s 8.8.8.0/24 -j ACCEPT
iptables -A INPUT -p udp -j DROP
8.8.8.0/24は私の内部ネットワークのアドレスです。それは本当だと思いますか?私のコードは本当ですか?
iptables
ステートメントが正しい場合でも、多くのことを達成することはできません。
UDP
はステートレスです。これは、任意の大きなUDPパケットをサーバーに送信できることを意味します。宛先UDPポートでリッスンしているプロセスがない場合、これらのパケットはカーネルによってDROP
pedされます。トラフィックはまだインターネットを通過しており、モデム/デマークにヒットしています。
UDPドロップで防ぐことができるのは、実行中のサービスに関連付けられているポートのフラッディングを防ぐことだけです。 EG:大きなDNSパケットを作成し、UDP経由でDNSサーバーのポートに送信できます。サーバーはおそらくそれらのパケットをACCEPT
し、それらを処理しようとします。ブロッキングが役立つのはこの処理です。
任意のUDPパケットをブロックしようとすると、ひどい時間を過ごすことになります。 DHCP、DNS、RPC、NFS、NTPなど...大量の重要なネットワークプロトコルがUDP上で実行されます。これらは許可する必要があります。
ネットワークをもう一度見てみることをお勧めします。 [〜#〜] if [〜#〜] UDPフラッドに問題がある場合は、正確な原因への対処と考えられる解決策を確認できます。
アップストリーム帯域幅を埋めている大きなUDPパケットで溢れている場合は、より多くの帯域幅またはDDoS保護を取得することを検討してください。
フラッドが原因で一部のアプリケーションが誤動作している場合は、アプリケーションを修正するか、より適切なアプリケーションを使用するか、パケットを事前に選別するために何らかのレイヤー7ファイアウォールに夢中になることを検討してください。
最後に、ブロッキングUDP flooding
は良い考えです。なぜなら....? ...?おそらくそうではありません。特定のUDPフラッドの問題がない限り、解決する以上に機能しなくなる可能性があります。