Strongswan - Fritzbox

edisch

Blog Benutzer
Hallo,

ich hoffe ich bin hier richtig. Ich wersuche gerade eine IPsec verbindung von Strongswan zur Fritzbox zu bekommen.

Der Strongswan server läuft in einer VMware server auf einem Windows server 2008 Web Edition 32bit.

Am Windowsserver ist die Internetfreigabe für das VMware Nat eingestellt.
Für IPsec habe ich Port 500 UDP und Port 4500 UDP weitergeleitet.

IP Tables habe ich mittels

Code:
iptables -t filter -A INPUT   -d <interne VMware IP> -p esp -m comment --comment "ACCEPT IPSec ESP"   -j ACCEPT

iptables -t filter -A INPUT   -d <interne VMware IP> -p udp -m udp --dport 500  -m
comment --comment "ACCEPT IPSec IKE"   -j ACCEPT

iptables -t filter -A INPUT   -d <interne VMware IP> -p udp -m udp --dport 4500 -m
comment --comment "ACCEPT IPSec NAT-T" -j ACCEPT
Freigegeben.

Meine ipsec.conf:
Code:
config setup
        plutodebug=all
 #crlcheckinterval=180
 #strictcrlpolicy=no
 #charonstart=no
 nat_traversal=yes
 #keep_alive=20s
        plutostart=yes
 interfaces="ipsec0=eth0"

#conn %default
#ikelifetime=60m
#keylife=20m
#rekeymargin=3m
#keyingtries=1
#keyexchange=ikev1
#authby=secret

conn test
        left=<öffentliche IP server>
        leftsubnet=<interne VMware netz>/24
        leftfirewall=yes

        ike=aes128-sha-modp1024
        esp=aes128-sh1

        right=<remote DDNS>.homeip.net
        rightid=@<remote DDNS>.homeip.net
        rightsubnet=<remote Internes Netz>/24

        ikelifetime=4h
        keylife=1h

        authby=secret
        auto=route
# include ipsec.*.conf
Strongswan.conf

Code:
# /etc/strongswan.conf - strongSwan configuration file

pluto {
  #load = sha1 sha2 md5 aes des hmac gmp random kernel-netlink
}

# pluto uses optimized DH exponent sizes (RFC 3526)

libstrongswan {
  dh_exponent_ansi_x9_42 = no
}

include /etc/ipsec.conf
ipsec.secrets:

Code:
<öffentliche IP von Server> @<remote DDNS>.homeip.net : PSK "PSK Key"

: PSK "PSK Key"
Fritzbox config:

Code:
vpncfg {

connections {

enabled = yes;

conn_type = conntype_lan;

name = "<öffeentliche IP Server>";

always_renew = no;

reject_not_encrypted = no;

dont_filter_netbios = yes;

localip = 0.0.0.0;

local_virtualip = 0.0.0.0;

remoteip = <ölffentliche IP Server>;

remote_virtualip = 0.0.0.0;

localid {

fqdn = "<remote DDNS>.homeip.net";

}

remoteid {

ipaddr = <öffentliche IP Server>;

}

mode = phase1_mode_idp;

phase1ss = "all/all/all";

keytype = connkeytype_pre_shared;

key = "PSK Key";

cert_do_server_auth = no;

use_nat_t = yes;

use_xauth = no;

use_cfgmode = no;

phase2localid {

ipnet {

ipaddr = <Remote Intern Netz>;

mask = 255.255.255.0;

}

}

phase2remoteid {

ipnet {

ipaddr = <local Netz VMware>;

mask = 255.255.255.0;

}

}

phase2ss = "esp-all-all/ah-none/comp-all/pfs";

accesslist = "permit ip any <local Netz VMware> 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";

}
Problem was ich habe, wenn ich ipsec up test eingebe, kommt

021 no connection named "test"

Im Log der Fritzbox bekomme ich immer ein Time out

Nachtrag:

ip_forwarding am Strongswan server ist aktiv.
ich habe auch gemerkt, er nimmt die interfaces="ipsec0=eth0" nicht an. Die muss ich immer manuell angeben.
Kann es sein, dass die ipsec.conf ganricht berücksichtigt wird?
 
Last edited by a moderator:

M-X

Registered User
Ich habe selbst probiert einen L2TP/IPSEC tunnel durch die Fritzbox zu bekommen und habe nach 2 Tagen aufgegeben.
 

edisch

Blog Benutzer
ich habs jetzt hinbekommen. es war der rp.filter...... der tunnel ist aufgebaut und ich kann schonmal einen Ping von beiden seiten in beide seiten schicken...
 
Last edited by a moderator:

edisch

Blog Benutzer
Habe jetzt festgestellt, dass der Tunnel nur aufgebaut wird, wenn ich einen Ping aus dem Netz der Fritzbox sende. Wenn ich eine ping vom Server aus sende, bekomme ich einen Netzwerkfehler ( Redirect Network(New nexthop:<interne VMware server IP>)).

Ich nehme mal stark an, dass das daran liegt, weil der ipsec auf das interface eth0 gebunden ist und er dadurch das entferne netz nicht erreicht. Gibts da irgend eine andere lösung? Würde es was bringen, wenn ich eine art internes virtuelles netz erstelle und den ipsec daran binde? So dass er die pakete zwangsweise dahin schicken muss?

ich habs auch schon mal mit add=start probiert. Bringt aber keine Besserung.
 

3x3cut0r

New Member
Hallo
ich würde das Thema nochmal gerne aufgreifen.
Ich möchte folgendes tun:
Fritzbox 6842 (LTE) soll ein VPN mit meinem Linux V-Server (Ubuntu 16.04) im Internet aufbeuen auf dem StrongSwan 5.3 läuft.

Was ich damit erreichen möchte, ist:
Der gesamte Traffic, aller Clients im Fritzbox Netz, soll durch den ipsec tunnel geroutet werden.
Der V-Server soll dann als Nat-Gateway weiter ins Internet Routen.

Ich habe dazu noch so ein paar logische Fragen doch zunächst erstmal nur eine:
Da mein V-Server nur eine Schnittstelle hat (eth0, öffentliche IPv4), benötige ich dann noch einen Tunneladapter? Ein internes vLAN quasi ...?

Mir würde es reichen wenn mir einer grob schildern könnte wie das theoretisch funktionieren würde.
Und bitte keine Anfragen wieso und weshalb ich das mache.

Danke
 

.A.

benötige ich dann noch einen Tunneladapter?
Nur, wenn Du IPSec im Tunnel-Mode betreibst, was bei Deinem Use-Case auch nahe liegt. Es sollte aber mit Policy-Routing auch im Transport-Mode ohne Tunneladapter funktionieren.

--
.A.
 

3x3cut0r

New Member
ok. welche art tunneladapter würde ich hier dann wählen?
vti? oder reicht auch einfach ein subinterface wie eth0:1?

wie definiere ich tunnel oder transport mode?
#EDIT: schon gefunden. mit type= in der ipsec.conf ...

#EDIT2: ok habe mein Vorhaben jetzt hinbekommen und meine Fritzbox spricht jetzt mit StrongSwan.
Sogar der Traffic lässt sich schön über ACLs filtern ... so kann ich entscheiden welcher traffic durch den tunnel soll und welcher normal über die fritzbox raus geht.
 
Last edited by a moderator:

Top