{{tag>serveur sécurité courrier tutoriel VÉTUSTE}} ---- ====== Comment installer un relais mail sécurisé ? ====== ===== Introduction ===== L'utilisation nomade du courriel (sous entendu IMAP et SMTP) est devenue une pratique courante. Les utilisateurs souhaitent accéder à tous leurs dossiers et veulent envoyer et recevoir des courriels où qu'ils soient. Ce concept de plus en plus désiré (il suffit de voir les systèmes BlackBerry, Palm, ...) pose un problème relativement délicat à gérer pour l'administrateur du serveur de courriel. Dans une utilisation normale (c'est-à-dire les utilisateurs sont dans les murs sur le même réseau que le serveur de courriel), la sécurisation du serveur est simple; on limite les relais SMTP aux seuls réseaux connus. C'est la politique employée par les fournisseurs d'accès Internet. Lorsque les utilisateurs se connectent sur n'importe quel réseau en dehors des murs de la société (WiFi, UMTS, hôtel, ...), il faut assurer un minimum de sécurité. Dans ce document, je vous présenterai comment mettre en place un relais IMAP et SMTP avec authentification et sécurisation SSL. En fin de document, je mentionnerai la configuration client à utiliser dans le cadre d'un usage avec Thunderbird installé sur un portable et la configuration d'un Palm avec SnapperMail. // Remarque : il existe un moyen simple pour un utilisateur distant d'accéder à __toutes__ les ressources d'un réseau d'entreprise, la tunnellisation. Je suis assez contre cette solution si c'est pour ouvrir uniquement un accès courriel car, premièrement, une connexion sous tunnel avec un client Microsoft Windows va envoyer une quantité inconsidérée de paquet pour les accès aux disques réseaux. Et deuxièmement, les accès avec des systèmes GSM, BlackBerry, Palm ou autres sont plus difficiles à mettre en œuvre avec un tunnel. // ===== Pré-requis ===== En rédigeant cette documentation, je pars des principes suivants : - Vous avez une machine fonctionnelle et à jour sous Dapper. - Vous avez accès à un serveur IMAP ou POP3. - Vous avez accès à un serveur SMTP. // Remarque : ces serveurs peuvent être ceux de votre fournisseurs d'accès Internet. // ===== Installation et configuration de base ===== ==== Création des certificats SSL ==== Il existe beaucoup de site expliquant comment créer un certificat SSL personnel. [[tutoriel:comment_creer_un_certificat_ssl|Voici une technique détaillée dans le wiki.]] //Remarque : ce certificat n'est authentifié par aucune autorité, vous aurez donc un message d'avertissement quand vous vous connectez au serveur. Thunderbird prévoit une option : "Toujours faire confiance à..." qu'il convient d'utiliser. // ==== Installation et configuration de Perdition ==== Pour le relais de courrier au niveau IMAP et du POP3, j'utilise [[:perdition]]. [[:Perdition]] sert de relais pour les connexions sécurisées vers un serveur qui, à priori, ne l'est pas. Pour installer [[:perdition]] : sudo apt-get install perdition === IMAPS === Voici les quelques configurations que j'ai utilisé pour effectuer le relais sécurisé IMAP. C'est-à-dire que j'ai un serveur IMAP en interne (simple, non sécurisé, les utilisateurs s'identifient avec login/mot de passe) et de l'extérieur, j'ai un serveur IMAPS (sécurisé en SSL, les utilisateurs s'identifient avec le même login/mot de passe). Pour la configuration, je crée un fichier ''/etc/perdition/perdition.imap4s.conf'' avec les informations suivantes : outgoing_server 192.168.0.5 outgoing_port 143 log_facility local5 no_lookup timeout 40 imap_capability "IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE STARTTLS" listen_port 993 ssl_mode ssl_listen ssl_cert_file /etc/ssl/server.crt ssl_key_file /etc/ssl/server.key Mon serveur IMAP en interne est accédé à l'adresse ''192.168.0.5'' et sur le port ''143''. === POP3S === Voici la configuration utilisée pour effectuer le relais vers un serveur POP3. Pour la configuration, je crée un fichier ''/etc/perdition/perdition.pop3s.conf'' avec les informations suivantes : outgoing_server 192.168.0.4 outgoing_port 110 log_facility local5 no_lookup timeout 40 ssl_mode ssl_listen ssl_cert_file /etc/ssl/server.crt ssl_key_file /etc/ssl/server.key Mon serveur POP3 en interne est accédé à l'adresse ''192.168.0.4'' et sur le port ''110''. ==== Installation et configuration de Postfix avec SASL ==== Cette partie est la partie la plus délicate... En fait, j'ai passé plusieurs jours pour configurer mon accès SMTPS avec authentification SASL car aucun des tutoriels trouvés sur Internet n'ont fonctionné. Voici le résultat de mes recherches, certains parties ne sont pas idéales mais tout fonctionne. === Postfix de base === Premièrement, installons Postfix si ce n'est déjà fait : sudo apt-get install postfix Ensuite, nous allons configurer Postfix en tant que relais simple (avant de rajouter l'authentification et le SSL). Pour ce faire, on modifie le fichier de configuration ''/etc/postfix/main.cf'' de la manière suivante : # See /usr/share/postfix/main.cf.dist for a commented, more complete version smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu) biff = no # appending .domain is the MUA's job. append_dot_mydomain = no # Uncomment the next line to generate "delayed mail" warnings #delay_warning_time = 4h mydomain = ubuntu-fr.org myhostname = ubuntu-fr.org alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases mydestination = mailer, localhost.localdomain, localhost relayhost = 192.168.0.3 mynetworks = 127.0.0.0/8 mailbox_size_limit = 0 recipient_delimiter = + inet_interfaces = all Dans notre exemple, on travailler pour le domaine ''ubuntu-fr.org'' et le serveur SMTP réel est ''192.168.0.3''. Rechargez la configuration de Postfix et faites un essai d'envoi pour être sûr que tout fonctionne : sudo /etc/init.d/postfix reload === SASL === Si les envois fonctionnent par le relais, on va ajouter l'authentification. On commence par installer SASL par la commande suivante : sudo apt-get install libsasl2 libsasl2-modules sasl2-bin On configure SASL en éditant le fichier ''/etc/default/saslauthd'' afin qu'il ressemble à ceci : START=yes MECHANISMS="sasldb" On configure le répertoire de travail de SASL en éditant le fichier ''/etc/default/saslauthd''. Trouvez une ligne commençant par ''OPTIONS="..."'' et remplacez la par : OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd" On crée les différents répertoires nécessaires à SASL : dpkg-statoverride --add root sasl 710 /var/spool/postfix/var/run/saslauthd Et enfin, on désactive une bibliothèque d'authentification qui pose problème (Edit : 23/01/2022. Cette modification ne semble plus être utile.) : cd /usr/lib/sasl2 sudo mkdir deactived sudo mv *otp* deactived/ On peut maintenant démarrer le démon d'authentification : sudo /etc/init.d/saslauthd start === Postfix avec authentification === Créez le fichier ''/etc/postfix/sasl/smtpd.conf'' et indiquez : pwcheck_method: saslauthd mech_list: plain login Modifiez le contenu du fichier ''/etc/postfix/main.cf'' en ajoutant les lignes suivantes : smtpd_tls_cert_file=/etc/ssl/server.crt smtpd_tls_key_file=/etc/ssl/server.key smtpd_use_tls=yes smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache smtp_tls_session_cache_database = btree:${queue_directory}/smtp_scache smtpd_sasl_auth_enable = yes smtpd_sasl_security_options = noanonymous smtpd_sasl_local_domain = $mydomain smtpd_sasl_application_name = smtpd broken_sasl_auth_clients = yes smtpd_recipient_restrictions = permit_sasl_authenticated, reject Redémarrez Postfix, vous devriez pouvoir vous connecter sur le port SMTP standard (25) en identification TLS (lisez la section concernant les mots de passe au préalable, car sans login, la connexion ne fonctionnera pas). sudo /etc/init.d/postfix restart === Postfix uniquement via SSL avec authentification === Si tout fonctionne, il ne reste plus qu'à autoriser les connexions uniquement en SMTPS. Pour ce faire, modifiez le fichier ''/etc/postfix/master.cf'' en commentant la ligne suivante : #smtp inet n - - - - smtpd et en décommentant les lignes suivantes : submission inet n - - - - smtpd -o smtpd_etrn_restrictions=reject -o smtpd_client_restrictions=permit_sasl_authenticated,reject smtps inet n - - - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes Rechargez la configuration de Postfix : sudo /etc/init.d/postfix restart ===== Gestion des utilisateurs ===== Pour ce qui est de l'IMAP ou du POP3, l'authentification est déléguée au serveur sous-jacent. Pour ce qui est du SMTP, l'authentification est gérée à partir de SASL (démon ''saslauthd''). Le fichier des mots de passe se trouve en ''/etc/sasldb2''. Pour ajouter un utilisateur, modifier un mot de passe ou supprimer un utilisateur; vous pouvez utiliser la commande ''saslpasswd2'' (voir la manpage pour plus de détail). Par exemple : sudo saslpasswd2 -c ostaquet -u ubuntu-fr.org Une seule restriction, le mot de passe d'un utilisateur ne peut pas être ''userPassword''. Pour lister les utilisateurs : sudo sasldblistusers2 ===== Configuration des clients ===== ==== Thunderbird sur Windows/Linux ==== Sous Thunderbird, vous devez créer un nouveau compte. Dans les paramètres des comptes, onglet "Paramètres serveur". Indiquez serveur IMAP et sélectionnez "SSL" pour les paramètres de sécurité. La procédure est semblable pour le POP3. Pour les envois de courrier, allez dans "Serveur sortant (SMTP)". Dans la partie "Sécurité et authentification", sélectionnez "SSL" et "Utiliser un nom d'utilisateur et un mot de passe". ==== SnapperMail sur Palm ==== Après avoir longtemps chercher un bon client de messagerie pour Palm (avec l'IMAPS), je me suis arrêté sur [[http://www.snappermail.com|SnapperMail]] qui fonctionne à merveille pour un usage en entreprise. Il est vrai qu'il est payant mais il fonctionne très bien. Pour ceux qui n'ont besoin que du POP3, le client VersaMail fournit par Palm fonctionne très bien. Pour configurer [[http://www.snappermail.com|SnapperMail]], allez dans la configuration des comptes. Lorsque vous avez les adresses des serveurs sous les yeux, cliquez sur "Advanced option" et sélectionnez "Always secure (wrapped port)". Les ports utilisés sont : 465 pour le SMTPS, 995 pour le POP3S et 993 pour l'IMAP4S. ---- // Contributeur : [[utilisateurs:ostaquet]] //