Domínios em Linux: Descubra o comando Whois!

Uma análise whois revela uma grande quantidade de dados sobre quem detém um domínio na internet. Em sistemas Linux, estas análises podem ser efetuadas diretamente na linha de comandos. Vamos explicar o processo.

O que é o sistema whois?

O sistema whois é um diretório de registos que contém informações detalhadas sobre a posse de domínios e os seus proprietários. A Internet Corporation for Assigned Names and Numbers (ICANN) supervisiona o registo e a titularidade dos nomes de domínio, mas as listas de registos são geridas por diversas empresas, conhecidas como registos.

Qualquer pessoa pode consultar estas listas de registos. Quando o faz, um dos registos processa o pedido e fornece os dados do registo whois correspondente.

Antes de avançarmos, é essencial familiarizarmo-nos com alguns termos básicos:

Registo: Uma entidade que gere uma lista que contém um conjunto de nomes de domínio (existem várias entidades deste tipo).
Registrante: A pessoa ou entidade legal proprietária do domínio; o domínio está registado em seu nome.
Registrador: Um registrador é usado pelo registrante para efetuar o seu registo.

Um registo whois contém todos os detalhes de contacto da pessoa, empresa ou outra entidade que registou o nome de domínio. Alguns registos incluem mais detalhes do que outros, e o volume de informações fornecidas pode variar.

Um registo whois normal incluirá os seguintes dados:

  • O nome e dados de contacto do registrante: O proprietário do domínio.
  • O nome e dados de contacto do registrador: A organização que registou o nome de domínio.
  • A data do registo.
  • A data da última atualização das informações.
  • A data de expiração.

As consultas whois podem ser efetuadas na internet, mas o comando whois no Linux permite executar análises diretamente na linha de comandos. Isto é útil quando precisa de efetuar uma consulta a partir de um computador sem interface gráfica ou através de um script shell.

Instalação do whois

O comando whois já está instalado no Ubuntu 20.04. Caso necessite de o instalar na sua versão do Ubuntu, pode utilizar o seguinte comando:

sudo apt-get install whois

No Fedora, utilize o seguinte comando:

sudo dnf install whois

Finalmente, no Manjaro, execute o seguinte comando:

sudo pacman -Syu whois

Utilização do whois com um nome de domínio

Pode utilizar o comando whois com nomes de domínio ou endereços de protocolo de internet (IP). O tipo de informação devolvida varia ligeiramente consoante o que é pesquisado.

Vamos usar um nome de domínio para o primeiro exemplo:

whois cnn.com

A resposta do registo whois começa com um resumo, seguido de informações adicionais. O exemplo abaixo inclui declarações de marca registada e termos de utilização removidos:

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: [email protected]
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

Esta informação é bastante clara. Podemos ver detalhes sobre o registrador e o registo, incluindo dados de contacto, datas de registo, etc. Existem algumas entradas que podem não ser óbvias.

A Internet Assigned Numbers Authority (IANA) supervisiona e coordena áreas como as zonas do Sistema de Nomes de Domínio, sistemas de endereçamento do protocolo IP, e a lista de registos. O registo neste caso tem o número 299, indicado na lista como “IANA ID: 299”.

As linhas “status do domínio” mostram o estado do domínio, que pode ter vários estados em simultâneo. Estes estados são definidos pelo Protocolo de Aprovisionamento Extensível. Alguns destes estados são raros e outros estão restritos a situações específicas, como disputas judiciais.

Os seguintes estados estão anexados a este registo:

  • clientTransferProhibited: O registo do domínio recusará pedidos para transferir o domínio do registrador atual para outro.
  • serverDeleteProhibited: O domínio não pode ser eliminado.
  • serverTransferProhibited: O domínio não pode ser transferido para outro registrador.
  • serverUpdateProhibited: O domínio não pode ser atualizado.

Os últimos três estados são geralmente ativados a pedido do registrante ou em casos de disputa judicial. Neste caso, a CNN provavelmente pediu que estes estados fossem aplicados para “bloquear” o domínio da empresa.

“DNSSEC” significa Extensões de Segurança do Sistema de Nomes de Domínio, um sistema que permite a um resolvedor de nomes DNS verificar criptograficamente se os dados obtidos da zona DNS são válidos e não foram adulterados.

