entfernt
Goto Top

DynDNS mit DS-Lite für L2tp mit MikroTik

Hallo zusammen,

ich möchte gerne einen MikroTik einrichten als L2tp Server.
Das sollte ich vermutlich hinbekommen da es hier ja wirklich gute Anleitungen gibt mit denen ich das bereits schon mal umgesetzt habe.

Jetzt ist es aber so das der Internetanschluss ein DS-Lite Anschluss ist und ich damit keine Möglichkeit habe, die IPv4 Adresse als DynDNS einzurichten...
Klappt das ganze auch über IPv6 in Verbindung mit Strato ?
Wenn ja, wie ? Und wenn nein, welche Alternativen habe ich ? Abgesehen vom Buisness Tarif damit ich eine statische Adresse kriege...

VG

Content-Key: 42940314658

Url: https://administrator.de/contentid/42940314658

Printed on: April 27, 2024 at 18:04 o'clock

Member: aqui
aqui Aug 23, 2023 updated at 16:14:58 (UTC)
Goto Top
ich möchte gerne einen MikroTik einrichten als L2tp Server.
Kein Problem, guckst du HIER! face-wink
Jetzt ist es aber so das der Internetanschluss ein DS-Lite Anschluss ist
Das ist sehr schlecht, denn damit scheitert zumindestens für IPv4 dieses Unterfangen. face-sad

Bei DS-Lite Anschlüssen ist es bekanntlich generell technisch unmöglich per IPv4 auf Router oder Firewall von remote zuzugreifen egal ob VPN oder Port Forwarding.
Du scheiterst am zentralen CG-NAT Gateway des Providers das prinzipbedingt nicht überwunden werden kann mit IPv4.
Ein direkter Zugriff ist nur per IPv6 möglich. Damit klappt es natürlich fehlerlos. Bedeutet aber das der VPN Client dann auch in einem Netz ist das IPv6 kann wie z.B. alle Mobilfunknetze.
welche Alternativen habe ich ?
Die klassische Alternative ist ein Jumphost mit einem preiswerten vServer.
Member: dfuchs
dfuchs Aug 23, 2023 at 19:20:34 (UTC)
Goto Top
Eine andere Alternative ist tailscale als ein auf WireGuard basierendes System.
Das übernimmt auch die IPv4 vs IPv6 Geschichte.

Grüße Daniel
Member: aqui
aqui Aug 24, 2023 at 14:30:02 (UTC)
Goto Top
Wenn man sich denn in die Hände eines externen Dienstleisters begeben will. Bei VPNs eigentlich ein NoGo wenn man etwas auf Datensicherheit gibt! Muss aber natürlich jeder für sich entscheiden...
Member: dfuchs
dfuchs Aug 24, 2023 at 14:52:51 (UTC)
Goto Top
Tailscale ist zu einem großen Teil OpenSource und wenn man das mit dem Fremdhost nicht möchte, kann man eigene Hosts mit Tailscale einrichten.
Das Projekt heißt Headscale. Mir ist das für mein privates Netz zu viel Aufwand und so wie das Setup von OP aussieht, denke ich auch an ein SOHo Umfeld.
Kein Unternehmen, welches ich berate, hat ein DS Lite Anschluss.

Grüße Daniel
Member: iptoux6
iptoux6 Aug 24, 2023 at 18:32:51 (UTC)
Goto Top
Huhu, Ich gehe davon aus Du bist bei Vodafone?

Möglichkeit 1: auf Bridge Mode umstellen lassen.

Möglichkeit 2: Einen Server aus der Cloud vorschalten, dann von daheim mittels ipsec eine Verbindung zu Cloud und nachher Traffic über Tunnel leiten.

Fund aus dem Netz
https://youtu.be/7QBh1YVoaj8?si=ie9N8p3rdeyl5e3n
Member: aqui
aqui Aug 25, 2023 at 13:14:07 (UTC)
Goto Top
dann von daheim mittels ipsec eine Verbindung zu
War ja oben schon explizit mit dem Jumphost erklärt! face-wink
Member: entfernt
entfernt Aug 25, 2023 at 17:06:24 (UTC)
Goto Top
Hallo und Danke für die Beiträge!

ich hab mir jetzt mal testweise nen VPS Entry Linux VC1-1 gemietet bei strato für 1€ mntl.
Dort habe ich dann auf Ubuntu das tool 6tunnel installiert.

Jetzt wollte ich mal schauen das ich testweise irgendwas erreiche (das bleibt natürlich nicht so)
Also habe ich eine Qnap in der fritzbox auf port 80 & 443 freigegeben. (ipv4 & ipv6 inkl. dem Punkt "Firewall für delegierte IPv6-Präfixe dieses Gerätes öffnen")

In der Fritzbox habe ich ja dann die "IP-Adresse im Internet" stehen.

also habe ich folgende Befehle auf dem vServer augeführt:

6tunnel 80 2001:16b8:82:xxxx:xxxx:xxxx:xxxx:xxxx 80
6tunnel 443 2001:16b8:82:xxxx:xxxx:xxxx:xxxx:xxxx 443

Jetzt hätte ich erwartet, wenn ich von außerhalb des Netzes im Browser über http oder https die ipv4 adresse des vServers aufrufe, ich dann auf die Oberfläche der Qnap komme....

Was mache ich falsch?

VG
Member: aqui
aqui Aug 25, 2023 updated at 18:41:03 (UTC)
Goto Top
Warum machst du dir das Leben schwer und installierst solche Frickeleien? Und dann auch noch mit unsicherem Port Forwarding wo jeder dann offen die Daten mitlesen kann. Ein NoGo sofern dir dein Datenschutz etwas wert ist.
Das o.a. Jumphost Tutorial serviert dir doch eine wasserdichte Anleitung auf dem Silbertablett zum Abtippen wo du jeden onboard VPN Client auf allen Endgeräten nutzen kann? Einfacher gehst ja nun nicht.

Wenn du eine FritzBox mit einer 7.5er Firmware hast kannst du den Jumphost auch mit Wireguard VPN aufsetzen. Ein Tutorial dazu findest du HIER.

Du hast die freie Wahl zwischen 2 einfachen Lösungen. Aber man kann natürlich auch nach dem Motto warum einfach machen wenn's umständlich auch geht agieren. face-wink
Member: entfernt
entfernt Aug 29, 2023 updated at 07:48:37 (UTC)
Goto Top
Zitat von @aqui:

Einfacher gehst ja nun nicht.


Das sagt sich einfach wenn man sich gut auskennt ^^ Für mich ist das nicht besonders einfach, aber gut, ich habe jetzt mal ein bisschen probiert...

Hab also strongwan auf dem Jumpserver installiert und die jumphost.conf auf mich angepasst.
Hier habe ich überall wo <vserver_ip_addresse> steht, die ipv4 Adresse des Jumpservers eingetragen.
Die FritzBox Adresse habe ich so gelassen da sie in meiner Testumgebung ebenfalls im Standard ist.
Die Secrets habe ich angepasst.
Dann habe ich die jumphost.conf nach /etc/swanctl/conf.d kopiert.

Als nächstes habe ich die vpnconfig für die Fritte ebenfalls so angepasst wie auch für die .conf
Jetzt habe ich auf der FritzBox unter Freigabe/VPN eine neue IPsec Verbindung ausgewählt und dort meine config Datei hochgeladen.
Außerdem habe ich den Eintrag in /etc/nftables.conf hinzugefügt.

Hier ist es aber so, dass bei Status schon ein grauer Punkt ist.
Außerdem habe ich keine Ahnung wie ich jetzt mit einem Laptop von außen drauf kommen würde...
Ich habe mal eine neue VPN Verbindung angelegt und hier weiß ich aber schon nicht was ich bei "VPN-Typ" auswählen muss. Ich hab mal verschiedene probiert aber durch komme ich damit nicht.
Abgesehen davon gehe ich mal stark davon aus, dass solange der Status nicht auf grün springt ich mir die Einwahlversuche sowieso sparen kann...

Irgendeine Idee was ich falsch gemacht haben könnte ?

VG

[edit] achso... in meiner Testumgebung habe ich jetzt keinen DSLite Anschluss sondern einen ganz normalen IPv4. Sollte ja aber trotzdem möglich sein, richtig ?
Member: aqui
aqui Aug 29, 2023 updated at 09:44:38 (UTC)
Goto Top
Das sagt sich einfach wenn man sich gut auskennt
Sollte ja eigentlich auch so sein wenn man in einem Administrator Forum unterwegs ist. Sonst geht man ja zu gutefrage.net ! face-wink

Du hast alles richtig gemacht soweit. Die nftables solltest du erstmal NICHT aktivieren, denn wenn du dir noch mehr Stolpersteine in den Weg legst macht das die Sache nicht einfacher. Also zum Testen den Part erstmal weglassen!!

Allen hätte zum Troubleshooting deine verwendeten Konfig Dateien hier sehr geholfen. Leider fehlen diese. face-sad So sind wir hier jetzt alle zum blinden Kristallkugeln verdammt. Du kannst dir selber denken das das eine zielführende Hilfe noch weiter erschwert... Welche Erwartungshaltung hast du also an eine Lösung? face-sad
Außerdem habe ich keine Ahnung wie ich jetzt mit einem Laptop von außen drauf kommen würde...
Auch das beschreibt doch das Tutorial haarklein! Hast du es denn wirklich gelesen und verstanden?? 🤔
Du startest den IKEv2 VPN Client auf deinem Laptop, trägst die vServer IP oder Hostnamen als Ziel ein, User und Passwort...fertisch. Steht doch alles im Tutorial.
Bedenke das du dafür die Zertifikate erstellen und auf den Laptop importieren musst. Ist das geschehen?
dass solange der Status nicht auf grün springt ich mir die Einwahlversuche sowieso sparen kann...
Das ist absolut richtig geschlussfolgert!! Wie gesagt...helfen würde deine vServer Konfig und die Fritz VPN Datei.
sondern einen ganz normalen IPv4. Sollte ja aber trotzdem möglich sein, richtig ?
Das ist auch richtig. Für einen Test spielt das keine Rolle.
Member: entfernt
entfernt Sep 05, 2023 updated at 12:24:00 (UTC)
Goto Top
Die nftables solltest du erstmal NICHT aktivieren
Alles klar, lasse ich dann erstmal

Allen hätte zum Troubleshooting deine verwendeten Konfig Dateien hier sehr geholfen. Leider fehlen diese. So sind wir hier jetzt alle zum blinden Kristallkugeln verdammt. Du kannst dir selber denken das das eine zielführende Hilfe noch weiter erschwert
Tut mir leid, da hast Du natürlich vollkommen recht... Hier meine config:

Jumphost.conf
connections {
   fritzbox {
      local_addrs = 157.x.x.x <<<Adresse des vServers
      remote_addrs = 0.0.0.0/0
      local {
          auth = psk
          id = 157.x.x.x <<<Adresse des vServers
          }
      remote {
          auth = psk
          id = keyid:strongswan@fritz.box
          }
      children {
          net {
              local_ts = 172.25.24.0/23
              remote_ts = 192.168.178.0/24
              esp_proposals = aes256-sha512-modp1024,aes256-sha1-modp1024
              }
          }
       version = 1
       proposals = aes256-sha512-modp1024,aes256-sha1-modp1024
   }

   ikev2-mobile-defaults {
      unique = replace
      version = 2
      proposals = aes256-sha512-modp2048,aes256-sha256-modp2048,aes256-sha256-modp1024
      send_cert = always
      pools = pool-ipv4
      local_addrs = 157.x.x.x <<<Adresse des vServers
      remote_addrs = 0.0.0.0/0,::/0
      local {
         auth = pubkey
         certs = vServer.crt
         id = fqdn:157.x.x.x <<<Adresse des vServers
      }
      remote {
         id = %any
         auth = eap-mschapv2
         eap_id = %any
       }
       children {
          ikev2-mobile {
          local_ts = 0.0.0.0/0
          esp_proposals = aes256-sha512,aes256-sha384,aes256-sha256,aes256-sha1
          start_action = trap
          }
      }
   }
}
pools {
    pool-ipv4 {
    addrs = 172.25.25.0/24
    dns = 9.9.9.9,192.168.178.1
    }
}
secrets {
 eap-1 {
     id = user
     secret = "<MeinPasswort>"    
     }
 eap-2 {
     id = user2
     secret = "MeinPasswort"    
     }
 ike-3 {
      id = keyid:strongswan@fritz.box
      secret = "MeinPasswort"    
     }
} 

