mail
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 | ||
| mail [2017/11/04 18:59] – Ajour rspamd mirtouf | mail [2017/11/26 10:42] (Version actuelle) – [3.1. main.cf] Modification DH mirtouf | ||
|---|---|---|---|
| Ligne 40: | Ligne 40: | ||
| puis dovecot: | puis dovecot: | ||
| < | < | ||
| - | apt install dovecot-imapd | + | apt install dovecot-imapd |
| </ | </ | ||
| Ligne 51: | Ligne 51: | ||
| < | < | ||
| apt install nginx-full uwsgi-python | apt install nginx-full uwsgi-python | ||
| + | </ | ||
| + | |||
| + | puis redis-server: | ||
| + | < | ||
| + | apt install redis-server | ||
| + | </ | ||
| + | |||
| + | puis clamav: | ||
| + | < | ||
| + | apt install clamav clamav-daemon | ||
| </ | </ | ||
| Ligne 63: | Ligne 73: | ||
| ===== 2. Installation et configuration de modoboa ===== | ===== 2. Installation et configuration de modoboa ===== | ||
| + | ==== 2.1. Installation de modoboa via pip ==== | ||
| C'est du python et donc il faut mieux travailler dans un // | C'est du python et donc il faut mieux travailler dans un // | ||
| Avec votre utilisateur non privilégié il faut passer dans un environnement virtuel pour installer modoboa: | Avec votre utilisateur non privilégié il faut passer dans un environnement virtuel pour installer modoboa: | ||
| Ligne 73: | Ligne 84: | ||
| </ | </ | ||
| - | puis déployer une instance (référez-vous à la [[https:// | + | ==== 2.2. Déploiement de modoboa ==== |
| + | Ensuite il faut déployer une instance (référez-vous à la [[https:// | ||
| < | < | ||
| - | pour de belles statistiques (utilisateur privilégié): | + | pour de belles statistiques (utilisateur privilégié |
| < | < | ||
| où ce chemin sera renseigné dans l' | où ce chemin sera renseigné dans l' | ||
| Ligne 85: | Ligne 97: | ||
| Veuillez noter que selon votre configuration, | Veuillez noter que selon votre configuration, | ||
| - | Le fichier à placer | + | ==== 2.3. Crontab pour modoboa ==== |
| + | Le fichier à éditer | ||
| < | < | ||
| # Modoboa specific cron jobs | # Modoboa specific cron jobs | ||
| Ligne 113: | Ligne 126: | ||
| ===== 3. Postfix ===== | ===== 3. Postfix ===== | ||
| + | ==== 3.1. main.cf ==== | ||
| Pour postfix c'est assez simple, le main.cf (avec une mise en forme qui plairait à hardware): | Pour postfix c'est assez simple, le main.cf (avec une mise en forme qui plairait à hardware): | ||
| < | < | ||
| Ligne 203: | Ligne 217: | ||
| smtpd_tls_cert_file | smtpd_tls_cert_file | ||
| smtpd_tls_key_file | smtpd_tls_key_file | ||
| - | smtpd_tls_dh1024_param_file | + | smtpd_tls_dh1024_param_file |
| - | smtpd_tls_dh512_param_file | + | |
| tls_preempt_cipherlist = yes | tls_preempt_cipherlist = yes | ||
| Ligne 248: | Ligne 261: | ||
| transport_maps | transport_maps | ||
| mysql:/ | mysql:/ | ||
| - | mysql:/ | + | mysql:/ |
| + | hash:/ | ||
| ###################### | ###################### | ||
| Ligne 384: | Ligne 398: | ||
| :!: Veuillez noter que / | :!: Veuillez noter que / | ||
| + | Le fichier Diffie-Hellman contient ceci et est préférentiellement choisi car audité de façon régulière: | ||
| + | < | ||
| + | -----BEGIN DH PARAMETERS----- | ||
| + | MIIBCAKCAQEA////////// | ||
| + | +8yTnc4kmz75fS/ | ||
| + | 87VXE15/ | ||
| + | YdEIqUuyyOP7uWrat2DX9GgdT0Kj3jlN9K5W7edjcrsZCwenyO4KbXCeAvzhzffi | ||
| + | 7MA0BM0oNC9hkXL+nOmFg/ | ||
| + | ssbzSibBsu/ | ||
| + | -----END DH PARAMETERS----- | ||
| + | </ | ||
| + | ==== 3.2. master.cf ==== | ||
| Le master.cf: | Le master.cf: | ||
| < | < | ||
| Ligne 498: | Ligne 524: | ||
| -o smtp_dns_support_level=dnssec | -o smtp_dns_support_level=dnssec | ||
| -o smtp_tls_security_level=dane | -o smtp_tls_security_level=dane | ||
| + | |||
| + | # Modoboa DMARC | ||
| + | dmarc-rua-parser unix - | ||
| + | flags= user=vmail: | ||
| # Zeyple | # Zeyple | ||
| Ligne 515: | Ligne 545: | ||
| # Vacation (modoboa) | # Vacation (modoboa) | ||
| autoreply | autoreply | ||
| - | | + | |
| </ | </ | ||
| + | ==== 3.3. Complément DMARC ==== | ||
| + | Il faut ajouter le fichier suivant dans / | ||
| + | < | ||
| + | adresse_dmarc_enregistrement_DNS@domaine.tld dmarc-rua-parser: | ||
| + | </ | ||
| + | puis un coup de postmap bien placé: | ||
| + | < | ||
| + | postmap / | ||
| + | </ | ||
| ===== 4.Dovecot ===== | ===== 4.Dovecot ===== | ||
| + | ==== 4.1. Configuration générale ==== | ||
| La configuration générale de dovecot dans / | La configuration générale de dovecot dans / | ||
| - | / | + | ==>/ |
| < | < | ||
| disable_plaintext_auth = no | disable_plaintext_auth = no | ||
| Ligne 530: | Ligne 570: | ||
| </ | </ | ||
| - | / | + | ==>/ |
| < | < | ||
| service director { | service director { | ||
| Ligne 558: | Ligne 598: | ||
| </ | </ | ||
| - | etc/ | + | ==>etc/ |
| < | < | ||
| mail_location = maildir: | mail_location = maildir: | ||
| Ligne 571: | Ligne 611: | ||
| </ | </ | ||
| - | / | + | ==>/ |
| < | < | ||
| service imap-login { | service imap-login { | ||
| Ligne 630: | Ligne 670: | ||
| </ | </ | ||
| - | / | + | ==>/ |
| < | < | ||
| ssl = required | ssl = required | ||
| Ligne 639: | Ligne 679: | ||
| </ | </ | ||
| - | / | + | ==>/ |
| < | < | ||
| postmaster_address = postmaster@domaine.tld | postmaster_address = postmaster@domaine.tld | ||
| Ligne 653: | Ligne 693: | ||
| </ | </ | ||
| - | / | + | ==>/ |
| < | < | ||
| namespace inbox { | namespace inbox { | ||
| Ligne 679: | Ligne 719: | ||
| </ | </ | ||
| - | / | + | ==>/ |
| < | < | ||
| protocol imap { | protocol imap { | ||
| Ligne 686: | Ligne 726: | ||
| </ | </ | ||
| - | / | + | ==>/ |
| < | < | ||
| protocol lmtp { | protocol lmtp { | ||
| Ligne 694: | Ligne 734: | ||
| </ | </ | ||
| - | / | + | ==>/ |
| < | < | ||
| protocols = $protocols sieve | protocols = $protocols sieve | ||
| Ligne 719: | Ligne 759: | ||
| </ | </ | ||
| - | / | + | ==>/ |
| < | < | ||
| protocol pop3 { | protocol pop3 { | ||
| Ligne 726: | Ligne 766: | ||
| </ | </ | ||
| - | / | + | ==>/ |
| < | < | ||
| plugin { | plugin { | ||
| Ligne 734: | Ligne 774: | ||
| </ | </ | ||
| - | / | + | ==>/ |
| < | < | ||
| plugin { | plugin { | ||
| Ligne 750: | Ligne 790: | ||
| </ | </ | ||
| - | / | + | ==>/ |
| < | < | ||
| plugin { | plugin { | ||
| Ligne 771: | Ligne 811: | ||
| </ | </ | ||
| - | / | + | ==>/ |
| < | < | ||
| plugin { | plugin { | ||
| Ligne 777: | Ligne 817: | ||
| </ | </ | ||
| - | / | + | ==>/ |
| < | < | ||
| passdb { | passdb { | ||
| Ligne 788: | Ligne 828: | ||
| </ | </ | ||
| - | / | + | ==>/ |
| < | < | ||
| passdb { | passdb { | ||
| Ligne 797: | Ligne 837: | ||
| </ | </ | ||
| - | / | + | ==>/ |
| < | < | ||
| passdb { | passdb { | ||
| Ligne 809: | Ligne 849: | ||
| </ | </ | ||
| - | / | + | ==>/ |
| < | < | ||
| passdb { | passdb { | ||
| Ligne 819: | Ligne 859: | ||
| </ | </ | ||
| - | / | + | ==>/ |
| < | < | ||
| passdb { | passdb { | ||
| Ligne 831: | Ligne 871: | ||
| </ | </ | ||
| - | / | + | ==>/ |
| < | < | ||
| passdb { | passdb { | ||
| Ligne 843: | Ligne 883: | ||
| </ | </ | ||
| - | / | + | ==>/ |
| < | < | ||
| passdb { | passdb { | ||
| Ligne 853: | Ligne 893: | ||
| </ | </ | ||
| - | / | + | ==>/ |
| < | < | ||
| passdb { | passdb { | ||
| Ligne 865: | Ligne 905: | ||
| </ | </ | ||
| - | Les autres fichiers utiles tels / | + | ==== 4.2. Gestion de la db ==== |
| + | Les autres fichiers utiles tels ==>/ | ||
| < | < | ||
| default_pass_scheme = MD5 | default_pass_scheme = MD5 | ||
| Ligne 889: | Ligne 930: | ||
| </ | </ | ||
| - | / | + | ==>/ |
| < | < | ||
| connect = host=127.0.0.1 dbname=DB user=USER password=PWD | connect = host=127.0.0.1 dbname=DB user=USER password=PWD | ||
| Ligne 915: | Ligne 956: | ||
| </ | </ | ||
| - | / | + | ==>/ |
| < | < | ||
| driver = mysql | driver = mysql | ||
| Ligne 925: | Ligne 966: | ||
| </ | </ | ||
| + | ==== 4.3. scripts utiles ==== | ||
| Il faut aussi des scripts utiles: | Il faut aussi des scripts utiles: | ||
| - | / | + | ==>/ |
| < | < | ||
| #!/bin/sh | #!/bin/sh | ||
| Ligne 939: | Ligne 981: | ||
| </ | </ | ||
| - | / | + | ==>/ |
| < | < | ||
| #!/bin/sh | #!/bin/sh | ||
| Ligne 950: | Ligne 992: | ||
| Your mailbox is now $PERCENT% full. | Your mailbox is now $PERCENT% full. | ||
| EOF | EOF | ||
| + | </ | ||
| + | |||
| + | ==== 4.4 antispam ==== | ||
| + | Pour l' | ||
| + | ==>/ | ||
| + | < | ||
| + | require [" | ||
| + | |||
| + | if environment :matches " | ||
| + | set " | ||
| + | } | ||
| + | |||
| + | if string " | ||
| + | stop; | ||
| + | } | ||
| + | |||
| + | if environment :matches " | ||
| + | set " | ||
| + | } | ||
| + | |||
| + | pipe :copy " | ||
| + | </ | ||
| + | |||
| + | ==>/ | ||
| + | < | ||
| + | require [" | ||
| + | |||
| + | if environment :matches " | ||
| + | set " | ||
| + | } | ||
| + | |||
| + | pipe :copy " | ||
| + | </ | ||
| + | |||
| + | ==>/ | ||
| + | < | ||
| + | #!/bin/bash | ||
| + | |||
| + | # rspamd client reads piped ham message from the standard input | ||
| + | exec / | ||
| + | </ | ||
| + | |||
| + | ==>/ | ||
| + | < | ||
| + | #!/bin/bash | ||
| + | |||
| + | # rspamd client reads piped spam message from the standard input | ||
| + | exec / | ||
| </ | </ | ||
| ===== 5. nginx et uwsgi ===== | ===== 5. nginx et uwsgi ===== | ||
| + | ==== 5.1. configuration du domaine principal ==== | ||
| Le domaine principal mail.domaine.tld sera configuré de cette façon: | Le domaine principal mail.domaine.tld sera configuré de cette façon: | ||
| < | < | ||
| Ligne 1018: | Ligne 1109: | ||
| </ | </ | ||
| + | ==== 5.2. uwsgi ==== | ||
| et le fichier nécessaire pour uwsgi (à adapter à votre utilisation): | et le fichier nécessaire pour uwsgi (à adapter à votre utilisation): | ||
| < | < | ||
| Ligne 1035: | Ligne 1127: | ||
| ===== 6. Rspamd ===== | ===== 6. Rspamd ===== | ||
| + | ==== 6.1. Configuration ==== | ||
| Les fichiers de configuration de rspamd ne doivent pas être modifiés, il faut soit les compléter (dossier local.d) ou les remplacer (override.d), | Les fichiers de configuration de rspamd ne doivent pas être modifiés, il faut soit les compléter (dossier local.d) ou les remplacer (override.d), | ||
| - | / | + | ==>/ |
| < | < | ||
| worker " | worker " | ||
| Ligne 1177: | Ligne 1270: | ||
| ==> / | ==> / | ||
| - | </code> | + | < |
| # If false, messages with empty envelope from are not signed | # If false, messages with empty envelope from are not signed | ||
| allow_envfrom_empty = true; | allow_envfrom_empty = true; | ||
| Ligne 1610: | Ligne 1703: | ||
| enable_password = " | enable_password = " | ||
| </ | </ | ||
| + | q1 et q2 sont les mots de passe à modifier. | ||
| + | |||
| + | ==== 6.2. Commandes utiles ==== | ||
| + | Changer les mots de passe q1 et q2: | ||
| + | < | ||
| + | rspamadm pw | ||
| + | </ | ||
| + | |||
| + | Générer une clef privée qui doit être absolument être lisible par l' | ||
| + | < | ||
| + | rspamadm dkim_keygen -s ' | ||
| + | </ | ||
| + | avec l' | ||
mail.1509821958.txt.gz · Dernière modification : de mirtouf
