Die Koalition der Willigen (Die Provider Telekom, Vodafone/Arcor, Alice, O2 und Kabel Deutschland) wird in Deutschland langsam aktiv. Nachdem die Einwilligung von der Leyens Pläne umzusetzen von allen großen Providern voreilig verkündet wurde, macht sich Vodafone als erster auf die Zensur umzusetzen.

Im UMTS-Netz von Vodafone werden nach Informationen von zdnet seit Juli 2009 DNS-Anfragen auf Port 53 zwangsweise auf die eigenen DNS-Server umgeleitet, so kann der Provider garantieren dass die eigenen DNS-Server nicht umgangen werden können, selbst wenn Anwender alternative DNS-Server einstellen. Es ist nur eine Frage der Zeit, bis dieser Feldtest auf die DSL-Anschlüsse des Anbieters ausgeweitet wird. Netzneutralität ade… Hallo Zensurstaat!

Wer nun meint, dass Pädophilen somit tatsächlich der Zugang zu einschlägig bekannten Domains unmöglich gemacht wird, der irrt. Es macht nur ein bisschen mehr Arbeit… Löschen statt Sperren wäre immer noch der einzig richtige Ansatz, aber das würde ja Geld kosten und den Bestrebungen unserer Regierung, Deutschland zu einem Überwachungsstaat auszubauen, nicht so gut ins Spiel passen…

Zwar kann man in den Netzwerkeinstellungen aller gängigen Betriebssysteme die DNS-Einstellungen schnell ändern, doch den Port – über den die DNS-Anfragen laufen sollen – zu wechseln, ist meist nicht möglich. Versucht man dies etwa mit Ubuntu und dem NetworkManager, so weigert sich der NM die Einstellungen zu übernehmen.

DNS-Einstellungen des NetworkManagers
DNS-Einstellungen des NetworkManagers

Um die Zensurmaßnahme der Frau von der Leyen zu umgehen ist jedoch nur ein eigener DNS-Server nötig, denn bei beispielsweise bind9 ist es völlig problemlos möglich höhere DNS-Server über andere Ports als Port 53 abzurufen. Der Artikel auf zdnet geht ausführlich auf Windows als Betriebssystem ein und streif Linux nur kurz, ich ziehe das Pferd mal von der Ubuntu oder Debian Seite auf.

Installation von bind9

Die Installation kann auf Eurem Internet-Router oder auch auf Eurem Desktop erfolgen, als DNS-Server bietet sich bind9 an:sudo apt-get install bind9. Nach der Installation des Paketes, könnt Ihr an die die Konfiguration von bind9 gehen. Ihr müsst nur die Konfigurationsdatei /etc/bind/named.conf.options bearbeiten, alles andere ist eigentlich schon passend vorkonfiguriert.

$ sudo nano /etc/bind/named.conf.options

Dort können nun die vom eigenen DNS-Server zu nutzenden nicht zensierenden DNS-Server der German Privacy Foundation e.V., des FoeBuD e.V. oder des Chaos Computer Club e.V. eingetragen werden. Eine Liste mit unzensierten Servern findet sich auf den Seite der Privacy Foundation e.V. oder auf wikileaks.org. Die Einträge müssen letztendlich so ähnlich aussehen.

options {
[...]
        forward only;
        forwarders {
                87.118.100.175 port 110;
                62.141.58.13 port 110;
                87.118.104.203 port 110;
        };
[...]
};

Natürlich könnt Ihr einen Server Eurer Wahl verwenden. Die Portangabe ist bislang nur im UMTS-Netz von Vodafone nötig. Wer verhindern möchte, dass der DNS-Server von anderen Rechnern im lokalen Netzwerk angesprochen werden kann, der sollte noch die allow-query Option setzen.

options {
[...]
        allow-query { localhost; };
[...]
};

Dadurch ist bind9 vollständig eingerichtet, ein Neustart von bind9 mit sudo /etc/init.d/bind9 restart liest die neue Konfiguration ein, so dass die gerade getroffenen Einstellungen aktiv werden.

Eigenen DNS-Server im System verankern

Nun muss nur noch verhindert werden, dass das System die vom Internetprovider vermittelten DNS-Server verwendet, sondern brav den eigenen DNS-Server benutzt.

Bei DSL und pppoeconf

Solltet Ihr einen eigenen Rechner als Router benutzen, der via pppoeconfig die DSL-Verbindung aufbaut, oder Euren Desktop-Rechner direkt an das DSL-Modem angeschlossen haben und ebenfalls pppoeconf nutzen, so würde ich die zu nutzenden DNS-Server über resolvconf bestimmen. Dazu installiert Ihr das benötigte Paket…

