PWS logo

Inseriamo qui molte pagine di un Progetto di enorme interesse

molti dei link potrebbero essere irraggiungibili,

QUI PUOI TROVARE IL SITO COME E' OGGI

PWS logo

Il Progetto Winston Smith

scolleghiamo il Grande Fratello

 
Navigazione
  
  Home page
  
  
  Chi siamo
  
  
  Partecipazione
  
  
  Documenti
  
  
  Sw Crypto
  
  
  Sw Freenet
  
  
  Mail List
  
  
  
  
  
  
  

Come realizzare un remailer

(23/01/2003)

(winstonsmith@nym.alias.net)
 

 

Copyright (c) 2003 del Progetto Winston Smith.

È garantito il permesso di copiare,

distribuire e/o modificare questo documento

seguendo i termini della GNU Free Documentation

License, Versione 1.1

pubblicata dalla Free Software Foundation;

con le tutte le Sezioni Non Modificabili.

Una copia della licenza è acclusa nel file

COPYING, distribuito insieme a questo documento.

 

Un remailer anonimo è un programma che riceve posta opportunamente crittografata tramite appositi programmi client, la decrittografa per la parte di sua competenza, e la inoltra ad un altro remailer od al destinatario finale.

Se il mittente del messaggio utilizza una catena di almeno 3 remailer per inviare la posta, il messaggio è irrintracciabile anche se uno dei 3 remailer fosse sotto completo controllo del nemico.

I remailer di tipo Mixmaster adottano precauzioni particolari per nascondere il flusso dei messaggi in arrivo ed in partenza, suddividendoli in parti tutte della stessa lunghezza, generando messaggi fasulli, e spedendo i messaggi ad intervalli casuali.

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 può però rispondere al mittente senza che quest'ultimo gli riveli la sua identità, 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 anonimità del mittente nei confronti del nemico.

Per risolvere il problema della risposta sono stati realizzati i nym server.

Un nym server è un programma che permette di crearsi una identità 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, è possibile realizzare una comunicazione completamente anonima, in cui le parti non possono risalire alla reciproca identità, e che il nemico non può 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 X) 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 remailer sarà utilizzato, e saranno inizialmente quasi zero.

Avere CPU pentium, clock maggiori e più ram non infastidisce di certo, ed un pentium 133, 64 Mb di ram e 1 Gb di disco sono una configurazione più che adeguata. Per smaltire un traffico alto serve comunque una banda passante adeguata; aspettatevi che il collo di bottiglia sia lì.

A tutti gli effetti, a parte i privilegi richiesti durante l'installazione, un remailer è semplicemente un utente dedicato che riceve e trasmette posta automaticamente utilizzando l'MTA della macchina su cui è installato (sendmail, qmail, etc.).

 

installazione di Mixmaster 2.9beta40 su distribuzione GNU/Linux

 

Preparazione all'installazione

Creare un nuovo utente e chiamatelo ad es. anon

# adduser anon

Verificare di avere installati sul proprio sistema sia GPG che PGP

2.6.3i per gestirsi chiavi DH e RSA.

Come utente anon scaricare il file mixmaster-2.9beta39.tar.gz dal sito

http://www.sourceforge.net/projects/mixmaster/

nella home directory dell'utente anon e decomprimere il pacchetto:

$ tar xzvf mixmaster-2.9b39.tar.gz

$ cd mixmaster-2.9b39

Eseguire il comando ./Install e rispondere alle domande con le scelte che trovate nel log di installazione che segue.

Tra parentesi tonda trovate dei commenti.

L'installazione vera e propria

$ ./Install

Mixmaster directory? [/home/anon/Mix]

Do you want to set up a remailer? [y]

Do you want to compile the passphrase into the binary? [n]

Use the source if the pre-installed library causes compilation problems.

Use source? [n]

