Domain-Name-Server ändern
(letzte Änderung: 10.05.2018)
Ausschnitt vom CCC: "So dezentral das Internet auch aufgebaut ist, hier ist ein zentraler Punkt, wo Zensoren ansetzen können! Durch Manipulationen der DNS-Tabellen können Anfragen geblockt oder auf ganz andere Rechner umgeleitet werden.
Auf Verlangen der Bezirksregierung Düsseldorf werden Provider gezwungen, bestimmte Webseiten zu blockieren. Die Provider haben daraufhin ihre DNS-Daten in der oben beschriebenen Weise manipuliert. Die Listen wurden so verändert, dass alle Anfragen zu beanstandeten Webseiten umgeleitet werden. Sie bekommen dann – gegen Ihren Willen(!) – nicht mehr das zu sehen, was Sie angefordert haben, sondern eine ganz andere Seite. Eventuell sogar die Webseite der Bezirksregierung Düsseldorf." - -
Quelle: http://www.ccc.de/censorship/dns-howto/#dnsserver∞
Nicht nur eine Zensurgefahr besteht, es kann auch leichter recherchiert werden, welche Seiten man denn besucht.
Generell ist die Datei /etc/resolv.conf für die DNS-Zuweisung verantwortlich. Der Inhalt sollte so aussehen:
#domain hersteller.router
#search hersteller.router
nameserver 85.214.73.68
Da hinter dem Rautezeichen # nur Kommentare stehen, ist nur die dritte Zeile von Bedeutung. Hier sollte eine funktionierende IP eines Domain-Nameservers (DNS) eingetragen werden. Die ersten eingetragenen Zeilen in der resolv.conf sind mit einem #-Zeichen zu versehen, wie oben zu sehen.
Manche Netzwerkmanager in Linux setzen die resolv.conf immer wieder zurück. In dem Fall muss man dann die DNS direkt über das Netzwerkschnittstellenprogramm ändern. Nach Änderung sollte die Internet-Verbindung ggf. der Browser neu gestartet werden, damit sie dann auch die neue DNS-Adresse übernehmen.
( veraltete Methoden für wicd und networkmanager in KDE-Umgebung an dieser Stelle gelöscht. 10.05.2018 )
Welche DNS-Server sind derzeit eingepflegt?
Mit cat /etc/resolv.conf in der Konsole kann man überprüfen, ob die IPs übernommen wurden. Dort sollten die IPs nun nicht mehr mit 192.168. beginnen, denn das ist meist Standard. Hier werden nämlich die DNS-Anfragen an den eigenen DSL-Router weitergeleitet und von dortaus dann an den Internet-Service-Provider weitergeleitet.
Wo bekomme ich alternative DNS-Server-Adressen?
Probiere es einmal mit den Befehlen weiter unten oder schaue manuell mit deinem Browser auf die angegebenen Webseiten. Wenn du weisst, wie man ein Script ausführt, kopiere dir das Script weiter unten und führe es als Benutzer aus.
1. Einfache Anzeige der DNS-Server ohne anschließendem Geschwindigkeitstest. Kopiere einen von den beiden Befehlen in die Konsole/Terminal und führe ihn aus.
wget --no-check-certificate -qO - https://wiki.opennicproject.org/doku.php | egrep -o "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}"
wget -qO - https://ccc.de/censorship/dns-howto | egrep -A7 "rer DNS-Server" | egrep -o "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}"
2. Fortgeschrittene führen folgendes Script als Benutzer aus. Es wird eine nach Geschwindigkeit sortierte Liste ausgegeben.
#! /bin/bash
## This script parsing websites for some dns server ip's
## and sort it by best speed
##
## Output:
## General ping data to dns-servers
## copy paste data for /etc/resolv.conf
## copy paste data for your default network manager
DNS_DOCUMENTATION_SITES="https://ccc.de/censorship/dns-howto https://wiki.opennicproject.org/doku.php"
## get ip-adresses from dns-documentations and write it to /dev/shm/dns-server.txt
for i in $(wget --no-check-certificate -qO - $DNS_DOCUMENTATION_SITES | egrep -o "[0-9]{1,3}\.[0-9]{1,3}\.[1-2]?[0-9]{1,2}\.[1-2]?[0-9]{1,2}" | sort -u ); do
## If ip ping is ok, then write it to dns-server.txt
if ping -c 1 -w 1 $i | grep "time=" | cut -d \= -f4 | cut -d \. -f 1 | sed 's! ms!!' | egrep "[[:digit:]]" >/dev/null; then
pingtime_in_ms=$(ping -c 1 -w 1 $i | grep "time=" | cut -d \= -f4 | cut -d \. -f 1 | sed 's! ms!!' | egrep "[[:digit:]]")
printf "$i\t$pingtime_in_ms\n" >>/dev/shm/dns-server.txt
fi
done
## arrange dns-servers by ping speed
sort -n -k 2 /dev/shm/dns-server.txt > /dev/shm/dns-server_sorted.txt
rm /dev/shm/dns-server.txt
## general information
printf "\n#### General ping data to dns-servers ####\n"
cat /dev/shm/dns-server_sorted.txt | while read i t ; do printf "$i\t\tpingtime $t ms\n" ; done
printf "####\n"
## Print out for /etc/resolv.conf
printf "\n\n## IP data for /etc/resolv.conf\n\n"
for i in $(awk '{ print $1 }' /dev/shm/dns-server_sorted.txt); do
printf "nameserver $i\n"
done
echo
## Print out for your default network manager
printf "\n\n## IP data for network manager\n\n"
for i in $(awk '{ print $1 }' /dev/shm/dns-server_sorted.txt); do
printf "$i, "
done | cut -d \, -f 1-4
printf "\n\n"
rm /dev/shm/dns-server_sorted.txt
exit 0
Die angezeigten DNS-Server-Adressen dann in den jeweiligen Netzwerkmanager des Systems eintragen. Einen direkten Eintrag in der /etc/resolv.conf nur vornehmen, wenn das Programm resolvconf nicht installiert ist oder man es im Netzwerkmanager nicht einstellen kann.
Zurück