web-dev-qa-db-ja.com

LinuxマシンでスプーフィングされたSYNフラッドから保護するにはどうすればよいですか?

サーバーがあります(2 x E2620、32 GB RAM、Debian 6 Linux us-fw 2.6.32-5-AMD64#1 SMP Mon Feb 25 00:26:11 UTC 2013 x86_64 GNU/Linux、10G Intelイーサネットカード)。内部にNginxプロキシサーバーがあります。アイデアは、DDoS攻撃に対するフロントエンドとして使用することです。現在、500kppsのスプーフィングされたSYNフラッドに直面すると、ほとんど応答しなくなります。私はすでにsyncookiesとさまざまなsysctlパラメーターを試しました。ハーフオープン接続タイムアウトが1秒であっても、バッファをいっぱいにするのに十分です。なりすましのsynフラッドに対してそれを強化する方法はありますか?たぶん、いくつかのハードコア設定またはfwルール?

1
Sergey Lensky

iptablesには、ホストが使用できる接続の数を制限するためのさまざまな一致があります。

許可される接続の数を制限することで、DDoS攻撃の影響を軽減できます。

  • hashlimitの使用:
$ iptables -A INPUT -i eth0 -s any/0 -d IP.AD.DR.ESS/32 -p tcp --syn --sport 1024: --dport 80 -m hashlimit --hashlimit-name http-flood --hashlimit-mode srcip --hashlimit-upto 5/s

これにより、新しい各ホストが1秒あたり5つの接続を開くことができます。

  • connlimitの使用:
$ iptables -A INPUT -i eth0 -s any/0 -d IP.AD.DR.ESS/32 -p tcp --syn --sport 1024: --dport 80 -m connlimit --connlimit-saddr --connlimit-upto 5

これにより、新しい各ホストが最大5つの並列接続を開くことができます。

ただし、送信元IPアドレスを確認しているときに、NATの背後にいる人々に大きな影響を与える可能性があることに注意してください。

試してみて、正しい制限値を見つけることができます。

Syncookieを有効にすることも良い考えです。

2
Spack