Installazione di un Nymserver di tipo 2 (Newnym2 - Alias.net)
Copyright (c) 2004 del Progetto Winston Smith.
È 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.