pfsense openVPN über drei Standorte



  • Hallo, ich habe leider ien Problem mit der vernetzung von drei Standorten über openVPN mit pfsense.

    Ich haben momentan drei Standorte bei dehnen ich ein APU board mit pfsense im einsatz habe. Jetzt wollte ich alle drei Standorte mit VPN vernetzen, so dass ich, wenn ich mich auf den Standort mit dem openVPN Server (Standort-1) verbinde, auch in alle anderen Netze auf den anderen beiden Standorten komme.

    Leider bekomme ich das nicht hin, ich hoffe mir kann hier geholfen werden!

    Ich habe es momentan so gelöst, das ich auf Standort-1 zwei sidetoside (peer to peer (shared Key)) Verbindungen (TCP) eingerichtet habe und sich jeder Standort über einen seperate Verbindung verbindet. Doch das Problem ist, dass die beiden Standorte die sich zu Standort-1 verbinden nicht komunizieren können. Sondern immer nur Standort-1 zu Standort-2 bzw. Standort-1 zu Standort-3 und umgekehrt, aber nicht Standort-2 zu Standort-3 und umgekehrt.
    Ich habe zusätzlich bei jedem Standort eine weitere VPN verbindung eingerichtet mit User und PW abfrage so das ich mich mit einen Rechner verbinden kann. Dies nervt natürlich, da ich auch nicht auf die anderern beiden Standorte komme und mich somit immer bei allen dreien einwählen muss. Allerdings wenn ich bei Standort-1 vor Ort bin und mich direkt im Netzwerk befinde kann ich auch auf die beiden anderen Standorte zugreifen.

    Mein Ziel ist es das ich mich nur bei Standort-1 einwählen muss und ich in alle Netzwerke komme.
    Standort-1: 192.168.10.0/24
    Standort-2: 192.168.20.0/24 IPv4 Tunnel Network: 192.168.244.0/24
    Standort-3: 192.168.30.0/24 IPv4 Tunnel Network: 192.168.245.0/24

    Ich hoffe ich hab mich nicht zu kompliziert ausgedrückt und Ihr versteht worauf ich hinaus will.

    Wo ist mein Denkfehler?
    Kann mir wer weiterhelfen?

    Danke schon mal im vorraus!



  • Hast du bei Remote Networks auch die entsprechenden Netze eingetragen?
    Also Standort 1 192.168.20.0/24, 192.168.30.0/24
    Standort 2 192.168.10.0/24, 192.168.30.0/24
    Standort 3 192.168.10.0/24, 192.168.20.0/24
    Firewallregeln passen auch auf allen Seiten? Irgendwas in den Logs beim Zugriffsversuch?

    Hat zwar nichts mit dem Problem zu tun, aber weshalb OpenVPN Tunnel über TCP? Das ist generell keine gute Idee, sollte auf default UDP bleiben.

    -Rico



  • Hallo Rico, danke für deine Antwort.

    Ja habe ich, aber leider hat isch immer nur ein Standort verbunden. Also ich konnte nciht beide Standorte über z.B. das Tunnel Network: 192.168.244.0/24 schicken. Denn nur dann hat es ja Sinn die alle Netze in Remote Networks einzutragen.
    Ich konnte dann immer nur ein Netzwerk erreichen nämlich, dass das sich schneller bzw. als erster mit dem Server verbunden hat. Das zweite konnte dann nicht mehr über das selbe Tunnel Network angebunden werden.

    Habe vergessen zu erwähnen das ich auf allen Standorten fixe IPs habe.
    Die Firewall ports sind momentan auf 1154 für Standort-2 192.168.10.0/24, 192.168.30.0/24 und 1155 für Standort-3 Standort 3 192.168.10.0/24, 192.168.20.0/24.
    Wie ich aber beide zusammenlegen wollte habe ich natürlich die Firewall Rules von Standort-3 dementsprechend angepasst.

    Habe deswegen TCP gewählt weil ich bit UDP aus unerfindlichen gründen keine saubere abbruchfreie Verbindung zusammengebracht habe und mit TCP schon.

    Kurz zusammengefass wie ich mir vorstelle das sich alle Netzwerke sehen sollten:
    Einstellungen Server (Standort-1):
    TCP4/1154; Tunnel Network 192.168.244.0/24
    Server Mode: Peer to Peer (Shared Key)
    Protocol: TCP
    Device Mode: tun
    Interface: WAN
    Local port: 1154
    Tunnel Network: 192.168.244.0/24
    RemoteNetwork: 192.168.20.0/24, 192.168.30.0/24

    Einstellungen Client (Standort-2):
    TCP4/1154; Tunnel Network 192.168.244.0/24
    Server Mode: Peer to Peer (Shared Key)
    Protocol: TCP
    Device Mode: tun
    Interface: WAN
    Local port: 1154
    Tunnel Network: 192.168.244.0/24
    RemoteNetwork: 192.168.10.0/24, 192.168.30.0/24

    Einstellungen Client (Standort-3):
    TCP4/1154; Tunnel Network 192.168.244.0/24
    Server Mode: Peer to Peer (Shared Key)
    Protocol: TCP
    Device Mode: tun
    Interface: WAN
    Local port: 1154
    Tunnel Network: 192.168.244.0/24
    RemoteNetwork: 192.168.10.0/24, 192.168.20.0/24

    Natürlich noch in der Firewall den Port 1154 durchlassen!

    Jetzt sollten sich doch die beiden clients im Tunel Networt 192.168.244.0/24 nach der reihe eine IP nehmen (Server 192.168.244.1; Standort-2 Client 192.168.244.2; Standort-3 Client 192.168.244.3) und ich sollte alle anpingen können?
    Dies geht leider nicht es verbindet sich (wie schon oben geschrieben) immer nur ein Client mit dem Server und der andere nicht.

    Ist dies so überhaupt lösbar? Oder versuche ich hier etwas was so gar nicht funktioniert? geht das überhaupt mit Peer to Peer?



  • Nein bei Shared Key geht immer nur ein Server und Client, du brauchst im Standort 1 also zwei OpenVPN Instanzen.
    Oder halt auf PKI umstellen, was eh flexibler ist weil du Routen und andere Settings pushen kannst.

    Ich meinte die Firewall Regeln im OpenVPN Group Tab, wenn da nichts drin ist wird natürlich alles geblockt.

    -Rico



  • Also stimmt es so wie ich es jetzt habe:
    Einstellungen Server (Standort-1):
    TCP4/1154; Tunnel Network 192.168.244.0/24
    Server Mode: Peer to Peer (Shared Key)
    Protocol: TCP
    Device Mode: tun
    Interface: WAN
    Local port: 1154
    Tunnel Network: 192.168.244.0/24
    RemoteNetwork: 192.168.20.0/24

    Einstellungen Client (Standort-2):
    TCP4/1154; Tunnel Network 192.168.244.0/24
    Server Mode: Peer to Peer (Shared Key)
    Protocol: TCP
    Device Mode: tun
    Interface: WAN
    Local port: 1154
    Tunnel Network: 192.168.244.0/24
    RemoteNetwork: 192.168.10.0/24

    Einstellungen Server (Standort-1):
    TCP4/1155; Tunnel Network 192.168.245.0/24
    Server Mode: Peer to Peer (Shared Key)
    Protocol: TCP
    Device Mode: tun
    Interface: WAN
    Local port: 1155
    Tunnel Network: 192.168.245.0/24
    RemoteNetwork: 192.168.30.0/24

    Einstellungen Client (Standort-3):
    TCP4/1155; Tunnel Network 192.168.245.0/24
    Server Mode: Peer to Peer (Shared Key)
    Protocol: TCP
    Device Mode: tun
    Interface: WAN
    Local port: 1155
    Tunnel Network: 192.168.245.0/24
    RemoteNetwork: 192.168.10.0/24

    Ich habe in den Firewall Regeln Rules untern OpenVPN nur eine gesetzt und dies bei allen Standorten:
    Interface: OpenVPN
    Protocol: any
    Source: any
    Destination: any

    Weiters natürlich auch WAN:
    Protocol: TCP/UDP
    Source: any
    Destination: any
    Destination Port Range: 1154 to 1154 (das ganze natürlich auch mit 1155 auf den jeweiligen Client bzw. beim Server beides)

    Wo stelle ich jetzt aber die Verbindung beim Server her das ich auch von Standort-2 zu Standort-3 komme, bzw. wenn ich mich mit meinem Rechner über openvpn auf Standort-1 mit (Server mode: Remote Acess (SSL/TLS+User Auth)) einwähle auch auf alle Standorte (2/3) zugreifen kann?
    Da muss ich glaub das ich irgenwo eine Route setzen muss aber wo??

    Wäre super wenn Du mir hier ncoh einen Tipp geben könntest!



  • Die Route wird wie schon geschrieben durch den Eintrag in die Remote Network Box gesetzt.
    Standort 2 192.168.10.0/24, 192.168.30.0/24
    Standort 3 192.168.10.0/24, 192.168.20.0/24

    -Rico



  • @rico said in pfsense openVPN über drei Standorte:

    Die Route wird wie schon geschrieben durch den Eintrag in die Remote Network Box gesetzt.
    Standort 2 192.168.10.0/24, 192.168.30.0/24
    Standort 3 192.168.10.0/24, 192.168.20.0/24

    Ja danke habe ich eh gelesen, hab nur übersehen darauf zu antworten! Sorry!
    Leider funktioniert das nicht, ich vermute das ich noch irgendeine route oder änliches bei Standort-1 einstellen muss. Wenn ich so wie Du beschrieben hast nur die Routen bei Standort-2/3 einstelle, geht der Ping nicht durch.

    Hab hier mal Bilder angehängt. Selbstverständlich habe ich auch die Dienste neu gestartet.
    Irgendwie leitet Standort-1 das nicht richtig weiter!!!
    Oder hilft nur noch eine weitere direkte Verbindung zwischen Standor-2 und Standort-3 aufzubauen?

    1_1541495216762_Standort-3-ping.JPG 0_1541495216761_Standort-3-1.JPG



  • Standort 1 kennt durch die beiden OpenVPN Instanzen doch die entsprechende Routen und weiß was wohin muss.
    Prüfe mal auf allen drei Standorten unter Diagnostics -> Routes ob die Routen passen.
    Ich sehe bei mir gerade unter Remote Networks, dass ich die Netze ohne Leerstellen eingetragen habe, das bitte auch nochmal testen zur Sicherheit: 192.168.10.0/24,192.168.20.0/24

    -Rico



  • Hallo!

    @ice2077 said in pfsense openVPN über drei Standorte:

    ich vermute das ich noch irgendeine route oder änliches bei Standort-1 einstellen muss.

    Diese beiden Einträge hast du doch am Standort 1 gemacht:

    @ice2077 said in pfsense openVPN über drei Standorte:

    Einstellungen Server (Standort-1):
    TCP4/1154; Tunnel Network 192.168.244.0/24
    RemoteNetwork: 192.168.20.0/24

    Einstellungen Server (Standort-1):
    TCP4/1155; Tunnel Network 192.168.245.0/24
    RemoteNetwork: 192.168.30.0/24

    Das setzt die Routen am Standort 1, mehr braucht es nicht.

    Aber, hast du am Standort 1 auch den beiden OpenVPN Instanzen Interfaces zugewiesen?

    Und noch ein Punkt, generell würde ich Site-to-Site Tunnel immer mit eine /30er Maske konfigurieren, dann sind die jeweiligen Endpunkte eindeutig.



  • Die Interfaces müssen nicht zwingend zugewiesen werden.
    Außer Shared Key würde sich da von PKI unterscheiden, wovon ich mal nicht ausgehe.

    -Rico



  • Bei mehreren Instanzen schon. Ansonsten werden alle zusammen als Interface-Group behandelt und in die Tunnel wird per Round-Robin geroutet.



  • Ich habe unter pfSense ein OpenVPN Hub and Spoke PKI mit 19 Standorten (ist aktuell in Umstellung und wächst die nächsten Wochen auf 50 an) und regel alles über das OpenVPN Group Tab, die OpenVPN Interfaces sind nicht zugewiesen. Jeder Standort hat eine eigene OpenVPN Instanz.
    Das Routing läuft genau so wie es sein soll.

    -Rico



  • Dann ist das OpenVPN nun schlauer als noch vor zwei Jahren. Wieder was gelernt. Beim Troublshooting würde ich dennoch mit Interfaces arbeiten.



  • Die zugewiesenen Interfaces haben ihre Vorteile, keine Frage.
    Allerdings kann ich technisch gesehen bei mir alles sehr übersichtlich/kompakt und mit ein paar wenigen Aliases im Group Tab erschlagen.
    Ich habe z.B. eine einzige Regel für die gesamte Kommunikation aller DCs untereinander, da die DCs in einem Alias der im Group Tab verwendet wird zusammengefasst wurden.
    Oder eine zentrale Regel dass alle Multifunktionsgeräte per SFTP Dokumente auf dem DMS Server ablegen dürfen, usw. usf.
    Ansonsten bräuchte ich jede Regel in jedem Interface Tab, bei sehr vielen Standorten wird das extrem unübersichtlich und erschwert in diesem Fall das Troubleshooting auch wieder. ;-)
    Irgendeinen Tod... :-)

    -Rico


  • Moderator

    Jup, was @Rico schreibt. Ich empfehle den Kunden zwar auch bei vielen Verbindungen lieber die Interfaces zuzuweisen - ist dann bei komplexeren Setups doch flexibler konfigurierbar als alles via OpenVPN Group Tab machen zu müssen (zumal es dann ganz oft ziemlich auf die Reihenfolge ankommen kann), aber es ist beides machbar. Zudem: Selbst wenn die Einzelinterfaces greifen, gilt der OpenVPN Group Tab trotzdem nach wie vor und gilt in der Behandlung wie ein gruppiertes Interface (sprich Float>Groups>OpenVPN>OVPN Interface). Insofern kann man da schon sehr praktisch mit arbeiten, vor allem wenn man von Anfang an die Netze gut strukturiert damit man hier auch mit Masken Dinge einfach halten kann.

    Bei Shared OpenVPN Verbindungen ist es zudem m.W. egal ob man /30 oder /24 nutzt, da shared key VPNs immer P2P sind, werden die auch hart auf das entsprechende Interface runter geroutet womit man eigentlich keine Source/Dest Probleme haben sollte.

    Gruß



  • Danke für alle Eure Antworten!

    Ich habe es wie Rico beschrieben hat, die Einstellungen vorgenommen und jetzt hats geklappt! Ich hatte dies zwar schon öfters probiert, aber (ich traue es mich fast nicht schreiben) habe immer vergessen den Dienst neu zu starten. Also mein Fehler war einfach, aber nicht einfach zu finden! ;-) Nach dem ich alle Einstellungen vorgenommen habe und die Dienste neu gestartet habe sehen sich jetzt alle Standorte untereinander (alle lokalen Netze)!!

    DANKE!

    Leider habe ich es immer noch nicht geschafft, wenn ich mich auf Standort-1 mit einen PC mit VPN über "Remote Access (SSL/TLS + User Auth)" einwähle, auf Standort-2/3 zu kommen.
    Hier geht leider weiterhin kein Ping durch!

    Habe dies jetzt so gelöst, dass ich einfach auf jedem Standort einen VPN Server mit "Remote Access (SSL/TLS + User Auth)" eingerichtet habe und ich mich leider mit jedem Standort verbinden muss.

    Solltet Ihr diesbezüglich noch Tipps haben, wäre ich auch hierbei sehr Dankbar!!

    PS: Ach ja, bin mittlerweile draufgekommen warum UDP nicht funktioniert. Die Internetverbindung an den Standorten dürfte zu gewissen Zeiten wirklich so schlecht sein, dass bei UDP zu viel verloren geht und deswegen die Verbindung immer wieder abbricht.



  • Zeige doch mal alle deine Einstellungen für Standort 1 RAS und Firewall Regeln.

    -Rico



  • Zur Info, habe die IP Adressen bei meinem herumprobieren geändert.
    Standort-1:
    IP: 192.168.100.0/24
    Standort-2:
    IP: 192.168.110.0/24
    Standort-3:
    IP: 192.168.120.0/24

    Hier die Einstellungen!
    Firewall:
    0_1541937402834_Firewall-openVPN.JPG
    0_1541937412520_Firewall-WAN.JPG

    RAS:
    0_1541937447264_RAS-1.JPG 0_1541937452457_RAS-2.JPG 0_1541937455314_RAS-3.JPG 0_1541937458088_RAS-4.JPG 0_1541937460625_RAS-5.JPG

    VPN:
    0_1541937546337_VPN.JPG



  • Dein RAS pusht Netze die in der IPv4 Local Networks Box stehen an die Clients.
    Wenn da nur das 192.168.100.0/24 drin steht bekommen die Clients auch nur die Route dahin. Du musst also alle deine Netze die erreichbar sein sollen da rein schreiben.

    -Rico



  • Hallo Rico,

    was soll ich sagen. Ich habe es genau so eine halbe Nacht lang probiert! In verschiedensten Konstellationen! Hat nie funktioniert!! Jetzt nach deinem Kommentar hab ich mir gedacht was solls, hab's zwar schon Hunderte mal eingestellt und ausprobiert und hat nie funktioniert, aber einmal versuch ich's noch. Und siehe da es FUNKTIONIERT!!!!!
    Ich hab keine Ahnung was jetzt anders ist als vorher. Es ist mir auch egal! Hauptsache es Funktioniert jetzt! 1000 DANK!
    Nachtrag :
    Zu früh gefreut! Ich komme zwar auf alle Standorte, aber ich kann nur von dem Standort zu dem ich mich verbunden habe auch mich anpingen. Von den beiden anderen Standorten kann mein pc nicht angepingt werden, ich aber sehr wohl alle Geräte dort! Hast Du hierfür einen Tipp?

    Denn Ich muss ja Irgendwie dem Standort-2/3 sagen wo er die ip 192.168.241.0/24 findet. Denn dass ist ja das Tunnel Netzwerk von Standort-1 mit dem ich verbunden bin! Wenn ich jetzt beim Client bei Standort-2 die ip dazu eintrage funktioniert es nicht! Jetzt weis zwar der Standort das wo er den Ping hinsenden soll, aber der Standort-1 dürfte jetzt nicht wissen was er machen soll damit. Hierfür muss anscheinend noch bei Standort-1 irgendwie vom Tunnel Network 192.168.244.0/24 zu Tunnel Network 192.168.241.0/24 eine Verbindung hergestellt werden!?

    Hier die Bilder:
    0_1541950422589_VPN1.JPG 0_1541950429069_VPN2.JPG