Recette pour serveur mail sécurisé

Bon ben champagne ca tourne et c’est un peu secure …

dkim=pass header.i=@issoire-linux.org header.s=default header.b=s8luAbys;
spf=pass (google.com: domain of xxxxx.xxxxxxx@issoire-linux.org designates 89.234.140.242 as permitted sender) smtp.mailfrom=xxxxxxx.xxxxxx@issoire-linux.org

… et c’est google qui le dit !

Note : on passe 80% du temps à sécuriser les trucs , pire … à pouvoir faire en sorte d’envoyer un mail sans être mis au banc des clodos du web. (spam, blacklist etc etc)
Le web est devenu une poubelle.

… le mail ? le truc chiant à cause de toute la pile de sécurité …
Quelqu’un a-t-il déjà monté un proxy IMAP(ssl/993) et SMTP(submission/587) ?
Le MX est au chaud dans le LAN. Par contre le proxy mail de Nginx … pas simple.

Il me semble que j’en ai fait un il y a longtemps avec haproxy en mode proxy tcp.

je suis en train de capter que Nginx requiert obligatoirement un auth_http, donc un script d’authentification hors je ne veux pas que ce soit lui qui fasse le job mais soit mon posftix soit mon dovecot du LAN (qui sont sur le meme MX)

Peux-t-on avoir nginx en mail reverse proxy (donc à priori avec une conf ssl/starttls) et en backend (mail) un postfix avec le dovecot eux aussi en ssl / starttls ?

Ou alors il y a un ssl /starttls de trop ?
En gros virer la partie crypto (ssl/starttls) du backend mail qui est sur (et sure ;-)) le LAN ?

Sachant que pour les envois en smtp (25) tout passe par deux passerelles de filtrage av/spam proxmox mail gateway.

j’ai ca dans les logs du MX (lan) :

Jul 17 15:31:49 mx1 dovecot: imap-login: Disconnected (no auth attempts in 60 secs): user=<>, rip=10.10.10.52, lip=10.20.20.31, TLS handshaking: SSL_accept() syscall failed: Success, session=<KNztg+CNeJwKCgo0>

(Edit : pour le SSL … j’ai par inadvertence placé le cert CA de la CA intermédiaire :frowning: , errreur sur tout mes serveurs : ben voila pourquoi les verif « Issuers » openssl déconnaient !!! … lourds tout ces certficats :rage:)

Ce qui me gene à présent c’est le usr=<> , nginx mail proxy ne balance pas les headers …

Edit : … cela vient de me peter mon ldap , fusion directory … donc TOUTES les authentifications COOL !
Kiss qui disaient … (Fd va bientot virer de mon infra., aucun support, install officielle ne suivant pas les normes Debian …schema de base en NIS donc rfc2703 …, avec l’install officielle de FD pour Debian stretch)

… and the END : tout OK, mais il va falloir trouver un truc plus simple , plus documenté et plus utilisé pour avoir un gramme de support , pour gérer le LDAP devoir serrer les miches à chaques modif. pas glop.

Toujours bloqué ici avec le Nginx reverse proxy (pour imap, smtp en ssl tls) :

Jul 17 15:31:49 mx1 dovecot: imap-login: Disconnected (no auth attempts in 60 secs): user=<>, rip=10.10.10.52, lip=10.20.20.31, TLS handshaking: SSL_accept() syscall failed: Success, session=<KNztg+CNeJwKCgo0>

… si quelqu’un a une idée ?

Salut,

J’ai vu dbmail en plus de ceux cité précédemment.

Perso je suis sur iRedMail depuis un bail (5/6 ans de mémoire mais je saurais pas être exact).
J’ai testé d’installer à la mano. ça fonctionne mais si on sais pas ce qu’on fait on joue à l’apprentis sorcier, puis j’ai trouvé iRedMail : un énorme gain de temps + une webUI pour les utilisateurs types associations/entreprises qui veulent gérer les boites mail de leur domaine.
En un mot KISS ! C’est une stack standard des dépôts Debian bien configuré et une WebUI et c’est tout !

J’aurais du faire çà … carrément meme.
Mais je suis tétu (trop) , et j’ai monté tout à la mano : et ca tourne vraiment fort !
(j’ai juste la partie LDAP avec FusionDirectory qui reste trop floue et les certficats qui sont toujours chiant : mais c’est passé , car j’ai monté ma PKI !)
Donc je vais ouvrir l’herbergement ainsi.
C’est secure.
Je vais poster un schema de l’archi.

