Ein eigenes DNS Blackhole

Ein WLAN ist eine feine Sache. Man benötigt keine Kabel mehr. Smartphones und Tablets bekommen auch Internet. Aber was kann man machen, wenn Fremde Personen das eigene WLAN mitbenutzen. Natürlich kann man regelmäßig die Verschlüsselung ändern. Aber wer macht das schon. Es geht auch einfacher.

Man benötigt nur einen Raspberry PI und etwas Geduld. Bevor man den Raspberry allerdings einsetzt, sollte man DHCP im Router deaktivieren und die Clients auf statisch umstellen. Den unser Raspberry verteilt IP-Adressen, die ins leere laufen. So kann man mit einfachen Mitteln den lieben Nachbarn mitteilen, das fremde WLANs benutzen nicht die feine Art ist.

Folgende Komponenten habe ich hierfür benutzt:

Bauteil Preis Wo gekauft
Raspberry Pi B komplett Paket 44,44 eBay
Raspberry Pi Kühler Cooler Kühlkörper 3 Stk. CPU / GPU, Lan / USB, Wandler 5,99 eBay
TP-Link MR3020 27,03 € Amazon
Netzwerkkabel 1m 2,09 € Amazon
Speicherkarte 16 GB 8,99 Amazon

Die Preise sind vom 07.04.16. Der Raspberry Pi B ist leider auf eBay nicht mehr in dem Paket erhältlich. Der Honeypot funktioniert aber auch mit dem Modell 2 und 3. Bei diesen Modellen ist jedoch eine Mikro-SD Karte erforderlich.

Einrichtung DNS-Server

Im ersten Schritt richten wir einen DNS-Server ein. Hierfür müssen wir die Pakete bind9, bind9utils und dnsutils. Dies geht über das Terminal mit dem folgenden Befehl:

sudo apt-get install bind9 bind9utils dnsutils

Die Installation können wir einfach testen. Hierzu gebt ihr den folgenden Befehl ein.

dig @127.0.0.1 www.google.de

Wenn die installation fehlerfrei ist, bekommt ihr IP der Internetseite zurück. Das Tool ist in den dnsutils enthalten. Im Anschluss bearbeiten wir die erste Konfigurationsdatei. Da diese noch nicht existiert wird sie zuerst erstellt. dies geht am einfachten mit touch.

sudo touch /etc/bind/named.conf.local

Nach dem erstellen der Datei named.conf.local bearbeiten wir diese. Hierfür benutzen wir das Programm nano. Es ginge auch mit jedem anderen Editor, für Anfänger ist der nano jedoch recht einfach zu bedienen.

sudo nano /etc/bind/named.conf.local

In diese Datei fügt ihr die folgenden Zeilen Code ein und speichert diese mit STRG+O und schließt den Editor mit STRG+X

//
// Do any local configuration here
//

// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918";

//
// This file contains the own local DNS server configuration.
// This is where you declare the zones associated with this server's domain(s).
// Consider adding the 1918 zones here, if they are not used in your organization
// include "/etc/bind/zones.rfc1918";
//

// ----------------------- Zones -----------------------

// Forward-Lookup
zone "." {
    type master;
    file "/etc/namedb/db.catchall";
};

// Reverse-Lookup

// ----------------------- Zones -----------------------

Hier werden die Forward und Reverse Lookup Zonen hinterlegt. Wir benötigen jedoch nur die Forward Zone. Darum hinterlegen wir in dieser Datei nur den Pfad zu Forward Zone mit dem Namen db.catchall, die wir gleich bearbeiten. Diese legen wir später unter dem Pfad /etc/namedb/db.catchall ab. Im Anschluss muss noch die Datei db.catchall erstellt werden.

sudo touch /etc/namedb/db.catchall

Nach dem erstellen muss diese auch bearbeitet werden

sudo nano /etc/namedb/db.catchall

In die Datei fügt ihr den folgenden Code ein

$TTL    604800
@       IN      SOA     . root.localhost. (
                        1               ; Serial
                        604800          ; Refresh
                        86400           ; Retry
                        2419200         ; Expire
                        604800 )        ; Negative Cache TTL

        IN      NS      .
