Ricerca nel sito web

Installa un server di posta completo con Postfix e Webmail in Debian 9


Questo tutorial ti guiderà su come installare e configurare un server di posta completo con Postfix nella versione Debian 9. Verrà inoltre illustrato come configurare le caselle di posta degli account utilizzando Dovecot per recuperare e comporre messaggi di posta tramite il protocollo IMAP. Gli utenti utilizzeranno l'interfaccia Rainloop Webmail come agente utente di posta per gestire la posta.

Requisiti

  1. Installazione minima di Debian 9
  2. Un indirizzo IP statico configurato per l'interfaccia di rete
  3. Un nome di dominio locale o pubblico registrato.

In questo tutorial utilizzeremo un account di dominio privato per la configurazione del server di posta configurato solo tramite il file /etc/hosts, senza alcun server DNS coinvolto nella gestione della risoluzione DNS.

Passaggio 1: configurazioni iniziali per il server di posta Postfix su Debian

1. Nel primo passaggio, accedi al tuo computer con un account con privilegi root o direttamente con l'utente root e assicurati che il tuo sistema Debian sia aggiornato con le ultime patch di sicurezza e versioni di software e pacchetti , emettendo il seguente comando.

apt-get update 
apt-get upgrade 

2. Nel passaggio successivo installa i seguenti pacchetti software che verranno utilizzati per l'amministrazione del sistema, emettendo il seguente comando.

apt-get install curl net-tools bash-completion wget lsof nano

3. Successivamente, apri il file /etc/host.conf per la modifica con il tuo editor di testo preferito e aggiungi la seguente riga all'inizio del file per consentire la risoluzione DNS leggi prima il file host.

order hosts,bind
multi on

4. Successivamente, configura l'FQDN del tuo computer e aggiungi il nome del tuo dominio e l'FQDN del tuo sistema al file /etc/hosts. Utilizza l'indirizzo IP del tuo sistema per risolvere il nome del dominio e l'FQDN come illustrato nello screenshot seguente.

Sostituisci l'indirizzo IP e il dominio di conseguenza. Successivamente, riavviare la macchina per applicare correttamente il nome host.

hostnamectl set-hostname mail.linux-console.net
echo "192.168.0.102 linux-console.net mail.linux-console.net" >> /etc/hosts
init 6

5. Dopo il riavvio, verifica se il nome host è stato configurato correttamente emettendo la seguente serie di comandi. Il nome di dominio, l'FQDN, il nome host e l'indirizzo IP del sistema devono essere restituiti dal comando hostname.

hostname
hostname -s
hostname -f
hostname -A
hostname -i
cat /etc/hostname 

6. Inoltre, verifica se il dominio risponde correttamente alle query locali eseguendo i comandi seguenti. Tieni presente che il dominio non risponderà alle query remote inviate da altri sistemi nella tua rete, perché non utilizziamo un server DNS.

Tuttavia, il dominio dovrebbe rispondere da altri sistemi se aggiungi manualmente il nome di dominio a ciascuno dei loro file /etc/hosts. Inoltre, tieni presente che la risoluzione DNS per un dominio aggiunto al file /etc/hosts non funzionerà tramite i comandi host, nslookup o dig.

getent ahosts mail.linux-console.net
ping linux-console.net
ping mail.linux-console.net

Passaggio 2: installa Postfix Mail Server su Debian

7. Il componente software più importante necessario affinché un server di posta funzioni correttamente è l'agente MTA. L'MTA è un software costruito in un'architettura server-client, responsabile del trasferimento della posta tra server di posta.

In questa guida utilizzeremo Postfix come agente di trasferimento della posta. Per installare postfix in Debian dai repository ufficiali eseguire il seguente comando.

apt-get install postfix

8. Durante il processo di installazione di Postfix ti verranno poste una serie di domande. Al primo prompt, seleziona l'opzione Sito Internet come tipo generale per la configurazione di Postfix e premi il tasto [invio] per continuare, quindi aggiungi il tuo nome di dominio al nome di posta del sistema, come illustrato negli screenshot seguenti.

Passaggio 3: configurare il server di posta Postfix su Debian

9. Successivamente, esegui il backup del file di configurazione principale di Postfix e configura Postfix per il tuo dominio utilizzando i seguenti comandi.

