Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente | |||
technique:adminsys:tips:mail [2021/11/22 22:29] – ↷ Liens modifiés en raison d'un déplacement. qduchemi | technique:adminsys:tips:mail [2021/11/22 23:08] (Version actuelle) – ↷ Liens modifiés en raison d'un déplacement. qduchemi | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | {{indexmenu_n> | ||
+ | ## Permettre aux machines d' | ||
+ | |||
+ | Les machines peuvent avoir besoin d' | ||
+ | |||
+ | * Proxmox pour prévenir de l' | ||
+ | * Debian pour faire une synthèse des mises à jour de sécurité réalisées | ||
+ | * etc | ||
+ | |||
+ | Pour ce faire, on va configurer et configurer Postfix sur les machines, et lui demander d' | ||
+ | |||
+ | < | ||
+ | |||
+ | De la sorte, la machine pourra envoyer ses mails vers n' | ||
+ | |||
+ | Ce tutoriel peut être adapté pour n' | ||
+ | |||
+ | < | ||
+ | |||
+ | On commence par installer les paquets `libsasl2-modules` et `postfix` : | ||
+ | |||
+ | ``` | ||
+ | apt install libsasl2-modules postfix | ||
+ | ``` | ||
+ | |||
+ | < | ||
+ | |||
+ | Il nous faut trois choses : | ||
+ | |||
+ | * Indiquer à Postfix d' | ||
+ | * Indiquer les informations d' | ||
+ | * Ré-écrire l' | ||
+ | |||
+ | ### Configuration Postfix pour relayer les mails locaux | ||
+ | |||
+ | On va commencer par configurer Postfix. | ||
+ | |||
+ | On pourrait se contenter d' | ||
+ | |||
+ | < | ||
+ | |||
+ | On crée le fichier `/ | ||
+ | |||
+ | < | ||
+ | |||
+ | ``` | ||
+ | alias_maps = hash:/ | ||
+ | alias_database = hash:/ | ||
+ | # Hostname of the machine | ||
+ | myhostname = bob.picasoft.net | ||
+ | myorigin = bob.picasoft.net | ||
+ | # Domains " | ||
+ | mydestination = bob.picasoft.net, | ||
+ | |||
+ | # Only authorize local mail sending (won't relay external emails) | ||
+ | mynetworks_style = host | ||
+ | |||
+ | # Rewrite senders | ||
+ | sender_canonical_maps = regexp:/ | ||
+ | |||
+ | # Rewrite FROM header | ||
+ | smtp_header_checks = regexp:/ | ||
+ | |||
+ | # Relay via Picasoft mail server | ||
+ | relayhost = mail.picasoft.net: | ||
+ | |||
+ | # TLS parameters | ||
+ | smtp_use_tls = yes | ||
+ | smtp_sasl_auth_enable = yes | ||
+ | smtp_sasl_security_options = | ||
+ | smtp_sasl_password_maps = hash:/ | ||
+ | smtp_tls_CAfile = / | ||
+ | |||
+ | mailbox_size_limit = 0 | ||
+ | recipient_delimiter = + | ||
+ | # Only listen to localhost, ignore external requests | ||
+ | inet_interfaces = 127.0.0.1 | ||
+ | default_transport = relay | ||
+ | inet_protocols = all | ||
+ | ``` | ||
+ | |||
+ | Remarquer les lignes : | ||
+ | |||
+ | ``` | ||
+ | smtp_sasl_password_maps = hash:/ | ||
+ | sender_canonical_maps = regexp:/ | ||
+ | smtp_header_checks = regexp:/ | ||
+ | ``` | ||
+ | |||
+ | C'est ce qu'on va configurer ensuite. | ||
+ | |||
+ | < | ||
+ | |||
+ | ### Authentification | ||
+ | |||
+ | On indique les informations d' | ||
+ | |||
+ | ``` | ||
+ | mail.picasoft.net < | ||
+ | ``` | ||
+ | |||
+ | On a préalablement créé un utilisateur LDAP `utilisateur` qui a les droits pour envoyer des mails. | ||
+ | |||
+ | < | ||
+ | |||
+ | < | ||
+ | |||
+ | On créé ensuite une *table* correspondant au fichier d' | ||
+ | |||
+ | ```bash | ||
+ | sudo postmap / | ||
+ | ``` | ||
+ | |||
+ | On protège les fichiers : | ||
+ | |||
+ | ```bash | ||
+ | sudo chown postfix: | ||
+ | sudo chmod 600 / | ||
+ | ``` | ||
+ | |||
+ | ### Ré-écriture de l' | ||
+ | |||
+ | On édite le fichier `/ | ||
+ | |||
+ | ``` | ||
+ | /.+/ < | ||
+ | ``` | ||
+ | |||
+ | Ainsi, tous les envois locaux, depuis n' | ||
+ | |||
+ | < | ||
+ | |||
+ | |||
+ | On créé ensuite une *table* correspondant au fichier de ré-écriture : | ||
+ | |||
+ | ```bash | ||
+ | sudo postmap / | ||
+ | ``` | ||
+ | |||
+ | < | ||
+ | |||
+ | ``` | ||
+ | sudo postmap -q random_login regexp:/ | ||
+ | ``` | ||
+ | |||
+ | Si la commande renvoie `< | ||
+ | </ | ||
+ | On protège les fichiers : | ||
+ | |||
+ | ```bash | ||
+ | sudo chown postfix: | ||
+ | sudo chmod 640 / | ||
+ | ``` | ||
+ | |||
+ | Enfin, on crée le fichier `/ | ||
+ | |||
+ | ``` | ||
+ | / | ||
+ | ``` | ||
+ | |||
+ | L' | ||
+ | |||
+ | Puis, pareil que précédemment : | ||
+ | |||
+ | ```bash | ||
+ | sudo postmap / | ||
+ | sudo chown postfix: | ||
+ | sudo chmod 640 / | ||
+ | ``` | ||
+ | |||
+ | ### Finalisation | ||
+ | |||
+ | On active et on démarre Postfix : | ||
+ | |||
+ | ``` | ||
+ | sudo systemctl enable postfix | ||
+ | sudo systemctl start postfix | ||
+ | ``` | ||
+ | |||
+ | On vérifie que tout s'est bien passé : | ||
+ | |||
+ | ``` | ||
+ | systemctl status postfix | ||
+ | ``` | ||
+ | |||
+ | À ce stade, tous les mails envoyés depuis la machine (via `sendmail` par exemple) qui sont à destination d'un domaine non local sont relayés via le serveur de mail de Picasoft. | ||
+ | |||
+ | ### Test | ||
+ | |||
+ | Le programme `mail` permet d' | ||
+ | |||
+ | ``` | ||
+ | mail -s "Test relai Postfix" | ||
+ | ``` | ||
+ | |||
+ | Supposons que j' | ||
+ | |||
+ | Normalement, | ||
+ | |||
+ | * Postfix accepte l' | ||
+ | * Postfix ré-écrit l' | ||
+ | * Postfix ré-écrit le header `FROM` en `< | ||
+ | * Comme le domaine de sortie `etu.utc.fr` est différent de `< | ||
+ | * Il se sert des identifiants donnés pour le compte `bob`, dans `sasl_auth` | ||
+ | * Le serveur mail de Picasoft reçoit une demande d' | ||
+ | * Ce même serveur reçoit alors une soumission de mail. Il compare l' | ||
+ | * Il relait le mail au serveur de destination (`utc.fr`). | ||
+ | |||
+ | Dans mon cas, pour mes tests, j'ai envoyé un mail de toutes les machines en même temps : | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Tout fonctionne ! :-D |