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.