Mail server setup
Updated 7 Mars 2019
Introduction
Un serveur de messagerie est un serveur qui traite les messages électroniques, ce qui inclut la réception et l'envoi, ainsi que l'envoi de courrier. Le courrier entrant n'est pas envoyé directement à l'ordinateur de l'utilisateur (sinon il aurait fallu le garder constamment allumé), mais il est stocké sur le serveur de messagerie, qui fonctionne 24 heures sur 24, de sorte que l'utilisateur peut relever son courrier à tout moment.
Pour mettre en place un serveur de messagerie, vous pouvez utiliser les Utilitaires Calculate fournis dans le paquet sys-apps/calculate-server. Les comptes d'utilisateurs et de groupes sont stockés sur le serveur OpenLDAP, Postfix est l'agent de messagerie et Dovecot+ remplit la fonction de serveur IMAP/POP3. Tous les logiciels nécessaires sont inclus dans [Calculate Directory Server] (cds).
LDAP configuration
Commencez par configurer un serveur LDAP. Effectuez toutes les procédures d'installation nécessaires conformément au manuel.
Configuration du serveur de messagerie
Avant de configurer le serveur de messagerie, configurez le stockage des comptes pour les utilisateurs Unix. Pour ce faire, exécutez:
* WARNING: Running this program will modify the configuration files and the LDAP database. If you want to continue, enter 'yes', else enter 'no': yes
* Added ldif file ...
[ok]
* Unix service configured ...
[ok]
Pour mettre en place un serveur mail avec les paramètres par défaut, exécutez :
* WARNING: Running this program will modify the configuration files and the LDAP database. If you want to continue, enter 'yes', else enter 'no': yes
* Removed Mail DN from LDAP database ...
[ok]
* Added ldif file ...
[ok]
* Starting Postfix ...
[ok]
* Starting Dovecot ...
[ok]
* Mail service configured ...
[ok]
Pour sélectionner l'hôte mail.example.org et utiliser les protocoles IMAP et POP3, procédez comme suit:
cl-setup --type pop3,imap --host mail.example.org mail
Pour afficher tous les paramètres disponibles, exécutez :
calculate-server 2.1.18 Usage: cl-setup [options] service Sets service in the system Examples: cl-setup samba # set Samba service in the system. Common options: -h, --help display this help and exit --help-all display help for all services options --help-jabber display help for Jabber service options --help-ldap display help for LDAP service options --help-mail display help for Mail service options --help-samba display help for Samba service options --help-proxy display help for Proxy service options --help-dns display help for DNS service options --help-dhcp display help for DHCP service options Mail service options: -a, --allow enter the allowed ip addresses and network --host HOST mail host, default - hostname -t, --type TYPE mail type - 'imap', 'pop3', 'pop3,imap' (default - imap) -c, --crypt CRYPT encryption type - 'none', 'tls' (default - tls) --history CONDITION enabled or disabled mail history logging, default disable. (on/off) --history-domains DOMAIN domain or domains for own mail (comma delimited) --history-path PATH history path Services: ldap ldap service unix unix service samba samba service mail mail service jabber jabber service ftp ftp service proxy proxy service dns dns service dhcp dhcp service
Une fois l'opération cl-setup' terminée, le service de messagerie sera configuré et lancé. Utilisez l'outil
netstat' pour vérifier les ports ouverts:
Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:636 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:993 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:995 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:389 0.0.0.0:* LISTEN tcp6 0 0 :::110 :::* LISTEN tcp6 0 0 :::143 :::* LISTEN tcp6 0 0 :::22 :::* LISTEN tcp6 0 0 ::1:631 :::* LISTEN tcp6 0 0 :::25 :::* LISTEN tcp6 0 0 :::636 :::* LISTEN tcp6 0 0 :::993 :::* LISTEN tcp6 0 0 :::995 :::* LISTEN tcp6 0 0 :::389 :::* LISTEN
Protocols POP3 и IMAP use ports 110 и 143 respectivement.
Pour éviter le spam apporté aux utilisateurs du système (décrit dans /etc/mail/aliases), le répertoire mail nobody n'est pas créé par défaut. Si vous devez recevoir des messages pour les utilisateurs système, créez un répertoire avec les droits d'accès correspondants :
mkdir /var/calculate/server-data/mail/nobody
chown nobody:nobody /var/calculate/server-data/mail/nobody
chmod 0700 /var/calculate/server-data/mail/nobody
Maintenant tous les messages pour les utilisateurs du système seront stockés dans /var/calculate/server-data/mail/nobody.
Gestion des comptes
Un compte est un enregistrement qui contient les informations nécessaires à l'identification de l'utilisateur lors de la connexion au système, de l'authentification et de l'enregistrement. Dans notre cas, il sera utilisé pour se connecter à un service de messagerie ou à une boîte aux lettres.
Une mailbox est une partition de disque logique utilisée pour le stockage du courrier, appelée adresse électronique, ou courriel. Plusieurs adresses peuvent correspondre à une boîte aux lettres, appelées synonymes ou alias ou encore surnoms (nicknames).
Pour ajouter l'utilisateur guest avec l'identifiant de messagerie guestmail@mail.example.org, exécutez :
New password: Repeat new password: * User added to Unix service * User added to Mail service
Pour modifier le mot de passe utilisateur guest, exécutez :
New password: Repeat new password: * Password of Mail service user changed
Pour supprimer l'utilisateur guest du service de messagerie :
* Created /var/calculate/server-backup/deleted/guest-1000/mail for storing remote user data * User mail directory /var/calculate/server-data/mail/guest deleted * User guest of Mail service deleted
Gérer les groupes de messagerie
Un groupe de messagerie est un ensemble d'adresses électroniques utilisées pour envoyer du courrier à plusieurs destinataires. Un courriel envoyé à l'adresse du groupe est distribué à tous les utilisateurs appartenant à celui-ci.
Pour ajouter un groupe de diffusion guestgroup avec une adresse de diffusion alternative gg@example.org, exécutez :
* Group 'guestgroup' added to Mail service
Pour supprimer le groupe guestgroup, faites :
* Group guestgroup of Mail service was removed
Pour ajouter et supprimer des comptes, utiliser les commandes cl-usermod
et cl-groupmod
.
Par exemple, pour ajouter l'utilisateur guest aux groupes guesttest et guestgroup, exécutez la commande suivante :
* User added to groups
Déplacez l'utilisateur guest vers le groupe guesttest :
* List of additional groups replaced
Pour ajouter les utilisateurs guest1 et guest2 au groupe guesttest, exécutez :
* Users added to group guesttest
Pour supprimer les utilisateurs guest1 et guest2 du groupe guesttest, lancez:
* Users removed from group guesttest
Vérification du serveur
Pour vérifier si le courrier a été envoyé à ~~guestmail@mail.example.org, exécutez:
CONNECTED(00000003) ... --- 250 DSN ehlo mail 250-mail.example.org 250-PIPELINING 250-SIZE 100000000 250-ETRN 250-AUTH PLAIN LOGIN 250-AUTH=PLAIN LOGIN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN mail from:<guest@mail.example.org> 250 2.1.0 Ok rcpt to:<guestmail@mail.example.org> 250 2.1.5 Ok data 354 End data with <CR><LF>.<CR><LF> From:<guest@mail.example.org> To:<guestmail@mail.example.org> Subject: Test Test . 250 2.0.0 Ok: queued as 15A9D1D4A2 quit 221 2.0.0 Bye closed
Pour vérifier la réception du courrier via IMAP pour l'utilisateur invité avec mot de passe secret , suivez ces étapes:
CONNECTED(00000003) ... --- . OK Pre-login capabilities listed, post-login capabilities have more. A1 LOGIN guest secret * CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS THREAD=ORDEREDSUBJECT MULTIAPPEND URL-PARTIAL CATENATE UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS BINARY MOVE SNIPPET=FUZZY LITERAL+ NOTIFY SPECIAL-USE A1 OK Logged in A2 SELECT Inbox * FLAGS (\Answered \Flagged \Deleted \Seen \Draft) * OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft \*)] Flags permitted. * 1 EXISTS * 0 RECENT * OK [UIDVALIDITY 1542618255] UIDs valid * OK [UIDNEXT 2] Predicted next UID A2 OK [READ-WRITE] Select completed (0.002 + 0.000 + 0.001 secs). A3 FETCH 1 BODY[HEADER] * 1 FETCH (BODY[HEADER] {598} Return-Path: <noname@mail.example.org> X-Original-To: guestmail@mail.example.org Delivered-To: guest@mail.example.org Received: from mail (mail.example.org [127.0.0.1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.example.org (Postfix) with ESMTPS id 15A9D1D4A2 for <guestmail@mail.example.org>; Mon, 19 Nov 2018 11:58:27 +0300 (MSK) From:<guest@mail.example.org> To:<guestmail@mail.example.org> Subject: Test Message-Id: <20181119085920.15A9D1D4A2@mail.example.org> Date: Mon, 19 Nov 2018 11:58:27 +0300 (MSK) ) A3 OK Fetch completed (0.001 + 0.000 secs). A4 LOGOUT * BYE Logging out A4 OK Logout completed (0.001 + 0.000 secs). closed
Pour vérifier la réception du courrier via POP3 pour l'utilisateur guest avec mot de passe secret , suivez ces étapes:
CONNECTED(00000003) ... --- +OK Dovecot ready. user guest +OK pass secret +OK Logged in. list +OK 1 messages: 1 604 . retr 1 +OK 604 octets Return-Path: <noname@mail.example.org> X-Original-To: guestmail@mail.example.org Delivered-To: guest@mail.example.org Received: from mail (mail.example.org [127.0.0.1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.example.org (Postfix) with ESMTPS id 15A9D1D4A2 for <guestmail@mail.example.org>; Mon, 19 Nov 2018 11:58:27 +0300 (MSK) From:<guest@mail.example.org> To:<guestmail@mail.example.org> Subject: Test Message-Id: <20181119085920.15A9D1D4A2@mail.example.org> Date: Mon, 19 Nov 2018 11:58:27 +0300 (MSK) Test . quit +OK Logging out. closed