Am liebsten etwas ähnliches iptables. Grundsätzlich möchte ich Domain Filtering / Whitelisting / Blacklisting durchführen, wie ich es mit IPs tun würde iptables. Gibt es Empfehlungen dazu?
was / warum versuchst du zu blocken Versuchen Sie, ausgehendes / eingehendes HTTP oder SMTP oder NTP zu filtern? Für verschiedene Szenarien können verschiedene Tools verwendet werden.
@josten Idealerweise würden Sie einen HTTP-Proxy wie Squid verwenden . Das Blockieren von Domain-Namen in iptableskann erfolgen , aber es kann schwierig sein
Creek
Antworten:
8
Wenn Sie den Datenverkehr mithilfe der Namensauflösung mit iptables-Regeln löschen, werden die Namen beim Erstellen dieser Regel aufgelöst. Wenn sich etwas ändert, ist Ihre Regel nicht mehr gültig. Dies könnte eine Lösung sein (keine schöne ...):
# host www.facebook.com
www.facebook.com A record not found, try again
Grundsätzlich sagen Sie zu jedem DNS-Paket ( udp/53), dass die hexadezimale Zeichenfolge www.facebook.com togelöscht werden soll. Beachten Sie, dass dadurch die Namensauflösung und nicht der HTTP-Datenverkehr selbst gelöscht wird.
Die mit Pipes ( |03|www|08|facebook|03|com) getrennten Hex-Zahlen sind die Darstellung des .Punktsymbols bei DNS-Abfragen. Es wird angegeben, wie viele der folgenden Zeichen die einzelnen Teile eines FQDN darstellen (Host, Domain, Top-Level-Domain). Beispiel:
Vielleicht ist die Antwort auf Ihre Frage zu spät, aber kürzlich musste ich ein ähnliches Problem lösen und Google bringt mich hierher
Nach erfolglosen Suchen habe ich ein kleines Hilfsprogramm in C geschrieben, das DNS-Antworten abfängt, den darin enthaltenen Domainnamen mit der angegebenen Regex vergleicht und übereinstimmende IP-Adressen auflistet. Hier ist es: https://github.com/vmxdev/sidmat/
Sie müssen keinen eigenen DNS-Server einrichten. Das Dienstprogramm kann DNS-Antworten von jedem Server abrufen
Wenn Sie beispielsweise die IP-Adressen von facebook.com (und Subdomains) anzeigen möchten, die gerade aufgelöst werden, können Sie sie ausführen
Wenn ein lokaler Caching-Bind9 ausgeführt wird, wird dies häufig durch a realisiert dummy-block
zone "facebook.com" { type master; file "dummy-block"; };
und die dummy-blockDatei:
$TTL 604800
@ IN SOA localhost. root.localhost. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS localhost.
@ IN A 127.0.0.1
* IN A 127.0.0.1
iptables
kann erfolgen , aber es kann schwierig seinAntworten:
Wenn Sie den Datenverkehr mithilfe der Namensauflösung mit iptables-Regeln löschen, werden die Namen beim Erstellen dieser Regel aufgelöst. Wenn sich etwas ändert, ist Ihre Regel nicht mehr gültig. Dies könnte eine Lösung sein (keine schöne ...):
Von einem anderen Host im LAN:
Grundsätzlich sagen Sie zu jedem DNS-Paket (
udp/53
), dass die hexadezimale Zeichenfolgewww.facebook.com to
gelöscht werden soll. Beachten Sie, dass dadurch die Namensauflösung und nicht der HTTP-Datenverkehr selbst gelöscht wird.Die mit Pipes (
|03|www|08|facebook|03|com
) getrennten Hex-Zahlen sind die Darstellung des.
Punktsymbols bei DNS-Abfragen. Es wird angegeben, wie viele der folgenden Zeichen die einzelnen Teile eines FQDN darstellen (Host, Domain, Top-Level-Domain). Beispiel:Wirt:
mail.google.com
Hex-Darstellung:
04 6d 61 69 6c 06 67 6f 6f 67 6c 65 03 63 6f 6d
"visuelle Darstellung:
04mail06google03com
Das Paket mit tcpdump bekommen:
Aber erinnere dich:
Quellen: Hier und hier
quelle
Vielleicht ist die Antwort auf Ihre Frage zu spät, aber kürzlich musste ich ein ähnliches Problem lösen und Google bringt mich hierher
Nach erfolglosen Suchen habe ich ein kleines Hilfsprogramm in C geschrieben, das DNS-Antworten abfängt, den darin enthaltenen Domainnamen mit der angegebenen Regex vergleicht und übereinstimmende IP-Adressen auflistet. Hier ist es: https://github.com/vmxdev/sidmat/
Sie müssen keinen eigenen DNS-Server einrichten. Das Dienstprogramm kann DNS-Antworten von jedem Server abrufen
Wenn Sie beispielsweise die IP-Adressen von facebook.com (und Subdomains) anzeigen möchten, die gerade aufgelöst werden, können Sie sie ausführen
Wobei eth0 die Netzwerkschnittstelle auf dem Router ist (oder wo DNS-Antworten weitergeleitet werden)
Sie können es problemlos in iptables (oder iptables mit ipset) integrieren.
Aber:
quelle
Für das Blacklisting ist es wahrscheinlich am einfachsten, dnsmasq zu verwenden
Installieren
dnsmasq
und füge diese Zeile hinzu zu
/etc/dnsmasq.conf
Dies blockiert facebook.com und alle seine Subdomains.
Hinweis: Für Ubuntu finden Sie in diesem Beitrag .
quelle
Wenn ein lokaler Caching-Bind9 ausgeführt wird, wird dies häufig durch a realisiert
dummy-block
und die
dummy-block
Datei:Siehe auch:
Ausführen von BIND9 und ISC-DHCP mit
facebook.com
Beispiel.Ein einfacher DNS-basierter Ansatz zum Blockieren von Webwerbung
quelle