buluma.postfix

Rôle Ansible postfix

Installez et configurez Postfix sur votre système.

GitHub Version Problèmes Demande de tirage Téléchargements
github Version Issues PullRequests Ansible Role

Exemple de Playbook

Cet exemple est tiré de molecule/default/converge.yml et est testé à chaque envoi, demande de tirage et version.

---
- name: Converger
  hosts: all
  become: true
  gather_facts: true

  roles:
    - role: buluma.postfix
      # postfix_relayhost: "[relay.example.com]"
      postfix_myhostname: "smtp.example.com"
      postfix_mydomain: "example.com"
      postfix_myorigin: "example.com"
      postfix_mynetworks:
        - 127.0.0.0/8
        - 192.168.0.0/16
      postfix_aliases:
        - name: root
          destination: [email protected]
      # Paramètres Ziggo: ("email-address" et "email-password" sont des éléments fictifs)
      postfix_relayhost: "[smtp.ziggo.nl]:587"
      postfix_smtp_sasl_auth_enable: true
      postfix_smtp_sasl_password_map: "/etc/postfix/relay_pass"
      postfix_smtp_sasl_security_options: ""
      postfix_smtp_tls_wrappermode: false
      postfix_smtp_tls_security_level: may
      postfix_smtp_sasl_password_map_content: |
        [smtp.ziggo.nl]:587 email-address:email-password

La machine doit être préparée. Dans CI, cela se fait en utilisant molecule/default/prepare.yml:

---
- name: Préparer
  hosts: all
  become: true
  gather_facts: false

  roles:
    - role: buluma.bootstrap
    - role: buluma.core_dependencies

Voir aussi une explication complète et un exemple sur comment utiliser ces rôles.

Variables du rôle

Les valeurs par défaut des variables sont définies dans defaults/main.yml:

---
# fichier par défaut pour postfix

# Ces paramètres sont requis dans postfix.
postfix_myhostname: "{{ ansible_fqdn }}"
postfix_mydomain: "{{ ansible_domain | default('localdomain', true) }}"
postfix_myorigin: "{{ ansible_domain | default('localdomain', true) }}"

# Pour "écouter" sur des interfaces publiques, définissez inet_interfaces sur quelque chose comme
# "all" ou le nom de l'interface, tel que "eth0".
postfix_inet_interfaces: "loopback-only"

# Activer IPv4, et IPv6 si pris en charge - si seulement IPV4 régler sur ipv4
postfix_inet_protocols: all

# Définir une bannière
postfix_banner: "$myhostname ESMTP $mail_name"

# La destination indique à Postfix quels mails accepter.
postfix_mydestination: $mydomain, $myhostname, localhost.$mydomain, localhost

# Pour accepter des emails d'autres machines, définissez mynetworks sur quelque chose comme
# "- 192.168.0.0/24".
postfix_mynetworks:
  - 127.0.0.0/8

# Ces paramètres changent le rôle du serveur postfix à un hôte de relais.
# postfix_relay_domains: "$mydestination"

# Si vous souhaitez transférer des emails vers un autre serveur de relais central, réglez relayhost.
# utilisez des crochets pour envoyer à l'enregistrement A du relais.
# postfix_relayhost: "[relay.example.com]"

# Définir les restrictions pour recevoir des mails.
postfix_smtpd_recipient_restrictions:
  - permit_mynetworks
  - permit_sasl_authenticated
  - reject_unauth_destination
  - reject_invalid_hostname
  - reject_non_fqdn_hostname
  - reject_non_fqdn_sender
  - reject_non_fqdn_recipient
  - reject_unknown_sender_domain
  - reject_unknown_recipient_domain
  - reject_rbl_client sbl.spamhaus.org
  - reject_rbl_client cbl.abuseat.org
  - reject_rbl_client dul.dnsbl.sorbs.net
  - permit

postfix_smtpd_sender_restrictions:
  - reject_unknown_sender_domain