Note : julienth37, j’ai vu ton site etc … zieuté tes spec. : çà à l’air de marche fort votre infra :stuck_out_tongue:!

Je viens de voir un tweet parler de poste.io
Ça a l’air assez complet

la ca fait peur quand meme :

https://docs.iredmail.org/network.ports.html

oui , carrément , ca claque ton truc.
Y’a meme du caldav, carddav … tout en un ! hum. c’est tentant. !!!
Faudrait un retour d’expérience dessus, niveau hebergement.

edit : après chtite navigation sur la démo , ouaih carrément top ! (par contre je sais si y’a du ldap dessous …)

La liste de ports ouverts peut faire peur mais la plupart écoutent sur le localhost uniquement et servent à la communication inter-services :wink:

1 « J'aime »

Perso pour le caldav/carddav je préfère jouer avec NextCloud, histoire de pas avoir tout mes œufs dans le même panier.
Intéressant poste.io mais pas pour moi (préfère Apache à Nginx).

poste.io a un gros inconvénient… sa version gratuite n’est destinée qu’à un usage personnel.

De plus, la dockerisation à l’extrême n’est pas de mon goût… à force d’empaqueter on ne sait plus ce qui tourne ni comment c’est configuré. Ok, « ça marche » en 5mn, mais ce temps gagné au déploiement est souvent perdu plus tard quand quelque chose ne tourne pas rond.

2 « J'aime »
  • + 1 000 000 pour cette phrase !

#DockersNotThatGood

3 « J'aime »
  • x 2 : je ne peux qu’acquieser, fortement.
    Sinon ca tourne plutot bien ici ce genre d’approche, on se fade tout mais on connait sur le bout des doigts ce qu’on fait tourner (euh j’exagére un peu car niveau nginx perso j’en prend plein la gueule , mais ca tourne … eh bien meme !)

Note : djayroma , je pense que votre mailer en prend plein la gueule niveau zombie … car postscreen ne semble pas actif chez vous.

Pour moi Docker ça reste bien pour de l’infra perso et du développement, en production dès qu’on veut faire de l’infra qui se gère à plusieurs, LXC et Qemu/KVM deviennent nécessaire pour travailler proprement.
Techniquement je vois qu’une exception les machines jetables (comme les banques utilisent par exemple) mais la c’est la cause de cet usage qui me gène: plutôt que sécuriser correctement on passe par de la machine jetable qui comme un goblet en plastique n’as pas lieu d’être.
Du coup je retombe sur mon avis comme généralité.

je suis en train de tester DAVical couplé à Agendav, ca a l’air de le faire.

Bonjour,

Vu qu’on héberge des mails nous aussi, on peut décrire un peu notre infrastructure à notre tour.

Nous utilisons docker-mailserver (Licence MIT), qui est donc une solution « toute prête » embarquant tout un tas de paquets utiles pour faire tourner le serveur : les incontournables postfix et dovecot, spamassassin, clamav, opendkim, opendmarc, fail2ban, fetchmail, postgrey, amavis, etc.

Un fichier de configuration est fourni avec, il suffit de le parcourir et d’activer ou désactiver les fonctionnalités souhaitées.

Un script est aussi fourni et documenté, pour faciliter l’ajout ou la suppression de comptes et/ou d’alias et d’appliquer des paramètres de configuration « à chaud ».

Avec une bonne configuration DNS (notamment du reverse), on respecte les normes d’envoi et de réception d’emails, on ne se fait pas blacklist et le service est stable ; le conteneur consomme 220 Mo de RAM en moyenne et quasiment pas de CPU.

Disclaimer

Bien entendu, utiliser une solution « out-of-the-box » implique de savoir utiliser et installer soi-même ces mêmes outils à la main, sans aide, sans conteneurs ni images qui nous facilitent la vie. C’est une épreuve, mais c’est indispensable, ne serait-ce que pour des raisons de sécurité : ne pas savoir exactement ce qui tourne dans un conteneur en production revient au même que d’utiliser des logiciels propriétaires.

(Neil) Personnellement j’ai commencé par héberger mes propres mails (à titre personnel donc) sur un serveur sans conteneurisation pendant un an et j’ai beaucoup appris de cette expérience ; c’est notamment dans le domaine de la sécurité que je pense en avoir tiré des leçons.

