Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
technique:referentiel:chd-tls1 [2017/09/10 10:49] admin [Limiter le Spam] |
technique:referentiel:chd-tls1 [2018/07/06 11:30] (Version actuelle) admin |
||
---|---|---|---|
Ligne 4: | Ligne 4: | ||
* Machine virtuelle (KVM amd64) | * Machine virtuelle (KVM amd64) | ||
- | * Debian 8 | + | * Installé en Debian 8, migré en Debian 9.4 le 2018-03-12 |
===== Roles ===== | ===== Roles ===== | ||
Ligne 40: | Ligne 40: | ||
service munin-node reload | service munin-node reload | ||
</code> | </code> | ||
+ | |||
+ | <file txt /etc/apt/apt.conf.d/20auto-upgrades> | ||
+ | APT::Periodic::Update-Package-Lists "1"; | ||
+ | APT::Periodic::Unattended-Upgrade "1"; | ||
+ | </file> | ||
+ | <file txt /etc/apt/apt.conf.d/50unattended-upgrades> | ||
+ | Unattended-Upgrade::Origins-Pattern { | ||
+ | "origin=Debian,codename=${distro_codename},label=Debian-Security"; | ||
+ | }; | ||
+ | Unattended-Upgrade::Package-Blacklist { | ||
+ | }; | ||
+ | Unattended-Upgrade::Mail "root"; | ||
+ | Unattended-Upgrade::Automatic-Reboot "true"; | ||
+ | </file> | ||
==== Services web ==== | ==== Services web ==== | ||
Ligne 319: | Ligne 333: | ||
==== Limiter le Spam ==== | ==== Limiter le Spam ==== | ||
+ | === Exploitation === | ||
+ | Les fichiers pour pourvoir ajouter des exceptions au filtrage sont : | ||
+ | <code> | ||
+ | /etc/exim4/host_local_deny_exceptions | ||
+ | /etc/exim4/local_domain_dnsbl_whitelist | ||
+ | /etc/exim4/local_helo_blacklist | ||
+ | /etc/exim4/local_host_blacklist | ||
+ | /etc/exim4/local_sender_blacklist | ||
+ | /etc/exim4/sender_local_deny_exceptions | ||
+ | /etc/spamassassin/local.cf | ||
+ | </code> | ||
+ | |||
=== SPF === | === SPF === | ||
Le filtre SPF regarde l'expéditeur d'un mail, cherche dans le DNS quelles machines ont le droit d'envoyer un mail pour ce domaine et décide si le mail est acceptable ou non. | Le filtre SPF regarde l'expéditeur d'un mail, cherche dans le DNS quelles machines ont le droit d'envoyer un mail pour ce domaine et décide si le mail est acceptable ou non. | ||
Ligne 381: | Ligne 407: | ||
<file conf main/00_exim4-localmacros> | <file conf main/00_exim4-localmacros> | ||
+ | CHECK_RCPT_POSTMASTER = true # Ne jamais bloquer de mail destiné à postmaster | ||
CHECK_RCPT_SPF = true | CHECK_RCPT_SPF = true | ||
</file> | </file> | ||
Ligne 434: | Ligne 461: | ||
CHECK_RCPT_DOMAIN_DNSBLS = dbl.spamhaus.org/$sender_address_domain | CHECK_RCPT_DOMAIN_DNSBLS = dbl.spamhaus.org/$sender_address_domain | ||
</code> | </code> | ||
+ | |||
+ | Provoquer un test par un robot dont l'IP est blacklistée (il suffit de lui envoyer un mail pour qu'il vienne en retour faire un test) | ||
+ | tail -f /var/log/exim4/mainlog & | ||
+ | <code> | ||
+ | mail -s test nelson-sbl-test@crynwr.com | ||
+ | Subject: test | ||
+ | |||
+ | <ctrl+d> | ||
+ | CC: | ||
+ | |||
+ | # Attendre un peu | ||
+ | # kill %1 # tue le tail | ||
+ | </code> | ||
+ | |||
+ | L'admin du serveur mail aura une copie du message de test + un rapport de test. Dans le mail de test, un header doit s'être ajouté : | ||
+ | <code> | ||
+ | X-Warning: 192.203.178.107 is listed at zen.spamhaus.org (127.0.0.2: https://www.spamhaus.org/sbl/query/SBL230) | ||
+ | </code> | ||
+ | |||
+ | Pour bloquer purement et simplement, modifier "warn" par "deny" dans le block .ifdef CHECK_RCPT_IP_DNSBLS | ||
+ | <code> | ||
+ | editor ./acl/30_exim4-config_check_rcpt | ||
+ | </code> | ||
+ | |||
+ | Pour tester la blacklist par domaines, laisser la configuration en "warn" puis lancer un mail de test depuis une machine de test : | ||
+ | <code> | ||
+ | swaks --to sympa@chd.sx --from ludovic@dbltest.com | ||
+ | </code> | ||
+ | |||
+ | Dans le log, on doit voir : | ||
+ | |||
+ | <code> | ||
+ | 2017-09-10 11:11:09 H=40-128.ipv4.commingeshautdebit.fr (lud-x200s) [185.131.40.128] Warning: dbltest.com is listed at dbl.spamhaus.org (127.0.1.2: https://www.spamhaus.org/query/domain/dbltest.com) | ||
+ | </code> | ||
+ | |||
+ | Passer en deny dans la config | ||
+ | <code> | ||
+ | editor ./acl/30_exim4-config_check_rcpt | ||
+ | [...] | ||
+ | .ifdef CHECK_RCPT_DOMAIN_DNSBLS | ||
+ | deny # <-- mettre deny plutôt que warn | ||
+ | |||
+ | !senders = ${if exists{CONFDIR/local_domain_dnsbl_whitelist}\ | ||
+ | {CONFDIR/local_domain_dnsbl_whitelist}\ | ||
+ | {}} | ||
+ | # Noter qu'on peut mettre un fichier de config pour dé-blacklister manuellement des domaines listés dans la blacklist | ||
+ | [...] | ||
+ | </code> | ||
+ | |||
+ | |||
+ | === SpamAssassin === | ||
+ | <code> | ||
+ | apt-get install spamassassin perl-doc | ||
+ | systemctl enable spamassassin.service | ||
+ | editor ./main/02_exim4-config_options | ||
+ | # décommenter la ligne suivante | ||
+ | # spamd_address = 127.0.0.1 783 | ||
+ | editor ./acl/40_exim4-config_check_data | ||
+ | # Ajouter après l'exemple de spam =... | ||
+ | </code> | ||
+ | |||
+ | <file sh ./acl/40_exim4-config_check_data> | ||
+ | [...] | ||
+ | # http://www.exim.org/exim-html-current/doc/html/spec_html/ch44.html | ||
+ | deny | ||
+ | # Ne pas scanner les mails de + de 50k | ||
+ | condition = ${if < {$message_size}{50K}} | ||
+ | # Pas de profilage par utilisateur, laisser passer si spamassassin est en panne | ||
+ | spam = debian-spamd/defer_ok | ||
+ | message = This message was detected as spam ($spam_score). | ||
+ | [...] | ||
+ | </file> | ||
+ | |||
+ | <code> | ||
+ | perldoc Mail::SpamAssassin::Conf | ||
+ | |||
+ | editor /etc/spamassassin/init.pre | ||
+ | # Commenter (car exim le fait avant) | ||
+ | # loadplugin Mail::SpamAssassin::Plugin::URIDNSBL | ||
+ | # loadplugin Mail::SpamAssassin::Plugin::SPF | ||
+ | |||
+ | editor /etc/spamassassin/v320.pre | ||
+ | # Décommenter | ||
+ | loadplugin Mail::SpamAssassin::Plugin::Shortcircuit | ||
+ | |||
+ | </code> | ||
+ | |||
+ | <code> | ||
+ | editor /etc/spamassassin/local.cf | ||
+ | # Décommenter et modifier | ||
+ | # required_score 8.0 | ||
+ | # Décommenter 3 lignes : | ||
+ | # shortcircuit USER_IN_WHITELIST on | ||
+ | # shortcircuit USER_IN_BLACKLIST on | ||
+ | # shortcircuit USER_IN_BLACKLIST_TO on | ||
+ | # ajouter : | ||
+ | </code> | ||
+ | |||
+ | <file> | ||
+ | # Exemple d'expéditeurs toujours considérés comme SPAM | ||
+ | blacklist_from spam@pouzenc.fr | ||
+ | |||
+ | # Exemple d'expéditeurs toujours considérés comme non-SPAM | ||
+ | whitelist_from *@pouzenc.fr | ||
+ | |||
+ | # Exemple de destinataire (enveloppe-to, To: Cc:... possiblement fake) toujours considéré comme SPAM | ||
+ | blacklist_to service@free.fr | ||
+ | |||
+ | </file> | ||