Un server ha un nome breve e un nome pienamente qualificato, e tre cose distinte devono concordare su di essi: il kernel, il file hosts e il DNS. Impostane uno e non gli altri e sembrerà tutto a posto, finché una mail non viene respinta o sudo non si ferma dieci secondi a ogni comando.
Impostalo
sudo hostnamectl set-hostname web1.example.com
hostnamectl
Poi il file hosts
È questa la parte che di solito sfugge. La macchina deve poter risolvere il proprio nome senza chiedere al DNS.
# /etc/hosts
127.0.0.1 localhost
127.0.1.1 web1.example.com web1
La pausa di dieci secondi prima di ogni comando sudo viene da questo file. sudo cerca il nome host, la richiesta scade, e poi prosegue normalmente.
Poi il DNS
Un record A per web1.example.com che punta al server, e un record inverso dall'IP a quel nome. Il record diretto lo controlli tu; quello inverso lo imposta chi possiede l'IP, cioè il tuo fornitore.
Perché alla posta interessa
- Un server che riceve verifica che il nome dichiarato dal tuo server nell'HELO si risolva, e che l'IP si risolva a ritroso su quel nome.
- Una discordanza è uno dei segnali di spam più forti che esistano, e viene applicata prima ancora che il tuo contenuto sia letto.
- È la stessa verifica descritta in DNS inverso per un server di posta.
Conferma
hostname -f # the fully qualified name
getent hosts $(hostname -f)
dig +short web1.example.com
Fallo prima di installare qualsiasi cosa. Diversi pacchetti leggono il nome host al momento dell'installazione e se lo scrivono nella propria configurazione: cambiarlo dopo significa correggerli tutti.
