Il seguente articolo mira all'installazione e alla configurazione di un semplice server di posta POP3/IMAP/SMTP nel VPS Debian utilizzando Postfix, Dovecot e SASL.
Cos'è Postfix? È un sostituto del vecchio e maturo Sendmail. Postfix cerca anche di essere molto veloce, facile da amministrare e sicuro.
Cos'è Dovecot? È un server IMAP e POP3 open source per sistemi simili a *NIX, scritto principalmente pensando alla sicurezza.
Cos'è SASL? SASL, il livello di autenticazione e sicurezza semplice, è un meccanismo generico per i protocolli per eseguire l'autenticazione.
1.) Prerequisiti
– Potresti voler controllare se il tuo nome host/nome di dominio è un FQDN (nome di dominio completo) valido e ha un record DNS MX valido.
# dig +short MX mydomain.com 10 mydomain.com.
ok, il nome host "miodominio.com" ha un record MX e:
# dig +short A $(dig +short MX mydomain.com | head -1 | cut -d' ' -f2) 12.34.56.78
il set di record MX torna all'IP del nostro server Debian (12.34.56.78)
2.) Aggiorna il sistema e installa i pacchetti richiesti
– Prima di procedere ulteriormente, dobbiamo assicurarci di disporre di un sistema completamente aggiornato.
# apt-get update # apt-get upgrade # apt-get dist-upgrade
2.a) Installa suffisso
# apt-get install postfix
(quando richiesto, scegli "Sito Internet" e quindi imposta "miodominio.com" come nome di posta di sistema.)
2.b) Installare dovecot
# apt-get install dovecot-common dovecot-imapd dovecot-pop3d
2.c) Installare sasl per l'autenticazione degli utenti
# apt-get install libsasl2-2 libsasl2-modules sasl2-bin
(abilita il demone sasl impostando START=yes in /etc/default/saslauthd . potresti anche voler ridurre il numero di thread impostando THREADS=3 per esempio)
o se ti senti coraggioso:
# sed -i -e 's/START=no/START=yes/' -e 's/THREADS=5/THREADS=3/' /etc/default/saslauthd
imposta /etc/postfix/sasl/smtpd.conf
# echo -e "pwcheck_method: saslauthd\nmech_list: plain login cram-md5 digest-md5" > /etc/postfix/sasl/smtpd.conf
riavvia SASL
# /etc/init.d/saslauthd restart
3.) Crea utente di sistema Per la gestione della posta in arrivo e ha accesso solo alle caselle di posta.
– crea un gruppo utilizzato per le cassette postali virtuali
# groupadd vmail -g 2222
– creare l'utente utilizzato per le caselle di posta virtuali
# useradd vmail -r -g 2222 -u 2222 -d /var/vmail -m -c "mail user"
4.) Prepara il certificato SSL per l'utilizzo del trasporto SSL
– copia/sposta il tuo SSL in qualche directory, ad esempio /etc/sample-ssl/
# mkdir /etc/sample-ssl # rsync -Waq /path/to/certs/ /etc/sample-ssl/
5.) Configurazione Postfix
– prima di fare qualsiasi altra cosa assicurati di avere il backup del file di configurazione originale
# cp /etc/postfix/main.cf{,.orig} 5.a) imposta il file di configurazione del postfix principale (/etc/postfix/main.cf)
– assicurati di cambiare 'miodominio.com' con il tuo nome di dominio e di impostare anche i percorsi SSL in modo appropriato
# vim /etc/postfix/main.cf
myhostname=mydomain.com
mydomain=mydomain.com
myorigin=$mydomain
mydestination = localhost
mynetworks = 127.0.0.0/8
inet_interfaces = all
mailbox_size_limit = 0
recipient_delimiter = +
debug_peer_level=2
smtpd_banner=$myhostname ESMTP $mail_name
biff=no
relayhost=
show_user_unknown_table_name=no
append_dot_mydomain = no
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
virtual_mailbox_base=/var/vmail
virtual_mailbox_domains=hash:/etc/postfix/vmail_domains
virtual_mailbox_maps=hash:/etc/postfix/vmail_mailbox
virtual_alias_maps=hash:/etc/postfix/vmail_aliases
virtual_minimum_uid=100
virtual_uid_maps=static:2222
virtual_gid_maps=static:2222
virtual_transport=dovecot
smtpd_tls_cert_file=/etc/sample-ssl/ssl.crt
smtpd_tls_key_file=/etc/sample-ssl/ssl.key
smtpd_tls_CAfile=/etc/ssl/certs/ca-certificates.crt
smtp_tls_CAfile=/etc/ssl/certs/ca-certificates.crt
smtp_use_tls=yes
smtpd_use_tls=yes
smtpd_tls_loglevel=1
smtpd_tls_received_header=yes
tls_random_source=dev:/dev/urandom
smtp_tls_note_starttls_offer=yes
smtpd_tls_session_cache_timeout=3600s
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
queue_directory=/var/spool/postfix
smtpd_sasl_type=dovecot
smtpd_sasl_path=private/auth
smtpd_sasl_auth_enable=yes
broken_sasl_auth_clients=yes
smtpd_sasl_security_options=noanonymous
smtpd_sasl_tls_security_options=$smtpd_sasl_security_options
smtpd_sasl_local_domain=$myhostname
smtpd_sasl_application_name=smtpd
smtpd_helo_required=yes
smtpd_helo_restrictions=reject_invalid_helo_hostname
smtpd_recipient_restrictions=reject_unknown_recipient_domain, reject_unauth_pipelining, permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination 5.b) crea /etc/postfix/vmail_domains contenente i domini per i quali postfix accetterà le email
– il formato è 2 colonne. dominio a sinistra, stato a destra. se non c'è niente sul lato destro, il dominio è disabilitato.
# vim /etc/postfix/vmail_domains
mydomain.com OK my-otherdomain.com OK
5.c) crea /etc/postfix/vmail_mailbox contenente le caselle di posta accettate
# vim /etc/postfix/vmail_mailbox
info@mydomain.com mydomain.com/info admin@mydomain.com mydomain.com/admin webmaster@my-otherdomain.com my-otherdomain.com/webmaster
5.d) crea /etc/postfix/vmail_aliases contenente gli alias virtuali
# vim /etc/postfix/vmail_aliases
info@mydomain.com info@mydomain.com admin@mydomain.com admin@mydomain.com webmaster@my-otherdomain.com admin@mydomain.com
hash dei file di configurazione
# postmap /etc/postfix/vmail_domains # postmap /etc/postfix/vmail_mailbox # postmap /etc/postfix/vmail_aliases
6.) Configurazione Dovecot
– prima di fare qualsiasi altra cosa assicurati di avere il backup del file di configurazione originale
# cp /etc/dovecot/dovecot.conf{,.orig} – crea il file di configurazione principale di dovecot
# vim /etc/dovecot/dovecot.conf
protocols = imap imaps pop3 pop3s
log_timestamp = "%Y-%m-%d %H:%M:%S "
first_valid_uid=2222
last_valid_uid=2222
first_valid_gid=2222
last_valid_gid=2222
mail_privileged_group = vmail
disable_plaintext_auth=yes
auth_executable = /usr/lib/dovecot/dovecot-auth
auth_verbose = yes
mail_location = maildir:/var/vmail/%d/%n/Maildir
ssl_cert_file = /etc/sample-ssl/sample-chained.crt
ssl_key_file = /etc/sample-ssl/sample.key
protocol lda {
auth_socket_path = /var/run/dovecot/auth-master
postmaster_address = postmaster@yourdomain.com
mail_plugins = sieve
log_path =
}
auth default {
mechanisms = plain login
passdb passwd-file {
args = scheme=SHA1 /etc/dovecot/users.conf
}
userdb static {
#args = /etc/dovecot/users.conf
args = uid=2222 gid=2222 home=/var/vmail/%d/%n allow_all_users=yes
}
socket listen {
master {
path = /var/run/dovecot/auth-master
mode = 0600
user = vmail
group = vmail
}
client {
path = /var/spool/postfix/private/auth
mode = 0660
user = postfix
group = postfix
}
}
} assicurati di impostare la configurazione in modo che corrisponda ai tuoi percorsi e alle tue esigenze
– creare il nostro file utente:
# touch /etc/dovecot/users.conf
– quindi, usa il comando seguente per generare l'hash della password per un particolare utente:
# dovecotpw -s SHA1
(la password generata viene aggiunta a users.conf senza la parte {SHA1}, ad esempio:)
# cat /etc/dovecot/users.conf admin@mydomain.com:7mh/MbZGZf7pc2pV6To7WuHJY8E=
7.) Configurazione delle autorizzazioni e completamento dell'installazione
# chgrp vmail /etc/dovecot/dovecot.conf # chmod g+r /etc/dovecot/dovecot.conf # chown root:root /etc/dovecot/users.conf # chmod 600 /etc/dovecot/users.conf
– consegnare la posta in arrivo a dovecot
# vim /etc/postfix/master.cf
(aggiungi quanto segue)
dovecot unix - n n - - pipe
flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -f ${sender} -d ${recipient} – mentre ci sei, potresti anche voler abilitare la porta di invio decommentando la seguente riga:
submission inet n - - - - smtpd
– ricaricare i servizi
# /etc/init.d/dovecot restart # /etc/init.d/postfix restart
Ovviamente non devi fare nulla di tutto questo se usi uno dei nostri servizi di hosting VPS ottimizzato Debian, nel qual caso puoi semplicemente chiedere ai nostri esperti amministratori Linux di installarlo per te. Sono disponibili 24 ore su 24, 7 giorni su 7 e si prenderanno immediatamente cura della tua richiesta.
PS. Se questo post ti è piaciuto condividilo con i tuoi amici sui social network utilizzando i pulsanti a sinistra o semplicemente lascia una risposta qui sotto. Grazie.