Configurer un serveur mail
Posté le dim. 15 novembre 2015 • Tags : mail, postfix, dovecot, ssl, imap
Installation d'un serveur mail complet et à jour sous debian jessie (8.2).
Configuration des DNS
Pour commencer nous allons créer des entrées DNS.
Nous créons un MX pour les mails avec une priorité de 1, un sous domaine "mail" qui pointe vers l'adresse ipv4 de votre serveur, d'un sous domaine webmail qui pointe sur le sous domaine mail et d'un enregistrement SPF :
votredomaine.com. MX 1 mail.votredomaine.com.
mail.votredomaine.com. A ip.v4.du.serveur
webmail.votredomaine.com. CNAME mail.votredomaine.com.
votredomain.com. SPF "v=spf1 ip4:ip.v4.du.server ~all"
Installation des paquets
Maintenant installons postfix dovecot-imapd et sasl2-bin :
apt-get install postfix dovecot-imapd sasl2-bin php5-curl
Configurer le serveur de messagerie comme "Site Internet", puis en nom de courrier indiquer "mail.votredomaine.com".
Configuration de dovecot
Créer un dossier ssl dans dovecot :
mkdir /etc/dovecot/ssl && cd /etc/dovecot/ssl
Créer un certificat ssl :
openssl req -new -newkey rsa:2048 -nodes -keyout certificat.key -out certificat.csr
Puis répondre aux différentes questions pour ma part j'ai répondu :
FR
(vide)
Paris
votredomaine
IT
mail.votredomaine.com
contact@votredomaine.com
(vide)
(vide)
Ensuite :
openssl x509 -req -days 365 -in certificat.csr -signkey certificat.key -out certificat.crt
Puis :
cat certificat.key certificat.crt > certificat.pem
Créer le groupe et l'utilisateur vmail :
groupadd -g 5000 vmail
useradd -m -d /var/vmail -s /bin/false -u 5000 -g vmail vmail
Ajouter dans /etc/dovecot/dovecot.conf :
listen = ip.v4.du.server
Editer /etc/dovecot/conf.d/10-auth.conf :
disable_plaintext_auth = yes
auth_username_format = %Lu
#!include auth-system.conf.ext
!include auth-passwdfile.conf.ext
Editer /etc/dovecot/conf.d/10-logging.conf :
auth_verbose = yes
mail_debug = yes
Editer /etc/dovecot/conf.d/10-master.conf :
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix
}
Editer /etc/dovecot/conf.d/10-ssl.conf :
ssl = required
ssl_cert = </etc/dovecot/ssl/certificat.pem
ssl_key = </etc/dovecot/ssl/certificat.key
Editer /etc/dovecot/conf.d/15-mailboxes.conf :
mailbox Drafts {
auto = subscribe
special_use = \Drafts
}
mailbox Junk {
auto = subscribe
special_use = \Junk
}
mailbox Trash {
auto = subscribe
special_use = \Trash
}
mailbox Sent {
auto = subscribe
special_use = \Sent
}
#mailbox "Sent Messages" {
# special_use = \Sent
#}
Editer /etc/dovecot/conf.d/auth-passwdfile.conf.ext :
passdb {
driver = passwd-file
args = scheme=MD5 username_format=%u /etc/dovecot/users
}
userdb {
driver = passwd-file
args = username_format=%u /etc/dovecot/users
default_fields = uid=5000 gid=5000 home=/var/vmail/%d mail=maildir:~/%u
}
Créer le fichier /etc/dovecot/users :
touch /etc/dovecot/users
Puis pour chaque mail créer un enregistrement :
adresse@votredomaine.com:motdepassemd5:::::::
Le format est le suivant :
Champ | Valeur |
---|---|
Adresse email | |
Mot de passe (MD5) | motdepassemd5 |
uid | déjà défini dans auth-passwdfile |
gid | déjà défini dans auth-passwdfile |
home directory | déjà défini dans auth-passwdfile |
mail directory | déjà défini dans auth-passwdfile |
Tester votre utilisateur grâce à la commande :
doveadm user adresse@votredomaine.com
Ce qui devrait afficher :
field value
uid 5000
gid 5000
home /var/vmail/votredomaine.com
mail maildir:~/adresse@votredomaine.com
Démarrer dovecot :
/etc/init.d/dovecot start
Tester la connexion :
openssl s_client -connect ip.v4.du.server:993
Si vous avez "* OK [CAPABILITY …] Dovecot ready. Vous pouvez vous authentifier :
. LOGIN adresse@votredomaine.com motdepasseenclair
C'est fini pour dovecot.
Configuration de sasl
Editer /etc/default/saslauthd :
START=yes
OPTIONS="-m /var/spool/postfix/var/run/saslauthd"
Puis lancer :
/etc/init.d/saslauthd start
C'est fini pour sasl
Configuration de postfix
Editer /etc/postfix/main.cf ::
smtpd_banner = $myhostname ESMTP $mail_name
smtpd_tls_cert_file=/etc/dovecot/ssl/certificat.pem
smtpd_tls_key_file=/etc/dovecot/ssl/certificat.key
mynetworks = 127.0.0.0/8 ip.v4.du.server
virtual_mailbox_domains = votredomaine.com, autredomaine.com
virtual_mailbox_base = /var/vmail
virtual_mailbox_maps = hash:/etc/postfix/virtual_mailbox
virtual_minimum_uid = 100
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
virtual_alias_maps = hash:/etc/postfix/virtual_alias
smtpd_sasl_auth_enable = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_security_options = noanonymous
smtpd_sasl_tls_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
broken_sasl_auth_clients = yes
smtpd_helo_restrictions = reject_unknown_helo_hostname
smtpd_sender_restrictions = permit_sasl_authenticated reject_unknown_sender_domain
smtpd_recipient_restrictions = permit_sasl_authenticated permit_mynetworks reject_unauth_destination
smtpd_enforce_tls = no
smtpd_tls_auth_only = no
smtpd_tls_ask_ccert = no
smtpd_tls_received_header = yes
tls_random_source = dev:/dev/urandom
Créer /etc/postfix/virtual_alias :
touch /etc/postfix/virtual_alias
Pour créer un alias, éditer /etc/postfix/virtual_alias :
alias@votredomaine.com destination@votredomaine.com
Créer /etc/postfix/virtual_domains :
touch /etc/postfix/virtual_domains
Pour gérer vos domaines, éditer /etc/postfix/virtual_domains :
votredomaine.com OK
votredeuxiemedomaine.com OK
Créer /etc/postfix/virtual_mailbox :
touch /etc/postfix/virtual_mailbox
Pour créer un comte mail, éditer /etc/postfix/virtual_mailbox :
email@votredomaine.com votredomaine.com/email@votredomaine.com/
linus@torvald.com torvald.com/linus@torvald.com/
N'oubliez pas lors de la création de nouveau comptes mail d'éditer /etc/dovecot/users ;-)
Maintenant il faut dire a postfix que nous avons modifier nos fichiers virtuels :
postmap /etc/postfix/virtual_alias
postmap /etc/postfix/virtual_domains
postmap /etc/postfix/virtual_mailbox
Editer /etc/postfix/master.cf :
smtp inet n - - - - smtpd -v
-o smtpd_tls_cert_file=/etc/dovecot/ssl/certificat.pem
-o smtpd_tls_key_file=/etc/dovecot/ssl/certificat.key
submission inet n - n - - smtpd
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
urd inet n - n - - smtpd
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
smtps inet n - - - - smtpd -v
-o smtpd_tls_wrappermode=yes
-o smtpd_tls_cert_file=/etc/dovecot/ssl/certificat.pem
-o smtpd_tls_key_file=/etc/dovecot/ssl/certificat.key
Puis redemarrer postfix :
/etc/init.d/postfix restart
Fin de la configuration de postfix.
Vous pouvez maintenant tester votre serveur mail ainsi que la qualité de votre serveur sur le site http://www.mail-tester.com
Installation d'un webmail rainloop
Créer un dossier pour votre webmail :
mkdir -p /var/www/webmail/public && cd /var/www/webmail/public
Télécharger rainloop :
wget http://repository.rainloop.net/v2/webmail/rainloop-community-latest.zip
Décompresser rainloop :
unzip rainloop*.zip && rm -rf rainloop*.zip
Modifier les droits :
chown -R www-data:www-data /var/www/webmail
find . -type f -exec chmod 644 {} \;
find . -type d -exec chmod 755 {} \;
Créer un vhost pour apache dans /etc/apache2/site-enabled/001-webmail.domain.com.conf :
<VirtualHost *:80>
ServerAdmin contact@domain.com
ServerName mail.domain.com
DocumentRoot /var/www/webmail/public
<Directory /var/www/webmail/public>
Options FollowSymLinks
#Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
<Directory /var/www/webmail/public/data>
Options -FollowSymLinks
AllowOverride None
Order allow,deny
Deny from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/webmail_error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/webmail_access.log combined
</VirtualHost>
N'oubliez pas de redémarrer apache :
/etc/init.d/apache2 restart
Pour configurer rainloop se rendre sur : http://mail.domain.com/?admin
Login | admin |
---|---|
Password | 12345 |
Changer la langue et votre mot de passe (dans security).
Puis dans domains configurez votre nom de domaine en cliquant sur + Add domain
Name | domaine.com |
---|---|
IMAP | |
Server | mail.domain.com |
Secure | SSL/TLS |
SMTP | |
---|---|
Server | mail.domain.com |
Secure | SSL/TLS |
Puis + Add
Je supprime tous les autres domaines (gmail etc…)
Ensuite j'active les plugins, et les packages : X-Originating-IP, Black list et White list.
Maintenant rendez-vous sur : http://mail.domain.com et identifiez-vous avec votre login et mot de passe.