nginx: Çalışan işlemlerini / bağlantılarını sınırlayarak DoS'u önleyin


2

Nginx çalışan işlemlerimi 1 olarak sınırlarsam ve 500 bağlantıya izin verirsem, bu sınırı aştığımda ne olur? Sunucu, Kullanılamayan bir 503 Hizmetini döndürüyor mu?

Temel olarak, sistemimi DoS'a karşı korumaya çalışıyorum ve saniyede 500'den fazla eşzamanlı bağlantı beklemiyorum.

Yanıtlar:


5

Sunucunuzda kaç tane çekirdek var? Eğer iki çekirdeğiniz varsa, 2 işçi ve 250 kişi ayarlayabilmenizi öneririm. mak.

max_clients = worker_processes * worker_connections

Ve Evet, 501 bağlantısı bir hata alır. Ancak dikkatli olun, bir tarayıcı varsayılan olarak 2 bağlantı açar.

EDIT: Bir şey daha, IP ile maksimum bağlantı limiti ayarlayabilirsiniz (burada 10)

## Max conns for one ip
 limit_zone gulag $binary_remote_addr 5m;
 limit_conn gulag 10;

/etc/nginx/nginx.conf içinde


Teşekkürler Adrien, çok yardımcı oldu. Sunucumun yalnızca bir çekirdeği var, ben de 1 olarak ayarlıyorum. Sonra bağlantı miktarını ikiye katlayacağım. Kullanıcının ihtiyaç duyduğu içerik sunulduktan sonra bağlantı hemen kapanıyor mu?
Frank Vilea

Evet, elbette, içerik sunulduktan sonra bir bağlantı hemen kapanır, ancak saldırgan yalnızca bir SYN kullanıyorsa ve varsayılan olarak nignx (60s) zaman aşımına uğrayan bir ACK (SYN taşkın saldırısı) kullanmıyorsa: client_body_body_timeout 15; client_header_timeout 15; keepalive_timeout 15; send_timeout 15; Http {} bölümünde.
Adrien P.,

Bu harika bir yapılandırma ve tam olarak aradığım şeydi. Tekrar teşekkürler Adrien.
Frank Vilea
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.