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 <http://www.perl.org>, versione 5.8 o superiore;
    * GnuPG <http://www.gnupg.org>, versione 1.0.7 o superiore;
    * Mixmaster <http://mixmaster.sourceforge.net> (se sulla macchina è
      già presente un remailer è possibile usare l'eseguibile di
      quest'ultimo);
    * Un MTA locale funzionante (nel nostro caso sarà Postfix
      <http://www.postfix.org>);
    * Procmail <http://www.procmail.org>;
    * ovviamente echolot <http://savannah.gnu.org/download/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.