Discussion:
Fli4l als OpenVpn Server hinter einer Fritzbox
(zu alt für eine Antwort)
Ralf Scholz
2019-04-02 12:17:14 UTC
Permalink
Hallo NG,

ich möchte hinter einer Fritzbox einen Fli4l als Openvpn Server betreiben.

Soweit sogut, ich kann mich als Roadwarrior über die Fritzbox (nur der
entsprechende Port ist als UDP weiter geleitet) mit dem Fli4l verbinden,
komme dann aber nur auf den Fli4l und auf keinen andere Rechner in dem
Subnetz.
Desweiteren Routet der Fli4l vom 192.168.100.xxx zum 192.168.255.xxx Netz

Es ist eine 3.6.0 Version.

WAN - Fritz Modem (Router + WLAN (192.168.100.100)) - Fli4l (Openvpn
(192.168.100.199)) ... Weitere Rechner im 192.168.100.xxx

Zur Config:
Base:
Zwei Karten für beide Netze
#------------------------------------------------------------------------------
# Ether networks used with IP protocol:
#------------------------------------------------------------------------------
IP_NET_N='2' # number of IP ethernet networks, usually 1
IP_NET_1='192.168.100.199/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
IP_NET_2='192.168.255.100/24' # IP address of your n'th ethernet
card and
# Netmask in CIDR (Nr. of set bits)
IP_NET_2_DEV='eth2' # required: device name like ethX

Die Routen dazu
#------------------------------------------------------------------------------
# Additional routes, optional
#------------------------------------------------------------------------------
IP_ROUTE_N='2' # number of additional routes
IP_ROUTE_1='192.168.255.0/24 192.168.100.199' # network/netmaskbits gateway
IP_ROUTE_2='0.0.0.0/0 192.168.100.100' # example for default-route

Firewall beide Netze können miteinander.

PF_INPUT_N='2'
PF_INPUT_1='IP_NET_1 ACCEPT' # allow all hosts in the local
PF_INPUT_2='IP_NET_2 ACCEPT' # allow all hosts in the local
# network access to the router
# 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_NET_2 ACCEPT' # accept everything else

PF_POSTROUTING_N='2'
PF_POSTROUTING_1='IP_NET_1 MASQUERADE' # masquerade traffic leaving
PF_POSTROUTING_2='IP_NET_2 MASQUERADE' # masquerade traffic leaving
# the subnet
Openvpn
DNS ist dann auch noch ein andere Rechner im Netz ...

OPENVPN_1_NAME='xxx' # Name des Clients
OPENVPN_1_LOCAL_PORT='yyy' # Eingehender Port fuer die Verbindung
OPENVPN_1_SECRET='zzz' # Key-Datei des Clients
OPENVPN_1_TYPE='tunnel'
OPENVPN_1_REMOTE_VPN_IP='192.168.99.201' # Client-IP-Adresse
OPENVPN_1_LOCAL_VPN_IP='192.168.99.202' # Server-IP-Adresse
OPENVPN_1_ROUTE_N='0'
OPENVPN_1_PF_INPUT_N='1'
OPENVPN_1_PF_INPUT_1='ACCEPT'
OPENVPN_1_PF_FORWARD_N='1'
OPENVPN_1_PF_FORWARD_1='ACCEPT'
OPENVPN_1_DNSIP='192.168.100.222'


Die OpenVpn Config auf dem Roadwarrior dazu:

remote xxx.yyy
port zzz
secret "geheim"
dev tun
ifconfig 192.168.99.201 192.168.99.202
route 192.168.100.0 255.255.255.0
comp-lzo
persist-tun
persist-key
ping-timer-rem
ping-restart 60
proto udp
tun-mtu 1500
fragment 1300
mssfix
dhcp-option DNS 192.168.100.222

Was mache ich falsch?

