decehakan
Goto Top

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 face-smile ?

VIelen Dank und Viele Grüße

decehakan

Content-Key: 601260

Url: https://administrator.de/contentid/601260

Printed on: April 19, 2024 at 18:04 o'clock

Mitglied: 145916
145916 Sep 02, 2020 updated at 14:32:08 (UTC)
Goto Top
Moin.
Ü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 face-smile.
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
iptables -I FORWARD -i wg0 -o eth0 -p tcp --match multiport --dports 443,80 -j DROP

Gruß eagle
Member: decehakan
decehakan Sep 02, 2020 at 14:32:03 (UTC)
Goto Top
Zitat von @145916:

Moin.
Über IP-Forward wird eingehende und ausgehende Traffic über das wg0 Interface zugelassen.


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.
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. Durch das IP-Forward wird der Traffic zwischen eth0 und wg0 gestattet. Wenn das Paket wg0 über eth0 verläuft und über eth0 ins Internet gelangt, dann muss die HTTP / HTTPS port geblockt werden.
Mitglied: 145916
Solution 145916 Sep 02, 2020 updated at 14:44:37 (UTC)
Goto Top
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!

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...

screenshot



Beantworte doch erst mal meine oben gestellten Fragen, bitte, Danke.
Member: decehakan
decehakan Sep 02, 2020 at 14:56:05 (UTC)
Goto Top
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.
Der OUTPUT-Chain ist kein richtiger ausgehender Firewall sondern gilt eher nur für sich selbst (System,Dienste ) ?
Mitglied: 145916
Solution 145916 Sep 02, 2020 updated at 15:07:24 (UTC)
Goto Top
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.
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.
Member: decehakan
decehakan Sep 02, 2020 at 16:05:07 (UTC)
Goto Top
Ich dachte immer ausgehende firewall Regeln wie von pfsense, Cisco, opense bestimmen den ausgehenden traffic von allen Netzwerken clienten, dann lag ich damit falsch. Danke for you wisdom und Geduld face-smile