Spaß mit dem Domain Name System

Wenn man einen Server betreibt oder bei IT-Problemen zur Stelle ist wird man früher oder später mit dem Domain Name System, kurz DNS zu tun haben. Das DNS löst dabei Namen wie z.B. die Domain seeseekey.net zur passenden IP-Adresse (im aktuellen Fall: 138.201.85.250) auf. Unter Linux und Mac OS X gibt es für die Abfrage von DNS-Servern das Tool dig. Der domain information groper kann dabei im einfachsten Fall so genutzt werden:

dig seeseekey.net

Damit werden die DNS-Informationen der Domain ermittelt und ausgegeben. Die Anfrage richtet sich dabei an den lokalen DNS-Server. Möchte man die Informationen von einem anderen Server abrufen, so ist dies mit dig ebenfalls möglich:

dig @213.133.98.98 seeseekey.net

Die IP-Adresse 213.133.98.98 ist die Adresse des DNS Servers, welcher für die Abfrage genutzt wird. Die Antwort sieht für den Fall von seeseekey.net so aus:

; <<>> DiG 9.10.3-P4-Ubuntu <<>> seeseekey.net
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15428
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;seeseekey.net.                 IN      A

;; ANSWER SECTION:
seeseekey.net.          59795   IN      A       138.201.85.250

;; AUTHORITY SECTION:
seeseekey.net.          59795   IN      NS      robotns3.second-ns.com.
seeseekey.net.          59795   IN      NS      ns1.first-ns.de.
seeseekey.net.          59795   IN      NS      robotns2.second-ns.de.

;; Query time: 3 msec
;; SERVER: 213.133.98.98#53(213.133.98.98)
;; WHEN: Tue Aug 30 09:12:35 CEST 2016
;; MSG SIZE  rcvd: 156

Freie dreistellige .net Domains

Pünktlich zu Beginn des neuen Jahres war ich auf der Suche nach einer dreistelligen .net Domain. Da es natürlich keinen Spaß macht alle möglichen Kombinationen von Hand auszuprobieren habe ich das ganze automatisiert und mir eine Liste von freien .net Domains zusammengestellt. Die Liste ist dabei erwartungsgemäß relativ kurz:

5q3.net
5sy.net
8q9.net
9b6.net
9g4.net
9h4.net
c0f.net
d9i.net
g6t.net
g7f.net
i8e.net
j3q.net
j8l.net
k0g.net
k1g.net
k1t.net
k6q.net
l0b.net
l2y.net
l5j.net
l5q.net
l6d.net
n0u.net
o0f.net
o3f.net
o6p.net
o6u.net
o8c.net
p3v.net
q8c.net
q8k.net
r9l.net
s8h.net
s9r.net
u7r.net
y5d.net
y9h.net
y9p.net
y9q.net
z5i.net
z7g.net

Wer also noch eine dreistellige Domain braucht, sollte sich ranhalten ;)

XMPP Server per DNS auf der Hauptdomain betreiben

Wenn man einen XMPP-Server unter einer Subdomain wie “xmpp.example.org” betreibt, so sehen die Kontakte dementsprechend aus – in diesem Fall “kontakt@xmpp.example.org”. Möchte man Kontakte nach dem Schema “kontakt@example.org” anlegen, so muss der DNS Eintrag der Hauptdomain auf den XMPP-Server zeigen. Dies ist aber nicht immer möglich. So kann es vorkommen das der Webserver auf der Hauptdomain seinen Dienst verichtet, während der XMPP-Server auf einem anderen Server läuft. In einem solchen Fall kann man sich das ganze mit “SRV” Einträgen im DNS zurechtzubiegen.

_jabber._tcp             IN SRV     0 0 5269 xmpp.example.org.
_xmpp-client._tcp        IN SRV     0 0 5222 xmpp.example.org.
_xmpp-server._tcp        IN SRV     0 0 5269 xmpp.example.org.

Mit diesen Einträgen ist es dann möglich den XMPP Server unter “example.org” zu betreiben, obwohl der A-Record auf einen anderen Server zeigt, da der anfragende Client umgeleitet wird.

XMPP Server unter Ubuntu aufsetzen

Möchte man Instant Messaging mittels XMPP (früher unter dem Namen Jabber bekannt) nutzen, so kann man natürlich zu einem der vielen Dienste wie GMail, GMX und ähnliches gehen. Damit bekommt man dann neben den Vorteilen auch den Nachteil, das man sich nicht sicher sein kann was mit den eigenen Daten passiert. Eine andere Lösung ist es hier den XMPP Server selbst aufzusetzen. Dazu bietet sich “ejabberd” an. Mittels:

sudo apt-get install ejabberd

wird das passende Paket installiert. Der Server “ejabberd” unterstützt dabei die Verwaltung mehrerer Domains, so das eine Serverinstanz die Adressen user1@example.org und user2@example.com bereitstellen kann. Um dies umzusetzen, geht es im ersten Schritt an die Konfiguration. Dazu wird die Datei “/etc/ejabberd/ejabberd.cfg” mittels “nano” geöffnet:

nano /etc/ejabberd/ejabberd.cfg

Die Syntax der Datei ist dabei im Gegensatz zu anderen Konfigurationsdateien etwas gewöhnungsbedürftig, da sie auf der Programmiersprache Erlang basiert. Kommentare z.B. werden in dieser Datei mit einem Prozentzeichen eingeleitet. Im ersten Schritt werden die Domain respektive Hostnamen definiert, welche “ejabberd” verwalten soll. Dazu wird der Punkt “hosts” gesucht und mit den entsprechenden Domains gefüllt.

{hosts, ["xmpp.example.com", "xmpp.example.org"]}.

Die Serversprache kann man für einen deutschsprachigen Server geändert werden:

{language, "de"}.

Damit werden Nachrichten vom Server in Deutsch anstatt in Englisch ausgegeben. Standardmäßig ist der Server so eingestellt, das niemand außer dem Administrator Nutzer anlegen kann. Natürlich wäre es auch denkbar, einen Server zu betreiben, bei welchem sich jeder registrieren kann. Damit man Nutzer anlegen kann, muss ein Nutzer mit den entsprechenden Rechten definiert werden:

{acl, admin, {user, "seeseekey", "xmpp.example.com"}}.

Damit ist der Nutzer “seeseekey@xmpp.example.com” ein Nutzer mit administrativen Rechten. Allerdings muss dieser Nutzer noch erstellt werden:

service ejabberd restart
ejabberdctl register seeseekey xmpp.example.com geheimespasswort

Weitere Nutzer können anschließend über die Weboberfläche angelegt werden. Zu erreichen ist diese dabei unter:

http://xmpp.example.com:5280/admin

Die Zugangsdaten entsprechen dabei denen des administrativen Nutzers.

Weitere Informationen gibt es unter:
https://wiki.archlinux.de/title/Ejabberd

Deutscher DDNS Dienst

Wer auf der Suche nach einem deutschen DDNS Dienst ist der sollte sich einmal den Dienst von tiggerswelt.net welcher unter http://tiggerswelt.net/ zu finden ist anschauen. Dabei besticht der Dienst durch seine vielen Optionen und Hilfe (wenn man sie benötigt) ist auch kein Problem. So kann man problemlos den Support per Jabber oder Telefon erreichen. Und den Dienst gibt es dabei automatisch zu jeder Domain dazu :)