Mfg
Ralf
Hans Bachner
2019-04-02 14:24:00 UTC
Permalink
Hallo Ralf,
Post by Ralf Scholz
Hallo NG,
ich möchte hinter einer Fritzbox einen Fli4l als Openvpn Server betreiben.
Soweit sogut, ich kann mich als Roadwarrior über die Fritzbox (nur der
entsprechende Port ist als UDP weiter geleitet) mit dem Fli4l verbinden,
komme dann aber nur auf den Fli4l und auf keinen andere Rechner in dem
Subnetz.
Desweiteren Routet der Fli4l vom 192.168.100.xxx zum 192.168.255.xxx Netz
Es ist eine 3.6.0 Version.
WAN - Fritz Modem (Router + WLAN (192.168.100.100)) - Fli4l (Openvpn
(192.168.100.199)) ... Weitere Rechner im 192.168.100.xxx
meinst du mit "weitere Rechner" die im WLAN? Außerdem hast du vermutlich
weitere Rechner im Netz 192.168.255.xxx
Post by Ralf Scholz
Zwei Karten für beide Netze
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
IP_NET_N='2' # number of IP ethernet networks, usually 1
IP_NET_1='192.168.100.199/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
IP_NET_2='192.168.255.100/24' # IP address of your n'th ethernet
card and
# Netmask in CIDR (Nr. of set bits)
IP_NET_2_DEV='eth2' # required: device name like ethX
Die Routen dazu
#------------------------------------------------------------------------------
# Additional routes, optional
#------------------------------------------------------------------------------
IP_ROUTE_N='2' # number of additional routes
IP_ROUTE_1='192.168.255.0/24 192.168.100.199' # network/netmaskbits gateway
IP_ROUTE_2='0.0.0.0/0 192.168.100.100' # example for default-route
Firewall beide Netze können miteinander.
PF_INPUT_N='2'
PF_INPUT_1='IP_NET_1 ACCEPT' # allow all hosts in the local
PF_INPUT_2='IP_NET_2 ACCEPT' # allow all hosts in the local
# network access to the router
# 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_NET_2 ACCEPT' # accept everything else
PF_POSTROUTING_N='2'
PF_POSTROUTING_1='IP_NET_1 MASQUERADE' # masquerade traffic leaving
PF_POSTROUTING_2='IP_NET_2 MASQUERADE' # masquerade traffic leaving
# the subnet
Openvpn
DNS ist dann auch noch ein andere Rechner im Netz ...
OPENVPN_1_NAME='xxx' # Name des Clients
OPENVPN_1_LOCAL_PORT='yyy' # Eingehender Port fuer die Verbindung
OPENVPN_1_SECRET='zzz' # Key-Datei des Clients
OPENVPN_1_TYPE='tunnel'
OPENVPN_1_REMOTE_VPN_IP='192.168.99.201' # Client-IP-Adresse
OPENVPN_1_LOCAL_VPN_IP='192.168.99.202' # Server-IP-Adresse
OPENVPN_1_ROUTE_N='0'
OPENVPN_1_PF_INPUT_N='1'
OPENVPN_1_PF_INPUT_1='ACCEPT'
OPENVPN_1_PF_FORWARD_N='1'
OPENVPN_1_PF_FORWARD_1='ACCEPT'
OPENVPN_1_DNSIP='192.168.100.222'
remote xxx.yyy
port zzz
secret "geheim"
dev tun
ifconfig 192.168.99.201 192.168.99.202
route 192.168.100.0 255.255.255.0
comp-lzo
persist-tun
persist-key
ping-timer-rem
ping-restart 60
proto udp
tun-mtu 1500
fragment 1300
mssfix
dhcp-option DNS 192.168.100.222
Was mache ich falsch?
Dein Roadwarrior weiß nicht dass er Pakete an das Netz 192.168.255.xxx
über den Tunnel schicken muss - anstatt desses schickt er sie an sein
default gateway, bei dem sie dann versickern...