vpncfg.txt
vpncfg {
        connections {
                enabled = yes;
                editable = no;
                conn_type = conntype_lan;
                name = "StrongSwan";    
                always_renew = yes;
                reject_not_encrypted = no;
                dont_filter_netbios = yes;
                localip = 0.0.0.0;
                local_virtualip = 0.0.0.0;
                remoteip = 157.x.x.x;
                remote_virtualip = 0.0.0.0;
                keepalive_ip = 172.25.24.1;
			localid {
                        key_id = "strongswan@fritz.box";    
                        }
                        remoteid {
                        ipaddr = 157.x.x.x;
                        }
                mode = phase1_mode_idp;
                phase1ss = "LT8h/all/all/all";    
                keytype = connkeytype_pre_shared;
                key = "<MeinPasswort>";    
                cert_do_server_auth = no;
                use_nat_t = yes;
                use_xauth = no;
                use_cfgmode = no;
                phase2localid {
                        ipnet {
                                ipaddr = 192.168.178.0;
                                mask = 255.255.255.0;
                        }
                }
                phase2remoteid {
                        ipnet {
                                ipaddr = 172.25.24.0;
                                mask = 255.255.254.0;
                        }
                }
                phase2ss = "esp-all-all/ah-none/comp-all/pfs";    
                accesslist = "permit ip any 172.25.24.0 255.255.254.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";    
} 

Bedenke das du dafür die Zertifikate erstellen und auf den Laptop importieren musst. Ist das geschehen?
Ne die Zertifikate habe ich noch nicht erstellt... Wollte erstmal die Verbindung zwischen FritzBox und vServer herstellen, dafür benötige ich das Zertifikat noch nicht, oder ?

Bei:
id = fqdn:<v_server_FQDN>
war ich mir allerdings unsicher... hab da auch die IP-Adresse des vServers eingetragen, richtig ?

VG
Member: aqui
aqui Sep 05, 2023, updated at Sep 06, 2023 at 06:32:37 (UTC)
Goto Top
id = fqdn:157.x.x.x <<<Adresse des vServers
Das geht so nicht, denn bei einer FQDN Deklaration kann man logischerweise keine IP angeben! Das muss dann mit "ip" geschehen wenn man das so will.
Tip:
Wenn du rein nur eine IP hast aber keinen FQDN Hostnamen kannst du immer freie Hostnamen von nip.io auf Basis der IP verwenden! Die verhalten sich wie FQDN Hostnamen ohne das du einen DNS Hostnamen registrieren musst. face-wink
Klappt auch mit dem IP Adressen im heimischen LAN!

Wenn deine vServer Hostadresse also z.B. die 157.10.20.30 ist, dann ist der FQDN Name dazu
  • 157-10-20-30.nip.io
  • 9d0a141e.nip.io
  • vserver-157-10-20-30.nip.io
  • vserver-9d0a141e.nip.io
Mit allen 4 FQDN Namen kannst du deinen 157.10.20.30 vServer IP pingen.
Diese FQDN Namen kannst du dann später auch bequem für die Zertifikatserzeugung nehmen. face-wink
(Ein GUI für die Konvertierung der 4 Octets zu Hex Ziffern findest du u.a. hier.)

Thema VPN Konfig...
Wollte erstmal die Verbindung zwischen FritzBox und vServer herstellen, dafür benötige ich das Zertifikat noch nicht, oder ?
Richtig, dafür ist KEIN Zertifikat erforderlich!
Das Problem ist aber das wenn du die IKEv2 Server Definition mit in der Konfig hast und dort einen Syntax Fehler wie den obigen eingebaut hast der Daemon wegen dieses Fehlers nicht starten kann und damit dann auch die Fritzbox Verbindung scheitert.

Heisser Tip:
Lass erstmal die IKEv2 Server Konfig komplett weg und definiere dort erstmal rein nur die Fritzbox Connection.
Alles was .conf als Endung hat lädt der Daemon automatisch so das du den IKEv2 Server auch später mit einer separaten .conf Datei im Verzeichnis realisieren kannst. 😉
Also erstmal dann rein nur die FB Konfig zum Fliegen bringen und keine anderen .conf Dateien außer der der Fritzbox im Verzeichnis
Die sieht dann so aus:
connections {
 fritzbox {
 local_addrs = 157.x.x.x
 remote_addrs = 0.0.0.0/0
  local {
   auth = psk
   id = 157.x.x.x
   }
  remote {
   auth = psk
   id = keyid:strongswan@fritz.box
   }
  children {
   net {
   local_ts = 172.25.24.0/23
   remote_ts = 192.168.178.0/24
   esp_proposals = aes256-sha512-modp2048,aes256-sha512-modp1024
   }
  }
 version = 1
 proposals = aes256-sha512-modp2048,aes256-sha512-modp1024
 }
}

secrets {
 ike-1 {
 id = keyid:strongswan@fritz.box
 secret = "Geheim123!"
 }
} 
Mit swanctl -q die neuen Parameter laden und auf Fehler checken.
Wenn fehlerfrei den Daemon mit systemctl restart strongswan neu starten.

Die dazu korrespondierende Fritzbox VPN Konfig Datei zum Import sieht dann so aus:
vpncfg {
        connections {
                enabled = yes;
                editable = no;
                conn_type = conntype_lan;
                name = "Mein-vServer";
                always_renew = no;
                reject_not_encrypted = no;
                dont_filter_netbios = yes;
                localip = 0.0.0.0;
                local_virtualip = 0.0.0.0;
                remoteip = 157.x.x.x;
                remote_virtualip = 0.0.0.0;
		        keepalive_ip = 172.25.24.1;
		        localid {
                        key_id = "strongswan@fritz.box";
                        }
                remoteid {
                        ipaddr = 157.x.x.x;
                        }
                mode = phase1_mode_idp;
                phase1ss = "LT8h/all/all/all";
                keytype = connkeytype_pre_shared;
                key = "Geheim123!";
                cert_do_server_auth = no;
                use_nat_t = yes;
                use_xauth = no;
                use_cfgmode = no;
                phase2localid {
                        ipnet {
                                ipaddr = 192.168.178.0;
                                mask = 255.255.255.0;
                        }
                }
                phase2remoteid {
                        ipnet {
                                ipaddr = 172.25.24.0;
                                mask = 255.255.254.0;
                        }
                }
                phase2ss = "esp-all-all/ah-none/comp-all/pfs";
                accesslist = "permit ip any 172.25.24.0 255.255.254.0";
        }
} 
Das sollte dann sofort zum Fliegen kommen.

Sehr hilfreich zum Troubleshooting ist immer der Output von swanctl -q
Desweiteren wenn du vor der Einwahl bzw. Aktivieren des VPN auf der FB einmal ein swanctl -T eingibst und dann die Fritzbox rebootest, ihr einmal den WAN Port ziehst, oder den blauen Haken zum Deaktivieren und Aktivieren des VPN setzt so das die FB die VPN Connection neu triggert.
Dann zeigt dir der swanctl -T Output ein sehr detailiertes Protokoll der IPsec VPN Einwahl deiner Fritzbox auf deinem vServer. Dort kann man ggf. auch sofort Fehler erkennen.
Das swanctl -T Logging kannst du mit Ctrl-C dann wieder stoppen.
Member: entfernt
entfernt Sep 07, 2023 at 08:58:30 (UTC)
Goto Top
Das sollte dann sofort zum Fliegen kommen
Tut es face-smile

Lass erstmal die IKEv2 Server Konfig komplett weg und definiere dort erstmal rein nur die Fritzbox Connection.
Alles was .conf als Endung hat lädt der Daemon automatisch so das du den IKEv2 Server auch später mit einer separaten .conf Datei im Verzeichnis realisieren kannst. 😉

Heißt unterm Strich, ich erstelle jetzt eine ikev2.conf mit folgendem inhalt: ?????
ikev2-mobile-defaults {
      unique = replace
      version = 2
      proposals = aes256-sha512-modp2048,aes256-sha256-modp2048,aes256-sha256-modp1024
      send_cert = always
      pools = pool-ipv4
      local_addrs = 157.x.x.x
      remote_addrs = 0.0.0.0/0,::/0
      local {
         auth = pubkey
         certs = vServer.crt
         id = fqdn:157.x.x.x.nip.io
      }
      remote {
         id = %any
         auth = eap-mschapv2
         eap_id = %any
       }
       children {
          ikev2-mobile {
          local_ts = 0.0.0.0/0
          esp_proposals = aes256-sha512,aes256-sha384,aes256-sha256,aes256-sha1
          start_action = trap
          }
      }
   }
}
pools {
    pool-ipv4 {
    addrs = 172.25.25.0/24
    dns = 9.9.9.9,192.168.178.1
    }
}
Diese packe ich dann ins gleiche Verzeichnis wie die jumphost.conf, richtig ?
Aber für die Geschichte benötige ich ja jetzt das Zertifikat, weil ich im nächsten Schritt ja dann auch testen will...
In Deiner Anleitung steht:
CA einrichten:
Hierzu sind 2 Kommandos erforderlich:
pki --gen --type rsa --size 2048 --outform pem > /etc/swanctl/private/raspica-key.pem
Dabei bekomme ich diese Meldung:
TPM 2.0 - could not load "libtss2-tcti-tabrmd.so.0"  
plugin 'tpm': failed to load - tpm_plugin_create returned NULL  
Was mache ich falsch ?

VG
Member: aqui
aqui Sep 07, 2023 updated at 09:24:04 (UTC)
Goto Top
Tut es
👏 👍
Heißt unterm Strich, ich erstelle jetzt eine ikev2.conf mit folgendem inhalt: ?????
Ja!
Allerdings mit einer kleinen Korrektur, denn das braucht natürlich einen separaten connections {...} Abschnitt!
So sähe es richtig aus:
connections {  
 ikev2-mobile-vpn { 
  unique = replace 
  version = 2 
  proposals = aes256-sha512-modp2048,aes256-sha256-modp2048,aes256-sha256-modp1024
  send_cert = always 
  pools = pool-ipv4 
  local_addrs = 157.x.x.x
  remote_addrs = 0.0.0.0/0,::/0 
  local { 
   auth = pubkey 
   certs = DeinServerZertifikat.pem
   id = fqdn:157.x.x.x.nip.io
   } 
  remote { 
   id = %any 
   auth = eap-mschapv2 
   eap_id = %any 
  } 
  children { 
   ikev2-mobile { 
   local_ts = 0.0.0.0/0 
   esp_proposals = aes256-sha512,aes256-sha384,aes256-sha256,aes256-sha1
   start_action = trap
   } 
  } 
 } 
} 
pools { 
 pool-ipv4 { 
 addrs = 172.25.25.0/24
 dns = 9.9.9.9, <ggf._provider_dns>, 192.168.178.1
 } 
}

