Old:Wiimote: differenze tra le versioni

m
ha spostato Wiimote a Old:Wiimote
m (ha spostato Wiimote a Old:Wiimote)
 
(25 versioni intermedie di 7 utenti non mostrate)
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]].
{{Old}}


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 è un controller prodotto dalla Nintendo usato come controller per la console Wii.
È possibile utilizzarlo per controllare numerose applicazioni nell'ambiente Linux, questa guida fornisce una descrizione 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++.
===Funzionamento===
Il funzionamento è spiegato bene [http://en.wikipedia.org/wiki/Wii_Remote nelle pagine wikipedia].


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...
Riassumendo brevemente, il controller è composto da una telecamera infrarossi che punta verso la parte anteriore, i vari tasti e un trasmettitore interno Bluetooth. Dopo aver effettuato il collegamento sarà possibile ricevere i comandi del joypad nonché le immagine raccolte dalla mini-videocamera. Proprio grazie a quest'ultime sarà possibile, eseguendo la triangolazione della luce emanata dai led infrarosso, calcolare la direzione in cui punta il WiiMote.


== Il funzionamento ==
Una alternativa è quella di utilizzare il comando Wii come telecamera fissa e quindi di adoperare una penna IR per scrivere sul video come se si fosse su una lavagna luminosa. Con questa grande intuizione nasce l'economica, ma funzionante e funzionale, '''WiiLD'''.
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).
===Hardware necessario===
Per poter adoperare il WiiMote sono necessari, oltre al controller stesso:
* una serie di led infrarossi, può essere sia la barra fornita con la Wii stessa sia 4/5 led infrarossi sciolti da posizionare lungo un bordo del televisore [modalità di solo puntamento];
* un trasmettitore bluetooth per ricevere i segnali sul computer;
* una penna IR [modalità WiiLD], facilmente autocostruibile.


====Come costruire la penna IR====


Attenzione al LED utilizzato.


== Installazione ==
Lista esempi:
L'installazione � semplice:  
<pre>
# apt-get install fail2ban
</pre>


== Configurazione ==
=Installazione=
Il file di configurazione � <tt>/etc/fail2ban/jail.local</tt> e contiene i parametri necessari al funzionamento del software
Ci sono varie librerie a disposizione, il sito di riferimento è sicuramente http://abstrakraft.org/cwiid/, sito di sviluppo della libreria Cwiid che è la più completa e testata. Vediamo cosa installare a seconda dell'uso di cui andremo a fare del nostro Wii.


Il file di configurazione � diviso per sezioni: Ogni sezione inizia ha una struttura simile a:
==WiiMote come sistema di puntamento==
<pre>
<pre>aptitude install lswm wminput wmgui</pre>
[nomesezione]
<pre>modprobe uinput</pre>
parametro = valore
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.
==La WiiLD==
<pre>aptitude install gtkwhiteboard</pre>


== I Parametri ==
==Configurazione del sistema==
I parametri pi� importanti sono:
Per poter utilizzare il Wiimote sotto Linux è necessario che sia attivo il modulo del kernel relativo al usbhid, in Ubuntu digitare:
<pre># modprobe usbhid</pre>


; <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
altrimenti [[Debian Kernel Howto |Ricompilare il kernel]] e attivarne il modulo.
; <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


==Pacchetti necessari==
Installare i seguenti pacchetti con il nostro amato apt-get:
<pre># 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</pre>


== Esempi di Azioni ==
Ora lanciamo hcitool scan premendo contemporaneamente i tasti 1 e 2
=== 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>$ hcitool  scan
<pre>action = iptables[name=%(__name__)s, port=%(port)s]
Scanning ...
</pre>
        00:19:1D:6B:3D:A3      Nintendo RVL-CNT-01</pre>


=== Filtraggio con Notifica ===
Se l'operazione riesce il sistema è pronto per essere utilizzato.
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 ===
=Utilizzo della libreria Cwiid=
Come prima, ma in aggiunta sono presenti anche le linee del file di log che hanno fatto scattare l'allarme.
A disposizione avrete dei comandi che vi permetteranno di utilizzare il vostro controller:
<pre>action = iptables[name=%(__name__)s, port=%(port)s]
*wminput: permette di utilizzare il wiimote come un mouse;
          mail-whois-lines[name=%(__name__)s, dest=%(destemail)s, logpath=%(logpath)s]
*wmgui: è un'interfaccia grafica per testare tutti gli eventi del controller;
</pre>


= Conclusioni =
==Esempio di implementazione in un programma C ==
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
Un [http://abstrakraft.org/cwiid/browser/trunk/wmdemo/wmdemo.c?rev=179 esempio ] lo si trova sul sito di cwiid  oppure all'interno della directory con i
<pre>
[http://abstrakraft.org/cwiid/downloads/cwiid-0.6.00.tgz  sorgenti] del programma nella directory wmdemo.
# /etc/init.d/fail2ban restart
</pre>


[[Categoria:Sicurezza]]
In linea generale c'è 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.
[[Categoria:Networking]]
Prima di far questo ci sarà una fase di connessione (cwiid_open) che chiederà il BBSID, un codice identificativo che abbiamo precedentemente visto
durante la chiamata del comando "hcitool scan".
 
 
=Problematiche varie=
Per risolvere eventuali problemi vi invito sia a postare sulla pagina "discussioni" sia sul forum debianizzati.org. La guida è ancora in fase di stesura, quindi ogni critica e consiglio sarà ben voluto.
 
==Problematiche hardware==
===Videocamera IR===
Attenzione che altre fonti di luce possono emettere raggi infrarossi. Ad esempio candele, ma soprattutto il sole. Se adoperato in piena luce solare la telecamera potrebbe essere accecata o fortemente disturbata.
 
 
===LED IR===
Attenzione che i led sono direzionali (con un angolo di puntamento in genere attorno ai 30°) quindi attenzione a non utilizzarli storti. Per utilizzare la WiiLD sarebbe meglio adoperare un led IR ad alta potenza rispetto ai classici in commercio.
3 581

contributi