domenica 24 agosto 2008

ferzip.com: Secure Server. Prevenire attacchi Brute Force o Denial Of Service

Secure Server. Prevenire attacchi Brute Force o Denial Of Service

Aumentare ulteriormente le protezioni , si puo, soprattutto prevenire i fastidiosi attacchi di brute force o ancora peggio di denial of service che posso oltre che rallantare il nostro server arrivare ad bloccarlo facendoci subire delle perdite vediamo un rapido script basato su IPTABLES

se facendo dei controlli o attraverso il comando ps , quindi con un output del genere

root      1728  0.0  0.8   7892  2480 ?        Rs   11:02   0:00  _ sshd: root@pts/0 root      1787  0.0  0.5   2768  1664 pts/0    Ss   11:02   0:00  |   _ -bash root     17790  0.0  0.2   2188   868 pts/0    R+   11:14   0:00  |       _ ps -auxf root     17788  0.0  0.6   6492  2016 ?        Ss   11:14   0:00  _ sshd: [accepted] sshd     17789  0.0  0.3   6492  1120 ?        S    11:14   0:00      _ sshd: [net]

oppure analizzando il mitico file /var/log/auth.log troviamo qualcosa del genere

Jul 28 21:32:16 impala sshd[10855]: Illegal user office from 213.191.74.219 Jul 28 21:32:16 impala sshd[10855]: Failed password for illegal user office from 213.191.74.219 port 53033 ssh2 Jul 28 21:32:16 impala sshd[10857]: Illegal user samba from 213.191.74.219 Jul 28 21:32:16 impala sshd[10857]: Failed password for illegal user samba from 213.191.74.219 port 53712 ssh2 Jul 28 21:32:16 impala sshd[10859]: Illegal user tomcat from 213.191.74.219 Jul 28 21:32:16 impala sshd[10859]: Failed password for illegal user tomcat from 213.191.74.219 port 54393 ssh2 Jul 28 21:32:16 impala sshd[10861]: Illegal user webadmin from 213.191.74.219 Jul 28 21:32:16 impala sshd[10861]: Failed password for illegal user webadmin from 213.191.74.219 port 55099 ssh2

allora possiamo essere sicuri che qualcuno sta facendo un mare di tentativi di conessioni siano per un brute force o denial of service sul nostro sistema

IPTABLES

Iptables è il firewall standard di Linux e se utilizzate Ubuntu, dovrebbe essere gia installato di default . Ma non fa nulla ancora. E ‘ solo li a fare presenza, così abbiamo bisogno di insegnare alcune regole per riconoscere e prevenire attacchi di brute force

Sono disponibili tool che fanno questo per noi come fail2ban. Ma se si tratta di un software gia impachettato ha dei grandi vantaggi ma  in questo articolo mi piacerebbe giocare con iptables perché fail2ban analizza i file di log per rilevare gli attacchi , a un certo intervallo di tempo, ivece  iptables funziona direttamente a livello del kernel. Inoltre a non credo che molte persone conoscono iptables molto bene anche se è preinstallato!

EASY Sartup : SOLO DUE REGOLE

Perché iptables viene fornito di serie con ogni distribuzione di Linux passiamo direttamente alla creazione delle specifiche regole del firewall che abbiamo bisogno. La configurazione di iptables prende un po ‘ troppo per essere compresa pieno e non è all’interno del presente articolo che lo analizziamo un toto, ma diamo un’occhiata a queste due dichiarazioni di esempio :

sudo iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH sudo iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 8 --rttl --name SSH -j DROP  Il parametro -i eth0 sta indicare di lavorare sulla eth0 ma se si usa un altra scheda un altra periferica esempio io uso venet0

Questo è tutto! Insieme , queste due regole saranno limite di tutte le connessioni SSH a 8 in un minuto . I normali utenti non avranno alcuna difficoltà ad accedere, ma  attacco diretto verrà chiuso limitando il numero di connesioni.

TEST

Mentre si è ancora in fase di test, si può aggiungere la seguente riga al vostro crontab

*/10 * * * * /sbin/iptables -F

Questo serve per pulire tutte le regole ogni 10 minuti , nel caso di errore si può ritentare poco dopo l’acesso.Quando siete felici dei risultati del lavoro, rimuovere la linea da crontab, e siete a posto.

ADVENCED SETUP

Scoprirete che al vostro prossimo riavvio, le regole sono anadte perse. Dannazione! Probabilmente avrete bisogno queste due regole di protezione siano ripristinate automaticamente, giusto? Il modo più elegante sarebbe probabilmente ripristinare le regole iptables quando l’interfaccia di rete ritorna on-line. Molto semplice con i sistemi Debian / Ubuntu basta generare il questo file : / etc / network / if-up.d / ferzip_protection

#!/bin/bash [ "${METHOD}" != loopback ] || exit 0 /sbin/iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH /sbin/iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 8 --rttl --name SSH -j DROP 

Per fare le cose fatte bene togliamo le regole in caso l’interfaccia di rete si resetta quindi editando questo file / etc / network /if-down.d / ferzip_protection

#!/bin/bash [ "${METHOD}" != loopback ] || exit 0 /sbin/iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH /sbin/iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 8 --rttl --name SSH -j DROP 

si noti che con -A aggiungiamo le regole con -D le togliamo

da rendere poi eseguibili entrambi i file con

chmod u+x /etc/network/if-down.d/bfa_protection chmod u+x /etc/network/if-up.d/bfa_protection 

Stessa cosa si puo fare per le altre porte tipo telnet mail ecc basta indicare come parametro a –dport la porta desiderata

pdf Secure Server. Prevenire attacchi Brute Force o Denial Of Serviceconvert this post to pdf.

1 commento:

Anonimo ha detto...

Genial fill someone in on and this mail helped me alot in my college assignement. Gratefulness you for your information.