OpenVPN unter FLI4L, Portweiterleitung auf den VPN-Client

Crusoe
Hallo Liebe Community,

ich bin ganz neu hier und hab auch direkt eine Frage die ungefähr den gleichen Schwierigkeitsgrad hat, wie eine Paranuß mit zwei Zahnstochern zu öffen :? Wer jetzt Angst bekommen hat, ließt besser nicht weiter :D

Die Gegebenheiten:

1. Ein FLI4L-Router an einem DSL Anschluss von T-Online (im Moment zu Testzwecken 1MBit, später 100MBit Glasfaser)

2. Ein paar Rechner hinter dem FLI4L Router auf die ich später zugreifen möchte (das hab ich schon hinbekommen).

3. Mein Laptop verbunden über eine DFÜ-Verbindung im GPRS/EDGE/UMTS bzw. HSDPA-Netz von Vodafone (Moobicent Flatrate).

4. Diverse Spieleserver oder z.B. mein FTP-Server der von außen Erreichbar sein soll. (Nein die Server müssen auf dem Laptop laufen und können nicht auf einem der Rechner hinter dem FLI4L installiert werden, das geht zwar, soll aber nicht so sein...)

Mein Problem:

Ich bekomme es nicht fertig von außen über den FLI4L zu meinem Laptop der ja über openVPN mit diesen verbunden ist, einen meiner Server anzusprechen. Quasi werden die Ports nicht richtig, bzw gar nicht weiter geleitet.

Evtl. relevante Auszüge aus den FLI4L-Configs:

"base.txt":
...
#--------------------------------------------------------------------------
----
# Ether networks used with IP protocol:
#--------------------------------------------------------------------------
----
IP_NET_N='1' # number of IP ethernet networks, usually 1
IP_NET_1='192.168.2.1/24' # IP address of your n'th ethernet card and
# netmask in CIDR (no. of set bits)
IP_NET_1_DEV='eth0' # required: device name like ethX

#--------------------------------------------------------------------------
----
# Additional routes, optional
#--------------------------------------------------------------------------
----
IP_ROUTE_N='1' # number of additional routes
IP_ROUTE_1='192.168.200.0/24 192.168.2.1' # network/netmaskbits gateway
IP_ROUTE_2='0.0.0.0/0 192.168.2.99' # example for default-route
...
PF_NEW_CONFIG='yes' # new style packet filter config: yes/no

PF_INPUT_POLICY='REJECT' # be nice and use reject as policy
PF_INPUT_ACCEPT_DEF='yes' # use default rule set
PF_INPUT_LOG='no' # don't log anything
PF_INPUT_LOG_LIMIT='3/minute:5' # log 3 events per minute; allow a
# burst of 5 events
PF_INPUT_REJ_LIMIT='1/second:5' # reject 1 connection per second; allow
# a burst of 5 events; otherwise
# drop packet
PF_INPUT_UDP_REJ_LIMIT='1/second:5' # reject 1 udp packet per second; allow
# a burst of 5 events; otherwise drop
# packet
PF_INPUT_N='3'
PF_INPUT_1='IP_NET_1 ACCEPT' # allow all hosts in the local
# network access to the router
PF_INPUT_2='IP_ROUTE_1 ACCEPT' # drop (or reject) samba access
PF_INPUT_2_COMMENT='VPN Traffic erlaubt' # without logging, otherwise
PF_INPUT_3='22 ACCEPT BIDIRECTIONAL' # the log file will be filled
# with useless entries

PF_FORWARD_POLICY='REJECT' # be nice and use reject as policy
PF_FORWARD_ACCEPT_DEF='yes' # use default rule set
PF_FORWARD_LOG='no' # don't log anything
PF_FORWARD_LOG_LIMIT='3/minute:5' # log 3 events per minute; allow a
# burst of 5 events
PF_FORWARD_REJ_LIMIT='1/second:5' # reject 1 connection per second; allow
# a burst of 5 events; otherwise
# drop packet
PF_FORWARD_UDP_REJ_LIMIT='1/second:5' # reject 1 udp packet per second;
# allow a burst of 5 events;
# otherwise drop packet
PF_FORWARD_N='3'
PF_FORWARD_1='tmpl:samba DROP' # drop samba traffic if it tries
# to leave the subnet
PF_FORWARD_2='IP_NET_1 ACCEPT' # accept everything else
PF_FORWARD_3='IP_ROUTE_1 ACCEPT BIDIRECTIONAL'

