Il Progetto Winston Smith - scolleghiamo il Grande Fratello --- Installazione di un Nymserver di tipo 2 (Newnym2 - Alias.net) --- ---------------------------------------------- Copyright (c) 2001 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. ---------------------------------------------- Introduzione Un remailer correttamente utilizzato permette di spedire un messaggio ad un destinatario senza che nessuno, destinatario o nemico, possa risalire al mittente. Il destinatario non puo` pero` rispondere al mittente senza che quest'ultimo gli riveli la sua identita`, ed inoltre il mittente deve fidarsi del destinatario per quanto riguarda il corretto uso dei remailer; un errore nell'inoltrare la risposta da parte del destinatario potrebbe compromettere la anonimita` del mittente nei confronti del nemico. Per risolvere il problema della risposta sono stati realizzati i nym server. Un nym server e` un programma che permette di crearsi una identita` anonima, che consente al destinatario di rispondere senza dover conoscere l'indirizzo del mittente. Se l'invio del messaggio viene realizzato utilizzando, sempre tramite un apposito client, sia una catena di remailer che un nym server, e` possibile realizzare una comunicazione completamente anonima, in cui le parti non possono risalire alla reciproca identita`, e che il nemico non puo` rintracciare. L'installazione di un remailer e di un nym server richiede una macchina 486 o superiore, dotata di GNU/Linux con almeno 32 mb ram (senza X11) ed almeno 512 mb di spazio su disco. Il carico della cpu e la banda passante utilizzata per il traffico dipendono fortemente da quanto il nymserver sara` utilizzato, e saranno inizialmente quasi zero. Avere CPU pentium, clock maggiori e piu` ram non infastidisce di certo, ed un pentium 133, 64 Mb di ram e 1 Gb di disco sono una configurazione piu` che adeguata. Per smaltire un traffico alto serve comunque una banda passante adeguata; anche se il traffico di un nym e' di solito molto inferiore rispetto a quello di un tipico remailer, lo spam colpisce anche qui. Newnym2 ha un meccanismo di disabilitazione di account spammati che li disabilita se hanno un traffico superiore ad una certa soglia, ma non esiste un meccanismo che limiti uno spam piu basso ma diretto contro tutti gli account den nym. Prerequisiti: - Sistema GNU/Linux: il sistema di riferimento per questo howto e` Debian GNU Linux versione 3.0, architettura i386, kernel 2.4.26 e glibc 2.2.5; - Nymserv, versione CVS, reperibile su http://sourceforge.net/projects/nymserv eventualmente cercandolo direttamente nel cvs (fate click sul numero di versione) http://cvs.sourceforge.net/viewcvs.py/nymserv/nymserv/ - Perl 5.6.1 o superiore; - I seguenti moduli perl: libgnupg-interface-perl (v0.31), libgnupg-perl (v0.9), libdigest-md5-perl (v2.13). - GnuPG 1.2.5* (http://www.gnupg.org) - MTA Postfix (http://www.postfix.org) Per il remailing serve inoltre Mixmaster 2.9.0 o superiore (http://mixmaster.sourceforge.net) *Nota sulla versione di GnuPG: il pacchetto fornito con la distribuzione usata, ovvero GnuPG 1.0.6 ha un comportamento erratico (errori di cifratura random) e non ha il supporto per l'algoritmo IDEA. Pertanto e` necessario compilarlo dai sorgenti scaricabili dal sito http://www.gnupg.org. Per abilitare il supporto seguire le indicazioni riportate su http://www.gnupg.org/(it)/documentation/faqs.html#q3.3. Usando un gestore di pacchetti (nel nostro caso apt) puo` nascere un problema di dipendenze, in quanto i moduli di interfaccia gpg di perl richiedono il pacchetto gpg della distribuzione, che non funziona; il mio consiglio, anche se puo` sembrare un lavoro "sporco", e` di installare comunque tale pacchetto, e di rinominare poi l'eseguibile. I moduli perl useranno il GnuPG da noi compilato, a patto di averlo installato in un PATH standard (di default viene installato in /usr/local/bin). ATTENZIONE: in questo howto si fa riferimento a nym.pippo.net come hostname del nymserver. Chiaramente si tratta di un nome di fantasia preso come esempio e dovrete cambiarlo con nome reale del nym che vorrete installare. Installazione: Creare un utente non privilegiato sotto cui girera` il nymserver, che chiameremo nym: # adduser nym Diventiamo utente nym e mettiamo a punto la directory del nymserver: # su - nym $ cd /home/nym $ mkdir Nym $ chmod 700 Nym $ cd Nym $ mkdir pgp users queue Preleviamo lo script nymserv.pl, copiamolo dentro /home/nym/Nym e rendiamolo eseguibile: $ chmod +x nymserver.pl Creare le chiavi per il nostro nym: $ cd /home/nym/Nym/pgp $ gpg --homedir ~/Nym/pgp --s2k-cipher-algo BLOWFISH --cipher-algo TWOFISH --no-secmem-warning \ --no-default-keyring --keyring ~/Nym/pgp/pubring.pgp --secret-keyring ~/Nym/pgp/secring.pgp \ --gen-key Mettere come nome qualcosa tipo "pippo nym configuration address" e come indirizzo e-mail config@nym.pippo.net. Ovviamente sostituite questi nomi con quelli reali del vostro nymserver; nym.pippo.net deve essere un record A che punti all'ip del vostro server. Ora aggiungete l'altro indirizzo del nymserver, send@nym.pippo.net che servira` per l'invio dei messaggi: $ gpg --no-default-keyring --keyring ~/Nym/pgp/pubring.pgp --secret-keyring ~/Nym/pgp/secring.pgp \ --edit-key config@nym.pippo.net adduid pippo nym send address send@nym.pippo.net o la vostra passphrase q y Adesso esportate la chiave pubblica in formato ascii. Sempre in /home/nym/Nym/pgp dare: $ gpg --homedir ~/Nym/pgp --no-default-keyring --keyring ~/Nym/pgp/pubring.pgp \ --armor --export > ~/Nym/pgp/pubring.asc copiate il pubring.pgp come /home/nym/Nym/ring-proto.pgp $ cp pubring.pgp ../ring-proto.pgp in /home/nym/Nym/pgp create un file di nome "passphrase" che contenga la passphrase delle chiavi appena create. Adesso spostatevi dentro /home/nym/Nym/users e create i file "admin.forward" e "postmaster.forward" con dentro l'indirizzo e-mail dell'amministratore del nym. Inoltre va creato il messaggio che il nym inviera` a chiunque richieda la chiave: $ cd /home/nym/Nym/users $ echo "From: nobody@nym.pippo.net" > remailer-key.reply $ echo "Subject: PGP key for nym.pippo.net" >> remailer-key.reply $ echo " " >> remailer-key.reply $ cat ../pgp/pubring.asc >> remailer-key.reply Installazione del remailer Mixmaster: il nym per poter funzionare, ha bisogno di Mixmaster installato e funzionante; anche se sul vostro computer e` gia` attivo un anonymous remailer, non e` buona cosa utilizzare il pool di quest'ultimo per il remailing da parte del nym. Conviene installare una copia di Mixmaster nella home directory dell'utente nym e dedicarlo esclusivamente al nymserver. Prelevare una copia dei sorgenti della versione 2.9.0, scompattarla e spostarsi all'interno della directory appena creata. Se non disponete di una versione decente di OpenSSL gia` installata, lo script di configurazione potrebbe lamentarsi; scaricate il tar.gz dell'ultima release da http://www.openssl.org, compilate ed installate. Se preferite utilizzare il nuovo OpenSSL solo per Mixmaster, potete scompattare i sorgenti nella sottodirectory "Src" di Mixmaster e verra` automaticamente compilato insieme al Mixmaster stesso. Adesso eseguite lo script "Install"; lo script vi chiedera` alcune cose: accettate le risposte di default ad eccezione di "Do you want to set up a remailer? [y]" dove risponderete "no". Al termine della compilazione avrete la directory Mix dentro /home/nym. Non resta che modificare il file di configurazione mix.cfg in modo che rispecchi questo: ========================================================================= SENDMAIL /usr/sbin/sendmail -t ######################## Client configuration: ########################## REMAIL y SENDPOOLTIME 0h NUMCOPIES 1 DISTANCE 2 MINREL 98 RELFINAL 99 MAXLAT 36h MIX y PGP y UNENCRYPTED y ========================================================================= Il lavoro su Mixmaster e` finito. Se avete dei dubbi o volete altre informazioni a riguardo, consultate la parte dedicata a Mixmaster nella documentazione del PWS. Ora possiamo ritornare al nym, configurando il nymserver.pl vero e proprio. Apritelo con un editor di testo e modificate le seguenti righe nella prima parte del file: ========================================================================= # Configuration: my $HOMEDIR = '/home/nym/Nym'; #directory di lavoro del nym my $HOSTNAME = 'nym.pippo.net'; #sostituitelo con il vero hostname del nym my $SENDMAIL = '/usr/sbin/sendmail'; my $QMAIL_CODES = 0; # Use qmail rather than sendmail exit codes my $REMAIL = '/home/nym/Mix/mix -SR'; #directory di Mixmaster # Specify your nymserver key ID right here. # Warning : this must be the longkeyid ! my $NYMKEYID = 'C0F7C28AC7A31815'; #id della chiave del nym ========================================================================= Per ottenere il longkeyid della chiave del nym usate questo comando: $ gpg --homedir ~/Nym/pgp --no-default-keyring --keyring ~/Nym/pgp/pubring.pgp \ --with-colons --list-keys otterrete qualcosa tipo: tru::0:1093349939:0 pub:-:1024:17:C0F7C28AC7A31815:2004-07-26:::-:Pippo Nym Server ::scESC: ^^^^^^^^^^^^^^^^ uid:-::::::::Pippo Nym Server : sub:-:1024:16:F3469C93B2582FCC:2004-07-26::::::e: il longkeyid da riportare e` la parte di 16 cifre evidenziata. Altra modifica da apportare e` nella linea n°104 del nymserver.pl che dovrete sostituire con questa: $ENV{'PATH'} = '/usr/local/bin'; in modo da utilizzare l'eseguibile gpg da noi compilato. Configurazione MTA Postfix: per il delivery dei messaggi al nymserver possiamo utilizzare o procmail debitamente istruito oppure usare il transport di Postfix. Noi useremo quest'ultima soluzione. Da root editate il file "transport", tipicamente in /etc/postfix ed aggiungete la seguente riga: ======================================================================== nym.pippo.net nymserver: ======================================================================== in questa maniera tutti i messaggi @nym.pippo.net verranno dirottati verso il transport nymserver. Create il database con: # postmap transport ora aggiungete questa riga a master.cf, sempre in /etc/postfix: ======================================================================== nymserver unix - n n - - pipe flags=FR user=nym argv=/home/nym/Nym/nymserver.pl -d $recipient ======================================================================== controllate anche che in /etc/postfix/main.cf ci sia: ======================================================================== transport_maps = hash:/etc/postfix/transport ======================================================================== Riavviate postfix: # postfix reload Il lavoro e` finito. Se tutto va come si deve, inviando un messaggio a remailer-key@nym.pippo.net vi dovrebbe arrivare la chiave del nymserver. L'ultimo passo e` cercare di creare un reply-block e testarne il funzionamento. Se avete dei problemi e non riuscite ad uscirne, scrivete alla lista del PWS e-privacy@firenze.linux.it, iscrivendovi prima a questo url http://lists.firenze.linux.it/mailman/listinfo/e-privacy e qualcuno vi dara` certamente una mano.