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:serveur_mail [22/09/2023 12:54] – [Quota] Zatalyz | pratique:informatique:serveur_mail [13/10/2023 12:43] (Version actuelle) – [Postscreen, pour filtrer plus de bandits] Zatalyz | ||
---|---|---|---|
Ligne 848: | Ligne 848: | ||
Cf https:// | Cf https:// | ||
+ | |||
+ | ==== Postscreen, pour filtrer plus de bandits ==== | ||
+ | Doc de référence : [[https:// | ||
+ | |||
+ | <WRAP center round important 60%> | ||
+ | Attention, c'est pas au point parce que je n'ai pas encore mis en place " | ||
+ | </ | ||
+ | |||
+ | |||
+ | Postscreen va appliquer des vérifications sur les domaines (entre autre) et faciliter le tri. On pourra ainsi déclarer certains domaines comme bloqués, et d' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | Dans le fichier ''/ | ||
+ | smtp inet | ||
+ | |||
+ | et décommenter | ||
+ | |||
+ | < | ||
+ | smtp inet | ||
+ | smtpd pass | ||
+ | -o cleanup_service_name=subcleanin | ||
+ | dnsblog | ||
+ | tlsproxy unix | ||
+ | </ | ||
+ | |||
+ | <WRAP center round info 100%> | ||
+ | Qu' | ||
+ | |||
+ | Les colonnes se réfèrent aux informations suivantes : | ||
+ | * Nom du service (smtp, dnsblog, etc) | ||
+ | * Type de service : sur quel port/socket ce dernier écoute. | ||
+ | * '' | ||
+ | * '' | ||
+ | * Private : si le service est interne à postfix ou public. '' | ||
+ | * Unprivileged : si le service tourne avec les privilèges root ou avec l' | ||
+ | * Chroot : si le service tourne en version chrooté. Pour certains, il ne faut pas (cf manpage), sinon par défaut ça semble " | ||
+ | * Wake up time (default: 0) : réveille le service après ce nombre de secondes. Si on ajoute ''?'' | ||
+ | * Limite de processus : nombre maximum de processus simultanés sur ce service, défini par défaut ailleurs ; 0 indique de ne pas mettre de limite. | ||
+ | * Commande et arguments : la commande à exécuter. Les arguments demandent de revenis à la ligne. | ||
+ | * '' | ||
+ | |||
+ | Source : le [[http:// | ||
+ | |||
+ | Ici, donc, on va activer l' | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | On ajoute les lignes suivantes dans ''/ | ||
+ | < | ||
+ | postscreen_blacklist_action = drop</ | ||
+ | |||
+ | ''/ | ||
+ | < | ||
+ | |||
+ | Mais bon, ce travail est surtout réalisé par fail2ban en principe. Ne pas oublier de créer le fichier quand même ! | ||
+ | |||
+ | On ajoute ensuite une grande subtilité de postscreen : un petit temps de délai avant de répondre. Un serveur mail bien configuré attend poliment qu'on lui donne la parole... cela éjecte donc un certain nombre de " | ||
+ | < | ||
+ | postscreen_greet_banner = Cool, we have time... | ||
+ | postscreen_greet_action = drop</ | ||
+ | |||
+ | === Listes de blocage === | ||
+ | |||
+ | Ensuite, on va ajouter des listes à interroger pour savoir si l'ip ne serait pas bloquée. Si oui, alors... on vire | ||
+ | < | ||
+ | | ||
+ | | ||
+ | | ||
+ | postscreen_dnsbl_threshold = 3 | ||
+ | postscreen_dnsbl_action = drop | ||
+ | </ | ||
+ | Ici, quelques subtilités (si j'ai compris, ce qui n'est pas certain !) : | ||
+ | * Si on rejette le mail, l' | ||
+ | * Interroger les listes demande du temps, pas la peine d'en ajouter trop, mais, on va le voir ensuite, pas la peine d'en mettre trop peu non plus. | ||
+ | * Forcément, on fait appel à un prestataire externe, avec ce que ça peut questionner sur la confiance. Les listes en question peuvent parfaitement faire une liste des ip qui contactent notre serveur. Personnellement je me dis que l' | ||
+ | * '' | ||
+ | |||
+ | Si une ip est trouvée dans une des listes, ça va compter pour " | ||
+ | |||
+ | Interroger plusieurs listes augmente donc les chances que l'ip bloquée le soit pour des raisons légitimes. | ||
+ | <WRAP center round todo 60%> | ||
+ | Et c'est une partie que je dois améliorer dans ma config | ||
+ | </ | ||
+ | |||
+ | Mais, attention. Ces listes ne sont pas toutes gratuites, elles ont des conditions d' | ||
+ | |||
+ | === Greylisting === | ||
+ | |||
+ | |||
+ | Enfin, quelques manip qui passent les ip en " | ||
+ | Ajout : ça risque aussi de foutre le boxon dans d' | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | postscreen_pipelining_action = enforce | ||
+ | postscreen_non_smtp_command_enable = yes | ||
+ | postscreen_non_smtp_command_action = enforce | ||
+ | postscreen_bare_newline_enable = yes | ||
+ | postscreen_bare_newline_action = enforce | ||
+ | </ | ||
+ | Toutes ces actions demandent que le client en face agisse proprement : il passe le test, se déconnecte, | ||
+ | * **pipelining** : pour les clients qui envoient plusieurs commandes en même temps, au lieu d' | ||
+ | * **non_smtp_command** : si le client envoie une commande qui n'est pas SMTP (voir [[https:// | ||
+ | * **bare_newline** : quand le client envoie un caractère de retour à la ligne, sans retour chariot avant. Ça doit filtrer ce qui est scripté avec les pieds ? Si on suit la norme, chaque ligne doit se terminer par < | ||
+ | |||
+ | Un petit '' | ||
===== ISPMail pour gérer domaines et users ===== | ===== ISPMail pour gérer domaines et users ===== | ||
C'est quand même plus pratique que de bidouiller la base de donnée, bien que la solution mérite d' | C'est quand même plus pratique que de bidouiller la base de donnée, bien que la solution mérite d' | ||
Ligne 971: | Ligne 1080: | ||
* test imapsync ou autre. | * test imapsync ou autre. | ||
* reprendre ici et harmoniser les noms de domaine entre autre | * reprendre ici et harmoniser les noms de domaine entre autre | ||
- | * <del>Mise en place du webmail, à la fois plus pratique en déplacement</ | + | * Mise en place du webmail, à la fois plus pratique en déplacement |
+ | * J'ai mis imapS (993) en place mais pas noté les détails. En même temps ça va avec la reprise de la config de dovecot et postfix en version plus détaillée ici. | ||
{{tag> | {{tag> | ||