PF_POSTROUTING_N='1'
PF_POSTROUTING_1='IP_NET_1 MASQUERADE' # masquerade traffic leaving
PF_POSTROUTING_2='IP_ROUTE_1 MASQUERADE' # the subnet


PF_PREROUTING_N='0'
PF_PREROUTING_1='22 ACCEPT'

PF_USR_CHAIN_N='0'

Ende "base.txt"

"proxy.txt"
...
#--------------------------------------------------------------------------
----
# Optional package: SS5 (Generic Socks proxy)
#--------------------------------------------------------------------------
----
OPT_SS5='yes' # install ss5 sock4/5 proxy
SS5_LISTEN_N='1' # number off interfaces to listen on
SS5_LISTEN_1='IP_NET_1_IPADDR:8050'

SS5_ALLOW_N='1' # open firewall for hosts and networks
SS5_ALLOW_1='IP_NET_1'

Ende "proxy.txt"

"openvpn.txt"
...
##-------------------------------------------------------------------------
----
## OPT_OPENVPN - used only if OPT_OPENVPN='yes'
##-------------------------------------------------------------------------
----

OPT_OPENVPN='yes' # 'yes' or 'no' it's your choice

OPENVPN_FEATURES='full' # The OpenVPN daemon is really big. To allow using
# OpenVPN with a floppy you can choose between 3
# different OpenVPN daemons with different chipers,
# digests and TLS support.

OPENVPN_WEBGUI='yes' # install a web gui to start/stop/control openvpn

OPENVPN_N='1' # number of openvpn configurations

OPENVPN_1_NAME='Tunnel'
OPENVPN_1_LOCAL_PORT='10000'
OPENVPN_1_SECRET='key.secret'
OPENVPN_1_TYPE='tunnel'
OPENVPN_1_REMOTE_VPN_IP='192.168.200.2'
OPENVPN_1_LOCAL_VPN_IP='192.168.200.1'
OPENVPN_1_ROUTE_N='0'
OPENVPN_1_PF_FORWARD_N='1'
OPENVPN_1_PF_FORWARD_1='ACCEPT'
OPENVPN_1_PF_INPUT_N='1'
OPENVPN_1_PF_INPUT_1='if:VPNDEV:any 0.0.0.0/0 ACCEPT'

Ende "openvpn.txt"

Ein kleines Bild zur Veranschaulichung meines Problems:
(Bitte habt Nachsicht, ich hatte in Kunst immer ne vier :cry: )

Und jetzt viel Spaß beim rätseln und helfen. Selbstverständlich sind auch aktive Beteiligungen, sprich Eingriff ins Netzwerk, soweit es der Problemlösung dient willkommen. Ich bin sicher kein Genie auf dem Gebiet, aber auch der einäugige ist König unter den Blinden und auch der brauch mal ein zweites oder drittes Auge 8)
Schon mal vielen Dank im voraus.

Hier nochmal das Bild einzeln Klick mich
Crusoe
Wollt mir mir ernsthalft weis machen, dass es hier keinen gibt, der sich mit sowas auskennt?!
atomical
Nicht so ungeduldig.

Versteh ich es richtig - du hast ein LAN (PCs hinter dem Router,) - in dieses bindest du deinen Laptop per VPN ein - kannst du denn dann von den PCs hinter dem Router auf die Dienste des Laptops zugreifen?


Du willst quasi von einem Roadwarrior (Client) auf Dienste des anderen Roadwarriors (Laptop) zugreifen - richtig?


Ich denke, das ist mit Bridging leichter zu realisieren als mit Fowarding - ich denke dazu sollte man was im Netz finden ;)