# Le niveau de sécurité TLS SMTP par défaut pour le client SMTP de Postfix
# Les valeurs valides sont : dane, encrypt, fingerprint, may, none, secure, verify
postfix_smtp_tls_security_level: none

# Pour activer spamassassin, assurez-vous que spamassassin est installé,
# (indice : rôle : buluma.spamassassin) et définissez ces deux variables :
# postfix_spamassassin: enabled
# postfix_spamassassin_user: spamd

# Pour activer clamav, assurez-vous que clamav est installé,
# (indice : rôle : buluma.clamav) et définissez cette variable :
# postfix_clamav: enabled

# Vous pouvez configurer des alias ici. Typiquement, rediriger `root` est une bonne idée.
# postfix_aliases:
#   - name: root
#     destination: [email protected]

# Vous pouvez configurer des contrôles d'accès pour les expéditeurs ici.
# postfix_sender_access:
#   - domain: gooddomain.com
#     action: OK
#   - domain: baddomain.com
#     action: REJECT

# Vous pouvez configurer des contrôles d'accès pour les destinataires ici.
# postfix_recipient_access:
#   - domain: gooddomain.com
#     action: OK
#   - domain: baddomain.com
#     action: REJECT

# Vous pouvez désactiver les versions SSL/TLS ici.
# postfix_tls_protocols: '!SSLv2, !SSLv3, !TLSv1, !TLSv1.1'

# Vous pouvez fournir un modèle Jinja2 pour transport_maps ici
# postfix_transport_maps_template: /path/to/transport.j2

# Vous pouvez fournir un modèle Jinja2 pour header_checks ici
# postfix_header_checks_template: /path/to/header_checks.j2

# Que ce soit utiliser ou non le service biff local.
# postfix_biff: true

# Avec un mail soumis localement, ajoutez la chaîne ".$mydomain" à des adresses qui n'ont pas d'informations ".domain"
# postfix_append_dot_mydomain: false

# Les bases de données des alias qui sont utilisées pour la livraison locale(8)
# postfix_alias_maps: "hash:/etc/aliases"

# Un préfixe que l'agent de livraison virtuel(8) ajoute à tous les résultats de chemin provenant des recherches du tableau $virtual_mailbox_maps.
# postfix_virtual_mailbox_base: /var/mail

# Tableaux de recherche optionnels avec toutes les adresses valides dans les domaines correspondant à $virtual_mailbox_domains.
# postfix_virtual_mailbox_maps: mysql:/etc/postfix/mysql-virtual_mailbox_maps.cf

# Postfix est la destination finale pour la liste spécifiée de domaines ; le mail est livré via le transport de livraison $virtual_transport
# postfix_virtual_mailbox_domains: "$virtual_mailbox_maps"

# Postfix est la destination finale pour la liste spécifiée de domaines d'alias virtuels, c'est-à-dire, des domaines pour lesquels toutes les adresses sont aliasées vers des adresses dans d'autres domaines locaux ou distants.
# postfix_virtual_alias_domains: "$virtual_alias_maps"

# Bases de recherche optionnelles qui aliasent des adresses mail spécifiques ou des domaines à d'autres adresses locales ou distantes.
# postix_virtual_alias_maps: "$virtual_maps"

# Tableaux de recherche avec l'ID utilisateur par destinataire que l'agent de livraison virtuel(8) utilise lors de l'écriture dans la boîte aux lettres du destinataire.
# postfix_virtual_uid_maps: "static:2000"

# Tableaux de recherche avec l'ID de groupe par destinataire pour la livraison de boîtes aux lettres virtuelles(8).
# postfix_virtual_gid_maps: "static:2000"

# Activer l'authentification SASL dans le serveur SMTP Postfix.
# postfix_smtpd_sasl_auth_enable: true

# Le nom du domaine local d'authentification SASL du serveur SMTP Postfix.
# postfix_smtpd_sasl_local_domain: $myhostname

