ipsec - strongswan 23.1 update

Started by lebernd, February 25, 2023, 01:15:42 PM

Previous topic - Next topic
February 25, 2023, 01:15:42 PM Last Edit: February 25, 2023, 07:01:58 PM by lebernd
Chears zusammen,

mein Problem ist wahrscheinlich ähnlich wie https://forum.opnsense.org/index.php?topic=32429.

Mit bis 22.7 funktionierten die ipsec-Verbindung zu zwei Fritzboxen, ab dem Update 23.1 (aktuell 23.1.1_2) nun nicht mehr.

Mein log sagt an, dass die alten ipsec Verbindungen die Gegenseiten nicht mehr finden:
2023-02-25T12:48:31 Informational charon 15[CFG] installing trap failed, remote address unknown
2023-02-25T12:48:31 Informational charon 15[CFG] installing 'con1-001'
2023-02-25T12:48:31 Informational charon 15[CFG] installing trap failed, remote address unknown
2023-02-25T12:48:31 Informational charon 15[CFG] installing 'con1-000'


Im Dashboard-Widget/Tunnel-Tab sehe ich in der Spalte Verbundungen:
<WAN-IP>
(%any)

In den Tunneleinstellungen stehen weiter die DynDns Hostnamen der Remote-Stellen. Aber die gleiche Fehlermeldung kommt auch, wenn ich die aktuelle IP der Gegenstelle eingebe. "remote address unknown" ...

Kann jemand helfen?

Ich kann mir zwei Arten vorstellen
1) Idee für einen Fix der alten Tunnelverbindungen

2) Migration zu strongswan... (hier ggf. gleich noch ein weiterer Post - nur soviel -> die Gegenstelle wird gefunden, aber der PSK-Austausch resultiert nach 5 Versuchen establishing IKE_SA failed, peer not responding )

Danke im Voraus,
Bernd

(Wireguard ist besser! I know, I use it and it just works... Bei einer FB ist's ggf wirklich eine Möglichkeit, bei der anderen nicht)


IPU451, 16GB RAM, 120GB SSD:
OPNsense 22.7.11_1-amd64
FreeBSD 13.1-RELEASE-p5
OpenSSL 1.1.1s 1 Nov 2022

IPU441, 8GB RAM, 120GB SSD:
OPNsense 23.1.1_2-amd64
FreeBSD 13.1-RELEASE-p6
OpenSSL 1.1.1t 7 Feb 2023

Ein bisschen mehr Info - ggf. ist es auch eher was für github siehe Limits https://forum.opnsense.org/index.php?topic=31860

Zu 1)
Den alten Verbindungen ipsec: der Log zeigt nur eine Verbindung mit zwei Phase 2 Einträgen.
Auf 22.7 sieht /usr/local/etc/ipsec.conf so aus:
# This file is automatically generated. Do not edit
config setup
  uniqueids = yes

conn con1-000
  aggressive = yes
  fragmentation = yes
  keyexchange = ikev1
  mobike = no
  reauth = yes
  rekey = yes
  forceencaps = no
  installpolicy = yes
  type = tunnel
 
 
  dpdaction = restart
  dpddelay = 10s
  dpdtimeout = 60s
 
 
  left = <wan-ip>
  right = <fqdn-fritz1>
  rightallowany = yes
  leftid = fqdn:<fqdn-sense>
  ikelifetime = 28800s
  lifetime = 3600s
  ike = aes256-sha512-modp1024!
  leftauth = psk
  rightauth = psk
  rightid = fqdn:<fqdn-fritz1>
  reqid = 1
  rightsubnet = 192.168.x.0/24
  leftsubnet = 192.168.y.0/24
  esp = aes256-sha512-modp1024!
  auto = route

