Rechner hinter OpenVPN Box von Client nicht erreichbar

Vogi

Neuer User
Mitglied seit
30 Sep 2006
Beiträge
60
Punkte für Reaktionen
0
Punkte
6
Hallo!

Trotz intensiver Suche hier, habe ich für mein Problem noch nicht die entscheidende Lösung gefunden:

Ich betreibe eine 7170 mit freetz-trunc (bei der 1.0-stable gab es Fehlermeldungen, weil einzelne Pakete nicht mehr erreichbar waren) und OpenVPN

Die FritzBox soll als OpenVPNClient mit einem Gentoo-Server verbunden werden auf dem der OpenVPN Server läuft. Die Server Konfiguration ist soweit auch ok, da ich mich mit meinem Laptop direkt verbinden kann und per "push" die Einstellungen und Routen bekomme um auf das ganze Netz zugreifen zu können.

Beim Client auf der Fritzbox stehe ich allerdings vor folgendem Problem:
Auch hier kann ich mich mit dem Server verbinden und von der Fritzbox aus auch alle Rechner im "Server-Netz" anpingen. Aus dem Server-Netz läßt sich auch die FritzBox per Ping erreichen.

Allerdings möchte ich ja nicht nur mit der FritzBox in mein Servernetz sondern mit den dahinter stehenden Rechnern (eigenes Subnetz). Dies funktioniert allerdings nicht.
Weder die Clients hinter der FritzBox können ins Server-Netz pingen noch läßt sich aus dem Server-Netz ein Client erreichen.

Server-Netz: 192.168.06.0/255.255.255.0
VPN-Netz: 192.168.07.0/255.255.255.0
Client-Netz: 192.168.20.0/255.255.255.0

Mir scheint es so, als würde die FritzBox kein Routing zwischen dem tun0-Device (OpenVPN) und dem eth0-Device machen.

Worüber kann ich denn die Route zwiwschen dem VPN-Netz und dem Client-Netz setzen?
Ist dafür iptables notwendig? Oder mache ich hier einen grundsätzlichen Denkfehler?

Vielen Dank für jeden Tip,
Vogi.
 
Mir scheint es so, als würde die FritzBox kein Routing zwischen dem tun0-Device (OpenVPN) und dem eth0-Device machen.

Mit netstat -nr kannst Du schauen wie deine FritzBox routet.
 
Zuletzt bearbeitet:
Hallo!

Danke für den Tip.
Allerdings verstehe ich noch nicht ganz, wie mir das hilft.
Die Routen sind ja vorhanden, sonst würde ja ein Ping von der FritzBox auf die Rechner hinter dem VPNServer auch nicht funktionieren.

Es scheint doch so, als würde die FritzBox die Pakete von dem einen Device nicht zum anderen weiterleiten (eth0 <-> tun0, bzw. zwischen den Netzen 192.168.20.x und 192.168.7.x)

Dies ist doch aber die Aufgabe eines Routers weswegen ich jetzt nochmal nachfrage. Muss ich das noch irgendwo explizit erlauben? Oder is das an der Ausgabe von netstat ersichtlich wie der Verkehr zwischen den einzelnenn Netzen geregelt wird?

Danke,
Vogi.
 
Oder is das an der Ausgabe von netstat ersichtlich wie der Verkehr zwischen den einzelnenn Netzen geregelt wird?
Aus der Ausgabe von netstat sollte ersichtlich sein, welches Gateway für das Routing durch das entsprechende NIC, zwischen den einzelnen Netzen verwendet wird.
 
Hallo,

verschoben nach Freetz.
 
Moin,

Die Server Konfiguration ist soweit auch ok, da ich mich mit meinem Laptop direkt verbinden kann [...]
Weder die Clients hinter der FritzBox können ins Server-Netz pingen noch läßt sich aus dem Server-Netz ein Client erreichen.
Ich denke, alles ist so, wie es "sein soll" ;-), die Fritzbox verhält sich genau wie dein PC: Auch der kann (nur allein) auf das Server-Netz zugreifen.

