Domains per Eintrag in HOSTS blocken, wo ist die Grenze erreicht?

k491

Well-known member
20 April 2006
5.421
257
Ich habe aufgrund meiner Abneigung gegenüber einiger US Giganten (z.B. das berühmte G oder das allseits so beliebte f) und weiter auch aus Datenschutzgründen etliche Domains auf 127.0.0.1 umgeleitet um diese lokal auf meinen Systemen zu blockieren, jedoch kommen mit der Zeit immer mehr Domains dazu die ich in die HOSTS eingetragen habe, zumal man keine Wildcard nutzen kann sondern zu der TLD auch sämtliche bekannte Subdomains eintragen muß.

Nun frage ich mich, ob es nicht ab einer gewissen Größe zu Problemen führt die mein System verlangsamen könnte?
Ich bin erst bei etwa 40-50 Einträgen was vermutlich noch kein Problem sein sollte, aber ich frage mich wo die *ungefähre* Grenze liegen könnte bei der es möglicherweise problematisch wird? 100? 1.000? Oder 10.000 Einträge?


Gerne können wir auch über Sinn/Unsinn dieser Maßnahme(n) diskutieren, primär würde mich aber erstmal die Frage der möglichen Performance-Einbußen interessieren, auch wenn dies vermutlich nicht ganz leicht einzuschätzen ist.
 
Ich kann natürlich nicht in den Windows-Quellcode gucken (Linux kannstde den Code selber lesen :p), aber mal nur mit brain.exe argumentiert:

Wenn du einen Host anforderst, muss dein Betriebssystem diesen per DNS auflösen. Es tut nun der Reihe nach Folgendes:

  1. Guckt nach, ob bereits im Cache ein (nicht verfallener) Eintrag liegt. Falls ja, nutzt ihn. Falls nein, Goto 2.
  2. Guckt nach, ob in der Hostsdatei ein passender Eintrag steht. Falls ja, setzt ihn in den Cache und nutzt ihn. Falls nein, Goto 3.
  3. Sendet an den konfigurierten DNS-Server (der Reihe nach, falls mehrere) eine Anfrage. Falls erfolgreich, setzt die Antwort in den Cache und nutzt sie. Falls nein, meldet es an den Aufrufer (=das Programm, z.B. der Browser/eMail-Client) einen Fehler.
Zurück zu deiner Frage:
Du sorgst nun dafür, dass mit je mehr Domains in der Hostsdatei liegen, weniger Anfragen an deinen DNS gehen (sogar Performance-Plus). Die Frage is halt, wenn du alle 10.000 Domains in deiner Hostsdatei der Reihe nach aufrufst und dein OS die alle erst in den Cache laden muss und dabei die Hostsdatei jedes Mal neu eingelesen werden muss (Hinweis: Mir is unbekannt, wie die konkrete Implementierung aussieht; is geh vom Worst-Case aus; vielleicht liest das OS auch die Hostsdatei bei der ersten Domain komplett in Cache), ob das nicht ein Performance-Minus is.

Du kannst den Cache mit entsprechenden Tools überprüfen:
Windows: ipconfig /showdns (IIRC)

Ich glaub aber nicht. Du kannst z.B. mit Firefox-/Chrome-Entwicklungstools checken, wie lange der Browser auf den DNS-Eintrag warten muss. Sei vorsichtig mit solchen Messungen, weil überall Caches liegen. z.B. cacht der Firefox unabhängig vom OS den DNS-Eintrag, eine Fritz!Box auf dem Weg nach draußen cacht DNS-Einträge, ...

Gerne können wir auch über Sinn/Unsinn dieser Maßnahme(n) diskutieren, [...]
Um den Unsinn weiterzutreiben: Wenn du mehrere Rechner im Netzwerk hast, die du von Google und dem Gesichtsbuch isolieren willst, bietet es sich an, einen entsprechenden DNS-Server selber zu betreiben. Diesen setzt du dann als Primär-DNS im Netzwerk ein und kannst die Blockliste zentral pflegen.


