[Gelöst] Fritzbox 7330 SL OpenVPN --> OpenVPN Access Server, Routing

elcravo

Neuer User
Mitglied seit
23 Jul 2014
Beiträge
8
Punkte für Reaktionen
0
Punkte
0
Hallo,

ich habe auf meiner Fritzbox Freetz installiert um eine Site-to-Site VPN zu meinem OpenVPN Access Server zu realisieren.

OpenVPN funktioniert auf der FB und es wird auch erfolgreich ein Tunnel aufgebaut. Ich kann dann das lokale Netz hinter dem Access Server von der Fritzbox aus pingen usw.
Allerdings kriege ich es nicht hin, dass die Clients die im lokalen Netz der Fritzbox sind auch auf das Access Server Netz zugreifen können.

Wie mache ich das am besten? Ich hatte zunächst an iptables gedacht, schaffe es aber beim besten Willen nicht das auf meiner FB zum Laufen zu bringen.

Ich verwende die Freetz Version FRITZ!OS 05.50-freetz-devel-10467M

Viele Grüße

elcravo

EDIT: Hat sich erledigt, ich habe das ganze jetzt über IPSEC mit openswan gelöst.

Falls es jemanden interessiert hier meine Config:

Openswan:
/etc/ipsec.conf

Der Inhalt muss an den rot markierten Stellen noch angepasst werden:

Code:
version 2.0     # conforms to second version of ipsec.conf specification

# basic configuration
config setup
        # Debug-logging controls:  "none" for (almost) none, "all" for lots.
        # klipsdebug=none
        # plutodebug="control parsing"
        # For Red Hat Enterprise Linux and Fedora, leave protostack=netkey
        protostack=netkey
        nat_traversal=yes
        virtual_private=[COLOR="#FF0000"]<hier müssen die Netze rein auf die der openswan Server Zugriff haben soll, z.B: %v4:192.168.178.0./24>[/COLOR]
        oe=off
        # Enable this if you see "failed to find any available worker"
        # nhelpers=
conn Site-to-Site
        authby=secret
        auto=add
        type=tunnel
        aggrmode=yes
        left=[COLOR="#FF0000"]<öffentlich IP des openswan Server>[/COLOR]
        leftid=[COLOR="#FF0000"]<FQD des openswan Server>[/COLOR]
        leftnexthop=%defaultroute
        leftsourceip=[COLOR="#FF0000"]<freie IP aus dem lokalen Netz, in meinem Fall 192.168.1.2>[/COLOR]
        leftsubnet=[COLOR="#FF0000"]<lokales Netz des openswan Server, in meinem Fall 192.168.1.0/24>[/COLOR]
        right=%any
        rightsubnet=[COLOR="#FF0000"]<lokales Netz der FB, in meinem Fall 192.168.178.0/24>[/COLOR]
        rightid=[COLOR="#FF0000"]<Die ID eurer FB, z.B. DynDNS Adresse>[/COLOR]
        ike=aes256-sha1;modp2048
        phase2=esp
        phase2alg=aes256-sha1;modp2048

secrets Datei (/etc/ipsec.secrets):

Der Inhalt muss an den rot markierten Stellen noch angepasst werden:

Code:
[COLOR="#FF0000"]<öffentlich IP des openswan Server>[/COLOR] %any: PSK "[COLOR="#FF0000"]geheimes_passwort[/COLOR]"

/etc/sysctl.conf
Code:
#Diese Zeile muss enthalten sein:
net.ipv4.ip_forward = 1

iptables:

Man benötigt auf dem openswan Server noch folgende iptables Regel. Der Tunnel lässt sich zwar auch ohne die Regel aufbauen, er funktioniert dann aber nur in der Richtung FB --> openswan.

Der Inhalt muss an den rot markierten Stellen noch angepasst werden:

Code:
iptables -t nat -I POSTROUTING -s [COLOR="#FF0000"]<loakles IP Netz des openswan Servers, inklusive Netzmaske>[/COLOR] -d [COLOR="#FF0000"]<loakles IP Netz der FB, inklusive Netzmaske>[/COLOR] -j ACCEPT

Bei mir sähe die Regel so aus:

Code:
iptables -t nat -I POSTROUTING -s 192.168.1.0/24 -d 192.168.178.0/24 -j ACCEPT

