RHEL7: Mail Relay di posta

By | Dicembre 1, 2018

Nota: questo è un obiettivo d’esame RHCE 7.

Prerequisiti

Per testare questa configurazione, è necessario configurare un server di posta centrale.
Procedura d’installazione

La configurazione di un server DNS master può essere evitata utilizzando la sintassi [mail.example.com] (vedere di seguito) o l’indirizzo IP del gateway di posta.

Installa il pacchetto postfix se non è già lì:

# yum install -y postfix

Attiva il servizio postfix all’avvio (normalmente già abilitato):

# systemctl enable postfix

Avvia il servizio postfix (normalmente già avviato):

# systemctl restart postfix

Configurazioni principali

Ci sono due casi da distinguere:

il sistema non riceve alcuna posta dall’esterno ma inoltra tutte le mail inviate dagli utenti locali (anche le e-mail dagli utenti locali agli utenti locali) a un server di posta centrale: questa è la configurazione null-client,
il sistema accetta qualsiasi e-mail dalla rete locale e li inoltra con quelli inviati dagli utenti locali ad un server di posta centrale: questa è la configurazione del gateway di posta.

L’obiettivo dell’esame RHCE 7 sembra essere più orientato verso la configurazione null-client.
Questo tutorial spiegherà come implementare questa configurazione. I dettagli relativi alla configurazione del gateway di posta verranno mostrati in seguito.

Configurazione Null-client

Supponiamo che il tuo server sia chiamato server.example.com sulla rete 192.168.1.0/24 e il tuo server di posta centrale (gateway di posta in uscita) si chiami mail.example.com a 192.168.1.1.
Modifica il file /etc/postfix/main.cf e modifica le seguenti direttive:

myhostname = server.example.com
mydomain = example.com
myorigin = $mydomain
inet_interfaces = loopback-only
mydestination =
relayhost = 192.168.1.1

Nota 1: fai attenzione a non specificare $mydomain nell’opzione mydestination (questo memorizzerà tutte le mail localmente, che non è esattamente quello che vuoi).
Nota 2: se hai un server DNS che si occupa di record MX, puoi specificare relayhost = mail.example.com invece dell’indirizzo IP.
Nota3: Se non si imposta un server DNS (ma si utilizza il file /etc/hosts) o se il server DNS non gestisce i record MX, è possibile specificare relayhost = [mail.example.com], questo modulo disattiva le ricerche MX.

Controlla la sintassi:

# postfix check

Controlla la configurazione non predefinita:

# postconf -n

Ricarica la configurazione postfix:

# systemctl restart postfix

Nota: normalmente non è necessario riavviare i processi quando i parametri vengono modificati, è sufficiente un reload. Tuttavia, quando si modifica il parametro inet_interfaces, è necessario riavviare tutti i processi.

C’è un modo più veloce di modificare il file /etc/postfix/main.cf, puoi anche usare il comando postconf. Questo comando con l’opzione -e cambia un parametro con il suo valore specificato e scrive tutto nel file /etc/postfix/main.cf! Puoi verificarlo riavviando i processi postfix o riavviando il server!

# postconf -e 'relayhost = 192.168.1.1'

Per ottenere il valore associato al parametro relayhost, digitare:

# postconf relayhost
relayhost = 192.168.1.1

Test

Per inviare una mail al server di posta centrale (è necessario creare tale utente sul server di posta centrale), digitare:

# echo "This is a test." | mail -s "Test" me@example.com

Nota: il comando echo introduce il contenuto della posta. L’opzione -s specifica l’oggetto della posta seguito dal destinatario.

Controlla la coda di posta locale, digitare:

# mailq
-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient-------
822FA3DE4       535 Tue Aug  5 16:54:45  root@example.com
(cannot update mailbox /var/mail/me for user me. destination /var/mail/me is not owned by recipient)
me@example.com

-- 0 Kbytes in 1 Request.

Riordinare una mail (-r), digitare:

# postsuper -r 822FA3DE4
postsuper: name_mask: all
postsuper: inet_addr_local: configured 2 IPv4 addresses
postsuper: inet_addr_local: configured 2 IPv6 addresses
postsuper: renamed file deferred/8/822FA3DE4 as maildrop/822FA3DE4
postsuper: 822FA3DE4: requeued
postsuper: Requeued: 1 message

Per eliminare la posta (-d) nella coda locale, digitare:

# postsuper -d 822FA3DE4

Nota: il comando postsuper -d ALL cancella tutti i messaggi nella coda di posta (ALL in maiuscolo).

Per leggere la posta precedente per me sul server di posta centrale (qui mail.example.com), connettersi ad esso e digitare:

[mail]# su - me
$ mail
Heirloom Mail version 12.4 7/29/08.  Type ? for help.
"/var/spool/mail/me": 1 message
 U  1 root                  Tue Aug  5 18:31  22/755   "Subject: Test"

Per controllare tutto il processo seguito da un’e-mail, digitare:

# tail -f /var/log/maillog
18:07:40 postfix/pickup[2338]: 822FA3DE4: uid=89 from=<root@example.com> orig_id=0FB353E45
18:07:40 postfix/cleanup[24446]: 822FA3DE4: message-id=<20140805145446.0FB353E45@server.example.com>
18:07:40 postfix/qmgr[2339]: 822FA3DE4: from=<root@example.com>, size=535, nrcpt=1 (queue active)
18:07:40 postfix/local[24448]: warning: specify "strict_mailbox_ownership = no" to ignore mailbox ownership mismatch
18:07:41 postfix/local[24448]: 822FA3DE4: to=<me@example.com>, relay=local, delay=4375, delays=4375/0.02/0/0.25, dsn=4.2.0, status=deferred (cannot update mailbox /var/mail/me for user me. destination /var/mail/me is not owned by recipient)

Configurazione del gateway

Se si desidera configurare una configurazione di gateway di posta (un server che riceve e-mail dalla rete locale e le inoltra ad un server di posta centrale), eseguire i seguenti passaggi.

Modifica il file /etc/postfix/main.cf e modifica le seguenti direttive:

myhostname = server.example.com
mydomain = example.com
myorigin = $mydomain
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost
mynetworks = 192.168.1.0/24, 127.0.0.0/8
relayhost = 192.168.1.1

Nota: rispetto alla configurazione del client null, i processi Postfix ascoltano tutte le interfacce di rete (la direttiva inet_interfaces), accettano le mail inviate al dominio example.com (la direttiva mydestination) limitate alla rete locale (la direttiva mynetworks).

Attenzione: non specificare $mydomain nella variabile mydestination se non si desidera memorizzare le mail localmente (questo errore è stato precedentemente fatto in questo tutorial).

Controlla la sintassi:

# postfix check

Controlla la configurazione non predefinita:

# postconf -n

Ricarica la configurazione postfix:

# systemctl restart postfix

Apri il firewall per ricevere email dall’esterno:

# firewall-cmd --permanent --add-service=smtp
success

Ricarica la configurazione del firewall:

# firewall-cmd --reload
success

Consigli utili

Prima o durante l’esame, puoi andare sulla directory /usr/share/doc/postfix-2.10.1/README_FILES per leggere i files BASIC_CONFIGURATION_README e STANDARD_CONFIGURATION_README riempiti con molti esempi di configurazione Postfix.

One thought on “RHEL7: Mail Relay di posta

  1. Pingback: Obiettivi esame RHCE 7 - prometheusproject

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.