Comment utiliser la commande whois sous Linux



La réalisation d’une requête whois dévoile une multitude d’informations relatives au détenteur d’un nom de domaine internet. Sous Linux, il est possible d’effectuer ces recherches directement depuis l’interface en ligne de commande. Nous allons explorer cette possibilité ensemble.

Fonctionnement du système Whois

Le système whois est en fait un registre qui centralise des données sur la propriété des noms de domaine ainsi que sur leurs propriétaires. Bien que l’Internet Corporation for Assigned Names and Numbers (ICANN) définisse les règles concernant l’enregistrement et la propriété des noms de domaine, la tenue de ces registres est déléguée à diverses entités appelées bureaux d’enregistrement.

L’accès à ces registres est public. Lorsque vous effectuez une requête whois, l’un de ces bureaux traite votre demande et vous transmet les informations issues de l’enregistrement whois approprié.

Avant de continuer, il est essentiel de clarifier certains termes:

Registre: une entreprise qui gère un registre contenant un ensemble de noms de domaine (il en existe de nombreux).
Titulaire: le propriétaire légitime du nom de domaine; c’est la personne ou l’entité à laquelle il est rattaché.
Bureau d’enregistrement: un inscrit utilise un bureau d’enregistrement pour effectuer son inscription.

Un enregistrement whois contient les informations de contact de la personne, de l’organisation ou de toute entité qui a fait enregistrer le nom de domaine. Le niveau de détail varie, certains registres fournissant davantage d’informations que d’autres.

Un enregistrement whois classique comprend les éléments suivants:

Les noms et les informations de contact du titulaire: le détenteur du nom de domaine.
Le nom et les informations de contact du bureau d’enregistrement: l’organisme qui a enregistré le nom de domaine.
La date d’enregistrement.
La date de la dernière mise à jour des informations.
La date d’expiration.

Il est possible d’effectuer des requêtes whois via le web, cependant la commande whois Linux offre la possibilité de lancer des recherches directement depuis la ligne de commande. Cela s’avère particulièrement pratique lorsque l’on travaille sur un ordinateur sans interface graphique, ou si l’on souhaite intégrer la recherche dans un script shell.

Installation de l’outil whois

La commande whois est généralement préinstallée sous Ubuntu 20.04. Si ce n’est pas le cas pour votre version d’Ubuntu, l’installation se fait à l’aide de la commande suivante:

sudo apt-get install whois

Sous Fedora, utilisez cette commande:

sudo dnf install whois

Enfin, sous Manjaro, tapez la commande suivante:

sudo pacman -Syu whois

Utilisation de whois avec un nom de domaine

La commande whois peut être utilisée aussi bien avec des noms de domaine qu’avec des adresses protocole Internet (IP). Le type d’informations retournées varie légèrement en fonction du type de requête.

Commençons par un exemple avec un nom de domaine:

whois cnn.com

La réponse du registre whois commence par un résumé, puis se répète avec davantage de détails. Voici un exemple, sans les mentions légales et les conditions d’utilisation:

Domain Name: CNN.COM
Registry Domain ID: 3269879_DOMAIN_COM-VRSN
Registrar WHOIS Server: whois.corporatedomains.com
Registrar URL: http://www.cscglobal.com/global/web/csc/digital-brand-services.html
Updated Date: 2018-04-10T16:43:38Z
Creation Date: 1993-09-22T04:00:00Z
Registry Expiry Date: 2026-09-21T04:00:00Z
Registrar: CSC Corporate Domains, Inc.
Registrar IANA ID: 299
Registrar Abuse Contact Email: domainabuse@cscglobal.com
Registrar Abuse Contact Phone: 8887802723
Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited
Domain Status: serverDeleteProhibited https://icann.org/epp#serverDeleteProhibited
Domain Status: serverTransferProhibited https://icann.org/epp#serverTransferProhibited
Domain Status: serverUpdateProhibited https://icann.org/epp#serverUpdateProhibited
Name Server: NS-1086.AWSDNS-07.ORG
Name Server: NS-1630.AWSDNS-11.CO.UK
Name Server: NS-47.AWSDNS-05.COM
Name Server: NS-576.AWSDNS-08.NET
DNSSEC: unsigned

La plupart de ces informations sont assez claires. On y trouve des détails sur le bureau d’enregistrement et le registre, tels que leurs coordonnées, les dates d’enregistrement, etc. Certaines entrées peuvent sembler moins familières.

L’Internet Assigned Numbers Authority (IANA) supervise et coordonne des éléments tels que les zones du système de noms de domaine de niveau supérieur, les systèmes d’adressage de protocole IP et la liste des registres. Le registre en question porte le numéro 299, qui apparaît dans la liste sous « IANA ID: 299 ».

