Raspberry PI en Serveur email

Serveur mail : smtp imap dovecot raspberry pi

Publicité
Advertisements
(Last Updated On: 29 juin 2021)

Raspberry Pi ServerMail

Introduction

Dans ce didacticiel, vous apprendrez à créer votre propre serveur de messagerie sur votre Raspberry Pi.

Remarque : en fait, pas seulement un Raspberry Pi. Cette configuration fonctionnera parfaitement sur n’importe quelle machine Debian.

Vous utiliserez:

  • Postfix , agent de transfert de courrier open-source qui achemine et distribue le courrier électronique.
  • Dovecot , serveur IMAP et POP3 open source.
  • MardiaDB (MySQL), pour stocker les détails du compte de messagerie.
  • RoundCube , client de messagerie IMAP basé sur le Web pour lire et envoyer vos e-mails.

Vous utiliserez cependant des services Web sophistiqués et gratuits pour auditer votre configuration, afin d’obtenir des résultats de haute sécurité et de crédibilité.

C’est important ! Depuis, il n’est pas professionnel de dire:

Si vous ne trouvez pas notre e-mail, vérifiez votre dossier SPAM.

Cependant, c’est très réaliste, vous l’avez peut-être déjà vu sur certains sites Web que vous avez visités. L’écriture d’un tel texte est pratiquée, car tous les messages électroniques provenant de serveurs de messagerie non fiables ou mal configurés seront signalés comme SPAM .

Garder à l’esprit

Ce didacticiel s’ajoute aux didacticiels sur les serveurs personnels sécurisés publiés précédemment. Je suppose que vous avez déjà une implémentation relativement sécurisée du serveur Web NginX, du serveur MariaDB (MySQL) et des IPTables.

Lire attentivement

Si vous configurez un serveur de messagerie à l’aide de votre connexion Internet résidentielle :

AVERTISSEMENT: il se peut que le serveur de messagerie que vous venez de configurer ne fonctionne pas!

Il n’y a probablement rien de mal avec votre configuration. Sachez simplement que la PLUPART des FAI (fournisseurs d’accès Internet) bloquent les ports et le trafic liés au courrier électronique sur leurs réseaux résidentiels.

Voici l’explication, ils fournissent généralement:

Il est fait pour limiter la fraude et autres activités malveillantes des ordinateurs infectés par des virus sur nos réseaux.

Comment savoir si votre FAI bloque les ports de messagerie?

Il existe un outil, nmap , il vous permettra de faire exactement cela. Installez l’outil:

sudo apt-get install nmap

et exécutez cette commande

nmap -p 0-65535 portquiz.net > /tmp/nmaptest

Il analysera les ports de 0 à 65535 et marquera les ports bloqués. Ensuite, il suffit de grep pour les filteredports.

grep filtered /tmp/nmaptest

Dans mon cas, c’était

25/tcp    filtered smtp
135/tcp   filtered msrpc
136/tcp   filtered profile
137/tcp   filtered netbios-ns
138/tcp   filtered netbios-dgm
139/tcp   filtered netbios-ssn
445/tcp   filtered microsoft-ds

25 / tcp filtré smtp

Le port 25 est filtré par mon FAI. Je vais devoir mettre à jour le FAI …

Ce ne sont que quelques éléments à considérer, avant de paniquer, si votre serveur n’envoie ni ne reçoit d’emails …

Commençons!

Il est temps de commencer par configurer votre propre serveur de messagerie.

Créer un utilisateur vmail

Comme première chose à faire, créez un groupe vmail et un utilisateur avec un répertoire personnel.

sudo groupadd -g 5000 vmail 
sudo useradd -g vmail -u 5000 vmail -d /var/email -m

C’est l’utilisateur qui gérera le processus de messagerie.

Configurer le pare-feu IPTables