Maintenances et astuces

Un serveur mail nécessite une maintenance presque quotidienne, à la limite bihebdomadaire, surtout si vous choisissez de construire votre propre blacklist de zéro au lieu d’utiliser des blacklists publiques : votre serveur sera exposé h24 à des tentatives de bruteforce ; et même avec un fail2ban fonctionnel, les bots apprennent vite à doser leur spam pour passer entre les mailles du filet.

Nous avons fait le choix de construire notre propre blacklist afin de s’assurer que chaque ban soit justifié et qu’une grande entreprise n’ait pas la main sur ce que nous décidons de blacklist ou non.

En trois mois de fonctionnement, cette blacklist comporte 92 entrées et augmente de jour en jour.

Au moins deux fois par semaine, on consulte les logs de notre serveur :

  • On regarde les attaques sur SMTP avec un grep "HELO" puis un grep "EHLO" ;
  • On regarde les attaques sur IMAP avec un grep "auth:" ;
  • On lit en diagonale les logs bruts voir s’il n’y a pas d’indicateurs d’une activité suspecte.

On ban l’IP de manière permanente dès qu’on relève un comportement hostile.

Une technique pour limiter les risques : ces bots vont tenter de se connecter à des adresses communément utilisées : admin@, contact@, test@, user@, 123@, help@, info@, root@, no-reply@, webmaster@, etc.

Si vous laissez vos utilisateurs choisir leur adresse mail (ce qui semble légitime), établissez une blacklist de ces adresses courantes afin de ne pas exposer l’utilisateur à un potentiel bruteforce. Si vous ne savez pas quoi blacklist, laissez tourner un serveur mail sans blacklist pendant quelques jours et vous saurez bien vite quelles sont les adresses les plus ciblées.

Assurez-vous d’ajouter un captcha à l’inscription, vous n’êtes pas à l’abri d’un éventuel contournement de vos services, même à la taille d’un CHATONS. Bien entendu, évitez reCAPTCHA.

Surveillez régulièrement les mails envoyés (leur fréquence, pas nécessairement leur contenu), au cas où un membre enverrait subitement 30 mails à 500 adresses différentes en une journée, ce qui n’est peut-être pas normal.

Surveillez également la fréquence des mails reçus (grep "saved") pour repérer une éventuelle adresse extérieure qui enverrait des emails en masse sur les adresses de votre serveur.

Très important aussi, surveillez les publications de sécurité des logiciels que vous utilisez, surtout postfix et dovecot. Faites votre veille technologique, les failles / CVE graves sont courantes, surtout sur les MTA. (Exim récemment)

Nos camarades chez le CHATONS Elukerio ont plus d’expérience que nous sur le domaine avec leur service libmail, peut-être pourront-ils vous apporter des indications supplémentaires si besoin.

~ N&B

1 « J'aime »

1 - l’interface de votre gestion mail semble vraiment cool (moi avec FusionDirectory c’est le bronx !)
2 - votre site est vraiment bien fait (beau design)

Mais :

  • On regarde les attaques sur SMTP avec un grep "HELO" puis un grep "EHLO" ;
    ==> moi j 'ai postcreen qui dégage les zombie, posant une bannière pendant 2 à 3 secondes … ensuite il réponds et donne la vraie bannière STMP pour faire le EHLO …
    Le 7 juillet 2019 cela m’a permis de m’éviter 49000 requêtes sur le relais postfix (j’en ai deux en cluster) …
    Pour blinder le truc je viens mettre sur le pfsense deux listes d’ip à blocker … en amont du relais MX …
    De plus mon MX est bien au chaud dans le LAN , avec un reverse Proxy sur IMAP, POP et SUBMISSION.

« Une technique pour limiter les risques : ces bots vont tenter de se connecter à des adresses communément utilisées : admin@, contact@, test@, user@, 123@, help@, info@, root@, no-reply@, webmaster@, etc. »
Perso, je françise un max !
pas de root, contact, help, admin etc …
Mais des noms bien de chez nous !

Et puis je suis un gros noob en serveur mail, alors j’écoute vos dires avec grande attention !!! :wink:
Tout est passionnant .

Mais j’ai des trucs pas glop niveau conf. …il me faudra surement de l’aide pour etre au top.