Meine persönliche Meinung:
Blockierung per Hostsdatei ist nervig. Ich hatte damals mal irgendwas installiert (ich vermute, es war ZoneAlarm damals), was mir "freundlicherweise" alle möglichen Werbelieferanten als "127.0.0.1" in meine Hostsdatei eingetragen hatte.
Ich hab mich monatelang gewundert, warum meine Webseite in Entwicklung auf allen möglichen Seiten angezeigt wurde!? Logisch, die Banner wurden durch einen Localhost-Aufruf ersetzt.

Hast du lokal keinen HTTP-Server laufen, weil du ein Otto-Normal-Verbraucher bist (Otto-Normal-Verbraucher würden auch keine solchen Blocking-Aktionen machen ;-)), stört das nicht.
Ich würde - hab tatsächlich wegen dem Gesichtsbuch schon mal drübernachgedacht - zu einer Firewall-Lösung tendieren. Wenn eine Webseite n unsichtbaren iFrame auf https://173.252.120.6 (öffne diesen Link mal im privaten Fenster - das kannst du nicht blocken mit deiner Lösung! :p) einbindet, hast du denen trotzdem alles mögliche mitgeteilt :evil:
 
Du kannst z.B. mit Firefox-/Chrome-Entwicklungstools checken, wie lange der Browser auf den DNS-Eintrag warten muss.
Interessant, wie genau nennt sich diese Funktion? Mit DNS finde ich da nix und bei Netzwerkaktivität bin ich ja schon wieder zu weit, da bin ich ja schon an der DNS Anfrage vorbei.
Auch wäre ein Referenzwert hilfreich, wobei ich natürlich die HOSTS auch testweise einmal ohne meine Einträge testen könnte.

Blockierung per Hostsdatei ist nervig. Ich hatte damals mal irgendwas installiert (ich vermute, es war ZoneAlarm damals), was mir "freundlicherweise" alle möglichen Werbelieferanten als "127.0.0.1" in meine Hostsdatei eingetragen hatte.
Ich hab mich monatelang gewundert, warum meine Webseite in Entwicklung auf allen möglichen Seiten angezeigt wurde!? Logisch, die Banner wurden durch einen Localhost-Aufruf ersetzt.
Trifft auf mich nicht zu, bisher habe ich nur positive Erfahrungen gemacht, ebenso hat mich die Hosts auch vor Deiner 'hinterlistigen' IP geschützt:
Ich würde - hab tatsächlich wegen dem Gesichtsbuch schon mal drübernachgedacht - zu einer Firewall-Lösung tendieren. Wenn eine Webseite n unsichtbaren iFrame auf https://173.252.120.6 (öffne diesen Link mal im privaten Fenster - das kannst du nicht blocken mit deiner Lösung! :p) einbindet, hast du denen trotzdem alles mögliche mitgeteilt :evil:
Die haben eine Weiterleitung auf Ihre Domain, wenn ich die IP über Deinen Link aufrufe, bekomme ich "Firefox kann keine Verbindung zu dem Server unter www.facebook.com aufbauen."
Laut Netzwerkanalyse scheint auch keinerlei Kommunikation stattzufinden.

Ich bin wie gesagt eigentlich ganz glücklich mit meiner Lösung, nur doof das Google hunderte(!) Domains hat :xx:

Aber irgendwie muß man sich ja um seinen Datenschutz kümmern, wenn man sich mal mit den Nutzungsbedingungen der Dienste auseinandersetzt; wird einem ja ganz anders.

Früher hatte ich bei den Cookies ne Blacklist die ich gepflegt habe, mittlerweile ist es ja aus Datenschutzsicht purer Wahnsinn, überhaupt Cookies zu akzeptieren. Ich bin dazu übergegangen, keine Cookies mehr zu akzeptieren und pflege nun nur noch eine sehr sparsame Whitelist.
 
Zuletzt bearbeitet:
Interessant, wie genau nennt sich diese Funktion? Mit DNS finde ich da nix und bei Netzwerkaktivität bin ich ja schon wieder zu weit, da bin ich ja schon an der DNS Anfrage vorbei.
F12 - du bist schon richtig:
dns-resolve-time.png

