Différences
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 | ||
serveur:mail [2021/01/01 13:31] – [Configuration principale] d2air | serveur:mail [2021/05/13 10:48] (Version actuelle) – [Création d’un serveur virtuel Apache2] d2air | ||
---|---|---|---|
Ligne 152: | Ligne 152: | ||
SSLCertificateFile | SSLCertificateFile | ||
SSLCertificateKeyFile | SSLCertificateKeyFile | ||
- | Header always | + | |
- | Header always set X-Content-Type-Options " | + | |
- | Header always set X-Frame-Options DENY | + | Header always set X-Content-Type-Options " |
- | Header always set X-XSS-Protection "1; mode=block" | + | Header always set X-Frame-Options |
+ | Header always set X-XSS-Protection "1; mode=block" | ||
+ | Header set Content-Security-Policy-Report-Only " | ||
+ | </ | ||
# | # | ||
Ligne 313: | Ligne 316: | ||
Configurons Postfix | Configurons Postfix | ||
< | < | ||
+ | apt install python3-pip python3-dnslib | ||
+ | pip3 install certbot-dns-standalone | ||
systemctl stop postfix | systemctl stop postfix | ||
- | certbot certonly --standalone -d mail.domaine.eu --email webmaster@domaine.eu --rsa-key-size 4096 | + | certbot |
+ | | ||
+ | --certbot-dns-standalone: | ||
+ | --certbot-dns-standalone: | ||
+ | --certbot-dns-standalone: | ||
+ | | ||
systemctl start postfix | systemctl start postfix | ||
</ | </ | ||
Ligne 478: | Ligne 488: | ||
smtpd_recipient_restrictions = | smtpd_recipient_restrictions = | ||
+ | reject_rbl_client xbl.spamhaus.org, | ||
+ | reject_rbl_client pbl.spamhaus.org, | ||
+ | reject_rbl_client sbl.spamhaus.org, | ||
+ | reject_rbl_client multi.uribl.com, | ||
+ | reject_rbl_client rbl-plus.mail-abuse.org, | ||
+ | reject_rbl_client dialups.mail-abuse.org, | ||
reject_invalid_hostname, | reject_invalid_hostname, | ||
reject_non_fqdn_hostname, | reject_non_fqdn_hostname, | ||
Ligne 489: | Ligne 505: | ||
reject_unauth_destination, | reject_unauth_destination, | ||
reject_unverified_recipient, | reject_unverified_recipient, | ||
- | check_policy_service unix: | ||
permit | permit | ||
Ligne 511: | Ligne 526: | ||
smtpd_hard_error_limit = 20 | smtpd_hard_error_limit = 20 | ||
- | myhostname = hostname.domaine.eu | + | myhostname = host.domaine.eu |
+ | mydomain = domaine.eu | ||
+ | #myorigin = / | ||
+ | myorigin = $mydomain | ||
+ | mydestination = $myhostname, | ||
+ | mynetworks = 127.0.0.0/8 [:: ffff: | ||
+ | relayhost = | ||
+ | relay_domains = lists.domaine.eu | ||
alias_maps = hash:/ | alias_maps = hash:/ | ||
alias_database = hash:/ | alias_database = hash:/ | ||
- | mydestination = hostname, hostname.domaine.eu, | ||
- | mydomain = domaine.eu | ||
- | myorigin = $mydomain | ||
- | mynetworks = 127.0.0.0/8 [:: | ||
- | relayhost = | ||
- | default_transport = smtp | ||
- | relay_transport = smtp | ||
mailbox_size_limit = 51200000 | mailbox_size_limit = 51200000 | ||
message_size_limit = 25600000 | message_size_limit = 25600000 | ||
Ligne 828: | Ligne 843: | ||
<file sh main.cf> | <file sh main.cf> | ||
smtpd_recipient_restrictions = | smtpd_recipient_restrictions = | ||
- | | + | reject_rbl_client xbl.spamhaus.org, |
- | reject_non_fqdn_hostname, | + | reject_rbl_client pbl.spamhaus.org, |
- | reject_non_fqdn_sender, | + | reject_rbl_client sbl.spamhaus.org, |
- | reject_non_fqdn_recipient, | + | reject_rbl_client multi.uribl.com, |
- | reject_unknown_sender_domain, | + | reject_rbl_client rbl-plus.mail-abuse.org, |
- | reject_unknown_recipient_domain, | + | reject_rbl_client dialups.mail-abuse.org, |
- | | + | reject_invalid_hostname, |
- | reject_unverified_recipient, | + | reject_non_fqdn_hostname, |
- | | + | reject_non_fqdn_sender, |
- | permit_sasl_authenticated, | + | reject_non_fqdn_recipient, |
- | permit_auth_destination, | + | reject_unknown_sender_domain, |
- | | + | reject_unknown_recipient_domain, |
- | check_policy_service inet: | + | permit_mynetworks, |
- | permit | + | permit_sasl_authenticated, |
+ | permit_auth_destination, | ||
+ | reject_unauth_destination, | ||
+ | reject_unverified_recipient, | ||
+ | check_policy_service inet: | ||
+ | permit | ||
</ | </ | ||
Puis il faut relancer Postfix en surveillant les logs : | Puis il faut relancer Postfix en surveillant les logs : | ||
Ligne 852: | Ligne 872: | ||
La configuration par défaut de [[https:// | La configuration par défaut de [[https:// | ||
- | Il faut ajouter l’utilisateur '' | + | Il faut ajouter l’utilisateur '' |
<code sh> | <code sh> | ||
adduser clamav amavis | adduser clamav amavis | ||
+ | adduser amavis clamav | ||
</ | </ | ||
===== Configuration d’Amavis-new ===== | ===== Configuration d’Amavis-new ===== | ||
- | Amavis servira | + | Amavis servira |
Il faut ajouter les sections suivantes dans le fichier de configuration / | Il faut ajouter les sections suivantes dans le fichier de configuration / | ||
<file sh master.cf> | <file sh master.cf> | ||
Ligne 886: | Ligne 907: | ||
-o receive_override_options=no_header_body_checks, | -o receive_override_options=no_header_body_checks, | ||
</ | </ | ||
- | Ces deux paragraphes permettront la création des points d’accrochage entre le module smtpd de Postfix et le daemon | + | Ces deux paragraphes permettront la création des points d’accrochage entre le module smtpd de Postfix et le daemon |
Les options '' | Les options '' | ||
+ | Ajoutez aussi les deux lignes suivantes immédiatement en dessous du service de transport " | ||
+ | <file sh master.cf> | ||
+ | pickup | ||
+ | -o content_filter= | ||
+ | -o receive_override_options=no_header_body_checks | ||
+ | </ | ||
+ | Ceci empêchera la classification en tant que pourriel des messages de rapport de pourriels. | ||
- | De plus, il faut modifier le fichier main.cf pour indiquer à Postfix que smtpd doit se connecter à Amavisd, mais il y a juste une ligne à ajouter : | + | De plus, il faut modifier le fichier main.cf pour indiquer à Postfix que smtpd doit se connecter à Amavis, mais il y a juste une ligne à ajouter : |
<file sh master.cf> | <file sh master.cf> | ||
content_filter=smtp-amavis: | content_filter=smtp-amavis: | ||
+ | </ | ||
+ | Les fichiers de configuration d’Amavis sont dans le répertoire ''/ | ||
+ | |||
+ | Pour activer la détection de spam et de virus; il faut ensuite décommenter les lignes utiles dans le fichier ''/ | ||
+ | <file sh 15-content_filter_mode> | ||
+ | use strict; | ||
+ | |||
+ | # You can modify this file to re-enable SPAM checking through spamassassin | ||
+ | # and to re-enable antivirus checking. | ||
+ | |||
+ | # | ||
+ | # Default antivirus checking mode | ||
+ | # Please note, that anti-virus checking is DISABLED by | ||
+ | # default. | ||
+ | # If You wish to enable it, please uncomment the following lines: | ||
+ | |||
+ | |||
+ | # | ||
+ | # | ||
+ | |||
+ | |||
+ | # | ||
+ | # Default SPAM checking mode | ||
+ | # Please note, that anti-spam checking is DISABLED by | ||
+ | # default. | ||
+ | # If You wish to enable it, please uncomment the following lines: | ||
+ | |||
+ | |||
+ | # | ||
+ | # | ||
+ | |||
+ | 1; # ensure a defined return | ||
+ | </ | ||
+ | Cependant, il est préférable de copier ces lignes dans le fichier '' | ||
+ | Le fichier ''/ | ||
+ | * si vous désirez que les tags posés par spamassassin soient systématiquement ajoutés dans les en-têtes de messages, ça n'ira pas ; | ||
+ | * si vous voulez que les spams ne soient jamais éliminés, mais simplement marqués comme tels, ça n'ira pas non plus ; | ||
+ | * si par la suite, vous souhaitez, comme nous le ferons dans le chapitre suivant, utiliser des domaines « virtuels » vos tags risquent de ne jamais apparaître. | ||
+ | |||
+ | En effet, Amavisd-new ne retranscrit les tags de spamassassin que pour les messages à destination des domaines référencés dans la variable (liste) '' | ||
+ | |||
+ | De plus, la variable '' | ||
+ | |||
+ | Dans la configuration par défaut, vous constaterez que si un message obtient un score >= 100, il est « D_BOUNCE » ce qui veut dire qu'il est mis en quarantaine locale et que le destinataire ne reçoit rien. Certes, un score de 100 est assez significatif, | ||
+ | |||
+ | En cas de refus de tags de la part d' | ||
+ | |||
+ | Enfin, les variables '' | ||
+ | |||
+ | Voilà à quoi pourrait ressembler le fichier ''/ | ||
+ | <file sh 50-user> | ||
+ | use strict; | ||
+ | |||
+ | # | ||
+ | # Place your configuration directives here. They will override those in | ||
+ | # earlier files. | ||
+ | # | ||
+ | # See / | ||
+ | # the directives you can use in this file | ||
+ | # | ||
+ | @local_domains_acl = ( " | ||
+ | |||
+ | @bypass_virus_checks_maps = ( | ||
+ | | ||
+ | |||
+ | @bypass_spam_checks_maps = ( | ||
+ | | ||
+ | |||
+ | $sa_tag_level_deflt = -9999; | ||
+ | # ici, nous sommes à peu près surs que le tag sera toujours présent | ||
+ | $sa_tag2_level_deflt = 5.0; # note minimale pour ajouter le tag X-Spam-Flag: | ||
+ | # et modifier l' | ||
+ | $sa_kill_level_deflt = 100; # note à partir de laquelle les mails sont traités comme définis | ||
+ | # par la variable $final_spam_destiny (ici ils sont acceptés) | ||
+ | $sa_spam_subject_tag = ' | ||
+ | $final_spam_destiny | ||
+ | |||
+ | # Pour ne pas en dire trop sur les armes employées | ||
+ | $X_HEADER_LINE = "spam & virus filtering at $mydomain"; | ||
+ | |||
+ | # | ||
+ | 1; # ensure a defined return | ||
</ | </ | ||
==== Vérifier la configuration ==== | ==== Vérifier la configuration ==== | ||
Ligne 920: | Ligne 1030: | ||
* DSPAM n’est plus maintenu et le paquet est enlevé des dépôts depuis Debian Jessie ; | * DSPAM n’est plus maintenu et le paquet est enlevé des dépôts depuis Debian Jessie ; | ||
* [[https:// | * [[https:// | ||
- | * [[https:// | + | * [[https:// |
- | ==== Configuration | + | ==== Paquets facultatifs |
- | Le fichier de configuration est ''/ | + | Il existe des paquets facultatifs qui s’intègrent avec Spamassassin pour une meilleure détection des spams : |
- | <file sh local.cf> | + | <code sh> |
- | ENABLED=1 | + | apt install pyzor razor |
+ | </ | ||
+ | Puis : | ||
+ | <code sh> | ||
+ | user@host: | ||
+ | $ razor-admin -create | ||
+ | $ razor-admin -register | ||
+ | </ | ||
+ | ==== Activation du service ==== | ||
+ | Dans le fichier de configuration est ''/ | ||
+ | <file sh spamassassin> | ||
CRON=1 | CRON=1 | ||
</ | </ | ||
- | Avant que le cron s’exécute pour la première fois, nous devons mettre à jour manuellement le jeu de règles de SpamAssassin: | + | puis : |
- | < | + | < |
- | sa-learn | + | systemctl start spamassassin |
</ | </ | ||
- | Sauvegardons | + | ==== Configuration ==== |
+ | Sauvegardons | ||
< | < | ||
cp / | cp / | ||
Ligne 937: | Ligne 1058: | ||
<file sh local.cf> | <file sh local.cf> | ||
rewrite_header Subject [SPAM] | rewrite_header Subject [SPAM] | ||
- | report_safe | + | report_safe |
required_score 5.0 | required_score 5.0 | ||
use_bayes 1 | use_bayes 1 | ||
bayes_auto_learn 1 | bayes_auto_learn 1 | ||
- | |||
- | whitelist_from *@domaine.eu | ||
- | </ | ||
- | Ensuite, pour que Postfix puisse envoyer des emails entrants ver SpamAssassin, | ||
- | <file sh master.cf> | ||
- | smtp inet n | ||
- | -o content_filter=spamassassin | ||
- | </ | ||
- | À la fin du même fichier, nous devons ajouter les lignes suivantes : | ||
- | <file sh master.cf> | ||
- | spamassassin unix - | ||
- | user=debian-spamd argv=/ | ||
</ | </ | ||
Nous pouvons redémarrer les services SpamAssassin et Postfix : | Nous pouvons redémarrer les services SpamAssassin et Postfix : | ||
< | < | ||
systemctl restart postfix | systemctl restart postfix | ||
+ | systemctl restart amavis | ||
systemctl restart spamassassin | systemctl restart spamassassin | ||
</ | </ | ||
- | Pour vérifier si cela fonctionne, envoyez vous un e-mail d'un autre fournisseur et vous devriez voir les en-têtes | + | ==== Vérifier le fonctionnement |
+ | Pour vérifier si cela fonctionne, envoyez-vous un e-mail d’un autre fournisseur et vous devriez voir des en-têtes | ||
< | < | ||
- | X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on | + | X-Virus-Scanned: Debian amavisd-new at host.domaine.eu |
- | host.domaine.eu | + | X-Spam-Flag: |
+ | X-Spam-Score: | ||
X-Spam-Level: | X-Spam-Level: | ||
+ | X-Spam-Status: | ||
+ | tests=[HTML_MESSAGE=0.001] autolearn=ham autolearn_force=no | ||
</ | </ | ||
===== Configurer SPF ===== | ===== Configurer SPF ===== | ||
- | ==== Permettre à votre serveur d'envoyer pour votre domaine ==== | + | ==== Permettre à votre serveur d’envoyer pour votre domaine ==== |
- | SPF (Sender Policy Framework) est un mécanisme qui confirme que l'IP de votre serveur est autorisé à envoyer des e-mails pour votre domaine. Techniquement, | + | SPF (Sender Policy Framework) est un mécanisme qui confirme que l’IP de votre serveur est autorisé à envoyer des e-mails pour votre domaine. Techniquement, |
< | < | ||
domaine.eu. | domaine.eu. | ||
</ | </ | ||
- | Cet enregistrement DNS permet aux autres serveurs de messagerie de savoir que les serveurs qui possèdent un enregistrement MX pour mon domaine sont également autorisés à envoyer des e-mails. Pour plus d'informations sur la syntaxe SPF, vous pouvez consulter la [[http:// | + | Cet enregistrement DNS permet aux autres serveurs de messagerie de savoir que les serveurs qui possèdent un enregistrement MX pour mon domaine sont également autorisés à envoyer des e-mails. Pour plus d’informations sur la syntaxe SPF, vous pouvez consulter la [[http:// |
Sans un enregistrement SPF correctement configuré, les autres serveurs de messagerie pourraient considérer vos courriers comme un SPAM ou carrément les laisser tomber. | Sans un enregistrement SPF correctement configuré, les autres serveurs de messagerie pourraient considérer vos courriers comme un SPAM ou carrément les laisser tomber. | ||
==== SPF Record pour les courriers entrants ==== | ==== SPF Record pour les courriers entrants ==== | ||
- | Maintenant que nous avons mis en place notre propre enregistrement SPF, nous allons configurer Postfix pour vérifier que d'autres serveurs de messagerie puissent communiquer avec nous comme nous avons fait. | + | Maintenant que nous avons mis en place notre propre enregistrement SPF, nous allons configurer Postfix pour vérifier que d’autres serveurs de messagerie puissent communiquer avec nous comme nous avons fait. |
- | Tout d' | + | Avant tout, nous allons ajouter les deux lignes suivantes à la fin de ''/ |
<file sh policyd-spf.conf> | <file sh policyd-spf.conf> | ||
Header_Type = AR | Header_Type = AR | ||
Authserv_Id = hostname.domaine.eu | Authserv_Id = hostname.domaine.eu | ||
</ | </ | ||
+ | Pour connaître les différentes options, il existe la commande : | ||
+ | <code sh> | ||
+ | man policyd-spf.conf | ||
+ | </ | ||
Puis nous éditons le fichier '' | Puis nous éditons le fichier '' | ||
<file sh master.cf> | <file sh master.cf> | ||
Ligne 985: | Ligne 1103: | ||
| | ||
</ | </ | ||
- | Ensuite nous modifions dans le fichier ''/ | + | Ensuite nous modifions dans le fichier ''/ |
<file sh main.cf> | <file sh main.cf> | ||
smtpd_recipient_restrictions = | smtpd_recipient_restrictions = | ||
- | [...] | + | reject_rbl_client xbl.spamhaus.org, |
- | reject_unauth_destination, | + | reject_rbl_client pbl.spamhaus.org, |
- | check_policy_service unix: | + | reject_rbl_client sbl.spamhaus.org, |
- | permit | + | reject_rbl_client multi.uribl.com, |
+ | reject_rbl_client rbl-plus.mail-abuse.org, | ||
+ | reject_rbl_client dialups.mail-abuse.org, | ||
+ | reject_invalid_hostname, | ||
+ | reject_non_fqdn_hostname, | ||
+ | reject_non_fqdn_sender, | ||
+ | reject_non_fqdn_recipient, | ||
+ | reject_unknown_sender_domain, | ||
+ | reject_unknown_recipient_domain, | ||
+ | permit_mynetworks, | ||
+ | permit_sasl_authenticated, | ||
+ | permit_auth_destination, | ||
+ | reject_unauth_destination, | ||
+ | reject_unverified_recipient, | ||
+ | check_policy_service unix: | ||
+ | check_policy_service inet: | ||
+ | permit | ||
policy-spf_time_limit = 3600s | policy-spf_time_limit = 3600s | ||
</ | </ | ||
- | Put the policy | + | Placez le service |
- | Nous pouvons relancer le service : | + | Nous pouvons |
< | < | ||
systemctl restart postfix | systemctl restart postfix | ||
</ | </ | ||
- | Notre serveur peut maintenant vérifier les enregistrements SPF d'un autre serveur de messagerie. Pour vous assurer que cela fonctionne, envoyez vous un e-mail depuis un autre fournisseur et vous devriez voir l'en-tête | + | Notre serveur peut maintenant vérifier les enregistrements SPF d’un autre serveur de messagerie. Pour vous assurer que cela fonctionne, envoyez-vous un e-mail depuis un autre fournisseur et vous devriez voir l’en-tête |
< | < | ||
Authentication-Results: | Authentication-Results: | ||
Ligne 1245: | Ligne 1379: | ||
Nous avons maintenant un serveur de messagerie correctement configuré. Il pourrait être encore amélioré par la mise en place de détection de [[https:// | Nous avons maintenant un serveur de messagerie correctement configuré. Il pourrait être encore amélioré par la mise en place de détection de [[https:// | ||
===== Réferences | ===== Réferences | ||
- | Les tutoriaux et les pages d'aide qui furent utilisés pour construire cette page : | + | Les tutoriaux et les pages d’aide qui furent utilisés pour construire cette page : |
* [[https:// | * [[https:// | ||
* [[https:// | * [[https:// | ||
Ligne 1256: | Ligne 1390: | ||
* [[https:// | * [[https:// | ||
* [[https:// | * [[https:// | ||
+ | * [[http:// | ||
+ | * [[https:// |