$ sudo apt-get install resolvconf

…und bearbeitet die Datei /etc/network/interfaces.

$ sudo nano /etc/network/interfaces

Hier tragt Ihr die IP des eigenen DNS-Servers ein über die Option „dns-nameservers“ ein. Sollte der Einwahlrechner identisch mit dem DNS-Server sein, so reicht der Eintrag der IP des localhosts.

[...]
auto dsl-provider
iface dsl-provider inet ppp
pre-up /sbin/ifconfig eth1 up # line maintained by pppoeconf
provider dsl-provider
dns-nameservers 127.0.0.1
[...]

Nach einem Neustart der Netzwerkeinstellungen über $ sudo /etc/init.d/networking restart sollten die Einstellungen korrekt sein. In der Datei /etc/resolv.conf wird der zu benutzende Nameserver stehen.

$ grep nameserver  /etc/resolv.conf
nameserver 127.0.0.1

Die DNS-Server Eures DSL-Anbieters dürfen hier nicht mehr gelistet werden.

Mit dem NetworkManager

Sollte man den NetworkManager zum Verbindungsaufbau benutzen, so würde ich persönlich nicht die /etc/network/interfaces anpassen. Klickt ihr mit der rechten Maustaste auf das Icon des NetworkManagers im Panel, so seid Ihr in der Lage Eure Netzwerkeinstellungen zu konfigurieren. Dort könnt ihr auch die zu benutzenden DNS-Server einstellen. Wieder tragt ihr die IP eures DNS-Servers ein.

Wird der eigene DNS-Server auch benutzt?

Jetzt solltet Ihr noch überprüfen, ob der eigene Nameserver auch wirklich benutzt wird. Mittels dig könnt ihr die DNS-Einträge einer Domain bestimmen. Ihr bekommt auch gesagt von welchem DNS-Server diese stammen. In meinem Fall läuft der Nameserver auf dem eigenen Rechner, somit kommt die Antwort vom localhost.

$ dig linuxundich.de
[...]
;; Query time: 4 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Sep 28 13:19:53 2009
;; MSG SIZE  rcvd: 168
Vorheriger ArtikelPiratenpartei in Karlsruhe und die Bundestagswahl 2009
Nächster ArtikelUbuntu Netbook Remix und Canonical Moblin 2.0
Hallo, ich bin Christoph - Linux-User, Blogger und pragmatischer Fan freier Software. Wie ihr ohne Zweifel bemerkt haben solltet, schreibe ich hier über Linux im Allgemeinen, Ubuntu im Speziellen sowie Android und andere Internet-Themen. Wenn du Freude an meinen Artikel gefunden haben solltest, dann kannst du mir über Facebook, Twitter oder natürlich dem Blog folgen.

