Wireguard und Firewall-und Netwerkgrundlagen
Hallo Zusammen,
ich hab auf mein Ubuntu Server, 20.04 LTS headless-Variante Wireguard VPN-Server am laufen. Ich hab zur Lern-und Übungzwecke den ausgehenden Traffic für HTTP und HTTPS (Port 80,443) geblockt und dennoch kann ich als Client, wo der ganze Traffic über den VPN-Server läuft im Internet surfen. Eigentlich müsste es ja gar nicht laufen, da der ausgehende Traffic über eth0 für die Ports 80,443 geblockt ist?!
Mein Netzwerkverständnis sieht so aus, ich verbinde mich zum VPN Server über wg0 Interface und bekomme die IP 10.1.1.1 zugewiesen. Über IP-Forward wird eingehende und ausgehende Traffic über das wg0 Interface zugelassen. Durch Nating wird das IP-Netz 10.1.1.0/28 zum HOST-IP über eth0 Interface geroutet. Nun bestimmt die ausgehende Firewallregel was den Server verlassen darf und was nicht. Wo ist der Fehler ?Oder mein Defizit
?
VIelen Dank und Viele Grüße
decehakan
ich hab auf mein Ubuntu Server, 20.04 LTS headless-Variante Wireguard VPN-Server am laufen. Ich hab zur Lern-und Übungzwecke den ausgehenden Traffic für HTTP und HTTPS (Port 80,443) geblockt und dennoch kann ich als Client, wo der ganze Traffic über den VPN-Server läuft im Internet surfen. Eigentlich müsste es ja gar nicht laufen, da der ausgehende Traffic über eth0 für die Ports 80,443 geblockt ist?!
Mein Netzwerkverständnis sieht so aus, ich verbinde mich zum VPN Server über wg0 Interface und bekomme die IP 10.1.1.1 zugewiesen. Über IP-Forward wird eingehende und ausgehende Traffic über das wg0 Interface zugelassen. Durch Nating wird das IP-Netz 10.1.1.0/28 zum HOST-IP über eth0 Interface geroutet. Nun bestimmt die ausgehende Firewallregel was den Server verlassen darf und was nicht. Wo ist der Fehler ?Oder mein Defizit
VIelen Dank und Viele Grüße
decehakan
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 601260
Url: https://administrator.de/forum/wireguard-und-firewall-und-netwerkgrundlagen-601260.html
Ausgedruckt am: 05.04.2025 um 03:04 Uhr
6 Kommentare
Neuester Kommentar

Moin.
.
Ohne harte Fakten wie deine Regeln kannst du uns aber jagen.
Schau dir also nochmal den Traffic-Flow der iptables chains an.
iptables process flow
Generell lautet eine Regel für das Blocken von 443 und 80 (bei Default Policy "Accept") für oben so aus
Gruß eagle
Über IP-Forward wird eingehende und ausgehende Traffic über das wg0 Interface zugelassen.
Damit lässt du ja schon sämtlichen Traffic für die Wireguard Clients zu Nun bestimmt die ausgehende Firewallregel was den Server verlassen darf und was nicht. Wo ist der Fehler ?Oder mein Defizit ?
Was ist für dich "die ausgehende" Firewallregel? Du meinst die OUTPUT-Chain? Wenn ja, dann liegst du falsch. Die OUTPUT-CHAIN ist nur für den Traffic den der Server selbst erzeugt nicht die Clients deren Traffic nur geforwarded werden. Der Client-Traffic läuft hier über die Forward-Chain, der Server ist hier nur der Vermittler der deren Traffic weiterleitet.Ohne harte Fakten wie deine Regeln kannst du uns aber jagen.
Schau dir also nochmal den Traffic-Flow der iptables chains an.
iptables process flow
Generell lautet eine Regel für das Blocken von 443 und 80 (bei Default Policy "Accept") für oben so aus
1
iptables -I FORWARD -i wg0 -o eth0 -p tcp --match multiport --dports 443,80 -j DROP
Gruß eagle

Zitat von @decehakan:
Der Ubuntu Server ist auch gleich VPN-Server und die Schnittstelle eth0 und wg0 gehören ebenfalls zum Server, daher betrifft der OUTPUT-CHAIN sowohl eth0 und wg0.
Generel erst mal richtig, die OUTPUT CHAIN gilt aber nicht für den Clienttraffic, und um die geht es hier! Die Output-Chain ist nur für Traffic welchen Prozesse auf dem Server selbst generieren!Der Ubuntu Server ist auch gleich VPN-Server und die Schnittstelle eth0 und wg0 gehören ebenfalls zum Server, daher betrifft der OUTPUT-CHAIN sowohl eth0 und wg0.
Du hast da offensichtlich noch ein grobes Verständnisproblem. So sieht der Flow eines Wireguard-Clients auf dem Server aus, die OUTPUT-Chain hat damit gar nichts am Hut. MASQUERADING findet in der POSTROUTING-CHAIN statt, falls du fälschlicherweise meinst das das "lokal generierter Traffic" wäre, das ist nicht der Fall...
Beantworte doch erst mal meine oben gestellten Fragen, bitte, Danke.

Zitat von @decehakan:
Also eine ausgehende Firewallregel besagt, welcher Verbindung die Firewall verlassen dürfen
Argh, bleiben wir doch bitte bei den richtigen Acronymen, die OUTPUT-Chain. Ich verbessere deinen Satz: Die OUTPUT Chain betrifft nur Traffic den die Firewall selbst durch Prozesse/Dienste generiert.Also eine ausgehende Firewallregel besagt, welcher Verbindung die Firewall verlassen dürfen
oder nicht und diese Regel betrifft dann alle Clienten, die mit der Firewall verbunden sind.
Nein die Clients betrifft hier die OUTPUT-Chain in keinem Fall, siehe meine ergänzende Grafik dazu oben. Client-Traffic ist nur ein durchgeleiteter Posten wenn die Ziel-IP nicht die Firewall selbst (INPUT) ist.Der OUTPUT-Chain ist kein richtiger ausgehender Firewall sondern gilt eher nur für sich selbst (System,Dienste ) ?
s. Erläuterung erster Abschnitt, sie betrifft nur lokal durch Prozesse und Dienste erzeugten Traffic. Die OUTPUT-Chain ist natürlich eine Firewall nur eben für Traffic der Firewall selbst.Wenn du das Schaubild oben verinnerlichst und dir vorstellst wie die Pakete da durch fließen wird das ganze eigentlich ganz deutlich.