secrets { 
 eap-1 { 
 id = user1
 secret = "Passw00rt1" 
 } 
 eap-2 { 
 id = user2
 secret = "Passw00rt2"
 } 
Diese packe ich dann ins gleiche Verzeichnis wie die jumphost.conf, richtig ?
Jepp..! Richtig, wenn jumphost.conf deine Fritzbox Konfig ist. (meinefritzbox.conf wäre ja etwas sinnvoller aber ist ja alles Kosmetik. 😉)

Dabei bekomme ich diese Meldung:
Ooops...das ist blöd. face-sad
apt install strongswan-pki hast du ausgeführt?!
Wenn ja mache mal folgendes:
apt update
apt-cache search libtss2-tcti-tabrmd
Wenn er dir sowas wie libtss2-tcti-tabrmd-dev TPM2 Access Broker & Resource Management - static libraries and headers anzeigt installierst du diese mal mit
apt install libtss2-tcti-tabrmd-dev
und versuchst es nochmal. face-wink

Wenn alle Stricke reissen kann man das auch bequem und entspannt über ein GUI auf einem Winblows Rechner machen:
https://hohnstaedt.de/xca/
Oder per OpenSSL:
https://legacy.thomas-leister.de/eine-eigene-openssl-ca-erstellen-und-ze ...

Kosmetischer Tip:
Den Dateiname "raspica-key.pem" solltest du ggf. auf deinen vServer Hostnamen anpassen und das "raspi" damit ersetzen also "meinvserverca-key.pem"
Member: entfernt
entfernt Sep 07, 2023 at 10:11:34 (UTC)
Goto Top
Wenn ja mache mal folgendes:
apt update
apt-cache search libtss2-tcti-tabrmd
Wenn er dir sowas wie libtss2-tcti-tabrmd-dev TPM2 Access Broker & Resource Management - static libraries and headers anzeigt installierst du diese mal mit
apt install libtss2-tcti-tabrmd-dev
und versuchst es nochmal. face-wink
Das hat geklappt :D

Aber ich verstehe es noch nicht so richtig...

Den Dateiname "raspica-key.pem" solltest du ggf. auf deinen vServer Hostnamen anpassen und das "raspi" damit ersetzen also "meinvserverca.key"
Hast Du Dich hier verschrieben ? kann doch aus der ".pem" Endung nicht einfach eine ".key" Endung machen oder ?

In der Anleitung steht:
CA einrichten:
pki --gen --type rsa --size 2048 --outform pem > /etc/swanctl/private/meinvserver-key.pem
pki --self --ca --lifetime 3650 --in /etc/swanctl/private/meinvserver-key.pem --type rsa --dn "C=DE, CN=RasPi CA" --outform pem > /etc/swanctl/x509ca/meinvserver-cert.pem  
Server Zertifikat erstellen:
pki --gen --type rsa --size 2048 --outform pem > /etc/swanctl/private/server-key.pem

pki --pub --in /etc/swanctl/private/server-key.pem --type rsa | pki --issue --lifetime 1825 --cacert /etc/swanctl/x509ca/meinvserver-cert.pem --cakey /etc/swanctl/private/meinvserver-key.pem --dn "CN=157-x-x-x.nip.io" --san 157-x-x-x.nip.io --flag serverAuth --flag ikeIntermediate --outform pem > /etc/swanctl/x509/server-cert.pem   
In der config soll man aber das angeben:
certs = DeinServerZertifikat.crt
Eine .crt Datei kommt doch mit den oberen Befehlen gar nicht raus und die brauche ich doch hinterher auch für den Import in den Windows Zertifikatsspeicher oder ?

Sorry aber bei den Zertifikaten habe ich gerade ein riesen Fragezeichen im Gesicht...
Wenn ich das richtig sehe, gibt es 3 verschiedene und ich weiß nicht wirklich welches ich wofür brauche:
meinvserver-key.pem <<< In der Anleitung raspica-key.pem
meinvserver-cert.pem <<< In der Anleitung raspica-cert.pem
server-key.pem <<< In der Anleitung server-key.pem

Danke schon mal für deine Geduld :D
Member: aqui
aqui Sep 07, 2023 updated at 10:40:16 (UTC)
Goto Top
Das hat geklappt
👍
Hast Du Dich hier verschrieben ?
Ooops, ja. Ist korrigiert
Eine .crt Datei kommt doch mit den oberen Befehlen gar nicht raus
Ja, da hast du Recht. Manche schreiben ein .pem andere .crt. Letztlich ist das egal.
Ich habe das oben aber alles korrigiert damit es nicht zu Verwirrung führt. Sorry nochmal... 🙈
Sorry aber bei den Zertifikaten habe ich gerade ein riesen Fragezeichen im Gesicht...
Relevant für die Funktion ist einzig und allein nur das Server Zertifikat was unter .../x509 und das CA Zertifikat was unter .../x509ca steht.
Letzteres musst du in deine Endgeräte importieren!
Die Key Dateien sind nicht relevant, stören aber auch nicht.

Nochmal schrittweise:
  • Die CA brauchst du um überhaupt ein Server Zertifikat zu generieren. Das ist quasi die Ausweisbehörde
  • Die CA selber hat auch ein Zertifikat und eine Key Datei. Letztere ist für die Funktion nicht relevant. Das CA Zertifikat kommt in die Endgeräte als vertrauenswürdig, denn wenn bei Einwahl das Server Zertifikat abgefragt wird prüft der Client ob die "Ausweisbehörde" da einen Stempel druntergemacht hat. Fehlt der Stempel kommst du nicht rein. Wie im richtgen Leben also. face-wink Diese, bei IKEv2 Clients eingebaute Prüfung, stellt also nochmal eine zusätzliche Sicherheit dar, das deinen Clients niemand einen Fake VPN Server unterjubeln kann.
  • Mit Hilfe des CA Zertifikats (quasi als "Behördenstempel") generierst du das Server Zertifikat und den Server Key wobei hier auch Letzterer wieder nicht für die Funktion relevant ist.
  • Sehr wichtig sind im Server Zertifikat aber der CN Name und --san!! Das verifizieren einige VPN Clients. Der Windows Client z.B. immer mit dem was als Server Zieladresse angegeben ist. Wenn du also dort als als Serveradresse 157.x.x.x.nip.io im FQDN Format verwendest, dann MUSS dieser FQDN auch als CN oder --san definiert sein, ansonsten verweigert der Windows Client den Zugang. Bei Apple kann man das mit der "remote ID" im VPN Client immer separat einstellen ob man hier IP oder FQDN nimmt zur Verifikation. Bei Windows ist das immer an das Format der Serveradresse gekoppelt!!
Member: entfernt
entfernt Sep 07, 2023 at 11:37:34 (UTC)
Goto Top
Dann bin ich jetzt ein ganzes Stück weiter, kann mich aber mit dem Laptop (Win10) nicht anmelden.

Erstmal mein IST-Zustand jetzt:

Meine /etc/swanctl/conf.d/jumphost.conf:
connections {
 fritzbox {
 local_addrs = 157.x.x.x
 remote_addrs = 0.0.0.0/0
  local {
   auth = psk
   id = 157.x.x.x
   }
  remote {
   auth = psk
   id = keyid:strongswan@fritz.box
   }
  children {
   net {
   local_ts = 172.25.24.0/23
   remote_ts = 192.168.178.0/24
   esp_proposals = aes256-sha512-modp2048,aes256-sha512-modp1024
   }
  }
 version = 1
 proposals = aes256-sha512-modp2048,aes256-sha512-modp1024
 }
}

secrets {
 ike-1 {
 id = keyid:strongswan@fritz.box
 secret = "MEINPASSWORT"  
 }
} 

Meine FritzBox Config Datei vpncfg.txt:
vpncfg {
        connections {
                enabled = yes;
                editable = no;
                conn_type = conntype_lan;
                name = "vServer";  
                always_renew = no;
                reject_not_encrypted = no;
                dont_filter_netbios = yes;
                localip = 0.0.0.0;
                local_virtualip = 0.0.0.0;
                remoteip = 157.x.x.x;
                remote_virtualip = 0.0.0.0;
		        keepalive_ip = 172.25.24.1;
		        localid {
                        key_id = "strongswan@fritz.box";  
                        }
                remoteid {
                        ipaddr = 157.x.x.x;
                        }
                mode = phase1_mode_idp;
                phase1ss = "LT8h/all/all/all";  
                keytype = connkeytype_pre_shared;
                key = "MEINPASSWORD";  
                cert_do_server_auth = no;
                use_nat_t = yes;
                use_xauth = no;
                use_cfgmode = no;
                phase2localid {
                        ipnet {
                                ipaddr = 192.168.178.0;
                                mask = 255.255.255.0;
                        }
                }
                phase2remoteid {
                        ipnet {
                                ipaddr = 172.25.24.0;
                                mask = 255.255.254.0;
                        }
                }
                phase2ss = "esp-all-all/ah-none/comp-all/pfs";  
                accesslist = "permit ip any 172.25.24.0 255.255.254.0";  
        }
} 

Meine /etc/swanctl/conf.d/ikev2.conf:
connections {  
 ikev2-mobile-vpn { 
  unique = replace 
  version = 2 
  proposals = aes256-sha512-modp2048,aes256-sha256-modp2048,aes256-sha256-modp1024
  send_cert = always 
  pools = pool-ipv4 
  local_addrs = 157.x.x.x
  remote_addrs = 0.0.0.0/0,::/0 
  local { 
   auth = pubkey 
   certs = server-cert.pem
   id = fqdn:157.x.x.x.nip.io
   } 
  remote { 
   id = %any 
   auth = eap-mschapv2 
   eap_id = %any 
  } 
  children { 
   ikev2-mobile { 
   local_ts = 0.0.0.0/0 
   esp_proposals = aes256-sha512,aes256-sha384,aes256-sha256,aes256-sha1
   start_action = trap
   } 
  } 
 } 
} 
pools { 
 pool-ipv4 { 
 addrs = 172.25.25.0/24
 dns = 9.9.9.9, 192.168.178.1
 }
  }
secrets {
 eap-1 {
     id = user
     secret = "test123"    
     }
 eap-2 {
     id = user2
     secret = "user2"    
     }
} 

FritzBox Status ist grün.
Zertifikate sind erstellt und liegen am richtigen Ort bzw wurden auf dem Laptop importiert.
VPN Verbindung am Laptop wurde so eingerichtet wie in Deiner Anleitung, bei Benutzer & Passwort habe ich jetzt user & test123 genommen wie in der ikev2.conf (Passwörter werden natürlich noch geändert)
Den Registry Kram am Laptop habe ich gemacht, also schon vor längerem, weil ich mich mit dem Laptop immer per L2TP auf einen anderen VPN Server verbinde und das klappt.
Der Laptop bekommt außerdem ein Hotspot von meinem Handy das nicht im WLAN ist und somit komme ich auf jeden Fall von "draußen"
Aber das Problem wird wohl was mit den secrets sein da ich als Fehlermeldung beim verbinden mit dem Laptop die Meldung "IKE-Authentifizierung-Anmeldeinformationen sind nicht aktzeptabel"

Eine Idee?

VG
Member: entfernt
entfernt Sep 07, 2023 at 11:42:17 (UTC)
Goto Top
[Nachtrag]
Hab jetzt mal alles durchgebootet und jetzt kommt der "IKE-Authentifizierungs-Fehler" nicht mehr, sondern der Fehler "Fehler in Richtlinienübereinstimmung".....
Member: aqui
aqui Sep 07, 2023 at 16:58:00 (UTC)
Goto Top
Hab jetzt mal alles durchgebootet
Auch ein systemctl restart strongswan gemacht?!
Output von swanctl -q ??

Was hast du als CN Name im Zertifikat angegeben?? Denk dran was oben steht das du als Zieladresse auch die remote ID verwenden musst!! Deshalb ist es immer sinnig IP und FQDN in das Zertifikat zu bringen das beides angegeben werden kann!!
So oder so ist das jetzt rumraten... face-sad
Hilfreich wie oben ist wieder mal der swanctl -T Output wenn der Client einwählt.

Tip:
Kopiere VORHER das Fritzbox Conn Profil woanders hin das das nicht zusätzlich lädt und die das Logging beim Troubleshooting vollmüllt. So hast du dann nur rein den IPV2 Server im Logging beim Testen!!
Auch hier wenn du was an der Konfig änderst immer systemctl restart strongswan und/oder swanctl -q damit du sehen kannst ob alles korrekt geladen wurde!
Member: entfernt
entfernt Sep 08, 2023 at 06:44:32 (UTC)
Goto Top
Auch ein systemctl restart strongswan gemacht?!
Ja hab ich gemacht


Output von swanctl -q
loaded certificate from '/etc/swanctl/x509/server-cert.pem'  
loaded certificate from '/etc/swanctl/x509ca/meinvserver-cert.pem'  
loaded RSA key from '/etc/swanctl/private/meinvserver-key.pem'  
loaded RSA key from '/etc/swanctl/private/server-key.pem'  
loaded eap secret 'eap-1'  
loaded eap secret 'eap-2'  
loaded ike secret 'ike-1'  
no authorities found, 0 unloaded
loaded pool 'pool-ipv4'  
successfully loaded 1 pools, 0 unloaded
loaded connection 'ikev2-mobile-vpn'  
loaded connection 'fritzbox'  
successfully loaded 2 connections, 0 unloaded

Was hast du als CN Name im Zertifikat angegeben??
CA einrichten:
pki --gen --type rsa --size 2048 --outform pem > /etc/swanctl/private/meinvserver-key.pem
pki --self --ca --lifetime 3650 --in /etc/swanctl/private/meinvserver-key.pem --type rsa --dn "C=DE, CN=vServer CA" --outform pem > /etc/swanctl/x509ca/meinvserver-cert.pem  


Server Zertifikat erstellen:
pki --gen --type rsa --size 2048 --outform pem > /etc/swanctl/private/server-key.pem

pki --pub --in /etc/swanctl/private/server-key.pem --type rsa | pki --issue --lifetime 1825 --cacert /etc/swanctl/x509ca/meinvserver-cert.pem --cakey /etc/swanctl/private/meinvserver-key.pem --dn "CN=157-x-x-x.nip.io" --san 157-x-x-x.nip.io --flag serverAuth --flag ikeIntermediate --outform pem > /etc/swanctl/x509/server-cert.pem    

swanctl -T Output wenn der Client einwählt
Laptop (Jetzt bekomme ich allerdings wieder nur den "IKE-Authentifizierung-Anmeldeinformationen sind nicht aktzeptabel" - Fehler):
05[NET] received packet: from 80.x.x.x[500] to 157.x.x.x[500] (1104 bytes)
05[ENC] parsed IKE_SA_INIT request 0 [ SA KE No N(FRAG_SUP) N(NATD_S_IP) N(NATD_D_IP) V V V V ]
05[IKE] received MS NT5 ISAKMPOAKLEY v9 vendor ID
05[IKE] received MS-Negotiation Discovery Capable vendor ID
05[IKE] received Vid-Initial-Contact vendor ID
05[ENC] received unknown vendor ID: 01:52:8b:bb:c0:06:96:12:18:49:ab:9a:1c:5b:2a:51:00:00:00:02
05[IKE] 80.x.x.x is initiating an IKE_SA
05[CFG] selected proposal: IKE:AES_CBC_256/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/MODP_1024
05[IKE] remote host is behind NAT
05[IKE] sending cert request for "C=DE, CN=vServer CA"  
05[ENC] generating IKE_SA_INIT response 0 [ SA KE No N(NATD_S_IP) N(NATD_D_IP) CERTREQ N(FRAG_SUP) N(CHDLESS_SUP) N(MULT_AUTH) ]
05[NET] sending packet: from 157.x.x.x[500] to 80.x.x.x[500] (353 bytes)
16[NET] received packet: from 80.x.x.x[1557] to 157.x.x.x[4500] (580 bytes)
16[ENC] parsed IKE_AUTH request 1 [ EF(1/3) ]
16[ENC] received fragment #1 of 3, waiting for complete IKE message
14[NET] received packet: from 80.x.x.x[1557] to 157.x.x.x[4500] (580 bytes)
14[ENC] parsed IKE_AUTH request 1 [ EF(2/3) ]
14[ENC] received fragment #2 of 3, waiting for complete IKE message
08[NET] received packet: from 80.x.x.x[1557] to 157.x.x.x[4500] (148 bytes)
08[ENC] parsed IKE_AUTH request 1 [ EF(3/3) ]
08[ENC] received fragment #3 of 3, reassembled fragmented IKE message (1136 bytes)
08[ENC] parsed IKE_AUTH request 1 [ IDi CERTREQ N(MOBIKE_SUP) CPRQ(ADDR DNS NBNS SRV ADDR6 DNS6 SRV6) SA TSi TSr ]
08[IKE] received 34 cert requests for an unknown ca
08[CFG] looking for peer configs matching 157.x.x.x[%any]...80.x.x.x[172.20.10.8]
08[CFG] selected peer config 'ikev2-mobile-vpn'  
08[IKE] initiating EAP_IDENTITY method (id 0x00)
08[IKE] peer supports MOBIKE
08[IKE] authentication of '157.x.x.x.nip.io' (myself) with RSA signature successful  
08[IKE] sending end entity cert "CN=157-x-x-x.nip.io"  
08[ENC] generating IKE_AUTH response 1 [ IDr CERT AUTH EAP/REQ/ID ]
08[NET] sending packet: from 157.x.x.x[4500] to 80.x.x.x[1557] (1184 bytes)

Vom Iphone:
09[NET] received packet: from 80.x.x.x[500] to 157.x.x.x[500] (604 bytes)
09[ENC] parsed IKE_SA_INIT request 0 [ SA KE No N(REDIR_SUP) N(NATD_S_IP) N(NATD_D_IP) N(FRAG_SUP) ]
09[IKE] 80.x.x.x is initiating an IKE_SA
09[CFG] selected proposal: IKE:AES_CBC_256/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/MODP_2048
09[IKE] local host is behind NAT, sending keep alives
09[IKE] remote host is behind NAT
09[IKE] sending cert request for "C=DE, CN=vServer CA"  
09[ENC] generating IKE_SA_INIT response 0 [ SA KE No N(NATD_S_IP) N(NATD_D_IP) CERTREQ N(FRAG_SUP) N(CHDLESS_SUP) N(MULT_AUTH) ]
09[NET] sending packet: from 157.x.x.x[500] to 80.x.x.x[500] (481 bytes)
15[NET] received packet: from 80.x.x.x[6731] to 157.x.x.x[4500] (528 bytes)
15[ENC] unknown attribute type INTERNAL_DNS_DOMAIN
15[ENC] parsed IKE_AUTH request 1 [ IDi N(INIT_CONTACT) IDr CPRQ(ADDR MASK DHCP DNS ADDR6 DHCP6 DNS6 DOMAIN) N(ESP_TFC_PAD_N) N(NON_FIRST_FRAG) SA TSi TSr N(MOBIKE_SUP) ]
15[CFG] looking for peer configs matching 157.x.x.x[157.x.x.x.nip.io]...80.x.x.x[2a01:x:x:x:x:x:x:x]
15[CFG] selected peer config 'ikev2-mobile-vpn'  
15[IKE] initiating EAP_IDENTITY method (id 0x00)
15[IKE] received ESP_TFC_PADDING_NOT_SUPPORTED, not using ESPv3 TFC padding
15[IKE] peer supports MOBIKE
15[IKE] authentication of '157.x.x.x.nip.io' (myself) with RSA signature successful  
15[IKE] sending end entity cert "CN=157-x-x-x.nip.io"  
15[ENC] generating IKE_AUTH response 1 [ IDr CERT AUTH EAP/REQ/ID ]
15[NET] sending packet: from 157.x.x.x[4500] to 80.x.x.x[6731] (1184 bytes)

Beim aufbau der Verbindung von vServer & FritzBox:
08[NET] received packet: from 79.x.x.x[500] to 157.x.x.x[500] (532 bytes)
08[ENC] parsed ID_PROT request 0 [ SA V V V V V V ]
08[IKE] received XAuth vendor ID
08[IKE] received DPD vendor ID
08[IKE] received NAT-T (RFC 3947) vendor ID
08[IKE] received draft-ietf-ipsec-nat-t-ike-02\n vendor ID
08[IKE] received draft-ietf-ipsec-nat-t-ike-03 vendor ID
08[ENC] received unknown vendor ID: a2:22:6f:c3:64:50:0f:56:34:ff:77:db:3b:74:f4:1b
08[IKE] 79.x.x.x is initiating a Main Mode IKE_SA
08[CFG] selected proposal: IKE:AES_CBC_256/HMAC_SHA2_512_256/PRF_HMAC_SHA2_512/MODP_1024
08[ENC] generating ID_PROT response 0 [ SA V V V ]
08[NET] sending packet: from 157.x.x.x[500] to 79.x.x.x[500] (136 bytes)
16[NET] received packet: from 79.x.x.x[500] to 157.x.x.x[500] (316 bytes)
16[ENC] parsed ID_PROT request 0 [ KE No NAT-D NAT-D ]
16[ENC] generating ID_PROT response 0 [ KE No NAT-D NAT-D ]
16[NET] sending packet: from 157.x.x.x[500] to 79.x.x.x[500] (332 bytes)
10[NET] received packet: from 79.x.x.x[500] to 157.x.x.x[500] (156 bytes)
10[ENC] parsed ID_PROT request 0 [ ID HASH N(INITIAL_CONTACT) ]
10[CFG] looking for pre-shared key peer configs matching 157.x.x.x...79.x.x.x[73:74:72:6f:6e:67:73:77:61:6e:40:66:72:69:74:7a:2e:62:6f:78]
10[CFG] selected peer config "fritzbox"  
10[IKE] IKE_SA fritzbox[16] established between 157.x.x.x[157.x.x.x]...79.x.x.x[73:74:72:6f:6e:67:73:77:61:6e:40:66:72:69:74:7a:2e:62:6f:78]
10[IKE] scheduling rekeying in 13069s
10[IKE] maximum IKE_SA lifetime 14509s
10[ENC] generating ID_PROT response 0 [ ID HASH ]
10[NET] sending packet: from 157.x.x.x[500] to 79.x.x.x[500] (124 bytes)
15[NET] received packet: from 79.x.x.x[500] to 157.x.x.x[500] (764 bytes)
15[ENC] parsed QUICK_MODE request 3724113742 [ HASH SA No KE ID ID ]
15[CFG] selected proposal: ESP:AES_CBC_256/HMAC_SHA2_512_256/MODP_1024/NO_EXT_SEQ
15[IKE] received 3600s lifetime, configured 3960s
15[ENC] generating QUICK_MODE response 3724113742 [ HASH SA No KE ID ID ]
15[NET] sending packet: from 157.x.x.x[500] to 79.x.x.x[500] (364 bytes)
08[NET] received packet: from 79.x.x.x[500] to 157.x.x.x[500] (108 bytes)
08[ENC] parsed QUICK_MODE request 3724113742 [ HASH ]
08[IKE] CHILD_SA net{5} established with SPIs c940f016_i d72ac5d5_o and TS 172.25.24.0/23 === 192.168.178.0/24
15[NET] received packet: from 79.x.x.x[500] to 157.x.x.x[500] (124 bytes)
15[ENC] parsed INFORMATIONAL_V1 request 249547856 [ HASH D ]
15[IKE] received DELETE for ESP CHILD_SA with SPI d72ac5d5
15[IKE] closing CHILD_SA net{5} with SPIs c940f016_i (128 bytes) d72ac5d5_o (0 bytes) and TS 172.25.24.0/23 === 192.168.178.0/24
14[NET] received packet: from 79.x.x.x[500] to 157.x.x.x[500] (124 bytes)
14[ENC] parsed INFORMATIONAL_V1 request 2895843862 [ HASH D ]
14[IKE] received DELETE for ESP CHILD_SA with SPI c940f016
14[IKE] CHILD_SA not found, ignored
12[NET] received packet: from 79.x.x.x[500] to 157.x.x.x[500] (124 bytes)
12[ENC] parsed INFORMATIONAL_V1 request 1467730796 [ HASH D ]
12[IKE] received DELETE for IKE_SA fritzbox[16]
12[IKE] deleting IKE_SA fritzbox[16] between 157.x.x.x[157.x.x.x]...79.x.x.x[73:74:72:6f:6e:67:73:77:61:6e:40:66:72:69:74:7a:2e:62:6f:78]
15[NET] received packet: from 79.x.x.x[500] to 157.x.x.x[500] (532 bytes)
15[ENC] parsed ID_PROT request 0 [ SA V V V V V V ]
15[IKE] received XAuth vendor ID
15[IKE] received DPD vendor ID
15[IKE] received NAT-T (RFC 3947) vendor ID
15[IKE] received draft-ietf-ipsec-nat-t-ike-02\n vendor ID
15[IKE] received draft-ietf-ipsec-nat-t-ike-03 vendor ID
15[ENC] received unknown vendor ID: a2:22:6f:c3:64:50:0f:56:34:ff:77:db:3b:74:f4:1b
15[IKE] 79.x.x.x is initiating a Main Mode IKE_SA
15[CFG] selected proposal: IKE:AES_CBC_256/HMAC_SHA2_512_256/PRF_HMAC_SHA2_512/MODP_1024
15[ENC] generating ID_PROT response 0 [ SA V V V ]
15[NET] sending packet: from 157.x.x.x[500] to 79.x.x.x[500] (136 bytes)
06[NET] received packet: from 79.x.x.x[500] to 157.x.x.x[500] (316 bytes)
06[ENC] parsed ID_PROT request 0 [ KE No NAT-D NAT-D ]
06[ENC] generating ID_PROT response 0 [ KE No NAT-D NAT-D ]
06[NET] sending packet: from 157.x.x.x[500] to 79.x.x.x[500] (332 bytes)
13[NET] received packet: from 79.x.x.x[500] to 157.x.x.x[500] (156 bytes)
13[ENC] parsed ID_PROT request 0 [ ID HASH N(INITIAL_CONTACT) ]
13[CFG] looking for pre-shared key peer configs matching 157.x.x.x...79.x.x.x[73:74:72:6f:6e:67:73:77:61:6e:40:66:72:69:74:7a:2e:62:6f:78]
13[CFG] selected peer config "fritzbox"  
13[IKE] IKE_SA fritzbox[17] established between 157.x.x.x[157.x.x.x]...79.x.x.x[73:74:72:6f:6e:67:73:77:61:6e:40:66:72:69:74:7a:2e:62:6f:78]
13[IKE] scheduling rekeying in 13835s
13[IKE] maximum IKE_SA lifetime 15275s
13[ENC] generating ID_PROT response 0 [ ID HASH ]
13[NET] sending packet: from 157.x.x.x[500] to 79.x.x.x[500] (124 bytes)
07[NET] received packet: from 79.x.x.x[500] to 157.x.x.x[500] (764 bytes)
07[ENC] parsed QUICK_MODE request 3167764535 [ HASH SA No KE ID ID ]
07[CFG] selected proposal: ESP:AES_CBC_256/HMAC_SHA2_512_256/MODP_1024/NO_EXT_SEQ
07[IKE] received 3600s lifetime, configured 3960s
07[ENC] generating QUICK_MODE response 3167764535 [ HASH SA No KE ID ID ]
07[NET] sending packet: from 157.x.x.x[500] to 79.x.x.x[500] (364 bytes)
13[NET] received packet: from 79.x.x.x[500] to 157.x.x.x[500] (108 bytes)
13[ENC] parsed QUICK_MODE request 3167764535 [ HASH ]
13[IKE] CHILD_SA net{6} established with SPIs c763631a_i 52805dd8_o and TS 172.25.24.0/23 === 192.168.178.0/24

face-smile VG
Member: aqui
aqui Sep 08, 2023 updated at 09:50:58 (UTC)
Goto Top
Hast du auf dem iPhone das CA Zertifikat, also das unter /x509ca ins iPhone und Laptop importiert? Es darf NICHT das Server Zertifikat sein!
ca
Member: entfernt
entfernt Sep 08, 2023 at 09:33:19 (UTC)
Goto Top
Genau, ich habe das meinvserver-cert.pem importiert und das liegt auch in x509ca…
img_9773.
Member: aqui
aqui Sep 08, 2023 updated at 10:25:56 (UTC)
Goto Top
Hast du dann in der VPN Konfig den Domain Namen eingegeben als Serveradresse und als remote ID??
Wenn ja lauert hier der Teufel im Detail sollte der vServer auch über IPv6 erreichbar sein, weil der Client dann primär den Hostnamen auf die IPv6 Adresse auflöst der aber keine VPN Konfig für v6 hat.
Um dem sicher aus dem Weg zu gehen kannst du zumindestens auf dem iPhone einmal die Server IP direkt als nackte IP angeben und nicht den Hostnamen. Damit erzwingt man dann eine v4 Verbindung.
Die remote ID muss aber auf dem FQDN bleiben, weil der ja auch im Zertifikat ist. face-wink

Deine IKEv2 Message ist eigentlich OK, das Zertifikat wird ja auch richtig eingelesen wie du am Logging sehen kannst.
Eigentlich sollte es nach "peer supports MOBIKE" dann so weitergehen...
....
09[IKE] peer supports MOBIKE
09[IKE] received ESP_TFC_PADDING_NOT_SUPPORTED, not using ESPv3 TFC padding
09[IKE] authentication of '157.x.x.x.nip.io' (myself) with RSA signature successful  
09[IKE] sending end entity cert "CN=157.x.x.x.nip.io, C=DE"  
09[ENC] generating IKE_AUTH response 1 [ IDr CERT AUTH EAP/REQ/ID ]
09[ENC] splitting IKE message (1632 bytes) into 2 fragments
09[ENC] generating IKE_AUTH response 1 [ EF(1/2) ]
09[ENC] generating IKE_AUTH response 1 [ EF(2/2) ]
09[NET] sending packet: from 157.x.x.x[4500] to 80.x.x.x[5162] (1236 bytes)
09[NET] sending packet: from 157.x.x.x[4500] to 80.x.x.x[5162] (468 bytes)
13[NET] received packet: from 80.x.x.x[5162] to 157.x.x.x[4500] (96 bytes)
13[ENC] parsed IKE_AUTH request 2 [ EAP/RES/ID ]
13[IKE] received EAP identity 'user'  
13[IKE] initiating EAP_MSCHAPV2 method (id 0x7A)
13[ENC] generating IKE_AUTH response 2 [ EAP/REQ/MSCHAPV2 ]
13[NET] sending packet: from 157.x.x.x[4500] to 80.x.x.x[5162] (112 bytes)
16[NET] received packet: from 80.x.x.x[5162] to 157.x.x.x[4500] (144 bytes)
16[ENC] parsed IKE_AUTH request 3 [ EAP/RES/MSCHAPV2 ]
16[ENC] generating IKE_AUTH response 3 [ EAP/REQ/MSCHAPV2 ]
16[NET] sending packet: from 157.x.x.x[4500] to 80.x.x.x[5162] (144 bytes)
07[NET] received packet: from 80.x.x.x[5162] to 157.x.x.x[4500] (80 bytes)
07[ENC] parsed IKE_AUTH request 4 [ EAP/RES/MSCHAPV2 ]
07[IKE] EAP method EAP_MSCHAPV2 succeeded, MSK established
07[ENC] generating IKE_AUTH response 4 [ EAP/SUCC ]
07[NET] sending packet: from 157.x.x.x[4500] to 80.x.x.x[5162] (80 bytes)
05[NET] received packet: from 80.x.x.x[5162] to 157.x.x.x[4500] (112 bytes)
05[ENC] parsed IKE_AUTH request 5 [ AUTH ]
05[IKE] authentication of '192.168.1.197' with EAP successful  
05[IKE] authentication of '157.x.x.x.nip.io' (myself) with EAP  
05[IKE] peer requested virtual IP %any
05[CFG] reassigning offline lease to 'user'  
05[IKE] assigning virtual IP 172.25.25.1 to peer 'user'  
05[IKE] peer requested virtual IP %any6
05[IKE] no virtual IP found for %any6 requested by 'user'  
05[IKE] IKE_SA ikev2-mobile-vpn[125] established between 157.x.x.x[157.x.x.x.nip.io]...80.x.x.x[192.168.1.197] 
(Der o.a. iPhone VPN Client öffnet hier das VPN aus einem lokalen WLAN 192.168.1.0/24)
Sprich, dein Server kommt gar nicht zur MS-CHAPv2 Authentisierung, ansonsten müsste er das negotiating mit den User Credentials, wie oben, anzeigen. Irgendwas mag er also am Zertifikat nicht. Mmhhh... 🤔

⚠️ Das mag an einem Kardinalsfehler liegen....
Das Logging zeigt ja das du im Zertifikat als FQDN Namen 157-x-x-x.nip.io definiert hast.
In deiner Server Konfig steht aber id = fqdn:157.x.x.x.nip.io mit Punkten statt richtig mit "-" wie im Zertifikat angegeben!!
Das gibt dann natürlich einen Mismatch der FQDN Hostadresse und dann bricht der Server die Verbindung ab weil die FQDN Adresse nicht übereinstimmt! face-sad
Hier muss in deine VPN Server Konfig dann natürlich unbedingt:
id = fqdn:157-97-109-171.nip.io
rein!! Das muss identisch mit dem CN im Zertifikat sein!
Vermutlich liegt es daran?!
Member: entfernt
entfernt Sep 08, 2023 at 11:21:30 (UTC)
Goto Top
⚠️ Das mag an einem Kardinalsfehler liegen....
Das Logging zeigt ja das du im Zertifikat als FQDN Namen 157-x-x-x.nip.io definiert hast.
Da gibt man sich soviel mühe beim anonymisieren und vergisst dann trotzdem was ^^ Könntest Du Deinen Beitrag noch bearbeiten und die IP unkenntlich machen ? :D
In deiner Server Konfig steht aber id = fqdn:157.x.x.x.nip.io mit Punkten statt richtig mit "-" wie im Zertifikat angegeben!!
Das gibt dann natürlich einen Mismatch der FQDN Hostadresse und dann bricht der Server die Verbindung ab weil die FQDN Adresse nicht übereinstimmt! face-sad
Hier muss in deine VPN Server Konfig dann natürlich unbedingt:
id = fqdn:157-x-x-x.nip.io
rein!! Das muss identisch mit dem CN im Zertifikat sein!
Vermutlich liegt es daran?!

Yeah das hat geklappt, also zumindest auf dem Iphone. Der Windows Client will allerdings immer noch nicht....
Weiterhin "IKE-Authentifizierung-Anmeldeinformationen sind nicht aktzeptabel"
Hier meine config auf dem Laptop:
image0.

Log:
09[NET] received packet: from 80.x.x.x[500] to 157.x.x.x[500] (1104 bytes)
09[ENC] parsed IKE_SA_INIT request 0 [ SA KE No N(FRAG_SUP) N(NATD_S_IP) N(NATD_D_IP) V V V V ]
09[IKE] received MS NT5 ISAKMPOAKLEY v9 vendor ID
09[IKE] received MS-Negotiation Discovery Capable vendor ID
09[IKE] received Vid-Initial-Contact vendor ID
09[ENC] received unknown vendor ID: 01:52:8b:bb:c0:06:96:12:18:49:ab:9a:1c:5b:2a:51:00:00:00:02
09[IKE] 80.x.x.x is initiating an IKE_SA
09[CFG] selected proposal: IKE:AES_CBC_256/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/MODP_1024
09[IKE] remote host is behind NAT
09[IKE] sending cert request for "C=DE, CN=vServer CA"  
09[ENC] generating IKE_SA_INIT response 0 [ SA KE No N(NATD_S_IP) N(NATD_D_IP) CERTREQ N(FRAG_SUP) N(CHDLESS_SUP) N(MULT_AUTH) ]
09[NET] sending packet: from 157.x.x.x[500] to 80.x.x.x[500] (353 bytes)
08[NET] received packet: from 80.x.x.x[27297] to 157.x.x.x[4500] (580 bytes)
08[ENC] parsed IKE_AUTH request 1 [ EF(1/3) ]
08[ENC] received fragment #1 of 3, waiting for complete IKE message
13[NET] received packet: from 80.x.x.x[27297] to 157.x.x.x[4500] (580 bytes)
13[ENC] parsed IKE_AUTH request 1 [ EF(2/3) ]
13[ENC] received fragment #2 of 3, waiting for complete IKE message
05[NET] received packet: from 80.x.x.x[27297] to 157.x.x.x[4500] (148 bytes)
05[ENC] parsed IKE_AUTH request 1 [ EF(3/3) ]
05[ENC] received fragment #3 of 3, reassembled fragmented IKE message (1136 bytes)
05[ENC] parsed IKE_AUTH request 1 [ IDi CERTREQ N(MOBIKE_SUP) CPRQ(ADDR DNS NBNS SRV ADDR6 DNS6 SRV6) SA TSi TSr ]
05[IKE] received 34 cert requests for an unknown ca
05[CFG] looking for peer configs matching 157.x.x.x[%any]...80.x.x.x[172.20.10.8]
05[CFG] selected peer config 'ikev2-mobile-vpn'  
05[IKE] initiating EAP_IDENTITY method (id 0x00)
05[IKE] peer supports MOBIKE
05[IKE] authentication of '157-x-x-x.nip.io' (myself) with RSA signature successful  
05[IKE] sending end entity cert "CN=157-x-x-x.nip.io"  
05[ENC] generating IKE_AUTH response 1 [ IDr CERT AUTH EAP/REQ/ID ]
05[NET] sending packet: from 157.x.x.x[4500] to 80.x.x.x[27297] (1184 bytes)
Member: aqui
aqui Sep 08, 2023 updated at 13:13:08 (UTC)
Goto Top
👏👍 Glückwunsch! Zumindestens das iPhone rennt, was zeigt das deine Konfig generell OK ist!

Mmhhh... 🤔 Du siehst wieder wie oben das er am Zertifikat stehenbleibt. Irgendwas daran mag der Windows Client nicht oder.... du hast vergessen das CA Zertifikat in die "Vertrauenswürdigen Stammzertifizierungsstellen" zu importieren?!?
WAS genau hast du am Windows Client in der Registry fürs VPN verändert??
Dein Windows IKEv2 Client ist dadurch ja nicht mehr ganz "original". Möglich das da dann eins der Crypto Credentials fehlt.
Kannst du das vergleichsweise ggf. einmal mit einem jungfräulichen Windows Client probieren?
Member: entfernt
entfernt Sep 08, 2023 at 14:06:01 (UTC)
Goto Top
Mmhhh... 🤔 Du siehst wieder wie oben das er am Zertifikat stehenbleibt. Irgendwas daran mag der Windows Client nicht oder.... du hast vergessen das CA Zertifikat in die "Vertrauenswürdigen Stammzertifizierungsstellen" zu importieren?!?
Nein das habe ich auch gemacht
WAS genau hast du am Windows Client in der Registry fürs VPN verändert??
Go to:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PolicyAgent
Open the Edit menu > New submenu and click DWORD (32-bit) Value.
Paste AssumeUDPEncapsulationContextOnSendRule as the value name.
Right-click AssumeUDPEncapsulationContextOnSendRule and choose Modify.
At Value data, type 2.
Set Base to Hexadecimal.
Click OK.
Go to:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RasMan
Open the Edit menu > New submenu and click DWORD (32-bit) Value.
Paste ProhibitIpSec as the value name.
Right-click ProhibitIpSec and choose Modify.
At Value data, type 0.
Set Base to Hexadecimal.
Click OK.
Kannst du das vergleichsweise ggf. einmal mit einem jungfräulichen Windows Client probieren?
Muss ich mal gucken das ich da was finde ^^

Was ist denn mit dieser Geschichte hier:
Windows Client: VPN Security erhöhen
⚠️ Die folgenden Einstellungen sind optional und ausschliesslich nur für solche Anwender erforderlich, die eine > > höhere VPN Sicherheit im Windows Client statt der Default Einstellungen wünschen.
Wer mit den etwas schwächeren aber dennoch sicheren Windows Default Einstellungen leben, kann überspringt > > dieses Kapitel!!
Das o.a. Strongswan Setup bedient immer sowohl die Windows Default Schlüssel Algorithmen als auch stärkere > > Algorithmen aller anderer VPN Clients bzw. Angepasste der Windows Registry!

Eine einfache Option ist den bestehenden VPN Client per Powershell anzupassen:
Set-VpnConnectionIPsecConfiguration -ConnectionName "RasPi" -AuthenticationTransformConstants None -> > > CipherTransformConstants AES256 -EncryptionMethod AES256 -IntegrityCheckMethod SHA256 -DHGroup > > > > Group14 -PfsGroup None -PassThru -AllUserConnection
Wichtig ist hier der Parameter -ConnectionName "RasPi" der genau mit dem Verbindungsnamen (Schreibweise) > > des bestehenden VPN Eintrages übereinstimmen muss ! (Das u.a. pfSense/OPNsense VPN Tutorial hat alle Details > zum Customizen per Powershell).

Du hattest geschrieben es sei optional, ich wollte es trotzdem mal probieren um auszuschließen dass das nicht mein Problem ist, aber wenn ich das in der Powershell ausführe (ConnectionName natürlich angepasst) bekomme ich den folgenden Fehler:
Set-VpnConnectionIPsecConfiguration :  The configuration cannot be applied to the global user VPN connection vServer.
: Der Telefonbucheintrag für diese Verbindung konnte nicht gefunden werden.
In Zeile:1 Zeichen:1
+ Set-VpnConnectionIPsecConfiguration -ConnectionName "vServer" -Authen ...  
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (vServer:root/Microsoft/...ecConfiguration) [Set-VpnConnectionIPsecConfi
   guration], CimException
    + FullyQualifiedErrorId : VPN 623,Set-VpnConnectionIPsecConfiguration
Member: entfernt
entfernt Sep 08, 2023 updated at 14:19:38 (UTC)
Goto Top
So... Hab es jetzt noch mit nem anderem Rechner probiert, Zertifikat importiert (gleiches wie auf dem Handy) Rechner sogar neu gestartet, VPN Verbindung erstellt, selbe Meldung....

Achso hier hat das geklappt mit dem Powershell Befehl, hat aber auch nichts genutzt ^^
Member: entfernt
entfernt Sep 08, 2023 at 18:27:31 (UTC)
Goto Top
Ok peinlich
Hab das Zertifikat ausversehen in die Benutzerzertifikate geladen und nicht in die Computerzertifikate.... Ups....
Jetzt klappt es auf jeden Fall yeah!!!!!
Damit wäre Schritt 1 schonmal erledigt... puh... schwere Geburt


Schritt2:
Das ist ja jetzt nur eine Testumgebung...
Was muss ich ändern wenn es dann um den eigentlichen DS-Lite Anschluss geht ?

Schritt3 bzw weitere Überlegungen:
Ich benötige doch nicht für mehrere Standorte je einen vServer oder ?
Wie konfiguriere ich das ganze sodass ich zb jetzt die Testumgebung so erreiche UND die andere Umgebung mit DS-Lite ? Geht das überhaupt ?

VG & vielen vielen Dank für deine bisherige Hilfe und vor allem Deine Geduld :D
Member: aqui
aqui Sep 08, 2023 updated at 19:01:15 (UTC)
Goto Top
👏👍 Glückwunsch!
Tja, es sind immer die kleinen Flüchtigkeitsfehler, die passieren schon mal im Eifer des VPN Gefechts!! Da muss dir nichts peinlich sein. Wichtig ist immer das man strategisch vorgeht, sie findet und beseitigt was du ja souverän gemacht hast! 😉
Schritt2: Was muss ich ändern wenn es dann um den eigentlichen DS-Lite Anschluss geht ?
Gar nichts mehr! Das ist ja schon deine laufende Konfig. face-wink
Fritzbox wählt sich als Initiator ein, Client am vServer und vom Client solltest du dann schon die IP der FB pingen können.
Ich benötige doch nicht für mehrere Standorte je einen vServer oder ?
Nein, natürlich nicht. Dein vServer ist ja der zentrale Connection Punkt für alle. Du klonst quasi für jede weitere FB VPN Verbindung einfach nur deine fritzbox.conf Datei für die neue, setzt eine andere key ID und Passwort, fertisch. Alternativ kannst du auch andere VPN protokolle verwenden wie Wireguard.
Dein vServer ist quasi ein Allround VPN Server.
Für die Clients reichst du einfach dein CA Zertifikat weiter zum Import und gibst jedem User eine weitere User ID die du nur unten in den "Secrets" hinzufügst.
Mit den Clients kannst du dann jedes verbundene FB Netz erreichen. Wenn du dort ein Regelwerk etablieren willst das nicht alle alles erreichen können machst du das mit iptables oder dem moderneren nftables. Einfache Logik! face-wink
vielen Dank für deine bisherige Hilfe
Immer gerne! Dafür ist ein Forum ja da...😊
Member: entfernt
entfernt Sep 08, 2023 at 20:25:38 (UTC)
Goto Top
Ok, teste ich aber nicht mehr heute

Zwei Sachen sind mir noch aufgefallen...
1) nftables muss nach jedem Serverreboot gestartet werden weil er nicht automatisch startet
2) strongswan muss nach jedem Serverreboot neu gestartet werden obwohl der service mitgestartet wird. Bekomme sonst beim Verbindungsversuch "Fehler bei Richtlinie" oder so ähnlich, habs gerade nicht genau im Kopf
Nach dem restart strongswan klappt es aber sofort...

