Esperienza su DNS ed eMail |
|
|
|
Per la realizzazione di questo modulo useremo
Netkit4TIC
con la
connettività
con la rete reale (leggere il file README).
Scarica il tarball (5KB) contenente
lo script lab che genera l'intera esercitazione.
Questa esercitazione ripercorre gli stessi passi di quella presente nel sito www.netkit.org ma con le seguenti differenze:
ROOT,
org, net,
lugroma3.org e
nanoinside.netlugroma3.org e nanoinside.net
e sono configurati i due client pc1 e pc2
in versione semplificatapc1 e pc2xpIn aggiunta utilizzeremo anche i seguenti servizi "postali":
uw-imapd che viene fornito con il supporto SSL
e il supporto Kerberos abilitati.ipopd che ha il il supporto SSL e
il supporto Kerberos abilitati.
Entrambe questi due servizi sono stati configurati attraverso
xinetd il successore di inetd
(l'Internet super-server).
Questo servizio viene attivato al boot, ad esempio dallo script
/etc/rc.local e si mette in ascolto di connessioni su
alcune porte. Quando arriva una connessione cede il controllo al
programma associato nella configurazione presente
nel file /etc/xinetd.conf.
Vogliamo ricostruire la situazione descritta nelle slide proposte
dal sito www.netkit.org in cui esistono due mail
server che gestiscono rispettivamente il dominio lugroma3.org
e il dominio nanoinside.net. Il server smtp (MTA) utilizzato
sarà Postfix, inoltre in questi due nodi
è configurato xinetd per accettare connessioni IMAP
o POP e lanciare i relativi servizi.
Per completare il quadro utilizzeremo due pc che simuleranno rispettivamente la postazione di un utente di un dominio. Il client di posta utilizzato (MUA) sarà Mutt (non abbiamo utilizzato Pine per la sua licenza che lo esclude dalla Debian). Poichè Mutt ha bisogno di un MTA abbiamo installato nei due client anche Postfix come sistema "null client".
Configurazione del lato server |
|
La configurazione di Postfix si può dedurre con faciltà
dal documento presente sul sito stesso dove sono raccolte i "template"
per le varie tipologie di installazione. Nel nostro caso la tipologia
è quella denominata "Postfix on a local network".
Per quanto riguarda ad esempio il nodo lugroma3.org:
# /etc/postfix/main.cf myorigin = lugroma3.org mynetworks = 192.168.0.0/24 relayhost = myhostname = mail.lugroma3.org mydestination = localhost, lugroma3.org masquerade_domains = $mydomain
Solo a scopo di studio, disabilitiamo l'uso di default della comunicazione
cifrata attraverso TLS costruendo il file /etc/c-client.cf con
il seguente contenuto:
# /etc/c-client.cf I accept the risk set disable-plaintext nil
Configurazione del lato client |
|
In questo caso la tipologia
è quella denominata "Postfix null client".
Per quanto riguarda ad esempio il nodo pc1.lugroma3.org:
# /etc/postfix/main.cf myorigin = lugroma3.org relayhost = smtp.lugroma3.org inet_interfaces = 127.0.0.1 local_transport = error:local delivery is disabled masquerade_domains = $mydomain
Modifichiamo anche il comportamento del client Mutt perchè non
tenti di cifrare la comunicazione attraverso una opzione nel suo
file di configurazione ~/.muttrc:
# ~/.muttrc set ssl_starttls=no
Sperimentazione |
|
Per prima cosa verifichiamo la corretta configurazione dei servizio di risoluzione dei nomi e dei record MX che denotano i mail server:
pc2# host -t mx nanoinside.net nanoinside.net mail is handled by 5 mail.nanoinside.net. pc2# host -t mx lugroma3.org lugroma3.org mail is handled by 5 mail.lugroma3.org.
Il comando dig è più completo:
pc2# dig nanoinside.net mx +nostats +nocmd +noquestion +nocomment
nanoinside.net. 60000 IN MX 5 mail.nanoinside.net.
nanoinside.net. 60000 IN NS dns-nano.nanoinside.net.
dns-nano.nanoinside.net. 60000 IN A 192.168.0.22
Tenendo presente che sono già costruiti nei loro
rispettivi domini sia l'utente
caio@lugroma3.org che l'utente
tizio@nanoinside.net entrambi con
password not24get,
possiamo provare un reciproco scambio di e-mail.
Allo scopo sono stati preimpostati i corrispondenti
campi "From:" sia su pc1 (la postazione di Caio)
che su pc2 (la postazione di Tizio).
Procediamo simulando Caio che dal nodo pc1 si connette al suo gateway
(o mail hub) utilizzando il protocollo IMAP:
pc1# mutt -f imap://caio@imap.lugroma3.org/
e analogamente simuliamo Tizio che dal nodo pc2 si connette al suo gateway (o mail hub) utilizzando il protocollo POP3 (tanto per variare):
pc2# mutt -f pop://tizio@pop.nanoinside.net/
La connessione avviene in modalità "in chiaro" e dopo aver immesso
le rispettive password entrambe i due MUA sono pronti. Caio può
provare a spedire una mail a tizio@nanoinside.net
e quando Tizio la riceve può spedire un reply. Per forzare
la rilettura (fetch) della mailbox in modalità
imap occorre premere il tasto Z.
Abbiamo registrato la cattura completa dell'intero traffico (File ACP), il traffico smtp (File ACP), il traffico imap (File ACP) e il traffico pop (File ACP).
È possibile testare il servizio POP3 con il comando telnet:
pc2# telnet pop.nanoinside.net pop3 Trying 192.168.0.22... Connected to pop.nanoinside.net (192.168.0.22). Escape character is '^]'. +OK POP3 dns-nano.nanoinside.net v2003.83 server ready USER tizio +OK User name accepted, password please PASS not24get +OK Mailbox open, 1 messages LIST +OK Mailbox scan listing follows 1 923 . RETR 1 +OK 923 octets Return-Path: <root@lugroma3.org> X-Original-To: tizio@nanoinside.net Delivered-To: tizio@nanoinside.net Received: from mail.lugroma3.org (dns-lug.lugroma3.org [192.168.0.11]) by mail.nanoinside.net (Postfix) with ESMTP id D018E1342B for <tizio@nanoinside.net> Tue, 5 Apr 2005 10:17:10 +0200 (CEST) Received: from pc1.lugroma3.org (pc1.lugroma3.org [192.168.0.111]) by mail.lugroma3.org (Postfix) with ESMTP id 7C8F61342B for <tizio@nanoinside.net> Tue, 5 Apr 2005 10:17:08 +0200 (CEST) Received: by pc1.lugroma3.org (Postfix, from userid 0) id E03F51342B; Tue, 5 Apr 2005 10:17:05 +0200 (CEST) Date: Tue, 5 Apr 2005 10:17:05 +0200 From: Caio <caio@lugroma3.org> To: tizio@nanoinside.net Subject: test Message-ID: <20050405081704.GA345@localhost> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.6+20040907i Status: RO Hi Tizio! . QUIT +OK Sayonara Connection closed by foreign host.
Riportiamo un screenshot.
È possibile anche testare il servizio SMTP con il comando telnet:
pc2# telnet smtp.nanoinside.net smtp Trying 192.168.0.22... Connected to smtp.nanoinside.net (192.168.0.22). Escape character is '^]'. 220 mail.nanoinside.net ESMTP Postfix (Debian/GNU) HELO nanoinside.net 250 mail.nanoinside.net MAIL FROM: <tizio@nanoinside.net> 250 Ok RCPT TO: <caio@lugroma3.org> 250 Ok DATA 354 End data with <CR><LF><CR><LF> Questo e' un messaggio composta da una sola riga a scopo di test . 250 Ok: queued as EC27F1342B QUIT 221 Bye Connection closed by foreign host.
Sperimentazione client Microsoft (Opzionale) |
|
La sperimentazione con il nodo Microsoft XP Pro SP2 viene realizzata attraverso il sistema di virtualizzazione QEMU. Rimandiamo alla pagina QEMU setup per i dettagli di come settare l'ambiente. Per caricarlo:
realHost$ sudo modprobe kqemu
Di seguito supponiamo di averci costruito o di avere a disposizione
una immagine XPPSP2.img e dalla quale deriviamo un
"delta" che rappresenta la nostra "sandbox":
realHost$ ifname=`sudo tunctl -b -u knoppix`; \
qemu-img create -b XPPSP2.img -f qcow delta-XPPSP2.img; \
export QEMU_SW="-usb -usbdevice tablet -kernel-kqemu"; \
export QEMU_NET="-net nic -net tap,ifname=$ifname"; \
qemu -m 140 -hda delta-XPPSP2.img $QEMU_SW $QEMU_NET
Per questa sperimentazione utilizziamo
il client (MUA) presente su ogni installazione Microsoft: Outlook Express.
La mappa dei due ambienti virtualizzanti è
(pdf,
xml).
Per prima cosa configuriamo XP per usare il DNS
di lugroma3.org (192.168.0.11)
screenshot.
Ora passiamo alla configurazione di Outlook Express.
Configuriamo l'utente Bill Porta
screenshot,
l'indirizzo di posta elettronica bill@lugroma3.org
screenshot,
definiamo il server per la ricezione e l'invio
screenshot,
inseriamo l'account definito nel server remoto
screenshot,
e abbiamo terminato
screenshot.
Al primo accesso ci viene chiesta la password
screenshot.
Ora passiamo alla sperimentazione: attraverso il MUA mutt
presente su pc2 ci accreditiamo presso il dominio
nanoinside.net con l'account tizio e
spediamo un messaggio email all'utente
bill@lugroma3.org:
pc2# mutt -f pop://tizio@pop.nanoinside.net/ [...]
In seguito dal client
Microsoft accediamo al server imap.lugroma3.org
e verifichiamo la ricezione del messaggio
screenshot.
|
|
Sandro Doro (email me)