(Le domande che seguono sono parametri che andranno nel file mix.cfg

che potra' comunque essere modificato in seguito)

Install as middleman? [n]

(i remailer middleman accettano e inviano posta solo ad altri remailer;

questa modalita' puo' essere utile ad es. nel caso in cui il remailer sia

usato da qualcuno per fare spamming e l'operatore subisca pressioni per

chiuderlo.)

The e-mail address of your remailer:

(inserite l'indirizzo del vostro remailer)

Do you want Mixmaster to send auto-replies to messages it does not

understand (If the address <anon@esempio.it> is also used

for mail to be read by a human, type `n')? [y]

(se si attiva questa opzione il mixmaster rispondera' con un messaggio

di spiegazioni alle e-mail che non interpreta come messaggi correttamente

inviatigli nel formato mixmaster (altre spiegazioni piu' sotto)).

An address to appear in the `From:' line of anonymous messages:

(inserite l'indirizzo che deve comparire come mittente

dei messaggi che transitano dal vostro remailer; di solito si usa nobody)

Address for complaints to be sent to:

(e' buona definire un indirizzo come abuse che sara' l'indirizzo usato per

inviare lamentele all'operatore).

Choose a name for your remailer. It will appear in remailer status messages.

Long name: [Anonymous Remailer]

Choose a name to be used in the `From:' line of remailed messages.

Anon long name: [Anonymous]

A short name to appear in lists:

(questo sara' il "nome" del remailer con il quale sara' definito nelle liste

pubbliche dei remailer attivi; e' importante che non sia piu' lungo di

8 caratteri e che non contenga lettere maiuscole).

Accept Mixmaster (Type II) messages? [y]

(per accettare messaggi nel formato mixmaster (type II) )

Accept PGP (Type I) remailer messages? [y]

(per accettare messaggi nel formato cypherpunk (type I) )

Mixmaster will log error messages and warnings. Do you want to log

informational messages about normal operation as well? [y]

(il remailer non logga gli IP, pero' puo' generare dei log

riguardo la sua attivita', problemi, errori e operazioni compiute,

utile soprattutto nella fase iniziale di debug)

Filter binary attachments? [y]

Allow users to add themselves to the list of blocked addresses? [y]

(il remailer controlla se l'indirizzo di destinazione di un messaggio

e' presente in un file di testo, e in caso affermativo non lo spedisce;

se un utente riceve spamming dal remailer puo' chiedere che l'operatore

lo inserisca nella block list, oppure puo' farlo da solo se questa

opzione e' attivata).

Do you want to allow posting? Newsgroups can be restricted in dest.blk.

y)es, post locally; use m)ail-to-news gateway; n)o.

Allow posting to Usenet? [m]

Mail-to-news gateway: [mail2news_nospam@nym.alias.net]

Pool size: [20]

(se arriva un messaggio finisce nel pool e ne esce dopo tot tempo, tanto

maggiore quanto piu' e' grande il pool dei messaggi, se pero' e' troppo

grande possono esserci problemi di latenza perche' i messaggi restano

troppo nel pool prima di uscire; un valore basso e' utili per le prove).

Mailbox for non-remailer messages: [/home/anon/Mix/mbox]

(mailbox per i messaggi che il remailer non riconosce perche' non

contengono istruzioni di remailing)

Set .forward to the following line:

"|/home/anon/Mix/mix -RM"

Do that now? [n]

(potete scegliere se usare questo formato oppure dire no e usare procmail

che e' piu' versatile, spiegato piu' avanti)

Risposte automatiche impostate:

Mail to <anon@esempio.it> with Subject: remailer-help => help.txt

Mail to <anon@esempio.it> with Subject: remailer-adminkey => adminkey.txt

Remember to add your Remailer Admin public PGP key to the adminkey.txt file.

Mail to <anon@esempio.it> with line DESTINATION-BLOCK => blocked.txt

Other mail to <anon@esempio.it> => usage.txt

If you arrange for mail to <abuse@esempio.it> and <nobody@esempio.it>

to be forwarded to <anon@esempio.it>:

Mail to <abuse@esempio.it> => abuse.txt

Mail to <nobody@esempio.it> => reply.txt

Mixmaster installation complete.

Post-installazione

 

A questo punto come root dobbiamo impostare in /etc/aliases (questo dipende dal vostro MTA)

due alias di posta per far arrivare all'utente anon i messaggi destinati ad abuse e nobody.

abuse: anon

nobody: anon

e lanciare il programma newaliases per aggiornare il database degli alias

Se usate sendmail come MTA l'avete installato con smrsh (un meccanismo per consentire l'utilizzo dei pipe) bisogna creare un link nella directory /usr/lib/sm.bin :

# cd /usr/lib/sm.bin

# ln -s /home/anon/Mix/mix mix

 

A questo punto il remailer dovrebbe funzionare, ma bisogna fare ancora qualcosa prima di renderlo pubblico in modo che sia utilizzabile in catena:

Bisogna modificare un paio di parametri nel file mix.cfg, soprattutto bisgona aggiungere:

AUTOREPLY Y

per fare in modo che risponda in modo automatico ad alcune richieste (vedi sopra) e ho attivato la gestione separata delle mailbox:

MAILBOX mbox.mix

MAILABUSE mbox.abuse

MAILBLOCK mbox.block

MAILUSAGE mbox.usage

MAILANON mbox.anon

MAILERROR mbox.error

MAILBOUNCE mbox.bounce

queste mailbox sono leggibili dall'utente anon con mutt e contengono messaggi errati,

messaggi che vanno in bounce, richieste per l'utente abuse, errori vari e richieste

di blocco delle persone che non vogliono che il remailer gli mandi i messaggi.

Per avere le mailbox facilmente accessibili con mutt bisogna impostare nel file .muttrc dell'utente anon:

set folder=~/Mix

Le mailbox saranno poi accessibili con mutt inserendo nel file .muttrc una riga come questa :

mailboxes +mbox.mix +mbox.abuse +mbox.block etc. etc.

Il remailer va annunciato alla lista dei remailer operators remops@lexx.shinn.net e al newsgroup alt.privacy.anon-server

Bisogna anche scrivere a mike@shinn.net per inserire l'IP della macchina su cui gira il remailer nella sua "white list", in pratica e' una lista di IP di remailer da cui il suo remailer accetta i messaggi, (altrimenti i msg inviati attivano un flood detector e quindi vengono bloccati).

Se non glielo si comunica i msg per il remailer "shinn" &lt; remailer@freedom.gmsociety.org &gt; vengono rispediti al mittente e finiscono nel folder dei bounce (e sono tanti).

Ho messo nel .procmailrc dell'utente anon queste istruzioni:

:0

*

"|/home/anon/Mix/mix -RM"

Ho eliminato i simboli dall'eseguibile

cd ~/Mix

strip mix

 

Tenere aggiornate chiavi e statistiche

Per avere una lista dei remailer disponibili sempre aggiornata e' utile usare lo script getmix.sh

http://lexx.shinn.net/cmeclax/getmix.html

che scarica chiavi e statistiche dei remailer.

Copiarlo in /usr/local/bin e dare il comando:

# chmod +x /usr/local/bin/getmix.sh

per renderlo eseguibile.

E' buona regola eseguirlo regolarmente per restare aggiornati, editare

il crontab dell'utente anon con

$ crontab -e -u anon

e aggiungere questa riga:

*/30 * * * * /home/anon/Mix/getmix.sh

in modo che ogni 30 minuti vengano scaricate chiavi e statistiche aggiornati.

Il remailer administrator

Bisogna creare una chiave PGP/GPG che avra' uno user-ID remailer-admin@esempio.it,

con questa chiave si firmeranno tutti i messaggi postati nella mailing list dei remailer-operators.

Bisogna creare l'utente remailer-admin@esempio.it in /etc/aliases che verra' indirizzato all'utente anon o a chi si

occupera' della gestione dei rapporti con la comunita' cypherpunk e con gli utenti.

Per firmare tutti i msg in uscita dalla mailbox, usando mutt come client di posta di puo' bisogna impostare settare il .muttrc in questo modo:

my_hdr From: remailer-admin@esempio.it

set pgp_autosign

set pgp_sign_as="remailer-admin@esempio.it"

my_hdr X-PGP-Key-fingerprint: A9 32 4A CB 3C 4B 5D DA AB 34 BC A6 4D C8 44 5C

set realname="remailerX Admin"

 

====================================================

 

Installare un'interfaccia web per il remailer

E' possibile scaricare dal server autistici.org una serie di script che consentono di installare un'interfaccia web per il remailer mixmaster.

http://remailer.autistici.org/webscripts.tar.gz

Ponendo che la Root Directory di apache sia /home/apache,

creo la directory /home/apache/mixmaster con una sottodirectory cgi-bin.

sposto il file webscripts.tar.gz in /home/apache/mixmaster e lo decoprimo con:

$ tar -xzvf webscripts.tar.gz

I 4 file .cgi li sposto in /cgi-bin

Adesso devo modificare qualche file per adattarlo al mio sistema:

file: gc

riga 13: sostituisco il percorso con quello dove io ho installato lo script:

cd /home/apache/mixmaster

commento le righe dalla 31 alla 35 perche' non voglio che i file type2.list e pubring.mix raccolti da questo script vadano a sovrascrivere quelli raccolti dal remailer mixmaster con un altro script.

Quindi anche alla riga 22 tolgo il "&& \" finale perche' mi basta il wget che preleva il file mlist2.txt

 

riga 54: sostituisco con: cp rems2 /home/apache/mixmaster/cgi-bin/rems

riga 65: sostituisco con: cp outdata /home/apache/mixmaster/cgi-bin/data

riga 69: sostituisco con: cat output | grep Generated > /home/apache/mixmaster/cgi-bin/current

 

file: send

inserisco il percorso dove risiede l'eseguibile del remailer mixmaster:

/home/anon/Mix/mix -S

 

file: cgi-bin/mixemail-send.cgi

riga 27: inserisco il percorso dell'eseguibile del mixmaster:

$mix = "/home/anon/Mix/mix";

Ovviamente l'eseguibile del mixmaster dovra' essere accessbile all'owner del processo httpd, in genere e' l'utente nobody, quindi occhio ai permessi.

 

file: cgi-bin/mixnews-send.cgi

vedi file precedente, stessa variabile da definire alla riga 27

 

file: cgi-bin/mixemail-user.cgi

imposto i percorsi dove si troveranno alcuni files delle statistiche:

riga 25: $current = "/home/apache/mixmaster/cgi-bin/current";

riga 28: $data = "/home/apache/mixmaster/cgi-bin/data";

riga 29: $rems = "/home/apache/mixmaster/cgi-bin/rems";

riga 71: open(CURRENT, "/home/apache/mixmaster/cgi-bin/current");

 

file: cgi-bin/mixnews-user.cgi

vedi file precedente, bisogna definire i percorsi per le variabili current, data e rems, che sono alle righe 26, 29 e 30.

 

poi c'e' da impostare un cron che lanci lo script gc ogni ora:

0 */1 * * * /home/apache/mixmaster/gc > /dev/null 2>&1

il cron sara' quello dell'utente coi cui permessi gira apache, di solito nobody.

dare un chmod +x a tutti gli scripts per renderli eseguibili

infine bisogna lavorare su apache creando due virtualhost per

mixmaster.mioserver.org, uno per la porta 80 che mostri un errore,

perche' la connessione deve avvenire criptata in https, quindi sulla

porta 443, e uno appunto per la porta 443 che consenta l'esecuzione degli script cgi.

Qui' sotto e' riportato un esempio:

<VirtualHost 80.71.227.37:80>

ServerAdmin webmaster@esempio.it

DocumentRoot /home/apache/mixmaster/error

ServerName mixmaster.esempio.it

ErrorLog "/var/log/apache/mixmaster-error_log"

CustomLog /var/log/apache/mixmaster-access_log common

</VirtualHost>

<IfModule mod_ssl.c>

<VirtualHost 80.71.227.37:443>

ServerAdmin webmaster@esempio.it

DocumentRoot /home/apache/mixmaster/cgi-bin/mixemail-user.cgi

ServerName mixmaster.esempio.it

ErrorLog "/var/log/apache/mixmaster-error_log-ssl"

CustomLog /var/log/apache/mixmaster-access_log-ssl common

ScriptAlias /cgi-bin/ "/home/apache/mixmaster/cgi-bin/"

SSLEngine on

#SSLCertificateFile /etc/apache/ssl.crt/para.pem

SSLCertificateFile /etc/ssl/certs/apache.pem

SSLCertificateKeyFile /etc/ssl/keys/apache-key.pem

<Files ~ "\.(cgi|shtml|phtml|php3?)$">

SSLOptions +StdEnvVars

</Files>

</Virtualhost>

 

Questo sito ed i suoi contenuti sono distribuiti sotto la Gnu Free Documentation License