conn con1-001
  aggressive = yes
  fragmentation = yes
  keyexchange = ikev1
  mobike = no
  reauth = yes
  rekey = yes
  forceencaps = no
  installpolicy = yes
  type = tunnel
 
 
  dpdaction = restart
  dpddelay = 10s
  dpdtimeout = 60s
 
 
  left = <wan-ip>
  right = <fqdn-fritz1>
  rightallowany = yes
  leftid = fqdn:<fqdn-sense>
  ikelifetime = 28800s
  lifetime = 3600s
  ike = aes256-sha512-modp1024!
  leftauth = psk
  rightauth = psk
  rightid = fqdn:<fqdn-fritz1>
  reqid = 2
  rightsubnet = 192.168.x.0/24
  leftsubnet = 192.168.z.0/24
  esp = aes256-sha512-modp1024!
  auto = route

conn con2
  aggressive = yes
  fragmentation = yes
  keyexchange = ikev1
  mobike = no
  reauth = yes
  rekey = yes
  forceencaps = no
  installpolicy = yes
  type = tunnel
 
 
  dpdaction = restart
  dpddelay = 10s
  dpdtimeout = 60s
 
 
  left = <wan-ip>
  right = <fqdn-fritz2>
  rightallowany = yes
  leftid = fqdn:<fqdn-sense>
  ikelifetime = 28800s
  lifetime = 3600s
  ike = aes256-sha512-modp1024!
  leftauth = psk
  rightauth = psk
  rightid = fqdn:<fqdn-fritz2>
  reqid = 3
  rightsubnet = 192.168.u.0/24
  leftsubnet = 192.168.y.0/24
  esp = aes256-sha512-modp1024!
  auto = route

