May 102014
 

terminal1.jpg

Il server appare piuttosto lento potrebbero essere molte cose dalle configurazioni errate, script e hardware con problemi, ma a volte potrebbe essere perché qualcuno sta inondando il server con traffico conosciuto come DoS (Denial of Service) o DDoS (Distributed Denial of Service).

Attacco denial-of-service (attacco DoS) o attacco Distributed Denial-of-service (DDoS attack) è un tentativo di rendere non disponibile una macchina o risorsa di rete per i suoi utenti previsti. Questo attacco generalmente indirizzato a siti o servizi ospitati sui server web di alto profilo come banche, i gateway di pagamento con carta di credito, e persino i root nameserver. Attacchi DoS sono attuati forzando il computer remoto ad un reset, o consumando le risorse in modo che non possa più fornire i propri servizi o ostacolando i mezzi di comunicazione tra gli utenti e la vittima in modo che essi non possano più comunicare in modo adeguato.

In questo piccolo articolo vedrete come controllare se il server è sotto attacco dal terminale Linux con il comando netstat


Dalla pagina man di netstat “netstat – stampa le connessioni di rete, tabelle di routing, statistiche di interfaccia, connessioni masquerade, e le appartenenze multicast”

Alcuni esempi con spiegazione

netstat -na

Questo mostra tutte le connessioni Internet attive al server e sono incluse solo le connessioni stabilite.

netstat -an | grep :80 | sort

Mostra solo le connessioni Internet attive al server sulla porta 80, questa è la porta http e quindi è utile se si dispone di un server web, e ordina i risultati. Utile per individuare un unico flood, consentendo di riconoscere molte connessioni provenienti da un IP.

netstat -n -p|grep SYN_REC | wc -l

Questo comando è utile per scoprire quanti SYNC_REC attivi ci sono sul server. Il numero dovrebbe essere abbastanza basso, preferibilmente meno di 5. Durante gli incidenti o un attacco DoS o bombe di posta elettronica, il numero può diventare piuttosto alto. Tuttavia, il valore dipende sempre dal sistema, quindi un valore elevato può essere la normalità su un server.

netstat -n -p | grep SYN_REC | sort -u

Elenca tutti gli indirizzi IP coinvolti invece di contarli.

netstat -n -p | grep SYN_REC | awk '{print $5}' | awk -F: '{print $1}'

Elenca tutti gli indirizzi IP univoci del nodo che stanno trasmettendo lo stato della connessione SYN_REC.

netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n

Utilizza il comando netstat per calcolare e conta il numero di connessioni al server per ogni indirizzo IP.

netstat -anp |grep 'tcp|udp' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n

Elenca il conto del numero di connessioni per gli IP sono collegati al server tramite protocollo TCP o UDP.

netstat -ntu | grep ESTAB | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr

Controlla le connessioni stabilite invece di tutti i collegamenti, e visualizza contando le connessioni per ogni IP.

netstat -plan|grep :80|awk {'print $5'}|cut -d: -f 1|sort|uniq -c|sort -nk 1

Mostra ed elenco gli indirizzi IP ed il numero di connessione che si collegano alla porta 80 del server. La porta 80 è utilizzata principalmente dalle richieste HTTP di una pagina web.

Come mitigare un attacco DOS

Una volta che avete trovato l’IP che sta attaccando il server è possibile utilizzare i seguenti comandi per bloccare la sua connessione al server:

iptables -A INPUT 1 -s $IPADRESS -j DROP/REJECT

Si prega di notare che si deve sostituire a $IPADRESS l’ip con i numeri IP che avete trovato con netstat.
Dopo aver dato il comando precedente, uccidere tutti i collegamenti httpd per pulire il sistema e fare un restart del servizio httpd usando i seguenti comandi:

killall -KILL httpd
 
service httpd start           #For Red Hat systems 
/etc/init/d/apache2 restart   #For Debian systems



Popular Posts:

flattr this!

  4 Responses to “Come verificare gli attacchi DDOS con il comando netstat dal Terminale linux”

  1. Realy? *Face Palm*

  2. Small typo in your restart command for debian based systems:

    /etc/init/d/apache2 restart #For Debian systems

    Should read:

    /etc/init.d/apache2 restart #For Debian systems

  3. netstat -anp |grep 'tcp|udp'
    on ubuntu needs to be:
    netstat -anp |grep 'tcp\|udp'

  4. Add a null route iinux via bencane.com

    How to add a null route
    In our example we are receiving unwanted SSH login attempts from 192.168.0.195

    root@server:~# netstat -na | grep :22
    tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
    tcp 0 0 192.168.0.197:22 192.168.0.195:57776 ESTABLISHED
    To add the null route we will use the ip command

    root@server:~# ip route add blackhole 192.168.0.195/32
    To verify the route is in place will will use ip route show

    root@server:~# ip route show
    default via 192.168.0.1 dev eth0 metric 100
    blackhole 192.168.0.195

 Leave a Reply

(required)

(required)


*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>