Un serveur a un nom court et un nom pleinement qualifié, et trois choses distinctes doivent s'accorder à leur sujet : le noyau, le fichier hosts et le DNS. Définissez-en un sans les autres et tout semble marcher — jusqu'à ce qu'un courrier soit rejeté ou que sudo marque dix secondes d'arrêt à chaque commande.

Définissez-le

sudo hostnamectl set-hostname web1.example.com
hostnamectl

Puis le fichier hosts

C'est la partie qu'on oublie d'habitude. La machine doit pouvoir résoudre son propre nom sans interroger le DNS.

# /etc/hosts
127.0.0.1   localhost
127.0.1.1   web1.example.com web1
Les dix secondes d'arrêt avant chaque commande sudo viennent de ce fichier. sudo cherche le nom d'hôte, la recherche expire, puis il poursuit normalement.

Puis le DNS

Un enregistrement A pour web1.example.com pointant vers le serveur, et un enregistrement inverse de l'IP vers ce nom. L'enregistrement direct dépend de vous ; l'inverse est défini par le propriétaire de l'IP — votre hébergeur.

Pourquoi la messagerie y tient

  • Un serveur destinataire vérifie que le nom annoncé par votre serveur dans le HELO se résout, et que l'IP se résout en retour vers lui.
  • Une discordance est l'un des signaux de spam les plus forts qui soient, et il s'applique avant même que votre contenu ne soit lu.
  • C'est le même contrôle que celui décrit dans DNS inverse pour un serveur de messagerie.

Vérifiez

hostname -f          # the fully qualified name
getent hosts $(hostname -f)
dig +short web1.example.com
Faites-le avant d'installer quoi que ce soit. Plusieurs paquets lisent le nom d'hôte à l'installation et l'inscrivent dans leur propre configuration : le changer ensuite oblige à tous les modifier.