Si vous utilisez un pare-feu, tel qu’IPtables, vous devez autoriser le trafic dans vos IPTables. Je suppose que vous avez suivi mes tutoriels précédents et qu’un pare-feu IPTables est déjà en cours d’exécution. Pour mettre à jour les règles afin d’autoriser le trafic de messagerie, exécutez cette commande.

sudo nano /etc/iptables.firewall.rules

Avant cette ligne

# -------------- WEB

Ajoutez les lignes suivantes

# -------------- MAIL
#SMTP
-A INPUT -p tcp --dport 25 -j ACCEPT
-A INPUT -p tcp --dport 465 -j ACCEPT
-A INPUT -p tcp --dport 587 -j ACCEPT
#IMAP(S)
-A INPUT -p tcp --dport 143 -j ACCEPT
-A INPUT -p tcp --dport 993 -j ACCEPT
#POP(S)
-A INPUT -p tcp --dport 110 -j ACCEPT
-A INPUT -p tcp --dport 995 -j ACCEPT

N’oubliez pas de recharger les règles IPTables que vous venez de mettre à jour.

sudo iptables-restore < /etc/iptables.firewall.rules

Vous pouvez vérifier que les nouvelles règles ont pris effet en exécutant cette commande.

sudo iptables -L

Transférer les ports de votre routeur

Si vous configurez cela sur votre Raspberry Pi à la maison, assurez-vous de transférer ces ports sur TCP:

25, 465, 587, 143, 993, 110, 995

Malheureusement, il existe trop de modèles différents de modems et de routeurs. Par conséquent, la redirection de port ne sera pas abordée dans ce didacticiel. Recherchez simplement en ligne comment transférer les ports sur votre modèle particulier.

Configurer les enregistrements DNS

Voici les enregistrements que vous devez ajouter à votre configuration DNS.

Domaine Type d’enregistrement Destination
[VOTRE_SITE] .com MX 10: mail. [YOUR_SITE] .com
mail. [VOTRE_SITE] .com UNE [YOUR_EXTERNAL_IP]
Webmail. [YOUR_SITE] .com UNE [YOUR_EXTERNAL_IP]

Désormais, le trafic de messagerie provenant d’Internet devrait pouvoir trouver son chemin vers votre serveur de messagerie.

Installer des packages

Continuons en installant les packages supplémentaires nécessaires pour votre serveur de messagerie.

sudo apt-get install postfix postfix-mysql dovecot-core dovecot-imapd dovecot-pop3d dovecot-lmtpd dovecot-mysql

Je suppose que vous avez déjà une installation de serveur DB, comme MariaDB (MySQL). Par conséquent, il n’est pas installé ici.

Configurer la base de données de votre serveur de messagerie

Les détails de votre compte et d’autres informations, telles que les alias, seront stockés.

Vous devrez créer quelques tables pour stocker toutes ces informations.

Connectez-vous en tant que root.

mysql -u root -p

Créez un serveur de messagerie de base de données .

DROP DATABASE IF EXISTS mailserver; CREATE DATABASE IF NOT EXISTS mailserver DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

Créez un nouvel utilisateur mailuser , avec uniquement la subvention SELECT .

GRANT SELECT ON mailserver.* TO `mailuser`@`localhost` IDENTIFIED BY '[MAIL_DB_USR_PASSWORD]';

Si vous avez un utilisateur de base de données admin, autre que root. Vous souhaiterez peut-être ajouter tous les privilèges à l’utilisateur de la base de données admin.

GRANT ALL PRIVILEGES ON mailserver.* TO '[YOUR_DB_ADMIN]'@'localhost' WITH GRANT OPTION;

Exécutez ces requêtes pour continuer.

FLUSH PRIVILEGES;

USE mailserver;

Maintenant que vous êtes dans la base de données du serveur de messagerie , créez ces tables.

