« LINUX:Postfix-Services à l'écoute » : différence entre les versions

De WIKI sur Linux (ADB)
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
Aucun résumé des modifications
Ligne 101 : Ligne 101 :
* smtpd_tls_security_level=may : Elle spécifie que le cryptage n'est pas exigé.
* smtpd_tls_security_level=may : Elle spécifie que le cryptage n'est pas exigé.
* smtpd_tls_security_level=encrypt : Elle spécifie que le cryptage est exigé.
* smtpd_tls_security_level=encrypt : Elle spécifie que le cryptage est exigé.
* smtpd_tls_auth_only=yes
* smtpd_tls_auth_only=no
* smtpd_tls_wrappermode=yes
* smtpd_tls_wrappermode=no
* smtpd_relay_restrictions=reject
* smtpd_relay_restrictions=permit_sasl_authenticated,reject : Elle spécifie que la fonctionnalité de Relay n'est acceptée que pour les utilisateur authentifiés. Cette fonction permet qu'un mail arrivant sur le serveur qui n'est pas destiné à une boîte postale locale, peut être envoyé à un autre serveur de messagerie.
* smtpd_client_restrictions=permit_sasl_authenticated,reject : Elle spécifie que l'utilisateur doit s'authentifier pour pouvoir envoyer un mail.
* smtpd_sasl_auth_enable=yes
* smtpd_sasl_security_options=noanonymous
* smtpd_sasl_type=dovecot
* smtpd_sasl_path=private/auth





Version du 18 décembre 2022 à 21:19


retour au menu de Postfix


But

Nous abordons les services classiques qui sont à l'écoute et lancés par Postfix. Ils concernent la réception de mails.


Noms et N° de ports TCP

La liaison entre un n° de port TCP à l'écoute et son nom ne se fait pas comme classiquement par référence avec le fichier "/etc/services". Il se fait via l'option "known_tcp_ports" que l'on peut a ajouter au fichier de configuration de Postfix "/etc/postfix/main.cf".

Il possède un contenu par défaut:


known_tcp_ports = lmtp=24, smtp=25, smtps=submissions=465, submission=587

Par exemple, le port TCP 465 sera reconnu sous le nom "smtps" ou "submissions" (seul un des deux peut être utilisé). Ces noms se retrouvent en première colonne dans le fichier "/etc/postfix/master.cf".

Voici un extrait de ce fichier sans les options associées pour ces trois cas:


smtp       inet  n       -       n       -       -       smtpd
submission inet  n       -       n       -       -       smtpd
smtps      inet  n       -       n       -       -       smtpd

Dans ce cas, la commande:

netstat -ntlp | grep master

donne:


tcp        0      0 0.0.0.0:25              0.0.0.0:*               LISTEN      3649547/master
tcp        0      0 0.0.0.0:587             0.0.0.0:*               LISTEN      3649547/master
tcp        0      0 0.0.0.0:465             0.0.0.0:*               LISTEN      3649547/master


Si on veut ajouter un nouveau port TCP 3587 associé à un nouveau nom que l'on nomme "newport", on modifie cette option dans le fichier "main.cf":


known_tcp_ports = smtp=25, smtps=submissions=465, submission=587, newport=3587

et dans le fichier "master.cf", on ajoute


newport      inet  n       -       n       -       -       smtpd

La commande "netstat" présentera une nouvelle ligne:


tcp        0      0 0.0.0.0:3587            0.0.0.0:*               LISTEN      3649547/master

Note: le service "lmtp" n'a pas été retenu car je ne l'utilise pas en réseau.


Par contre, de la même façon, on peut modifier le nom et/ou le n° de port.

Dans l'exemple, on modifie un nom et un port:

  • le nom "smtps" devient "smtpsecure"
  • le port "587" devient "2587"

L'option dans le fichier "main.cf" devient:


known_tcp_ports = smtp=25, smtpsecure=465, submission=2587

et l'extrait du fichier "master.cf" devient:


smtp       inet  n       -       n       -       -       smtpd
submission inet  n       -       n       -       -       smtpd
smtpsecure inet  n       -       n       -       -       smtpd

Et la commande 'netstat" donne:


tcp        0      0 0.0.0.0:25              0.0.0.0:*               LISTEN      3649547/master
tcp        0      0 0.0.0.0:2587            0.0.0.0:*               LISTEN      3649547/master
tcp        0      0 0.0.0.0:465             0.0.0.0:*               LISTEN      3649547/master

J'ai utilisé cette astuce de modifier un n° de port TCP en production pour être moins facilement visible sur Internet. On peut aussi l'utiliser pour contourner les blocages imposés par notre FAI.

Note: Le n° de process "3649547" est un exemple lié à mon cas.


Configuration spécifique de ces services

Le fichier "/etc/postfix/main.cf" applique sa configuration à tous les services. Mais il est plus judicieux de spécifier certaines options au service concerné. Nous nous concentrerons sur les services de réception de mails usuels: SMTP, SUBMISSION et SMTPS qui utilisent un même démon: "smtpd".

Nous n'allons examiner que certains aspects de base:

  • l’absence de cryptage
  • le cryptage de type STARTTLS
  • le cryptage de type SSL/TLS
  • l'absence d'authentification
  • l'obligation d'authentification

Tous ces cas de figures peuvent être mélangés à volonté.

Ces options se trouvent dans le fichier "/etc/postfix/master.cf" sous la ligne du service concerné en décalage (quelques espaces en début de ligne) et commencent par "-o " comme option. Il est important de noter que derrière l'espace de "-o", il ne peut n'y avoir aucun espace.

Nous utilisons les fonctionnalités Cyrus SASL. Il nous faut installer certains modules:

dnf install cyrus-sasl
dnf install cyrus-sasl-plain

et d'autres, en fonction des fonctionnalités désirées.

Nous n'aborderons pas la nécessité à spécifier dans le fichier "/etc/postfix/main.cf", les clé privée et certificats publiques. Ceci se fait de façon similaires que pour les services Dovecot et Apache. Elles sont reprises au minimum dans les options "smtpd_tls_key_file" et "smtpd_tls_cert_file".


Cryptage

L'absence des options qui suivent, définissent un transfert sans cryptage.

Voici les options retenues:

  • smtpd_tls_security_level=none : Il n'y a pas de cryptage (défaut)
  • smtpd_tls_security_level=may : Elle spécifie que le cryptage n'est pas exigé.
  • smtpd_tls_security_level=encrypt : Elle spécifie que le cryptage est exigé.
  • smtpd_tls_auth_only=yes
  • smtpd_tls_auth_only=no
  • smtpd_tls_wrappermode=yes
  • smtpd_tls_wrappermode=no
  • smtpd_relay_restrictions=reject
  • smtpd_relay_restrictions=permit_sasl_authenticated,reject : Elle spécifie que la fonctionnalité de Relay n'est acceptée que pour les utilisateur authentifiés. Cette fonction permet qu'un mail arrivant sur le serveur qui n'est pas destiné à une boîte postale locale, peut être envoyé à un autre serveur de messagerie.
  • smtpd_client_restrictions=permit_sasl_authenticated,reject : Elle spécifie que l'utilisateur doit s'authentifier pour pouvoir envoyer un mail.
  • smtpd_sasl_auth_enable=yes
  • smtpd_sasl_security_options=noanonymous
  • smtpd_sasl_type=dovecot
  • smtpd_sasl_path=private/auth





retour au menu de Postfix