VG
Member: aqui
aqui Sep 09, 2023 updated at 13:41:45 (UTC)
Goto Top
nftables muss nach jedem Serverreboot gestartet werden weil er nicht automatisch startet
Die Lösung ist kinderleicht: systemctl enable nftables löst das Problem. face-wink
Das gleiche gilt für Strongswan. systemctl enable strongswan
Obiges kann aber variieren je nachdem wie der Strongswan/swanctl Service in deiner Distro benannt wurde.
Ein systemctl status strongswan oder systemctl status strongswan-swanctl sollte dir das zeigen.
Das "enable" Keyword bedeutet das dieses Services beim Booten gestartet werden.
Member: entfernt
entfernt Sep 10, 2023 at 18:12:59 (UTC)
Goto Top
Die Lösung ist kinderleicht: systemctl enable nftables löst das Problem.
Das hat geklappt face-smile

Das gleiche gilt für Strongswan. systemctl enable strongswan
Das hat leider nicht geklappt. Das starten nach dem reboot ist nicht das Problem, der service startet mit.
So sieht es aus wenn man frisch nach reboot ein systemctl status strongswan macht:
● strongswan.service - strongSwan IPsec IKEv1/IKEv2 daemon using swanctl
     Loaded: loaded (/lib/systemd/system/strongswan.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2023-09-10 17:52:20 UTC; 1min 37s ago
    Process: 841 ExecStartPost=/usr/sbin/swanctl --load-all --noprompt (code=exited, status=0/SUCCESS)
   Main PID: 559 (charon-systemd)
     Status: "charon-systemd running, strongSwan 5.9.5, Linux 5.15.0-83-generic, x86_64"  
      Tasks: 17 (limit: 981)
     Memory: 10.7M
        CPU: 190ms
     CGroup: /system.slice/strongswan.service
             └─559 /usr/sbin/charon-systemd

Sep 10 17:52:20 ubuntu swanctl[841]: loaded eap secret 'eap-1'  
Sep 10 17:52:20 ubuntu swanctl[841]: loaded eap secret 'eap-2'  
Sep 10 17:52:20 ubuntu swanctl[841]: loaded ike secret 'ike-1'  
Sep 10 17:52:20 ubuntu swanctl[841]: no authorities found, 0 unloaded
Sep 10 17:52:20 ubuntu swanctl[841]: loaded pool 'pool-ipv4'  
Sep 10 17:52:20 ubuntu swanctl[841]: successfully loaded 1 pools, 0 unloaded
Sep 10 17:52:20 ubuntu swanctl[841]: loaded connection 'ikev2-mobile-vpn'  
Sep 10 17:52:20 ubuntu swanctl[841]: loaded connection 'fritzbox'  
Sep 10 17:52:20 ubuntu swanctl[841]: successfully loaded 2 connections, 0 unloaded
Sep 10 17:52:20 ubuntu systemd[1]: Started strongSwan IPsec IKEv1/IKEv2 daemon using swanctl.
Aber wenn ich dann versuche mich mit einem Client zu verbinden, bekomme ich in Windows zB die Meldung:
10-09-_2023_20-00-08
Mache ich auf dem Server dann einen systemctl restart strongswan klappt die Verbindung dann problemlos...

Gar nichts mehr! Das ist ja schon deine laufende Konfig.
Auch nichts im Bezug auf ipv6 oder so ? In der /etc/sysctl.conf musste man ja die Zeile net.ipv4.ip_forward=1 aus der Auskommentierung nehmen.
Muss man dann bei einem DSLite Anschluss den Eintrag #net.ipv6.conf.all.forwarding=1 anpassen ?
Werde das morgen mal probieren meine config an dem eigentlichen Anschluss zum laufen zu bekommen.

VG
Member: aqui
aqui Sep 11, 2023 at 06:17:32 (UTC)
Goto Top
Auch nichts im Bezug auf ipv6 oder so ?
Nein, denn versteht man dich richtig, willst du den Jumphost ja (erstmal) nur für IPv4 verwenden, oder?
IPv6 hast du bei DS-Lite ja so oder so immer.
Willst du allerdings auch v6 routen, dann muss man das natürlich anpassen.
Das der Strongswan Dienst nicht richtig startet nach dem Booten ist ungewöhnlich. 🤔
Ggf. macht es Sinn den Start nach dem Autostart der nftables Firewall etwas zu verzögern sollten diese beiden Dienste sich in die Quere kommen. Das müsste man mal checken.
Du kannst ja testweise einmal testweise temporär den automatischen Start der Firewall mit systemctl disable nftables deaktivieren und checken ob so der Strongswan Daemon dann sauber nach dem Reboot startet wenn er allein ist.
So weisst du das sich beide Daemons ggf. beeinflussen. Mit einem Delay kann man dann den IPsec Dienst etwas verzögern.
Member: entfernt
entfernt Sep 12, 2023 at 07:43:49 (UTC)
Goto Top
Ggf. macht es Sinn den Start nach dem Autostart der nftables Firewall etwas zu verzögern sollten diese beiden Dienste sich in die Quere kommen. Das müsste man mal checken.
Also den Autostart von nftables habe ich ja gerade erst hinzugefügt. Das Problem bestand vorher ja auch schon als die Dienste bereits nicht zusammen gestartet sind...

Werde das morgen mal probieren meine config an dem eigentlichen Anschluss zum laufen zu bekommen.
Hab ich jetzt mal gemacht...

So bin ich vorgegangen:
1) In der FritzBox der Testumgebung habe ich die VPN Verbindung deaktiviert.
2) In der FritzBox der eigentlichen Umgebung (DSLite) habe ich die VPN Config Datei hochgeladen.
Bis auf das interne Netz, vorher 192.168.178.0, jetzt 192.168.69.0, hat sich nichts an meiner Config geändert. Und diesen Parameter habe ich in allen Dateien mit Suchen und Ersetzen geändert.
Heißt, meine configs sind alle noch wie hier gepostet: (außer dem Fritz Netz)
DynDNS mit DS-Lite für L2tp mit MikroTik

