UsbMount: Gestione automatizzata delle periferiche USB di memorizzazione: differenze tra le versioni

m
nessun oggetto della modifica
mNessun oggetto della modifica
mNessun oggetto della modifica
Riga 1: Riga 1:
=NdisWrapper=
==Introduzione==
==Introduzione==
Questa guida indica come utilizzare NdisWrapper, che permette di utilizzare i driver non nativi per le schede wireless sotto GNU/Linux.
Per quando NdisWrapper utilizzi quindi driver spesso proprietari, e quindi contrari all'etica del software libero, un programma che viene rilasciato sotto GPL.


Il progetto NdisWrapper fornisce un modulo per il Kernel di Linux che in grado di caricare ed eseguire i drivers Ndis (Windows network driver API) sostituendo di fatto il mancato rilascio dei drivers nativi. NdisWrapper lavora bene con molte schede miniPCI (builtin), PCI, PCMCIA (solo Cardbus) nonch� le schede USB. Per verificare il livello di compatibilit� con la vostra scheda Wireless consultate il progetto Wiki di NdisWrapper [http://ndiswrapper.sourceforge.net/phpwiki/index.php/ qui].
In questa guida spiegher� come sostituire il filtro antispam di evolution (che usa spamassassin) con un filtro molto pi� veloce (in quanto bayesiano): bogofilter.
Usando Evolution ho notato che il filtro antispam che richiede l'uso di spamassassin � molto lento soprattutto inserendo i controlli esterni (ovvero ogni mail viene confrontata con una lista di mail-spam note). Vi sar� capitato forse anche di usare Thunderbird che include un filtro anti-spam bayesiano (� un tecnica statistica) e di notare che questo tipo di filtro � molto pi� veloce ed ugualmente accurato (non so in termini assoluti quale sia il migliore ma per usi SOHO entrambi sono ampiamente soddisfacenti).


Il sito web di riferimento per il progetto NdisWrapper [http://ndiswrapper.sourceforge.net/ questo]. Proprio dal sito del progetto ho provveduto a scaricare la distribuzione in formato tarball che contiene i codici sorgenti.  
� possibile usare un filtro bayesiano anche con evolution, con conseguente aumento della velocit�. A tal scopo basta usare bogofilter, un filtro antispam bayessiano da linea di comando. Per i pi� smaliziati descriver� sinteticamente il procedimento, gli altri troveranno informazioni pi� dettagliate nel seguito. In pratica basta usare la funzionalit� di evolution di creare filtri che come condizione di verifica discriminano il valore di ritorno di un programma al quale stata mandata in pipe l'email. � molto pi� semplice di quello che sembra in realt�. Il vantaggio di velocit� � notevole anche perch� si possono filtrare prima tutte le mail delle mailing list e mandare al filtro antispam solo le altre email. Lo svantaggio � che, usando una tecnica statistica, bisogna inizialmente "istruire" bogofilter a riconoscere lo spam, ma la cosa non presenta problemi se si dispone gi� di alcune decine di email di spam.


==Installazione==
===Compilazione===


La procedura di compilazione e di installazione dei sorgenti piuttosto semplice:
==Usare bogofilter sulle mailbox di Evolution==
 
Evolution mette le mail in /home/$USER/.evolution/mail/local/, un file (in formato mbox) per ogni cartella che abbiamo in Evolution. Le email della cartella "Posta in arrivo" compreso lo spam ("da Cestinare") st� tutta nel file Inbox: evolution aggiunge infatti un header che gli permette di distinguere lo spam dall'ham (prosciutto in inglese: tutto ci� che non � spam). Ora, per istruire bogofilter molto pi� comodo di disporre dello spam in un file separato. A tal scopo apriamo evolution e spostiamo tutta la posta in "Da cestinare" in una nuova cartella che chiameremo fantasiosamente Spam.
 
Per istruire ora bogofilter su cosa sia spam, scriveremo in un terminale dalla cartella /home/$USER/.evolution/mail/local/:


<pre>
<pre>
# tar zxvf ndiswrapper-1.4rc1.tar.gz
    $ cat Spam | bogofilter -M -s
# cd ndiswrapper-1.rc1
# make && make install
</pre>
</pre>


===Configurazione===


A questo punto avviamo ndiswrapper
dove "Spam" � la cartella di evolution (qui file mbox) in cui abbiamo spostato lo spam. Se abbiamo indicato come spam un file di mail "pulite" possiamo annullare l'operazione con lo stesso comando sostituendo -S al posto di -s.
 
Per indicare quali mail non sono spam scriveremo invece:


<pre>
<pre>
# ndiswrapper
    $ cat Inbox | bogofilter -M -n
Usage: ndiswrapper OPTION
Manage ndis drivers for ndiswrapper.
-i inffile        Install driver described by 'inffile'
-d devid driver  Use installed 'driver' for 'devid'
-e driver        Remove 'driver'
-l                List installed drivers
-m                Write configuration for modprobe
-hotplug          (Re)Generate hotplug information
</pre>
</pre>


la procedura di installazione del driver Ndis � piuttosto banale, in genere lo stesso viene incluso nel supporto CDROM allegato alla scheda Wireless o al pc.
 
Potremo ripetere il precendente comando anche per gli altri file corrispondenti a posta "pulita". Ad esempio io l'ho anche eseguito sugli altri file che contenevano i messaggi delle mailing list a cui sono iscritto. Se abbiamo indicato come mail "pulite" un file contentente spam, possiamo annullare l'operazione con lo stesso comando sostituendo -N al posto di -n.
 
Per vedere quanto adesso sia chiara a bogofilter la differenza tra spam e ham possiamo visualizzare un diagramma con il comando (dalla home):


<pre>
<pre>
# ndiswrapper -i /media/cdrom/drivers/nomedriver.inf
    $ bogoutil -H .bogofilter/wordlist.db
</pre>
</pre>


il driver Ndis � stato installato, per verificare l'insieme dei drivers installati utilizziamo il comando ndiswrapper
 
dovremmo vedere in istogramma con due massimi nettamente distinti, questo vuol dire che a bogofilter � abbastanza chiara la differenza tra spam e ham. Ad esempio ecco come appare il mio istogramma, dopo aver inserito alcune centinaia di email come ham e una ottantina di mail come spam:


<pre>
<pre>
# ndiswrapper -l
    Histogram
Installed ndis drivers:
    score  count  pct  histogram
nomedriver driver present, hardware present
    0.00    59199 81.65 ################################################
    0.05      178  0.25 #
    0.10      114  0.16 #
    0.15      114  0.16 #
    0.20      139  0.19 #
    0.25      159  0.22 #
    0.30      139  0.19 #
    0.35      147  0.20 #
    0.40      160  0.22 #
    0.45      201  0.28 #
    0.50      151  0.21 #
    0.55      187  0.26 #
    0.60      150  0.21 #
    0.65      155  0.21 #
    0.70      243  0.34 #
    0.75      227  0.31 #
    0.80      251  0.35 #
    0.85      324  0.45 #
    0.90      356  0.49 #
    0.95    9905 13.66 #########
    tot    72499
    hapaxes: ham  30363 (41.88%), spam      2 ( 0.00%)
      pure:  ham  59036 (81.43%), spam    9161 (12.64%)
</pre>
</pre>


===Utilizzo===


A questo punto dobbiamo fare in modo di caricare in memoria il modulo ndiswrapper in modo che lo stesso possa finalmente gestire la nostra scheda Wireless:
Se abbiamo una email possiamo ora controllare se sia spam o meno dandola in pipe a bogofilter con il seguente comando:


<pre>
<pre>
# modprobe ndiswrapper
    $ cat messaggio | bogofilter
</pre>
</pre>


la scheda Wireless viene finalmente inizializzata ed pronta per lavorare, per verificare lo stato dell'interfaccia Wireless utilizziamo l'utility iwconfig (Wireless Tools for Linux - [http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html])
 
Se il valore di ritorno (echo $?) � 0 la mail sar� spam, se 1 sar� ham, se � 2 bogofilter � incerto.
 
Da qui si capisce come sia possibile costruire un piccolo script al quale mandare in pasto (in pipe, tecnicamente) le nostre mail ed a seconda del valore di ritorno evolution sposter� o meno il messagio nella cartella dello Spam. Un esempio � il seguente:


<pre>
<pre>
# iwconfig
    #!/bin/sh
lo       no wireless extensions.
    # antispam - Wrapper per bogofilter
eth0      no wireless extensions.
    #
sit0      no wireless extensions.
    # Dare in pipe a questo script l'email da controllare
wlan0     IEEE 802.11g  ESSID:off/any
    # Ritorna:
          Mode:Managed  Frequency:2.462 GHz  Access Point: 00:00:00:00:00:00
    #  0  per lo spam
          Bit Rate:54 Mb/s   Tx-Power:16 dBm
    #  1  per l'ham
          RTS thr:2347 B  Fragment thr:2346 B
    #  2  se il messaggio e' incerto
          Encryption key:off
    #
          Power Management:off
 
          Link Quality:100/100  Signal level:-10 dBm  Noise level:-256 dBm
    SPAMBOX="/home/$USER/.evolution/mail/local/Spam"
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
     HAMBOX="/home/$USER/.evolution/mail/local/Inbox"
          Tx excessive retries:0  Invalid misc:0  Missed beacon:0
 
</pre>
    # Commentare se non si vuole istruire bogofilter sullo spam ogni volta
    # che si scarica la posta
    cat $SPAMBOX | bogofilter -M -s  
   
    # Commentare se non si vuole istruire bogofilter sull'ham ogni volta
    # che si scarica la posta
    cat $HAMBOX | bogofilter -M -n
 
   
    # Controlla il messaggio dato in pipe (legge lo stdin)
    bogofilter


per consentire alla nostra macchina di caricare il modulo ndiswrapper con il boot del sistema operativo dobbiamo modificare il file /etc/modules utilizzando sempre l'utility ndiswrapper
    # Valore di ritorno
    RESULT=$?


<pre>
    echo $RESULT
# ndiswrapper -m
    exit $RESULT
Adding "alias wlan0 ndiswrapper" to /etc/modules
</pre>
</pre>


Per utilizzare una connessione di rete Wireless che dobbiamo procedere con la configurazione della scheda di rete Wireless affinch la stessa sia in grado di colloquiare con l'access point (AP).
Ora ricorriamo nuovamente all'utilizzo dell'utility iwconfig


<pre>
Potete, ad esempio, salvare lo script precedente col nome antispam, copiarlo nel PATH (ad es. /usr/local/bin/) e renderlo eseguibile (chmod +x antispam). Ogni volta che viene mandato in pipe una email a questo script, bogofilter viene aggiornato su cosa � spam e su cosa no e poi ci dir� se il messagio passato � spam o meno.
# iwconfig -h
Usage: iwconfig interface [essid {NN|on|off}]
                          [nwid {NN|on|off}]
                          [mode {managed|ad-hoc|...}
                          [freq N.NNNN[k|M|G]]
                          [channel N]
                          [ap {N|off|auto}]
                          [sens N]
                          [nick N]
                          [rate {N|auto|fixed}]
                          [rts {N|auto|fixed|off}]
                          [frag {N|auto|fixed|off}]
                          [enc {NNNN-NNNN|off}]
                          [power {period N|timeout N}]
                          [txpower N {mW|dBm}]
                          [commit]
</pre>


in alto possiamo visualizzare alcune delle opzioni che utilizzeremo per configurare al meglio la nostra scheda di rete Wireless, in particolare utilizzeremo le seguenti impostazioni
==Configurare Evolution per l'uso di bogofilter==


<pre>
Non ci resta ora che configurare Evolution. Disabilitiamo innanzi tutto il filtro antispam integrato di evolution. Poi creiamo un nuovo filtro per la posta in entrata. Come condizione di verifica del filtro (riquadro '''Se''') mettiamo "In pipe a programma", come nome del programma il nome dello script (/usr/local/antispam) e come valore di ritorno 0. Ora baster� aggiungere l'azione da compiere (riquadro '''allora''') che sar� ovviamente "Sposta nella cartella" Spam.
# iwconfig wlan0 rate auto
# iwconfig wlan0 mode managed
# iwconfig wlan0 channel 11
# iwconfig wlan0 key s:WEP_KEY enc open
# iwconfig wlan0 essid nome_nodo
</pre>


a questo punto dovremmo attivare l'interfaccia di rete wlan0 per collegarci con l'AP (access point)
Ultimo consiglio che do � quello di inserire il filtro antispam alla fine della lista filtri (se ne avete altri), spostandolo in basso. Inserendo poi negli altri filtri come azione oltre a "Sposta nella cartella" anche "Arresta l'elaborazione" in modo che se il messagio corrisponde al filtro non verr� pi� processato dai filtri successivi. In questo modo arriveranno a bogofilter molti meno messaggi e l'elaborazione sar� ancora pi� veloce. Io uso questo metodo perch� non arriva spam alle mailng list a cui sono iscritto. Se vi arrivase spam anche dalle mailing list, potete non usarlo e fare filtrare tutto a bogofilter.


<pre>
==Conclusioni==
# ifconfig wlan0 up
</pre>


ora non ci resta che farci assegnare un indirizzo IP dall'AP utilizzando il nostro client dhcp


<pre>
Concludo dicendo che questa � solo una delle implementazioni possibili. Ad esempio per velocizzare ulteriormente il controllo antispam si possono commentare i cat nello script, e poi di tanto in tanto aggiornare a mano bogofilter su cosa � spam e cosa � ham. Oppure si pu� usare questo procedimento con una altro programma di posta (MUA) diverso da Evolution.Le possibilit� sono infinite. Spero di essere riuscito a spiegare la logica delle cose (piuttosto che aver dato una soluzione bell'e pronta) in modo che ognuno di voi possa adattare quanto detto per rispondere alle proprie esigenze, e anche (perch� no) al proprio capriccio. E, in fondo, non � proprio questo il bello di usare software libero?
# dhclient wlan0
</pre>


==Ringraziamenti==
Happy hacking!
Un ringraziamento a [http://www.irretito.it/ Stefano Tagliaferri] per aver scritto l'how -to su cui mi sono basato per la mia esperienza con ndiswrapper.


----
----
Autore: [[Utente:Jango|jango]]
Autore: [[Utente:TheNoise|~ The_Noise]]
[[Categoria:Hardware]]
1 760

contributi