Openvpn Gateway - Verbindung kappen wenn VPN down funktioniert nicht
-
Hallo zusammen,
meine pfSense ist hinter einer Fritzbox virtualisiert auf Hyper-V (somit virt. WAN und LAN NIC im selben Netzbereich wie meine "normalen" Clients).
Ziel:
Wenn ein "normaler" Client als Gateway die LAN IP der Sense hat, dann soll der Client nur über den OpenVPN Tunnel ins Internet kommen. Ist der Tunnel down, dann gibts auch keine Internetverbindung. Die Sense soll im Endeffekt mom. nur das OpenVPN Gateway spielen, keine "normale" Verbindung ins Internet zur Verfügung stellen. Ich will keine Site2Site Verbindung machen sondern habe einen externen VPN Anbieter (Cyberghost).Ich habe alles nach folgender Anleitung eingerichtet: https://forum.pfsense.org/index.php?topic=76015.0
Klappt auch soweit alles, ABER beende ich den OpenVPN Dienst, dann kommt der Client immer über die NICHT VPN Verbindung ins Internet. Mache ich einen traceroute, dann geht die Verbindung zur Sense -> zur Fritzbox -> und raus ins Netz
Den Part "Routing" in der oben genannten Anleitung habe ich durchgeführt und dachte eigentlich das müßte reichen… Klingt ja auch logisch, wenn ich direkt sage aller Traffic nur zum VPN Gateway, dann erwarte ich eigentlich auch, daß das dann in Stein gemeißelt ist (wir sind ja nicht bei Windows ;) )
Also habe ich weiter geforscht und folgenden Thread gefunden: https://forum.pfsense.org/index.php?topic=84463.0
Ich habe die Floating Rules von derelict "hoffentlich" richtig eingetragen, aber auch das führt zu keiner Veränderung.
Das einzige was wirklich hilft ist die Holzhammermethode von derelict die er ebenfalls im obigen Thread beschreibt -> Checkbox: Skip rules when gateway is down
Das funktioniert tatsächlich, aber mir will nicht eingehen, warum die schöneren, an sich logischen Lösungen nicht funktionieren wollen.
Habe ich da irgendwie ein Verständnisproblem, einen grundlegenden Denkfehler oder wie kriege ich raus, was da falsch läuft? Die Logs sind jetzt doch eher böhmische Dörfer für mich…
Welche Daten kann/darf ich liefern?
Im ersten Schritt würde ich jetzt nur mal die floating rules direkt posten, da ich hoffe sie richtig verstanden zu haben, aber nicht völlig sicher bin:
Unter Firewall - Rules - LAN die bestehende Regel aus der ersten Anleitung erweitert:
Unter Firewall - Rules -Floating
zusätzlich noch unter Firewall - Rules - Floating eine weitere Regel (testweise erst mal nur mit der IP meines Testrechners)
Bin für jede Anregung dankbar!
LG
Rainer -
Nabend,
der getippte Text weg, ich krieg nen Föhn, also nochmal in Kurzform.1. Backup deiner aktuellen Einstellungen
2. Firewall -> Rules -> LAN
Source auf any setzen
Destination Haken bei not setzen (!), LAN net auswählen
NO_WAN_EGRESS eingetragen lassen
Gateway dein Cyberghost Gateway auswählen3. Floating Rule
Floating Roule für deinen Testrechner löschen, damit kannst später probieren
Source any
Destination any
Block traffic on VPN Connection Lost o.ä. als Regelname
Advanced Options NO_WAN_EGRESS eintragen
Alles andere leer lassenAnschließend Regeln neu laden und auf dem Interface den VPN Service stoppen.
Wenn's nicht funktioniert, schauen wir heute Abend / die Tage nochmal.Lg
-
Hey Teddy,
erst mal danke für deine Hilfe und sorry für das "Gesülze", aber auch ich lese sehr oft Forenposts, die eine Glaskugel vorraussetzen ;)
Außerdem finde ich es gut, wenn auch ein Dritter mit wenig Ahnung irgendwann über den Thread stolpert und direkt was damit anfangen kann.dein Punkt 2:
ich habe eine zusätzliche Rule gemacht mit deinen Einstellungen. Deine Rule steht vor der "Default allow LAN to any rule "
Sieht so aus:
dein Punkt 3:
-Floating Rule für IP Testrechner gelöscht
-bestehende andere Rule, war schon so. Nur den Regelnamen habe ich noch hinzugefügt. Sieht jetzt so aus:
Ergebnis:
Leider keine Veränderung ;(LG
Rainer -
Mahlzeit,
alles gut, lieber zu viel Infos, als zu wenig! ;)
Eventuell ist die zusätzliche Regel zu viel? Ich gehe mal grundsätzlich davon aus, dass VPN funktioniert und nur der Traffic bei Abbruch nicht gesperrt wird…Ich habe mich an folgender Anleitung entlanggehangelt (Original wurde leider vor einigen Tagen gelöscht):
http://webcache.googleusercontent.com/search?q=cache:CCYG-2M-QeYJ:www.retropixels.org/blog/use-pfsense-to-selectively-route-through-a-vpn+&cd=1&hl=de&ct=clnk&gl=deHier nochmal meine Screenshots dazu. Ich schätze mal, dass bei dir nur noch eine Kleinigkeit fehlt.
Würde erstmal die Screenshots abgleichen, nochmal probieren. Falls kein Erfolg -> verlinkte Anleitung nochmal durchgehen und probieren, eventuell klappt es damit. Ansonsten schauen wir mal, ob da auch Hilfe per Teamviewer o.ä. möglich ist. :PViel Erfolg!
![WAN Rules.png](/public/imported_attachments/1/WAN Rules.png)
![WAN Rules.png_thumb](/public/imported_attachments/1/WAN Rules.png_thumb)
![LAN Rules.png](/public/imported_attachments/1/LAN Rules.png)
![LAN Rules.png_thumb](/public/imported_attachments/1/LAN Rules.png_thumb)
![LAN Rules 2.png](/public/imported_attachments/1/LAN Rules 2.png)
![LAN Rules 2.png_thumb](/public/imported_attachments/1/LAN Rules 2.png_thumb)
-
Hi Teddy,
Eventuell ist die zusätzliche Regel zu viel?
auf den ersten Blick schaut es aus wie bei dir. Eine Regel die generell Zugriff erlaubt und die Regel von dir.
Der VPN funktioniert natürlich und der Traffic geht auch drüber. Nur wenn er eben nicht da ist, dann gehts zum "normalen" Router.
Vielen lieben Dank für die Screenshots und den Link! Damit werde ich doch wohl das Problem finden hoffe ich :) Setze ich mich morgen mal nochmal ran!
Gruß
Rainer
-
Hi Teddy,
so, bin jetzt deine Screenshots durchgegangen und habe ein paar Dinge gelöscht, die ich aus der Ursprungsanleitung aus dem ersten Post hatte. Aus meiner (bescheidenen) Sicht nichts kritisches. Außerdem habe ich bei der Firewall Rule für LAN bisher beim default Eintrag das VPN Gateway drin gehabt. Ist jetzt nur noch bei deiner "Traffic through VPN".
Im Endeffekt jetzt alles so wie bei dir. Nur unter NAT hast du noch eine "WAN Bound" drin, die vom Überblick-Screenshot her aussieht wie die andere. Ist da noch was spezielles konfiguriert? Sieht auch erst mal nicht so aus.
Wie sieht es jetzt mit diesen Einstellungen aus?
Teils, Teils ::)Beende ich den VPN Dienst, dann werden die Verbindungen blockiert :), aber leider ein bißchen zu gut.
Wenn ich den Dienst wieder starte, dann kann der VPN nicht mehr verbinden. Auch nach einem Reboot, verbindet der VPN nicht mehr.
Ich muß die Floating Rule deaktivieren, dann verbindet der VPN und ich kann die Floating Rule wieder aktivieren.Kann es sein, daß das bei dir auch so ist? Wahrscheinlich nicht oder, das wäre dir bestimmt schon aufgefallen?
-
Den Part "Routing" in der oben genannten Anleitung habe ich durchgeführt und dachte eigentlich das müßte reichen… Klingt ja auch logisch, wenn ich direkt sage aller Traffic nur zum VPN Gateway, dann erwarte ich eigentlich auch, daß das dann in Stein gemeißelt ist (wir sind ja nicht bei Windows ;) )
Ich würde an deiner Stelle noch einmal von vorne anfangen und den ganzen unnötigen Kram rauswerfen.
Also nur den VPN Client einrichten sowie das VPN Interface erstellen und ggf. NAT dafür aktivieren.
Eine FW Regel erstellen für deinen gewünschten Client mit Gateway = VPN.Der zitierte Satz oben ist nämlich nicht richtig. Wenn in der pfsense ein GW down ist wird eine FW Regel mit diesem Gateway durch eine Regel mit der default routingtable ersetzt.
Das Verhalten musst du deaktivieren, unter System / Advanced / Miscellaneous: Haken setzten bei "Skip rules when gateway is down".
Dann wird eine Regel komplett ignoriert, wenn das entsprechende GW down ist.
Jetzt musst du aber in deinen FW Regeln prüfen, ob nicht eine allow Regel für dein ganzes LAN am Ende steht und somit wieder greifen würde.
Ist dies der Fall, erstellst du eine Block any Regel davor für den Client der nur durchs VPN darf.Voila, wenn dein VPN GW down ist kann dein Client gar nichts mehr machen.
-
Hi l4k3k3m4n,
danke für deinen Beitrag.
Das habe ich schon getestet und es funktioniert auch:
Das einzige was wirklich hilft ist die Holzhammermethode von derelict die er ebenfalls im obigen Thread beschreibt -> Checkbox: Skip rules when gateway is down
Ich empfand es nur als unschön, wie auch derelict in dem Thread https://forum.pfsense.org/index.php?topic=84463.0 geschrieben hat.
Aber vielleicht ist es gar nicht so unschön, ich spiel mich da schon viel zu lange damit das anders zu lösen ::)
Gruß
Rainer -
Ups das hab ich wohl überlesen, sorry ;D
Aber was ist daran unschön bzw. Holzhammer?
Wenn ich für eine Regel explizit ein Gateway definiere, möchte ich auch dass genau dieses genutzt wird. Kein anderes. Auch nicht wenn das GW down ist. Dass pfsense dann dafür eine Ersatzregel stellt, halte ich eher für unschön.
Wenn ich das so haben wollte, würde ich eine GW Gruppe mit Failover definieren.
Also muss der Haken so gesetzt werden.
Aber das mag nur meine Meinung sein 8) -
Hi.
@raiste:Beende ich den VPN Dienst, dann werden die Verbindungen blockiert :), aber leider ein bißchen zu gut.
Wenn ich den Dienst wieder starte, dann kann der VPN nicht mehr verbinden. Auch nach einem Reboot, verbindet der VPN nicht mehr.
Ich muß die Floating Rule deaktivieren, dann verbindet der VPN und ich kann die Floating Rule wieder aktivieren.Hast du in System > Advanced > Miscellaneous bei "State Killing on Gateway Failure" den Haken drinnen?
-
@ l4k3k3m4n
vielleicht habe ich da die Meinung von derelict übernommen ohne weiter darüber nachzudenken :oWenn der Haken heissen würde: "Soll die Sense keinen Failover durchführen, wenn ein GW down ist" hätte ich sofort gesagt: Her mit der Option ;D
Ist mein erstes Projekt mit der Sense und hab dann vielleicht die Option nicht richtig interpretiert und dachte ich würde da grundlegende Geschichten durcheinander bringen.Ich finde auch, wenn ich einen Failover haben will, dann muß ich den konfigurieren, grade bei einer Firewall/Router soll das Ding ja nicht selber irgendwas machen, was es meint richtig zu sein. Dann bin ich bei Windows ;)
@viragomann
der Haken ist drin ja. Sollte aber standardmäßig gesetzt sein, ich dürfte das nicht gewesen sein.
Soll der Haken drin sein? Muß ich erst mal nachlesen, was der macht, so kann ich mir keinen Reim drauf machen :D -
"State Killing on Gateway Failure" sollte gesetzt sein, wenn du einen VPN Client laufen hast.
Bedeutet, wenn das VPN gateway nicht verfügbar ist, also der VPN Verbindung down ist, werden die zu diesem Gateway gehörenden Verbindungen (states) gelöscht. -
@viragomann:
danke für die Info, dann passt der Haken ja :) -
Ich weiß nicht ob es noch relevant ist, aber hast du das NO_WAN_EGRESS bei der Floating Rule nicht ein Feld zu hoch eingetragen? Ansonsten mal das hier angucken https://www.infotechwerx.com/blog/Policy-Routing-Certain-Traffic-Through-OpenVPN-Client-Connection Ist eine Anleitung direkt von Derelict.