Ich hab das so noch nicht realisiert, weil mir immer der Zugriff auf die Dienste meines Servers gereicht hat.
Crusoe
Richtig, der Laptop (Wo die Server laufen) soll per VPN als Straßenkrieger an das Netzwerk angebunden werden (rote Pfeile). Da man ja leider im UMTS Netz keine Ports forwarden kann, womit (ich hoffe das stimmt jetzt) man auch keine Bridge machen kann sonden nur per UDP der Roadwarrior übrig bleibt. Der untere Laptop/PC muss ohne VPN Anbindung auf die Dienste meines Laptops zugreifen können. Und ja: Die PC hinter dem FLI4L können problemlos auf alles was auf meinem Laptop passiert zugreifen, nur eben die PC's nicht die weder zum VPN noch zum Netzwerk hinter dem Router gehören. Ich wäre ja schon ein Stück weiter, wenn ich wüsste wie ich diverse p2p Programme auf dem Laptop der als Roadwarrior an den FLI4L gekuppelt ist zum laufen bringen könnte. Das ist ja auch so eine Sache die mit UMTS nicht geht, das ist aber nicht wild, dafür gibt es Rapidshare und co. da ich eh nur, wenn ich mal was downloade, Serien gucke die schon 100 Jahre alt sind und auf Tele5 laufen. Wichtig ist mein FTP, VNC und die Spiele, das muss von "außen" ohne VPN klappen, quasi muss der FLI4L diese Pakete von außen an meinen Laptop (wo die Server laufen) forwarden können und umgekehrt was vom Laptop (wo die Server laufen) raus geht entsprechend behandeln können... Bisher hab ich es nur geschafft, dass die Pakete vernünftig beim FLI4L ankommen, jedoch nicht über den FLI4L ins Internet entsant werden... Bei den Rechnern im Netzwerk des FLI4L, also die PC's die nicht per VPN an ihn angebunden sind, geht das. So... Verwirrung pur, ich hoffe du kannst mir trotzdem helfen :)
AranankA
Du hyperventilierst! Aus dem was du sagst (und wie du es schreibst! - diesen Blocksatz da oben mag keiner lesen...), wird man nicht klug.
Mache es mal in Methode 1. 2. 3. und laß den Füllstoff raus!
Crusoe
Richtig.
Der Laptop soll per VPN als RW an das Netzwerk angebunden werden (rote Pfeile).

Da man ja leider im UMTS Netz keine Ports forwarden kann, womit (ich hoffe das stimmt jetzt) man auch keine Bridge machen kann sonden nur per UDP der Roadwarrior übrig bleibt.

Der untere Laptop/PC muss ohne VPN Anbindung auf die Dienste meines Laptops zugreifen können.

Und ja: Die PC hinter dem FLI4L können problemlos auf alles was auf meinem Laptop passiert zugreifen, nur eben die PC's nicht die weder zum VPN noch zum Netzwerk hinter dem Router gehören.

Ich wäre ja schon ein Stück weiter, wenn ich wüsste wie ich diverse p2p Programme auf dem Laptop der als Roadwarrior an den FLI4L gekuppelt ist zum laufen bringen könnte. Das ist ja auch so eine Sache die mit UMTS nicht geht, das ist aber nicht wild.

Wichtig ist mein FTP, VNC und die Spiele, das muss von "außen" ohne VPN klappen, quasi muss der FLI4L diese Pakete von außen an meinen Laptop (wo die Server laufen) forwarden können und umgekehrt was vom Laptop raus geht entsprechend behandeln können.

Bisher hab ich es nur geschafft, dass die Pakete vernünftig beim FLI4L ankommen, jedoch nicht über den FLI4L ins Internet entsant werden. Bei den Rechnern im Netzwerk des FLI4L, also die PC's die nicht per VPN an ihn angebunden sind, geht das.

So... Immernoch Verwirrung pur, dafür ist ja schließlich das Bild da. Ich hoffe es hilft. Und da man nicht den ganzen Tag am PC sitzen kann, geh ich jetzt laufen :)

Danke für die Hilfe :)
AranankA
Anders: Auf dem Bild befinden sich 1. Mein Laptop, 2. Der Client, 3. ein undefiniertes Laptop auf dem wohl Floppy ISDN for Linux (FLI4L) von Diskette(?) läuft und auch konfiguriert ist(?) und 4. ein paar weitere PCs hinter 3.

