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
[email protected] mydomain.com/info [email protected] mydomain.com/admin [email protected] my-otherdomain.com/webmaster
5.d) crea /etc/postfix/vmail_aliases contenente gli alias virtuali
# vim /etc/postfix/vmail_aliases
[email protected] [email protected] [email protected] [email protected] [email protected] [email protected]
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 = [email protected] 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 [email protected]: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.