.       IN      A       192.168.178.110
*.      IN      A       192.168.178.110

Mit der folgenden Abfrage prüft ihr, ob der DNS-Server richtig funktioniert.

host www.google.de 127.0.0.1

Das Ergebnis sollte wie folgt aussehen:

Using domain server:
Name: 127.0.0.1
Address: 127.0.0.1#53
Aliases:

www.google.de has address 192.168.178.110

Ihr könnt natürlich auch eine Fakedomain eingeben. Das Ergebnis ist das gleiche

pi@raspberrypi:~ $ host googlsdfsffsde.de 127.0.0.1
Using domain server:
Name: 127.0.0.1
Address: 127.0.0.1#53
Aliases:

googlsdfsffsde.de has address 192.168.178.110

Das war es auch schon mit dem DNS Server. Dieser funktioniert jetzt schon.

Einrichtung DHCP-Server

Im nächsten Schritt richten wir einen DHCP-Server ein. Wenn ihr schon einen DHCP-Server habt, den ihr benutzen wollt, dann machen wir bei der Einrichtung des Apache weiter.

sudo apt-get install isc-dhcp-server

Nach der Installation muss der DHCP-Server noch konfiguriert werden.
Hierfür müssen zwei Dateien angepasst werden. Die erste Datei ist die /etc/default/isc-dhcp-server. Dort müsst ihr das Interface festlegen, worauf euer DHCP-Server läuft. Bei mir sieht die Datei wie folgt aus

INTERFACES="eth0 wlan0"

Wenn ihr andere Interfacenamen habt, sehen die bei euch anders aus. Ihr könnt auch mehr Interfaces hinterlegen. Wichtig ist das Leerzeichen zwischen den einzelnen Interfaces.

Die zweite Datei die bearbeitet wird ist die dhcpd.conf. Diese liegt unter /etc/dhcp/dhcpd.conf. Hier werden die folgenden Parameter eingetragen:

Subnetz 192.168.178.0
Netzmaske 255.255.255.0
Interface eth0
IP Range für dne DHCP 192.168.178.10 – 192.168.178.40
DNS-Server 192.168.178.110
# Erstes Subnetz
subnet 192.168.178.0 netmask 255.255.255.0 {
        interface eth0;
        range 192.168.178.10 192.168.178.40;
        option domain-name-servers 192.168.178.110;
}

Damit ist der DHCP Server konfiguriert. Um diesen jetzt zu starten gebt ihr folgendes ein

/etc/init.d/isc-dhcp-server start

Danach sollte folgende Ausgabe kommen

[ ok ] Starting isc-dhcp-server (via systemctl): isc-dhcp-server.service

Wenn der DHCP-Server nicht startet, könnt ihr mit

/etc/init.d/isc-dhcp-server status

den Status überprüfen. Hier seht ihr auch eventuelle Fehler.

Einrichtung Apache Webserver

Der Apache Webserver ist am schnellsten eingerichtet und konfiguriert. Zuerst müsst ihr diesen installieren. Dies geht mit dem folgenden Befehl:

sudo apt-get install apache2 apache2-doc

Nachdem der Apache Webserver installiert ist, müsst ihr nur noch die index.html Datei unter dem Pfad /var/www/html ändern. Unten habt ihr eine Beispielhtmlseite, wie diese aussehen könnte.

<!doctype html>
<html class="no-js" lang="de">
  <head>
    <meta charset="utf-8" />
    <meta http-equiv="x-ua-compatible" content="ie=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="language" content="de">
    <title>Welcome</title>
  </head>
  <body>
    Fremde WLANS benutzen lohnt sich nicht
  </body>
</html>

Das wars auch schon. Viel mehr müsst ihr nicht machen. So werden alle DNS Anfragen auf eine von euch definierte Seite umgeleitet.

Wenn ihr den Accesspoint benutzen wollt, müsst ihr diesen natürlich auch noch einrichten. Wie das geht, steht im Handbuch. Aufgrund der vielen verschiedenen Modelle und Firmwarestände kann ich euch diesen Weg nicht erläutern.

Veröffentlicht am