Also: nimm
route 192.168.255.0 255.255.255.0
in die Client Konfiguration mit hinein.
Post by Ralf Scholz
PF_POSTROUTING_1='IP_NET_1 MASQUERADE' # masquerade traffic leaving
PF_POSTROUTING_2='IP_NET_2 MASQUERADE' # masquerade traffic leaving
warum maskierst du die Pakete aus IP_NET_1 auf dem fli4l? Die maskiert
ohnehin später die Fritzbox, wenn es ins WAN geht.

Außerdem wäre ich mit x.x.255.x als Subnetz vorsichtig. Wenn weiter
"oben" Netze zum einfacheren Routen aggregiert werden, kollidiert das
schnell einmal mit einer Broadcast-Maske... Ich hab das jetzt nicht
wirklich zu Ende überlegt, möglicherweise funktioniert damit ja alles
ganz einwandfrei. Und hat mit deinem Ausgangsproblem eher nichts zu tun.

Viel Erfolg,
Hans.
Ralf Scholz
2019-04-03 06:35:21 UTC
Permalink
Moin Hans,
Post by Hans Bachner
Hallo Ralf,
Post by Ralf Scholz
Hallo NG,
ich möchte hinter einer Fritzbox einen Fli4l als Openvpn Server betreiben.
Soweit sogut, ich kann mich als Roadwarrior über die Fritzbox (nur der
entsprechende Port ist als UDP weiter geleitet) mit dem Fli4l verbinden,
komme dann aber nur auf den Fli4l und auf keinen andere Rechner in dem
Subnetz.
Desweiteren Routet der Fli4l vom 192.168.100.xxx zum 192.168.255.xxx Netz
Es ist eine 3.6.0 Version.
WAN - Fritz Modem (Router + WLAN  (192.168.100.100)) - Fli4l (Openvpn
(192.168.100.199)) ... Weitere Rechner im 192.168.100.xxx
meinst du mit "weitere Rechner" die im WLAN? Außerdem hast du vermutlich
weitere Rechner im Netz 192.168.255.xxx
Na ja es gibt im 192.168.255.xxx Netz genau einen Rechner, der von den
anderen Rechnern (LAN und WLAN) aus dem 192.168.100.yyy erreicht werden
soll.
Für den Roadwarrior reicht es wenn er die Rechner im 192.168.100.yyy
erreicht (wobei die im WLAN auch nicht wichtig sind).
...
Post by Hans Bachner
Post by Ralf Scholz
Zwei Karten für beide Netze
#------------------------------------------------------------------------------
     PF_POSTROUTING_N='2'
     PF_POSTROUTING_1='IP_NET_1 MASQUERADE'  # masquerade traffic leaving
     PF_POSTROUTING_2='IP_NET_2 MASQUERADE'  # masquerade traffic leaving
                                             # the subnet
Was mache ich falsch?
Dein Roadwarrior weiß nicht dass er Pakete an das Netz 192.168.255.xxx
über den Tunnel schicken muss - anstatt desses schickt er sie an sein
default gateway, bei dem sie dann versickern...
Wie gesagt das 192.168.255.xxx ist nicht von Interesse für den Roadwarrior.
Post by Hans Bachner
Also: nimm
   route 192.168.255.0 255.255.255.0
in die Client Konfiguration mit hinein.
Post by Ralf Scholz
     PF_POSTROUTING_1='IP_NET_1 MASQUERADE'  # masquerade traffic leaving
     PF_POSTROUTING_2='IP_NET_2 MASQUERADE'  # masquerade traffic leaving
