Skip to content
Ghid pentru implementarea rate limiting

Ghid pentru implementarea rate limiting în Apache

Ghid pentru implementarea rate limiting în Apache. Implementarea rate limiting în Apache este o metodă eficientă pentru a preveni abuzurile, a reduce riscul atacurilor și a asigura disponibilitatea constantă a resurselor.

Prin activarea modulelor potrivite și configurarea limitelor corespunzătoare, veți îmbunătăți semnificativ securitatea și stabilitatea serverului web.

Ce este rate limiting și de ce este important?

Rate limiting este o tehnică de securitate utilizată pentru a limita numărul de cereri pe care un client le poate face într-un anumit interval de timp.

Aceasta ajută la prevenirea atacurilor de tip DoS, a accesului excesiv la resurse și la protejarea performanței serverului web Apache.

Ghid pentru implementarea rate limiting

1. Activarea modulelor necesare

În Apache, rate limiting poate fi implementat prin intermediul unor module precum mod_ratelimit, mod_evasive și mod_security.

  • Activați mod_ratelimit și mod_evasive cu comenzile:
a2enmod ratelimit
a2enmod evasive

După activare, reporniți Apache:

systemctl restart apache2

2. Limitarea ratei de transfer cu mod_ratelimit

Acest modul limitează viteza de transfer pentru anumite tipuri de fișiere sau cereri.

Exemplu de configurare în .htaccess sau în apache2.conf:

<IfModule mod_ratelimit.c>
  SetOutputFilter RATE_LIMIT
  SetEnv rate-limit 400
</IfModule>

Valoarea 400 limitează viteza de transfer la 400 KB/s.

3. Protecție împotriva abuzurilor cu mod_evasive

mod_evasive este un modul care detectează atacurile de tip DoS/DDoS și blochează temporar IP-urile agresive.

Configurația tipică se adaugă în fișierul /etc/apache2/mods-enabled/evasive.conf:

DOSHashTableSize 3097
DOSPageCount 5
DOSSiteCount 100
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 10
  • DOSPageCount: Număr de accesări ale aceleiași pagini într-un interval (1 sec).
  • DOSBlockingPeriod: Timp în secunde cât IP-ul va fi blocat.

4. Limitarea numărului de conexiuni pe IP

Se poate folosi modulul mod_limitipconn pentru a limita numărul de conexiuni simultane de la un IP.

Exemplu de configurare:

<IfModule mod_limitipconn.c>
  <Location />
    MaxConnPerIP 5
  </Location>
</IfModule>

5. Implementarea în Virtual Host

Puteți include setările de rate limiting și în fișierele VirtualHost pentru domenii individuale:

<VirtualHost *:80>
  ServerName www.exemplu.ro

  SetOutputFilter RATE_LIMIT
  SetEnv rate-limit 300

  ...
</VirtualHost>

6. Monitorizare și loguri

  • mod_evasive scrie loguri în /var/log/apache2/evasive.log.
  • Pentru analiză suplimentară, folosiți unelte ca fail2ban pentru a bloca automat IP-urile repetate.

7. Recomandări suplimentare

  • Testați întotdeauna noile setări pe un server de staging înainte de producție.
  • Utilizați rate limiting în combinație cu firewall-uri (UFW, iptables) pentru protecție completă.
  • Monitorizați constant performanța serverului și ajustați limitele după nevoi.
Back To Top