Il Progetto Winston Smith - scolleghiamo il Grande Fratello --- Come realizzare un pinger Echolot (20031119) ------ ---------------------------------------------- Copyright (c) 2003 del Progetto Winston Smith. E` garantito il permesso di copiare, distribuire e/o modificare questo documento seguendo i termini della GNU General Public License, Versione 2.0, pubblicata dalla Free Software Foundation. ---------------------------------------------- Un pinger è un software che ad intervalli di tempo prestabiliti invia dei messaggi opportunamente formati ad uno o più remailer anonimi per testarne la funzionalità e la disponibilità; in seguito calcola delle statistiche che possono essere rese disponibili attraverso delle pagine web, per permettere ai client di scegliere la catena di remailer con i requisiti ottimali per l'invio dei messaggi. Prerequisiti: * Un sistema Gnu/Linux o Unix, con processore 486 o superiore e 32 Mbyte di ram; * Connessione ad internet di tipo permanente *DSL o superiore; * Perl , versione 5.8 o superiore; * GnuPG , versione 1.0.7 o superiore; * Mixmaster (se sulla macchina è già presente un remailer è possibile usare l'eseguibile di quest'ultimo); * Un MTA locale funzionante (nel nostro caso sarà Postfix ); * Procmail ; * ovviamente echolot , del quale al momento della scrittura di questo testo l'ultima versione era la 2,1. Serviranno inoltre i seguenti moduli Perl: * HTML::Template; * GnuPG::Interface (versione 0.33 o superiore); * Data::Dumper; * Digest::MD5 INSTALLAZIONE: Controllare se sul proprio sistema siano presenti i software elencati sopra e salvare una copia di Echolot. Da root, creare l'utente pinger (ovviamente il nome può essere di vostra scelta) loggarsi con l'utente appena creato e scompattare echolot-21.tar.gz nella home directory (|/home/pinger|); rinominare la directory appena creata e contenente tutti i file di Echolot in |/home/pinger/echolot|. Spostarsi dentro quest'ultima e copiare il file |pingd.conf.sample| in |pingd.conf| e dopo editare questo file in modo che i percorsi e le directory rispecchino quelle del vostro sistema. Se Mixmaster è già presente nel sistema, specificare il percorso dell'eseguibile mix in |pingd.conf|, tenendo presente che echolot non condivide il pool usato dal Mixmaster esistente né i suoi keyrings; controllare che l'utente pinger abbia i permessi di esecuzione sul binario mix. Se si preferisce, si può compilare ed installare mixmaster nella directory |/home/pinger/Mix| e lasciarlo ad uso esclusivo di Echolot. Modificare, sempre in |pingd.conf|, my_localpart e my_domain con i valori adatti per la propria configurazione (riferirsi agli esempi riportati nel file |pingd.conf| originale, piuttosto chiari). my_localpart descrive il nome utente a cui verranno recapitati i messaggi di test, e my_domain è il dominio del computer su cui verrà fatto funzionare Echolot. Assicurarsi che il vostro MTA supporti le user defined mailbox; nel caso di postfix, aggiungere (da root) in |/etc/postfix/main.cf| questa opzione: recipient_delimiter = + Con questa opzione tutti i messaggi inviati a pinger+quello_che_si_vuole@dominio verranno recapitati all'utente pinger. Se il vostro MTA non supporta questa funzionalità, in |pingd.conf| alla voce recipient_delimiter lasciare "" (ovvero lasciare l'opzione vuota.. non è comunque raccomandabile per il buon funzionamento del pinger). Echolot può usare i formati per le mailbox maildir (preferibile) oppure mbox: se viene usato il formato maildir, di default le mail in arrivo saranno cercate in |/home/pinger/echolot/mail|; altrimenti, usando mbox, si dovrà specificare nell'opzione mailin di |pingd.conf| il percorso |/var/mail/pinger| (o comunque il percorso dello spool dove verranno recapitate le mail in arrivo). Passi da seguire se si usa il formato maildir (tralasciare se si vuole usare mbox): 1. Creare la mailbox in |~/echolot|: $ mkdir ~/echolot/mail 2. Controllare in |/etc/postfix/main.cf| che Postfix usi procmail per lo smistamento della posta; se non fosse presente aggiungere, da root: mailbox_command = /usr/bin/procmail (o dove si trova l'eseguibile di procmail). Per rendere funzionanti le modifiche apportate, riavviare Postfix con: # postfix reload 3. Infine, creare nella home directory dell'utente pinger, il file |.procmailrc| contenente queste istruzioni: |:0| |$HOME/echolot/mail/| In questo modo tutte le mail in arrivo saranno recapitate nella mailbox |/home/pinger/echolot/mail|. Tengo a ricordare che questi passi vanno eseguiti *solo* se si usa il formato maildir per la mailbox, che è quello preferibile. 4. Infine, controllare nuovamente che tutti i file e le directory presenti in |/home/pinger| appartengano effettivamente all'utente pinger. AVVIARE ECHOLOT LA PRIMA VOLTA: Procurarsi degli indirizzi di remailer funzionanti (per esempio da http://stats.mixmaster.it/mlist2.txt) e dopo essersi loggati come utente pinger, aprire due terminali; sul primo eseguire questi comandi: $ cd echolot $ ./pingd --verbose start In questo modo verrà avviato il pinger, in modalità verbose. Dal secondo terminale, sempre come utente pinger, eseguire: $ cd echolot $ ./pingd add indirizzo_1 indirizzo_2 etc. etc. Se si vuole aggiungere tutti gli indirizzi presenti nella lista mlist2.txt appena salvata, usare questa serie di comandi: $ cd echolot $ grep \$remailer mlist2.txt | cut -f 2 -d \< | cut -f 1 -d \> | xargs ./pingd add Controllare sul primo terminale che non vi siano messaggi di errore e/o di malfunzionamento. Dopo aver aggiunto i remailer alla lista del pinger, far richiedere ad Echolot le chiavi e la configurazione dei remailer con: $ ./pingd getkeyconf I risultati, dopo qualche minuto di funzionamento, saranno visibili in |~/echolot/results| in forma testuale ed html (la home page è *echolot.html*); per cambiare il nome della home page in index.html, si può modificare l'opzione "indexfilebasename" in |pingd.conf| mettendo come valore "index" (senza l'estensione .html) o più semplicemente creare un link: $ cd echolot/results $ ln -s echolot.html index.html Per fermare echolot, basta impartire un: $ ./pingd stop oppure passando un CTRL-C sul terminale da dove è stato avviato. A questo punto, se tutto è andato per il verso giusto, si può dare un'occhiata al file di log |~/echolot/pingd.log| per ricontrollare che non vi siano errori, e non resta che rendere avviabile il pinger al boot della macchina usando lo script pingctl che si trova dentro la sottodirectory tools, e facendo gli opportuni collegamenti ai run level del sistema che si sta usando.