Oh ja alte Überbleibsel aus Zeiten ohne Fritzbox, ich wollte die FW ganz
aus schalten aber ohne FW kein Openvpn.
Ich nehme das mal raus.
Post by Hans Bachner
warum maskierst du die Pakete aus IP_NET_1 auf dem fli4l? Die maskiert
ohnehin später die Fritzbox, wenn es ins WAN geht.
Außerdem wäre ich mit x.x.255.x als Subnetz vorsichtig. Wenn weiter
"oben" Netze zum einfacheren Routen aggregiert werden, kollidiert das
schnell einmal mit einer Broadcast-Maske... Ich hab das jetzt nicht
wirklich zu Ende überlegt, möglicherweise funktioniert damit ja alles
ganz einwandfrei. Und hat mit deinem Ausgangsproblem eher nichts zu tun.
Viel Erfolg,
Hans.
Danke Hans für die Hinweise.

Gruß
Ralf
Ralf Scholz
2019-04-03 07:00:42 UTC
Permalink
Post by Ralf Scholz
Moin Hans,
Post by Hans Bachner
Hallo Ralf,
Post by Ralf Scholz
Hallo NG,
ich möchte hinter einer Fritzbox einen Fli4l als Openvpn Server betreiben.
Soweit sogut, ich kann mich als Roadwarrior über die Fritzbox (nur der
entsprechende Port ist als UDP weiter geleitet) mit dem Fli4l verbinden,
komme dann aber nur auf den Fli4l und auf keinen andere Rechner in dem
Subnetz.
Desweiteren Routet der Fli4l vom 192.168.100.xxx zum 192.168.255.xxx Netz
Es ist eine 3.6.0 Version.
WAN - Fritz Modem (Router + WLAN  (192.168.100.100)) - Fli4l (Openvpn
(192.168.100.199)) ... Weitere Rechner im 192.168.100.xxx
meinst du mit "weitere Rechner" die im WLAN? Außerdem hast du
vermutlich weitere Rechner im Netz 192.168.255.xxx
Na ja es gibt im 192.168.255.xxx Netz genau einen Rechner, der von den
anderen Rechnern (LAN und WLAN) aus dem 192.168.100.yyy erreicht werden
soll.
Für den Roadwarrior reicht es wenn er die Rechner im 192.168.100.yyy
erreicht (wobei die im WLAN auch nicht wichtig sind).
....
Post by Hans Bachner
Post by Ralf Scholz
Zwei Karten für beide Netze
#------------------------------------------------------------------------------
     PF_POSTROUTING_N='2'
     PF_POSTROUTING_1='IP_NET_1 MASQUERADE'  # masquerade traffic leaving
     PF_POSTROUTING_2='IP_NET_2 MASQUERADE'  # masquerade traffic leaving
                                             # the subnet
Was mache ich falsch?
Dein Roadwarrior weiß nicht dass er Pakete an das Netz 192.168.255.xxx
über den Tunnel schicken muss - anstatt desses schickt er sie an sein
default gateway, bei dem sie dann versickern...
Wie gesagt das 192.168.255.xxx ist nicht von Interesse für den Roadwarrior.
Post by Hans Bachner
Also: nimm
    route 192.168.255.0 255.255.255.0
in die Client Konfiguration mit hinein.
Post by Ralf Scholz
     PF_POSTROUTING_1='IP_NET_1 MASQUERADE'  # masquerade traffic leaving
     PF_POSTROUTING_2='IP_NET_2 MASQUERADE'  # masquerade traffic leaving
Oh ja alte Überbleibsel aus Zeiten ohne Fritzbox, ich wollte die FW ganz
aus schalten aber ohne FW kein Openvpn.
Ich nehme das mal raus.
Post by Hans Bachner
warum maskierst du die Pakete aus IP_NET_1 auf dem fli4l? Die maskiert
ohnehin später die Fritzbox, wenn es ins WAN geht.
Außerdem wäre ich mit x.x.255.x als Subnetz vorsichtig. Wenn weiter
"oben" Netze zum einfacheren Routen aggregiert werden, kollidiert das
schnell einmal mit einer Broadcast-Maske... Ich hab das jetzt nicht
wirklich zu Ende überlegt, möglicherweise funktioniert damit ja alles
ganz einwandfrei. Und hat mit deinem Ausgangsproblem eher nichts zu tun.
Viel Erfolg,
Hans.
Danke Hans für die Hinweise.
Gruß
Ralf
Post by Hans Bachner
Also: nimm
route 192.168.255.0 255.255.255.0
in die Client Konfiguration mit hinein.
Wenn ich die Route mit rein nehme komme ich vom Roadwarrior in das
255'er Netz.

