====== Architecture de mail ====== Le serveur [[admin:machines_virtuelles:mail|mail]] est le pivot de l'architecture mail. C'est le MX principal. Les envois de mails vers l'Internet se font par lui, c'est donc le relais. Il reçoit également tous les domaines hébergés par chapril, dont le principal chapril.org Pour installer un postfix satellite, c'est ici : [[admin:procedures:installation_postfix_satellite|Installation d'un postfix en satellite]] Le serveur de mails est un postfix et le serveur de réception de courrier dovecot. On ne va pas s'étendre sur ce dernier car actuellement il n'y a pas d'email délivré à autre que root. Enfin, sympa et l'interconnexion de sympa fait l'objet d'une documentation spécifique : [[admin:infrastructure:sympa|Interconnexion entre sympa et postfix]]. ===== Architecture de postfix ===== Postfix réceptionne les mails sur le port 25. Il relaie les mails en provenance de nos réseaux ainsi que les mails soumis par une connexion authentifiée. La configuration se fait par la compilation des fichiers de ''/etc/postfix/conf.d'' en un seul fichier ''main.cf'' contenant les options. Cette compilation se fait par l'invocation de la commande ''make'' dans le répertoire ''/etc/postfix''. Les alias supportés par chaque domaine sont placés dans un fichier ''/etc/postfix/alias///domaine//.db'' qui est généré à partir du fichier ''//domaine//.aliases'' correspondant par la commande ''make''. Pour remettre les courriels un certain nombre de transports ont été définis. Le transport par défaut est la remise par SMTP directe. Des transports pour la remise de courriel vers sympa (mailing-lists) ont été définis. Voir les détails ici : [[admin:infrastructure:sympa|Interconnexion entre sympa et postfix]] Le transport slow_domains permet de limiter l'envoi du volume de mails à certains domaines, gérés par des pauvres comme laposte.net qui n'ont pas les moyens d'encaisser plus de 1 courriel à la fois. La configuration TLS est basique: un couple clé/certificat placé dans ''/etc/ssl/'' a été créé et auto-signé. Les protocoles SSLv2 et SSLv3 ont été désactivés et l'authentification doit utiliser TLS obligatoirement. Toute la doc qui suit a été écrite à froid, adaptée de celle de l'April, et concerne des sujets touchy. Il est évident que la peinture ne soit pas sèche et que des éléments divergent de ce qui est réellement sur le serveur. ===== Installation de Amavis ===== apt install amavisd-new spamassassin clamav-daemon pyzor razor arj bzip2 cabextract cpio file gzip nomarch pax unzip zip Puis configuration des groupes: addgroup clamav amavis addgroup amavis clamav Configuration de pyzor/razor: su - amavis -s /bin/bash razor-admin -create razor-admin -register pyzor discover Installation des fichiers de test: apt install clamdscan clamav-testfiles systemctl start clamav-daemon.service systemctl restart clamav-freshclam.service clamdscan /usr/share/clamav-testfiles/clam.mail Enfin décommenter les lignes dans ''/etc/amavis/conf.d/15-content_filter_mode'' : @bypass_virus_checks_maps = ( \%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re); @bypass_spam_checks_maps = ( \%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re); Et redémarrer amavis : systemctl restart amavis ===== Installation de fail2ban ===== L'idée est d'éviter les tentatives de brute force pour obtenir nos mots de passe: apt-get install fail2ban ===== Installation de Postgrey ===== Pour un aperçu sur le greylisting : https://debian-handbook.info/browse/stable/network-services.html#sect.setting-up-greylisting apt install postgrey Après ça postgrey tourne et écoute sur le 10023. Il faut ajouter une restriction au niveau de posftix : smtpd_recipient_restrictions = [...] check_policy_service inet:127.0.0.1:10023, Et nous allons baisser fortement le délais de greylisting, le temps d'avoir en base une liste convenable de serveurs autorisés : POSTGREY_OPTS="--inet=10023 --delay=60" Nous allons aussi ajouter une liste de gros comptes en whitelist car les messages venant d'eux peuvent « rebondir » depuis de nombreux serveurs d'un même pool avant de nous parvenir tel qu'on les attend yahoo.com google.com hotmail.com live.fr outlook.com mail-out.ovh.net mxb.ovh.net gandi.net Et on redémarre le tout : systemctl restart postgrey postfix reload ===== Déploiement de DKIM sur postfix ===== Pour le déploiement, ont été faites les choses suivantes. Installation de opendkim: apt-get install opendkim Édition de ''/etc/opendkim.conf'' et ajout en fin : KeyTable /etc/postfix/dkim/keytable SigningTable /etc/postfix/dkim/signingtable ExternalIgnoreList /etc/postfix/dkim/TrustedHosts Puis édition de ''/etc/defaults/opendkim'' pour décommenter: SOCKET="inet:12301@localhost" # listen on loopback on port 12301 Malheureusement opendkim est pour le moment mal intégré à systemd. La conf de /etc/defaults/opendkim est silentieusement ignorée par ce dernier. Il faut éditer /lib/systemd/system/opendkim.service pour changer les préférences et ne surtout pas utiliser /etc/init.d pour manipuler le démon. Puis, pour générer les clefs: opendkim-genkey -D /etc/postfix/dkim/ -d chapril.org -s mail On va alors obtenir de fichiers dans ''/etc/postfix/dkim/'' : ''mail.private'' et ''mail.txt''. On copie ce dernier dans la zone concernée. Par ailleurs on définie les tables mail._domainkey.chapril.org chapril.org:mail:/etc/postfix/dkim/mail.private chapril.org mail._domainkey.chapril.org et 127.0.0.1 localhost 192.168.0.0/24 [::ffff:127.0.0.0]/104 [::1]/128 [2a01:4f8:10b:c41::]/64 [2a01:4f8:10b:c42::]/64 88.191.250.11 # 88.191.250.11 est galanga On pense à changer les permissions : chgrp opendkim /etc/postfix/dkim/* chmod g+r /etc/postfix/dkim/* Enfin, dans Postfix on ajoute dans ''/etc/postfix/conf.d/60-anti-spam.conf'': milter_default_action = accept milter_protocol = 2 smtpd_milters = inet:localhost:12301 non_smtpd_milters = inet:localhost:12301 Puis ''make'' dans ''/etc/postfix'' et: service postfix reload ===== Adresse no-reply ===== Une adresse devnull@chapril.org existe pour les besoins d'un no-reply.