# Options de sécurité SASL du serveur SMTP de Postfix ; à partir de Postfix 2.3, la liste des fonctionnalités disponibles dépend de l'implémentation du serveur SASL sélectionnée avec smtpd_sasl_type.
# postfix_smtpd_sasl_security_options: noanonymous

# Signalez le nom d'utilisateur authentifié SASL dans l'en-tête du message reçu smtpd(8).
# postfix_smtpd_sasl_authenticated_header: true

# Activer l'interopérabilité avec les clients SMTP distants qui mettent en œuvre une version obsolète de la commande AUTH (RFC 4954).
# postfix_broken_sasl_auth_clients: false

# Un fichier contenant (format PEM) les certificats CA des CA racines de confiance pour signer soit les certificats des clients SMTP distants, soit les certificats intermédiaires de CA.
# postfix_smtpd_tls_CAfile: /etc/letsencrypt/live/smtp.syhosting.ch/chain.pem

# Fichier contenant le certificat RSA du serveur SMTP de Postfix en format PEM.
# postfix_smtpd_tls_cert_file: /etc/letsencrypt/live/smtp.syhosting.ch/cert.pem

# Fichier local avec le certificat RSA du serveur SMTP de Postfix en format PEM qui sera copié sur l'hôte cible.
# postfix_smtpd_tls_cert_file_source: ./certs/cert.pem

# Fichier contenant la clé privée RSA du serveur SMTP de Postfix en format PEM.
# postfix_smtpd_tls_key_file: /etc/letsencrypt/live/smtp.syhosting.ch/privkey.pem

# Fichier local avec la clé privée RSA du serveur SMTP de Postfix en format PEM qui sera copiée sur l'hôte cible.
# postfix_smtpd_tls_key_file_source: ./certs/privkey.pem

# Demandez au serveur SMTP de Postfix de produire des en-têtes de message Reçu : qui incluent des informations sur le protocole et le cipher utilisé, ainsi que le CommonName du client SMTP distant et le CommonName de l'émetteur du certificat.
# postfix_smtpd_tls_received_header: true

# Le niveau de sécurité TLS SMTP par défaut pour le client SMTP de Postfix ; lorsqu'une valeur non vide est spécifiée, cela remplace les paramètres obsolètes smtp_use_tls, smtp_enforce_tls et smtp_tls_enforce_peername.
# postfix_smtpd_tls_security_level: may

# Demandez à un client SMTP distant un certificat client.
# postfix_smtpd_tls_ask_ccert: true

# Activer une journalisation supplémentaire du serveur SMTP de Postfix pour l'activité TLS.
# postfix_smtpd_tls_loglevel: 1

# Nom du fichier contenant le cache de session TLS optionnel du serveur SMTP de Postfix.
# postfix_smtpd_tls_session_cache_database: btree:/var/lib/postfix/smtpd_tls_session_cache

# Un fichier contenant les certificats CA des CA racines de confiance pour signer soit les certificats des serveurs SMTP distants, soit les certificats intermédiaires de CA.
# postfix_smtp_tls_CAfile: /etc/letsencrypt/live/smtp.syhosting.ch/chain.pem

# Fichier contenant le certificat RSA du client SMTP de Postfix en format PEM.
# postfix_smtp_tls_cert_file: /etc/letsencrypt/live/smtp.syhosting.ch/cert.pem

# Fichier contenant la clé privée RSA du client SMTP de Postfix en format PEM.
# postfix_smtp_tls_key_file: /etc/letsencrypt/live/smtp.syhosting.ch/privkey.pem

# Nom du fichier contenant le cache de session TLS optionnel du client SMTP de Postfix.
# postfix_smtp_tls_session_cache_database: btree:/var/lib/postfix/smtp_tls_session_cache

# Source d'entropie externe pour le pool de générateurs de nombres pseudo aléatoires en mémoire tlsmgr(8) (PRNG).
# postfix_tls_random_source: dev:/dev/urandom

