Raspberry als einfacher DNS Switch/Router mit einem ETH

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
Duckey
Beiträge: 2
Registriert: 23.12.2022 14:51:02

Raspberry als einfacher DNS Switch/Router mit einem ETH

Beitrag von Duckey » 23.12.2022 17:05:27

Hallo Forum,

ich dachte ich hab ein einfaches Problem, aber ich bekomme es einfach nicht hin.
Möglicherweise hab ich auch einen grundsätzlichen Denkfehler.

In meinem lokalen privaten Netzwerk laufen alle Rechner über meinen DNS Adblocker und dann zu Unbound, welche jeweils auf unterschiedlichen Raspberry Pis laufen (Alle Dienste haben eine eigene IP)
Allerdings verursacht ein von mir nicht administierbarer Client so viele Anfragen, dass die Statistik im Blocker komplett verfälscht wird.
Insofern würde ich ihn gern (einfach und unkompliziert :-) ) direkt zum DNS Server (Unbound) umleiten, sozugsagen ein Bypass nur für einen Rechner mit einer bestimmten IP Adresse.

Mein Ansatz war eine DNAT mit Iptables (Prerouting & Forward) um den betroffenen PC zu einer anderen IP umzuleiten.
Allerdings kommen die Anfragen weiterhin am Ablocker an und das Routing scheint überhaupt nicht zu funktionieren.

Es ergibt für mich überhaupt keinen Sinn. Oder ich hab da einen Denkfehler.

Beispielhaft für UDP und alles ink. Port 53:
iptables -A PREROUTING -s <Source-IP Bypass PC> -d <DNSBlock-IP> -p udp -j DNAT --to-destination <unbound-IP>
iptables -I FORWARD -i eth0 -o eth0 -j ACCEPT
Kein Snat weil, die Anwort kann direkt wieder an die <Source-IP Bypass PC> gehen

- Kann ich das überhaupt mit nur einem eth Port machen?
- Reichen mir IPtables oder brauche ich noch mehr SW?
- Muss ich die Pakete noch aktiv versenden?

Danke schon mal

mat6937
Beiträge: 2953
Registriert: 09.12.2014 10:44:00

Re: Raspberry als einfacher DNS Switch/Router mit einem ETH

Beitrag von mat6937 » 23.12.2022 18:24:50

Duckey hat geschrieben: ↑ zum Beitrag ↑
23.12.2022 17:05:27
Beispielhaft für UDP und alles ink. Port 53:
iptables -A PREROUTING -s <Source-IP Bypass PC> -d <DNSBlock-IP> -p udp -j DNAT --to-destination <unbound-IP>
Versuch mal mit:

Code: Alles auswählen

iptables -t nat -I PREROUTING 1 -i eth0 -p udp -s <Source-IP Bypass PC> -d <DNSBlock-IP> -j DNAT --to-destination <unbound-IP>
eth0 evtl anpassen. Mit tcpdump und dem richtigen Filter, mal sniffen was ankommt bzw. wohin es geht.

Duckey
Beiträge: 2
Registriert: 23.12.2022 14:51:02

Re: Raspberry als einfacher DNS Switch/Router mit einem ETH

Beitrag von Duckey » 23.12.2022 20:19:22

Danke für die schnelle Antwort.

In der Tat, mit der Interfaceangabe klappt die Weiterleitung :-D Endlich, danke! :-D

Allerdings scheint jetzt ohne Postrouting keine Antwort beim <Source-IP Bypass PC> mehr anzukommen.
Tcpdump zeigt eine Antwort an (richtige IP mit richtigem Port), aber es klappt leider nicht => Seit lädt nicht (Test mit Ipad).

Wenn ich den MASQUERADE setzte, klappt alles, Jedoch hat dann (logischerweise) der Log im Blocker die Absenderadresse des PI Routers.
iptables -t nat -A POSTROUTING -j MASQUERADE

Aber jetzt bin erst mal ich einen großen Schritt weiter. :-D

chrbr
Beiträge: 550
Registriert: 29.10.2022 15:53:26

Re: Raspberry als einfacher DNS Switch/Router mit einem ETH

Beitrag von chrbr » 23.12.2022 20:53:08

Duckey hat geschrieben: ↑ zum Beitrag ↑
23.12.2022 17:05:27
In meinem lokalen privaten Netzwerk laufen alle Rechner über meinen DNS Adblocker und dann zu Unbound, welche jeweils auf unterschiedlichen Raspberry Pis laufen (Alle Dienste haben eine eigene IP)
Mit unbound kann man auch sowas wie einen DNS Adblocker hinbekommen, und zwar mit local-void zones. Hier sind die ersten fünf Zeilen von meinem Rechner als Beispiel.

Code: Alles auswählen

> head -n 5 /etc/unbound/local-void.zones 
local-zone: "005.free-counter.co.uk" static
local-zone: "006.free-counter.co.uk" static
local-zone: "006.freecounters.co.uk" static
local-zone: "007.free-counter.co.uk" static
local-zone: "008.free-counter.co.uk" static
Vielleicht wäre sowas eine Alternative. Ich meine, dass auf der Unbound Seite ein Script void-zones-update.sh angeboten wird, dass von verschiedenen Servern die Namen von kritischen Seiten holt.

Das nur als Hinweis, auch für spätere Leser des Threads.

Viele Grüße,
Christoph

Antworten