CREATE TABLE `virtual_domains` (`id` int(11) NOT NULL auto_increment, `name` varchar(50) NOT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `virtual_users` (`id` int(11) NOT NULL auto_increment, `domain_id` int(11) NOT NULL, `password` varchar(106) NOT NULL, `email` varchar(100) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `email` (`email`), FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `virtual_aliases` (`id` int(11) NOT NULL auto_increment,`domain_id` int(11) NOT NULL,`source` varchar(100) NOT NULL,`destination` varchar(100) NOT NULL,PRIMARY KEY (`id`),FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Ensuite, insérez des données dans ces tables. Insérez d’abord tous vos domaines sur lesquels vous souhaitez recevoir des e-mails.

INSERT INTO mailserver.virtual_domains (id ,name) VALUES (1, '[YOUR_SITE.com]'), (2, '[YOUR_OTHER_SITE.com]');

Deuxièmement, créez de vrais comptes avec un mot de passe pour vos domaines.

INSERT INTO mailserver.virtual_users (id, domain_id, password , email) VALUES (1, 1, ENCRYPT('[SOME_PASSWORD]', CONCAT('$6$', SUBSTRING(SHA(RAND()), -16))), 'info@[YOUR_SITE.com]'), (2, 2, ENCRYPT('[SOME_OTHER_PASSWORD]', CONCAT('$6$', SUBSTRING(SHA(RAND()), -16))), 'info@[YOUR_OTHER_SITE.com]');

troisièmement, créez des alias (pas un compte réel) Les e-mails ayant ces adresses comme destination seront livrés au compte réel, ils sont liés dans ce tableau.

INSERT INTO mailserver.virtual_aliases (id, domain_id, source, destination) VALUES 
(1, 1, 'contact@[YOUR_SITE.com]', 'info@[YOUR_SITE.com]'),
(2, 1, 'no-reply@[YOUR_SITE.com]', 'info@[YOUR_SITE.com]'),
(3, 2, 'contact@[YOUR_OTHER_SITE.com]', 'info@[YOUR_OTHER_SITE.com]'),
(4, 2, 'no-reply@[YOUR_OTHER_SITE.com]', 'info@[YOUR_OTHER_SITE.com]');

exit

Assurez-vous, pour examiner les requêtes. Évidemment, modifiez les valeurs telles que [YOUR_SITE.com] and [SOME_PASSWORD]vos valeurs réelles.

Configurer le serveur de messagerie

Maintenant, il est temps de tout configurer. Comme d’habitude, sous Linux, la configuration n’est qu’un tas de fichiers de configuration.

Fichiers de configuration de sauvegarde

Avant de changer quoi que ce soit, il est recommandé de tout sauvegarder. Si vous pouvez revenir à l’original à tout moment.

sudo cp /etc/postfix/main.cf /etc/postfix/main.cf.orig
sudo cp /etc/postfix/master.cf /etc/postfix/master.cf.orig
sudo cp /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf.orig
sudo cp /etc/dovecot/conf.d/10-mail.conf /etc/dovecot/conf.d/10-mail.conf.orig
sudo cp /etc/dovecot/conf.d/10-auth.conf /etc/dovecot/conf.d/10-auth.conf.orig
sudo cp /etc/dovecot/dovecot-sql.conf.ext /etc/dovecot/dovecot-sql.conf.ext.orig
sudo cp /etc/dovecot/conf.d/10-master.conf /etc/dovecot/conf.d/10-master.conf.orig
sudo cp /etc/dovecot/conf.d/10-ssl.conf /etc/dovecot/conf.d/10-ssl.conf.orig

Configurez Postfix

Modifiez le fichier de configuration principal.

sudo nano /etc/postfix/main.cf

Voici à quoi ressemble ma configuration, parcourez et configurez la vôtre;)

smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

readme_directory = no

# See http://www.postfix.org/COMPATIBILITY_README.html -- default to 2 on
# fresh installs.
compatibility_level = 2

# TLS parameters
smtpd_tls_cert_file=/etc/letsencrypt/live/mail.[YOUR_SITE].com/fullchain.pem
smtpd_tls_key_file=/etc/letsencrypt/live/mail.[YOUR_SITE].com/privkey.pem
smtpd_use_tls=yes
smtpd_tls_auth_only = yes


#Disable Poodle
smtp_tls_security_level = may
smtpd_tls_mandatory_protocols=!SSLv2,!SSLv3
smtp_tls_mandatory_protocols=!SSLv2,!SSLv3
smtpd_tls_protocols=!SSLv2,!SSLv3
smtp_tls_protocols=!SSLv2,!SSLv3
# Changes to SSL Ciphers
tls_preempt_cipherlist = yes
smtpd_tls_mandatory_ciphers = high
tls_high_cipherlist = ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:DHE-DSS-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA256:ADH-AES256-GCM-SHA384:ADH-AES256-SHA256:ECDH-RSA-AES256-GCM-SHA384:ECDH-ECDSA-AES256-GCM-SHA384:ECDH-RSA-AES256-SHA384:ECDH-ECDSA-AES256-SHA384:AES256-GCM-SHA384:AES256-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:DHE-DSS-AES128-GCM-SHA256:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES128-SHA256:DHE-DSS-AES128-SHA256:ADH-AES128-GCM-SHA256:ADH-AES128-SHA256:ECDH-RSA-AES128-GCM-SHA256:ECDH-ECDSA-AES128-GCM-SHA256:ECDH-RSA-AES128-SHA256:ECDH-ECDSA-AES128-SHA256:AES128-GCM-SHA256:AES128-SHA256:NULL-SHA256


smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes

smtpd_recipient_restrictions =
          permit_sasl_authenticated,
          permit_mynetworks,
          reject_unauth_destination


# Milter configuration
# OpenDKIM
milter_default_action = accept
# Postfix ≥ 2.6 milter_protocol = 6, Postfix ≤ 2.5 milter_protocol = 2
milter_protocol = 6
smtpd_milters = unix:/var/run/opendkim/opendkim.sock
non_smtpd_milters = unix:/var/run/opendkim/opendkim.sock

#smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
#smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.

#smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = [YOUR_HOSTNAME]
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = $myhostname, localhost
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
#mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
#inet_protocols = ipv4


#Handing off local delivery to Dovecot's LMTP, and telling it where to store mail
virtual_transport = lmtp:unix:private/dovecot-lmtp

#Virtual domains, users, and aliases
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf

Configurer les domaines de lecture

La prochaine chose à faire est de configurer Postfix pour lire les domaines virtuels à partir de la base de données SQL.

sudo nano /etc/postfix/mysql-virtual-mailbox-domains.cf
user = mailuser
password = [MAIL_DB_USR_PASSWORD]
hosts = 127.0.0.1
dbname = mailserver
query = SELECT 1 FROM virtual_domains WHERE name='%s'

Redémarrez Postfix.

sudo service postfix restart

Testez cette configuration en exécutant cette commande.

sudo postmap -q [YOUR_SITE].com mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf

renvoie 1Si tout fonctionne correctement. Si rien n’est retourné, il y a un problème.

Configurer les boîtes aux lettres de lecture

Ensuite, configurez Postfix pour lire les boîtes aux lettres à partir de la base de données SQL.

sudo nano /etc/postfix/mysql-virtual-mailbox-maps.cf
user = mailuser
password = [MAIL_DB_USR_PASSWORD]
hosts = 127.0.0.1
dbname = mailserver
query = SELECT 1 FROM virtual_users WHERE email='%s'
sudo service postfix restart

Testez-le avec cette commande.

sudo postmap -q info@[YOUR_SITE.com] mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf

renvoie 1Si tout est en ordre.

Configurer la lecture des alias

Et configurez postfix pour réactiver les alias de la base de données SQL.

sudo nano /etc/postfix/mysql-virtual-alias-maps.cf
user = mailuser
password = [MAIL_DB_USR_PASSWORD]
hosts = 127.0.0.1
dbname = mailserver
query = SELECT destination FROM virtual_aliases WHERE source='%s'
sudo service postfix restart

Testez-le avec cette commande.

sudo postmap -q contact@[YOUR_SITE.com] mysql:/etc/postfix/mysql-virtual-alias-maps.cf

renvoie info@[YOUR_SITE.com]Si tout est en ordre.

Modifier la configuration principale de Postfix

Ensuite, configurez les protocoles sécurisés.

sudo nano /etc/postfix/master.cf

En gros, voici mon fichier de configuration sans aucun commentaire. Trouvez ces lignes et assurez-vous qu’elles ne sont pas commentées.

smtp      inet  n       -       -       -       -       smtpd

submission inet n       -       -       -       -       smtpd

smtps     inet  n       -       -       -       -       smtpd

pickup    unix  n       -       y       60      1       pickup
cleanup   unix  n       -       y       -       0       cleanup
qmgr      unix  n       -       n       300     1       qmgr
#qmgr     unix  n       -       n       300     1       oqmgr
tlsmgr    unix  -       -       y       1000?   1       tlsmgr
rewrite   unix  -       -       y       -       -       trivial-rewrite
bounce    unix  -       -       y       -       0       bounce
defer     unix  -       -       y       -       0       bounce
trace     unix  -       -       y       -       0       bounce
verify    unix  -       -       y       -       1       verify
flush     unix  n       -       y       1000?   0       flush
proxymap  unix  -       -       n       -       -       proxymap
proxywrite unix -       -       n       -       1       proxymap
smtp      unix  -       -       y       -       -       smtp
relay     unix  -       -       y       -       -       smtp
#       -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
showq     unix  n       -       y       -       -       showq
error     unix  -       -       y       -       -       error
retry     unix  -       -       y       -       -       error
discard   unix  -       -       y       -       -       discard
local     unix  -       n       n       -       -       local
virtual   unix  -       n       n       -       -       virtual
lmtp      unix  -       -       y       -       -       lmtp
anvil     unix  -       -       y       -       1       anvil
scache    unix  -       -       y       -       1       scache


maildrop  unix  -       n       n       -       -       pipe
  flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient}


uucp      unix  -       n       n       -       -       pipe
  flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
#
# Other external delivery methods.
#
ifmail    unix  -       n       n       -       -       pipe
  flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
bsmtp     unix  -       n       n       -       -       pipe
  flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop -f$sender $recipient
scalemail-backend unix  -       n       n       -       2       pipe
  flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension}
