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 filtered
ports.
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 1
Si 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 1
Si 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.ext
et 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].com
contenant des fichiers, privkey.pem
et 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
Plus dans d’autres articles
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 .
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 :