Du willst aber wohl mehr, als du konfiguriert hast: Dein Problem ist nämlich mit ganz hoher Sicherheit die Server-Konfiguration. Deine FB routet die Pakete in das "Netz beim Server" ziemlich sicher vom eth ins tun, aber wird die Server-Seite auch die Pakete zurückschicken können?
Ist also auf deinem OpenVPN-Server eine Route für das Netz 192.168.20.0/255.255.255.0 zum Client vorhanden? Ich schätze, genau da liegt dein Problem (oder du hast die Route dort, aber eine "multi-Client-Konfiguration ohne "iroute" Befehle, dann verwirft der Server die Pakete aus dem Client-Netz)...

Jörg
 
Hallo Jörg,

klar, alles ist so, wie ich es konfiguriert habe. Nur ist das nicht unbedingt auch das, was ich eigentlich wollte...

Auf dem Server existiert die Route ins 192.168.20.x Netz.
Auch nutze ich den config-Eintrag:
client-config-dir /etc/openvpn/ccd
und habe in diesem Verzeichnis ein File mit dem Namen des Clients angelegt mit dem Inhalt: iroute 192.168.20.0 255.255.255.0

Allerdings ist mir eben aufgefallen, dass evtl. gar nicht auf diese Datei zugegriffen wird - kann das nur heute nicht mehr testen. Wäre aber ne Erklärung.

Werde es aber morgen ausprobieren!

Danke schonmal...
 
Erster Test wäre dann (du bist ja doch schon tiefer in der Materie, als ich dachte), ob du vom Server(-Netz) aus denn die "LAN-IP" der FB (bzw. des Client-PCs) erreichen kannst.
Wahrscheinlich blöde Frage, aber: Die FB ist aber das "Default-Gateway" in deinem Netz? Nur, damit der Verkehr für das Servernetz auch überhaupt bei der FB ankommt...

Jörg
 
So, an den iroute Einträgen lags nicht.
Hatte jetzt doch noch ne Möglichkeit zum Test und hab sie mal spasseshalber rausgenommen. Danach war nur noch die Client-Fritzbox vom OpenVPN Server aus erreichbar und kein weiterere Rechner dahinter.

Mit den iroute Einträgen ist das Problem absolut symmetrisch:
Bin ich per telnet auf der Client-Fritzbox, so komme ich auf jeden Rechner im Servernetz. Logge ich mich auf dem OpenVPN Server ein, so komme ich auf jeden Rechner im Client Netz.

Mit jedem anderen Rechner hinter VPN Client oder Server komme ich nicht in das andere Netz. Mittlerweile sitze ich doch schon so lange davor, dass mir bestimmt ne Kleinigkeit nicht mehr auffällt.

Was meinst Du mit Default Gateway? Mein Netz ist eigentlich das Server Netz.
Habe hier auf dem Router (auch eine Fritzbox, aber ohne VPN Software, da nur ne 7025) folgende Routen:
Code:
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.180.1   *               255.255.255.255 UH    2      0        0 dsl
192.168.180.2   *               255.255.255.255 UH    2      0        0 dsl
192.168.7.0     server02        255.255.255.0   UG    0      0        0 eth0
192.168.179.0   *               255.255.255.0   U     0      0        0 usbrndis
192.168.6.0     *               255.255.255.0   U     0      0        0 eth0
192.168.20.0    server02        255.255.255.0   UG    0      0        0 eth0
192.168.181.0   *               255.255.255.0   U     0      0        0 eth1
192.168.8.0     *               255.255.255.0   U     0      0        0 wlan
169.254.0.0     *               255.255.0.0     U     0      0        0 eth0
default         *               0.0.0.0         U     2      0        0 dsl

Der "server02" ist mein OpenVPN Server. Die Route zum Client Netz ist die 192.168.20.0, welche wieder an server02 zurückgeht.

Ein Ping von einem beliebigen Rechner aus dem Servernetz auf 192.168.7.1 funktioniert.
Auf die Clientadresse 192.168.7.6 oder auf IPs des Netzes 192.168.20.x nur noch vom server02 selber.

Ein tracert von einem Teilnehmer im Servernetz (192.168.6.x) endet wie folgt:

Code:
Routenverfolgung zu 192.168.20.1 über maximal 30 Abschnitte

  1    <1 ms    <1 ms    <1 ms  router.servernetz [192.168.6.1]
  2    <1 ms     *        *     server02.servernetz [192.168.6.253]
  3     *        *        *     Zeitüberschreitung der Anforderung.
  4     *        *        *     Zeitüberschreitung der Anforderung.

Also endets am OpenVPNServer, der selber aber die 192.168.20.1 (Client Fritzbox) erreichen kann:

Code:
1:  vpn-server.servernetz (192.168.7.1)                   0.367ms pmtu 1500
 1:  192.168.20.1 (192.168.20.1)                          126.573ms reached
 1:  192.168.20.1 (192.168.20.1)                          122.705ms reached
     Resume: pmtu 1500 hops 1 back 64

An die Config der Client FritzBox komme ich jetzt wirklich nicht mehr ran (müsste nochmal telefonieren *g*) Aber diese wird mittels "push" konfiguriert:

Die openvpn.conf auf dem server02 sieht woe folgt aus:

Code:
dev tun
proto udp
port 1194
server 192.168.7.0 255.255.255.0

comp-lzo

mode server
tls-server

ifconfig-pool-persist /etc/openvpn/ipp.txt
keepalive 10 60
client-to-client

dh /etc/openvpn/certificates/dh2048.pem
ca /etc/ssl/server-ca.crt
cert /etc/openvpn/certificates/vpnserver.crt
key /etc/openvpn/certificates/vpnserver.key
tls-auth /etc/openvpn/certificates/vpn.key 0

cipher AES-256-CBC

client-config-dir /etc/openvpn/ccd

route 192.168.20.0 255.255.255.0

push "route 192.168.0.0 255.255.240.0"
push "dhcp-option DOMAIN xxx.yy"
push "dhcp-option DNS 192.168.6.1"
push "dhcp-option WINS 192.168.6.253"

user nobody
group nogroup
persist-key
persist-tun

status /var/log/openvpn/openvpn-status.log
log /var/log/openvpn/openvpn.log
verb 3

Das Verhalten ist auch dort identisch.
Die Fritzbox kann alles im Servernetz erreichen. Ein Client dahinter kommt auf keine IP im Servernetz.

So, vielleicht siehst Du ja schon nen offensichtlichen Fehler... ansonnsten bin ich nach wie vor über jeden Tip dankbar...

Grüße,
Vogi
 
Was mir spontan noch einfällt:

Gibst du die VPN-IP des Clients im client-config-dir mit vor? Die 192.168.7.6 wäre ja nicht der "Standard", da würde der erste Client die .2 bekommen.

Hintergrund für die Frage ist der Eintrag "route 192.168.20.0 255.255.255.0" in der "normalen Config". Ich würde den (wenn er nicht schon dort drin ist) in die Client-Config mit aufnehmen (und aus der anderen Konfig rausnehmen). Poste doch bitte noch den Inhalt der Config.

Sonst wäre noch die Frage, ob im Log was als Hinweis steht?

Aber warum kommst du denn an die Client-Config nicht dran? Wenn die Box verbunden ist kommst du doch mit telnet drauf (oder hast du die PW nicht??).


Jörg
 
Hallo Jörg,

ja, die .6 stammt aus der ipp.txt.
Da ich mich vom Notebook aus verbinde, ist die 2 schon vergeben gewesen.
Doch, normalerweise komme ich an die config... aber der telnetd war nach nem Neustart deaktiviert.

Jetzt aber zum eigentliche Problem:
Ich bringe die Verbindung zustande!
So wie es ausschaut liegts an meinem Server. Um überhaupt das Forwarding zwischen dem VPN und dem normalen Netz hinzubringen, war dort iptables notwendig. Bisher habe ich mich damit nicht groß beschöftigt und die Konfiguration mittels FireHOL gemacht.

Damit hat auch das Forwarding zwischen meinem Laptop und dem restlichen Servernetz funktioniert (so wie es ja auch mit der FritzBox als Client tut). Ein Weiterleiten von Paketen eines Rechner aus dem Netzt wurde wohl blockiert.
Ich habe jetzt mal alles zugelassen - und es läuft...

Muss mich wohl jetzt erst mal ein wenig mit iptables beschäftigen.
(NAT, Forwarding, MAsquerading usw.) Oder eben so wie jetzt einfach alles erlauben. Da der Server ja vom Internet aus nicht direkt erreichbar ist, wahrscheinlich auch nicht ganz unsicher.

Also nochmals vielen Dank für Deine Hilfe!

Grüße,
Vogi.
 
Wenn du ansonsten die ".2" schon beim Notebook hast, dann wird es etwas klarer. Dennoch: Der "route" Eintrag sollte dann aus der globalen Config raus und verschoben werden raus.

Ich würde dir vorschlagen, die Client-IPs selbst zu vergeben im "client-config-dir".

Mein Vorschlag für deine Datei client-config-dir/<wie-auch-immer-dein-Client-heißt> wäre dann in der Art wie:

Code:
ifconfig-push 192.168.7.6 192.168.7.5
push "route 192.168.7.0 255.255.255.0"
route 192.168.20.0 255.255.255.0
iroute 192.168.20.0 255.255.255.0
push "route-gateway  192.168.7.1"

Oder halt sowas in der Art ;-)

Jörg
 
Hallo Jörg,

hab das mal probiert - funktioniert problemlos.
Werde das jetzt mal mit der client-config so machen um nicht mal versehentlich ne andere IP zu vergeben. Danke für den Tip.

Dann gehts jetzt an die nächste Baustelle: Samba...
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.