Petrov Server Mail

Da Wiki-itsos.

Situazione Iniziale

  • Macchina Liv 1 Ubuntu 14 64bit
  • server DNS fiunzionante

Obiettivo

  • Inviare mail tra utenti della stessa macchina
  • Inviare mail da client a server
  • Inviare mail da server a server

Azioni Svolte

Inviare mail tra utenti della stessa macchina

Macchina Server
Installare il software SendMail: sudo apt-get install sendmail

root@PetrovServerMail:/# apt-get install sendmail


Verificare che il servizio sia stato installato correttamente con il comando service sendmail status o netstat -tap

root@PetrovServerMail:/# service sendmail status
MSP: is run via cron (20m)
MTA: 2533 /usr/sbin/sendmail-mta -Am -L sm-mta -bd -q10m
UID        PID  PPID  C STIME TTY          TIME CMD
root      2533     1  0 08:41 ?        00:00:00 sendmail: MTA: accepting connections
Daemon Status: (process 2570) Console socket child

Current number of children: 0
QueueDir free disk space (in blocks): 6167000
Load average: 0
Child Process 2533 Status: accepting connections

QUE: Same as MTA
root@PetrovServerMail:/#
root@PetrovServerMail:/# netstat -tap
Connessioni Internet attive (server e stabiliti)
Proto CodaRic CodaInv Indirizzo locale        Indirizzo remoto       Stato       PID/Program name
tcp        0      0 localhost:submission    *:*                     LISTEN      2533/sendmail: MTA:
tcp        0      0 petrov.tes.mi.i:domain *:*                     LISTEN      868/named
tcp        0      0 localhost:domain        *:*                     LISTEN      868/named
tcp        0      0 *:ssh                   *:*                     LISTEN      826/sshd
tcp        0      0 localhost:smtp          *:*                     LISTEN      2533/sendmail: MTA:
tcp        0      0 localhost:953           *:*                     LISTEN      868/named
tcp        0     64 petrov.tes.mi.it:ssh   10.200.7.136:52069      ESTABLISHED 1035/sshd: tech [pr
tcp6       0      0 [::]:domain             [::]:*                  LISTEN      868/named
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN      826/sshd
tcp6       0      0 localhost:953           [::]:*                  LISTEN      868/named
root@PetrovServerMail:/#


Inviare la mail: comando echo -e "<testo>" | sendmail -v <destinatario>

root@PetrovServerMail:/# echo "Subject:Oggetto \nPrima Mail!" | sendmail -v ns.petrov.tes.mi.it


Verificare che la mail sia stata inviata correttamente, leggere il file /var/mail/tech

root@PetrovServerMail:/var/mail# cat tech
Date: Thu, 14 Jan 2016 09:33:51 +0100
From: Petar <tech>
Message-Id: <201512040833.tB48XptJ002892@PetrovServerMail>
Subject:Oggetto

Prima Mail

--tB48XptK002892.1449218031/PetrovServerMail--

root@PetrovServerMail:/var/mail#

Inviare mail da client a server

Cambiare gli hostname con il comando nano /etc/hostname inserendo i nomi dichiarati nelle zone del dominio
Riavviare la macchina

root@PetrovServerMail:/# nano /etc/hostname
 ns.petrov.tes.mi.it
root@PetrovServerMail:/# reboot
...
ns Login:
root@PetrovServerMailClient:/# nano /etc/hostname
 client.petrov.tes.mi.it
root@PetrovServerMailClient:/# reboot
...
client Login:

Macchina Client
Installare MailUtils che installerà SendMail e PostFix: sudo apt-get install mailutils

root@client.petrov.tes.mi.it:/# apt-get install mailutils
Petrovmail.png


Selezionare [Sito Internet] e proseguire.

Petrovmail2.png


Attribuire un nome al Server di Posta e proseguire.

Petrovmail3.png


Stoppare il servizio Postfix con il comando service postfix stop
Modificare il file "/etc/postfix/main.cf" con il comando nano /etc/postfix/main.cf:
alla voce "mynetworks" aggiungere l'indirizzo di rete del Server Mail.

mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 10.200.7.0/24

Salvare le modifiche e riavviare il servizio con il comando service postfix start

Controllare il file "/etc/postfix/main.cf" con il comando nano /etc/postfix/main.cf
Alla voce MyHostName deve trovarsi in nome dichiarato nelle zone del dominio
In caso di modifiche: riavviare il servizio

root@client.petrov.tes.mi.it:/# nano /etc/postfix/main.cf
[...]
myhostname = client.petrov.tes.mi.it
[...]


Inviare la mail: comando echo -e "<testo>" | sendmail -v <destinatario>

root@client.petrov.tes.mi.it:/# echo -e "Subject:Oggetto \nMail al Server!" | sendmail -v tech@ns.petrov.tes.mi.it
Mail Delivery Status Report will be mailed to <root>.
root@client.petrov.tes.mi.it:/#


Analizzare il file "/var/log/mail.log" con il comando tail -f /var/log/mail.log

root@client.petrov.tes.mi.it:/# tail -f /var/log/mail.log 
Jan 14 08:32:39 client.petrov.tes.mi.it postfix/pickup[1332]: 1F835413D2: uid=0 from=<root>
Jan 14 08:32:39 client.petrov.tes.mi.it postfix/cleanup[1338]: 1F835413D2: message-id=<20151218073239.1F835413D2@client.petrov.tes.mi.it>
Jan 14 08:32:39 client.petrov.tes.mi.it postfix/qmgr[1333]: 1F835413D2: from=<root@client.petrov.tes.mi.it>, size=336, nrcpt=1 (queue active)
Jan 14 08:32:39 client.petrov.tes.mi.it postfix/smtp[1340]: connect to ns.petrov.tes.mi.it[10.200.7.29]:25: Connection refused
Jan 14 08:32:39 client.petrov.tes.mi.it postfix/smtp[1340]: 1F835413D2: to=<tech@ns.petrov.tes.mi.it>, relay=none, delay=0.02, delays=0.01/0/0/0, dsn=4.4.1, status=deferred (connect to ns.petrov.tes.mi.it[10.200.7.29]:25: Connection refused)


La connessione è stata rifiutata come ci aspettavamo.

Macchina Server
Analizzare le connessioni con il comando netstat -tap

root@ns.petrov.tes.mi.it:/home/tech# netstat -tap
Connessioni Internet attive (server e stabiliti)
Proto CodaRic CodaInv Indirizzo locale        Indirizzo remoto       Stato       PID/Program name
tcp        0      0 localhost:submission    *:*                     LISTEN      1007/sendmail: MTA:
tcp        0      0 petrov.tes.mi.i:domain *:*                     LISTEN      810/named       
tcp        0      0 localhost:domain        *:*                     LISTEN      810/named       
tcp        0      0 *:ssh                   *:*                     LISTEN      761/sshd        
tcp        0      0 localhost:smtp          *:*                     LISTEN      1007/sendmail: MTA:
tcp        0      0 localhost:953           *:*                     LISTEN      810/named       
tcp        0      0 petrov.tes.mi.it:ssh   10.200.7.96:46203       ESTABLISHED 1240/sshd: tech [pr
tcp        0      0 petrov.tes.mi.it:ssh   10.200.7.96:46202       ESTABLISHED 1160/sshd: tech [pr
tcp6       0      0 [::]:domain             [::]:*                  LISTEN      810/named       
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN      761/sshd        
tcp6       0      0 localhost:953           [::]:*                  LISTEN      810/named       
root@ns.petrov.tes.mi.it:/home/tech#

Le porte sono in ascolto su localhost: è necessario intervenire sulle configurazioni del servizio Postfix

Stoppare il servizio Sendmail con il comando service sendmail stop

root@ns.petrov.tes.mi.it:/# service sendmail stop
 * Stopping Mail Transport Agent (MTA) sendmail                                                                 [ OK ] 
root@ns.petrov.tes.mi.it:/#

Modificare il file "/etc/mail/sendmail.md" con il comando nano /etc/mail/sendmail.md

root@ns.petrov.tes.mi.it:/# nano /etc/mail/sendmail.md

Modificare la configurazione togliendo il parametro Addr=127.0.0.1:

# Configurazione Originale
#dnl DAEMON_OPTIONS(`Family=inet6, Name=MTA-v6, Port=smtp, Addr=::1')dnl
#DAEMON_OPTIONS(`Family=inet,  Name=MTA-v4, Port=smtp, Addr=127.0.0.1')dnl
#dnl DAEMON_OPTIONS(`Family=inet6, Name=MSP-v6, Port=submission, M=Ea, Addr=::1')dnl
#DAEMON_OPTIONS(`Family=inet,  Name=MSP-v4, Port=submission, M=Ea, Addr=127.0.0.1')dnl

# Configurazione Petrov 18-12-2015
dnl DAEMON_OPTIONS(`Family=inet6, Name=MTA-v6, Port=smtp, Addr=::1')dnl
DAEMON_OPTIONS(`Family=inet,  Name=MTA-v4, Port=smtp')dnl
dnl DAEMON_OPTIONS(`Family=inet6, Name=MSP-v6, Port=submission, M=Ea, Addr=::1')dnl
DAEMON_OPTIONS(`Family=inet,  Name=MSP-v4, Port=submission, M=Ea')dnl


Verificare la correttezza del file con il comando m4 sendmail.mc > sendmail.cf

root@ns.petrov.tes.mi.it:/etc/mail# m4 sendmail.mc > sendmail.cf
root@ns.petrov.tes.mi.it:/etc/mail#


Modificare il file "/etc/mail/sendmail.cf" con il comando nano /etc/mail/sendmail.cf
Il file si presenta in questo modo:

O DaemonPortOptions=Family=inet,  Name=MTA-v4, Port=smtp, Addr=127.0.0.1
O DaemonPortOptions=Family=inet,  Name=MSP-v4, Port=submission, M=Ea, Addr=127.0.0.1
O DaemonPortOptions=Family=inet,  Name=MTA-v4, Port=smtp
O DaemonPortOptions=Family=inet,  Name=MSP-v4, Port=submission, M=Ea

Commentare le righe con l'attributo "Addr=127.0.0.1":

# Configurazione Originale
#O DaemonPortOptions=Family=inet,  Name=MTA-v4, Port=smtp, Addr=127.0.0.1
#O DaemonPortOptions=Family=inet,  Name=MSP-v4, Port=submission, M=Ea, Addr=127.0.0.1

# Configurazione Petrov 18-12-2015
O DaemonPortOptions=Family=inet,  Name=MTA-v4, Port=smtp
O DaemonPortOptions=Family=inet,  Name=MSP-v4, Port=submission, M=Ea


Riavviare il servizio con il comando service sendmail start

root@ns.petrov.tes.mi.it:/etc/mail# service sendmail start
 * Starting Mail Transport Agent (MTA) sendmail
hostname: Name or service not known
hostname: Name or service not known                                                                              [ OK ]
root@ns.petrov.tes.mi.it:/etc/mail# 


Analizzare le connessioni con il comando netstat -tap

root@ns.petrov.tes.mi.it:/home/tech# netstat -tap
Connessioni Internet attive (server e stabiliti)
Proto CodaRic CodaInv Indirizzo locale        Indirizzo remoto       Stato       PID/Program name
tcp        0      0 *:submission            *:*                     LISTEN      950/sendmail: MTA: 
tcp        0      0 petrov.tes.mi.i:domain *:*                     LISTEN      798/named       
tcp        0      0 localhost:domain        *:*                     LISTEN      798/named       
tcp        0      0 *:ssh                   *:*                     LISTEN      764/sshd        
tcp        0      0 *:smtp                  *:*                     LISTEN      950/sendmail: MTA: 
tcp        0      0 localhost:953           *:*                     LISTEN      798/named       
tcp        0      0 petrov.tes.mi.it:ssh   10.200.7.96:46223       ESTABLISHED 1114/sshd: tech [pr
tcp        0      0 petrov.tes.mi.it:ssh   10.200.7.96:46222       ESTABLISHED 961/sshd: tech [pri
tcp6       0      0 [::]:domain             [::]:*                  LISTEN      798/named       
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN      764/sshd        
tcp6       0      0 localhost:953           [::]:*                  LISTEN      798/named       
root@ns.petrov.tes.mi.it:/home/tech#

Ora il server riceve la posta.

Macchina Client
Inviare la mail

root@client.petrov.tes.mi.it:/etc/postfix# echo -e "Subject:Oggetto \nMail al Server!" | sendmail -v tech@ns.petrov.tes.mi.it
Mail Delivery Status Report will be mailed to <root>.
root@client.petrov.tes.mi.it:/etc/postfix#


Macchina Server
Analizzare il file "/var/log/mail.log"

root@client.petrov.tes.mi.it:/etc/postfix# tail -f /var/log/mail.log
Jan  8 09:26:50 ns sm-mta[1217]: u088QnUK001217: from=<root@client.petrov.tes.mi.it>, size=303, class=0, nrcpts=1, msgid=<20160108082649.2AC60413D9@client.petrov.tes.mi.it>, proto=ESMTP, daemon=MTA-v4, relay=client.petrov.tes.mi.it [10.200.7.59]
Jan  8 09:26:50 ns sm-mta[1218]: u088QnUK001217: to=<tech@ns.petrov.tes.mi.it>, delay=00:00:00, xdelay=00:00:00, mailer=local, pri=30548, dsn=2.0.0, stat=Sent
root@client.petrov.tes.mi.it:/home/tech#

Controllare il file "var/mail/tech" con il comando cat var/mail/tech

root@ns.petrov.tes.mi.it:/etc/mail# cat /var/mail/tech
From root@client.petrov.tes.mi.it  Fri Jan  8 09:26:50 2016
Return-Path: <root@client.petrov.tes.mi.it>
Received: from client.petrov.tes.mi.it (client.petrov.tes.mi.it [10.200.7.59])
	by ns.petrov.tes.mi.it (8.14.4/8.14.4/Debian-4.1ubuntu1) with ESMTP id u088QnUK001217
	for <tech@ns.petrov.tes.mi.it>; Fri, 8 Jan 2016 09:26:50 +0100
Received: by client.petrov.tes.mi.it (Postfix, from userid 0)
	id 2AC60413D9; Fri,  8 Jan 2016 09:26:49 +0100 (CET)
Subject:Oggetto 
Message-Id: <20160108082649.2AC60413D9@client.petrov.tes.mi.it>
Date: Fri,  8 Jan 2016 09:26:49 +0100 (CET)
From: root@client.petrov.tes.mi.it (root)

root@ns.petrov.tes.mi.it:/etc/mail#