Die Verbindung mit meinen Laptop funktioniert dann auch problemlos und ich erreiche zum Beispiel dann auch die 192.168.69.1 (FritzBox)
Aber mein iphone will jetzt nicht mehr (hat in der Testumgebung geklappt)
Bei der Verbindung zum Server gibt swanctl -T folgendes aus:
15[NET] received packet: from 79.x.x.x[34] to 157.x.x.x[500] (604 bytes)
15[ENC] parsed IKE_SA_INIT request 0 [ SA KE No N(REDIR_SUP) N(NATD_S_IP) N(NATD_D_IP) N(FRAG_SUP) ]
15[IKE] 79.x.x.x is initiating an IKE_SA
15[CFG] selected proposal: IKE:AES_CBC_256/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/MODP_2048
15[IKE] remote host is behind NAT
15[IKE] sending cert request for "C=DE, CN=vServer CA"  
15[ENC] generating IKE_SA_INIT response 0 [ SA KE No N(NATD_S_IP) N(NATD_D_IP) CERTREQ N(FRAG_SUP) N(CHDLESS_SUP) N(MULT_AUTH) ]
15[NET] sending packet: from 157.x.x.x[500] to 79.x.x.x[34] (481 bytes)
12[NET] received packet: from 79.x.x.x[1057] to 157.x.x.x[4500] (512 bytes)
12[ENC] unknown attribute type INTERNAL_DNS_DOMAIN
12[ENC] parsed IKE_AUTH request 1 [ IDi N(INIT_CONTACT) IDr CPRQ(ADDR MASK DHCP DNS ADDR6 DHCP6 DNS6 DOMAIN) N(ESP_TFC_PAD_N) N(NON_FIRST_FRAG) SA TSi TSr N(MOBIKE_SUP) ]
12[CFG] looking for peer configs matching 157.x.x.x[157-x-x-x.nip.io]...79.x.x.x[172.16.2.13]
12[CFG] no matching peer config found
12[IKE] received ESP_TFC_PADDING_NOT_SUPPORTED, not using ESPv3 TFC padding
12[IKE] peer supports MOBIKE
12[ENC] generating IKE_AUTH response 1 [ N(AUTH_FAILED) ]
12[NET] sending packet: from 157.x.x.x[4500] to 79.x.x.x[1057] (80 bytes)
06[NET] received packet: from 79.x.x.x[34] to 157.x.x.x[500] (604 bytes)
06[ENC] parsed IKE_SA_INIT request 0 [ SA KE No N(REDIR_SUP) N(NATD_S_IP) N(NATD_D_IP) N(FRAG_SUP) ]
06[IKE] 79.x.x.x is initiating an IKE_SA
06[CFG] selected proposal: IKE:AES_CBC_256/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/MODP_2048
06[IKE] remote host is behind NAT
06[IKE] sending cert request for "C=DE, CN=vServer CA"  
06[ENC] generating IKE_SA_INIT response 0 [ SA KE No N(NATD_S_IP) N(NATD_D_IP) CERTREQ N(FRAG_SUP) N(CHDLESS_SUP) N(MULT_AUTH) ]
06[NET] sending packet: from 157.x.x.x[500] to 79.x.x.x[34] (481 bytes)
12[NET] received packet: from 79.x.x.x[1057] to 157.x.x.x[4500] (512 bytes)
12[ENC] unknown attribute type INTERNAL_DNS_DOMAIN
12[ENC] parsed IKE_AUTH request 1 [ IDi N(INIT_CONTACT) IDr CPRQ(ADDR MASK DHCP DNS ADDR6 DHCP6 DNS6 DOMAIN) N(ESP_TFC_PAD_N) N(NON_FIRST_FRAG) SA TSi TSr N(MOBIKE_SUP) ]
12[CFG] looking for peer configs matching 157.x.x.x[157-x-x-x.nip.io]...79.x.x.x[172.16.2.13]
12[CFG] no matching peer config found
12[IKE] received ESP_TFC_PADDING_NOT_SUPPORTED, not using ESPv3 TFC padding
12[IKE] peer supports MOBIKE
12[ENC] generating IKE_AUTH response 1 [ N(AUTH_FAILED) ]
12[NET] sending packet: from 157.x.x.x[4500] to 79.x.x.x[1057] (80 bytes)

Habe ich irgendwas nicht bedacht ?

VG
Member: aqui
aqui Sep 12, 2023 at 10:49:45 (UTC)
Goto Top
Aber mein iphone will jetzt nicht mehr
An der IKEv2 Konfig Datei hast du ja rein gar nichts geändert wenn du nur die Fritzbox Konfig angepasst, oder? Du nutzt ja aktuell für jede Connection jetzt eine separate .conf Datei, richtig?
Damit funktionieren die dann völlig unabhängig voneinander. Das eine kann niemals das andere beeinflussen.

