Outils pour utilisateurs

Outils du site


technique:referentiel:chd-tls1

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

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 09:50]
admin
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 316: Ligne 330:
   ardiege, clarac, estancarbon,​ figarol, huos, labarthe-inard,​ labarthe-riviere,​ lalouret-laffiteau,​ landorthe, larcan, le-cuing, lieoux, lodes, martres-de-riviere,​ miramont-de-comminges,​ montespan, pointis-de-riviere,​ pointis-inard,​ saint-gaudens,​ saint-ignan,​ saux-et-pomarede,​ savarthes, villeneuve-de-riviere   ardiege, clarac, estancarbon,​ figarol, huos, labarthe-inard,​ labarthe-riviere,​ lalouret-laffiteau,​ landorthe, larcan, le-cuing, lieoux, lodes, martres-de-riviere,​ miramont-de-comminges,​ montespan, pointis-de-riviere,​ pointis-inard,​ saint-gaudens,​ saint-ignan,​ saux-et-pomarede,​ savarthes, villeneuve-de-riviere
 </​code>​ </​code>​
 +
 +
 +==== 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 ===
 +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.
 +
 +<​code>​
 +# test avant SPF depuis une connexion quelconque (hors serveur pouzenc.fr)
 +
 +lpouzenc@lud-x200s:​~$ dig +short TXT pouzenc.fr
 +"​v=spf1 +mx -all"
 +# Seul le serveur MX du domaine pouzenc.fr est autorisé à envoyer des mail from ...@pouzenc.fr
 +
 +lpouzenc@lud-x200s:​~$ dig +short MX pouzenc.fr
 +10 mail.pouzenc.fr.
 +# Le MX de pouzenc.fr est mail.pouzenc.fr
 +
 +lpouzenc@lud-x200s:​~$ dig +short A mail.pouzenc.fr
 +185.61.116.42
 +lpouzenc@lud-x200s:​~$ dig +short AAAA mail.pouzenc.fr
 +lpouzenc@lud-x200s:​~$ ​
 +# mail.pouzenc.fr a pour IP 185.61.116.42 (et n'a pas d'​IPv6)
 +
 +
 +# Test de mail depuis une IP autre que mail.pouzenc.fr vers le serveur mail de CHD :
 +lpouzenc@lud-x200s:​~$ swaks --to sympa@chd.sx --from ludovic@pouzenc.fr
 +=== Trying chd-tls1.chd.sx:​25...
 +=== Connected to chd-tls1.chd.sx.
 +<-  220 chd-tls1.chd.sx ESMTP Exim 4.84_2 Sun, 10 Sep 2017 10:13:57 +0200
 + -> EHLO lud-x200s
 +<-  250-chd-tls1.chd.sx Hello 40-128.ipv4.commingeshautdebit.fr [185.131.40.128]
 +<-  250-SIZE 52428800
 +<-  250-8BITMIME
 +<-  250-PIPELINING
 +<-  250 HELP
 + -> MAIL FROM:<​ludovic@pouzenc.fr>​
 +<-  250 OK
 + -> RCPT TO:<​sympa@chd.sx>​
 +<-  250 Accepted
 + -> DATA
 +<-  354 Enter message, ending with "​."​ on a line by itself
 + -> Date: Sun, 10 Sep 2017 10:13:57 +0200
 + -> To: sympa@chd.sx
 + -> From: ludovic@pouzenc.fr
 + -> Subject: test Sun, 10 Sep 2017 10:13:57 +0200
 + -> X-Mailer: swaks v20130209.0 jetmore.org/​john/​code/​swaks/​
 + ​-> ​
 + -> This is a test mailing
 + ​-> ​
 + -> .
 +<-  250 OK id=1dqxNN-0006et-Bo
 + -> QUIT
 +<-  221 chd-tls1.chd.sx closing connection
 +=== Connection closed with remote host.
 +
 +# Le mail a été accepté.
 +</​code>​
 +
 +<​code>​
 +apt-get install spf-tools-perl
 +cd /​etc/​exim4/​conf.d
 +editor main/​00_exim4-localmacros # Nouveau fichier, attention le début du nom est significatif
 +</​code>​
 +
 +<file conf main/​00_exim4-localmacros>​
 +CHECK_RCPT_POSTMASTER = true # Ne jamais bloquer de mail destiné à postmaster
 +CHECK_RCPT_SPF = true
 +</​file>​
 +
 +<​code>​
 +update-exim4.conf
 +
 +# Vérifier que la directive a bien été prise en compte dans la configuration générée
 +grep RCPT_SPF /​var/​lib/​exim4/​config.autogenerated
 +# CHECK_RCPT_SPF = true
 +#  .ifdef CHECK_RCPT_SPF
 +</​code>​
 +
 +<​code>​
 +service exim4 reload
 +</​code>​
 +
 +<​code>​
 +# Test de mail depuis une IP autre que mail.pouzenc.fr vers le serveur mail de CHD :
 +lpouzenc@lud-x200s:​~$ swaks --to sympa@chd.sx --from ludovic@pouzenc.fr
 +=== Trying chd-tls1.chd.sx:​25...
 +=== Connected to chd-tls1.chd.sx.
 +<-  220 chd-tls1.chd.sx ESMTP Exim 4.84_2 Sun, 10 Sep 2017 10:25:55 +0200
 + -> EHLO lud-x200s
 +<-  250-chd-tls1.chd.sx Hello 40-128.ipv4.commingeshautdebit.fr [185.131.40.128]
 +<-  250-SIZE 52428800
 +<-  250-8BITMIME
 +<-  250-PIPELINING
 +<-  250 HELP
 + -> MAIL FROM:<​ludovic@pouzenc.fr>​
 +<-  250 OK
 + -> RCPT TO:<​sympa@chd.sx>​
 +<** 550-[SPF] 185.131.40.128 is not allowed to send mail from pouzenc.fr. ​ Please
 +<** 550 see http://​www.openspf.org/​Why?​scope=mfrom;​identity=ludovic@pouzenc.fr;​ip=185.131.40.128
 + -> QUIT
 +<-  221 chd-tls1.chd.sx closing connection
 +=== Connection closed with remote host.
 +</​code>​
 +
 +=== Reverse DNS destinataire ===
 +
 +
 +=== DNS Blacklist ===
 +On peut demander à exim de consulter une liste noire (du pt de vue du spam) d'IP et de domaines d'où proviennent les mails entrants. Ajoute un entête X-Warning dans le mail en question (cf ''​acl/​30_exim4-config_check_rcpt''​).
 +
 +<​code>​
 +cd /​etc/​exim4/​conf.d
 +editor main/​00_exim4-localmacros
 +#Ajouter 2 lignes
 +</​code>​
 +<​code>​
 +CHECK_RCPT_IP_DNSBLS = zen.spamhaus.org
 +CHECK_RCPT_DOMAIN_DNSBLS = dbl.spamhaus.org/​$sender_address_domain
 +</​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>​
 +
  
technique/referentiel/chd-tls1.1505029814.txt.gz · Dernière modification: 2017/09/10 09:50 par admin