Benvenuti

Apache su Linux: Come limitare il Numero di Richieste per IP e ridurre il rischio di attacchi DOS

Apache su Linux: Come limitare il Numero di Richieste per IP e ridurre il rischio di attacchi DOS
Scritto da Lunedì 5 Novembre 2012 in Appunti in codice
Letto 2,607 volte

 

 

Capita a volte che qualche furbone voglia scaricare a tutti i costi con uno script, le immagini dei prodotti nello store di un vostro cliente senza preoccuparsi minimamente delle conseguenze che questo possa comportare.

Se il furbone in questione poi crea uno script che in loop legge l’elenco dei prodotti e ne prende l’ n+1 elemento, il DB potrebbe avere dei seri problemi se la pagina ha molti prodotti e potrebbe arrivare alla saturazione se si supera il limite di connessioni disponibili.

Per correre ai ripare e prevenire quanto più possibile quello che potrebbe tranquillamente definirsi un’attacco DOS ci sono molti sistemi.

E’ possibile ad esempio inibire l’accesso al server web se nell’arco di N secondi sono state stabilite X connessioni.
Per realizzare questo blocco, basta intervenire sul firewall interno iptables come indicato di seguito:

 

Modificando i parametri –seconds  e –hitcount sarà possibile definire il limite massimo di nuove connessioni per IP (–hitcount) in un lasso di tempo (–seconds ).

Il funzionamento è il seguente:

  1. Iptables verifica se l’indirizzo IP del client è presente nel file /proc/net/ipt_recent/IPCONNECTION già 5 volte negli ultimi 600 secondi  e se la richiesta sia di una nuova connessione . Se è così la richiesta viene scartata e nessuna connessione viene stabilita
  2. Se la condizione al punto 1 non è soddisfatta, iptables verifica se il chiamante vuole connettersi alla porta 80, permette la connessione e scrive nel file /proc/net/ipt_recent/IPCONNECTION l’indirizzo IP e timestamp del chiamante per la verifica  successiva

 

This Post Has 0 Comments

Leave A Reply