GNU/Linux >> Linux Esercitazione >  >> Debian

Come installare un server di posta elettronica con ISPConfig su Debian 10

Questo tutorial utilizza una configurazione di server singolo come esempio. ISPConfig 3.1 è installato su Debian 10.0, Buster (consulta il tutorial di installazione di ISPConfig Perfect Server per l'effettiva installazione del server), lo scopo di questa guida è mostrarti i passaggi dopo aver installato il server iniziale per configurare un sistema di posta funzionante per te nome del dominio. Ho aggiornato ISPConfig a 3.1.15 durante il test di questo tutorial.

Cosa serve

Per utilizzare con successo questo Tutorial per un server di posta che funzioni correttamente è necessario

  • un host in cui installi ISPConfig (e un sistema operativo)
  • Raccomando 2 GB di memoria con 4 GB di swap, dovrebbero essere sufficienti per il server di posta.
  • l'host deve avere una connessione Internet con la porta 25 aperta in entrambe le direzioni
  • l'host ha un indirizzo IP fisso
  • l'host deve avere un record A per il suo indirizzo IP (o AAAA se si utilizza IPv6)
  • devi creare il record MX per il servizio dei nomi DNS per l'host
  • devi ottenere il record PTR del servizio dei nomi DNS inverso dell'host che corrisponda all'FQDN degli host

Il requisito di memoria è per i filtri SPAM. Puoi cavartela con 1 GB di memoria anche con i filtri SPAM in esecuzione se lo scambio di 4 GB è lì per evitare situazioni di memoria insufficiente.

Apri porte

Il server di posta deve avere la porta 25 aperta sia in entrata che in uscita. Assicurati che il tuo host abbia quella porta aperta prima di configurare il server di posta elettronica su quell'host.

Esistono modi per far funzionare la posta elettronica anche quando la porta 25 non è aperta, ma implica l'invio di e-mail tramite un altro host che fa avere la porta 25 aperta. Potrebbe avere più senso installare il server di posta elettronica su quell'altro host e dimenticare del tutto il primo per quanto riguarda la posta elettronica.

Voci DNS Name Service

Il server di posta necessita di un nome di dominio completo, nome di dominio completo (leggi a riguardo da Wikipedia:FQDN). In questo esempio, il nome di dominio è taleman.ovh . Per mostrare che il nome host del server di posta non deve necessariamente essere posta, utilizziamo posti come nome host. Quindi l'FQDN è posti.taleman.ovh .

Questo host è installato su un sistema di fornitori di servizi, offrono la registrazione di domini, il servizio di nome e il servizio di nome inverso. Ho usato quelli.

L'indirizzo IP è 178.33.154.66. Ho fatto quanto segue:

  • ha registrato il dominio taleman.ovh
  • aggiunto questo indirizzo IP come record A al servizio di nomi DNS con nome posti.taleman.ovh
  • aggiunto record MX per il dominio taleman.ovh con valore posti.taleman.ovh
  • aggiunto record PTR del servizio nome inverso per quell'indirizzo IP, che punta a posti.taleman.ovh

Il record MX viene creato per il dominio di posta elettronica. Quindi lo creo per taleman.ovh e punta a posti.taleman.ovh, il server di posta elettronica che riceve la posta per quel dominio.

Servizio nome inverso

Leggi il servizio di nome inverso dall'esercitazione di Name Service. In questo caso di esempio, il servizio nome inverso deve restituire posti.taleman.ovh.

Il mio fornitore di servizi ha verificato l'esistenza del record A prima che fosse possibile aggiungere il PTR corrispondente, ho avuto un po' di problemi prima di capire che è per questo che l'aggiunta non è riuscita.

Test del servizio nomi

È meglio testare ora il servizio nomi, poiché l'invio e la ricezione di e-mail non funzionerà se il servizio nomi non è impostato correttamente. Se la tua workstation è Windows invece di Linux o Unix, usa il comando nslookup invece di host.

$ host taleman.ovh
taleman.ovh has address 188.165.143.5
taleman.ovh mail is handled by 10 posti.taleman.ovh.

Il risultato precedente mostra che il nome di dominio ha un numero IP associato (che in questo caso è diverso dal numero IP del server di posta elettronica, ma che non influisce sulle e-mail) e c'è un record MX che punta a posti.taleman.ovh. La parte "la posta è gestita da" proviene dal record MX. Questo record MX è necessario se l'e-mail inviata agli indirizzi @taleman.ovh deve essere ricevuta su posti.taleman.ovh.

Quindi controlla che la voce del servizio nomi per il server di posta FQDN (in questo caso posti.taleman.fi) sia un record A e punti al numero IP corretto.

$ dig posti.taleman.ovh |grep "ANSWER SECTION" --after-context=3 
;; ANSWER SECTION:
posti.taleman.ovh. 3600 IN A 178.33.154.66
;; Query time: 56 msec

Infine, controlla che il servizio nome inverso risolva il numero IP nell'FQDN del server di posta.

$ host 178.33.154.66
66.154.33.178.in-addr.arpa domain name pointer posti.taleman.ovh.

Invece dei comandi host e dig puoi usare pagine web che testano il servizio dei nomi. Conosco intoDNS e MXToolbox.

Se non riesci a far sì che i test di cui sopra abbiano successo, puoi provare questo tutorial sulla configurazione del servizio nomi.

Installazione del sistema operativo

Uso Debian versione 10 Buster, quindi seguo questo tutorial:

https://www.howtoforge.com/tutorial/debian-10-buster-minimal-server/

Sostituisci il numero IP, il nome host e il nome di dominio con i tuoi valori.

Dato che scrivo questo tutorial in inglese, ho scelto l'inglese come lingua, ma la Finlandia come Paese e United_Kingdom en_GB.UTF-8 come impostazione locale.

[email protected]:/tmp# cat /etc/debian_version 10.0
[email protected]:~# locale
LANG=en_GB.UTF-8
LANGUAGE=en_GB:en
LC_CTYPE="en_GB.UTF-8"
LC_NUMERIC="en_GB.UTF-8"
LC_TIME="en_GB.UTF-8"
LC_COLLATE="en_GB.UTF-8"
LC_MONETARY="en_GB.UTF-8"
LC_MESSAGES="en_GB.UTF-8"
LC_PAPER="en_GB.UTF-8"
LC_NAME="en_GB.UTF-8"
LC_ADDRESS="en_GB.UTF-8"
LC_TELEPHONE="en_GB.UTF-8"
LC_MEASUREMENT="en_GB.UTF-8"
LC_IDENTIFICATION="en_GB.UTF-8"
LC_ALL=
[email protected]:~# cat /etc/timezone
Europe/Helsinki

Verifica di aver impostato correttamente il nome host. La configurazione del sistema di posta di ISPConfig non funzionerà se il nome host è errato.

[email protected]:~# hostname posti
[email protected]:~# hostname -f posti.taleman.ovh
[email protected]:~#

Installazione di ISPConfig

Scelgo di installare Apache come web server, quindi per Debian Buster seguo questa Perfect Server Guide.

Ho installato openssh-server sull'host e ho impostato il login di root usando la chiave ssh, quindi posso inviare direttamente all'host come root. Accessi senza password con OpenSSH o accessi senza password sicuri con SSH.

[email protected]:/tmp# free -h

Preferisco gli editor di stile Emacs a nano, quindi installo jed ora per rendere più piacevole la modifica dei file.

Avevo /etc/host e /etc/hostname impostati correttamente dopo l'installazione del sistema operativo, quindi ho appena verificato che fossero corretti seguendo la Guida di Perfect Server. Presta attenzione all'hostname e all'FQDN, se li sbagli scoprirai alla fine che il tuo server di posta elettronica non funziona. Il danno può essere riparato, ma è più facile rimediare dall'inizio.

[email protected]:/tmp# hostname
posti
[email protected]:/tmp# hostname -f
posti.taleman.ovh

Per il resto, seguo solo la Perfect Server Guide. Nota che puoi principalmente tagliare e incollare i comandi dalla guida alla riga di comando.

Non ho installato Mailman, non ho intenzione di usare Mailman su questo host. Allo stesso modo, ho omesso di installare BIND DNS Server, Webalizer, AWStats. Ho installato Roundcube Webmail poiché questo host diventa un server di posta elettronica.

Nel capitolo 18 (Installa lo strumento di amministrazione del database PHPMyAdmin) ho usato il comando

/usr/bin/apg -m 32 -x 32

per generare il segreto del pesce palla lungo 32 caratteri.

Utilizzo del sistema

Crea dominio e-mail e caselle di posta

Ora accedo come amministratore a ISPConfig e

  • Aggiungi nuovo cliente
  • Aggiungi nuovo dominio (dominio email!) e compila il modulo
  • Aggiungi nuova casella di posta

Creare le chiavi DKIM e registrarle facendo clic sui pulsanti nell'ordine numerato nell'immagine. Puoi leggere DKIM su Wikipedia.

Figura 1:Crea dominio Mail

Quindi attendi due minuti o finché la pallina rossa con il numero nella parte superiore del pannello ISPConfig non scompare.

Come primo test, accedi a Roundcube Webmail con la casella di posta sopra creata e invia un'e-mail allo stesso indirizzo. ISPConfig invia un messaggio di benvenuto a ogni casella di posta creata, quindi dovrebbe esserci già un messaggio lì. Usa il pulsante Scrivi e scrivi un breve messaggio di prova.

Figura 2:webmail di Roundcube

Figura 3:Invio da Roundcube

Il messaggio dovrebbe apparire a breve nella casella di posta.

Quindi prova a inviare un'e-mail a un'altra casella di posta che hai e puoi verificare se la posta arriva lì. Il prossimo test puoi inviare da qualche altra parte alla casella di posta sopra creata.

Tieni presente che se hai abilitato la greylisting per la casella di posta, l'e-mail inviata dall'esterno del server non arriva immediatamente alla casella di posta. Tuttavia, dovresti vedere subito nel registro della posta le voci del tentativo di consegna in modo da vedere che la posta può raggiungere il tuo server. La voce greylisting nel file /var/log/mail.log è simile a questa:

Aug 29 19:08:42 posti postfix/smtpd[16911]: NOQUEUE: reject: 
  RCPT from mta-out1.inet.fi[62.71.2.194]: 450 4.2.0 
  <[email protected]>: Recipient address rejected: Greylisted, 
  see http://postgrey.schweikert.ch/help/taleman.ovh.html; 
  from=<****@*****.***> to=<[email protected]> proto=ESMTP 
  helo=<******.****.***>

Puoi monitorare il registro della posta in una finestra del terminale come questa, ad esempio:

tail -f /var/log/mail.log

Oppure utilizzando questi comandi, se sei interessato solo alle voci Greylisting:

tail -f /var/log/mail.log | grep Greylisted

o

grep Greylisted /var/log/mail.log

Greylisting ritarda solo la prima e-mail dallo stesso mittente allo stesso destinatario. Una volta ricevuta la prima e-mail, le e-mail successive arrivano senza un ulteriore ritardo.

Nel mio caso, tutto ha funzionato al primo tentativo. Questo mostra che la guida di ISPConfig Perfect Server funziona davvero.

Collega il client di posta elettronica

Utilizzo di Thunderbird come client di posta di esempio. Altre applicazioni client di posta funzionano in modo simile.

ISPConfig fa sì che il nome dell'account sia l'indirizzo e-mail.

Figura 4:Impostazioni dell'account Thunderbird

Figura 5:Impostazioni del server Thunderbird

Sicurezza della connessione STARTTLS significa che la connessione inizia non protetta e quindi passa a crittografata se entrambe le parti supportano la crittografia. SSL/TSL significa che la sessione è crittografata dall'inizio. SSL/TSL è probabilmente leggermente più sicuro, quindi prova se il tuo client funziona con quello.

Figura 6:Impostazioni del server in uscita di Thunderbird

Utilizzo di SPF

Leggi il quadro delle politiche del mittente da Wikipedia. Originariamente SPF stava per Sender Permitted From, che è bello ricordare cosa significa. Dopo aver letto informazioni su SPF, puoi creare tu stesso il record, verificare se il tuo provider di servizi di nomi può generare record SPF o utilizzare motori di ricerca Internet con

SPF wizard

trova un sito Web che crei il record del servizio dei nomi SPF per te. Quindi taglia e incolla il record sul tuo servizio nomi. Aggiungi un record TXT, o magari su qualche sistema DNS aggiungi un record SPF.

Controlla come appare l'SPF nel servizio nomi, come questo

$ dig taleman.ovh -t TXT | grep spf
taleman.ovh. 3000 IN TXT "v=spf1 mx ~all"

O così:

$ dig +short taleman.ovh TXT
"v=spf1 mx ~all"
"1|www.taleman.ovh"

Utilizzo di DKIM

Leggi la posta identificata DomainKeys da Wikipedia. ISPConfig ha creato le chiavi DKIM per te durante la creazione del dominio di posta elettronica (se ti sei ricordato di spuntare la casella DKIM). Taglia e incolla il record DNS che è il pubblico chiave per il tuo servizio nomi come record TXT. Il provider di servizi del nome può offrire uno strumento per semplificare la creazione di record DKIM. Mantieni segreta la chiave privata DKIM.

Controlla come appare il DKIM nel servizio nomi, in questo modo:

$ host -t txt default._domainkey.taleman.ovh.
default._domainkey.taleman.ovh descriptive text "v=DKIM1;h=sha256;s=*;p=MIIB(I cut long string shorter)0rp" "sTGLXyK(cut shorter)B;t=s;"

Se è stato ISPConfig a creare le chiavi DKIM, la chiave privata viene copiata nel posto giusto nelle impostazioni di amavis.

C'è il sito web mail-tester.com che è utile per verificare che SPF e DKIM funzionino. Vai a quel sito Web, fornisce un indirizzo e-mail e invii un'e-mail lì dal tuo server. Quindi attendi un minuto e controlla di nuovo il sito Web.

Creazione di certificati

ISPConfig può creare certificati autofirmati, questi vengono creati durante l'installazione di ISPConfig a meno che tu non abbia scelto di creare. Anche se hai creato quei certificati autofirmati, è una buona idea creare certificati appropriati che siano affidabili da browser, programmi di posta elettronica e altri server di posta elettronica.

C'è un bel tutorial:proteggere ISPConfig con un certificato SSL Let's Encrypt gratuito

Dopo quel tutorial, ho notato che il sito Web creato mostrava la pagina Web predefinita di Debian, fino a quando non ho creato il certificato LE per il sito Web. Anche il pannello ISPConfig era traballante, credo perché aveva il certificato autofirmato e ora questo nuovo certificato o nessun certificato. L'aggiornamento delle pagine nel browser ha risolto il problema.

Quando i certificati sono impostati, inserisci l'indirizzo https del server nel browser. Facendo clic sull'icona a sinistra della barra degli indirizzi del browser con l'altro pulsante del mouse vengono visualizzate le informazioni sul certificato.

Vai alla scheda Sistema del pannello ISPConfig, alla scheda Configurazione principale interfaccia e Posta. Ecco fatto

Use SSL/TLS encrypted connection for SMTP

a SSL.

Ulteriori test del certificato sono possibili con strumenti sui siti Web, utilizzare i motori di ricerca Internet con

ssl testing

come parole di ricerca. Questi strumenti di solito testano il sito Web, quando si testano i certificati del server di posta elettronica, cercare con

ssl testing mail server

Plugin ISPConfig Roundcube

Questi plugin sono utili per gli utenti di webmail. Ad esempio, consentono di modificare la password e-mail in Roundcube. Alcune altre impostazioni possono anche essere modificate in Roundcube. Possono essere tutti modificati nel pannello ISPConfig, ma alcuni utenti di posta elettronica potrebbero non voler utilizzare il pannello.

Ho installato ISPConfig Rouncube Plugin utilizzando Tutorial ISPConfig 3 Roundcube Plugin su Debian 9. Il tutorial ha funzionato esattamente su Debian 10 Buster, tranne per il fatto che ora ispconfig3_account/config/config.inc.php ha un'altra riga:

$config['soap_validate_cert'] = true;

Questo può rimanere al valore true, poiché il certificato è impostato e testato correttamente nel capitolo precedente di questo tutorial. Se, tuttavia, l'host non dispone di un certificato valido, modifica questa impostazione su false.

Ho avuto un problema. Alcuni elementi nella sezione Account hanno visualizzato un messaggio di errore

An error occurred.
Soap Error: The login is not allowed from <host ip-number>

L'ho risolto spuntando Accesso remoto e scrivendo posti.taleman.ovh per quell'utente rcmail-remote che ho creato seguendo il Tutorial. Sembra che il tutorial sia sbagliato nel non aver bisogno di "Accesso remoto" spuntato. Ora mi sembra che sia necessario sia per configurazioni a server singolo che per configurazioni multiserver ISPConfig con un server di posta separato.

Ulteriore utilizzo

Ora puoi creare un altro dominio di posta elettronica. Ricorda di creare un record MX per quel dominio e indirizzarlo al tuo server di posta elettronica. Puoi utilizzare lo stesso server di posta elettronica per tutti i domini di posta elettronica che crei. Questo è il modo in cui di solito viene fatto, poiché sarebbe uno spreco creare un server di posta elettronica separato per ogni dominio di posta elettronica.

Risoluzione dei problemi

Seguendo questo tutorial, il mio server di posta appena configurato funziona. Se il tuo non funziona, controlla di aver seguito questo tutorial e di non aver saltato alcuni passaggi.

La lettura del Forum ha mostrato che i modi comuni per avere un server di posta elettronica non funzionante sono un'impostazione errata per hostname e hostname -f e/o errori nel file /etc/postfix/main.cf.

Se sospetti problemi con il servizio nomi DNS, controlla quelli con DNS con ISPConfig -tutorial. Esistono strumenti per siti Web che controllano il DNS, come intodns.com, dnschecker.com, mxtoolbox.com.

Se le e-mail non vengono ricevute o inviate, è postfix che esegue queste funzioni e vengono registrate in /var/log/mail.log. Quindi fai

tail -f /var/log/mail.log | grep postfix to see what happens when mail is being received or sent.

Se hai problemi di connessione con il client di posta elettronica (Thunderbird, per esempio) usa questo per vedere cosa succede:

tail -f /var/log/mail.log | grep dovecot

Nel caso in cui una particolare e-mail sia problematica, puoi trovare le voci del registro della posta utilizzando l'ID di quella e-mail. Ad esempio:

Sep 23 14:19:34 posti postfix/smtps/smtpd[10260]: A9F2880C76:
client=dsl-tkubng21-58c1ce-191.dhcp.inet.fi[99.99.99.99],
sasl_method=PLAIN, [email protected]

L'ID di quell'e-mail è A9F2880C76. Puoi trovare le voci di registro per quell'e-mail utilizzando

# grep A9F2880C76 /var/log/mail.log

Il comando mailq mostra le e-mail che si trovano nella coda posticipata suffisso. Cioè, quelle e-mail che non sono ancora state consegnate. È normale che ci siano voci recenti, le e-mail non possono sempre essere consegnate immediatamente. Puoi vedere il contenuto di quelle email usando l'ID coda, in questo modo:

# postcat /var/spool/postfix/deferred/A/A9F2880C76

Howtoforge ha forum ISPConfig, chiedi consiglio lì.


Debian
  1. Come installare Redis Server su Debian 11

  2. Come installare HTTP Git Server con Nginx su Debian 11

  3. Come installare MySQL 8.0 / 5.7 su Debian 11 / Debian 10

  4. Come installare ProFTPD su Debian 8

  5. Come installare MySQL Server su Debian 9

Come installare I2P su Debian Server:

Come installare Icinga 2 su Debian 8

Come installare VNC su Debian 10

Come installare il server VNC su Debian 11

Come installare ISPConfig su Debian 11

Come installare Nginx con PHP-FPM su Debian 11