Nous choisissons le serveur Dovecot
# aptitude install dovecot-common dovecot-pop3d dovecot-imapdCela installe aussi : libmysqlclient15off libpq4 libsqlite3-0 mysql-common
Puis il faut le configurer (TODO expliquer la config) Attention, ce fichier de conf est écrit en python, faites donc bien gaffe de respecter l’indentation des blocs :
# nano /etc/dovecot/dovecot.conf
21> protocols = imaps pop3s 46> disable_plaintext_auth = yes 91> ssl_cert_file = /etc/ssl/certs/dovecot.pem 92> ssl_key_file = /etc/ssl/private/dovecot.pem 953> socket listen{966> client{970> path = /var/spool/postfix/private/auth 971> mode = 0660 972> user = postfix 973> group = postfix 974>}975>}
On le lance, et c’est gentil il change les permissions des fichiers comme il faut :)
invoke-rc.d dovecot start
> Restarting mail server : dovecotWarning : Fixing permissions of /var/run/dovecot to be world-readable > Warning : Corrected permissions for login directory /var/run/dovecot/login
On peut dès ce moment tester notre installation du serveur pop3s en configurant un client mail pour s’envoyer puis rapatrier nos mail.
La configuration du serveur smtp :
# nano /etc/postfix/master.cf
10> submission inet n - - - - smtpd 11> -o smtpd_enforce_tls=yes 12> -o smtpd_sasl_auth_enable=yes 13> -o smtpd_client_restrictions=permit_sasl_authenticated,reject 14> smtps inet n - - - - smtpd 15> -o smtpd_tls_wrappermode=yes 16> -o smtpd_sasl_auth_enable=yes 17> -o smtpd_client_restrictions=permit_sasl_authenticated,rejectVoilà pour l’authentification pour l’utilisation du serveur smtp
Maintenant on va configurer postfix pour y rajouter la possibilité d’avoir plusieurs nom de domaine (les virtualhosts) et aussi pour le sécuriser un peu plus.
Un utilisateur pour postfix est utilisé pour ranger les mails, nous créons donc son dossier d’action et son compte :
# mkdir /var/mail/virtuel # adduser —home /var/mail/virtuel —disabled-login —ingroup mail mailvirtuel # chown mailvirtuel:mail /var/mail/virtuel # chmod 700 /var/mail/virtuel
> Ajout du nouvel utilisateur « mailvirtuel » (1002) avec le groupe « mail »… > Le répertoire personnel « /var/mail/virtuel » existe déjà.Notez bien l’uid de cet utilisateur, il va falloir le reporter dans le fichier de configuration main.cf
Trois fichiers texte pour configurer notre serveur de mail :
- vhosts.txt pour y mettre nos noms de domaines
- vmaps.txt avec les comptes pop/imap
- valias.txt pour les redirections de mail
# touch /etc/postfix/{vhosts.txt,vmaps.txt,valias.txt}
Configuration de postfix, oulala c’est long…
# nano /etc/postfix/main.cf
Authentification en en utilisant dovecot
23> smtpd_tls_auth_only = yes27> # SASL 28> smtpd_sasl_type = dovecot 29> smtpd_sasl_path = private/auth 30> smtpd_sasl_auth_enable = yes
Tous un tas de mesure "anti-spam", rejeter tout autre serveur smtp un tant soit peu mal configuré…
32> # Anti-spam ! 33> # voir http://madism.org/ madcoder/etc/pos… 34> # et http://www.postfix.org/postconf.5.html36> disable_vrfy_command = yes 37> smtpd_helo_required = yes 38> strict_rfc821_envelopes = yes 39> smtpd_junk_command_limit = 2 40> smtpd_soft_error_limit = 2 41> smtpd_hard_error_limit = 4 42> smtpd_error_sleep_time = 10s 43> message_reject_characters = \0
45> smtpd_client_restrictions = 46> reject_unknown_client_hostname 47> permit 48> smtpd_helo_restrictions = 49> reject_unknown_client_hostname 50> reject_invalid_helo_hostname 51> reject_non_fqdn_helo_hostname 52> reject_unknown_helo_hostname 53> permit 54> smtpd_recipient_restrictions = 55> reject_non_fqdn_sender 56> reject_non_fqdn_recipient 57> reject_unknown_sender_domain 58> reject_unknown_recipient_domain 59> permit_mynetworks 60> permit_sasl_authenticated 61> reject_unauth_pipelining 62> reject_invalid_hostname 63> reject_non_fqdn_hostname 64> reject_unauth_destination 65> reject_unlisted_sender 66> permit 67> smtpd_data_restrictions = 68> reject_unauth_pipelining 69> reject_multi_recipient_bounce 70> permit
Configuration de notre nom de domaine, on ne le met pas dans mydestination, car il va être comme les autres domaines configurés dans vhosts.txt
75> mydomain = mutants.mutins.net 76> mydestination = localhost
Configuration pour les virtualhosts
85> # pour les virtualsmail 86> # mailvirtuel 1002 : 8 87> virtual_mailbox_domains = /etc/postfix/vhosts.txt 88> virtual_mailbox_base = /var/mail/virtuel 89> virtual_mailbox_maps =hash:/etc/postfix/vmaps.txt90> virtual_alias_maps = 91>hash:/etc/postfix/valias.txt,92> virtual_uid_maps = static:1002 93> virtual_gid_maps = static:8
Nous avons configuré postfix pour gérer plusieurs noms de domaine (virtualhosts), il nous faut revenir sur la configuration de dovecot pour qu’il gère les dossiers de mail de la même manière. Et nous allons utiliser un fichier texte pour enregistrer les mots de passe de nos utilisateurs.
# touch /etc/dovecot/passwd # chmod 600 /etc/dovecot/passwd # nano /etc/dovecot/dovecot.conf
208> mail_location =maildir:/var/mail/virtuel/%d/%n782> #passdb pam
{811> #{834> passdb passwd-file
{836> args = /etc/dovecot/passwd 837>}880> #userdb passwd
{881> #}892> userdb static
{898>args = uid=1002 gid=8 mail=maildir:/var/mail/virtuel/%d/%n899>}
Relançons tout cela en croisant les doigts !
# invoke-rc.d dovecot restart # invoke-rc.d postfix reload