Problem: 2. soll auf 1. über UMTS ohne VPN zugreifen. Der Rest läuft und ist damit unwichtig.
Ist das soweit richtig?

Wenn ja: Von wem oder was beziehen 1. - 4. ihre IPs? In welchem IP Bereich liegen 1. & 2.?
Crusoe
Ich wollte gerade weg^^

Aber du hast das goldrichtig erfasst.

"2. Der Client" muss nicht zwingend über UMTS angebunden sein, kann aber... Aber er ist nicht im VPN Netzwerk, das stimmt.

"1. Mein Laptop" bekommt seine IP einmal vom ISP und einmal von openVPN (192.168.200.2).

"2. Der Client" bekommt seine IP wahrscheinlich auch von seinem ISP.

"3. ein undefiniertes Laptop auf dem wohl Floppy ISDN for Linux (FLI4L) von Diskette(?) läuft und auch konfiguriert ist(?)" ist der Router, irgendwie kann man das auf dem Bild schlecht lesen, steht drunter das es der FLI4L Router ist (ist keine Kritik, ich weis das ich kein Künstler bin). Der bezieht seine öffentliche IP vom ISP und verfügt über eine DNS "*.homeftp.org". Seine openVPN IP ist 192.168.200.1 (er ist auch der VPN Server). Seine LAN IP ist 192.168.2.1, denn er muss ja für die "4. ein paar weitere PCs hinter 3." den Router spielen und erreichbar sein. Die "4. ein paar weitere PCs hinter 3." haben die Adressen 192.168.2.2, 192.168.2.3, 192.168.2.4 usw.

Die IP-Bereiche von "1.":
Öffentlich: vom ISP abhängig
openVPN: 192.168.200.0/24

Der IP-Bereich von "2.":
Öffentlich: vom ISP abhängig


P.S.: Ich bleib noch ein paar Minuten. Vllt. finden wir eine Lösung :)
AranankA
quote:
...muss nicht zwingend über UMTS angebunden sein, kann aber...
Na was nun? UMTS oder nicht UMTS? Das ist wichtig.
Um 1. von 2. in der Form wie auf dem Bild dargestellt ansprechen zu können, benötigt 1. eine öffentliche IP. Hinter UMTS erhalten die Clienten aber (je nach IPS; Beispiel hier ePlus: mom. 10.161.24.16) IPs im Bereich der Klasse A 10.0.0.0 - 10.255.255.255, also im Bereich privater Adressen. Sie sind somit nicht erreichbar.
Crusoe
Passt wie Arsch auf Eimer :) Bin gerade zur Tür rein...

Warum sollte das denn wichtig sein?!
Wenn "2." "1." ansprechen will, dann muss er über den FLI4L Router oder?

Quasi: "2." stellt Anfrage --> ftp://*.homeftp.org (das ist der FLI4L), der merkt dann "aha Port 21" *Augen auf Portforwarding* "Alles klar" DNAT:192.168.200.2:21 (das ist ja "1.").
Dann sollte mein Laptop "1." das ja sehen und schickt seine Daten an den FLI4l der leitet das dann entsprechend weiter an "2.". Das Problem dabei ist aber, das dass Paket nicht so abgeändert werden darf, das mein Laptop denkt, das die Anfrage vom FLI4L kommt, da er sonst das Paket entsprechend so verschickt als sei es für den FLI4L. Dann guckt "2." der Client nämlich in die Röhre...

Aber wenn es dir weiter hilft... Dann ist der Client eben ein Festnetz-DSL'er... Und für die UMTS'er muss ich mir dann seperat was einfallen lassen...
AranankA
Na ja. So wie es auf der Zeichnung dargestellt ist, geht das so nicht daraus vor...

    2. (Client) stellt Anfrage an Router.
    Router leitet weiter an 1. (Server)
    Server reagiert und benutzt den gleichen Weg, um das Paket abzuarbeiten: Server sendet immer an den Router.