Ich hab da so eine Ahnung warum der Roadwarrior nicht ins (oder besser
aus dem 100'er Netz) kommt.

Der Fli4l ist in diesem Netz ein einfacher Teilnehmer es wir nur der
Traffic vom 100'er zum 255'er Netz geroutet und für das 255'er Netz ist
er das Gateway. Aber (jetzt kommts) NICHT für das 100'er Netz, das ist
die Fritzbox und so wissen die Clients nicht wie sie zurück kommen.

Wenn das das Problem ist, hat jemand eine Lösung dazu? Bzw gibt es eine?

Gruß
Ralf
Hans Bachner
2019-04-03 20:30:57 UTC
Permalink
Hallo Ralf,

ich nehm jetzt einmal die Vorgeschichte raus, damit es nicht zu
unübersichtlich wird...
Post by Ralf Scholz
Post by Ralf Scholz
Moin Hans,
Post by Hans Bachner
[...]
Viel Erfolg,
Hans.
Danke Hans für die Hinweise.
Gruß
Ralf
Post by Hans Bachner
Also: nimm
route 192.168.255.0 255.255.255.0
in die Client Konfiguration mit hinein.
Wenn ich die Route mit rein nehme komme ich vom Roadwarrior in das
255'er Netz.
Ich hab da so eine Ahnung warum der Roadwarrior nicht ins (oder besser
aus dem 100'er Netz) kommt.
Der Fli4l ist in diesem Netz ein einfacher Teilnehmer es wir nur der
Traffic vom 100'er zum 255'er Netz geroutet und für das 255'er Netz ist
er das Gateway. Aber (jetzt kommts) NICHT für das 100'er Netz, das ist
die Fritzbox und so wissen die Clients nicht wie sie zurück kommen.
Guter Punkt - ich habe nicht beachtet, dass der fli4l ja nur normaler
Teilnehmer im LAN ist und nicht der ganze Traffic über ihn zur Fritzbox
geht.
Post by Ralf Scholz
Wenn das das Problem ist, hat jemand eine Lösung dazu? Bzw gibt es eine?
Wenn ich dich richtig verstehe, verwenden die Clients im 192.168.100.x
Netz alle die Fritzbox als default gateway.

Es müsste also reichen, in der Fritzbox eine zusätzliche Route
einzutragen. Der Verkehr vom Roadwarrior kommt von 192.168.99.201, die
Fritzbox muss also Pakete für diese Adresse an den fli4l
(192.168.100.199) schicken.

Den Umweg über die Fritzbox kannst du dir ersparen, wenn du die
zusätzliche Route auch auf den Clients einträgst. Das kann bei etlichen
Clients mit fester Konfiguration aufwendig sein, zumindest den per DHCP
versorgten Clients kannst du die zusätzliche Route aber recht einfach
mitgeben.

Ich hoffe, damit kommst du weiter.

Viel Erfolg,
Hans.
Post by Ralf Scholz
IP_ROUTE_1='192.168.255.0/24 192.168.100.199'
kannst du weglassen. Da der fli4l ein Interface in diesem Netz hat
(IP_NET_2_DEV), weiß er ohnehin, wohin er Pakte für 192.168.255.x
schicken muss.
Ralf Scholz
2019-04-04 08:05:05 UTC
Permalink
Moin Hans,

ja genau das war es das "Transportnetz" 99.xxx fehlte als statische
Route auf der Fritzbox.
Gruß
Ralf

Loading...