Auch wäre ein Referenzwert hilfreich, wobei ich natürlich die HOSTS auch testweise einmal ohne meine Einträge testen könnte.
Benutz ne "gute" Seite und teste einmal mit und einmal ohne Blockierung. Wie gesagt: Die Chance, die Messung durch Caching zu versauen (theoretisch könnte es ein Cache "draußen" sein, den du nicht steuern kannst), is hoch. Wobei, siehe oben, du siehst, dass DNS-Auflösung auch mal ne Weile dauern kann. Mein Wert im Screenshot scheint mir ein sehr hoher Wert zu sein. Ohne Nach-Draußen-Funken sollte der Wert wahrscheinlich zweistellig werden.
Trifft auf mich nicht zu, bisher habe ich nur positive Erfahrungen gemacht, ebenso hat mich die Hosts auch vor Deiner 'hinterlistigen' IP gaeschützt:

Die haben eine Weiterleitung auf Ihre Domain, wenn ich die IP über Deinen Link aufrufe, bekomme ich "Firefox kann keine Verbindung zu dem Server unter www.facebook.com aufbauen."
Laut Netzwerkanalyse scheint auch keinerlei Kommunikation stattzufinden.
Guck genau hin ;) Wer hat deinem Browser denn gesagt, er solle auf "www.facebook.com" umleiten? Du hast erfolgreich einen Request zu einem Gesichtsbuch-Server geschickt, ihm Daten wie z.B. deine IP übermittelt und auch eine Antwort erhalten.
Theoretisch können die sich jetzt sogar ausrechnen, dass du sie nicht magst, weil du keinen zweiten Request nach der Umleitung abgesetzt hast, was ein normaler Browser auf einem System, wo nicht gefummelt wurde, nur wenige Millisekunden später immer tun würde :ugly:
 
Guck genau hin ;) Wer hat deinem Browser denn gesagt, er solle auf "www.facebook.com" umleiten? Du hast erfolgreich einen Request zu einem Gesichtsbuch-Server geschickt, ihm Daten wie z.B. deine IP übermittelt und auch eine Antwort erhalten.
Theoretisch können die sich jetzt sogar ausrechnen, dass du sie nicht magst, weil du keinen zweiten Request nach der Umleitung abgesetzt hast, was ein normaler Browser auf einem System, wo nicht gefummelt wurde, nur wenige Millisekunden später immer tun würde :ugly:

Mag sein, die dürfen ruhig wissen das ich sie nicht mag ;) Immerhin haben die keinen Keks gefunden und konnten mir auch keinen andrehen.

Und zu F12:


Scheint mir sehr kurz zu sein, wobei für den Cache wäre es mir wieder zu lang mit ner SSD als Systemlaufwerk.
Verbindungsaufbau kommt aber gut hin, mein Ping ist lt. Test bei 15-17ms.
 
Scheint mir sehr kurz zu sein, wobei für den Cache wäre es mir wieder zu lang mit ner SSD als Systemlaufwerk.
Firefox hat einen separaten DNS-Cache. Bei mir steht z.B. beim Aufruf des Forums "1 ms". Das is ein Griff in den Hauptspeicher und fertig. Nix Platte/SSD, wenn im Cache. Cache = RAM.

Verbindungsaufbau kommt aber gut hin, mein Ping ist lt. Test bei 15-17ms.
Misch nicht alles durcheinander :p Verbindungsaufbau sind 3 Pakete (2 hin, 1 zurück -> Drei-Wege-Handshake von TCP). Ping funktioniert wieder anders.

Wenn du so genau alles unter die Lupe nehmen willst, dann musst du Wireshark auspacken. Und wehe, du hast grad ein verlorenes Paket oder dein OS muss zwei Pakete in falscher Reihenfolge zusammensetzen.

In dem Bereich <100ms halte ich solche Analysen für Zeitverschwendung, weil da zuviel mitreinspielt. Da reichts, wenn n wichtigerer Prozess in diesem Moment aufgeweckt wird, der Kern deinen Browser wegscheduled und er erst 5 Millisekunden später wieder drankommt und somit deine Messung verfälscht.
 
Na gut, dann halten wir mal fest; dass mit 50, 100 oder 200 Einträgen vermutlich keine nennenswerte Verzögerung hervorgerufen wird.
Kann man das so stehen lassen?
 