Was du da schilderst/forderst wäre ja eine Anforderung an den Server unter Auslassung des Routers, aber mit Benutzung des Routers. Und das geht nicht, da der Router der einzige ist, der alle Geräte im Netzwerk kennt. Letztendlich stellst du deine Anfrage ja immer an den Router als zentrale Vermittlung und nicht an den Server direkt.

Wenn ich hier im Laden sitze und benötige Daten von meinem FTP Server, dann öffne ich WiseFTP auf dem Clienten, rufe meine Adresse (den Router; der spricht mit dynOrg) an. Der leitet die Anfrage an den Server, Server sendet an den Router und der zurück in den Laden. Der Server kennt die Adresse des Clienten im Laden nicht. Muß er auch nicht: Der Router wirds richten, wird also immer gefragt und damit einbezogen.
Wollte ich direkt auf den Server zugreifen (ohne Router), dann müsste der Server selber die Anforderung an dynOrg stellen um erreichbar zu sein.
Crusoe
Das läuft bei dir ja nicht anders... Nur bei mir ist der feine Unterschied, das mein Server im Gegensatz zu deinem, per VPN an den Router (FLI4L) angebunden ist, das ist also eine Einstellungssache... Deiner ist per LAN mit dem Router verbunden.

Was du da über deinen Server sagst stimmt nicht ganz, ich denke schon das der weiß wohin das Paket geht. Guck mal in die Log von dem Server oder wenn du dich damit auskennst Wireshark.

Ein Auszug aus meinem FTP. Im Moment greife ich auf exakt das gleiche Konzept wie du zurück.

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
(000004) 17.04.2008 08:46:38 - (not logged in) (87.170.225.12)> Connected, sending welcome message...
(000004) 17.04.2008 08:46:38 - (not logged in) (87.170.225.12)> USER Crusoe
(000004) 17.04.2008 08:46:38 - (not logged in) (87.170.225.12)> 331 Password required for crusoe
(000004) 17.04.2008 08:46:38 - (not logged in) (87.170.225.12)> PASS ********
(000004) 17.04.2008 08:46:38 - crusoe (87.170.225.12)> 230 Logged on
(000004) 17.04.2008 08:46:38 - crusoe (87.170.225.12)> REST 100
(000004) 17.04.2008 08:46:38 - crusoe (87.170.225.12)> 350 Rest supported. Restarting at 100
(000004) 17.04.2008 08:46:39 - crusoe (87.170.225.12)> REST 0
(000004) 17.04.2008 08:46:39 - crusoe (87.170.225.12)> 350 Rest supported. Restarting at 0
(000004) 17.04.2008 08:46:39 - crusoe (87.170.225.12)> TYPE A
(000004) 17.04.2008 08:46:39 - crusoe (87.170.225.12)> 200 Type set to A
(000004) 17.04.2008 08:46:39 - crusoe (87.170.225.12)> PASV
(000004) 17.04.2008 08:46:39 - crusoe (87.170.225.12)> 227 Entering Passive Mode (192,168,2,2,8,213)
(000004) 17.04.2008 08:46:39 - crusoe (87.170.225.12)> LIST /Daten/****/**********/***************.zip
(000004) 17.04.2008 08:46:39 - crusoe (87.170.225.12)> 150 Connection accepted
(000004) 17.04.2008 08:46:39 - crusoe (87.170.225.12)> 226 Transfer OK



87.170.225.12 ist die Adresse des Clienten. Der Server MUSS die wissen, sonst is essig mit dem Datenaustausch. Und das ist mein Problem, ich bettel meinen FLI4L schon auf Knien an, der er die Pakete doch richtig maskieren möge... Aber er tut es nicht... Weil ich nicht weis wie ich es ihm beibringen soll... Die Pakete verlaufen immer ins Nirvana bzw. an der Einstellung des Ports hapert es schon...
AranankA
Habe das jetzt mal geprüft. Und du hast recht: Die IP ist sichtbar und wird eingelesen. Also haargenau so wie in deinem FTP Protokoll.
Nur ist mir nicht klar, warum du keine Daten laden kannst. Ich habe kein VPN und kann jederzeit von jedem Rechner aus einloggen.