buluma.postfix
Rôle Ansible postfix
Installez et configurez Postfix sur votre système.
GitHub | Version | Problèmes | Demande de tirage | Téléchargements |
---|---|---|---|---|
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
- paquets pip listés dans requirements.txt.
É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 | ||
buluma.core_dependencies |
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 :
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
Licence
Informations sur l'auteur
Install and configure postfix on your system.
ansible-galaxy install buluma.postfix