Bezeichnend ist aber der Fehler:
12[CFG] looking for peer configs matching 157.x.x.x[157-x-x-x.nip.io]...79.x.x.x[172.16.2.13]
12[CFG] no matching peer config found


Was besagt das Strongswan deinen konfigurierten IKEv2 Peer "157-x-x-x.nip.io" nicht findet im Connection Setup. face-sad
Kann es sein das du hier wieder Tippfehler hast Striche und Punkt usw.?
Ansonsten mit systemctl restart strongswan mal den Daemon neu starten.
Wenn alle Stricke reissen wieder strategisch vorgehen wie oben und alle Fritzbox .conf Dateien rauskopieren und nur den IKEv2 Server belassen, mit swanctl -q die Paramter laden und checken und den Daemon neu starten und erstmal wieder nur den IKEv2 Server fixen.
Member: entfernt
entfernt Sep 12, 2023 at 11:35:53 (UTC)
Goto Top
Irgendeinen Fehler hatte ich auf jeden Fall ^^
Habe jetzt nochmal einen zuvor gesicherten Stand genommen, hier nochmal die FritzBox Adresse angepasst und zack klappt es face-smile

Wenn ich jetzt 2 Standorte haben will.... kapiere es noch nicht so ganz...
Ich würde gern nochmal den funktionierenden IST Zustand hier festhalten:

In meiner sysctl.conf habe ich den folgenden Parameter aus der Kommentierung genommen:
net.ipv4.ip_forward=1
Meine nftables.conf sieht so aus:
#!/usr/sbin/nft -f

flush ruleset

table inet filter {
	chain input {
		type filter hook input priority 0;
	}
	chain forward {
		type filter hook forward priority 0;
	}
	chain output {
		type filter hook output priority 0;
	}
}

table ip nat {

        define VPN_NETS = {
        192.168.69.0/24
        }
        # fuer VPN Client Pakete ins Internet masquerade ausser VPN Netzwerke
        chain postrouting {
                type nat hook postrouting priority 100; policy accept;
                oifname ens6 ip daddr $VPN_NETS accept
                ip saddr 172.25.25.0/24 oif ens6 masquerade
        }
} 
Meine ikev2.conf:
connections {  
 ikev2-mobile-vpn { 
  unique = replace 
  version = 2 
  proposals = aes256-sha512-modp2048,aes256-sha256-modp2048,aes256-sha256-modp1024
  send_cert = always 
  pools = pool-ipv4 
  local_addrs = 157.x.x.x
  remote_addrs = 0.0.0.0/0,::/0 
  local { 
   auth = pubkey 
   certs = server-cert.pem
   id = fqdn:157-x-x-x.nip.io
   } 
  remote { 
   id = %any 
   auth = eap-mschapv2 
   eap_id = %any 
  } 
  children { 
   ikev2-mobile { 
   local_ts = 0.0.0.0/0 
   esp_proposals = aes256-sha512,aes256-sha384,aes256-sha256,aes256-sha1
   start_action = trap
   } 
  } 
 } 
} 
pools { 
 pool-ipv4 { 
 addrs = 172.25.25.0/24
 dns = 9.9.9.9, 192.168.69.1
 }
  }
secrets {
 eap-1 {
     id = <USER>
     secret = "<PASSWORT>"    
     }
 eap-2 {
     id = <USER2>
     secret = "<PASSWORT>"    
     }
} 
Meine jumphost.conf:
connections {
 fritzbox {
 local_addrs = 157.x.x.x
 remote_addrs = 0.0.0.0/0
  local {
   auth = psk
   id = 157.x.x.x
   }
  remote {
   auth = psk
   id = keyid:strongswan@fritz.box
   }
  children {
   net {
   local_ts = 172.25.24.0/23
   remote_ts = 192.168.69.0/24
   esp_proposals = aes256-sha512-modp2048,aes256-sha512-modp1024
   }
  }
 version = 1
 proposals = aes256-sha512-modp2048,aes256-sha512-modp1024
 }
}

secrets {
 ike-1 {
 id = keyid:strongswan@fritz.box
 secret = "<PASSWORT>"  
 }
} 
Meine config Datei die in der FritzBox hochgeladen wird:
vpncfg {
        connections {
                enabled = yes;
                editable = no;
                conn_type = conntype_lan;
                name = "vServer";  
                always_renew = no;
                reject_not_encrypted = no;
                dont_filter_netbios = yes;
                localip = 0.0.0.0;
                local_virtualip = 0.0.0.0;
                remoteip = 157.x.x.x;
                remote_virtualip = 0.0.0.0;
		        keepalive_ip = 172.25.24.1;
		        localid {
                        key_id = "strongswan@fritz.box";  
                        }
                remoteid {
                        ipaddr = 157.x.x.x;
                        }
                mode = phase1_mode_idp;
                phase1ss = "LT8h/all/all/all";  
                keytype = connkeytype_pre_shared;
                key = "<PASSWORT>";  
                cert_do_server_auth = no;
                use_nat_t = yes;
                use_xauth = no;
                use_cfgmode = no;
                phase2localid {
                        ipnet {
                                ipaddr = 192.168.69.0;
                                mask = 255.255.255.0;
                        }
                }
                phase2remoteid {
                        ipnet {
                                ipaddr = 172.25.24.0;
                                mask = 255.255.254.0;
                        }
                }
                phase2ss = "esp-all-all/ah-none/comp-all/pfs";  
                accesslist = "permit ip any 172.25.24.0 255.255.254.0";  
        }
} 

Was muss ich jetzt ergänzen um beide Standorte gleichzeitig betreiben zu können ?

VG
Member: aqui
aqui Sep 12, 2023 updated at 12:26:31 (UTC)
Goto Top
und zack klappt es
👍 Works as designed!! 😉
Wenn ich jetzt 2 Standorte haben will.... kapiere es noch nicht so ganz...
Was ist daran nicht zu kapieren?? Ist doch kinderleicht:
  • Weitere .conf Datei für diesen 2ten Standort im Strongswan anlegen. Kannst die bestehende kopieren und passt da nur lokale LAN IP (phase2localid), KeyID und Passwort an.
  • swanctl -q oder Daemon neu starten um die neue Konfig einzulesen
  • Dazu korrespondierende Fritzbox VPN Datei in die weitere Fritzbox importieren
  • Fertisch
Für jeden weiteren Standort gehst du so vor und damit arbeiten doch alle Standorte gleichzeitig. Was ist da so schwer dran zu verstehen, ist doch ne einfache Logik! face-wink

⚠️ Zwei wichtige Punkte:
  • Jede Fritzbox braucht eine individuelle KeyID
  • ...und ein individuelles Passwort.
Die KeyIDs und ihr Passwort sind sowas wie eine individuelle Username/Passwort Kombination pro FB für den VPN Tunnel.
Es macht also Sinn die KeyIDs pro Standort entsprechend zu benennen.
Z.B key_id = "standort1@fritz.box"; und key_id = "standort2@fritz.box";. Das dient nicht nur der besseren Unterscheidung und Übersichtlichkeit sondern auch der Sicherheit!
Die KeyIDs sind dann entsprechend in den jeweiligen Strongswan .conf Dateien für die FBs und in den FB Importdateien anzupassen.
Auch die Passwörter müssen in der Strongswan Konfig Datei eindeutig sein. Du kannst nicht in beiden FB .conf Dateien " ike-1 {..." nutzen mit dem gleichen Index!!
Entweder nummerierst du das durch ala "ike-1 {..." und "ike-2 {..."oder nimmst sowas wie "ike-sto1 {..." und "ike-sto2 {...". Das ist Geschmackssache solange es nur unterschiedlich ist.
Zusätzlich musst du den Fritzboxen auch zwingend unterschiedliche Connection Namen in der Strongswan Konfig Datei geben. Z.B. standort1 oder fb-standort1 usw. je nach Geschmack

⚠️ Obacht:
Solltest du eine Any zu Any Kommunikation wünschen, also das die Fritzboxen bzw. ihre lokalen LANs auch untereinander über den Jumphost kommunizieren können, musst du das entsprechend noch in den FB Konfig Dateien ergänzen!
AVM hat dafür eine Anleitung in seinem VPN Knowledge Portal:
https://avm.de/service/wissensdatenbank/dok/FRITZ-Box-7490/230_Uber-IPSe ...
Auch hier findest du dazu Infos:
2 Netze hinter Fritzbox VPN
PFSense mit Fritzboxen verbinden
Hier ist also die accesslist unter der phase2ss entsprechend anzupassen.

Ansonsten sind deine Konfig Dateien oben alle korrekt!
Den Status deiner Peers kannst du auch immer mit ipsec statusall auf dem vServer ansehen.
Member: entfernt
entfernt Sep 12, 2023 at 14:01:04 (UTC)
Goto Top
Ok ich werde mal testen und schauen ob ich es hinbekomme.
Und nein die lokalen Netze der FritzBoxen sollen sich nicht untereinander erreichen.
Aber das führt mich zu einer Frage die mir jetzt gerade erst klar wird…
Kann ich es denn so einstellen das bestimmte User nur in bestimmte Netze kommt ?
Also der eap VPNUser1 soll nur an die Geräte an Standort 1 (192.168.178.1) kommen der eap VPNUser2 nur an die von Standort 2 (192.168.69.1) usw…
Weil im Standard, wenn ich die beiden configs jetzt gleichzeitig zum laufen bekomme und mich mit meinem Laptop ins VPN einwähle, dann kann ich mit dem doch das 178er und das 69er Netz erreichen, richtig ?
Member: aqui
aqui Sep 12, 2023 at 17:05:39 (UTC)
Goto Top
Kann ich es denn so einstellen das bestimmte User nur in bestimmte Netze kommt ?
Wie meinst du das?? Wenn du doch die lokalen LANs der Fritzboxen koppelst??

Nur so viel...
Eine Firewall filtert immer nach Netzwerk Traffic aber nicht nach User/Passwort. Wie sollte sie auch sowas erkennen? Denn ohne Customizing gilt beim Pool bekanntlich immer: First come, first serve??
Es gibt aber ein paar Workarounds sowas hinzubekommen.
Wenn du das für die mobilen Dialin User meinst kann man anhand der User/Pass Credentials eine feste IP Adresse vergeben aus dem Pool. Hier kann man dann wieder mit einem nftables Regelwerk bestimmen zu welchen IP Netzen, Hosts und Diensten (TCP/UDP Ports) diese User IPs dann Zugang haben sollen oder nicht.
Bei einer eventuellen LAN-LAN Kopplung der FBs ginge das auch wenn man Clients in der FB über die Mac Zuweisung feste IPs vergibt. Dann kann man die Clients anhand ihrer IPs auch wieder selektieren und mit einem entsprechenden Regelwerk belegen.
Machbar ist vieles... face-wink
Member: entfernt
entfernt Sep 14, 2023 at 07:16:00 (UTC)
Goto Top
Es gibt aber ein paar Workarounds sowas hinzubekommen.
Ok dann befasse ich mich damit wenn ich das zum laufen bekomme habe, aktuell habe ich nämlich noch Probleme...
Nur um den Hintergrund nochmal zu erläutern:
Also ursprünglich war die Anforderung eigentlich, dass ich einen VPN Zugang für einen DSLite Standort benötige, da war mir noch nicht klar das ich dann am Ende eine vServer miete und das halt über einen Jumphost machen werde.
Daher war dann die Idee, wenn ich schon nen Mietserver brauche, kann ich ja den wenigsten für mehrere VPN's nutzen, sprich:

Standort A, DSLite, wird es einen User geben der per VPN auf den Standort zugreifen soll
Standort B Meiner, wenn ich den Server schon habe, warum nicht mein eigenen VPN Zugriff auch darüber laufen lassen..
Standort C Ein Kumpel von mir würde das dann auch nutzen wollen um einen VPN Zugriff auf sein Netzwerk haben zu wollen.

Aber in der Konstellation würde es natürlich nicht gewollt sein das der User an Standort A in mein Netzwerk kommt oder in das meines Kumpels oder das mein Kumpel an mein Netzwerk kommt oder an den von Standort A usw...

Jetzt aber zu meinem aktuellem Problem.
Ich habe jetzt eine zusätzliche config erstellt damit beide Standorte über den Server laufen aber das klappt noch nicht.
Die VPN Verbindung an sich funktioniert aber ich erreiche keine der beiden FritzBoxen und in den FritzBoxen ist der status auch nicht mehr grün.
Ich habe ein bisschen die Hoffnung das Du jetzt über die configs guckst und sagst "kann ja auch nicht, an der Stelle musst Du noch das & das machen face-smile"

swanctl -q:
loaded certificate from '/etc/swanctl/x509/server-cert.pem'  
loaded certificate from '/etc/swanctl/x509ca/meinvserver-cert.pem'  
loaded RSA key from '/etc/swanctl/private/meinvserver-key.pem'  
loaded RSA key from '/etc/swanctl/private/server-key.pem'  
loaded eap secret 'eap-stand2-1'  
loaded eap secret 'eap-stand2-2'  
loaded eap secret 'eap-1'  
loaded eap secret 'eap-2'  
loaded ike secret 'ike-stand2'  
loaded ike secret 'ike-1'  
no authorities found, 0 unloaded
loaded pool 'pool-ipv4-2'  
loaded pool 'pool-ipv4'  
successfully loaded 2 pools, 0 unloaded
loaded connection 'ikev2-stand2'  
loaded connection 'ikev2-mobile-vpn'  
loaded connection 'stand2'  
loaded connection 'fritzbox'  
successfully loaded 4 connections, 0 unloaded

ikev2.conf:
connections {  
 ikev2-mobile-vpn { 
  unique = replace 
  version = 2 
  proposals = aes256-sha512-modp2048,aes256-sha256-modp2048,aes256-sha256-modp1024
  send_cert = always 
  pools = pool-ipv4 
  local_addrs = 157.x.x.x
  remote_addrs = 0.0.0.0/0,::/0 
  local { 
   auth = pubkey 
   certs = server-cert.pem
   id = fqdn:157-x-x-x.nip.io
   } 
  remote { 
   id = %any 
   auth = eap-mschapv2 
   eap_id = %any 
  } 
  children { 
   ikev2-mobile { 
   local_ts = 0.0.0.0/0 
   esp_proposals = aes256-sha512,aes256-sha384,aes256-sha256,aes256-sha1
   start_action = trap
   } 
  } 
 } 
} 
pools { 
 pool-ipv4 { 
 addrs = 172.25.25.0/24
 dns = 9.9.9.9, 192.168.69.1
 }
  }
secrets {
 eap-1 {
     id = Admin
     secret = "<PASSWORT>"    
     }
 eap-2 {
     id = Admin2
     secret = "<PASSWORT>"    
     }
} 
ikev2-stand2.conf:
connections {  
 ikev2-stand2 { 
  unique = replace 
  version = 2 
  proposals = aes256-sha512-modp2048,aes256-sha256-modp2048,aes256-sha256-modp1024
  send_cert = always 
  pools = pool-ipv4-2 
  local_addrs = 157.x.x.x
  remote_addrs = 0.0.0.0/0,::/0 
  local { 
   auth = pubkey 
   certs = server-cert.pem
   id = fqdn:157-x-x-x.nip.io
   } 
  remote { 
   id = %any 
   auth = eap-mschapv2 
   eap_id = %any 
  } 
  children { 
   ikev2-stand2 { 
   local_ts = 0.0.0.0/0 
   esp_proposals = aes256-sha512,aes256-sha384,aes256-sha256,aes256-sha1
   start_action = trap
   } 
  } 
 } 
} 
pools { 
 pool-ipv4-2 { 
 addrs = 172.25.25.0/24
 dns = 9.9.9.9, 192.168.178.1
 }
  }
