openvpn Client als site-to-site Verbindung
-
Hallo,
kann ich einen (linux-) Openvpn Client so mit pfsense verbinden, dass es Zugriff von beiden Seiten auf beide Netzwerke gibt (also das Netzwerk hinter pfsense als auch das Netz des openvpn clienten)?bfo
-
Hi,
ja, natürlich.
Aber bedenke, die pfSense hat keinen Einfluss auf die Client-Seite.
Heißt, du musst den Client schon selbst so konfigurieren (iptables), dass er die Pakete durchlässt und ggf. natted.Ich vermute, der Client ist in seinem Netz nicht das Standardgateway. Wenn so, benötigst du Routen auf allen beteiligten Geräten für das Remote-Netz. Besser wäre es, Router mit Router (Standardgateways) zu verbinden. Alternativ kannst du auch ein Transit-Netz zwischen dem Standardgateway und dem Client-Rechner einrichten, sofern der Router das unterstützt.
Auf Seite der pfSense sind einfach die Remote-Netze ins entsprechende Feld in der OpenVPN-Konfiguration einzutragen und alles was da hin soll, wird über die VPN geroutet. Die Firewall-Regeln müssen die Zugriffe natürlich auch erlauben.
Für die Zugriffe aus dem Remote-Netz sind am OpenVPN-Interface die Regeln zu setzen. -
Hallo viragomann,
einen Vpn-client konnte ich erfolgreich anlegen. Dieser hat Zugriff auf das Netz hinter pfsense (mein Intranet) - soweit so gut.
Um es einfach zu machen, reicht mir aus meinem (pfsense-) Intranet auch der Zugriff auf den einen obigen vpn Client, ich muss nicht auf das gesamte Netz dahinter Zugreifen können.
Dennoch stellt sich mir die Frage, wie PC's in meinem Intranet eine Route zum vpn Client bekommen können. Dass muss doch die pfsense machen, oder? Das entsprechende Netz habe ich im VPN-Client als Remote Netz angegeben.Wenn ich das exportierte OVPN File auf dem Clienten starte, routet der natürlich "nichts" zurück, ich denke, dass es damit zusammen hängt.
Hättset du vielleicht ein live Beispiel, welch Regeln auf VPN Client Seite erstellt werden müssen, damit dieser auf Anfragen aus meinem Intranet antwortet?
Bfo
-
Ich gehe davon aus, dass die pfSense das Standardgateway in deinem Intranet ist. Wenn so, bedarf es keine speziellen Routen, denn die Clients schicken alle Packet mit Zieladressen außerhalb ihres eigenen Subnetzes zum Standardgateway. Und dieses kennt den Weg zum VPN Client, schließlich ist er mit ihr direkt verbunden.
Den Client musst du allerdings mit seiner virtuellen VPN-IP ansprechen.
Problem ist allerdings, auf der Client-Seite ist das Netz hinter der pfSense unbekannt. Dem Client selbst kannst du es bekannt machen, in dem du die Route pusht. Das macht der OpenVPN Server auf der pfSense, wenn du im Feld "Lokale Netzwerke" dein Intranet einträgst (in CIDR-Natation, bspw. 192.168.52.0/24).
Alternativ lässt sich das auch am Client konfigurieren.Ich nehme an, der Zugriff über die VPN Richtung Client-Seite ist nur für vertrauenswürdige User oder nur für dich selbst gedacht. In diesem Fall kannst du am Client auf dessen Netzwerkinterface eine S-NAT Regel einrichten (Masquerading), die die Quell-IP der Pakete in dessen eigene umsetzt, um auch Geräte hinter dem Client erreichen zu können, ohne den Geräten eine Route hinzufügen zu müssen.
Der Zugriff von der Client- auf die pfSense-Seite würde aber eine Route erfordern.Beispiele für iptables Regeln habe ich nicht parat. Wenn ich so etwas brauche, werfe ich selbst die Suchmaschine an.
Ist aber nicht kompliziert. Eine Regel, die den Zugriff auf den Client erlaubt bzw. auf anywhere und ggf. eine für das NAT.
Du wirst bestimmt fündig.Der Zugriff auf den Client selbst lässt sich vielleicht auch mit einer S-NAT-Regel auf der pfSense bewerkstelligen, ohne an dessen iptables ran zu müssen:
Firewall > NAT > Outbound. Dieses müsste erst mal in den Hybrid-Modus versetzt werden.
Dann eine Regel hinzufügen:
Interface: OpenVPN
Quelle: <dein Intranet>
Ziel: alles
Translation: Interface AdresseHier habe ich angenommen, dass du nur diese eine OpenVPN-Instanz (Server oder Client) auf der pfSense laufen hast, ansonsten musst du dieser Instanz erst ein Interface zuweisen und dieses auswählen.
-
Hallo viragomann,
zuerst mal generelles: pfsense ist in meinem Netz das Standardgateway und es läuft nur eine Instanz für VPN.
Der vpn Client (192.168.2.0/24) verbindet sich mit der pfsense (192.168.1.0/24) und kann alle Rechner im 1er Netz erreichen. Somit braucht es auf vpn-client Seite keine weiteren routen.
Während diese VPN Verbindung besteht, kann ich aus meinem 1er Netz nicht das 2er Netz erreichen. Interessanterweuse zeigt ein traceroute auf eine 2er Adresse, dass die Pakete von der pfsense nicht in den Tunnel geleitet werden, sondern ins Internet. Das ist doch wohl nicht richtig.
In den VPN Client Einstellungend er pfsense habe ich natürlich das 2er Netz in den "Entfernte(s) IPv4 Netzwerk(e)" eingetragen.
Ich denke, hier müsste man erstmal anfangen. Solange die pfsense das nicht in den Tunnel schckt, kanns ja nicht gehen, oder?bfo
-
@bforpc said in openvpn Client als site-to-site Verbindung:
Ich denke, hier müsste man erstmal anfangen. Solange die pfsense das nicht in den Tunnel schckt, kanns ja nicht gehen, oder?
Richtig, aber wie hast du den Server auf der pfSense angelegt? Als Peer2peer oder als Einwahl mit User/Pass?
Am besten mal kurze Screenshot der Einstellungen! -
Einwahl mit User/Pass - etwas anderes hatte ich (für mich verständlich) im Internet nicht gefunden.
Dort wird immer davon ausgegangen, dass es sich auf beiden Seiten um eine pfsense handelt, dies ist bei mir aber nicht möglich.Bfo
-
@bforpc said in openvpn Client als site-to-site Verbindung:
Einwahl mit User/Pass
@bforpc said in openvpn Client als site-to-site Verbindung:
In den VPN Client Einstellungend er pfsense habe ich natürlich das 2er Netz in den "Entfernte(s) IPv4 Netzwerk(e)" eingetragen.
Wie jetzt? Ein User-Access Server hat diese Einstellung doch gar nicht.
Und in der Überschrift des Threads hast du "site-to-site" erwähnt.Ein Access Server macht Sinn, wenn sich mehrere User verbinden können sollen. Wenn du ohnehin nur einen User hast, kannst du einen Site-to-Site Server und ein /30er Tunnelnetzwerk verwenden. Dann ist eindeutig, wohin die Pakete für 192.168.2.0/24 geroutet werden müssen.
Wenn du einen Access Server verwendest, musst du die entfernten Netzwerke explizit für den jeweiligen Client in einem Client Specific Override festlegen. -
Also ich habe natürlich noch weitere VPN Clients, die sich zur pfsense verbinden sollen.
(Ich kenne das unter dem Namen "roadwarrior") ... und all diese roadwarriors in das 2er Netz, bzw. auf den einen Rechner im 2er Netz, zugreifen können.Deswegen brauche ich doch eine site-to-site Verbindung zwischen der pfsense (also dem 1er Netz) und dem site Client mit dem 2er Netz.
Bfo
-
Moment jetzt wirfst du aber Sachen durcheinander, oder?
Dass du ggf. noch weitere VPN Clients hast, die sich einwählen sollen und in das 1er oder 2er Netz (dann über den Tunnel zur anderen Seite) müssen, ist ja ein Ding.
ABER: Die beiden Anwendungsfälle sind grundverschieden und mit einem Einwahlserver mit User/Pass kannst du keinen Site2Site Tunnel bauen. Dafür gibt es ja genau diese Einstellung und das Setup ist extrem trivial bei einem Site2Site Tunnel mit PSK - das ist auch auf Linux überhaupt nicht schwer aufzubauen!
Es ist ja überhaupt nicht schlimm zwei Server auf der pfSense aufzumachen. Einen für den Tunnel, einen für Roadwarrior wenns soweit ist und alles steht. Aber nicht beides mit dem gleichen Server.
-
@bforpc said in openvpn Client als site-to-site Verbindung:
Deswegen brauche ich doch eine site-to-site Verbindung zwischen der pfsense (also dem 1er Netz) und dem site Client mit dem 2er Netz
Ja, doch du betreibst einen Remote Access Server. pfSense verwendet die Ausdrücke "Remote Access" und "Site to Site" für die unterschiedlichen Modi des OpenVPN Servers. Wie das ins Deutsche übersetzt wurde, weiß ich nicht.
"Remote Access" bietet die Einstellung "Remote Netzwerke" aus gutem Grund nicht. Diese kann sich ja nur auf einen Client beziehen.Daher ist in deinem Fall VPN > OpenVPN > Client Specific Overrides (kenne ebenfalls die Übersetzung nicht für den Client einzurichten, hinter welchen du das Netzwerk erreichen möchtest. Hier kann das Remote Netzwerk angegeben werden. Als Common Name muss der Loginname angegeben werden, bzw. bei Zertifikats-Authentifizierung der Common Name des Zertifikats.
Einen eigenen Server für diesen Client einzurichten, wie es @JeGr empfiehlt, ist vielleicht die einfachere und übersichtlichere Variante. -
Hallo @viragomann und @JeGr,
danke für die Tips.
OK, also ich weiss jetzt, das ich mehrere VPN Server nutzen muss.
Jedoch bringt mich das zu meiner ursprünglichen Frage, wie genau ich einen VPN Server für eine Site to Site Verbindung aufsetzen soll, wenn die Gegenseite nur ein Linux mit openvpn ist.
Die Doku von netgate ist an sich schon sehr gut, jedoch ist mein spezielles Problem nicht dabei. Im Internet habe ich mich fusselig gesucht, aber nichts passendes (oder verständliches) gefunden, um ein solche Verbindung "from scratch" herzustellen.bfo
-
Für den Server spielt es von den Einstellungen her überhaupt keine Rolle ob der Client ein BSD, Linux oder sonstwas ist, die Einrichtung ist immer gleich.
-Rico
-
Ja, das ist soweit klar ... aber damit weiss ich immer noch nicht, wie ich auf dem vpn Client (der site-to-site Verbindung) es so einrichte, wie angefragt.
Oder einfacher gefragt: Ich benötige vom pfsense (server) eine "site to site" Verbindung zu einem openvpn "Client".
Dazu ein Howto wäre echt super.Bfo
-
Was konkretes "wie angefragt" konnte ich aus deinen Beiträgen bisher noch gar nicht herauslesen, eher Verwirrung zwischen S2S und RAS.
Bescheibe doch mal was du genau vor hast und welche Hardware/Software dazu zur Verfügung steht. Vielleicht das Schema noch kurz skizzieren, dann wird man dir recht schnell helfen können.
Ich kann dir die OpenVPN hangouts von JimP (Netgate) wärmstens empfehlen, da wirst du wahrscheinlich mehrere Aha-Erlebnisse haben.
Wenn das Grundprinzip verstanden wurde ist die eigentliche Config nur eine Kleinigkeit, egal ob unter pfSense, Linux, etc.-Rico
-
ja gerne. Folgendes Szenario:
HomeNet
pfsens als GW und FW mit IP 192.168.1.101/24WorkNet
Primärer Linux Server 192.168.2.1/24, Fritzox als GW und FW mit IP 192.168.2.101/24Diese beiden Netze möchte ich verbinden. Ich kann im WorkNet aber keine pfsense installieren. Wenn der Zugriff von und nach dem "Primärer Linux Server" ausschliesslich funktioniert, reicht das aus, es muss nicht das gesamte Netz "WorkNet" im "HomeNet" verfügbar sein ==> es reicht also, wenn der 192.168.2.1 für alle erreichbar ist.
- Jeder Client im "HomeNet" und jeder VPN User (roadwarrior) muss auf das "HomeNet" und mindestens auf den "Primärer Linux Server" zugreifen können
- Alle clients im "WorkNet" müssen auf das "HomeNet" zugreifen können.
bfo
-
Zeig am einfachsten Mal den OpenVPN S2S Server Part von der pfSense, dann kann ich dir eher sagen, wie deine Konfiguration auf dem Client dazu aussehen müsste.
Edit: Ah, Posting kam dazwischen. Moment.
-
@JeGr
das haeb ich alles wieder gelöscht und rausgeschmissen. Letztendlich fange ich bei 0 an.bfo
-
Du wirst im WorkNet aber dann evtl. Probleme haben, weil deine Clients nicht den OpenVPN Server als Gateway kennen. Dort ist die Fritzbox doch das GW oder? Dann wirds ohne NAT mit dem Rückweg Probleme geben bzw. Zugriff von Work auf Home wird dann schwieriger weil asymmetrisches Routing zuschlägt.
Was spricht denn gegen eine pfSense auf Arbeit? Besser als eine Fritzbox alleine allemal? Oder einfach keine Berechtigung die zu installieren?
Alle clients im "WorkNet" müssen auf das "HomeNet" zugreifen können.
Das Problem wird sein, dass deine Work Clients keinen Plan von der Rückroute in das .1.x Netz kennen, das wird da so oder so nicht schön. Dazu müsste dann noch zusätzlich in der Fritzbox irgendwelche Routen mit rein, ansonsten müsste jeder Client/Server wissen, wo das .1.x'er Netz ist
-
Hier findest du eine Lösung wie es geht:
OVPN Client routet
oder auch:
OVPN ClientRelevant ist hier das der Client zwingend IPv4 Forwarding aktiviert hat (Routing)
Bei Winblows ist das ein Eingriff in der Registry:
http://www.winfaq.de/faq_html/Content/tip0500/onlinefaq.php?h=tip0908.htm
Und das im Client und Server das lokale IP Netz des Clients eingetragen ist fürs Routing.
Damit klappt das dann fehlerlos.