Gestion des services sendmail dans Oracle® Solaris 11.2

Quitter la vue de l'impression

Mis à jour : Juillet 2014
 
 

Prise en charge de l'exécution de SMTP avec TLS dans la version 8.13 de sendmail

    Les communications entre les serveurs et clients SMTP ne sont généralement pas contrôlées ni de confiance sur l'une ou l'autre extrémité. Ce manque de sécurité peut autoriser un tiers à surveiller et même modifier une communication entre un serveur et un client. SMTP peut utiliser le protocole TLS (Transport Layer Security) dans la version 8.13 de sendmail pour résoudre ce problème. Ce service étendu aux serveurs et clients SMTP fournit les avantages suivants :

  • Communications privées et authentifiées sur Internet

  • Protection contre les écoutes électroniques et les pirates


Remarque - L'implémentation du protocole TLS est basée sur le protocole SSL (Secure Sockets Layer).

    STARTTLS est le mot-clé SMTP qui lance une connexion SMTP sécurisée en utilisant TLS. Cette connexion sécurisée peut se située entre deux serveurs ou entre un serveur et un client. Une connexion sécurisée est définie comme suit :

  • L'adresse e-mail source et l'adresse de destination sont chiffrées.

  • Le contenu du message électronique est chiffré.

    Lorsque le client émet la commande STARTTLS, le serveur répond avec l'un des messages suivants :

  • 220 Ready to start TLS

  • 501 Syntax error (no parameters allowed)

  • 454 TLS not available due to temporary reason

La réponse 220 nécessite que le client lancer la négociation TLS. La réponse 501 indique que le client a lancé la commande STARTTLS à tort. La commande STARTTLS est émise sans paramètres. La réponse 454 nécessite que le client applique des valeurs d'ensemble de règles pour déterminer s'il doit accepter ou maintenir la connexion.

Notez que pour maintenir l'infrastructure SMTP Internet, les serveurs utilisés publiquement ne doivent pas exiger une négociation TLS. Toutefois, un serveur qui est utilisé de manière exclusive peut exiger que le client effectue une négociation TLS. Dans de tels cas, le serveur renvoie la réponse suivante :

530 Must issue a STARTTLS command first

La réponse 530 indique au client d'émettre la commande STARTTLS pour l'établissement d'une connexion.

Le serveur ou le client peut refuser une connexion si le niveau d'authentification et de confidentialité n'est pas satisfaisant. En outre, dans la mesure où la plupart des connexions SMTP ne sont pas sûres, le serveur et le client peuvent également conserver une connexion non sécurisée. Le maintien ou le refus d'une connexion est déterminé par la configuration du serveur et du client.

La prise en charge de l'exécution de SMTP avec TLS n'est pas activée par défaut. Le protocole TLS est activé lorsque le client SMTP émet la commande STARTTLS. Avant que le client SMTP puisse émettre cette commande, vous devez configurer les certificats permettant à sendmail d'utiliser TLS. Reportez-vous à la section Configuration de SMTP pour utiliser le protocole TLS. Notez que cette procédure inclut la définition des options d'un nouveau fichier de configuration et la reconstruction de votre fichier sendmail.cf.

