|
|
Riga 1: |
Riga 1: |
| '''Fail2ban''' ([http://www.fail2ban.org Sito ufficiale]) � un software che � nato per permettere di bloccare gli host che stanno tentando di effettuare un attacco di [[brute force]] via [[ssh]].
| | {{stub}} |
|
| |
|
| Questo genere di attacco si basa su continui tentativi di accesso, provando o l'username [[root]] con password probabili (come ''password'', ''root'', ''toor'' e cos� via..) oppure tramite coppie di username/password conosciute (create, ad esempio, da [[malware]] o da [[rootkit]]...).
| | =Introduzione= |
| | Il Wiimote e' un controller prodotto dalla Nintendo usato come controller per la console Wii. |
| | E' possibile utilizzarlo per controllare numerose applicazioni nell'ambiente Linux, questa guida e una descrizione pratica del suo utilizzo e |
| | di come sfruttare la libreria [http://abstrakraft.org/cwiid/ Cwiid ] per il suo uso all'interno di una applicazione in C o C++. |
|
| |
|
| Con le ultime versioni, per�, si � ampliato ed � in grado di coprire svariati servizi (che andranno, per�, configurati manualmente), come ad esempio apache, vsftpd, postfix, etc...
| | =Installazione= |
| | Ci sono varie librerie a disposizione, il sito di riferimento e' sicuramente http://www.wiili.org/, per questa mini-guida si utilizzera' |
| | la libreria Cwiid che e' la piu' completa e testata. |
|
| |
|
| == Il funzionamento == | | ==Configurazione del sistema== |
| Il funzionamento � semplice: il software si occupa di effettuare il parsing di alcuni file di log (nel caso di ssh, <tt>/var/log/auth.log</tt>) che contengono le informazioni relative agli accessi falliti. Se vengono contati un numero di tentativi maggiori ad una soglia, l'indirizzo IP viene bloccato per un tempo impostato e non potr� pi� accedere al servizio in ascolto su quella porta (ma potr� ancora accedere a quelli sulle altre, cosa molto importante nel caso di indirizzi IP condivisi, come avviene per Fastweb o all'interno delle reti aziendali).
| | Per poter utilizzare il Wiimote sotto Linux e' necessario che sia attivo il modulo del kernel relativo al usbhid, in Ubuntu digitare |
| | modprobe usbhid |
|
| |
|
| | altrimenti [[Debian Kernel Howto |Ricompilare il kernel]] e attivarne il modulo. |
|
| |
|
| | ==Pacchetti necessari== |
| | Installare i seguenti pacchetti con il nostro amato apt-get: |
| | apt-get install autoconf awk, bison, flex, bluez-utils bluez-hcidump |
| | apt-get install hcitool autotools-dev libbluetooth2-dev libgtk2.0-dev flex bison libcwiid1 libcwiid1-dev |
|
| |
|
| == Installazione ==
| | Ora lanciamo hcitool scan premendo contemporaneamente i tasti 1 e 2 |
| L'installazione � semplice:
| | |
| <pre>
| | j3no@kropotkin:~$ hcitool scan |
| # apt-get install fail2ban
| | Scanning ... |
| </pre>
| | 00:19:1D:6B:3D:A3 Nintendo RVL-CNT-01 |
|
| |
|
| == Configurazione ==
| | Se l'operazione riesce il sistema e' pronto per essere utilizzato |
| Il file di configurazione � <tt>/etc/fail2ban/jail.local</tt> e contiene i parametri necessari al funzionamento del software
| |
|
| |
|
| Il file di configurazione � diviso per sezioni: Ogni sezione inizia ha una struttura simile a:
| | =Utilizzo della libreria Cwiid= |
| <pre>
| | A disposizione avrete dei comandi che vi permetteranno di utilizzare il vostro controller: |
| [nomesezione]
| | *wminput: permette di utilizzare il wiimote come un mouse |
| parametro = valore
| | *wmgui: e' un'interfaccia grafica per testare tutti gli eventi del controller |
| parametro2 = valore
| |
| parametro3 = valore
| |
| </pre>
| |
|
| |
|
| Ogni sezione, quindi, identificher� un controllo da eseguire. Fa eccezione la prima: <tt>[DEFAULT]</tt>, in quanto contiene i valori di default che verranno usati nelle sezioni successive; ovviamente potranno essere ridefiniti per adattarli ai propri gusti.
| | ==Esempio di implementazione in un programma C == |
| | Un esempio lo si trova sul sito di cwiid http://abstrakraft.org/cwiid/browser/trunk/wmdemo/wmdemo.c?rev=179 oppure all'interno della directory con i |
| | sorgenti del programma http://abstrakraft.org/cwiid/downloads/cwiid-0.6.00.tgz nella directory wmdemo. |
|
| |
|
| == I Parametri ==
| | In linea generale c'e' una struttura dati messa a disposizione dall'API (cwiid_state) che viene passata ad una chiamata (cwiid_get_state) la quale aggiorna la descrizione dello stato dei sensori presenti sul wiimote in quel momento. |
| I parametri pi� importanti sono:
| | Prima di far questo ci sara' una fase di connessione (cwiid_open) che chiedera' il BBSID, un codice identificativo che abbiamo precedentemente visto |
| | durante la chiamata del comando "hcitool scan" |
|
| |
|
| ; <tt>ignoreip = 127.0.0.1</tt> : permette di indicare un elenco di ip su cui non verr� fatto il controllo. Utile per non ''tagliare fuori'' accidentalmente l'ufficio
| | --[[Utente:J3no|J3no]] 10:00, 3 giu 2008 (CDT) |
| ; <tt>bantime = 600</tt> : il tempo, in secondi, per cui un host verr� bannato
| |
| ; <tt>maxretry = 3</tt> : il numero massimo di tentativi dopo cui effettuare il ban dell'host
| |
| ; <tt>destemail = root@localhost</tt> : l'indirizzo e-mail a cui inviare la mail di notifica
| |
| ; <tt>action = iptables[name=%(__name__)s, port=%(port)s]</tt> : l'azione da prendere. Quella di default blocca semplicemente l'accesso alla porta del servizio all'ip che ha sforato il numero di tentativi massimo.
| |
| ; <tt>enabled = true</tt> : abilita i controlli all'interno della sezione
| |
| ; <tt>port = ssh</tt> : indica la porta da bloccare
| |
| ; <tt>filter = sshd</tt> : indica il filtro da utilizzare (contenuto all'interno della directory <tt>/etc/fail2ban/filter.d</tt> )
| |
| ; <tt>logpath = /var/log/auth.log</tt> : il file contenente il log da controllare
| |
| | |
| | |
| == Esempi di Azioni ==
| |
| === Filtraggio semplice ===
| |
| Questa azione applica semplicemente un filtro in modo che l'host che ha effettuato un numero di tentativi maggiori di quello definito viene fermato.
| |
| <pre>action = iptables[name=%(__name__)s, port=%(port)s]
| |
| </pre>
| |
| | |
| === Filtraggio con Notifica ===
| |
| Questa regola amplia quella precedente, in quanto manda una mail contenente l'ip ed il [[whois]] dell'ip dell'host che ha fatto scattare l'allarme
| |
| <pre>
| |
| action = iptables[name=%(__name__)s, port=%(port)s]
| |
| mail-whois[name=%(__name__)s, dest=%(destemail)s]
| |
| </pre>
| |
| | |
| === Filtraggio con Notifica Avanzata ===
| |
| Come prima, ma in aggiunta sono presenti anche le linee del file di log che hanno fatto scattare l'allarme.
| |
| <pre>action = iptables[name=%(__name__)s, port=%(port)s]
| |
| mail-whois-lines[name=%(__name__)s, dest=%(destemail)s, logpath=%(logpath)s]
| |
| </pre>
| |
| | |
| = Conclusioni =
| |
| Una volta installato, il software � automaticamente attivo, e gira in [[background]] come servizio. In caso di modifica del file di configurazione, � necessario effettuare un restart del servizio tramite il comando
| |
| <pre>
| |
| # /etc/init.d/fail2ban restart
| |
| </pre>
| |
| | |
| [[Categoria:Sicurezza]]
| |
| [[Categoria:Networking]]
| |