Der heutige Beitrag ist jetzt weniger etwas aussergewöhnliches oder neues. Ich finde es eher eine interessante Illustration der Anwendung von kleinen, größtenteils bekannten Werkzeugen, vielleicht für Menschen, die noch nicht so in der Materie drin sind.
Domainstatus tracken - frei werdende Domains bemerken
Hin und wieder besteht bei dem Einen oder dem Anderen ein großes Interesse, zu wissen, ob die ein oder andere Internet-Domain, nicht vielleicht zufällig frei werden wird, so dass man diese kostengünstig erwerben kann. Alles, was dazu nötig ist, ist eine Linux-Büchse, WHOIS, ein bisschen Verständnis für Textverarbeitungswerkzeuge unter Linux und ein paar andere Kleinigkeiten.
Beruflich kommt es bei mir immer mal wieder vor, dass eine Domain verloren geht - besser gesagt, der (wohlwollende) Kontakt zu dem bisherigen Inhaber geht verloren. Ausscheiden aus der Firma. Unbekannt verzogen. Vielleicht auch Streit und die damit einhergehende mangelnde Kooperationsbereitschaft. Nach einem aktuellen Fall, habe ich mir nach dieser Methode eine Benachrichtigung gebastelt, um für einen Kunden eine gewünschte Domain direkt nach frei werden wieder registrieren zu können.
Vorbemerkungen
Das hier erwähnte Domaintracking kann jeder für jedwede Domain durchführen und ein entsprechend frei werden Domain auch möglicherweise auch temporär erfolgreich registrieren. Trotzdem würde ich davon abraten, das für Domains zu tun, wo Recht, Gesetz und das benötigte Kleingeld für die gerichtliche Durchsetzung, vermutlich eher auf der Gegenseite zu finden sind.
Weiterhin kann jeder das auch über diverse Dienstleister erledigen lassen. Da bleibt nur zu hoffen, dass der entsprechende Dienstleister auch ehrenwert ist und sich die Domain vielleicht nicht selbst sichert, um sie dann zu einem hohen Preis an die höchstbietende Person zu verkaufen.
Ich gehe mal von einem auf Debian basierenden System aus - also Debian, Ubuntu, Linux Mint, etc. Steht in den folgenden Befehlsausgaben ein '$' am Anfang ist es als Benutzer auszuführen; steht ein '#' am Anfang, muss das Kommando als root ausgeführt werden.
Die WHOIS-Daten und der Domainablauf
Grundsätzlich ist die Anzahl von WHOIS-Anfragen üblicherweise limitiert. Das sollte man bei der Anzahl und der Häufigkeit der ausgeführten Abfragen und zu überwachenden Domains berücksichtigen.
Der Verlauf von Domainregistrierungen, und -löschungen verläuft überlicherweise in Phasen. Zuerst wird sie registriert. Irgendwann ist sie frei. Wird eine Domain beim Registrar nicht mehr bezahlt, können andere Stati, wie beispielsweise gesperrt auftreten. Ein typischer Status ist noch die sogenannte Redemption Grace Period. Eine Gnadenfrist, die dem aktuellen Domaininhaber noch einräumt, eine Domain wieder zurück zu holen - meist ist das mit Kosten verbunden.
WHOIS-Daten sind grundsätzlich nicht einheitlich. Jede TLD bzw. jede Länder-Registry hat da ihr eigenes Format. Deswegen muss man sich die Informationen aus allen Domains individuell rauskratzen. Dies bedeutet, dass für jede Top-Level-Domain - also z. B. ".de", die Top-Level-Domain für Deutschland - ein individuelles Textverarbeitungskommando benötigt wird. Die mangelnde internationale einheitliche Standardisierung erfordert eben auch, dass man die jeweils neuen WHOIS-Daten manuell begutachtet, um den tatsächlichen, aktuellen Status der Domain zu erfassen.
Das WHOIS-Werkzeug
Als erstes benötigen wir die WHOIS-Informationen für die entsprechende Domain. Dafür brauchen wir das whois Paket auf dem System, was wir zuerst installieren:
Code: Alles auswählen
# apt install whois
Code: Alles auswählen
$ mkdir $HOME/domaintracker
Code: Alles auswählen
$ whois icanhazip.com
Eine Anmerkung noch zu Domainnamen: Auch wenn es bei mir nicht notwendig war, kann es unter Umständen kann es hilfreich sein, Umlaut-Domains in der IDN-Kodierung zu verwenden. Die IDN-Kodierung ist eine Darstellung von Domainnamen, die spezielle Zeichen enthalten, mit einem Basiszeichensatz mit nur geringer Anzahl von kompatiblen Zeichen. Aus dem deutschen Domainnamen flügel.de wird in der IDN-Schreibweise zu: xn--flgel-lva.de, aus dem französischen comme-ci-comme-ça.fr wird xn--comme-ci-comme-a-qpb.fr. Ein aktuelles whois kann aber ohne weiteres mit IDN-Domainnamen umgehen. Im Zweifelsfall kann hier noch idn helfen.
awk
Schaut man sich die vorliegende Ausgabe an, dann sind dort Informationen, die man überhaupt nicht haben will. z. B. das letzte Update der gesamten WHOIS Datenbank. Das Wesentliche an der Ausgabe ist hier nur der erste Block bis zum ersten >>>Last Update of whois database. Also genau dieser Auszug:
Code: Alles auswählen
Domain Name: ICANHAZIP.COM
Registry Domain ID: 1564103047_DOMAIN_COM-VRSN
Registrar WHOIS Server: whois.cloudflare.com
Registrar URL: http://www.cloudflare.com
Updated Date: 2022-06-03T21:50:09Z
Creation Date: 2009-07-31T00:13:53Z
Registry Expiry Date: 2024-07-31T00:13:53Z
Registrar: CloudFlare, Inc.
Registrar IANA ID: 1910
Registrar Abuse Contact Email:
Registrar Abuse Contact Phone:
Domain Status: clientDeleteProhibited https://icann.org/epp#clientDeleteProhibited
Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited
Name Server: ARAGORN.NS.CLOUDFLARE.COM
Name Server: JEAN.NS.CLOUDFLARE.COM
DNSSEC: signedDelegation
DNSSEC DS Data: 2371 13 2 294A081C731FA757F3E1262DDB13F7C2C240AA5D7EACD37B6EF69BB5B827236C
URL of the ICANN Whois Inaccuracy Complaint Form: https://www.icann.org/wicf/
>>> Last update of whois database ...
Code: Alles auswählen
whois icanhazip.com \
| awk '/^>>> Last update of whois database:/ {exit} 1;'
Falls awk nicht installiert ist, kann es mit dem üblichen ...
Code: Alles auswählen
# apt install gawk
... installiert werden. Ich verwende hier gawk - also GNU awk - der erweiterte Möglichkeiten im Vergleich zum Original bietet.
Ich habe mir noch ein Skript gebastelt, was noch ein paar Optimierungen vornimmt und auch gleich mehrere Domains prüfen kann:
Code: Alles auswählen
#!/bin/bash
_get_stripped_whois() {
local DOMAIN="$1"
LC_ALL=C /usr/bin/whois $DOMAIN \
| grep -v REDACTED \
| grep -vE "^%" \
| grep -v "Please query the RDDS service of the Registrar" \
| /usr/bin/awk '/Last update of (whois|WHOIS) database/ {exit;} 1;' \
| sort >$HOME/domains/$DOMAIN.txt.tmp
if [ -s $HOME/domains/$DOMAIN.txt.tmp ] ;then
mv $HOME/domains/$DOMAIN.txt.tmp $HOME/domains/$DOMAIN.txt
else
rm -f $HOME/domains/$DOMAIN.txt.tmp
fi
}
main() {
for domain in "$@" ; do
_get_stripped_whois "$domain"
done
}
main "$@"
Jetzt haben wir also die gewünschte Ausgabe. Die erzeugen wir nun regelmässig, also z. B. täglich per cron mit dem folgenden Kommando:
Code: Alles auswählen
$ crontab -e
Code: Alles auswählen
0 3 * * * LC_ALL=C /usr/bin/whois icanhazip.com | /usr/bin/awk '/^>>> Last update of whois database:/ {exit} 1;' >$HOME/domaintracker/icanhazip.com
Changetrack
Das nächste Werkzeug, was für uns hilfreich ist, ist Changetrack [2]. Changetrack ist eine - mittlerweile recht angestaubte - Software, die mittels RCS beliebige Dateien überwachen kann und bei Änderung eine E-Mail schickt. Als mir das jemand gezeigt hat, habe ich die Nase gerümpft und gesagt: Da ist etckeeper aber besser. War es nicht - nicht in allen Fällen. Denn Changetrack kann beliebig im System verteilte Dateien überwachen.
Dafür wird zunächst mal das Paket installiert:
Code: Alles auswählen
# apt install changetrack
Code: Alles auswählen
/home/benutzername/domaintracker/icanhazip.com
Zusätzlich braucht es jetzt noch einen weiteren cron-job, der praktischerweise zeitlich kurz nach dem WHOIS-Abruf stattfindet, um uns die Änderungen mitzuteilen.
Code: Alles auswählen
5 3 * * * /usr/bin/changetrack -q -u -oEMAIL@DOMAIN.TLD >/dev/null 2>&1
DMA - Dragonfly Mail Agent
Nicht jeder wird unbedingt einen eigenen Mailserver betreiben, deswegen wollen wir hier mit Exim oder Postfix nicht mit Kanonen auf Spatzen schießen. DMA ist ein minimaler Mail-Transfer-Agent, der uns für den sehr simplen Fall dienen soll: Es sollen einfach alle Mails über einen Account bei einem Hoster abgeschickt werden. Das geht auch einfach auf dem heimischen Linux-PC. Zunächst braucht es auch hier wieder die Installation eines Paketchens: dma
Code: Alles auswählen
# DEBIAN_FRONTEND=noninteractive apt-get install dma
Das ist die ganze Konfiguration für den DMA für unseren Mailaccount hier bei GMX, welche in /etc/dma/dma.conf liegt ...
Code: Alles auswählen
SMARTHOST mail.gmx.net
PORT 587
AUTHPATH /etc/dma/auth.conf
SECURETRANSFER
STARTTLS
MASQUERADE mein.benutzer@gmx.de
Weiterhin braucht es noch das Passwort für diesen Account in /etc/dma/auth.conf:
Code: Alles auswählen
mein.benutzer@gmx.de|mail.gmx.net:mein.passwort
Code: Alles auswählen
echo hallo | mail -s "Mailservertest $(date)" mein.anderer.benutzer@domain.tld
Eine Mail von Changetrack ist dann ein ganz normaler diff, wie z. B. dieser hier:
Code: Alles auswählen
Changes made to '/home/heisenberg/mydomain.com' follow:
@@ -2,7 +2,7 @@
Registry Domain ID: 1572104121_DOMAIN_COM-VRSN
Registrar WHOIS Server: whois.ascio.com
Registrar URL: http://www.ascio.com
- Updated Date: 2022-11-12T09:18:45Z
+ Updated Date: 2022-12-13T12:11:40Z
Creation Date: 2009-10-13T09:18:31Z
Registry Expiry Date: 2022-10-13T09:18:31Z
Registrar: Ascio Technologies, Inc. Danmark - Filial af Ascio technologies, Inc. USA
@@ -10,7 +10,7 @@
Registrar Abuse Contact Email: abuse@ascio.com
Registrar Abuse Contact Phone: +1.4165350123
Domain Status: clientHold https://icann.org/epp#clientHold
- Domain Status: redemptionPeriod https://icann.org/epp#redemptionPeriod
+ Domain Status: pendingDelete https://icann.org/epp#pendingDelete
Name Server: NS1.WEBSERVER.SG
Name Server: NS2.WEBSERVER.SG
Name Server: NS3.WEBSERVER.SG
Schlussbemerkung
Natürlich kann man die Methodik auch für den genau entgegen gesetzten Anwendungsfall benutzen: Man beobachtet seine Domains und erhält so eine Warnung, sollte sich etwas ändern, obwohl sich doch da eigentlich nichts ändern sollte.
Meine Domain habe ich leider nicht bekommen. Ich dachte die Domain wäre weitestgehend uninteressant. Deswegen erschien mir die gewählte Methode ausreichend. Anhand der Änderung der WHOIS-Nameserver Einträge habe ich dann auch gesehen, wie die Domain weggegangen ist. Erst zu DropCatch, einem Anbieter für Domain-Backordering, und dann zum neuen Eigentümer. Jetzt habe ich auch verstanden, wie das dort läuft: Sobald eine Domain im pendingDelete Status ist, wird ein Auktionsverfahren eingeleitet und der höchste Bieter gewinnt. Na! Das nächste mal klappst vielleicht. Es ist also empfehlenswert sich in der pendingDeletePhase bei einem Domain-Backordering-Anbieter zu registrieren und aktiv zu werden. Fun-Fact: Ich habe mir eine Domain auf meine eigene Liste gesetzt, die ich tatsächlich schon registriert habe.
Danke für's Lesen!
Anregungen zur Diskussion
Man sieht also hier: Wer am schnellsten ist, bzw. wer am meisten bietet kommt zum Zug bei der Domainvergabe. Die Entwicklung hin zu Premiumdomains bei den neuen generischen Domains(gTLD), d. h. Domains, die sehr beliebt sind und bei denen die Registrare selbst den jährlichen Preis festlegen, ist auch schon ein paar Jahre da. Damit kosten sehr beliebte Domains bis hin zu 5 stelligen Jahresbeträgen. [5]. Wer viel Geld hat, ist also - wie so oft - vorne in der Schlange. Ist das gut so? Falls nein: Wie könnte man die Verteilung besser - zum allgemeinen, gesellschaftlichen Nutzen regeln? Ansonsten: Hat nicht auch fast jeder einen gewissen Jagdtrieb in sich, den man bei solchen Themen gut ausleben kann?
[1] http://www.megabert.de/downloads/icanha ... .WHOIS.txt
[2] https://changetrack.sourceforge.net/
[3] https://invisible-island.net/rcshist/rcshist.html
[4] http://www.megabert.de/downloads/icanha ... .WHOIS.txt
[5] https://www.inwx.de/de/domain/check#search=car.store