74 Kommentare

  1. mmh die ganze Geschichte wird so aber schon deutlich umfangreicher als wenn man wie bisher nur den DNS Server wechseln muss. Nicht dass diese Möglichkeit am Schluss auch noch gesperrt wird. Ist dies DNS-technisch möglich? Auf anderen Ports DNS-Anfragen auch umzuleiten?

    • Hallo Cristoph,
      ¨…Das Stichwort wäre Stateful Packet Inspection,…¨. Aufwendig heißt eben nicht unmöglich.

      Hop Host-Name IP Zeit 1
      1 dom 192.168.3.254 0.716
      1 dom 192.168.3.254 0.681
      2 dom 192.168.3.254 0.668
      2 10.121.83.101 10.121.83.101 31.313
      3 10.121.83.178 10.121.83.178 30.302
      4 mx-ll-110.164.0-157.static.3bb.co.th 110.164.0.157 58.432
      5 mx-ll-110.164.0-156.static.3bb.co.th 110.164.0.156 45.906
      6 mx-ll-110.164.1-173.static.3bb.co.th 110.164.1.173 42.947
      7 mx-ll-110.164.1-167.static.3bb.co.th 110.164.1.167 42.668
      8 mx-ll-110.164.1-123.static.3bb.co.th 110.164.1.123 45.939
      9 mx-ll-110.164.0-121.static.3bb.co.th 110.164.0.121 245.359
      10 decix-j1.inexio.net 80.81.192.137 262.069
      11 inexio1.cr2.network.manitu.net 89.238.127.34 269.041
      12 isc03.core.wnd.quarxconnect.org 89.238.77.23 271.737
      13 www-adv03.wnd.quarxconnect.org 89.238.77.73 263.873

      Habe mal eben Deine Domain abgefragt. 192.168.3.254 ist mein Router (Gateway hinter Modem). Die beiden lokalen IPs sind ein freundlicher Service vom Provider. Echt ärgerlich, das Tonbänder kein Standard mehr sind. Freut Euch, nach Jahren des Bastelns laufen die Dinger zu ca. 90% zuverlässig. . Es fällt also nur noch bei großen Updates, Authentifizierungsabläufen (meist PHP) und nicht erreichbaren Seiten auf. Ruft man diese häufig genug über alternative Wege auf, finden jene Seiten dann auch ihren Weg in das getürkte Konstrukt oder zum ¨Das ist nichts für Dich, Du bist ein Feind !!!!¨ (letzteres GLÜCKLICHERWEISE bisher nur Annahme)

      Freut Euch, wenn es ganz unauffällig läuft, wird es exportiert (wenn es nicht schon überall Alltag ist).
      Nennen wir es Abwehr von Terror. Für jeden Terroristen einen Proxy. Irgendwann sieht man die dann nicht mehr.
      _________________________________________________
      Normal ist das, woran man sich gewöhnt hat.

      beste Grüße aus Thailand
      Falkmar

  2. Eine Alternative hierzu wäre auch ein VPN. Wenn man eh einen Rootserver rumlaufen hat kann man diesen auch prima als „Non-Censored-DNS-Server“ missbrauchen/verwenden.

    Alternativ könnte man extra hierfür auch IPSec im Transport Mode verwenden…

    Es gibt so viele Möglichkeiten der Zensursula zu entkommen, die Frage ist nur welche Seite langfristig den größeren Aufwand betreiben wird/will.

    mfg Betz Stefan

  3. Hallo Michael, das Ganze ist unabhängig vom Router. Du kannst auf deinem Rechner den DNS-Server aufsetzen und dein System so einstellen, dass es eben den lokal installierten DNS-Server abfrägt.

    Besser wäre es natürlich, wenn du auf deinem System auf zusätzliche Dienste verzichten könntest und deinen Route dazu bringen könntest nichtzensierende DNS-Server über eineanderen Port abzurufen. Ich vermute dass dies nur mit OpenWRT und Co möglich wäre. Leider steht dein Router auf der Liste nicht Unterstützer Hardware

  4. Das wird ja immer absurder. Nicht genug, dass mein Provider ohne mein Wissen Umleitungen zu irgendwelchen dämlichen Stoppschildern vornimmt, jetzt schreibt er mir auch noch vor welchen DNS ich zu benutzen habe.
    Am besten werden die Pädophilen der Zensursula entkommen, in dem sie sich einfach eine 1TB Festplatte kaufen und die rumreichen. Das abscheuliche „Material“ wo dann da drauf ist wird dann wohl für lange Zeit reichen…

  5. Kommentar zu Fabian bzw. L7-Filter: Theoretisch(!) ist es sogar möglich DNS durch HTTPS(=Verschlüsselt und daher nicht filterbar) zu tunneln – und HTTPS können sie uns nun wirklich nicht verbieten…

  6. Wie ich feststellen musste ist es gar nicht so einfach DNS-Server zu finden die auf eine DNS-Anfrage auf Port 110 antworten.

    Gibt es eine Liste solcher Server?

    Ansonsten ist es recht einfach die wenigen die auf Anfragen auf Port 110 antworten auch noch „umzuleiten“.

  7. Hi Chris,
    Super Anleitung erstmal. Ich habe noch zusätzlich in der named.conf.options die „listen-on { 127.0.0.1; };“ directive.
    Außerdem kann man auch in der /etc/dhcp3/dhclient.conf die option: „prepend domain-name-servers 127.0.0.1;“ setzen wenn man einen DHCP server nutzt.

  8. Hallo Lee Van Cleef, ja das müsste gehen. Ein weiterer Trick wäre es per iptables den Port umzubiegen. Du kannst dich via ssh ja auf einem „Tomato-Router“ einloggen. Angenommen du willst den DNS-Server 87.118.100.175 auf Port 110 nutzen, dann könntest du via

    iptables -t nat -A OUTPUT -p udp --destination 87.118.100.175
    --dport 53  -j DNAT --to-destination 87.118.100.175:110
    

    den Port umbiegen. Allerdings weiß ich nicht wie du das bei Tomato fest eintragen kannst. Beim nächsten Reboot, ist die iptable-Regel wieder weg. In /etc/ finde ich keine Runlevel, so dass man da ein Skript eintragen könnte.

  9. @Frederik:
    Ja, generell hilft da End-zu-end-Verschlüsselung weiter, aber gerade HTTPS ist ja alles andere als performant (SSL+HTTP+TCP). Aus meiner Sicht ist es ja eigentlich schon lange soweit, daß das alte und zentralistische DNS durch eine dezentrale z.B. DHT basierte Lösung (in Anlehnung an Freenet) ersetzt wird (natürlich mit Fallback Unterstützung). Ja, DNS ist die Geißel des dezentral konzipierten Internet Protokolls und zudem noch unsicher und veraltet.

  10. Hi Christoph,

    ich habe Deine Anleitung abgearbeitet, inklusive dem Eintrag allow-query { localhost; }; in der ‚/etc/bind/named.conf.options‘., aber der Befehl dig linuxundich.de gibt mir dieses aus:

    ; <> DiG 9.5.1-P2 <> linuxundich.de
    ;; global options:  printcmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 48553
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
    
    ;; QUESTION SECTION:
    ;linuxundich.de.			IN	A
    
    ;; ANSWER SECTION:
    linuxundich.de.		3600	IN	A	89.238.77.11
    
    ;; Query time: 264 msec
    ;; SERVER: 213.73.91.35#53(213.73.91.35)
    ;; WHEN: Thu Oct  1 23:08:27 2009
    ;; MSG SIZE  rcvd: 48
    
  11. Ich hab die /etc/bind/named.conf.options mit sudo gedit bearbeitet, weil ich das mit nano leider nicht verstanden habe, bzw. hinbekommen habe. Meine /etc/bind/named.conf.options sieht wie folgend aus.

    options {
    	directory "/var/cache/bind";
    	auth-nxdomain no; 
    	listen-on-v6 { any; };
    };
    

    Danach habe ich im NetworkManager unter IPv4-Einstellungen bei DNS Server auch die drei oben eingetragenen DNS Server eingegeben (213.73.91.35, 208.67.222.222, 208.67.220.220).

    Habe ich da was falsch verstanden? Ich sollte erwähnen, das ich nur einen PC betreibe, und dieser direkt an einem Router hängt.

    Sorry für die Mühen, ist es besser einen Thread im Ubuntuusers Forum zu eröffnen?!

    [moderiert von Christoph: Kommentare aus named.conf.options entfernt.]

  12. Ich habe die /etc/bind/named.conf.options nun um das forward only ergänzt:

            // forward only;
    	// forwarders {
    	// 	213.73.91.35;
            //      208.67.222.222;
            //      208.67.220.220;
            //      allow-query { localhost; };     
    	// };
    

    Dies hat aber keine Änderung bei der Ausgabe von dig linuxundich.de gebracht!?

    P.S.: Leider kriege ich das hier nicht mit den Codeblöcken hin!?

  13. Das ist einfaches html, du musst deine Konfiguration in <pre>…</pre> Tags packen. Hast du da wirklich überall die // gesetzt? Das bedeutet, dass du die Zeile auskommentierst.

  14. forward only;
    forwarders {
    213.73.91.35;
    208.67.222.222;
    208.67.220.220;
    allow-query { localhost; };
    };

    auth-nxdomain no; # conform to RFC1035
    listen-on-v6 { any; };
    };
    Nach einem sudo /etc/init.d/bind9 restart wird mir aber eine FAIL Fehlermeldung angezeigt!

  15. Ich glaub du bringst du etwas die Syntax durcheinander, die Datei sollte in deinem Fall so…

    options {
    	directory "/var/cache/bind";
    	auth-nxdomain no;    # conform to RFC1035
    	listen-on-v6 { any; };
    	
    	forward only;
    	forwarders {
    		213.73.91.35;
    		208.67.222.222;
    		208.67.220.220;
    	};
    };
    

    ausehen.

  16. Na nun funktioniert der bind9 Neustart,…aber wo genau trage ich nun das allow-query { localhost; }; ein? Oder ist das in meinem Single PC Netzwerk gar nicht nötig? Interessiern würds mich schon, wo man das einträgt, denn der Befehl dig linuxundich.de gibt immer noch nicht das aus, was Du oben nennst.

  17. Einfach noch in die Options klatschen. Also bspw.

    options {
    	directory "/var/cache/bind";
    	auth-nxdomain no;    # conform to RFC1035
    	listen-on-v6 { any; };
    
    	forward only;
    	forwarders {
    		213.73.91.35;
    		208.67.222.222;
    		208.67.220.220;
    	};
            allow-query { localhost; };
    };
    
  18. Habe nun in der /etc/bind/named.conf.option alles so eingetragen, wie Du es genannt hast, trotzdem zeigt mir dig linuxundich als Server: 213.73.91.35#53(213.73.91.35) an, und nicht wie bei Dir Server: 127.0.0.1#53(127.0.0.1) ?

    Das ist momentan mein Verständnisproblem!

  19. savalas, ok. Dann ist ds Problem eingegrentzt, du musst deinem System noch sagen, den lokalen DNS-Server zu benutzen. Was benutzt du denn für den Netzwerkzugang? Den NetworkManager?

  20. savalas, hast du mit der rechten Maustaste auf das Icon des NetworkManagers geklickt, „Verbindungen bearbeiten“ gewählt, den „Auto eth0“ eintrag bearbeitet und dort unter „IPv$-Einstellungen auf „Automatisch (DHCP), nur Adressen“ deinen DNS-Server eingetragen? So ähnlich wie hier…

  21. savalas, da ist das Problem. Du sagst an dieser Stelle welcher DNS-Server zu nutzen ist. Trage dort eben deinen lokalen DNS-Server und nicht die im Netz ein. Erst dann, wird dein lokaler DNS-Server benutzt.

  22. Na endlich, was ne Geburt! Is halt so, wenn die Profis mit mit den Amteuren…!

    Vielen Dank! Und hoffentlich beim nächsten mal mit weniger Begriffstutzigkeit!!

    Bis denne und ein schönes WE wünscht savalas

    P.S.: In Deinem NetworkManager sieht man IPv6 Einstellungen? Is das erst unter Karmic so?

  23. Hallo Christoph,

    Ich habe hier (eigentlich erst nur für den Gebrauch im privaten LAN gedacht) einen DNS-Proxy gebastelt, wo es reicht in der Konfigurationsdatei /etc/dnsproxy.conf so etwas einzutragen:

    (…)
    nameserver 87.118.100.175
    port 110
    (…)

    …, dann braucht man kein ganzes Bind zu installieren und zu konfigurieren.

    Unter folgender Adresse habe ich auch ein Deb-Paket (vorkonfiguriert) bereitgestellt. Es reicht, das zu installieren und den Server im Networkmanager auf 127.0.0.1 zu stellen.

    http://freehal.org/other/dns-proxy/

    Gruß
    Tobias Schulz

  24. Hi,

    ich nochmal, hab da abschließend nochmal eine Frage,…dadurch, das ich mir auf meinem Rechner einen Server bind9 installiert habe, muß mir Gedanken machen über Sicherheit, offene Ports oder Sonstiges?

    bin wie man oben lesen konnte doch reichlich unerfahren mit Serverdiensten.

  25. Mit der Option „allow-query { localhost; };“ sagst du bind9 ja, dass nur der eigene Rechner auf den Dienst zugreifen darf. Von daher können anderen Rechner nicht auf den Dienst zugreifen.

  26. Ahh,…O.K.! Das ist mir nur so eingefallen, weil auf einer Seite gelesen habe, das man prüfen soll, ob bind9 gefährdet ist.

    Ich habe dann diesen Befehl ausgeführt:
    dig +short @127.0.0.1 porttest.dns-oarc.net TXT

    Als Anrwort wurde mir dann ausgegeben: porttest.y.x.w.v.u.t.s.r.q.p.o.n.m.l.k.j.i.h.g.f.e.d.c.b.a.pt.dns-oarc.net.
    „208.69.35.13 is GREAT: 31 queries in 6.6 seconds from 31 ports with std dev 19632“

    Erneut vielen Dank für die beruhigende Antwort.

  27. Und was macht man, wenn die Provider die Sperren auf IP Ebene umsetzen? Sprich mittels Firewall blockieren?

    Außerdem verstehe ich nicht ganz, wie man gegen Zensur sein kann und gleichzeitig fordert man das Löschen, ist das Löschen nicht auch eine Art der Zensur?

  28. Und was macht man, wenn die Provider die Sperren auf IP Ebene umsetzen? Sprich mittels Firewall blockieren?

    Natürlich könnten Provider DNS-Server sperren, doch dann würde man das wenigstens merken, das wäre dann aber ein Hase und Igel Spiel… Die einzig endgültige Lösung für Provider wäre Deep Packet Inspection, somit bliebe dann nur noch das Tunneln von DNS über SSH oder ein VPN.

    Außerdem verstehe ich nicht ganz, wie man gegen Zensur sein kann und gleichzeitig fordert man das Löschen, ist das Löschen nicht auch eine Art der Zensur?

    Ähm, dir ist klar um welche Seiten es geht?

  29. @Barkistan: Nein, weil das Löschen rechtsstaatlicher Kontrolle unterliegt. Die Netzsperren hingegen sind eine Black Box, die für Außenstehende nicht kontrollierbar ist.

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein