Quantcast
Channel: Johannes Weber – Weberblog.net
Viewing all articles
Browse latest Browse all 311

FRITZ!OS ab 06.23: IPsec P2 Proposals erweitert

$
0
0
FRITZ!OS 06.23 IPsec Proposals

Es geht in eine weitere Runde bei den VPNs von und zur FRITZ!Box. Nach den unglücklichen Änderungen in Version 06.20 hat AVM wieder ein paar Phase 2 Proposals hinzugenommen, die komplett ohne Kompression laufen. Somit ist es wieder möglich, die FRITZ!Box im Aggressive Mode VPN-Verbindungen zu diversen Firewalls aufbauen zu lassen. Komisch nur, dass noch nicht alles ganz wie erwartet funktioniert. Hier kommen meine Testergebnisse.

IPsec Proposals

Auf Anfrage hat mir AVM die “Strategien” für IPsec in der Version 06.23 zur Verfügung gestellt. Diese sind wie folgt:

Phase 1:

  • dh5/aes/sha
  • dh14/aes/sha
  • dh15/aes/sha
  • def/all/all
  • alt/all/all
  • all/all/all
  • LT8h/all/all/all

Phase 2:

  • esp-aes-sha/ah-all/comp-lzjh-no/pfs
  • esp-all-all/ah-all/comp-all/pfs
  • esp-all-all/ah-all/comp-all/no-pfs
  • esp-all-all/ah-none/comp-all/pfs
  • esp-3des-sha/ah-no/comp-no/no-pfs
  • esp-aes256-3des-sha/ah-no/comp-lzs-no/pfs
  • esp-all-all/ah-none/comp-all/no-pfs
  • LT8h/esp-all-all/ah-none/comp-all/pfs
  • LT8h/esp-all-all/ah-none/comp-all/no-pfs

Mein Ziel war es also, in beiden Phase möglichst DH-14 und AES-256 einzusetzen, wobei Phase 1 gerne eine Lifetime von 8 Stunden haben darf, während Phase 2 nur eine Stunde laufen soll. (Hintergrund: Da es ständig zu Verbindungsabbrüchen beim Rekeying kommt, sind längere Lifetimes hier wohl besser.) Leider hat das nicht exakt so geklappt…

Tests

Die folgenden Tests habe ich extra alle im Aggressive Mode laufen lassen, so dass stets die FRITZ!Box (hinter einer dynamischen IP) die VPN-Verbindung initiiert. Bei einigen Kunden scheint das Voraussetzung zu sein. Als Gegenstelle hatte ich eine Juniper ScreenOS SSG 5 mit Version 6.3.0r18.0 im Labor (siehe hier). Die FRITZ!Box ist eine 7390 und wie gesagt mit FRITZ!OS Version 06.23.

Folgende Tabelle zeigt immer zweizeilig die Einstellungen für Phase 1 und 2:

#FRITZ!BoxJuniperLäuft?Kommentar
1dh14/aes/shapre-g14-aes256-sha1-3600sJaLeider nur mit 1 h bei Phase 1.
esp-aes256-3des-sha/ah-no/comp-lzs-no/pfsg14-esp-aes256-sha1-3600sJa
2LT8h/all/all/allpre-g14-aes256-sha1-28800sNeinPhase 1 Mismatch, also scheint DH-14 hier nicht zu klappen
esp-aes256-3des-sha/ah-no/comp-lzs-no/pfsg14-esp-aes256-sha1-3600s
3LT8h/all/all/allpre-g2-aes256-sha1-28800sJaAha, also mit DH-2 und 8 h klappt es
esp-aes256-3des-sha/ah-no/comp-lzs-no/pfsg14-esp-aes256-sha1-3600sNeinThere were no acceptable Phase 2 proposals. WARUM?
4LT8h/all/all/allpre-g2-aes256-sha1-28800sJa
esp-aes256-3des-sha/ah-no/comp-lzs-no/pfsg2-esp-aes256-sha1-3600sJaMit DH-2 klappt es auch hier. Komisch, weil es bei Test 1 ja exakt mit diesem Proposal lief.

Sehr komisch ist also zum Beispiel, dass bei Tests 1 und 3 für Phase 2 jeweils das gleiche Proposal seitens der FRITZ!Box verwendet wurde, es aber in Test 1 mit DH-14 funktioniert hat, in Test 3 aber nicht. Hm.

Bei Variante 1 sah es auf der Juniper SSG also so aus:

fd-wv-fw01-> get ike cookies

IKEv1 SA -- Active: 9, Dead: 0, Total 9

80182f/0006, 95.116.94.50:500->172.16.0.2:500, PRESHR/grp14/AES256/SHA, xchg(4) (fdorf-foobar.webernetz.net/grp-1/usr-1)
resent-tmr 322 lifetime 3600 lt-recv 3600 nxt_rekey 3040 cert-expire 0
responder, err cnt 0, send dir 1, cond 0xc0
nat-traversal map not available
ike heartbeat              : disabled
ike heartbeat last rcv time: 0
ike heartbeat last snd time: 0
XAUTH status: 0
DPD seq local 0, peer 0

fd-wv-fw01->
fd-wv-fw01->
fd-wv-fw01-> get sa id 6
index 4, name fdorf-foobar.webernetz.net, peer gateway ip 95.116.94.50. vsys
auto key. tunnel if binding node, tunnel mode, policy id in:<-1> out:<-1> vpngrp:<-1>. sa_list_nxt:<-1>.
tunnel id 6, peer id 4, NSRP Local.     site-to-site. Local interface is ethernet0/0 <172.16.0.2>.
  esp, group 14, a256 encryption, sha1 authentication
  autokey, IN active, OUT active
  monitor<1>, latency: 37, availability: 100
  DF bit: clear
  app_sa_flags: 0x24001a7
  proxy id: local 192.168.96.0/255.255.224.0, remote 192.168.29.0/255.255.255.0, proto 0, port 0/0
  ike activity timestamp: -1633079230
  DSCP-mark : enabled, value : 0
nat-traversal map not available
incoming: SPI f41f788e, flag 00004000, tunnel info 40000006, pipeline
  life 3600 sec, 3001 remain, 0 kb, 0 bytes remain
  anti-replay on, last 0x263, window 0xffffffff, idle timeout value <0>, idled 1 seconds
  next pak sequence number: 0x0
  bytes/paks:105778793/531384; sw bytes/paks:105772872/531377
outgoing: SPI d8c63b56, flag 00000000, tunnel info 40000006, pipeline
  life 3600 sec, 3001 remain, 0 kb, 0 bytes remain
  anti-replay on, last 0x0, window 0x0, idle timeout value <0>, idled 0 seconds
  next pak sequence number: 0x271
  bytes/paks:48706409/564603; sw bytes/paks:48706409/564603

 

Variante 4 entsprechend so:

fd-wv-fw01-> get ike cookies

IKEv1 SA -- Active: 9, Dead: 0, Total 9

80182f/0006, 95.116.94.50:500->172.16.0.2:500, PRESHR/grp2/AES256/SHA, xchg(4) (fdorf-foobar.webernetz.net/grp-1/usr-1)
resent-tmr 322 lifetime 28800 lt-recv 28800 nxt_rekey 28762 cert-expire 0
responder, err cnt 0, send dir 1, cond 0x0
nat-traversal map not available
ike heartbeat              : disabled
ike heartbeat last rcv time: 0
ike heartbeat last snd time: 0
XAUTH status: 0
DPD seq local 0, peer 0

fd-wv-fw01->
fd-wv-fw01->
fd-wv-fw01-> get sa id 6
index 4, name fdorf-foobar.webernetz.net, peer gateway ip 95.116.94.50. vsys
auto key. tunnel if binding node, tunnel mode, policy id in:<-1> out:<-1> vpngrp:<-1>. sa_list_nxt:<-1>.
tunnel id 6, peer id 4, NSRP Local.     site-to-site. Local interface is ethernet0/0 <172.16.0.2>.
  esp, group 2, a256 encryption, sha1 authentication
  autokey, IN active, OUT active
  monitor<0>, latency: -1, availability: 0
  DF bit: clear
  app_sa_flags: 0x2400027
  proxy id: local 192.168.96.0/255.255.224.0, remote 192.168.29.0/255.255.255.0, proto 0, port 0/0
  ike activity timestamp: -1630958802
  DSCP-mark : enabled, value : 0
nat-traversal map not available
incoming: SPI f41f789d, flag 00004000, tunnel info 40000006, pipeline
  life 3600 sec, 3518 remain, 0 kb, 0 bytes remain
  anti-replay on, last 0x56, window 0xffffffff, idle timeout value <0>, idled 0 seconds
  next pak sequence number: 0x0
  bytes/paks:105813717/531796; sw bytes/paks:105807796/531789
