#SysAdmin #NetAdmin

PMG – Configuration

P

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.

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

par Nathan
#SysAdmin #NetAdmin