include ipsec.opnsense.d/*.conf


Auf 23.1 sieht /usr/local/etc/swanctl/swanctl.conf so aus:

# This file is automatically generated. Do not edit
connections {
    con1 {
        unique = replace
        aggressive = yes
        version = 1
        mobike = no
        local_addrs = <wan-ip>
        local-0 {
            id = fqdn:<fqdn-sense>
            auth = psk
        }
        remote-0 {
            id = fqdn:<fqdn-fritz1>
            auth = psk
        }
        remote_addrs = %any
        encap = no
        dpd_delay = 10 s
        dpd_timeout = 60 s
        proposals = aes256-sha512-modp1024
        children {
            con1-000 {
                start_action = trap
                policies = yes
                mode = tunnel
                sha256_96 = no
                dpd_action = start
                local_ts = 192.168.y.0/24
                remote_ts = 192.168.x.0/24
                reqid = 1
                esp_proposals = aes256-sha512-modp1024
                life_time = 3600 s
            }
            con1-001 {
                start_action = trap
                policies = yes
                mode = tunnel
                sha256_96 = no
                dpd_action = start
                local_ts = 192.168.z.0/24
                remote_ts = 192.168.x.0/24
                reqid = 2
                esp_proposals = aes256-sha512-modp1024
                life_time = 3600 s
            }
        }
    }
    con2 {
        unique = replace
        aggressive = yes
        version = 1
        mobike = no
        local_addrs = <wan-ip>
        local-0 {
            id = fqdn:<fqdn-sense>
            auth = psk
        }
        remote-0 {
            id = fqdn:<fqdn-fritz2>
            auth = psk
        }
        remote_addrs = %any
        encap = no
        dpd_delay = 10 s
        dpd_timeout = 60 s
        proposals = aes256-sha512-modp1024
        children {
            con2-000 {
                start_action = trap
                policies = yes
                mode = tunnel
                sha256_96 = no
                dpd_action = start
                local_ts = 192.168.z.0/24
                remote_ts = 192.168.u.0/24
                reqid = 3
                esp_proposals = aes256-sha512-modp1024
                life_time = 3600 s
            }
        }
    }
}
pools {
}
secrets {
    ike-p1-0 {
        id-0 = fqdn:<fqdn-fritz1>
        secret = xx==
    }
    ike-p1-1 {
        id-0 = fqdn:<fqdn-fritz2>
        secret = yy==
    }
    ike-xy-ab-cd-ef-gh {
        id-0 = <fqdn-sense>
        secret = zz==
    }
}
# Include config snippets
include conf.d/*.conf


Zu 2)
Wenn ich es recht sehe, dann gibt es bei 23.1 aes256-sha512-modp1024 nicht mehr als Proposal.
Fritz schreibt dazu: https://avm.de/service/vpn/fritzbox-mit-einem-firmen-ipsec-vpn-verbinden/
Quote"Die FRITZ!Box nutzt beim Schlüsselaustausch über Diffie-Hellman initial 1024 Bit (DH-Gruppe 2). Sie akzeptiert danach aber auch 768, 1536, 2048 und 3072 Bit (DH-Gruppe 1, 5, 14 und 15)."

Könnte also sein, dass 23.1/strongswan mit der Fritzbox nicht mehr geht?!

Spezial Danks an: https://forum.opnsense.org/index.php?topic=25540.0
22.7.11_1 läuft wieder.

Soweit für den Sonntag. Grüße
Bernd
IPU451, 16GB RAM, 120GB SSD:
OPNsense 22.7.11_1-amd64
FreeBSD 13.1-RELEASE-p5
OpenSSL 1.1.1s 1 Nov 2022

IPU441, 8GB RAM, 120GB SSD:
OPNsense 23.1.1_2-amd64
FreeBSD 13.1-RELEASE-p6
OpenSSL 1.1.1t 7 Feb 2023

Hi Bernd,

1) Muss dann nicht einfach nur bei Children die 2 Phase 2 Einträge rein? Sieht mir nach 2 separaten Connections aus? Im Prinzip also "tunnel isolation" in Phase 1 entsprechend alter GUI. Ich nehme an das ist auf 22.7.x nicht gesetzt bei dir?

2) modp1024 fehlt tatsächlich. Ich gehe der Sache auf den Grund.


Grüsse
Franco

Quote1) Muss dann nicht einfach nur bei Children die 2 Phase 2 Einträge rein? Sieht mir nach 2 separaten Connections aus? Im Prinzip also "tunnel isolation" in Phase 1 entsprechend alter GUI. Ich nehme an das ist auf 22.7.x nicht gesetzt bei dir?
Ich probiere das mal vor dem nächsten Update - weiß aber noch nicht genau, wann ich dazu komme.

Vielen Dank und Grüße
Bernd
IPU451, 16GB RAM, 120GB SSD:
OPNsense 22.7.11_1-amd64
FreeBSD 13.1-RELEASE-p5
OpenSSL 1.1.1s 1 Nov 2022

IPU441, 8GB RAM, 120GB SSD:
OPNsense 23.1.1_2-amd64
FreeBSD 13.1-RELEASE-p6
OpenSSL 1.1.1t 7 Feb 2023

zu modp1024 et al: https://github.com/opnsense/core/issues/6279

Aktuell ist geplant die neue GUI ohne abgekündigte (deprecated) Features zu halten, da es ja dafür noch die alte GUI gibt. Wie das dann in 1-2 Jahren beim Entfernen der alten GUI ist weiss ich noch nicht. Da ist aber noch genug Zeit dazwischen auch für AVM um zu reagieren.

Ergo funktioniert das so nicht über die neue GUI.


Grüsse
Franco

Ich dachte es mir schon, dass dies der Grund ist - habe aber die github-Seite nicht gesehen.
Vielen Dank.

Ein bisschen beschäftigt mich noch die Fehlermeldung remote address unknown im Log.

Meine Vermutung war ja, dass die ipsec.conf Umschrift in swanctl.conf den fqdn der Fritzbox verliert. Sind beides Dynamische DNS Einträge...

Grüße,
Bernd
IPU451, 16GB RAM, 120GB SSD:
OPNsense 22.7.11_1-amd64
FreeBSD 13.1-RELEASE-p5
OpenSSL 1.1.1s 1 Nov 2022

IPU441, 8GB RAM, 120GB SSD:
OPNsense 23.1.1_2-amd64
FreeBSD 13.1-RELEASE-p6
OpenSSL 1.1.1t 7 Feb 2023

Ist da nicht auch tunnel isolation aktiviert in der Phase 1 auf 22.7.x bei dir? Oder sind das mehrere Phase 1 zum selben Endpunkt?

Was ich gefunden habe:

https://wiki.strongswan.org/issues/2275

"Once a tunnel mode SA is established based on the installed trap policy no further acquires will be triggered by the kernel for other hosts"


Grüsse
Franco