Questo tutorial ti mostrerà come configurare più domini di posta (hosting virtuale) sul server CentOS/RHEL con PostfixAdmin, che è un'interfaccia basata sul Web open source per configurare e gestire un server di posta elettronica basato su Postfix per molti domini e utenti.
Prerequisiti
Per seguire questo tutorial, è necessario che
- Hai configurato PostfixAdmin con un dominio di posta.
- Hai seguito la parte 4 per impostare SPF e DKIM.
- Hai installato Roundcube Webmail.
Una volta soddisfatti i requisiti di cui sopra, segui le istruzioni di seguito.
Cosa devi fare
Se desideri ospitare più domini di posta, devi
- Aggiungi un nuovo dominio di posta e un nuovo utente nel pannello basato sul Web di PostfixAdmin.
- Crea record MX, A e SPF per il nuovo dominio di posta.
- Configura la firma DKIM per il nuovo dominio.
- Crea record DMARC per il nuovo dominio.
- Configura RoundCube Webmail, Postfix e Dovecot per più domini
Fase 1:aggiunta di domini aggiuntivi nel pannello di amministrazione di Postfix
Accedi al pannello di amministrazione di Postfix con l'account postmaster. (https://postfixadmin.your-domain.com/
) Quindi vai su Domain List
-> New Domain
per aggiungere un nuovo dominio.
Nota che il nuovo dominio dovrebbe avere un record DNS A, altrimenti PostfixAdmin genererebbe il seguente messaggio di errore. Puoi controllare lo stato di propagazione del DNS su dnsmap.io.
Invalid domain domain2.com, and/or not discoverable in DNS
Successivamente, aggiungi un utente nel nuovo dominio.
Fase 2:creazione di record MX, A e SPF per il nuovo dominio di posta
Nel tuo gestore DNS, aggiungi il record MX per il nuovo dominio come di seguito.
Record Type Name Value MX @ mail.domain2.com
Il record A punta all'indirizzo IP del tuo server di posta.
Record Type Name Value A mail IP-address-of-mail-server
Se il tuo server utilizza l'indirizzo IPv6, assicurati di aggiungere il record AAAA.
Quindi crea un record SPF per consentire all'host MX di inviare e-mail per il nuovo dominio di posta.
Record Type Name Value TXT @ v=spf1 mx ~all
Fase 3:configurazione della firma DKIM per il nuovo dominio
Abbiamo installato e configurato OpenDKIM per un singolo dominio nella parte 4 di questa serie di tutorial. Ora dobbiamo dire a OpenDKIM di firmare ogni email in uscita per il nuovo dominio di posta.
Modifica il file della tabella di firma di OpenDKIM.
sudo nano /etc/opendkim/SigningTable
Aggiungi il secondo dominio come di seguito.
*@domain1.com 20200308._domainkey.domain1.com *@domain2.com 20200308._domainkey.domain2.com
Modifica il file della tabella delle chiavi.
sudo nano /etc/opendkim/KeyTable
Aggiungi il secondo dominio come di seguito.
20200308._domainkey.domain1.com domain1.com:20200308:/etc/opendkim/keys/domain1.com/20200308.private 20200308._domainkey.domain2.com domain2.com:20200308:/etc/opendkim/keys/domain2.com/20200308.private
Modifica il file degli host attendibili.
sudo nano /etc/opendkim/TrustedHosts
Aggiungi il secondo dominio come di seguito.
127.0.0.1 localhost *.domain1.com *.domain2.com
Successivamente, dobbiamo generare una coppia di chiavi priavte/pubblica per il secondo dominio. Crea una cartella separata per il secondo dominio.
sudo mkdir /etc/opendkim/keys/domain2.com
Genera chiavi usando opendkim-genkey
strumento.
sudo opendkim-genkey -b 2048 -d domain2.com -D /etc/opendkim/keys/domain2.com -s 20200308 -v
Il comando precedente creerà chiavi a 2048 bit. -d (domain)
specifica il dominio. -D (directory)
specifica la directory in cui verranno archiviate le chiavi e utilizziamo 20200308
(data corrente) come selector (-s)
. Una volta eseguito il comando, la chiave privata verrà scritta in 20200308.private
file e la chiave pubblica verranno scritti in 20200308.txt
file.
Crea opendkim
come proprietario della chiave privata.
sudo chown opendkim:opendkim /etc/opendkim/keys/domain2.com/20200308.private
Visualizza la chiave pubblica
sudo cat /etc/opendkim/keys/domain2.com/20200308.txt
La stringa dopo il p
parametro è la chiave pubblica.
Nel tuo gestore DNS, crea un record TXT per il secondo dominio. Inserisci 20200308._domainkey
nel campo Nome. Copia tutto tra parentesi e incolla nel campo del valore. Elimina tutte le virgolette. (Puoi prima incollarlo in un editor di testo, eliminare tutte le virgolette, quindi copiarlo nel tuo gestore DNS. Il tuo gestore DNS potrebbe richiedere di eliminare altri caratteri non validi, come il ritorno a capo.)
Dopo aver salvato le modifiche. Controlla il record TXT con questo comando.
dig TXT 20203008._domainkey.domain2.com
Ora puoi eseguire il seguente comando per verificare se il tuo record DNS DKIM è corretto.
sudo opendkim-testkey -d domain2.com -s 20200308 -vvv
Se tutto è a posto, vedrai
opendkim-testkey: using default configfile /etc/opendkim.conf opendkim-testkey: checking key '20203008._domainkey.domain2.com' opendkim-testkey: key secure opendkim-testkey: key OK
Se vedi "Chiave non sicura", niente panico. Questo perché DNSSEC non è abilitato sul tuo nome di dominio. DNSSEC è uno standard di sicurezza per query DNS sicure. La maggior parte dei nomi di dominio non ha abilitato DNSSEC. Puoi continuare a seguire questa guida.
Riavvia OpenDKIM in modo che inizi a firmare le email per il secondo dominio.
sudo systemctl restart opendkim
Fase 4:creazione del record DMARC per il nuovo dominio
Per creare un record DMARC, vai al tuo gestore DNS e aggiungi un TXT disco. Nel campo del nome, inserisci _dmarc
. Nel campo del valore, inserisci quanto segue. Tieni presente che devi creare il [email protected]
indirizzo email.
v=DMARC1; p=none; pct=100; rua=mailto:[email protected]
Il record DMARC di cui sopra è un punto di partenza sicuro. Se vuoi leggere una spiegazione dettagliata di DMARC, controlla il seguente articolo.
- Creazione di un record DMARC per proteggere il tuo nome di dominio dallo spoofing e-mail
Fase 5:configurazione di RoundCube, Postfix e Dovecot per più domini
Presumo che tu abbia installato Roundcube Webmail per il primo dominio di posta.
Ha senso consentire agli utenti del primo dominio di utilizzare mail.domain1.com
e gli utenti del secondo dominio utilizzano mail.domain2.com
quando si utilizza la webmail RoundCube. Ti mostrerò come farlo con Apache e Nginx.
Apache
Se Roundcube è servito dal server Web Apache, crea un host virtuale per il secondo dominio.
sudo nano /etc/httpd/conf.d/mail.domain2.com.conf
Inserisci il seguente testo nel file.
<VirtualHost *:80> ServerName mail.domain2.com DocumentRoot /var/www/roundcube/ ErrorLog /var/log/httpd/mail.domain2.com_error.log CustomLog /var/log/httpd/mail.domain2.com_access.log combined <Directory /> Options FollowSymLinks AllowOverride All </Directory> <Directory /var/www/roundcube/> Options FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory> </VirtualHost>
Salva e chiudi il file. Ricarica Apache per rendere effettive le modifiche.
sudo systemctl reload httpd
Nginx
Se Roundcube è servito dal server web Nginx, crea un host virtuale per il secondo dominio.
sudo nano /etc/nginx/conf.d/mail.domain2.com.conf
Inserisci il seguente testo nel file.
server { listen 80; server_name mail.domain2.com; root /var/www/roundcube/; index index.php index.html index.htm; error_log /var/log/nginx/roundcube.error; access_log /var/log/nginx/roundcube.access; location / { try_files $uri $uri/ /index.php; } location ~ \.php$ { try_files $uri =404; fastcgi_pass unix:/run/php-fpm/www.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ~ /.well-known/acme-challenge { allow all; } location ~ ^/(README|INSTALL|LICENSE|CHANGELOG|UPGRADING)$ { deny all; } location ~ ^/(bin|SQL)/ { deny all; } # A long browser cache lifetime can speed up repeat visits to your page location ~* \.(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml)$ { access_log off; log_not_found off; expires 360d; } }
Salva e chiudi il file. Quindi testa le configurazioni di Nginx.
sudo nginx -t
Se il test ha esito positivo, ricarica Nginx per rendere effettive le modifiche.
sudo systemctl reload nginx
Ottenere il certificato TLS
Ora usa Certbot per ottenere il certificato TLS per tutti i tuoi domini di posta, quindi avrai un unico certificato TLS con più nomi di dominio e i client di posta non genereranno avvisi di sicurezza.
Apache
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp -d mail.domain1.com,mail.domain2.com --cert-name mail.domain1.com --email [email protected]
Nginx
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp -d mail.domain1.com,mail.domain2.com --cert-name mail.domain1.com --email [email protected]
Si noti che nel comando precedente, abbiamo specificato il nome del certificato utilizzando il primo dominio di posta, che verrà utilizzato nel percorso del file, quindi non è necessario modificare il percorso del file nel file di configurazione di Postfix o Dovecot.
Quando ti chiede se desideri aggiornare il certificato esistente per includere il nuovo dominio, rispondi U
e premi Invio.
Ora dovresti vedere il seguente messaggio, che indica che il certificato multidominio è stato ottenuto correttamente.
Ricarica Apache o Nginx per ritirare il nuovo certificato.
sudo systemctl reload httpd sudo systemctl reload nginx
Ora dovresti essere in grado di utilizzare domini diversi per accedere alla webmail di RoundCube. Inoltre, è necessario ricaricare il server SMTP Postfix e il server IMAP di Dovecot per consentire loro di ritirare il nuovo certificato. Questo è tutto ciò che devi fare per Postfix e Dovecot per servire più domini.
sudo systemctl reload postfix dovecot
Utilizzo del client di posta sul computer o dispositivo mobile
Avvia il tuo client di posta elettronica desktop come Mozilla Thunderbird e aggiungi un account di posta del secondo dominio.
- Nella sezione del server in arrivo, seleziona il protocollo IMAP, inserisci
mail.domain2.com
come nome del server, scegli la porta 143 e STARTTLS. Sceglinormal password
come metodo di autenticazione. - Nella sezione in uscita, seleziona il protocollo SMTP, inserisci
mail.domain2.com
come nome del server, scegli la porta 587 e STARTTLS. Sceglinormal password
come metodo di autenticazione.
Suggerimento :puoi anche utilizzare la porta 993 con crittografia SSL/TLS per IMAP e utilizzare la porta 465 con crittografia SSL/TLS per SMTP. Non dovresti non usa la porta 25 come porta SMTP per inviare le email in uscita.
Sebbene il server SMTP Postfix e il server IMAP di Dovecot utilizzino il nome host del primo dominio di posta (mail.domain1.com) quando comunicano con gli altri, ora utilizzano un certificato multidominio, quindi il client di posta non visualizzerà avvisi di certificato.
Controllo SPF e DKIM
Ora puoi utilizzare il tuo client di posta elettronica desktop o client di posta web per inviare un'email di prova a [email protected]
e ricevi un rapporto di autenticazione e-mail gratuito. Ecco il rapporto che ho ricevuto da port25.com
Non dimenticare di testare il tuo punteggio e-mail su https://www.mail-tester.com e anche testare il posizionamento e-mail con GlockApps.
Se il controllo DKIM fallisce, puoi andare su https://www.dmarcanalyzer.com/dkim/dkim-check/ per vedere se ci sono errori con il tuo record DKIM.
Cosa succede se le tue email vengono ancora contrassegnate come spam?
Ho altri suggerimenti per te in questo articolo: 7 suggerimenti efficaci per impedire che le tue email vengano contrassegnate come spam. Sebbene richieda un po' di tempo e impegno, le tue email verranno eventualmente inserite nella Posta in arrivo dopo aver applicato questi suggerimenti.
rDNS per più domini di posta?
Reverse DNS (rDNS), noto anche come record PTR, viene utilizzato per verificare se l'indirizzo IP del mittente corrisponde al nome host HELO. Non è necessario aggiungere un altro record PTR quando si aggiunge un nuovo dominio di posta. Il tuo rDNS dovrebbe essere impostato su un solo hostname, ovvero il nome host impostato in Postfix, che può essere mostrato con il seguente comando.
postconf myhostname
rDNS è un record per gli indirizzi IP. Non è un record per il nome di dominio. Se si dispone di un solo indirizzo IP, è necessario un solo record rDNS che punta a un nome host. Il controllo DNS inverso non verifica cosa From:
dominio è nella tua e-mail, purché il tuo indirizzo IP abbia un record rDNS e il nome host possa risolversi nello stesso indirizzo IP, puoi superare il controllo DNS inverso.
Inoltre, non è necessario modificare le seguenti impostazioni in Postfix quando si ospitano più domini su un server.
- mionomehost
- la mia origine
- la mia destinazione
Servizi di posta elettronica ospitati come G Suite e Microsoft Exchange Online tutti usano un nome host per un server per inviare un'e-mail ai propri clienti. Tutte le email inviate dagli utenti di G Suite utilizzano google.com
nel nome host e nelle email inviate dagli utenti di Microsoft Exchange Online tutti usano outlook.com
nel nome host. Questo vale anche per altri fornitori di servizi di posta elettronica come Mailchimp, SendinBlue, SendPluse, ecc. Tutti usano un nome host per un singolo server e un indirizzo IP ha un solo record rDNS.