Options du fichier de configuration pour l'exécution de SMTP avec TLS

    Le tableau ci-dessous décrit les options du fichier de configuration qui sont utilisées pour exécuter SMTP avec TLS. Si vous déclarez n'importe laquelle de ces options, utilisez l'une des syntaxes suivantes :

  • O OptionName=argument # for the configuration file

  • -O OptionName=argument # for the command line

  • define(`m4Name',argument) # for m4 configuration

Table 3-11  Options du fichier de configuration pour l'exécution de SMTP avec TLS
Option
Description
–CACertFile
Nom de la commande m4 : –confCACERT
Argument : filename
Valeur par défaut : non définie
Identifie le fichier qui contient un certificat de CA.
–CACertPath
Nom de la commande m4 : –confCACERT_PATH
Argument : path
Valeur par défaut : non définie
Identifie le chemin d'accès au répertoire contenant les certificats de CA.
–ClientCertFile
Nom de la commande m4 : –confCLIENT_CERT
Argument : filename
Valeur par défaut : non définie
Identifie le fichier qui contient le certificat du client. Notez que ce certificat est utilisé lorsque sendmail agit comme un client.
–ClientKeyFile
Nom de la commande m4 : –confCLIENT_KEY
Argument : filename
Valeur par défaut : non définie
Identifie le fichier qui contient la clé privée qui appartient au certificat client.
–CRLFile
Nom de la commande m4 : –confCRL
Argument : filename
Valeur par défaut : non définie
Identifie le fichier qui contient l'état de révocation de certificats, qui est utilisé pour l'authentification X.509v3.
–DHParameters
Nom de la commande m4 : –confDH_PARAMETERS
Argument : filename
Valeur par défaut : non définie
Identifie le fichier qui contient les paramètres Diffie-Hellman (DH).
–RandFile
Nom de la commande m4 : –confRAND_FILE
Argument : file:filename ou egd:UNIX socket
Valeur par défaut : non définie
Utilise le préfixe file: pour identifier le fichier qui contient des données aléatoires ou utilise le préfixe egd: pour identifier le socket UNIX. Notez que dans la mesure où le système d'exploitation Oracle Solaris prend en charge le générateur de nombres random, cette option n'a pas besoin d'être spécifiée. Reportez-vous à la page de manuel random(7D).
–ServerCertFile
Nom de la commande m4 : –confSERVER_CERT
Argument : filename
Valeur par défaut : non définie
Identifie le fichier qui contient le certificat du serveur. Ce certificat est utilisé lorsque sendmail agit comme un serveur.
–Timeout.starttls
Nom de la commande m4 : –confTO_STARTTLS
Argument : amount of time
Valeur par défaut : 1h
Définit la durée pendant laquelle le client SMTP attend une réponse à la commande STARTTLS.
–TLSSrvOptions
Nom de la commande m4 : –confTLS_SRV_OPTIONS
Argument : V
Valeur par défaut : non définie
Détermine si le serveur demande un certificat au client. Si cette option est définie sur V, aucune vérification du client n'est effectuée.

    Pour que la commande sendmail prenne en charge l'utilisation de TLS par SMTP, les options suivantes doivent être définies :

  • –CACertPath

  • –CACertFile

  • –ServerCertFile

  • –ClientKeyFile

Les autres options ne sont pas nécessaires.

Macros pour l'exécution de SMTP avec TLS

Le tableau suivant décrit les macros qui sont utilisées par la commande STARTTLS.

Table 3-12  Macros pour l'exécution de SMTP avec TLS
Macro
Description
${cert_issuer}
Contient le nom distinctif (DN) de l'autorité de certification (CA), qui est l'émetteur du certificat.
${cert_subject}
Contient le nom distinctif (DN) de certificat qui est appelé l'objet du certificat.
${cn_issuer}
Contient le nom commun (CN) de l'autorité de certification, qui est l'émetteur du certificat.
${cn_subject}
Contient le nom commun du certificat qui est appelé l'objet du certificat.
${tls_version}
Contient la version du protocole TLS qui est utilisé pour la connexion.
${cipher}
Contient un ensemble d'algorithmes de chiffrement (appelé suite de chiffrement) qui est utilisé pour la connexion.
${cipher_bits}
Conserve, en bits, la longueur de la clé de l'algorithme de chiffrement symétrique qui est utilisé pour la connexion.
${verify}
Contient le résultat de la vérification du certificat qui a été présenté. Les valeurs possibles sont les suivantes :
  • OK – La vérification a réussi.

  • NO – Aucun certificat n'a été présenté.

  • NOT – Aucun certificat n'a été demandé.

  • FAIL – Le certificat qui a été présenté n'a pas pu être vérifié.

  • NONE – La commande STARTTLS n'a pas été exécutée.

  • TEMP – Une erreur momentanée s'est produite.

  • PROTOCOL – Une erreur SMTP s'est produite.

  • SOFTWARE – Le protocole de transfert STARTTLS a échoué.

${server_name}
Contient le nom du serveur qui fournit la connexion SMTP sortante.
${server_addr}
Contient l'adresse du serveur qui fournit la connexion SMTP sortante.

Ensembles de règles pour l'exécution de SMTP avec TLS

Le tableau suivant décrit les ensembles de règles qui déterminent si une connexion SMTP qui utilise TLS doit être acceptée, maintenue ou refusée.

Table 3-13  Ensembles de règles pour l'exécution de SMTP avec TLS
Jeu de de règles
Description
tls_server
Agissant en tant que client, sendmail utilise cet ensemble de règles pour déterminer si le serveur est actuellement pris en charge par TLS.
tls_client
Agissant en tant que serveur, sendmail utilise cet ensemble de règles pour déterminer si le client est actuellement pris en charge par TLS.
tls_rcpt
Cet ensemble de règles nécessite la vérification du MTA du destinataire. Cette restriction du destinataire rend les attaques, telles que l'usurpation DNS, impossibles.
TLS_connection
Cet ensemble de règles vérifie la condition qui est spécifiée par le membre droit de la carte d'accès par rapport aux paramètres de la connexion TLS actuelle.
try_tls
sendmail utilise cet ensemble de règles pour déterminer la faisabilité d'utiliser STARTTLS lors de l'établissement de la connexion à un autre agent MTA. Si l'agent MTA ne peut pas correctement implémenter la commande STARTTLS, STARTTLS n'est pas utilisée.

Pour plus d'informations, reportez-vous au site http://www.sendmail.org/m4/starttls.htmlhttp://www.sendmail.org/m4/starttls.html.

Considérations de sécurité liées à l'exécution de SMTP avec TLS

En tant que protocole de messagerie standard qui définit les logiciels de messagerie qui s'exécute sur Internet, le protocole SMTP n'est pas un mécanisme complet. En raison de cette limitation, la sécurité TLS via SMTP n'inclut pas les agents utilisateur de messagerie. Les agents utilisateur de messagerie agissent comme une interface entre les utilisateurs et un agent de transfert de courrier comme sendmail.

En outre, le courrier peut être acheminé par le biais de plusieurs serveurs. Pour une sécurité SMTP complète, la totalité de la chaîne de connexions SMTP doit prendre en charge TLS.

Enfin, le niveau de confidentialité et d'authentification négociées entre chaque paire de serveurs ou entre une paire client/serveur doit être pris en compte. Pour plus d'informations, reportez-vous au Chapitre 1, Utilisation du shell sécurisé (Tâches) du manuel Gestion de l’accès au shell sécurisé dans Oracle Solaris 11.2 .