hosts

Hallo


Wenn das nur wenige Einträeg sind ok, für eine einzigen Client ok, wenn das aber in einem Home-LAN sein soll, quasi als "Ersatzfirewall"- "Ersatz-Kindersichdrung" ist das nat. ungeiegnet, da es ausgehebelt werden kann.
 
Wenn du Google komplett sperren willst, warum sperrst du dann nicht die kompletten Ip-Ranges?
Das geht schneller, ist sauberer und die Hosts bleibt Verhälnismäßig klein
 
Wenn du Google komplett sperren willst, warum sperrst du dann nicht die kompletten Ip-Ranges?
Das geht schneller, ist sauberer und die Hosts bleibt Verhälnismäßig klein

Klingt interessant, wie mache ich das? Ich kenne die IPs ja nicht.

Cool wäre es ja, dies schon in der FritzBox zu sperren 8)
 
D.h. >0,8544922% des gesamten (IPv4-)Internets gehört/ist Google 8O
 
Das spiegelt die Machtverhältnisse im Internet noch nicht ganz wieder... Es müsste noch mehr sein.
 
Wie ich diesen Decksladen hasse!

Obwohl sie sich um ihre Mitarbeiter ja geradezu hervorragend kümmern, die dürfen nur nicht allzuviel Privatsphäre verlangen :evil:
 
Wenn du Google komplett sperren willst, warum sperrst du dann nicht die kompletten Ip-Ranges?
Das geht schneller, ist sauberer und die Hosts bleibt Verhälnismäßig klein

Ich muß leider nochmal nachfragen, wie genau ich das Anstelle? In welchem Format muß ich die IP Adressbereiche eintragen?
 
Wo wir wieder bei der Firewall-Lösung wären ;)

Die Hostsdatei ordnet einem Host eine IP-Adresse zu.
Du kannst nicht mehrere IP-Adressen eintragen... abgesehen davon willst du das auch nicht, weil du als IP ja 127.0.0.1 eintragen willst.
 
Wo wir wieder bei der Firewall-Lösung wären ;)

Die Hostsdatei ordnet einem Host eine IP-Adresse zu.
Du kannst nicht mehrere IP-Adressen eintragen... abgesehen davon willst du das auch nicht, weil du als IP ja 127.0.0.1 eintragen willst.

Dann würde ich es gerne direkt im Router machen, aber ich glaube meine alte FritzBox bietet da nicht die notwendigen Einstellungsmöglichkeiten.

Eine extra Software will ich eigentlich nicht dafür verwenden :-?
 
Vorsicht: Der nachfolgende Betrag ist theoretischer Natur. Hab ich keine praktische Erfahrung mit der genannten Funktion.

Theoretisch müsste es gehen, wenn du in die Routing-Tabelle (Menü Heimnetz / Statische Routingtabelle / IPv4(/6)-Adressen) die Google-Netzwerke angibst und einen nicht-existierenden Rechner als Gateway angibst (nicht: 127.0.0.1, das is die Fritz!Box und die einzige Einstellung, die du nicht willst), z.B. 192.168.111.222.
Die Fritz!Box würde die Pakete, die du an Google senden willst, versuchen, über dieses Gateway rauszuschicken und es nicht auf die Reihe kriegen, weil keine Route dorthin gefunden wird. Ein Ping/TraceRt zu Google's IP (nicht: google.de, das hast du über DNS ja schon demoliert :ugly:) sollte dir dann ein "No route to host" bescheren.

Google (haha, Ironie :mrgreen:) aber vorher danach. Falsche Einstellungen und du darfst deine Box resetten, wenn du dich selber aussperrst :!:

edit:
Alternative is natürlich, bereits in deinem Betriebssystem die Einstellungen zu machen (dann schrottest du worst-case nur einen Rechner). Es is aber zu empfehlen, das Glied möglichst weit außen im Netzwerk zu nehmen (also die Fritz!Box), damit möglichst viele Geräte in den Genuss kommen. Machst du es am Rechner selber, musst du es ja für jeden Rechner machen und immer einheitlich lassen.
 
Zuletzt bearbeitet: