Prérequis
Journal des modifications
13/04/2024: DKIM passage sur Header => https://pmg.proxmox.com/wiki/index.php/Roadmap#Proxmox_Mail_Gateway_8.1
20/11/2023: Changement pour auto-whitelists et Bayesian filter => https://pmg.proxmox.com/wiki/index.php/Upgrade_from_7_to_8#Breaking_Changes
17/11/2023: Ajout de domaines dans DNSBL Sites et modification du Thresold
Configuration
Network/Time
- Time zone = Europe/Paris
- Search domain = domain.tld
- DNS server 1 = 127.0.0.1
Options
- Send daily admin reports = Yes
- Use advanced statistic filters = Yes
- User statistic lifetime (days) = 7
- Administrator Email = email@domain.tld
- HTTP proxy = none
Mail Proxy
Relaying
- Default Relay = subdomain.domain.tld
- Relay Port = 25
- Relay Protocol = smtp
- Disable MX lookup (SMTP) = No
- Smarthost = none
Relay Domains
- Ajouter la liste des domaines à filtrer
Options
- Message Size (bytes) = 20971520
- Reject Unknown Clients = Yes
- Reject Unknown Senders = Yes
- SMTP HELO checks = Yes
- DNSBL Sites = zen.spamhaus.org, bl.spamcop.net, psbl.surriel.com, spamrbl.imp.ch, noptr.spamrats.com, dnsbl.sorbs.net, bl.spameatingmonkey.net, ix.dnsbl.manitu.net, b.barracudacentral.org, truncate.gbudb.net, bl.blocklist.de
- DNSBL Thresold = 2
- Verify Receivers = Yes – 550 (Il faut bien avoir configurer Exchange pour qu’il fasse lui aussi la vérification: créer l’article)
- Use Greylisting for IPv4 = No
- Use SPF = Yes
- Hide Internal Hosts = Yes
- SMTPD Banner = subdomain.domain.tld
- Send NDR on Blocked E-Mails = Yes
- Before Queue Filtering = Yes
Transports
Il faut indiquer le serveur interne vers lequel les emails sont envoyés pour chaque domaine de la liste des domaines qui sont filtrés.
- Ajouter la liste des domaines dans le filtrage
- Host = IP ou FQDN du serveur de réception
- Protocol = SMTP
- Port = 25 ou 2525 (en fonction de si Exchange gère la vérification des adresses)
Networks
Il faut indiquer les IP qui sont autorisées à envoyer des emails par PMG
- IP/MASK
TLS
- Enable TLS = Yes
- Enable TLS Logging = Yes
- Add TLS received header = Yes
- TLS Destination Policy = Ajouter la liste des domaines qui sont filtrés avec la valeur « Encrypt »
DKIM
- Enable DKIM Signing = Yes
- Selector = Ajouter un mot pour l’identifier et une « Key Size » de 2048
- Get Signing Domain From = Header
- Sign all Outgoing Mail = Yes
- Sign Domains = Ajouter la liste des domaines qui sont filtrés
Spam Detector
Options
- Use auto-whitelists = No
- Use Bayesian filter = No
- Use RBL checks = Yes
- Use Razor2 checks = Yes
- Max Spam Size (bytes) = 262144
- Languages = en eu nl ga is no ca de es gd it sv el fr pt
- Backscatter Score = 0
- Heuristic Score = 3
Quanrantine
- Lifetime (days) = 7
- Authentication mode = LDAP or Ticket
- User Spamreport Style = Custom
- Quarantine Host = none
- Quarantine port = Default
- EMail ‘From:’ = email@domain.tld
- View images = Yes
- Allow HREFs = Yes
Virus Detector
Options
- Block encrypted archives and documents = No
- Max recursion = 5
- Max files = 1000
- Max file size = 25000000
- Max scan size = 100000000
User Management
LDAP
On va mettre en place une synchronisation avec un LDAP Active Directory pour permettre aux utilisateurs de se connecter à l’espace de gestion de leur quarantaine.
- Profil Name = Donner un nom
- Protocol = LDAP
- Server = subdomain.domain.tld
- Port = 389
- User name = Compte pour consultation sur l’AD
- Password = Mot de passe du compte
- Base DN = OU=Nom-OU,DC=domain,DC=lan (à adapter avec les valeurs de l’AD)
- EMail attribute name(s) = proxyAddresses (pour récupérer les alias et l’email)
- Account attribute name = sAMAccountName
Fetchmail
Permet de récupérer les emails sur un circuit de secours, s’il y en a un.
- Server = subdomain.domain.tld
- Protocol = imap
- Port = 143
- Username = Email du compte à récupérer
- Password = Mot de passe du compte à récupérer
- Deliver to = Adresse qui va recevoir l’email
- Interval = 1
Certificates
ACME Accounts/Challenges
On ajoute un compte pour que PMG fasse les demandes de certificats au près de Let’s Encrypt.
- Account Name = default ou le personnaliser
- E-Mail = email@domain.tld
- Accept TOS = cocher
Certificates
On ajoute deux demandes pour l’API et le SMTP.
- Challenge Type = HTTP
- Domaine = hostname.domain.tld
- Usage = API
Menu Mail Filter
On commence par rajouter des « Action Objects » qui seront utilisés dans les règles.
Action Objects
Add > Header attribute
- Name = Add Header Spam Tag
- Comment = Add spam tag in header to move email in junk folder with exchange rule
- Field = X-SPAMTAG
- Value = Yes
Add > Notification
- Name = Notify admin
- Comment = Send notification to sysadmin
- Receiver = email@domain.tld
- Subject = Notification: __SUBJECT__
- Body =
Proxmox Notification:
Sender IP: __SENDER_IP__
Sender: __SENDER__
Receiver: __RECEIVERS__
Targets: __TARGETS__
Subject: __SUBJECT__
Matching Rule: __RULE__
__RULE_INFO__
__VIRUS_INFO__
__SPAM_INFO__ - Attach orig. Mail = Coché
What Objects
Create
Name = Spam (Level 7)
Description = Matches possible spam mail
Add Spam Filter = Level 7
RULES
Liste des règles par défaut à activer:
- Blacklist
- Block Viruses => renommer en Block IN Viruses
- Virus Alert => renommer en Block OUT Viruses
- Block Dangerous Files
- Modify Header
- Whitelist
- Block Spam (Level 10) => renommer en Block Spam (Level 7) et modifier les « Used Objects » pour mettre Spam (Level 7)
- Quarantine/Mark Spam (Level 3) => renommer en Mark Spam (Level 3) et modifier les « Used Objects » pour ajouter « Add Header Spam Tag » et enlever « Quarantine »
- Block outgoing Spam => Passer à une priority de 95 et modifier les « Used Objects » pour mettre « Spam (Level 5) » et enlever « Spam (Level 3) »
Règle à créer:
- Name = Notify admin outgoing Spam (Level 3)
- Priority = 70
- Direction = Out
- Active = Yes
- Action Objets = Notify admin
- What Objets = Spam (Level 3)
Personnalisation
Il est possible de personnaliser certaines parties de PMG directement à l’aide des fichiers de configuration : Voir l’article