Installer un serveur Mail (Postfix)
1 - Délégation DNS (OVH) :
Je vais créer un sous domaine "mymail.nehemiebarkia.fr" et pointer un MX dessus :
2 - Mettre à jour le système :
apt-get update ; apt-get upgrade -y
3 - Installation de LAMP :
wget https://scripts.nehemiebarkia.fr/BASH/Installations/LAMP.sh
bash LAMP.sh
4 - Installation de Mailutils & Tree :
apt-get install tree mailutils -y
5 - Installation de Postfix :
apt-get install postfix postfix-mysql -y
--> Lors de l'installation, vous choisirez "Site internet".
--> Puis nous précisons le nom de domaine du mail :
N'oubliez pas le "." à la fin de votre nom de domaine !
6 - Installation de Dovecot :
apt-get install dovecot-mysql dovecot-pop3d dovecot-imapd dovecot-managesieved -y
7 - Groupe d'utilisateurs Linux :
Nous allons créer le groupe vmail qui accueillera les mails. Nous allons également créer l'utilisateur vmail.
groupadd -g 5000 vmail
useradd -g vmail -u 5000 vmail -d /var/vmail -m
Si vous utilisez une machine virtuelle chez Google, commencer les deux commandes avec "/usr/sbin/".
8 - Installation de Postfixadmin :
Avant d'installer Postfixadmin, nous allons préparer mariadb :
mysql_secure_installation
--> Vous allez définir un nouveau mot de passe pour le compte root puis procéder aux options par défaut.
a) Base de données :
Nous entrons dans la console mariadb.
mariadb -u root -p
Le mot de passe demandé est celui que vous avez précédemment changé et non le mot de passe root de l'utilisateur sur le serveur linux.
Création de l'utilisateur SQL.
CREATE DATABASE postfix;
CREATE USER 'postfix'@'localhost' IDENTIFIED BY 'MYPASSWORD';
GRANT ALL PRIVILEGES ON `postfix` . * TO 'postfix'@'localhost';
Par mesure de sécurité nous créons un second utilisateur qui n'aura uniquement que des droits de lecture sur la base de données :
CREATE USER 'mailuser'@'localhost' IDENTIFIED BY 'MYPASSWORD';
GRANT SELECT ON `postfix`.* TO 'mailuser'@'localhost';
FLUSH PRIVILEGES;
QUIT ;
b) Postfixadmin :
Maintenant que tout ça est fait, nous pouvons installer Postfixadmin :
cd /srv/
wget -O postfixadmin.tgz https://github.com/postfixadmin/postfixadmin/archive/postfixadmin-3.2.tar.gz
tar -zxvf postfixadmin.tgz
mv postfixadmin-postfixadmin-3.2 postfixadmin
ln -s /srv/postfixadmin/public /var/www/html/postfixadmin
Configuration :
nano /srv/postfixadmin/config.local.php
<?php
$CONF['database_type'] = 'mysqli';
$CONF['database_host'] = 'localhost';
$CONF['database_name'] = 'postfix';
$CONF['database_user'] = 'postfix';
$CONF['database_password'] = 'MYPASSWORD';
$CONF['configured'] = true;
?>
Ce fichier n'existait pas, pas de panique si, quand vous l'ouvrez, il est vide !
mkdir -p /srv/postfixadmin/templates_c
chown -R www-data /srv/postfixadmin/templates_c
nano /srv/postfixadmin/config.local.php
// Ajouter la ligne suivante :
$CONF['setup_password'] = 'c4db13bd0d48dc5d4486bddbf5e35fd2:96107d8f161b0d0f96b94cbba463426708e83e1a';
Ne copiez-collez pas ! Faites selon le texte qui apparait sur vos machines !
8 - Configuration de Postfix :
nano /etc/postfix/mysql-virtual-mailbox-domains.cf
user = mailuser
password = MYPASSWORD
hosts = 127.0.0.1
dbname = postfix
query = SELECT 1 FROM domain where domain='%s'
postconf -e virtual_mailbox_domains=mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
Si vous utilisez une machine virtuelle chez Google, commencer la commandes avec "/usr/sbin/".
Réalisation d'un test :
postmap -q mymail.nehemiebarkia.fr mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
Si la réponse est 1 alors postfix trouve correctement le nom de domaine.
Si vous utilisez une machine virtuelle chez Google, commencer la commandes avec "/usr/sbin/".
9 - Configuration de Dovecot :
nano /etc/dovecot/conf.d/10-auth.conf
Dans ce fichier nous allons chercher la ligne "auth_mechanisms" :
Nous allons ajouter à la fin de la ligne "login" :
Puis à la fin de ce fichier, nous allons chercher les lignes suivantes :
Nous allons commenter "!include auth-system.conf.ext" et décommenter "#!include auth-sql.conf.ext" comme ceci :
Puis modifions le fichier "auth-sql.conf.ext" :
nano /etc/dovecot/conf.d/auth-sql.conf.ext
Nous allons chercher le bloc "userdb" et remplacer le tout par les lignes suivantes :
userdb {
driver = static
args = uid=vmail gid=vmail home=/var/vmail/%d/%n
}
Puis nous allons changer l'emplacement des mail :
nano /etc/dovecot/conf.d/10-mail.conf
Et nous allons remplacer le "mail_location" :
mail_location = maildir:/var/vmail/%d/%n/Maildir
En suite, nous allons modifier le fichier suivant :
nano /etc/dovecot/conf.d/10-master.conf
















