firewall im bridged VPN

lordg2009

Lt. Commander
Registriert
Apr. 2009
Beiträge
1.559
Hi, ich habe auf einem Rechner (debian) einen webserver und einen ts3server laufen. Der webserver war nur über LAN erreichbar. Realisiert habe ich dies mit einer firewall mittels iptables. Die POLICY habe ich auf DROP gesetzt und anschließend nur die ports für eth0 geöffnet, die ich anbieten wollte. Eine Art minimalpolitik, wenn man so will. Jetzt habe ich zusätzlich ein bridged VPN (br0 hat eine static IP und bridged eth0 -> physische Netzwerkkarte und tap0 -> virt. openVPN adapter). Da ich mich schwer tue, die Theorie des bridging gänzlich zu verstehen, wollte ich euch fragen, welche interfaces ich wofür berücksichtigen muss.

Meine Mutmaßungen:
  1. aller traffic läuft letztendlich über eth0, wenn ich für br0 und tap0 alles auf ACCEPT stelle und nur eth0 zumache, kommt nichts mehr durch?
  2. der traffic der VPN-clienten geht über den VPN Port durch eth0 und wird auf tap0 weiter verarbeitet, somit können VPN-Clienten den Webserver benutzen, auch wenn port 80 auf eth0 geschlossen ist, solange der VPN port offen ist und port 80 auf tap0 offen ist
  3. umgekehrt können VPN-Clienten den Webserver nicht errechen, wenn port 80 auf tap0 geschlossen ist, auch wenn er auf eth0 offen ist
  4. br0 ist das Verbindungs-interface zwischen eth0 und tap0. traffic der auf eth0 eintrifft und nicht geblockt wird trifft anschließend genauso auf br0 ein
  5. würde ein VPN-Client auf den webserver zugreifen, so würde der traffic über den VPN-Port auf eth0 eintreffen, anschließend über den VPN-Port auf br0 eintreffen, danach wieder auf dem VPN-Port auf tap0 eintreffen und von dort über port 80 an den webserver weitergeleitet werden

Habe ich das im Grundprinzip richtig verstanden, oder liege ich falsch?
 
Naja, Du hättest es einfacher lösen können :).

Wenn eth0 eine statische IP hat, kannst Du den Webserver eben auf diese IP "binden", so dass Traffic darauf von außen nicht funktioniert.
Was nutzt Du denn da? Apache? Nginx?

Ich frage mich gerade, warum Du eine Bridge eingerichtet hast?
Könntest doch auch einfach forwarding auf dem openVPN Interface aktivieren und den Traffic übers postrouting entsprechend weiterleiten.

Mal angenommen OpenVPN hat ein 10.0.0.0/24 Netz, dann würde das ganze in Befehlen so aussehen:

Code:
iptables -A FORWARD -i tun+ -j ACCEPT
iptables -A FORWARD -o tap+ -j ACCEPT

iptables -t nat -I POSTROUTING -o tun0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -s 10.0.0.0/24 -j MASQUERADE

Keine Bridge notwendig und dem Webserver kannste ja auf die statische IP binden und den Traffic ausm 10.0.0.0/24 Netz untersagen.

PS: Damit das ganze funktioniert, muss "net.ipv4.ip_forward" auf 1 gesetzt werden.
 
Zuletzt bearbeitet:
HM, ich habe mich jetzt für einen andere Variante entschieden. Letztendlich habe ich das bridged Network extra gewählt, damit die clienten mit Teil des Heimnetzwerkes sind und sozusagen die gleiche Stellung, wie auch die physisch angeschlossenen Clienten einnehmen. Daraus folgt, dass ich eigentlich gar keine interface-abhängigen Regeln brauche, ich erstelle einfach allgemeine Regeln, die von Ursprungs-, Ziel-Adresse und Ports abhängen. Damit könnte ich VPN-Clienten sogar gesondert behandeln, da sie eine andere DHCP-Range haben (.100 bis .150), als die lokalen Rechner (.10 bis .99).
 
Zurück
Oben