secrets {
 eap-stand2-1 {
     id = Adminstand2
     secret = "<PASSWORT2>"    
     }
 eap-stand2-2 {
     id = Adminstand2-2
     secret = "<PASSWORT2>"    
     }
} 
jumphost.conf:
connections {
 fritzbox {
 local_addrs = 157.x.x.x
 remote_addrs = 0.0.0.0/0
  local {
   auth = psk
   id = 157.x.x.x
   }
  remote {
   auth = psk
   id = keyid:strongswan@fritz.box
   }
  children {
   net {
   local_ts = 172.25.24.0/23
   remote_ts = 192.168.69.0/24
   esp_proposals = aes256-sha512-modp2048,aes256-sha512-modp1024
   }
  }
 version = 1
 proposals = aes256-sha512-modp2048,aes256-sha512-modp1024
 }
}

secrets {
 ike-1 {
 id = keyid:strongswan@fritz.box
 secret = "<PASSWORT>"  
 }
} 
jumphost-stand2.conf:
connections {
 stand2 {
 local_addrs = 157.x.x.x
 remote_addrs = 0.0.0.0/0
  local {
   auth = psk
   id = 157.x.x.x
   }
  remote {
   auth = psk
   id = keyid:stand2@fritz.box
   }
  children {
   net {
   local_ts = 172.25.24.0/23
   remote_ts = 192.168.178.0/24
   esp_proposals = aes256-sha512-modp2048,aes256-sha512-modp1024
   }
  }
 version = 1
 proposals = aes256-sha512-modp2048,aes256-sha512-modp1024
 }
}

secrets {
 ike-stand2 {
 id = keyid:stand2@fritz.box
 secret = "<PASSWORT2>"  
 }
} 
vpncfg.txt
vpncfg {
        connections {
                enabled = yes;
                editable = no;
                conn_type = conntype_lan;
                name = "vServer";  
                always_renew = no;
                reject_not_encrypted = no;
                dont_filter_netbios = yes;
                localip = 0.0.0.0;
                local_virtualip = 0.0.0.0;
                remoteip = 157.x.x.x;
                remote_virtualip = 0.0.0.0;
		        keepalive_ip = 172.25.24.1;
		        localid {
                        key_id = "strongswan@fritz.box";  
                        }
                remoteid {
                        ipaddr = 157.x.x.x;
                        }
                mode = phase1_mode_idp;
                phase1ss = "LT8h/all/all/all";  
                keytype = connkeytype_pre_shared;
                key = "<PASSWORT>";  
                cert_do_server_auth = no;
                use_nat_t = yes;
                use_xauth = no;
                use_cfgmode = no;
                phase2localid {
                        ipnet {
                                ipaddr = 192.168.69.0;
                                mask = 255.255.255.0;
                        }
                }
                phase2remoteid {
                        ipnet {
                                ipaddr = 172.25.24.0;
                                mask = 255.255.254.0;
                        }
                }
                phase2ss = "esp-all-all/ah-none/comp-all/pfs";  
                accesslist = "permit ip any 172.25.24.0 255.255.254.0";  
        }
} 
vpncfg-stand2.txt:
vpncfg {
        connections {
                enabled = yes;
                editable = no;
                conn_type = conntype_lan;
                name = "vServer";  
                always_renew = no;
                reject_not_encrypted = no;
                dont_filter_netbios = yes;
                localip = 0.0.0.0;
                local_virtualip = 0.0.0.0;
                remoteip = 157.x.x.x;
                remote_virtualip = 0.0.0.0;
		        keepalive_ip = 172.25.24.1;
		        localid {
                        key_id = "stand2@fritz.box";  
                        }
                remoteid {
                        ipaddr = 157.x.x.x;
                        }
                mode = phase1_mode_idp;
                phase1ss = "LT8h/all/all/all";  
                keytype = connkeytype_pre_shared;
                key = "<PASSWORT2>";  
                cert_do_server_auth = no;
                use_nat_t = yes;
                use_xauth = no;
                use_cfgmode = no;
                phase2localid {
                        ipnet {
                                ipaddr = 192.168.178.0;
                                mask = 255.255.255.0;
                        }
                }
                phase2remoteid {
                        ipnet {
                                ipaddr = 172.25.24.0;
                                mask = 255.255.254.0;
                        }
                }
                phase2ss = "esp-all-all/ah-none/comp-all/pfs";  
                accesslist = "permit ip any 172.25.24.0 255.255.254.0";  
        }
} 

Was habe ich vergessen ?

VG
Member: entfernt
entfernt Sep 14, 2023 at 07:25:27 (UTC)
Goto Top
Also manchmal ist es wie verhext...
Tausendmal rumprobiert und ich konnte keine der Standorte erreichen, jetzt auf einmal kann ich zumindest den 192.168.178.0 erreichen. Immer noch nicht so wie es sein sollte, aber ja.. zumindest ein Standort schon mal ^^

VG
Member: aqui
aqui Sep 14, 2023 updated at 07:57:53 (UTC)
Goto Top
Aber in der Konstellation würde es natürlich nicht gewollt sein das der User an Standort A in mein Netzwerk kommt oder in das meines Kumpels oder das mein Kumpel an mein Netzwerk kommt oder an den von Standort A usw...
Das ist verständlich und macht auch Sinn.
Wenn das alles moderne FBs sind die Ver. 7.5x laufen haben könntest du die Verbindung der FBs auch auf Wireguard laufen lassen.
Das erspart dir dann das Customizing der Firewall, da im Wireguard Setup gleich definiert werden kann wer mit wem darf. (AllowedIPs Parameter)
Das würde das Setup zumindestens für den FB Zugriff etwas vereinfachen.
Das VPN Dialin für die mobilen Clients bleibt dann weiterhin auf dem IKEv2 Server um problemlos die onboard Clients nutzen zu können.
So ein Design ist auch umsetzbar wenn alle beteiligten FBs 7.5.x supporten. Ein apt install wireguard intstalliert dir alle Tools dafür und was du bei der etwas "speziellen" AVM WG Implementation zu beachten hast erklärt dir dieses Tutorial. face-wink
Member: entfernt
entfernt Sep 16, 2023 at 11:31:54 (UTC)
Goto Top
So ein Design ist auch umsetzbar wenn alle beteiligten FBs 7.5.x supporten. Ein apt install wireguard intstalliert dir alle Tools dafür und was du bei der etwas "speziellen" AVM WG Implementation zu beachten hast erklärt dir dieses Tutorial
Also, probiere jetzt gerade das Wireguard Setup.

Meine keys habe ich über https://www.wireguardconfig.com/ generiert:
wire-config

Dabei kam das raus:
wire-config_result

Daraus habe ich aber nur den Port und die Keys genommen und folgende configs erstellt:

/etc/wireguard/wg0.conf:
[Interface]
Address = 10.10.10.1/24
ListenPort = 51820
PrivateKey = wFv2Y7wHzzx504J1

[Peer]
PublicKey = 64MuT3ByeAN5tlUc
AllowedIPs = 10.10.10.2/32,192.168.178.0/24

Die config Datei für die FritzBox:
[Interface]
PrivateKey = MDg/zeVY7Jg/SuYH
Address = 192.168.178.1/24

[Peer]
PublicKey = imloiLtqGB6s7cjWFaq
AllowedIPs = 10.10.10.0/24,172.25.26.0/28
Endpoint = <dns-adresse des vServers>
PersistentKeepalive = 25 

Dann habe ich das gemacht:
wg-quick up wg0

Beim versuch die config in die FritzBox zu laden kam allerdings diese Meldung:
fritz

wg show:
interface: wg0
  public key: imloiLtqGB6s7cjWFaq
  private key: (hidden)
  listening port: 51820

peer: 64MuT3ByeAN5tlUcbRQKpw
  allowed ips: 10.10.10.2/32, 192.168.178.0/24

Was mache ich falsch ?

VG
Member: aqui
aqui Sep 16, 2023, updated at Jan 01, 2024 at 13:13:19 (UTC)
Goto Top
Meine keys habe ich über https://www.wireguardconfig.com/ generiert:
Völlig sinnfrei und auch sehr gefährlich sowas auf einer fremden Seite zu machen die ggf. dann deine ganzen VPN Keys kennt! 🧐

Warum machst du das nicht bequem auf deinem vServer mit:
wg genkey | tee server_private.key | wg pubkey > server_public.key 
und für deine Fritzbox dann mit:
wg genkey | tee fritzbox_private.key | wg pubkey > fritzbox_public.key 
?? Wäre ja deutlich sicherer! 😉

Dann musst du die zum Server passende FritzBox WG Client (Initiator) Datei unbedingt manuell anpassen, da die Fritzbox Wireguard Implementation NICHT Standard konform ist! Hast du das beachtet? (FB Fehler kommt zu 98% von einem falschen Key Format (Cut and Paste Fehler?!))
FB Wireguard Import Datei sollte dann so aussehen:
[Interface]
PrivateKey = <fritzbox_private.key>
Address = 192.168.178.1/24

[Peer]
PublicKey = <server_public.key>
AllowedIPs = 10.10.10.0/24,172.25.26.0/28
Endpoint = <dns-adresse_vServer>:51820
PersistentKeepalive = 25  

Wie man die Fritzbox Datei entsprechend an einen klassischen WG Server anpasst erklärt dir das hiesige WG/AVM Tutorial!
Member: entfernt
entfernt Sep 16, 2023 at 12:21:00 (UTC)
Goto Top
Zitat von @aqui:

Warum machst du das nicht bequem auf deinem vServer mit:
wg genkey | tee server_private.key | wg pubkey > server_public.key 
und für deine Fritzbox dann mit:
wg genkey | tee fritzbox_private.key | wg pubkey > fritzbox_public.key 
?? Wäre ja deutlich sicherer!

Hatte ich gemacht aber hab die keys dann anschließend nicht gefunden 😅:D
Also, die werden doch dann irgendwo abgelegt oder ? Weil der Befehl an sich gibt ja über die console nichts zurück…
Dann musst du die zum Server passende FritzBox WG Client (Initiator) Datei unbedingt manuell anpassen, da die Fritzbox Wireguard Implementation NICHT Standard konform ist! Hast du das beachtet? (Fehler in der o.a. Client Datei bei den Allowed IPs und der FB Fehler kommt zu 98% von einem falschen Key Format (Cut and Paste Fehler?!))

Wie man die Fritzbox Datei entsprechend an einen klassischen WG Server anpasst erklärt dir das hiesige WG/AVM Tutorial!
Aus dem Tutorial habe ich ja die config genommen die ich eben gepostet habe.
Sehe jetzt erstmal keinen Fehler in meiner config… (Port habe ich auch mitgegeben)
Member: aqui
aqui Sep 16, 2023 updated at 12:27:34 (UTC)
Goto Top
Hatte ich gemacht aber hab die keys dann anschließend nicht gefunden
Oh man...🤦‍♂️ Die landen so doch immer in dem Verzeichnis in dem du auch aktuell bist. (Prompt) Ein ls -la in deinem aktuellen Verzeichnis hätten sie dir angezeigt. 😉
Wenn du das Verzeichnis fest bestimmen willst gibst du das in den Kommandos logischerweise dediziert an:
wg genkey | tee /home/user1/server_private.key | wg pubkey > /home/user1/server_public.key
Beide Keys findest du dann im Verzeichnis /home/user1/ !!
Sehe jetzt erstmal keinen Fehler in meiner config…
Ggf. versteckte Steuerzeichen von einem Winblows Text Editor?
Member: entfernt
entfernt Sep 16, 2023 updated at 15:20:37 (UTC)
Goto Top
Zitat von @aqui:

Oh man...🤦‍♂️ Die landen so doch immer in dem Verzeichnis in dem du auch aktuell bist.
Ups... gefunden :D

Warum machst du das nicht bequem auf deinem vServer mit:
wg genkey | tee server_private.key | wg pubkey > server_public.key 
und für deine Fritzbox dann mit:
wg genkey | tee fritzbox_private.key | wg pubkey > fritzbox_public.key 
?? Wäre ja deutlich sicherer!
[Interface]
PrivateKey = <fritzbox_private.key>
Address = 192.168.178.1/24

[Peer]
PublicKey = <server_public.key>
AllowedIPs = 10.10.10.0/24,172.25.26.0/28
Endpoint = <dns-adresse_vServer>:51820
PersistentKeepalive = 25  

Verstehe ich nicht... Hab die Keys jetzt nochmal neu generiert, mit den Boardmitteln, sowie von Dir beschrieben und beide configs nochmal neu erstellt und die textdatei die ich für die FritzBox brauche über nano wireguard.txt erstellt und dort hochgeladen damit die nicht mit nem Windows Editor erstellt wurden... Bleibt aber bei der Fehlermeldung wenn ich die Datei in der FritzBox hochladen will...

Fritz:
[Interface]
PrivateKey = QOiguQ5iBq0/w8D1FE....
Address = 192.168.178.1/24

[Peer]
PublicKey = gfHEzrBEHPGt6m3KxTK....
AllowedIPs = 10.10.10.0/24,172.25.26.0/28
Endpoint = dsn.domain.de:51820
PersistentKeepalive = 25

Meine wg0.conf:
[Interface]
Address = 10.10.10.1/24
ListenPort = 51820
PrivateKey = SDD8nLLCnwc5Ji0go....

[Peer]
PublicKey = jzWUr8yiwXdo4c6hX/....
AllowedIPs = 10.10.10.2/32,192.168.178.0/24

wg show:
interface: wg0
  public key: jzWUr8yiwXdo4c6hX/....
  private key: (hidden)
  listening port: 51820

Muss ich hier noch irgendwas anhaken ?
16-09-_2023_17-17-07

Die Frage "Wurde diese WireGuard-Verbindung bereits auf der Gegenstelle erstellt ?" habe ich mit Ja beantwortet...

Irgendeine Idee wo es hängen könnte ?

VG
Member: aqui
aqui Sep 16, 2023 at 17:21:07 (UTC)
Goto Top
Mmmmhhh, komisch. 🤔 Klappt hier mit einer 7490 und aktuellem 7.57er Firmware fehlerlos über den Import:
  • "Netzwerke koppeln oder spezielle Verbindung herstellen" klicken
  • Dann "Wurde diese WireGuard-Verbindung bereits auf der Gegenstelle erstellt ?" JA klicken
  • Fertisch
wginfo
Irgendeine Idee wo es hängen könnte ?
Nicht wirklich... face-sad
Gibts da ggf. noch ne andere aktive Konfig?
Member: entfernt
entfernt Sep 16, 2023 at 18:14:43 (UTC)
Goto Top
Hatte ja noch die IPSec Verbindung drin in der FritzBox (allerdings den Haken raus und nicht aktiviert) die habe ich jetzt mal gelöscht und alles nochmal durchgebootet.
Jetzt nimmt die FritzBox die config Datei aber die Verbindung kommt nicht zustande:
16-09-_2023_20-11-56
Member: aqui
Solution aqui Sep 22, 2023, updated at Jan 01, 2024 at 13:15:33 (UTC)
Goto Top
Hier kommt, wie gewünscht, die Lösung mit der dedizierten Zuweisung von IP Adressen im IKEv2 VPN Server und der dann möglich Filterung von Traffic zu den Zielnetzen für mobile VPN User.
(Dank an Forenkollege @colinardo für seine Tips zu diesem Setup!)

Schlüssel zur einfachen Lösung ist das Strongswan Plugin eap-radius was dann dediziert den mobilen VPN Usern feste IP Adressen per Radius zuweist statt zufällig über den IP Pool.
Ob das Plugin bei dir aktiv ist kannst du mit swanctl -S klären.
Im Output sollte dann u.a. ein eap-radius stehen!!

Es hat zusätzlich den großen Vorteil das außer der Firewall Steuerung auch die User Konfiguration der mobilen VPN User zentralisiert ist und du hast über das Radius Log eine Protokollierung wer wann eingewählt war bzw. wenn es Probleme gibt.
Beschreibung hier gilt für Debian basierte Linux Distros wie Ubuntu usw.
Los gehts....