Fritzbox:

Die Fritzbox benötigt eine DynDNS Domain

Config File:

Der Inhalt muss an den rot markierten Stellen noch angepasst werden:

Code:
vpncfg {
        connections {
                enabled = yes;
                conn_type = conntype_lan;
                name = "[COLOR="#FF0000"]<beliebiger Name>[/COLOR]";
                always_renew = yes;
                reject_not_encrypted = no;
                dont_filter_netbios = yes;
                localip = 0.0.0.0;
                local_virtualip = 0.0.0.0;
                remoteip = [COLOR="#FF0000"]<externe IP des openswan Servers>[/COLOR];
                remote_virtualip = 0.0.0.0;
                localid {
                        fqdn = "[COLOR="#FF0000"]<DynDNS Adresse der Fritzbox>[/COLOR]";
                }
                remoteid {
                        ipaddr = [COLOR="#FF0000"]<externe Adresse des openswan Servers>[/COLOR];
                }
                mode = phase1_mode_aggressive;
                phase1ss = "all/all/all";
                keytype = connkeytype_pre_shared;
                key = "[COLOR="#FF0000"]<Passwort aus der secrets Datei>[/COLOR]";
                cert_do_server_auth = no;
                use_nat_t = yes;
                use_xauth = no;
                use_cfgmode = no;
                phase2localid {
                        ipnet {
                                ipaddr = [COLOR="#FF0000"]<Netzadresse des lokalen FB Netzes, in meinem Fall 192.168.178.0>[/COLOR];
                                mask = [COLOR="#FF0000"]<Zu dem Netz zugehörige Subnetzmaske, in meinem Fall 255.255.255.0>[/COLOR];
                        }
                }
                phase2remoteid {
                        ipnet {
                                ipaddr = [COLOR="#FF0000"]<Netzadresse des lokalen openswan Server Netzes, in meinem Fall 192.168.1.0>[/COLOR];
                                mask = [COLOR="#FF0000"]<Zu dem Netz zugehörige Subnetzmaske, in meinem Fall 255.255.255.0>[/COLOR];
                        }
                }
                phase2ss = "esp-all-all/ah-none/comp-all/pfs";
                accesslist = "permit ip any [COLOR="#FF0000"]<Netzadresse des lokalen openswan Server Netzes, in meinem Fall 192.168.1.0>[/COLOR] 255.255.255.0";
        }
        ike_forward_rules = "udp 0.0.0.0:500 0.0.0.0:500", 
                            "udp 0.0.0.0:4500 0.0.0.0:4500";
}

Code:
LAN1(192.168.1.0/24) --- OpenSwan Server mit fester ext. IP --- WAN --- FB mit dynDNS --- LAN2 (192.168.178.0/24)

Ich habe jetzt im Prinzip einen permanenten VPN Tunnel zwischen den beiden Gateways und kann aus LAN1 alles in LAN2 erreichen und umgekehrt.

Ich hoffe es hilft jemandem weiter.
 
Zuletzt bearbeitet:
Super! Und vielen Dank das du die Lösung gleich mit gepostet hast.

Wirst du die roten Stellen noch durch richtige Configs ersetzen?
Ich habe ja auchmal überlegt das zu machen... allerdings würde ich es vorher auch gerne mit iptables versuchen. Allerdings nicht mit einer FB.

Dankeschön!
 
Hi,

also die roten Stellen sind die Bereiche in die du deine Systemspezifischen Informationen wie IP Netze und Adressen und so weiter eintragen musst.
So wie ich es jetzt letztendlich gemacht habe bracht man dafür kein iptables auf der Fritzbox.

Viele Grüße

elcravo
 
Hä das versteh ich jetzt nicht, müssen da nicht immer die gleichen Daten stehen? :confused:
 
Nein, jemand anderes kann doch ein ganz anderes IP Netz in einem andren Subnetz haben. Das bleibt jedem selbst überlassen und wenn dem so ist funktioniert es natürlich nicht einfach meine Konfig 1 zu 1 zu übernehmen.
Wenn du das nicht verstehst, denke ich solltest du dich erst einmal in die Grundlagen der Netzwerktechnik einarbeiten bevor du versuchst einen VPN Tunnel ans laufen zu kriegen.
 