outgoing: SPI 6381d8bc, flag 00000000, tunnel info 40000006, pipeline
  life 3600 sec, 3518 remain, 0 kb, 0 bytes remain
  anti-replay on, last 0x0, window 0x0, idle timeout value <0>, idled 0 seconds
  next pak sequence number: 0x58
  bytes/paks:48741197/565019; sw bytes/paks:48741197/565019

 

Und hier noch ein Screenshot von einem Test zur Cisco ASA Version 8.4(7). Hier wurde ebenfalls die Variante mit einer IKE Lifetime von 8 h verwendet. Die Gegenstelle hatte sogar bereits FRITZ!OS 06.24 installiert:

Cisco ASA FRITZ!Box 06.24

 

Fazit

So ganz eindeutig scheint es noch nicht zu sein. Die “all/all/all” Varianten decken doch nicht alles ab und die anderen klappen manchmal und manchmal aber auch nicht. Man hat aktuell die Wahl, ob man DH-14 in beiden Phasen verwenden möchte (was aus sicherheitstechnischer Sicht Sinn macht) oder lieber auf eine Lifetime von 8 h in Phase 1 zurückgreift, dann aber nur DH-2 zum Laufen bekommt.

Templates

Hier noch mal zwei komplette Templates, so wie ich sie aktuell verwende. Bei beiden wird davon ausgegangen, dass die FRITZ!Box eine dynamische IP Adresse hat, also der Aggressive Mode verwendet wird.

DH-14 mit Lifetime 1 h

vpncfg {
        connections {
                enabled = yes;
                conn_type = conntype_lan;
                name = "NAME-OF-THE-VPN";
                always_renew = yes;
                reject_not_encrypted = no;
                dont_filter_netbios = yes;
                localip = 0.0.0.0;
                local_virtualip = 0.0.0.0;
                remoteip = 192.0.2.86;
                remote_virtualip = 0.0.0.0;
                localid {
                        fqdn = "foobar.webernetz.net";
                }
                remoteid {
                        ipaddr = "192.0.2.86";
                }
                mode = phase1_mode_aggressive;
                phase1ss = "dh14/aes/sha";
                keytype = connkeytype_pre_shared;
                key = "ThisIsThePSKAndShouldBeGeneratedRandomly";
                cert_do_server_auth = no;
                use_nat_t = no;
                use_xauth = no;
                use_cfgmode = no;
                phase2localid {
                        ipnet {
                                ipaddr = 192.168.178.0;
                                mask = 255.255.255.0;
                        }
                }
                phase2remoteid {
                        ipnet {
                                ipaddr = 192.168.0.0;
                                mask = 255.255.255.0;
                        }
                }
                phase2ss = "esp-aes256-3des-sha/ah-no/comp-lzs-no/pfs";
                accesslist = "permit ip any 192.168.0.0 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";
	}

 

Lifetime 8 h aber nur DH-2

vpncfg {
        connections {
                enabled = yes;
                conn_type = conntype_lan;
                name = "NAME-OF-THE-VPN";
                always_renew = yes;
                reject_not_encrypted = no;
                dont_filter_netbios = yes;
                localip = 0.0.0.0;
                local_virtualip = 0.0.0.0;
                remoteip = 192.0.2.86;
                remote_virtualip = 0.0.0.0;
                localid {
                        fqdn = "foobar.webernetz.net";
                }
                remoteid {
                        ipaddr = "192.0.2.86";
                }
                mode = phase1_mode_aggressive;
                phase1ss = "LT8h/all/all/all";
                keytype = connkeytype_pre_shared;
                key = "ThisIsThePSKAndShouldBeGeneratedRandomly";
                cert_do_server_auth = no;
                use_nat_t = no;
                use_xauth = no;
                use_cfgmode = no;
                phase2localid {
                        ipnet {
                                ipaddr = 192.168.178.0;
                                mask = 255.255.255.0;
                        }
                }
                phase2remoteid {
                        ipnet {
                                ipaddr = 192.168.0.0;
                                mask = 255.255.255.0;
                        }
                }
                phase2ss = "esp-aes256-3des-sha/ah-no/comp-lzs-no/pfs";
                accesslist = "permit ip any 192.168.0.0 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";
	}

 


Viewing all articles
Browse latest Browse all 311

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>