robertdebock.postfix
Rôle Ansible postfix
Installez et configurez postfix sur votre système.
GitHub | GitLab | Téléchargements | Version |
---|---|---|---|
Exemple de Playbook
Cet exemple est tiré de molecule/default/converge.yml
et est testé à chaque push, pull request et release.
---
- name: Converger
hosts: all
become: true
gather_facts: true
roles:
- role: robertdebock.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 : ("adresse e-mail" et "mot de passe e-mail" sont des espaces réservés)
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 adresse-email:mot-de-passe-email
La machine doit être préparée. Dans CI, ceci est fait en utilisant molecule/default/prepare.yml
:
---
- name: Préparer
hosts: all
become: true
gather_facts: false
roles:
- role: robertdebock.bootstrap
- role: robertdebock.core_dependencies
Voir aussi une explication complète et un exemple sur l'utilisation de ces rôles.
Variables de 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 obligatoires 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"
# Activez IPv4, et IPv6 si supporté - si uniquement IPV4 mettez ipv4
postfix_inet_protocols: all
# Définir une bannière
postfix_banner: "$myhostname ESMTP $mail_name"
# La destination indique à Postfix quels courriers accepter.
postfix_mydestination: $mydomain, $myhostname, localhost.$mydomain, localhost
# Pour accepter des e-mails 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 en un relais.
# postfix_relay_domains: "$mydestination"
# Si vous souhaitez transférer des e-mails vers un autre serveur de relais central, définissez relayhost.
# utilisez des crochets pour envoyer à l'enregistrement A du relais.
# postfix_relayhost: "[relay.example.com]"
# Définir les restrictions pour recevoir des courriers.
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é SMTP TLS par défaut pour le client SMTP 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 : role: robertdebock.spamassassin) et définissez ces deux variables :
# postfix_spamassassin: enabled
# postfix_spamassassin_user: spamd
# Pour activer clamav, assurez-vous que clamav est installé,
# (indice : role: robertdebock.clamav) et définissez cette variable :
# postfix_clamav: enabled
# Vous pouvez configurer des alias ici. Rediriger typiquement `root` est un bon plan.
# 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 ou non d'utiliser le service local biff.
# postfix_biff: true
# Avec le mail soumis localement, ajoutez la chaîne ".$mydomain" aux adresses qui n'ont pas d'informations ".domain"
# postfix_append_dot_mydomain: false
# Les bases de données d'alias utilisées pour la livraison locale(8)
# postfix_alias_maps: "hash:/etc/aliases"
# Un préfixe que l'agent de livraison virtual(8) ajoute à tous les résultats de chemin obtenus à partir de la table $virtual_mailbox_maps.
# postfix_virtual_mailbox_base: /var/mail
# Tables de consultation optionnelles avec toutes les adresses valides dans les domaines qui correspondent à $virtual_mailbox_domains.
# postfix_virtual_mailbox_maps: mysql:/etc/postfix/mysql-virtual_mailbox_maps.cf
# Postfix est la destination finale pour la liste de domaines spécifiée ; 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 à des adresses dans d'autres domaines locaux ou distants.
# postfix_virtual_alias_domains: "$virtual_alias_maps"
# Tables de consultation optionnelles qui aliasent des adresses ou des domaines spécifiques à d'autres adresses locales ou distantes.
# postix_virtual_alias_maps: "$virtual_maps"
# Tables de consultation avec l'ID utilisateur par destinataire que l'agent de livraison virtual(8) utilise lors de l'écriture dans la boîte aux lettres du destinataire.
# postfix_virtual_uid_maps: "static:2000"
# Tables de consultation avec l'ID de groupe par destinataire pour la livraison de boîtes aux lettres virtual(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 pour le serveur SMTP Postfix ; à partir de Postfix 2.3, la liste des fonctionnalités disponibles dépend de l'implémentation du serveur SASL qui est sélectionnée avec smtpd_sasl_type.
# postfix_smtpd_sasl_security_options: noanonymous
# Signaler 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 des 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 des certificats CA (format PEM) des CA racines de confiance pour signer soit les certificats de client SMTP distants ou les certificats CA intermédiaires.
# postfix_smtpd_tls_CAfile: /etc/letsencrypt/live/smtp.syhosting.ch/chain.pem
# Fichier avec le certificat RSA du serveur SMTP Postfix au format PEM.
# postfix_smtpd_tls_cert_file: /etc/letsencrypt/live/smtp.syhosting.ch/cert.pem
# Fichier local avec le certificat RSA du serveur SMTP Postfix au format PEM qui doit être copié vers l'hôte cible.
# postfix_smtpd_tls_cert_file_source: ./certs/cert.pem
# Fichier avec la clé privée RSA du serveur SMTP Postfix au 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 Postfix au format PEM qui doit être copié vers l'hôte cible.
# postfix_smtpd_tls_key_file_source: ./certs/privkey.pem
# Demandez au serveur SMTP Postfix de produire des en-têtes de message Received : qui incluent des informations sur le protocole et le cipher utilisé, ainsi que le nom commun du client SMTP distant et le nom commun de l'émetteur du certificat client.
# postfix_smtpd_tls_received_header: true
# Le niveau de sécurité SMTP TLS par défaut pour le client SMTP Postfix ; lorsqu'une valeur non vide est spécifiée, cela override 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 de fournir un certificat client.
# postfix_smtpd_tls_ask_ccert: true
# Activez la journalisation supplémentaire de l'activité TLS du serveur SMTP Postfix.
# postfix_smtpd_tls_loglevel: 1
# Nom du fichier contenant le cache de session TLS optionnel du serveur SMTP Postfix.
# postfix_smtpd_tls_session_cache_database: btree:/var/lib/postfix/smtpd_tls_session_cache
# Un fichier contenant des certificats CA des CA racines de confiance pour signer soit les certificats de serveur SMTP distants ou les certificats CA intermédiaires.
# postfix_smtp_tls_CAfile: /etc/letsencrypt/live/smtp.syhosting.ch/chain.pem
# Fichier avec le certificat RSA du client SMTP Postfix au format PEM.
# postfix_smtp_tls_cert_file: /etc/letsencrypt/live/smtp.syhosting.ch/cert.pem
# Fichier avec la clé privée RSA du client SMTP Postfix au 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 Postfix.
# postfix_smtp_tls_session_cache_database: btree:/var/lib/postfix/smtp_tls_session_cache
# La source d'entropie externe pour le générateur de nombres aléatoires pseudo-aléatoires (PRNG) tlsmgr(8) en mémoire.
# postfix_tls_random_source: dev:/dev/urandom
# Protocoles TLS acceptés par le serveur SMTP Postfix avec chiffrement TLS obligatoire.
# postfix_smtpd_tls_mandatory_protocols: TLSv1
# Protocoles TLS que le client SMTP Postfix utilisera avec chiffrement TLS obligatoire.
# postfix_smtp_tls_mandatory_protocols: TLSv1
# Le transport de livraison de courrier par défaut et la destination suivante pour la livraison finale vers les domaines répertoriés avec $virtual_mailbox_domains.
# postfix_virtual_transport: maildrop1
# Chemin optionnel d'un fichier de boîte aux lettres relatif au répertoire home 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
# Exiger 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é à effectuer à 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
# Considérer un message de bounce comme non livrable lorsque la livraison échoue avec une erreur temporaire, et que le temps dans la file d'attente a atteint la limite bounce_queue_lifetime.
# postfix_bounce_queue_lifetime: 5d
# L'emplacement des fichiers README de Postfix qui décrivent comment construire, configurer ou opérer 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 opérer 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 service aux numéros de port comme `2525`.
# Spécifiez soit 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 répertorié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 | GitLab |
---|---|---|
robertdebock.bootstrap | ||
robertdebock.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 |
---|---|
EL | 9 |
Debian | tous |
Fedora | tous |
Ubuntu | tous |
La version minimale d'Ansible requise est 2.12, des 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 signaler sur GitHub.
Licence
Informations sur l'auteur
Veuillez envisager de me soutenir.
Install and configure postfix on your system.
ansible-galaxy install robertdebock.postfix