cp /etc/postfix/main.cf{,.backup}
nano /etc/postfix/main.cf

Ora configura la configurazione di Postfix nel file main.cf come mostrato.

See /usr/share/postfix/main.cf.dist for a commented, more complete version

smtpd_banner = $myhostname ESMTP
biff = no
appending .domain is the MUA's job.
append_dot_mydomain = no
readme_directory = no

See http://www.postfix.org/COMPATIBILITY_README.html -- default to 2 on
fresh installs.
compatibility_level = 2

TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
information on enabling SSL in the smtp client.

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = mail.debian.lan

mydomain = debian.lan

alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases

#myorigin = /etc/mailname
myorigin = $mydomain

mydestination = $myhostname, $mydomain, localhost.$mydomain, localhost
relayhost = 
mynetworks = 127.0.0.0/8, 192.168.1.0/24
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
#inet_protocols = all
inet_protocols = ipv4

home_mailbox = Maildir/

SMTP-Auth settings
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions = permit_mynetworks,permit_auth_destination,permit_sasl_authenticated,reject

Sostituisci le variabili myhostname, mydomain e mynetworks in modo che corrispondano alle tue configurazioni.

Puoi eseguire il comando postconf -n per scaricare il file di configurazione principale di Postfix e controllare eventuali errori, come mostrato nello screenshot qui sotto.

postconf -n

10. Dopo aver effettuato tutte le configurazioni, riavvia il demone Postfix per applicare le modifiche e verifica se il servizio è in esecuzione controllando se il servizio master Postfix è vincolante sulla porta 25 eseguendo netstat comando.

systemctl restart postfix
systemctl status postfix
netstat -tlpn

Passaggio 3: testare il server di posta Postfix su Debian

11. Per verificare se postfix è in grado di gestire il trasferimento della posta, installare prima il pacchetto mailutils eseguendo il seguente comando.

apt-get install mailutils

12. Successivamente, utilizzando l'utilità della riga di comando della posta, invia un messaggio di posta all'account root e controlla se il messaggio è stato trasmesso con successo immettendo il comando seguente per controllare la coda della posta ed elencare il contenuto del messaggio di root directory principale della directory di posta.

echo "mail body"| mail -s "test mail" root
mailq
mail
ls Maildir/
ls Maildir/new/
cat Maildir/new/[TAB]

13. Puoi anche verificare in che modo la posta è stata gestita dal servizio postfix controllando il contenuto del file di registro della posta immettendo il seguente comando.

tailf /var/log/mail.log

Passaggio 4: installa e configura Dovecot IMAP su Debian

14. L'agente di consegna della posta che utilizzeremo in questa guida per consegnare messaggi di posta elettronica alle caselle di posta di un destinatario locale è Dovecot IMAP. IMAP è un protocollo che funziona sulle porte 143 e 993 (SSL), che è responsabile della lettura, eliminazione o spostare la posta su più client di posta elettronica.

Il protocollo IMAP utilizza anche la sincronizzazione per garantire che una copia di ciascun messaggio venga salvata sul server e consente agli utenti di creare più directory sul server e spostare i messaggi in queste directory per ordinare le e-mail.

Questo non è il caso del protocollo POP3. Il protocollo POP3 non consentirà agli utenti di creare più directory sul server per ordinare la posta. Hai solo la cartella della posta in arrivo per gestire la posta.

Per installare il server core Dovecot e il pacchetto Dovecot IMAP su Debian eseguire il seguente comando.

apt install dovecot-core dovecot-imapd

15. Dopo aver installato Dovecot nel tuo sistema, apri i seguenti file dovecot per modificarli e apporta le seguenti modifiche. Innanzitutto, apri il file /etc/dovecot/dovecot.conf, cerca e decommenta la seguente riga:

listen = *, ::

16. Successivamente, apri /etc/dovecot/conf.d/10-auth.conf per modificare e individuare e modificare le righe sottostanti in modo che appaiano nell'estratto seguente.

disable_plaintext_auth = no
auth_mechanisms = plain login

17. Apri il file /etc/dovecot/conf.d/10-mail.conf e aggiungi la seguente riga per utilizzare la posizione Maildir invece di Formato Mbox per archiviare le email.