Les lignes « état du domaine » indiquent le statut actuel du domaine, un domaine pouvant avoir plusieurs états simultanément. Ces états sont définis dans le Extensible Provisioning Protocol. Certains états sont rarement utilisés, d’autres sont réservés à des situations spécifiques, comme des litiges juridiques.

Les états attachés à cet enregistrement sont:

clientTransferProhibited: le registre du domaine refusera toute demande de transfert du domaine du bureau d’enregistrement actuel vers un autre.
serverDeleteProhibited: le domaine ne peut être supprimé.
serverTransferProhibited: le domaine ne peut être transféré vers un autre bureau d’enregistrement.
serverUpdateProhibited: le domaine ne peut pas être mis à jour.

Ces trois derniers états sont souvent activés à la demande du déclarant, ou en cas de litige juridique. Il est fort probable que CNN ait fait la demande de ces restrictions afin de « verrouiller » le domaine de l’entreprise.

«DNSSEC» signifie Domain Name System Security Extensions, un mécanisme permettant à un résolveur DNS de vérifier par cryptographie que les données reçues de la zone DNS sont bien authentiques et n’ont pas été modifiées.

Voici la partie la plus détaillée de la réponse:

Domain Name: cnn.com
Registry Domain ID: 3269879_DOMAIN_COM-VRSN
Registrar WHOIS Server: whois.corporatedomains.com
Registrar URL: www.cscprotectsbrands.com
Updated Date: 2018-04-10T16:43:38Z
Creation Date: 1993-09-22T04:00:00Z
Registrar Registration Expiration Date: 2026-09-21T04:00:00Z
Registrar: CSC CORPORATE DOMAINS, INC.
Registrar IANA ID: 299
Registrar Abuse Contact Email: domainabuse@cscglobal.com
Registrar Abuse Contact Phone: +1.8887802723
Domain Status: clientTransferProhibited http://www.icann.org/epp#clientTransferProhibited
Domain Status: serverDeleteProhibited http://www.icann.org/epp#serverDeleteProhibited
Domain Status: serverTransferProhibited http://www.icann.org/epp#serverTransferProhibited
Domain Status: serverUpdateProhibited http://www.icann.org/epp#serverUpdateProhibited
Registry Registrant ID:
Registrant Name: Domain Name Manager
Registrant Organization: Turner Broadcasting System, Inc.
Registrant Street: One CNN Center
Registrant City: Atlanta
Registrant State/Province: GA
Registrant Postal Code: 30303
Registrant Country: US
Registrant Phone: +1.4048275000
Registrant Phone Ext:
Registrant Fax: +1.4048271995
Registrant Fax Ext:
Registrant Email: tmgroup@turner.com
Registry Admin ID:
Admin Name: Domain Name Manager
Admin Organization: Turner Broadcasting System, Inc.
Admin Street: One CNN Center
Admin City: Atlanta
Admin State/Province: GA
Admin Postal Code: 30303
Admin Country: US
Admin Phone: +1.4048275000
Admin Phone Ext:
Admin Fax: +1.4048271995
Admin Fax Ext:
Admin Email: tmgroup@turner.com
Registry Tech ID:
Tech Name: TBS Server Operations
Tech Organization: Turner Broadcasting System, Inc.
Tech Street: One CNN Center
Tech City: Atlanta
Tech State/Province: GA
Tech Postal Code: 30303
Tech Country: US
Tech Phone: +1.4048275000
Tech Phone Ext:
Tech Fax: +1.4048271593
Tech Fax Ext:
Tech Email: hostmaster@turner.com
Name Server: ns-576.awsdns-08.net
Name Server: ns-1086.awsdns-07.org
Name Server: ns-47.awsdns-05.com
Name Server: ns-1630.awsdns-11.co.uk
DNSSEC: unsigned

On retrouve les mêmes informations que dans le résumé, complétées par des sections détaillées sur le déclarant et ses coordonnées à des fins administratives et techniques.

Le nom du titulaire apparaît sous la forme «Domain Name Manager». Il arrive que des entreprises choisissent, moyennant des frais, de laisser leur bureau d’enregistrement enregistrer le domaine en leur nom sous un nom générique qu’il gère à cet effet. Il semble que ce soit le cas ici. Cependant, comme l’adresse du déclarant est «1 CCN Center», l’identité du déclarant est claire.

Utilisation de whois avec une adresse IP

Utiliser la commande whois avec une adresse IP est aussi simple qu’avec un nom de domaine. Il suffit de spécifier l’adresse IP après la commande whois, comme ceci:

whois 205.251.242.103

Voici la réponse obtenue avec cette commande:

NetRange: 205.251.192.0 - 205.251.255.255
CIDR: 205.251.192.0/18
NetName: AMAZON-05
NetHandle: NET-205-251-192-0-1
Parent: NET205 (NET-205-0-0-0-0)
NetType: Direct Allocation
OriginAS: AS16509, AS39111, AS7224
Organization: Amazon.com, Inc. (AMAZON-4)
RegDate: 2010-08-27
Updated: 2015-09-24
Ref: https://rdap.arin.net/registry/ip/205.251.192.0