A parte mais extensa da resposta é apresentada abaixo:

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: [email protected]
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: [email protected]
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: [email protected]
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: [email protected]
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

Esta informação fornece-nos praticamente a mesma informação que o resumo, com secções adicionais sobre o registrante e os seus dados de contacto para fins administrativos e técnicos.

O nome do registrante surge como “Domain Name Manager”. Algumas empresas optam, mediante pagamento, por permitir que o seu registrador registe o domínio em seu nome, usando um nome genérico que o registrador mantém para o efeito. Parece ser o caso aqui. No entanto, como o endereço do registrante é “1 CCN Center”, é óbvio quem é o titular.

Utilização do whois com um endereço IP

Utilizar o whois com um endereço IP é tão simples como com um nome de domínio. Basta especificar um endereço IP após o comando whois, da seguinte forma:

whois 205.251.242.103

Esta é a saída devolvida pelo whois:

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: [email protected]
OrgAbuseRef: https://rdap.arin.net/registry/entity/AEA8-ARIN

OrgNOCHandle: AANO1-ARIN
OrgNOCName: Amazon AWS Network Operations
OrgNOCPhone: +1-206-266-4064 
OrgNOCEmail: [email protected]
OrgNOCRef: https://rdap.arin.net/registry/entity/AANO1-ARIN

OrgRoutingHandle: ADR29-ARIN
OrgRoutingName: AWS Dogfish Routing
OrgRoutingPhone: +1-206-266-4064 
OrgRoutingEmail: [email protected]
OrgRoutingRef: https://rdap.arin.net/registry/entity/ADR29-ARIN

OrgRoutingHandle: IPROU3-ARIN
OrgRoutingName: IP Routing
OrgRoutingPhone: +1-206-266-4064 
OrgRoutingEmail: [email protected]
OrgRoutingRef: https://rdap.arin.net/registry/entity/IPROU3-ARIN

OrgTechHandle: ANO24-ARIN
OrgTechName: Amazon EC2 Network Operations
OrgTechPhone: +1-206-266-4064 
OrgTechEmail: [email protected]
OrgTechRef: https://rdap.arin.net/registry/entity/ANO24-ARIN

RTechHandle: ROLEA19-ARIN
RTechName: Role Account
RTechPhone: +1-206-266-4064 
RTechEmail: [email protected]
RTechRef: https://rdap.arin.net/registry/entity/ROLEA19-ARIN

RAbuseHandle: ROLEA19-ARIN
RAbuseName: Role Account
RAbusePhone: +1-206-266-4064 
RAbuseEmail: [email protected]
RAbuseRef: https://rdap.arin.net/registry/entity/ROLEA19-ARIN

RNOCHandle: ROLEA19-ARIN
RNOCName: Role Account
RNOCPhone: +1-206-266-4064 
RNOCEmail: [email protected]
RNOCRef: https://rdap.arin.net/registry/entity/ROLEA19-ARIN

A primeira secção contém informação sobre a entidade que detém o endereço IP que procuramos (neste caso, um dos muitos pertencentes à Amazon). Recebemos também alguns identificadores usados para identificar a Amazon.com, Inc. internamente pelo registo.

A segunda secção inclui o endereço e o nome do titular, Amazon.com, Inc. O endereço web no campo “Ref:” contém esta informação em formato de Notação de Objeto JavaScript (JSON).

As restantes secções contêm dados de contacto para reportar problemas relativos a abusos, operação de rede, encaminhamento de tráfego, etc.

Utilização do whois num script

Para usar o whois num script, suponhamos que temos um conjunto de domínios cujas datas de validade precisamos de verificar. Podemos usar um pequeno script shell para o efeito.

Digite o seguinte num editor e guarde-o como “get-expiry.sh”:

#!/bin/bash

DOMAIN_LIST="wdzwdz.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

Torne o script executável usando o comando chmod, como mostrado abaixo:

chmod +x get-expiry.sh

Execute o script chamando-o pelo nome:

./get-expiry.sh

A data de expiração de cada domínio é extraída da resposta whois usando o grep para encontrar linhas que contenham a string “Expiration” e o awk para imprimir o quinto item dessa linha.

Comodidade e automatização

É verdade que também é possível efetuar análises whois online. No entanto, ter o comando whois disponível na janela do terminal e em scripts proporciona comodidade, flexibilidade, e permite automatizar parte do seu trabalho.