Ajouter un commentaire

Debian 9 Stretch : configurer votre hostname et votre reverse DNS

Introduction

Si vous êtes ici, c'est que vous avez au moins un serveur et au moins un nom de domaine.
Mais rien ne vous empêche de faire pointer plusieurs noms de domaine (ou des sous-domaine, images.geek17.com par exemple) sur un seul et même serveur.

De même, votre serveur fait office de serveur web (nginx + MariaDB) mais il va certainement héberger d'autres services (serveur mail via postfix par exemple).

Il est donc important d'identifier de manière unique votre serveur sur le web en spécifiant un hostname (nom d'hote) et en configurant vos DNS en conséquence.

Prenons l'exemple concret de geek17.com

  • j'ai un serveur pour héberger le site web de geek17.com
  • j'héberge également d'autres sites : toto1.com et toto2.com
  • j'ai une seule adresse IP : 123.456.789.123
  • mon serveur héberge et réceptionne les mails des 3 domaines geek17.com, toto1.com et toto2.com

J'ai décidé de nommer mon serveur server1.geek17.com

Mais vous pouvez utiliser n'importe quel nom (en évitant les caractères spéciaux et accentués), suivi d'une de votre nom de domaine.

 

Ajout de l'enregistrement CNAME dans vos DNS

Rendez-vous dans l'interface de gestion de votre nom de domaine.

Les données de votre zone DNS sont présentées sous la forme d'un tableau de 3 colonnes.

Champ Type Cible
  A 123.456.789.123
www CNAME geek17.com.
server1 CNAME geek17.com.

Vous devez à minima avoir une entrée de Type A, dont le Champ est vide et qui contient votre adresse IP en Cible.
C'est grâce à cette entrée que quand vous tapez votre nom de domaine dans votre navigateur web, celui-ci contacte l'adresse IP de votre serveur pour charger les données.

Mais vous avez peut-être également une entrée de Type CNAME et dont le Champ est www et la Cible est votre nom de domaine avec un . à la fin
Cette entrée permet à votre navigateur de contacter la même adresse IP que pour geek17.com si vous taper www.geek17.com pour accéder au site.

Enfin, vous comprenez logiquement que l'entrée Type CNAME et avec le Champ est server1 permet exactement la même chose qu'avec www.
C'est mon IP qui est contacter en cas de contact sur server1.geek17.com

A titre d'info, j'aurai également pu utiliser une entrée de Type A, en indiquant Champ = server1 et l'adresse IP de mon serveur en Cible 

Champ Type Cible
server1 A 123.456.789.123

On utilise les entrées de type A pour pointer vers une adresse IP et les entrées de type CNAME pour pointer vers un domaine.

 

Configuration du reverse DNS

Rendez-vous à présent dans l'interface d'administration de votre serveur et localisez la fonction "Modifier le Reverse DNS", exemple ci-dessous pour mon VPS OVH.

Il vous reste à indiquer le nom complet server1.geek17.com qui sera renvoyé lors des demandes de reverse DNS.

C'est en fait le fonctionnement inverse du DNS, cette fois-ci on connait l'adresse IP mais on veut savoir à quel serveur elle correspond.
Et c'est donc server1.geek17.com qui sera renvoyé lors des demandes de Reverse DNS sur mon adresse IP 123.456.789.123

Configuration du serveur Debian

Bon, nos DNS sont configurés, passons maintenant à la configuration du serveur.

Commencez par taper les commandes hostname et hostname -f dans le shell de  votre serveur pour voir l'identification actuelle de votre serveur.
Dans l'exemple ci-dessous, c'est la config de mon VPS OVH après installation.

$ hostname
vps123456
$ hostname -f
vps123456.ovh.net

Commençons par changer le hostname, pour cela ouvrez le fichier /etc/hostname

sudo nano /etc/hostname

Dans mon cas, ce fichier contenani vps123456 que j'ai remplacé par server1
Ne mettez pas le nom de domaine dans ce fichier !

Reste le fichier /etc/hosts à mettre à jour, 

sudo nano /etc/hosts

Dans le cas de mon VPS OVH, le fichier contenait 

# Your system has configured 'manage_etc_hosts' as True.
# As a result, if you wish for changes to this file to persist
# then you will need to either
# a.) make changes to the master file in /etc/cloud/templates/hosts.tmpl
# b.) change or remove the value of 'manage_etc_hosts' in
#     /etc/cloud/cloud.cfg or cloud-config from user-data
#
127.0.1.1 vps123456.ovh.net vps123456
127.0.0.1 localhost

Et j'ai remplacé la ligne 127.0.1.1 vps123456.ovh.net vps123456

#127.0.1.1 vps123456.ovh.net vps123456
127.0.0.1 server1.geek17.com server1

Reste à redémarrer le serveur et c'est bon !  Sauf si vous avez un VPS OVH comme moi wink

sudo reboot

 

OVH utilise en effet un service cloud installé sur mon VPS et qui écrase le fichier nano /etc/hosts avec les données provenant d'un fichier template.
Du coup, après le reboot, je retrouvai la ligne 127.0.1.1 vps123456.ovh.net vps123456 active et plus de trace de mon server1

Rien de bien compliqué en fait, il suffit de modifier la valeur du template utilisée par le service cloud.
Elle se trouve dans le fichier /etc/cloud/cloud.cfg

sudo nano /etc/cloud/cloud.cfg

Au tout début de ce fichier, replacer l'entrée vps123456... par server1....

#hostname: vps123456.ovh.net
hostname: server1.geek17.com

Et cette fois, après un reboot, c'est tout bon !

Pensez à vérifier avec la commande hostname

$ hostname
server1
$ hostname -f
server1.geek17.com

 

You must have Javascript enabled to use this form.