OrgName: Amazon.com, Inc.
OrgId: AMAZON-4
Address: 1918 8th Ave
City: SEATTLE
StateProv: WA
PostalCode: 98101-1244
Country: US
RegDate: 1995-01-23
Updated: 2020-03-31
Ref: https://rdap.arin.net/registry/entity/AMAZON-4

OrgAbuseHandle: AEA8-ARIN
OrgAbuseName: Amazon EC2 Abuse
OrgAbusePhone: +1-206-266-4064
OrgAbuseEmail: abuse@amazonaws.com
OrgAbuseRef: https://rdap.arin.net/registry/entity/AEA8-ARIN

OrgNOCHandle: AANO1-ARIN
OrgNOCName: Amazon AWS Network Operations
OrgNOCPhone: +1-206-266-4064
OrgNOCEmail: amzn-noc-contact@amazon.com
OrgNOCRef: https://rdap.arin.net/registry/entity/AANO1-ARIN

OrgRoutingHandle: ADR29-ARIN
OrgRoutingName: AWS Dogfish Routing
OrgRoutingPhone: +1-206-266-4064
OrgRoutingEmail: aws-dogfish-routing-poc@amazon.com
OrgRoutingRef: https://rdap.arin.net/registry/entity/ADR29-ARIN

OrgRoutingHandle: IPROU3-ARIN
OrgRoutingName: IP Routing
OrgRoutingPhone: +1-206-266-4064
OrgRoutingEmail: aws-routing-poc@amazon.com
OrgRoutingRef: https://rdap.arin.net/registry/entity/IPROU3-ARIN

OrgTechHandle: ANO24-ARIN
OrgTechName: Amazon EC2 Network Operations
OrgTechPhone: +1-206-266-4064
OrgTechEmail: amzn-noc-contact@amazon.com
OrgTechRef: https://rdap.arin.net/registry/entity/ANO24-ARIN

RTechHandle: ROLEA19-ARIN
RTechName: Role Account
RTechPhone: +1-206-266-4064
RTechEmail: ipmanagement@amazon.com
RTechRef: https://rdap.arin.net/registry/entity/ROLEA19-ARIN

RAbuseHandle: ROLEA19-ARIN
RAbuseName: Role Account
RAbusePhone: +1-206-266-4064
RAbuseEmail: ipmanagement@amazon.com
RAbuseRef: https://rdap.arin.net/registry/entity/ROLEA19-ARIN

RNOCHandle: ROLEA19-ARIN
RNOCName: Role Account
RNOCPhone: +1-206-266-4064
RNOCEmail: ipmanagement@amazon.com
RNOCRef: https://rdap.arin.net/registry/entity/ROLEA19-ARIN

La première section donne des informations sur l’organisation qui détient l’adresse IP recherchée (ici, l’une des nombreuses appartenant à Amazon). Le registre fournit également divers identifiants utilisés pour identifier Amazon.com, Inc. en interne.

La section suivante contient l’adresse et le nom du titulaire, à savoir Amazon.com, Inc. L’adresse Web dans le champ « Ref: » donne accès à ces informations au format JavaScript Object Notation (JSON).

Les autres sections contiennent des coordonnées de contact permettant de signaler des problèmes d’abus, de fonctionnement du réseau, de routage du trafic, etc.

Utilisation de whois dans un script

Pour intégrer whois dans un script, imaginons que nous devions vérifier les dates d’expiration d’une liste de domaines. Un petit script shell fera parfaitement l’affaire.

Tapez le code suivant dans un éditeur de texte et enregistrez-le sous le nom « get-expiry.sh »:

#!/bin/bash

DOMAIN_LIST="howtogeek.com reviewgeek.com lifesavvy.com cloudsavvyit.com"

echo "Expiration dates:"

for domain in $DOMAIN_LIST
do
  echo -n "$domain :: "
  whois $domain | grep 'Expiration' | awk '{print $5}'
done

Attribuez les droits d’exécution au script à l’aide de la commande chmod, comme ceci:

chmod +x get-expiry.sh

Exécutez le script en l’appelant par son nom:

./get-expiry.sh

La date d’expiration de chaque domaine est extraite de la réponse de whois en utilisant la commande grep pour identifier les lignes contenant la chaîne de caractères «Expiration», puis la commande awk pour afficher le cinquième élément de cette ligne.

Facilité d’utilisation et automatisation

Bien qu’il soit possible d’effectuer des recherches whois en ligne, disposer de la commande whois directement dans le terminal et de la possibilité de créer des scripts offre plus de commodité, de flexibilité et donne la possibilité d’automatiser certaines tâches.