mailman   unix  -       n       n       -       -       pipe
  flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py
  ${nexthop} ${user}

Modifiez la configuration de Dovecot.

sudo nano /etc/dovecot/dovecot.conf

Assurez-vous d’avoir ces lignes.

# Enable installed protocols
!include_try /usr/share/dovecot/protocols.d/*.protocol
protocols = imap pop3 lmtp

auth_verbose=yes
auth_debug=yes
auth_debug_passwords=yes
mail_debug=yes
verbose_ssl=yes
auth_verbose_passwords=plain

# A comma separated list of IPs or hosts where to listen in for connections.
listen = *, ::

Modifiez une autre configuration Dovecot pour lire le courrier du répertoire que vous venez de créer.

sudo nano /etc/dovecot/conf.d/10-mail.conf

Assurez-vous que le maildir:est défini sur le bon répertoire.

maildir:/var/email/vhosts/%d/%n

Modifier la configuration d’authentification de Dovecot

sudo nano /etc/dovecot/conf.d/10-auth.conf

Assurez-vous que ces valeurs sont définies comme ci-dessous.

disable_plaintext_auth = yes
auth_mechanisms = plain login
#!include auth-system.conf.ext
!include auth-sql.conf.ext

Assurez-vous également de commenter avec # !include auth-system.conf.extet de décommenter !include auth-sql.conf.ext.

Modifiez maintenant le fichier que vous avez décommenté dans la configuration précédente.

sudo nano /etc/dovecot/conf.d/auth-sql.conf.ext

Assurez-vous que ces valeurs sont définies comme ci-dessous.

passdb {
  driver = sql

  # Path for SQL configuration file, see example-config/dovecot-sql.conf.ext
  args = /etc/dovecot/dovecot-sql.conf.ext
}

userdb {
  driver = static
  args = uid=vmail gid=vmail home=/var/email/vhosts/%d/%n
}

Encore une fois, modifiez le fichier de configuration spécifié dans la configuration précédente.

sudo nano /etc/dovecot/dovecot-sql.conf.ext
driver = mysql
connect = host=127.0.0.1 dbname=mailserver user=mailuser password=[MAILSERVER_DB_PASS]
default_pass_scheme = SHA512-CRYPT
password_query = SELECT email as user, password FROM virtual_users WHERE email='%u';

Ensuite, modifiez la configuration 10-master.

sudo nano /etc/dovecot/conf.d/10-master.conf

Assurez-vous que ces valeurs sont définies comme ci-dessous. Il est important de définir les ports de POP3 et IMAP non chiffrés sur 0 . Cela imposera l’utilisation des IMAP et POP3 .

service imap-login {
  inet_listener imap {
    port = 0
  }
  inet_listener imaps {
    port = 993
    ssl = yes
  }
}

service pop3-login {
  inet_listener pop3 {
    port = 0
  }
  inet_listener pop3s {
    port = 995
    ssl = yes
  }
}

service lmtp {
  unix_listener /var/spool/postfix/private/dovecot-lmtp {
   mode = 0600
   user = postfix
   group = postfix
  }
}

service imap {
  # Most of the memory goes to mmap()ing files. You may need to increase this
  # limit if you have huge mailboxes.
  #vsz_limit = $default_vsz_limit

  # Max. number of IMAP processes (connections)
  #process_limit = 1024
}

service pop3 {
  # Max. number of POP3 processes (connections)
  #process_limit = 1024
}

service auth {
  unix_listener /var/spool/postfix/private/auth {
    mode = 0666
    user = postfix
    group = postfix
  }

  unix_listener auth-userdb {
    mode = 0600
    user = vmail
    #group = vmail
  }

  # Auth process is run as this user.
  user = dovecot
}

service auth-worker {

  user = vmail
}

Ensuite, modifiez la configuration de cryptage SSL.

sudo nano /etc/dovecot/conf.d/10-ssl.conf
# SSL/TLS support: yes, no, required. <doc/wiki/SSL.txt>
ssl = required

ssl_cert = </etc/letsencrypt/live/mail.[YOUR_SITE].com/fullchain.pem
ssl_key = </etc/letsencrypt/live/mail.[YOUR_SITE].com/privkey.pem


# SSL protocols to use
ssl_protocols = !SSLv3

# SSL ciphers to use
ssl_cipher_list = ALL:!LOW:!SSLv2:!EXP:!aNULL:!RC4::!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS

Notez que ces </etc/letsencrypt/live/mail.[YOUR_SITE].com/fullchain.pem fichiers n’existent pas encore, vous les créerez plus tard dans cet article en utilisant le certificat SSL gratuit fourni par Let’s encrypt.

Puis modifiez cette configuration.

sudo nano /etc/dovecot/conf.d/15-lda.conf

Décommentez cette ligne.

postmaster_address = %d

Certificat SSL par Let’s Encrypt

Pour vérifier la propriété du domaine pour le problème du certificat SSL par Let’s Encrypt. Je crée un mannequin (site Web vide).

sudo mkdir -p /var/www/mail.[YOUR_SITE].com/logs
sudo mkdir -p /var/www/mail.[YOUR_SITE].com/public-html
sudo chown -R www-data:www-data /var/www/mail.[YOUR_SITE].com/
sudo chmod -R 0750 /var/www/mail.[YOUR_SITE].com/

Et je crée une config.

sudo nano /etc/nginx/sites-available/mail.[YOUR_SITE].com

avec la configuration pour permettre à Let’s Encrypt de vérifier la propriété du domaine.

server {

    listen 80;
    listen [::]:80;

    server_name mail.[YOUR_SITE].com;

    root /var/www/mail.[YOUR_SITE].com/public-html;

    error_log /var/www/mail.[YOUR_SITE].com/logs/error.log error;
    access_log /var/www/mail.[YOUR_SITE].com/logs/access.log;

    client_max_body_size 10m;

    location /.well-known/acme-challenge/ {
        default_type "text/plain";
        allow all;
    }
}

Comme d’habitude, activez le nouveau site web en créant un lien symbolique dans le répertoire approprié.

sudo ln -s /etc/nginx/sites-available/mail.[YOUR_SITE].com /etc/nginx/sites-enabled/mail.[YOUR_SITE].com

Testez et redémarrez le serveur Web NginX.

sudo nginx -t

sudo service nginx restart

Vous êtes réellement prêt à obtenir le certificat SSL de Let’s Encrypt. Pour ce faire, téléchargez simplement leur certbot.

sudo git clone https://github.com/certbot/certbot /etc/letsencrypt

Exécutez le certbot pour le domaine.

sudo /etc/letsencrypt/certbot-auto certonly --agree-tos --webroot -w /var/www/mail.[YOUR_SITE].com/public-html -d mail.[YOUR_SITE].com

À ce stade, vous devriez avoir obtenu le certificat SSL. Vous pouvez le vérifier en vérifiant le dossier.

ls /etc/letsencrypt/live/

Là, vous devriez voir un dossier mail.[YOUR_SITE].comcontenant des fichiers, privkey.pemet fullchain.pem.

Finalisation des configurations

Vous avez terminé avec les fichiers de configuration du serveur de messagerie sans fin! Vous pouvez redémarrer les deux services de votre serveur de messagerie.

sudo service postfix restart
sudo service dovecot restart

Pour tout problème, vous pouvez vous référer aux journaux du serveur de messagerie.

sudo tail -f /var/log/mail.log

Ce n’est pas ça … L’article était trop gros pour tout convenir. La configuration de votre serveur de messagerie personnel est poursuivie dans l’article suivant.

Améliorations supplémentaires

Votre serveur de messagerie peut déjà fonctionner en quelque sorte. Mais ne soyez pas surpris lorsque les e-mails que vous envoyez à partir de votre serveur de messagerie vont directement dans le dossier indésirable des clients de messagerie d’autres personnes.

Voici un article, pour améliorer la crédibilité des emails provenant de votre serveur de messagerie.

Lire et envoyer des e-mails

Vous pouvez utiliser un client externe pour lire et envoyer des e-mails. Mais vous pouvez installer un client de messagerie Web open source, Round Cube .

 Apache Dovecot MailServer MySQL Postfix Raspberry PI Roundcube

Le processus d’installation est couvert dans cet article

https://www.milbako.com/mbk/round-cube-web-mail-client-on-raspberry-pi

Dépannage

Cette section sera mise à jour au fur et à mesure que cet article recevra des commentaires …

Conclusion

Félicitations, si vous avez obtenu des résultats décents dans les mécanismes de test suggérés par cet article, vous disposez désormais d’un serveur de messagerie entièrement fonctionnel et assez sécurisé!

Comme toujours, n’hésitez pas à modifier cette configuration, commentez, si vous avez des questions et partagez cet article avec vos amis.


Merci de votez pour cet article :
Votez : Pas malMoyenBienAcès bienExcélent (1 votes, average: 2,00 out of 5)
Loading...

Laisser un commentaire

Translate »