mail_location = maildir:~/Maildir

18. L'ultimo file da modificare è /etc/dovecot/conf.d/10-master.conf. Qui cerca il blocco smtp-auth Postfix e apporta la seguente modifica:

Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
  mode = 0666
  user = postfix
  group = postfix
 }

19. Dopo aver apportato tutte le modifiche di cui sopra, riavvia il demone Dovecot per riflettere le modifiche, controlla il suo stato e verifica se Dovecot è vincolante sulla porta 143, emettendo i comandi seguenti.

systemctl restart dovecot.service 
systemctl status dovecot.service 
netstat -tlpn

20. Verifica se il server di posta funziona correttamente aggiungendo un nuovo account utente al sistema e utilizza il comando telnet o netcat per connetterti al server SMTP e invia una nuova email al nuovo utente aggiunto, come illustrato negli estratti seguenti.

adduser matie
nc localhost 25
ehlo localhost
mail from: root
rcpt to: matie
data
subject: test
Mail body
.
quit

21. Controlla se la posta è arrivata alla casella di posta del nuovo utente elencando il contenuto della directory home dell'utente come mostrato nello screenshot seguente.

ls /home/test_mail/Maildir/new/

22. Inoltre, puoi connetterti alla casella di posta dell'utente dalla riga di comando tramite il protocollo IMAP, come mostrato nell'estratto seguente. La nuova posta dovrebbe essere elencata nella posta in arrivo dell'utente.

nc localhost 143
x1 LOGIN matie user_password
x2 LIST "" "*"
x3 SELECT Inbox
x4 LOGOUT

Passaggio 5: installa e configura Webmail in Debian

23. Gli utenti gestiranno le proprie e-mail tramite il client Rainloop Webmail. Prima di installare l'agente utente di posta Rainloop, installare innanzitutto il server Apache HTTP e i seguenti moduli PHP richiesti da Rainloop, emettendo il seguente comando.

apt install apache2 php7.0 libapache2-mod-php7.0 php7.0-curl php7.0-xml

24. Dopo aver installato il server Web Apache, modificare il percorso della directory nella directory /var/www/html/, rimuovere il file index.html ed emettere il seguente comando per installare Rainloop Webmail.

cd /var/www/html/
rm index.html 
curl -sL https://repository.rainloop.net/installer.php | php

25. Dopo che il client Rainloop Webmail è stato installato nel sistema, vai all'indirizzo IP del tuo dominio e accedi all'interfaccia web di amministrazione Rainloop con le seguenti credenziali predefinite:

http://192.168.0.102/?admin
User: admin
Password: 12345

26. Vai al menu Domini, premi il pulsante Aggiungi dominio e aggiungi le impostazioni del nome di dominio come mostrato nello screenshot qui sotto.

27. Dopo aver finito di aggiungere le impostazioni del tuo dominio, esci dall'interfaccia di amministrazione di Ranloop e punta il browser sul tuo indirizzo IP per accedere al client webmail con un account di posta elettronica.

Dopo aver effettuato correttamente l'accesso alla webmail Rainloop, dovresti vedere l'e-mail inviata in precedenza dalla riga di comando nella cartella Posta in arrivo.

http://192.168.0.102
User: [email 
Pass: the matie password

27. Per aggiungere un nuovo utente, inserisci il comando useradd con il flag -m per creare la directory home dell'utente. Ma prima assicurati di configurare la variabile del percorso Maildir per ogni utente con il seguente comando.

echo 'export MAIL=$HOME/Maildir' >> /etc/profile
useradd -m user3
passwd user3

28. Se desideri reindirizzare tutte le email di root a un account di posta locale specifico dal sistema, esegui i comandi seguenti. Tutti i messaggi di posta reindirizzati o destinati all'account root verranno inoltrati al tuo utente di posta come mostrato nell'immagine seguente.

echo "root: test_mail" >> /etc/aliases
newaliases

È tutto! Hai installato e configurato con successo un server di posta presso la tua sede affinché gli utenti locali possano comunicare tramite e-mail. Tuttavia, questo tipo di configurazione della posta non è protetta in alcun modo ed è consigliabile implementarla solo per piccole configurazioni in sistemi e reti sotto il tuo pieno controllo.