Hallo zusammen,
ich habe folgendes Szenario, das mir gerade etwas Kopfschmerzen
bereitet:
Ich habe im Büro (B1) einen Raspberry laufen, der als OpenVPN-Client mit
einem Kundennetzwerk (K) verbunden ist. Der Raspberry Pi läuft als
Proxyserver (Polipo). Über ein Proxy Auto-Config File werden bestimmte
Anfragen aus dem Netzwerk des Büros über den Proxy in das Kundennetzwerk
geleitet. Funktioniert soweit hervorragend.
Nun habe ich einen zweiten Büro-Standort (B2), der per VPN mit dem Büro
(B1) verbunden ist. Ich möchte nun auch von diesem zweiten Standort (B2)
aus über das VPN und den Proxy im Büro (B1) in das Kundennetzwerk (K)
springen.
Das Problem ist, dass ich den Proxyserver über das VPN B1-B2 schon nicht
erreichen kann, weil der Proxyserver sämtliche Anfragen über das VPN
B1-K versendet und damit alle Anfragen ins Nirvana gehen.
Ändere ich die Routingkonfiguration, dass Anfragen von B2 nicht über das
Kunden VPN versandt werden, sondern über über das VPN B1-B2, kann ich
zwar den Raspberry erreichen, meine Proxyanfragen gehen dann aber
natürlich auch nicht mehr über das Kunden VPN. Hier stecke ich irgendwie
fest.
Eine direkte Verbindung zum Kundenunternehmen (B2 - K) kann ich leider
nicht aufbauen.
Hat jemand vielleicht einen Vorschlag? Ich hoffe, das war verständlich,
sonst zeiche ich es gerne nochmals auf.
Danke und schöne Pfingsten!
Steffen
Steffen schrieb:> Ändere ich die Routingkonfiguration, dass Anfragen von B2 nicht über das> Kunden VPN versandt werden, sondern über über das VPN B1-B2, kann ich> zwar den Raspberry erreichen, meine Proxyanfragen gehen dann aber> natürlich auch nicht mehr über das Kunden VPN.
Wieso? Überschneiden sich die Netzwerke? Das wäre blöd, dann müsste man
anderen Nummern vergeben.
Du musst halt spezifischer mit Zieladdressen arbeiten, und nicht nur mit
der "Default Route".
Man erinnere sich: Beim Routing gewinnt der Match mit den meisten
übereinstimmenden Bits. Also braucht der B1 Router eine Route für B2,
die mehr Maskenbits hat als die nach K.
Nein - sie überschneiden sich nicht.
Netzwerk des Büros 1: 192.168.47.0
Netzwerk des Büros 2: 192.168.2.0
Netzwerk des Kunden: 192.168.40.0
Der Rechner, der die VPN Verbindung B1 - B2 aufbaut, erhält die interne
IP Adresse 10.242.6.2.
Der Proxyserver, der die VPN Verbindung B1 - K aufbaut, erhält die
interne IP Adresse 141.7.111.8.
Mit Routing habe ich bislang noch nicht zu viel gearbeitet. Ich lese
mich ein. Hast du mir trotzdem noch einen Hinweis, wie ich konkret
vorgehen kann?
Danke!
PS. Probiert hatte ich es übrigens so:
sudo route add -host 109.242.6.2 gw 192.168.47.250
192.168.47.250 ist das Gateway von B1, über das auch die VPN Verbindung
B1-B2 läuft.
Danach konnte ich den Proxyserver von B2 aus erreichen, aber alle http
Anfragen über den Proxyserver gingen dann auch über das Gateway
192.168.47.250, also über B2, anstatt wie gewünscht über K.
Steffen schrieb:> Nur die Ports 80/443 sollen über VPN B1 - K laufen, alle restlichen> Anfragen über das normale Gateway.
Is nich, müsste man manuell im Webbrowser (und in jedem anderen Programm
das über https läuft) umstellen. Routing erfasst nur komplette IP
Addressen.
Firewall mit iptables könnte so'n Scheiss eventuell über Policy-based
Routing, aber da Du scheinbar schon mit ganz normalem Deine Probleme
hast: Vergiss es lieber. Das wäre mir auch zu kompliziert.
Übrigens fällt mir auch ein dass B1 NAT machen müsste, weil K ja von den
Netzen hinter B1 normalerweise nix weiss. B1 müsste also alle "fremden"
Addressen maskieren (-j MASQUERADE bei iptables).
Ansonsten sieht man im Wireshark schön die Pakete ins Kundennetz
wandern, wo niemals eine Antwort zurück kommen kann.
@TO
das geht alles über normales routing....bei dir ist nur der "Proxy" erst
einmal fehl am platz (wofür auch immer du das ding verwendest).
Der OpenVPN Server MUSS die verfügbaren Routen zu den Clients leiten
(push route). Da dies an 2 Punkten notwendig ist musst du
unterschiedliche Client configs erstellen (OpenVPN ccd). Sobald die
Routen auf beiden VPN Clients verfügbar sind und die Firewalls
(hoffentlich vorhanden) den Traffic weiterleiten wars das schon.
Masquerading ist nur an den Punkten notwendig wo der Traffic aus dem
OpenVPN Netz in das jeweils lokale Netz gehen soll.
Ich würde dir zumindest zu OPNsense als Software raten (Server+Clients)
da die Konfiguration für Anfänger ohne Hilfe nicht umzusetzen ist.
Jim M. schrieb:> Is nich, müsste man manuell im Webbrowser (und in jedem anderen Programm> das über https läuft) umstellen. Routing erfasst nur komplette IP> Addressen.>> Firewall mit iptables könnte so'n Scheiss eventuell über Policy-based> Routing, aber da Du scheinbar schon mit ganz normalem Deine Probleme> hast: Vergiss es lieber. Das wäre mir auch zu kompliziert.
Also das ist ja nun nicht wirklich kompliziert. Weitere Routingtabellen
anlegen und Pakete nach den üblichen Regeln (Sourceport, Zielport, IPs,
wasauchimmer) markieren. Mehr ist das nicht.
Keine zehn Minuten und das läuft.
TestX schrieb:> Masquerading ist nur an den Punkten notwendig wo der Traffic aus dem> OpenVPN Netz in das jeweils lokale Netz gehen soll.
Er hat nichts dazu geschrieben, ob er auf Kundenseite Routen einrichten
(lassen) kann. Insofern ist nicht klar, ob er überhaupt Masquerading
braucht.
Ein paar mehr Infos wären hilfreich.
Ich sehe hier mehrere Ansatzpunkte:
- wie ist das VPN B1-B2 konfiguriert? Routen hier die Standardgateways
automatisch in das richtige Subnetz? Kannst du von beiden Seiten aus
durch das VPN alle anderen Adressen anpingen?
- welche Routen sind in den Raspberry tatsächlich aktiv? Es müssten 2
Routen hinterlegt sein, eine default zum lokalen Standardgateway und
eine 192.168.40.0/24 zu dem KundenVPN. Eventuell, je nach Konfiguration
des OpenVPN, noch eine dritte für den Transportweg zum VPN Gateway des
Kunden
- was macht der Proxyserver? startet der nach dem Verbinden des VPN,
damit er alle Netzwerkadressen bzw. Interfaces kennt?
- was ist in dem OpenVPN konfiguriert, wird dort manchmal das
Standardgateway auf die Kundenseite umgebogen? Ist es eine TUN oder TAP
Konfiguration?
Am besten machst du dir mal eine Grafik, in der du die beteiligten
Router und VPN einzeichnest, mit allen IP Adressen, Netzmasken und
Interfaces. Damit kann man besser nachvollziehen, wo die Daten überhaupt
lang müssen...
Soviel erstmal zum probieren, Ich denke, hier sind noch einige
Stolpersteine versteckt.
_.-=: MfG:=-._