Zuletzt bearbeitet:
Hallo elcravo,

darf ich dich mal fragen, ob die Konfiguration so absolut problemlos funktioniert? Versuche das Gleiche ja gerade mit strongSwan und habe hier immer das Problem, dass die Fritzbox immer nach einem Verbindungsabbruch vom strongSwan Server aus (ipsec down <connname>) keine erneute Verbindung mehr zulässt. Hast du das Problem ebenfalls bzw. besteht die Möglichkeit das mal zu testen?
 
Also das würde mich auch mal interessieren! :D
 
Hallo elcravo,

darf ich dich mal fragen, ob die Konfiguration so absolut problemlos funktioniert? Versuche das Gleiche ja gerade mit strongSwan und habe hier immer das Problem, dass die Fritzbox immer nach einem Verbindungsabbruch vom strongSwan Server aus (ipsec down <connname>) keine erneute Verbindung mehr zulässt. Hast du das Problem ebenfalls bzw. besteht die Möglichkeit das mal zu testen?


Hmm,

sehr intressant. Ich habe das grade mal getestet in dem ich openswan neu gestartet habe. Tatsächlich, die VPN wird von der FB nicht neu aufgebaut.
Wenn ich in der Fritzbox die Internet Verbindung mit "neu verbinden" neu herstelle, steht danach die VPN wieder.

Mit "always_renew = yes;" sollte die FB den Tunnel nach einem disconnect neu aufbauen. Das tut sie auch, allerdings nur wenn die Verbindung auf der Seite der FB getrennt wurde (Zwangs reconnect z.B.). Wurde die Verbindung von openswan getrennt, läuft die FB auf ein timeout. Wieso weiß ich allerdings noch nicht, da laut openswan Log garkein Verbindungsversuch eingeht.
 
Wenn ich in der Fritzbox die Internet Verbindung mit "neu verbinden" neu herstelle, steht danach die VPN wieder.
Und kannst du, wenn nach dem Neustart keine VPN Verbindung besteht, vom openSwan aus mit "ipsec up <name>" den Tunnel wieder problemlos aufbauen?

Vielen Dank fürs Testen übrigens!
 
Und kannst du, wenn nach dem Neustart keine VPN Verbindung besteht, vom openSwan aus mit "ipsec up <name>" den Tunnel wieder problemlos aufbauen?

Vielen Dank fürs Testen übrigens!

"ipsec up" kennt openswan scheinbar nicht. Allerdings denke ich, dass es selbst wenn in meiner Konfiguration nicht funktionieren würde.
Der openswan Server kann nie Initiator der VPN sein, weil ich in meiner Konfig, auf Grund einer dynamischen IP auf der FB Seite, bei "right" "%any" angegeben habe. Openswan kann also nicht wissen wohin es die Verbindung aufbauen soll. Deshalb kann die Option "auto" auch nicht auf start, sondern nur auf add stehen.
 
Tatsächlich, die VPN wird von der FB nicht neu aufgebaut.
Probier doch mal auf Seiten der Fritz!Box eine keepalive_ip in die Konfiguration einzutragen. U.U. bekommt die FB das Disconnect nicht richtig mit und dann wirkt auch das always_renew nicht. Bleibt die keepalive-Antwort aus, sollte die Box ihrerseits ein Disconnect "einschieben".

Was die FB im VPN so an Aktivitäten unternimmt, steht in der Datei /var/tmp/ike.log (ältere in ike.old) ... ist zwar nicht sehr ausführlich, aber manchmal durchaus hilfreich.
 
Oh, der keepalive_ip-Parameter ist mir neu, den hatte ich noch gar nicht entdeckt (jedenfalls steht er auch bei mir in der Config gar nicht drin). Das werde ich auch mal testen... Thx.

elcravo: Dafür gibt es bei strongSwan z.B. die Option "rightallowany=yes", da kann man bei right einen DynDNS Eintrag eintragen und akzeptiert trotzdem die Verbindung von überall. Finde ich ganz nett, dann kann nämlich auch strongSwan der Initiator sein. Man muss halt strongSwan nur so einstellen, dass er in bestimmten Intervallen die Config neu läd um den Hostname neu aufzulösen (ipsec starter --auto-update 90)
 
Zuletzt bearbeitet:
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.