Laboratorio

Modulo 17 - Internet Server

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:

In aggiunta utilizzeremo anche i seguenti servizi "postali":

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.

Creative Commons License FREE THE MOUSE Valid HTML! Sandro Doro (email me)
Ultima modifica: $Date: 2007-02-10 08:05:46 $