Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
pratique:informatique:quit_gandi [23/06/2023 20:41] – [Quelques tests] Zatalyz | pratique:informatique:quit_gandi [23/09/2023 11:01] (Version actuelle) – [Serveurs mails] Zatalyz | ||
---|---|---|---|
Ligne 3: | Ligne 3: | ||
===== Mails ===== | ===== Mails ===== | ||
- | * Synchroniser des boites mails, pour ne pas perdre lors du transfert : imapsync | + | * Synchroniser des boites mails, pour ne pas perdre lors du transfert : |
+ | * [[https://imapsync.lamiral.info/ | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * Dans Thunderbird : | ||
+ | * Sauvegarde complète au format zip : menu Outils -> Exporter. | ||
+ | * Ou archiver les messages, tu les sélectionnes et tu vas dans Messages -> archiver. Ça les retire du serveur et tu les retrouves dans le dossier Archives. Par défaut, mais ça se configure, ça les range par année. | ||
+ | * [[https:// | ||
+ | * fetchmail (daté dans la manip ?) | ||
Prestataire mail : rien de bien pertinent la dernière fois que j'ai regardé, surtout vu qu'il me *faut* ces fichus jokers. Possible de transférer une partie des boites, temporairement, | Prestataire mail : rien de bien pertinent la dernière fois que j'ai regardé, surtout vu qu'il me *faut* ces fichus jokers. Possible de transférer une partie des boites, temporairement, | ||
Ligne 46: | Ligne 54: | ||
Notes variées : | Notes variées : | ||
- | * "mail en multi-domaine (TLS/SNI) avec la pile suivante: Postfix, Dovecot, Rspamd, Modoboa (donc avec NginX, uWsgi, Postgresql…)." | ||
* L' | * L' | ||
* Doc de référence : | * Doc de référence : | ||
- | * https:// | ||
- | * https:// | ||
- | * https:// | ||
- | * https:// | ||
- | * Nécessité absolue de fail2ban et bien checker les logs, sinon on va se faire grave hacker la figure. https:// | ||
- | |||
Alternatives | Alternatives | ||
Ligne 70: | Ligne 71: | ||
- | ===== Bonnes pratiques pour ne pas passer pour un spammeur ===== | ||
- | Configurer le reversedns et, dans l' | ||
- | Limiter l' | ||
- | * https:// | ||
- | |||
- | |||
- | Voir aussi diverses astuces sur https:// | ||
- | |||
- | Deux adresses mails sont nécessaires quand on gère son mail, afin de répondre à des RFC : | ||
- | * postmaster@domain | ||
- | * abuse@domain | ||
- | Ça peut être des aliases, mais si ça n' | ||
- | |||
- | === Anti-spammeurs de l' | ||
- | Les gens qui bloquent pour les autres, et dont il faut comprendre les règles : | ||
- | * VadeSecure | ||
- | * Directement tester chez plein de monde avec le lien pour débloquer : https:// | ||
- | * Au moment où je commence à mettre le serveur en place, mon ip est bloqué par 5 opérateurs, | ||
===== Pas à pas ===== | ===== Pas à pas ===== | ||
- | <WRAP center round todo 60%> | ||
- | Version en travail, non testée, reprenant les points clés vu dans les divers tutos et adaptés à ma propre façon de fonctionner. | ||
- | </ | ||
- | |||
- | ==== Paramétrage des DNS, première partie ==== | ||
- | |||
- | Ça peut se faire par la suite mais comme ça met toujours un peu de temps à se propager... et autant avoir rapidement le nom de domaine dispo. | ||
- | * Nom de sous-domaine pour le serveur mail, MX en A et AAAA vers lui depuis le domaine principal. | ||
- | * ReverseDNS sur la machine. | ||
- | * Tester tout ça | ||
- | |||
- | Quelque chose dans ce genre : | ||
- | < | ||
- | mail.example.org. | ||
- | mail.example.org. | ||
- | example.org. | ||
- | </ | ||
- | |||
- | Le faire sur ipv6 si possible... Aujourd' | ||
- | |||
- | Il faut aussi configurer son Reversedns et ça, c'est permis ou non par l' | ||
- | |||
- | Sur Oneprovider, | ||
- | |||
- | Ensuite, pour tester : | ||
- | dig +short -x " | ||
- | dig +short -x " | ||
- | |||
- | L'un et l' | ||
- | |||
- | ==== Installation de l'OS ==== | ||
- | |||
- | * Partir d'une installation fraîche, ne pas tenter de saut de version entre Debian (cf [[https:// | ||
- | * La machine hébergeant le mail ne doit servir qu'au mail : pas de site web etc. Même le webmail sera ailleurs. Cela améliore la réputation du serveur. | ||
- | * Utiliser LVM, cela permettra les snapshots (entre autres avantages). | ||
- | |||
- | Partitionner de cette façon : | ||
- | * sda1 en partition primaire pour /boot. 510MB minimum (option par défaut de Debian, en ext2) ; mais trop ça peut aussi poser souci. | ||
- | * sda2 en LVM. Le VG sera divisé de cette façon côté LV (à adapter suivant la taille, je préfère prendre mes aises) : | ||
- | * ''/'' | ||
- | * ''/ | ||
- | * ''/ | ||
- | * ''/ | ||
- | * swap : autant que de RAM ; ou si vraiment beaucoup de ram, au moins 2GB. | ||
- | * Il faudra sans doute paramétrer fstab afin d' | ||
- | * Il est possible sans problème de faire un snapshot de root, puis de revenir en arrière. Je ne sais pas si le merge en arrière peut être pris en compte autrement qu' | ||
- | |||
- | Une fois le système installé : | ||
- | * Paramétrer Grub pour qu'il ne mette pas 4 secondes à se lancer... | ||
- | * '' | ||
- | * grub-mkconfig -o / | ||
- | * Installer sudo et y ajouter l'user de base : | ||
- | * '' | ||
- | * usermod -a -G sudo zatalyz | ||
- | * Paramétrer ssh. | ||
- | * Remplacer ''/ | ||
- | * Ajouter la clé ssh pour pouvoir se co : | ||
- | < | ||
- | nano / | ||
- | # Mettre la clé publique dans ce fichier | ||
- | chown -R zatalyz: / | ||
- | chmod 0700 / | ||
- | chmod 0600 / | ||
- | * Redémarrer SSH : '' | ||
- | |||
- | Se connecter en SSH (on n'est plus root !) et finaliser la préparation préliminaire :) | ||
- | < | ||
- | sudo apt upgrade | ||
- | sudo apt install apt-listbugs debsums apt-listchanges | ||
- | </ | ||
- | |||
- | On peut aussi installer quelques outils utiles : | ||
- | sudo apt install git binutils net-tools curl htop | ||
- | |||
- | Pour la suite et afin de ne pas se surcharger en paquets non voulu, on va désactiver " | ||
- | sudo nano / | ||
- | |||
- | Mettre le contenu suivant : | ||
- | < | ||
- | APT:: | ||
- | APT:: | ||
- | </ | ||
- | |||
- | Et '' | ||
- | |||
- | Et on fait un snapshot de root à ce moment, pour revenir "à zéro" si on se plante trop dans nos essais d' | ||
- | sudo lvcreate -L 20g -s -n root_snap_$(date --iso) / | ||
- | |||
- | S'il y a un souci, on revient en arrière : | ||
- | sudo lvconvert --merge / | ||
- | |||
- | Et s'il y a un souci pour recréer un snapshot après ça, c' | ||
- | sudo lvchange --refresh VgPoste | ||
- | |||
- | ==== Sécurisation du serveur ==== | ||
- | Il y aura plusieurs itérations sur le sujet au fil des logiciels installés, mais il me semble important de partir sur une base déjà aussi saine et avec quelques outils que je trouve utile. | ||
- | |||
- | La configuration de SSH était la première partie (et changer le port SSH permet déjà de bloquer une partie des noceurs, les plus idiots, ok). | ||
- | |||
- | On va installer fail2ban, rkhunter, et vérifier que la configuration du pare-feu est bonne. Notez que sans les " | ||
- | |||
- | Par ailleurs, il y a débat sur l' | ||
- | |||
- | === Rkhunter === | ||
- | <WRAP center round info 100%> | ||
- | rkhunter (pour Rootkit Hunter) est un programme qui essaye de détecter les rootkits, portes dérobées et exploits. Pour cela, il compare le hash SHA256, SHA512, SH1 et MD5 des fichiers importants avec les hash connus, qui sont accessibles à partir d'une base de données en ligne. Il alerte également l' | ||
- | |||
- | De par l' | ||
- | |||
- | Source : [[https:// | ||
- | </ | ||
- | J'ai souvenir qu'il est effectivement bavard. Et aussi que ce n'est pas une sécurité en soi, juste un outil permettant de détecter certains problèmes. | ||
- | |||
- | sudo apt | ||
- | On le configure un chouia | ||
- | |||
- | sudo nano / | ||
- | |||
- | Modifier les options suivantes pour qu' | ||
- | |||
- | < | ||
- | UPDATE_MIRRORS=1 | ||
- | MIRRORS_MODE=0 | ||
- | # | ||
- | ALLOWHIDDENDIR=/ | ||
- | ALLOWHIDDENDIR=/ | ||
- | ALLOWHIDDENDIR="/ | ||
- | ALLOWHIDDENDIR="/ | ||
- | ALLOWDEVFILE="/ | ||
- | PKGMGR=DPKG | ||
- | ALLOW_SSH_PROT_V1=0 | ||
- | </ | ||
- | |||
- | Après ces modifications, | ||
- | rkhunter -C | ||
- | rkhunter --propupd | ||
- | |||
- | Modifier aussi ''/ | ||
- | CRON_DAILY_RUN=" | ||
- | CRON_DB_UPDATE=" | ||
- | APT_AUTOGEN=" | ||
- | |||
- | Quand à envoyer un mail quotidien... ça fait du bruit, qu'il se passe un truc ou non. On verra par la suite, d' | ||
- | |||
- | Et on se fait un petit test en mettant à jour l' | ||
- | < | ||
- | rkhunter --list | ||
- | rkhunter -c --rwo</ | ||
- | |||
- | === Fail2ban === | ||
- | Fail2ban va limiter les attaques d' | ||
- | |||
- | apt-get install fail2ban whois python3-systemd | ||
- | Les deux derniers sont des " | ||
- | |||
- | On crée un fichier dans / | ||
- | < | ||
- | ignoreip = 127.0.0.1 | ||
- | # ajouter votre propre ip si vous n' | ||
- | |||
- | [sshd] | ||
- | enabled = true | ||
- | port = 223 | ||
- | # Mettre son port " | ||
- | backend = systemd | ||
- | #vital pour que ça marche sauf si les logs etc ne sont pas gérés via systemd... | ||
- | </ | ||
- | |||
- | Relancez fail2ban et vérifier ce qu'il raconte : | ||
- | sudo service fail2ban restart | ||
- | sudo fail2ban-client status | ||
- | |||
- | Il faudra ajouter les " | ||
- | |||
- | === Pare-feu === | ||
- | Bon, là, ça devient compliqué. Dans la majorité des cas, le serveur est déjà derrière un pare-feu, les ports autorisés le sont explicitement. Chez moi, derrière la box. Un coup de '' | ||
- | |||
- | Là, je ne vais pas trop m'y attarder, parce que ma box fait son taf... | ||
- | |||
- | Il faut tout de même s' | ||
- | * 25 : port smtp de base | ||
- | * 143 : imap avec STARTTLS | ||
- | * 587 : smtp avec STARTTLS | ||
- | |||
- | ==== Vérifier l'host ==== | ||
- | Vérifier que /etc/hosts a un nom de domaine cohérent (si renseigné) avec notre reversedns. Dans mon cas il avait doublé " | ||
- | |||
- | |||
- | ==== En cours ==== | ||
- | <WRAP center round info 100%> | ||
- | [[https:// | ||
- | |||
- | Tycho, lui, semble installer (manque la vraie liste) : acmed (via git), opensmtpd, dovecot-lmtpd, | ||
- | |||
- | Mais, là, on va adapter. Et donc se compliquer un peu la tâche... | ||
- | * Pas de webmail sur ce serveur, mais on va utiliser des outils graphiques sur une page web pour " | ||
- | * On va < | ||
- | * J'ai du mal avec mutt, on va rester avec bsd-mailx | ||
- | * On va tenter d' | ||
- | |||
- | Bref à ce stade, l' | ||
- | </ | ||
- | |||
- | === Descriptif des logiciels à installer === | ||
- | |||
- | sudo apt install mariadb-server redis-server | ||
- | |||
- | * Avec postfix, mariadb ne sert qu'à stocker les infos des utilisateurs et des domaines (pas les mails), si bien que sa taille devrait rester très faible. À voir comment ça marche avec opensmtpd. Note : on se co en root à mariadb depuis le localhost, donc sans mot de passe, et ajouter un mot de passe à root peut ajouter du bazar. | ||
- | * redis-server gère plus du cache, façon dite plus rapide de gérer le spam et ses données. | ||
- | |||
- | Pour Postfix : | ||
- | sudo apt install postfix postfix-mysql | ||
- | |||
- | Pour dovecot, ça ne devrait pas changer : | ||
- | sudo apt install dovecot-mysql dovecot-pop3d dovecot-imapd dovecot-lmtpd dovecot-managesieved | ||
- | |||
- | * dovecot-mysql : pour communiquer avec mysql et donc partager la même base d' | ||
- | * dovecot-pop3d : qui utilise encore pop3 ? à voir si on le gère ou pas... je serais d'avis de laisser, pour le moment, et ajouter plus tard au besoin | ||
- | * dovecot-imapd : pour utiliser l'IMAP donc obligé | ||
- | * dovecot-lmtpd : une fois arrivé sur le serveur, va aiguiller les mails aux bons utilisateurs (MDA) | ||
- | * dovecot-managesieved : permet aux utilisateurs de définir leurs règles de filtre. | ||
- | |||
- | Chasse aux spams : | ||
- | sudo apt install rspamd | ||
- | |||
- | * rspamd : Un logiciel tiers qui traite les spams et gère la signature automatique des clés de domaine (DKIM). | ||
- | |||
- | Outils pratiques | ||
- | sudo apt install adminer swaks bsd-mailx | ||
- | |||
- | * adminer : remplaçant de phpmyadmin. On verra... | ||
- | * swaks : " | ||
- | * bsd-mailx : permet de lire les mails sur le serveur, utile lors des tests. | ||
- | |||
- | |||
- | Tout un programme : | ||
- | git clone https:// | ||
- | |||
- | Il faut un certificat SSL et un truc aux petits oignons ça serait mieux. Mais ça va demander un peu de prise en main. | ||
- | |||
- | === Logiciels à installer en une ligne === | ||
- | Allez, hop, on va tester ça : c'est peut-être " | ||
- | |||
- | sudo apt install mariadb-server redis-server apache2 php postfix postfix-mysql dovecot-mysql dovecot-pop3d dovecot-imapd dovecot-lmtpd dovecot-managesieved rspamd adminer swaks bsd-mailx | ||
- | |||
- | Note : il y a quelques bugs répertoriés à l' | ||
- | < | ||
- | b1 - #967010 - apache2: last debian 10.4 , last apache avail from repo hangs on install (and start phase) | ||
- | bogues de gravité serious sur dovecot-core (→ 1: | ||
- | b2 - #895823 - cannot purge dovecot-common | ||
- | bogues de gravité grave sur libunwind8 (→ 1.6.2-3) < | ||
- | b3 - #994510 - libunwind8 abuses setcontext() causing SIGSEGV on i386 with glibc >= 2.32 | ||
- | Résumé : | ||
- | | ||
- | </ | ||
- | |||
- | Il va y avoir quelques questions de configuration mais vraiment rien de complexe. | ||
- | |||
- | Et dans l' | ||
- | sudo apt install git libssl-dev build-essential pkg-config | ||
- | git clone https:// | ||
- | |||
- | Mais... non, écoute, là, on va faire simple et moche, j'ai déjà assez de trucs à adapter. | ||
- | |||
- | sudo apt install certbot python3-certbot-apache python3-icu | ||
- | |||
- | ==== Installation des logiciels ==== | ||
- | Finalement : | ||
- | sudo apt install mariadb-server redis-server apache2 php postfix postfix-mysql dovecot-mysql dovecot-pop3d dovecot-imapd dovecot-lmtpd dovecot-managesieved rspamd adminer swaks mutt certbot python3-certbot-apache python3-icu | ||
- | |||
- | Quand Postfix demande sa configuration, | ||
- | |||
- | Faire de nouveau un petit ''< | ||
- | |||
- | Refaire un snapshot parce que c'est long d' | ||
- | |||
- | sudo lvcreate -L 20g -s -n snap_root_$(date --iso)_logicielsok / | ||
- | ==== Apache et certbot ==== | ||
- | Ouais, Apache, parce que je le connais, mais vu ce qu'il y a à faire, Nginx suffira aussi. | ||
- | |||
- | On se crée une entrée DNS pour un sous-domaine qui permettra de gérer la partie " | ||
- | |||
- | === Fail2ban === | ||
- | Puisqu' | ||
- | <code txt / | ||
- | [apache-auth] | ||
- | enabled = true | ||
- | [apache-badbots] | ||
- | enabled = true | ||
- | [apache-noscript] | ||
- | enabled = true | ||
- | [apache-overflows] | ||
- | enabled = true | ||
- | [apache-nohome] | ||
- | enabled = true | ||
- | [apache-botsearch] | ||
- | enabled = true | ||
- | [apache-fakegooglebot] | ||
- | enabled = true | ||
- | [apache-modsecurity] | ||
- | enabled = true | ||
- | [apache-shellshock] | ||
- | enabled = true | ||
- | |||
- | [dovecot] | ||
- | enabled = true | ||
- | port = pop3, | ||
- | |||
- | [postfix] | ||
- | enabled = true | ||
- | |||
- | [sieve] | ||
- | enabled = true | ||
- | </ | ||
- | |||
- | Ne pas oublier de redémarrer fail2ban ensuite. | ||
- | fail2ban-server -t | ||
- | systemctl restart fail2ban | ||
- | |||
- | |||
- | === Html === | ||
- | sudo mkdir / | ||
- | sudo mkdir / | ||
- | |||
- | Une page web " | ||
- | |||
- | sudo nano / | ||
- | <code html / | ||
- | < | ||
- | < | ||
- | <html class=" | ||
- | <meta http-equiv=" | ||
- | |||
- | <!-- meta --> | ||
- | <meta name=" | ||
- | <meta name=" | ||
- | |||
- | </ | ||
- | < | ||
- | Ceci est un serveur mail. En cas de problème, merci de contacter l' | ||
- | < | ||
- | </ | ||
- | |||
- | sudo nano / | ||
- | |||
- | <code html / | ||
- | < | ||
- | < | ||
- | <html class=" | ||
- | <meta http-equiv=" | ||
- | |||
- | <!-- meta --> | ||
- | <meta name=" | ||
- | <meta name=" | ||
- | |||
- | </ | ||
- | < | ||
- | Lapin ! | ||
- | </ | ||
- | </ | ||
- | |||
- | Puis les droits | ||
- | < | ||
- | sudo chown -R www-data: / | ||
- | sudo chown -R www-data: / | ||
- | </ | ||
- | |||
- | === Apache === | ||
- | < | ||
- | sudo nano / | ||
- | |||
- | Mettre ça : | ||
- | < | ||
- | ServerName lapin.example.org | ||
- | DocumentRoot / | ||
- | </ | ||
- | |||
- | Idem sur la poste. | ||
- | |||
- | sudo nano / | ||
- | < | ||
- | ServerName poste.example.org | ||
- | DocumentRoot / | ||
- | </ | ||
- | |||
- | Puis les commandes suivantes. | ||
- | < | ||
- | sudo a2ensite poste.conf | ||
- | sudo systemctl reload apache2</ | ||
- | |||
- | Se rendre sur le web et voir que la page " | ||
- | |||
- | Et maintenant on crée un certificat mais juste pour le domaine (hé, on limite les trucs autogénérés dans Apache !) : | ||
- | sudo certbot certonly --webroot --webroot-path / | ||
- | sudo certbot certonly --webroot --webroot-path / | ||
- | |||
- | Puis on crée le fichier apache pour https : '' | ||
- | < | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | </ | ||
- | |||
- | On va aussi modifier (re) ''/ | ||
- | |||
- | < | ||
- | RewriteEngine On | ||
- | RewriteCond %{REQUEST_URI} !.well-known/ | ||
- | RewriteRule ^(.*)$ https:// | ||
- | |||
- | Enfin on active ssl, le module rewrite, le site https puis on relance apache. | ||
- | < | ||
- | sudo a2enmod rewrite | ||
- | sudo a2ensite lapin-https.conf | ||
- | sudo a2ensite poste-https.conf | ||
- | sudo apachectl -t | ||
- | sudo apachectl graceful</ | ||
- | |||
- | Enfin, vu qu'on a un certbot sur-mesure, il faut lui préciser de redémarrer les logiciels quand le certificat est renouvelé (en théorie rien à faire de ce côté, il gère seul quand demander le renouvellement à ce stade). On édite ''/ | ||
- | post-hook = systemctl restart postfix dovecot apache2 | ||
- | |||
- | |||
- | ==== Base de donnée ==== | ||
- | On commence en ligne de commande. Ça va bien se passer. | ||
- | |||
- | Passons root afin de pouvoir bidouiller mysql sans mot de passe (sinon on ne peux rien faire), lançons mysql puis créons la première database. | ||
- | |||
- | < | ||
- | mysql | ||
- | CREATE DATABASE mailserver;</ | ||
- | |||
- | On va créer 2 users, mailadmin et mailserver (ce dernier ayant seulement le droit de lire la bdd du même nom). Comme mailadmin sera admin, trouvez-lui un nom personnalisé. Générez aussi une phrase de passe pour chaque utilisateur et stockez ça dans votre gestionnaire de clé. | ||
- | |||
- | Adaptez les commandes suivantes à ces personnalisations : | ||
- | < | ||
- | grant select on mailserver.* to ' | ||
- | </ | ||
- | |||
- | Pour la suite, je suis presque bêtement [[https:// | ||
- | |||
- | |||
- | < | ||
- | USE mailserver; | ||
- | |||
- | CREATE TABLE IF NOT EXISTS `virtual_domains` ( | ||
- | `id` int(11) NOT NULL auto_increment, | ||
- | | ||
- | | ||
- | ) ENGINE=InnoDB DEFAULT CHARSET=utf8; | ||
- | |||
- | USE mailserver; | ||
- | |||
- | CREATE TABLE IF NOT EXISTS `virtual_users` ( | ||
- | `id` int(11) NOT NULL auto_increment, | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | ) ENGINE=InnoDB DEFAULT CHARSET=utf8; | ||
- | |||
- | USE mailserver; | ||
- | |||
- | CREATE TABLE IF NOT EXISTS `virtual_aliases` ( | ||
- | `id` int(11) NOT NULL auto_increment, | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | ) ENGINE=InnoDB DEFAULT CHARSET=utf8; | ||
- | </ | ||
- | |||
- | Et on va à présent peupler notre base de donnée, et c'est là qu'on adapte un peu le tuto... Bien remplacer " | ||
- | |||
- | On quitte un instant mysql et on va générer un mot de passe salé avec dovecot : | ||
- | sudo doveadm pw -s BLF-CRYPT | ||
- | |||
- | Bien le noter et le mettre à la place de celui de l' | ||
- | |||
- | Le code à adapter à présent ! On revient dans '' | ||
- | < | ||
- | |||
- | REPLACE INTO mailserver.virtual_users (id, | ||
- | | ||
- | |||
- | REPLACE INTO mailserver.virtual_aliases (id, | ||
- | | ||
- | |||
- | Si on veut ajouter un autre utilisateur : | ||
- | < | ||
- | | ||
- | </ | ||
- | * X est à incrémenter, | ||
- | * Y est l'id du domaine, donc " | ||
- | * Le mot de passe à générer avec la commande dessus | ||
- | * et le vrai mail. | ||
- | === Adminer === | ||
- | Étape facultative. | ||
- | |||
- | On va utiliser adminer pour nous aider un peu. On rebidouille ''/ | ||
- | Alias /adminer / | ||
- | |||
- | Ça n'a hélas pas l'air de bien marcher si on met une autre adresse que " | ||
- | |||
- | Pour prendre ça en compte : | ||
- | sudo systemctl reload apache2 | ||
- | |||
- | La page devrait être accessible à l' | ||
- | |||
- | On peut contrôler visuellement que les tables et leurs données sont cohérentes. | ||
- | |||
- | ==== Postfix et Dovecot ==== | ||
- | Ici on suit très bêtement https:// | ||
- | |||
- | Idem sur la suite avec Dovecot et LMTP, rien de nouveau face au tuto. | ||
- | |||
- | === Quota === | ||
- | Je personnalise en français le message aux utilisateurs : | ||
- | |||
- | <code bash / | ||
- | #!/bin/sh | ||
- | PERCENT=$1 | ||
- | USER=$2 | ||
- | cat << EOF | / | ||
- | From: postmaster@webmail.example.org | ||
- | Subject: Quota warning - $PERCENT% reached | ||
- | |||
- | FR : | ||
- | Votre boîte aux lettres ne peut stocker qu'un nombre limité d' | ||
- | Actuellement, | ||
- | les nouveaux courriels ne pourront plus être stockés. Merci de votre compréhension. | ||
- | |||
- | EN : | ||
- | Your mailbox can only store a limited amount of emails. | ||
- | Currently it is $PERCENT% full. If you reach 100% then | ||
- | new emails cannot be stored. Thanks for your understanding. | ||
- | EOF</ | ||
- | |||
- | Et pour qu' | ||
- | sudo nano / | ||
- | |||
- | Avoir la ligne suivante : | ||
- | mail_plugins = $mail_plugins imap_quota imap_sieve | ||
- | ==== Systemd, ton univers impitoyable ==== | ||
- | |||
- | Par contre (et on aurait du le faire plus tôt...) on va se modifier le système de log histoire de suivre ce qui peut se passer | ||
- | sudo apt install rsyslog | ||
- | sudo nano / | ||
- | |||
- | Décommenter et vérifier les 3 lignes suivantes : | ||
- | < | ||
- | SystemMaxFiles=100 | ||
- | ForwardToSyslog=yes</ | ||
- | |||
- | Sinon, parait que la commande suivante permet d' | ||
- | journalctl -ru postfix@-.service | ||
- | |||
- | Le -r c'est pour inverser l' | ||
- | |||
- | En gros postfix.service ça doit être les logs du démon postfix, et postfix@-.service ceux de son pool de mails. | ||
- | Relancer systemd : | ||
- | systemctl restart systemd-journald.service | ||
- | |||
- | ==== Quelques tests ==== | ||
- | Vérifier que la config de postfix est propre : | ||
- | postfix check | ||
- | |||
- | On fait un test de mail en local (pas sur example.org hein !) : | ||
- | swaks --to john@example.org --server localhost | ||
- | |||
- | Et on peut même envoyer un vrai mail, depuis une boite " | ||
- | |||
- | Mais ça ne suffit pas... Faut les envoyer aussi et c'est là qu'on attaque la partie sérieuse. | ||
- | |||
- | ==== Paramétrer les alias systèmes vers admin@ ==== | ||
- | C'est bien beau tout ça, mais quand un mail interne au système (par exemple à root) est envoyé, il arrive où ? Nul part, et cette fois pas question de jouer avec [[pratique: | ||
- | |||
- | On commence par éditer ''/ | ||
- | <code txt / | ||
- | mailer-daemon: | ||
- | postmaster: root | ||
- | nobody: root | ||
- | hostmaster: root | ||
- | usenet: root | ||
- | news: root | ||
- | webmaster: root | ||
- | www: root | ||
- | ftp: root | ||
- | abuse: root | ||
- | noc: root | ||
- | security: root | ||
- | default: admin@nomdomaine.org | ||
- | root: admin@nomdomaine.org | ||
- | </ | ||
- | |||
- | Oui, dans le @ à la fin des alias, cette fois. Et admin@ ou autre, hein. | ||
- | |||
- | Puis on régénère le fichier de postfix à propos des alias : | ||
- | postalias / | ||
- | |||
- | Et on peut tester l' | ||
- | echo " | ||
- | |||
- | Cela arrive bien dans la boite mail configurée ! | ||
- | ==== Permettre aux alias d' | ||
- | Je ne le fais pas " | ||
- | |||
- | J'ai créé quand même ''/ | ||
- | |||
- | < | ||
- | password = | ||
- | hosts = 127.0.0.1 | ||
- | dbname = mailserver | ||
- | query = SELECT email FROM virtual_users WHERE email=' | ||
- | |||
- | Mais pour le faire prendre en compte ? je crois que c'est " | ||
- | postconf smtpd_sender_login_maps=mysql:/ | ||
- | |||
- | Je le testerais... plus tard, si le reste marche. | ||
- | |||
- | ==== Autodécouverte par Thunderbird etc ==== | ||
- | Les logiciels de courriel correctement fichus peuvent chercher leur info à ''< | ||
- | |||
- | Donc, on ajoute ce fichier, soit directement " | ||
- | |||
- | <code txt / | ||
- | Alias / | ||
- | </ | ||
- | |||
- | Redémarrer Apache. | ||
- | |||
- | Dans ce dossier, on va donc mettre '' | ||
- | < | ||
- | <?xml version=" | ||
- | < | + | Ça se passe sur la page dédiée pour ne pas mélanger notes de recherche |
- | < | + | |
- | < | + | |
- | < | + | |
- | < | + | |
- | < | + | |
- | < | + | |
- | < | + | |
- | < | + | |
- | < | + | |
- | < | + | |
- | </ | + | |
- | < | + | |
- | < | + | |
- | < | + | |
- | < | + | |
- | < | + | |
- | < | + | |
- | </ | + | |
- | </ | + | |
- | </ | + | |
- | </ | + | |
- | * Changez '' | + | |
- | * Changez '' | + | |
- | * Adaptez '' | + | |
- | * Vérifiez que c'est bien ces ports chez vous... par défaut ça devrait. Et que c'est ouvert sur le pare-feu ! | + | |
[[https:// | [[https:// |