back-to-topInstallation und Anpassung des Freeradius Servers


Mit apt get freeradius wird der Freeradius Server installiert.
Hier gilt es nun zwei Anpassungen zu machen. Zum einen muss das Radius Server Passwort gesetzt werden (Default = testing123) und eine User Datei angelegt werden

back-to-topRadius Passwort setzen

nano /etc/freeradius/3.0/clients.conf
Editiert die Datei zum Setzen des Radius Passworts im Abschnitt "client localhost" und "IPv6 Client". Dort wird mit "secret" das Passwort nach deiner Wahl gesetzt:
client localhost {
....
#  The default secret below is only for testing, and should
#  not be used in any real environment.
#
secret = testing123
....
}
# IPv6 Client
client localhost_ipv6 {
        ipv6addr        = ::1
        secret          = testing123
} 

back-to-topRadius Userdatei anlegen

Der zweite Schritt ist die Anpassung der User Datei für die mobilen VPN User.
Diese ist unter /etc/freeradius/3.0/mods-config/files/authorize zu finden und enthält viele Beispiele.
Sinnvoll ist es diese Datei nicht direkt zu editieren mit deinen Benutzern sondern sie zu belassen wie sie ist und am Anfang mit dem nano ein $INCLUDE users.vpn einzufügen.
Das hat den Vorteil das du diese Beispieldatei nicht verfummeln musst und eine eigene Users Datei von dir mit dem Namen users.vpn geladen wird, was ggf. das Troubleshooting und die Übersichtlichkeit deutlich vereinfacht. Den Dateinamen kannst du frei wählen.

Diese dann separate VPN Userdatei unter /etc/freeradius/3.0/mods-config/files/users.vpn hat die folgende Struktur:
# Radius User Beispiel fuer mobile IKEv2 User.
#
# username   Cleartext-Password := "test123!"  
#            Framed-IP-Address = 172.25.25.x 
#            MS-Primary-DNS-Server = <dns_server_provider>,
#            MS-Primary-DNS-Server = <anderer_DNS_server>,

# Mobile VPN User
user1        Cleartext-Password := "Geheim123!"  
             Framed-IP-Address = 172.25.25.1,
             MS-Primary-DNS-Server = 1.2.3.4,
             MS-Secondary-DNS-Server = 9.9.9.9

user2        Cleartext-Password := "Geheim321!"  
             Framed-IP-Address = 172.25.25.2,
             MS-Primary-DNS-Server = 1.2.3.4,
             MS-Secondary-DNS-Server = 9.9.9.9 
"Framed-IP-Address = 172.25.25.1" ist die dem User fest zugewiesene Client IP Adresse.

back-to-topRadius Server checken

systemctl stop freeradius
Stoppt den FreeRadius Daemon und nun startest du den Server testweise manuell im Debug Mode mit freeradius -X um ggf. Fehler im Setup aufzudecken. (Manche Linux Distros radiusd -X)
Der Radius sollte dann ein "Ready to process requests" am Ende melden wenn alles korrekt konfiguriert wurde!
radok.
Ein <Ctrl C> beendet den Radius Debug Mode.
Erstmal belässt du den Radius Server noch mit manuellem Start um später das gesamte Zusammenspiel mit den mobilen Usern checken zu können.

Wie man das Radius Logging aktiviert erklärt das hiesige Radius Tutorial im Detail.


back-to-topAnpassung des "eap-radius" Plugins


Wie oben schon beschrieben ist das eap-radius Plugin schon aktiv, muss aber noch entsprechend auf den Radius Server (IP Adresse) und sein Passwort angepasst werden, damit das Plugin auch Zugang zum Radius Server bekommt.
Die Debian basierten Distros haben dafür unter /etc/strongswan.d/charon schon eine fertige eap-radius.conf Datei in der man nur noch die Radius Server IP und das Passwort per nano Editor eintragen muss:
# Shared secret between RADIUS and NAS. If set, make sure to adjust the
    # permissions of the config file accordingly.
    secret = testing123

    # IP/Hostname of RADIUS server.
    server = localhost 
Da der Radius Server hier nur intern genutzt wird wird als Hostname localhost verwendet!


back-to-topAnpassung der IKEv2 Konfig für die mobilen User


Hier solltest du zur Sicherung vorab die bestehende IKEv2 Konfiguration ins Home Verzeichnis kopieren.
Dann kommentierst du alles was in der Sektion pools { und secrets { steht mit einem "#" davor aus.
So kannst du sicherstellen das deine schon sauber funktionierende IKEv2 Konfig auch weiter sicher funktioniert. face-wink
Die gesamte IP Adressierung und Username/Passwort kommt ja nun vom Radius Server, so das diese o.a. Definitionen für den User Adresspool und die Passwörter hier nicht mehr benötigt wird.
Sollte alles sauber klappen kannst du die mit "#" auskommentierten Zeilen später komplett entfernen.

In der Konfig selber musst du noch die beiden Parameter pools und auth (Letzteres unter remote) entsprechend anpassen das nun der Radius dafür genutzt wird!
Eine entsprechende live IKEv2 Konfig für die mobilen VPN Clients sähe dann so aus:
connections {  

 ikev2-mobile-vpn { 
  unique = replace 
  version = 2 
  proposals = aes256-sha512-modp2048,aes256-sha256-modp2048,aes256-sha256-modp1024
  send_cert = always 
  pools = radius 
  local_addrs = 157.x.y.z
  remote_addrs = 0.0.0.0/0,::/0 
   local { 
   auth = pubkey 
   certs = Mein-vServerCert.crt
   id = fqdn:157-x-x-x.nip.io
   } 
  remote { 
   id = %any 
   auth = eap-radius 
   eap_id = %any 
  } 
  children { 
   ikev2-mobile { 
   local_ts = 0.0.0.0/0 
   esp_proposals = aes256-sha512,aes256-sha384,aes256-sha256,aes256-sha1
   start_action = trap
   } 
  } 
 } 
}  


back-to-topFinaler Check


Mit dem üblichen swanctl -q bzw. auch systemctl restart strongswan lädst du die neue IKEv2 Konfig.
Dann startest du zum Testen den Radius wieder im Debug Mode.
Nun wählst du dich mit einem funktionierenden mobilen VPN Client ein und dann solltest du am Ende zahlloser Meldungen vom Radius ein "Access accept..." angezeigt bekommen.
Im Radius Log (cat /var/log/freeradius/radius.log) steht dann sowas wie
Auth: (27) Login OK: [user1] (from client localhost_ipv6 port 608 cli 80.1.2.3[5121])
Zumindestens beim Windows Client kannst du auch mit ipconfig -all die korrekte Zuweisung der Client IP und der DNS Server bei aktivem VPN Tunnel checken.

Wenn dem so ist, dann kannst du den Radius Server mit systemctl restart freeradius wieder als Daemon starten und die Kommentarzeilen in der IKEv2 Konfig final löschen.
Zum Hinzufügen der mobilen VPN Benutzer musst du lediglich nur noch die o.a. VPN Userdatei im Radius ergänzen oder anpassen.
⚠️ Beachte dabei 2 Dinge:
  • Nach einer Änderung muss der Radius Server mit systemctl restart freeradius neu gestartet werden um die Userdatei neu einzulesen!
  • Groß- Kleinschreibung bei den User/Passwort Daten ist relevant!


back-to-topUser Zugriffsregeln mit der nftables Firewall steuern


Mit der dedizierten, benutzerspezifischen VPN IP Adresse der mobilen VPN User kannst du jetzt eine recht granulare Zugriffsteuerung deiner Benutzer auf die per VPN Tunnel angeschlossenen, lokalen VPN Router Netzwerke erreichen.
Dies geschieht in der Forwarding Chain (Routing Chain) wie das folgende Beispiel zeigt:
chain forward {
                type filter hook forward priority filter;
                #  LAN Forwarding fuer mobile VPN User begrenzen
                ip saddr 172.25.25.1 ip daddr { 192.168.178.0/24 } log prefix "[nftables]User1: " counter drop  
                ip saddr 172.25.25.2 ip daddr { 192.168.178.0/24, 192.168.69.0/24 } counter drop
                ip saddr 172.25.25.3 ip daddr { 192.168.69.0/24 } counter drop
                ip saddr 172.25.25.4 ip daddr { 192.168.0.0/16 } log prefix "[nftables]User4: " counter drop  
        } 
Das Regelwerk ist selbsterklärend. face-wink
  • User1 darf nicht auf das .178.0er Netz zugreifen und wird, wenn er das macht, mitgeloggt
  • User2 darf nicht auf das .178.0er und das .69.0er Netz zugreifen
  • User3 darf nicht auf das .69.0er Netz zugreifen
  • User4 darf nicht auf 192.168er Netze zugreifen und wird, wenn er das macht, mitgeloggt

Du kannst dir das mit Variablen noch etwas vereinfachen und vertipsicherer machen um solchen Fauxpas wie beim FB Passwort zu vermeiden. face-wink
# Fritzbox Netze definieren
define FRITZ_NETZE = { 192.168.69.0/24, 192.168.178.0/24 }
define SCHIFF = { 192.168.178.0/24 }
define USER1 = { 172.25.25.1 }
define USER1to3 = { 172.25.25.1, 172.25.25.2, 172.25.25.3 }

chain forward {
                type filter hook forward priority filter;
                #  LAN Forwarding fuer mobile VPN User begrenzen
                ip saddr $USER1 ip daddr $SCHIFF log prefix "[nftables]User1: " counter drop  
                ip saddr 172.25.25.3 ip daddr { 192.168.69.0/24 } counter drop
                ip saddr $USER1to3 ip daddr $FRITZ_NETZE counter drop
        } 
Du erkennst vermutlich die einfache Logik hinter dem Firewall Regelwerk?! face-wink
Bei Änderungen an der nftables Firewall natürlich ein systemctl restart nftables nicht vergessen!
Member: aqui
Solution aqui Sep 22, 2023, updated at Sep 23, 2023 at 06:18:29 (UTC)
Goto Top

back-to-topAnbindung Mikrotik Router


Die Anbindung eines Mikrotik Routers geschieht analog zu der der Fritzbox. Unterschied ist nur das das modernere IKEv2 Verfahren (Default bei Strongswan) im hiesigen Setup benutzt wird.
Der Mikrotik ist durch sein größeres Featureset hier deutlich flexibler im VPN Setup als die Fritzbox!

back-to-topKonfiguration Strongswan


Die vollständige Fritzbox Konfig wurde hier der Übersicht halber weggelassen. Die P1 und P2 Credentials sind der Einfachheit halber vom Fritzbox Setup übernommen. (Details zu den Fritzbox IPsec Krypro Credentials findet man u.a. HIER)
LAN IP Mikrotik: 192.168.88.0 /24
connections {

fritzbox {
 local_addrs = 212.1.2.3
 remote_addrs = 0.0.0.0/0
 ......
 }
 
 mikrotik {
 local_addrs = 212.1.2.3
 remote_addrs = 0.0.0.0/0
  local {
   auth = psk
   id = 212.1.2.3
   }
  remote {
   auth = psk
   id = keyid:mikrotik@mikrotik.intern
   }
  children {
   net {
   local_ts = 172.25.24.0/23
   remote_ts = 192.168.88.0/24
   esp_proposals = aes256-sha512-modp1024,aes256-sha1-modp1024
   }
  }
 proposals = aes256-sha512-modp2048,aes256-sha512-modp1024
 }
}

secrets {
 ike-1 {
 id = keyid:fritzbox@fritzbox.intern
 secret = "Geheim123!"  
 }
ike-2 {
 id = keyid:mikrotik@mikrotik.intern
 secret = "test1234!"  
 }
} 


back-to-topKonfiguration Mikrotik Router


Wie oben schon gesagt wurden der Einfachheit halber die Fritzbox P1 und P2 Credentials übernommen und das Default Profil genutzt. Man kann aber auch ein separates Profil erstellen.

back-to-topP1 und P2 Krypto Settings


props

back-to-topPeer und Identity Setting


peer

back-to-topTunnel Setting (Proposal) und Check


mtstrong1

Man sieht hier schon den Tunnel im "established" Status (Aufgebaut) und das im WinBox Screenshot eingebettete Ping Fenster zeigt den erfolgreichen Ping von der LAN IP des Mikrotik (Source) auf die Loopback Adresse des vServers.
Entsprechend zeigt dann der Mikrotik auch die SAs an.
sa

Das Pendant auf der anderen Seite (vServer) dann entsprechend:
Tunnel Status und SAs:
Security Associations (1 up, 0 connecting):
    mikrotik[1]: ESTABLISHED 4 minutes ago, 212.1.2.3[212.1.2.3]...80.1.2.3[mikrotik@mikrotik.intern]
    mikrotik[1]: IKEv2 SPIs: ac5a581a137e5219_i 72371f37f93aaf3f_r*, rekeying in 3 hours
    mikrotik[1]: IKE proposal: AES_CBC_256/HMAC_SHA2_512_256/PRF_HMAC_SHA2_512/MODP_2048
         net{1}:  INSTALLED, TUNNEL, reqid 1, ESP in UDP SPIs: c1cfe3ec_i 0a464006_o
         net{1}:  AES_CBC_256/HMAC_SHA2_512_256, 392 bytes_i (7 pkts, 167s ago), 392 bytes_o (7 pkts, 167s ago), rekeying in 51 minutes
         net{1}:   172.25.24.0/23 === 192.168.88.0/24 
(i = incoming, o = outgoing)

Trace des Verbindungsaufbaus:
09[NET] received packet: from 80.1.2.3[5140] to 212.1.2.3[4500] (368 bytes)
09[ENC] parsed CREATE_CHILD_SA request 8 [ No KE SA TSi TSr ]
09[CFG] selected proposal: ESP:AES_CBC_256/HMAC_SHA2_512_256/MODP_1024/NO_EXT_SEQ
09[IKE] CHILD_SA net{2} established with SPIs c1cfe3ec_i 0a464006_o and TS 172.25.24.0/23 === 192.168.88.0/24 

back-to-topFazit

Works as designed! 👍 😉
Member: entfernt
entfernt Sep 23, 2023 updated at 22:11:11 (UTC)
Goto Top
Vielen vielen Dank!!!!!

Klappt alles genau wie gewünscht face-smile face-smile
2 FritzBoxen + 1 Mikrotik, laufen alle gleichzeitig und die User Zugriffsregeln greifen auch alle.
Wirklich wirklich TOP!

Viele Grüße :D

[Nachtrag]
Doch noch ne kleine Frage...
Das:
unique = replace 
steht ja vermutlich dafür, dass jeder User nur einmal zur selben Zeit verbunden sein kann.
Das ist ja auch generell eine gute Sache, aber kann man zufällig auch festlegen das es einen User gibt der sich öfter verbinden kann und alle anderen nur einmal?
Member: aqui
aqui Sep 24, 2023 at 10:27:19 (UTC)
Goto Top
Klappt alles genau wie gewünscht
👍 👏 So sollte es sein! face-wink
es einen User gibt der sich öfter verbinden kann
Ja, natürlich! In dem Falle lässt du das o.a. Kommando einfach weg oder kommentierst es mit einem "#" davor aus.
Dann gilt der Default unique=no und Mehrfachlogins sind möglich.
Das Kommando gilt global für die Connection wirkt sich also immer auf alle User aus.
Details dazu hier.
Member: entfernt
entfernt Sep 24, 2023 at 11:16:29 (UTC)
Goto Top
Ja, natürlich! In dem Falle lässt du das o.a. Kommando einfach weg oder kommentierst es mit einem "#" davor aus.
Dann gilt der Default unique=no und Mehrfachlogins sind möglich.
Das Kommando gilt global für die Connection wirkt sich also immer auf alle User aus.
Details dazu hier.

Also geht das nicht, meinte nur für einen User und alle anderen bleiben unique…
Aber gut, halb so schlimm, das lässt sich verkraften ☺️

VG