# Protocoles TLS acceptés par le serveur SMTP de Postfix avec chiffrement TLS obligatoire.
# postfix_smtpd_tls_mandatory_protocols: TLSv1

# Protocoles TLS que le client SMTP de Postfix utilisera avec chiffrement TLS obligatoire.
# postfix_smtp_tls_mandatory_protocols: TLSv1

# Le transport de livraison de mail par défaut et la destination suivante pour la livraison finale aux domaines listés avec $virtual_mailbox_domains.
# postfix_virtual_transport: maildrop1

# Chemin optionnel d'un fichier de boîte aux lettres relatif au répertoire personnel d'un utilisateur local(8).
# postfix_home_mailbox: Maildir/

# La taille maximale en octets d'un message, y compris les informations sur l'enveloppe.
# postfix_message_size_limit: 10240000

# Exige qu'un client SMTP distant se présente avec la commande HELO ou EHLO avant d'envoyer la commande MAIL ou d'autres commandes nécessitant la négociation EHLO.
# postfix_smtpd_helo_required: false

# L'unité de temps sur laquelle les taux de connexion des clients et d'autres taux sont calculés.
# postfix_anvil_rate_time_unit: 60s

# Le nombre maximal de tentatives de connexion qu'un client est autorisé à faire à ce service par unité de temps.
# postfix_smtpd_client_connection_rate_limit: 10

# Combien de connexions simultanées un client est autorisé à faire à ce service.
# postfix_smtpd_client_connection_count_limit: 10

# Considere un message de retour comme non livrable, lorsque la livraison échoue avec une erreur temporaire, et que le temps passé dans la file d'attente a atteint la limite de bounce_queue_lifetime.
# postfix_bounce_queue_lifetime: 5d

# L'emplacement des fichiers README de Postfix qui décrivent comment construire, configurer ou faire fonctionner un sous-système ou une fonctionnalité de Postfix spécifique.
# postfix_readme_directory: /usr/share/doc/postfix

# L'emplacement des fichiers HTML de Postfix qui décrivent comment construire, configurer ou faire fonctionner un sous-système ou une fonctionnalité de Postfix spécifique.
# postfix_html_directory: /usr/share/doc/postfix/html

# Vous pouvez changer le port sur lequel Postfix écoute.
# Postfix utilise `/etc/services` pour mapper les noms de services aux numéros de port comme `2525`.
# Donc soit spécifiez un numéro de port soit un nom de service comme `smtp`.
postfix_smtp_listen_port: smtp

postfix_smtp_sasl_auth_enable: false
postfix_smtp_sasl_password_map: ""
postfix_smtp_sasl_security_options: ""
postfix_smtp_tls_wrappermode: false
postfix_smtp_sasl_password_map_content: ""

Exigences

État des rôles utilisés

Les rôles suivants sont utilisés pour préparer un système. Vous pouvez préparer votre système d'une autre manière.

Exigence GitHub Version
buluma.bootstrap Ansible Molecule Version
buluma.core_dependencies Ansible Molecule Version

Contexte

Ce rôle fait partie de nombreux rôles compatibles. Consultez la documentation de ces rôles pour plus d'informations.

Voici un aperçu des rôles connexes :

dépendances

Compatibilité

Ce rôle a été testé sur ces images de conteneur:

conteneur tags
Amazon Candidate
EL 9, 8
Debian tous
Fedora tous
Ubuntu tous
Kali tous

La version minimale d'Ansible requise est 2.12, les tests ont été réalisés sur :

  • La version précédente.
  • La version actuelle.
  • La version de développement.

Si vous trouvez des problèmes, veuillez les inscrire sur GitHub

Journal des modifications

Historique du rôle

Licence

Apache-2.0

Informations sur l'auteur

Shadow Walker

À propos du projet

Install and configure postfix on your system.

Installer
ansible-galaxy install buluma.postfix
Licence
apache-2.0
Téléchargements
86.9k
Propriétaire
DevOps Engineer