.titleBar { margin-bottom: 5px!important; }

Rechner hinter OpenVPN Box von Client nicht erreichbar

Dieses Thema im Forum "Freetz" wurde erstellt von Vogi, 28 Sep. 2008.

  1. Vogi

    Vogi Neuer User

    Registriert seit:
    30 Sep. 2006
    Beiträge:
    60
    Zustimmungen:
    0
    Punkte für Erfolge:
    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.
     
  2. sf3978

    sf3978 IPPF-Promi

    Registriert seit:
    2 Dez. 2007
    Beiträge:
    7,613
    Zustimmungen:
    3
    Punkte für Erfolge:
    38
    #2 sf3978, 28 Sep. 2008
    Zuletzt bearbeitet: 28 Sep. 2008
    Mit netstat -nr kannst Du schauen wie deine FritzBox routet.
     
  3. Vogi

    Vogi Neuer User

    Registriert seit:
    30 Sep. 2006
    Beiträge:
    60
    Zustimmungen:
    0
    Punkte für Erfolge:
    6
    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.
     
  4. sf3978

    sf3978 IPPF-Promi

    Registriert seit:
    2 Dez. 2007
    Beiträge:
    7,613
    Zustimmungen:
    3
    Punkte für Erfolge:
    38
    Aus der Ausgabe von netstat sollte ersichtlich sein, welches Gateway für das Routing durch das entsprechende NIC, zwischen den einzelnen Netzen verwendet wird.
     
  5. frank_m24

    frank_m24 IPPF-Urgestein

    Registriert seit:
    20 Aug. 2005
    Beiträge:
    17,571
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Ort:
    Niederrhein
    Hallo,

    verschoben nach Freetz.
     
  6. MaxMuster

    MaxMuster IPPF-Promi

    Registriert seit:
    1 Feb. 2005
    Beiträge:
    6,919
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Moin,

    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
     
  7. Vogi

    Vogi Neuer User

    Registriert seit:
    30 Sep. 2006
    Beiträge:
    60
    Zustimmungen:
    0
    Punkte für Erfolge:
    6
    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...
     
  8. MaxMuster

    MaxMuster IPPF-Promi

    Registriert seit:
    1 Feb. 2005
    Beiträge:
    6,919
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    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
     
  9. Vogi

    Vogi Neuer User

    Registriert seit:
    30 Sep. 2006
    Beiträge:
    60
    Zustimmungen:
    0
    Punkte für Erfolge:
    6
    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
     
  10. MaxMuster

    MaxMuster IPPF-Promi

    Registriert seit:
    1 Feb. 2005
    Beiträge:
    6,919
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    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
     
  11. Vogi

    Vogi Neuer User

    Registriert seit:
    30 Sep. 2006
    Beiträge:
    60
    Zustimmungen:
    0
    Punkte für Erfolge:
    6
    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.
     
  12. MaxMuster

    MaxMuster IPPF-Promi

    Registriert seit:
    1 Feb. 2005
    Beiträge:
    6,919
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    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
     
  13. Vogi

    Vogi Neuer User

    Registriert seit:
    30 Sep. 2006
    Beiträge:
    60
    Zustimmungen:
    0
    Punkte für Erfolge:
    6
    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...