đŸ„ł Network IPv6 - IPSec - strongSwan - Modern Security communication

Tags: #<Tag:0x00007f3392dde5b0> #<Tag:0x00007f3392dde3d0>

La configuration rĂ©seau Fibre - IP❀6 - ULA (Unique Local Address) de chez moi jusqu’aux serveurs ; en image : Sympat, non
 :blush:

LAB3W Network map IPv6 ULA

Je « me » fais un rĂ©capitulatif de l’installation Post-quantum strongSwan v6 (vĂ©rifier si liboqs 0.9.2 et strongswan-6.0.0beta6 n’ont pas Ă©voluĂ©s) :

Installation
# Installation de la version non officielle StrongSwan qui utilise la librairie OQS (OpenQuantumSafe) des algorhitmes cryptographiques.
apt-get -y install iproute2 iputils-ping nano wget unzip bzip2 make gcc libssl-dev cmake ninja-build

mkdir /liboqs && \
  cd /liboqs && \
  wget https://github.com/open-quantum-safe/liboqs/archive/refs/tags/0.9.2.zip && \
  unzip 0.9.2.zip && \
  cd liboqs-0.9.2 && \
  mkdir build && cd build

cmake -GNinja -DOQS_USE_OPENSSL=ON -DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX=/usr \
                -DCMAKE_BUILD_TYPE=Release -DOQS_BUILD_ONLY_LIB=ON .. && ninja && ninja install

cd / && rm -R /liboqs

mkdir /strongswan-build && \
  cd /strongswan-build && \
  wget https://download.strongswan.org/strongswan-6.0.0beta6.tar.bz2 && \
  tar xfj strongswan-6.0.0beta6.tar.bz2 && \
  cd strongswan-6.0.0beta6

./configure --prefix=/usr --sysconfdir=/etc --with-systemdsystemunitdir=/lib/systemd/system --disable-ikev1 --disable-constraints --enable-openssl --enable-frodo --enable-oqs --enable-silent-rules --enable-eap-identity --enable-eap-md5 --enable-eap-mschapv2 --enable-eap-tls --enable-eap-ttls --enable-eap-peap --enable-eap-tnc --enable-eap-dynamic --enable-eap-radius --enable-xauth-eap  --enable-dhcp --enable-addrblock --enable-unity --enable-certexpire --enable-radattr 

make all && make install

# --
# Au cas oĂč, vous avez une version strongSwan 5.XX qui cause de conflits avec la version compilĂ©e.
# dpkg -r strongswan-swanctl charon-systemd libcharon-extra-plugins strongswan-libcharon

# ./configure [...] --with-systemdsystemunitdir=/lib/systemd/system
# systemctl unmask strongXswan.service
# systemctl enable strongXswan.service
# systemctl restart strongXswan.service
# systemctl status strongXswan.service

Connexions (swanctl --load-conns)

Les connexions établies StrongSwan :

root@lab3w:/etc/swanctl # swanctl --list-sas
ca-fr: #8, ESTABLISHED, IKEv2, ad2daa13344fbeae_i 130c69bc0eb38f5b_r*
  local  'srv.ca.lab3w.com' @ 158.69.126.137[4500]
  remote 'srv.fr.lab3w.com' @ 109.210.56.240[4500] [fec1::1]
  AES_CBC-256/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/CURVE_25519/KE1_KYBER_L3/KE2_BIKE_L3/KE3_HQC_L3/KE4_HQC_L5
  established 1698s ago, rekeying in 12654s
  ca-fr: #58, reqid 1, INSTALLED, TUNNEL-in-UDP, ESP:AES_CBC-256/HMAC_SHA2_256_128/CURVE_25519/KE1_KYBER_L3/KE2_BIKE_L3/KE3_HQC_L3/KE4_HQC_L5
    installed 24s ago, rekeying in 138s, expires in 174s
    in  ca06e0ea,      0 bytes,     0 packets
    out c363d438,      0 bytes,     0 packets
    local  fc00:41d0:701:1100::/64 fc00:41d0:801:2000::/64 fc00:5300:60:9389::/64 fec0::/16 fec2::1/128 fec3::1/128
    remote fc01::10:106:0:0/104 fc01::10:126:42:0/112 fc01::172:16:0:0/104 fc01::192:168:0:0/104 fec1::/16

ca-uk: #12, ESTABLISHED, IKEv2, fbf8d917a028b5fa_i 27993e66b43d5756_r*
  local  'srv.ca.lab3w.com' @ 158.69.126.137[4500]
  remote 'vps.uk.ipv10.net' @ 57.128.171.43[4500] [fec2::1]
  AES_CBC-256/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/CURVE_25519/KE1_KYBER_L3/KE2_BIKE_L3/KE3_HQC_L3/KE4_HQC_L5
  established 1000s ago, rekeying in 12747s
  ca-uk: #59, reqid 4, INSTALLED, TUNNEL, ESP:AES_CBC-256/HMAC_SHA2_256_128/CURVE_25519/KE1_KYBER_L3/KE2_BIKE_L3/KE3_HQC_L3
    installed 3s ago, rekeying in 171s, expires in 195s
    in  c859d552,      0 bytes,     0 packets
    out cdfbc2ee,      0 bytes,     0 packets
    local  fc00:41d0:701:1100::/64 fc00:5300:60:9389::/64 fc01::10:106:0:0/104 fc01::10:126:42:0/112 fc01::172:16:0:0/104 fc01::192:168:0:0/104 fec0::/16 fec1::/16
    remote fc00:41d0:801:2000::/64 fec2::1/128

ca-de: #2, ESTABLISHED, IKEv2, ddc7ac4975d4e081_i 97ce2741655d20ea_r*
  local  'srv.ca.lab3w.com' @ 158.69.126.137[4500]
  remote 'vps.de.ipv10.net' @ 135.125.133.51[4500] [fec3::1]
  AES_CBC-256/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/CURVE_25519/KE1_KYBER_L3/KE2_BIKE_L3/KE3_HQC_L3/KE4_HQC_L5
  established 2715s ago, rekeying in 10567s
  ca-de: #57, reqid 3, INSTALLED, TUNNEL, ESP:AES_CBC-256/HMAC_SHA2_256_128/CURVE_25519/KE1_KYBER_L3/KE2_BIKE_L3/KE3_HQC_L3
    installed 69s ago, rekeying in 110s, expires in 129s
    in  c670c894,      0 bytes,     0 packets
    out c6945952,      0 bytes,     0 packets
    local  fc00:41d0:801:2000::/64 fc00:5300:60:9389::/64 fc01::10:106:0:0/104 fc01::10:126:42:0/112 fc01::172:16:0:0/104 fc01::192:168:0:0/104 fec0::/16 fec1::/16 fec2::1/128
    remote fc00:41d0:701:1100::/64 fec3::1/128
Credits (swanctl --load-creds)

Les autorités :

root@lab3w:/etc/swanctl # swanctl --list-authorities
strongswan:
  cacert: C=FR, O=LAB3W, CN=ZW3B Cyber Root CA : rsa_3072

Les certificats :

root@lab3w:/etc/swanctl # swanctl --list-certs

List of X.509 End Entity Certificates

  subject:  "C=FR, O=LAB3W, CN=srv.ca.lab3w.com"
  issuer:   "C=FR, O=LAB3W, CN=ZW3B Cyber Root CA : rsa_3072"
  validity:  not before Oct 30 07:24:39 2024, ok
             not after  Oct 30 07:24:39 2029, ok (expires in 1824 days)
  serial:    01
  altNames:  srv.ca.lab3w.com
  flags:
  authkeyId: 95:66:e0:e9:97:2d:7b:cb:ee:3d:7b:e3:95:5f:10:19:bc:6e:71:d5
  subjkeyId: 4e:f4:60:60:83:f5:53:a7:53:7d:4d:b8:9b:74:4b:d4:6c:35:d4:f6
  pubkey:    Falcon1024 14344 bits, has private key
  keyid:     28:78:34:78:37:e1:92:9f:91:e5:76:58:5f:e3:40:d8:23:03:aa:c9
  subjkey:   4e:f4:60:60:83:f5:53:a7:53:7d:4d:b8:9b:74:4b:d4:6c:35:d4:f6

  subject:  "C=FR, O=LAB3W, CN=srv.fr.lab3w.com"
  issuer:   "C=FR, O=LAB3W, CN=ZW3B Cyber Root CA : rsa_3072"
  validity:  not before Oct 30 06:48:28 2024, ok
             not after  Oct 30 06:48:28 2029, ok (expires in 1824 days)
  serial:    01
  altNames:  srv.fr.lab3w.com
  flags:
  authkeyId: 95:66:e0:e9:97:2d:7b:cb:ee:3d:7b:e3:95:5f:10:19:bc:6e:71:d5
  subjkeyId: 19:b5:62:8f:31:fc:27:a6:01:45:bc:d3:75:d4:be:07:7f:59:b8:aa
  pubkey:    Falcon1024 14344 bits, has private key
  keyid:     ce:3b:8e:ea:f0:bb:c9:2b:8b:18:7b:9c:f5:e9:24:6a:cf:fd:82:72
  subjkey:   19:b5:62:8f:31:fc:27:a6:01:45:bc:d3:75:d4:be:07:7f:59:b8:aa

  subject:  "C=FR, O=LAB3W, CN=vps.uk.ipv10.net"
  issuer:   "C=FR, O=LAB3W, CN=ZW3B Cyber Root CA : rsa_3072"
  validity:  not before Nov 01 02:51:21 2024, ok
             not after  Nov 01 02:51:21 2029, ok (expires in 1825 days)
  serial:    01
  altNames:  vps.uk.ipv10.net
  flags:
  authkeyId: 95:66:e0:e9:97:2d:7b:cb:ee:3d:7b:e3:95:5f:10:19:bc:6e:71:d5
  subjkeyId: 02:26:c7:d4:59:22:c5:51:64:6a:6e:95:6f:f0:ae:21:ea:8d:f9:1c
  pubkey:    Falcon1024 14344 bits, has private key
  keyid:     96:89:2f:cd:02:5c:80:1e:a6:dc:3e:42:f5:b0:76:15:62:30:c6:4a
  subjkey:   02:26:c7:d4:59:22:c5:51:64:6a:6e:95:6f:f0:ae:21:ea:8d:f9:1c

  subject:  "C=FR, O=LAB3W, CN=vps.de.ipv10.net"
  issuer:   "C=FR, O=LAB3W, CN=ZW3B Cyber Root CA : rsa_3072"
  validity:  not before Nov 01 03:29:17 2024, ok
             not after  Nov 01 03:29:17 2029, ok (expires in 1825 days)
  serial:    01
  altNames:  vps.de.ipv10.net
  flags:
  authkeyId: 95:66:e0:e9:97:2d:7b:cb:ee:3d:7b:e3:95:5f:10:19:bc:6e:71:d5
  subjkeyId: f3:07:2f:87:81:67:7d:66:b2:e7:7a:00:3f:87:70:69:c7:63:28:28
  pubkey:    Falcon1024 14344 bits, has private key
  keyid:     08:34:b3:1c:ca:71:b2:a4:24:69:e7:86:1c:b9:14:b1:bd:9d:63:7d
  subjkey:   f3:07:2f:87:81:67:7d:66:b2:e7:7a:00:3f:87:70:69:c7:63:28:28

List of X.509 CA Certificates

  subject:  "C=FR, O=LAB3W, CN=ZW3B Cyber Root CA : rsa_3072"
  issuer:   "C=FR, O=LAB3W, CN=ZW3B Cyber Root CA : rsa_3072"
  validity:  not before Oct 30 06:37:36 2024, ok
             not after  Oct 30 06:37:36 2034, ok (expires in 3650 days)
  serial:    11:f6:b6:9e:4f:22:12:bc
  flags:     CA CRLSign self-signed
  subjkeyId: 95:66:e0:e9:97:2d:7b:cb:ee:3d:7b:e3:95:5f:10:19:bc:6e:71:d5
  pubkey:    RSA 3072 bits, has private key
  keyid:     cf:4b:7c:c6:cc:38:ac:5b:77:5f:f2:e7:32:31:8c:0c:64:ab:0a:58
  subjkey:   95:66:e0:e9:97:2d:7b:cb:ee:3d:7b:e3:95:5f:10:19:bc:6e:71:d5
Files

Les fichiers sur le serveur :

root@lab3w:/etc/swanctl # tree
.
├── conf.d
│   ├── ca-de.conf
│   ├── ca-fr.conf
│   └── ca-uk.conf
├── ecdsa
├── pkcs12
├── pkcs8
├── private
│   ├── LAB3W_ZW3B-caKey-rsa_3072.pem
│   ├── srv.ca.lab3w.com-Key-falcon1024.pem
│   ├── srv.fr.lab3w.com-Key-falcon1024.pem
│   ├── vps.de.ipv10.net-Key-falcon1024.pem
│   └── vps.uk.ipv10.net-Key-falcon1024.pem
├── pubkey
├── rsa
├── swanctl.conf
├── tmp
│   ├── srv.ca.lab3w.com-Req.pem
│   ├── srv.fr.lab3w.com-Req.pem
│   ├── vps.de.ipv10.net-Req.pem
│   └── vps.uk.ipv10.net-Req.pem
├── x509
│   ├── srv.ca.lab3w.com-Cert-falcon1024-sign_ca-rsa_3072.pem
│   ├── srv.fr.lab3w.com-Cert-falcon1024-sign_ca-rsa_3072.pem
│   ├── vps.de.ipv10.net-Cert-falcon1024-sign_ca-rsa_3072.pem
│   └── vps.uk.ipv10.net-Cert-falcon1024-sign_ca-rsa_3072.pem
├── x509aa
├── x509ac
├── x509ca
│   └── LAB3W_ZW3B-caCert-rsa_3072.pem
├── x509crl
└── x509ocsp

14 directories, 18 files

Les fichiers sur un client :

root@pve:/etc/swanctl # tree
.
├── conf.d
│   └── fr-ca.conf
├── ecdsa
├── pkcs12
├── pkcs8
├── private
│   └── srv.fr.lab3w.com-Key-falcon1024.pem
├── pubkey
├── rsa
├── swanctl.conf
├── x509
│   └── srv.fr.lab3w.com-Cert-falcon1024-sign_ca-rsa_3072.pem
├── x509aa
├── x509ac
├── x509ca
│   └── LAB3W_ZW3B-caCert-rsa_3072.pem
├── x509crl
└── x509ocsp

14 directories, 5 files

Conf

La configuration sur le serveur :

Infos : File « /etc/strongswan.conf » par default.

root@lab3w:/etc/swanctl # vim /etc/strongswan.conf
charon {

        load_modular = yes
        plugins {
                include strongswan.d/charon/*.conf
        }

        start-scripts {
                creds = swanctl --load-creds
                conns = swanctl --load-conns
                pools = swanctl --load-pools
        }
        filelog {
                charon {
                        path = /var/log/charon.log
                        # add a timestamp prefix
                        time_format = %b %e %T
                        # prepend connection name, simplifies grepping
                        ike_name = yes
                        # overwrite existing files
                        append = no
                        # increase default loglevel for all daemon subsystems
                        default = 1
                        tls = 2
                        ike = 2
                        # flush each line to disk
                        flush_line = yes
                }

                # and two loggers using syslog
                syslog {
                        # prefix for each log message
                        identifier = charon-custom
                        # use default settings to log to the LOG_DAEMON facility
                        daemon {

                        }
                        # very minimalistic IKE auditing logs to LOG_AUTHPRIV
                        auth {
                                default = -1
                                ike = 0
                        }
                }
        }

        eap-dynamic {
                prefer_user = yes
                preferred = md5, tls
        }

        send_vendor_id = yes
        prefer_configured_proposals = no
        fragment_size = 1480
        max_packet = 30000
#       install_routes = no
#       install_virtual_ip = yes
#       install_virtual_ip_on = vti1
#       interfaces_use = vti0
#       interfaces_ignore = vmbr0
}
include strongswan.d/*.conf

pki {
#        load = plugins: random drbg x509 pubkey pkcs1 pkcs8 pkcs12 pem openssl oqs
}

# for strongSwan 5.9
libtls {
        version_max = 1.3
        suites = TLS_AES_128_GCM_SHA256,TLS_AES_256_GCM_SHA384
}
root@lab3w:/etc/swanctl # vim swanctl.conf

connections {
        include conf.d/ca-fr.conf
        include conf.d/ca-uk.conf
        include conf.d/ca-de.conf
}

authorities {
        strongswan {
                cacert = LAB3W_ZW3B-caCert-rsa_3072.pem
#               crl_uris = http://ip6-winnetou.strongswan.org/strongswan.crl
        }
}

pools {

        rw_pool {
                addrs = 172.16.1.100-172.16.1.200
        }

        fr-ipv6 {
                addrs = fec1::1/16
        }
        uk-ipv6 {
                addrs = fec2::1/128
        }
        de-ipv6 {
                addrs = fec3::1/128
        }

}

secrets {
        # PSK
        ike-my_pseudo {
                id = my_pseudo
                secret = 0sTdD7IOindSa6FuyjLsWtsdD9o/1a
        }
        # EAP
        eap-my_pseudo {
                id = my_pseudo@doman.tld
                secret = my_password
        }
}
root@lab3w:/etc/swanctl # vim conf.d/ca-fr.conf
ca-fr {
        remote_addrs = 109.210.56.240

        pools = fr-ipv6

        local {
                auth = pubkey
                certs = srv.ca.lab3w.com-Cert-falcon1024-sign_ca-rsa_3072.pem
                id = srv.ca.lab3w.com
        }
        remote {
                auth = pubkey
                id = srv.fr.lab3w.com
        }
        children {
                ca-fr {
#                       mode = transport

                        local_ts = fec0::1/16, fc00:5300:60:9389::/64, fec2::1/128, fc00:41d0:801:2000::/64, fec3::1/128, fc00:41d0:701:1100::/64

                        remote_ts = fec1::1/16, fc01::10:106:42:0/104, fc01::10:126:42:0/112, fc01::172:16:0:0/104, fc01::192:168:8:0/104

                        start_action = trap

                        #-----
                        # ESP

                        # DEFAUT : no cipher
                        # selected proposal: ESP:AES_GCM_16_128/NO_EXT_SEQ

                        # ok
                        esp_proposals = aes256-sha256-x25519-ke1_kyber3-ke2_bike3-ke3_hqc3-ke3_none-ke4_hqc5-ke4_none

                        #-----

#                        rekey_time = 5400 # 90min default
                        rekey_time = 180 # 3min
                        rekey_bytes = 500000000
                        rekey_packets = 1000000

                }
        }

        #-----
        # IKE

        version = 2
        dpd_delay = 60s

        # DEFAULT : no cipher config
        # selected proposal: IKE:AES_CBC_128/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/ECP_256

        # ok
        proposals = aes256-sha256-x25519-ke1_kyber3-ke1_frodoa3-ke2_bike3-ke2_hqc3-ke3_hqc3-ke3_none-ke4_hqc5-ke4_none
        # selected proposal: IKE:AES_CBC_256/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/CURVE_25519/KE1_KYBER_L3/KE2_BIKE_L3/KE3_HQC_L3/KE4_HQC_L5

        #-----

}

La configuration sur un client (le fichier /etc/strongswan.conf ne change pas) :

root@pve:/etc/swanctl # vim swanctl.conf
connections {

        include conf.d/fr-ca.conf
}

authorities {
        strongswan {
                cacert = LAB3W_ZW3B-caCert-rsa_3072.pem
#               crl_uris = http://ip6-winnetou.strongswan.org/strongswan.crl
        }
}

pools {

}
secrets {

}

# Include config snippets
include conf.d/*.conf
root@pve:/etc/swanctl # vim conf.d/fr-ca.conf
fr-ca {
        remote_addrs = 158.69.126.137

        local {
                auth = pubkey
                certs = srv.fr.lab3w.com-Cert-falcon1024-sign_ca-rsa_3072.pem
                id = srv.fr.lab3w.com
        }
        remote {
                auth = pubkey
                id = srv.ca.lab3w.com
        }
        children {
                 fr-ca {
#                       mode = transport

                        local_ts  = fec1::1/16, fc01::172:16:0:0/104, fc01::10:106:42:0/104, fc01::10:126:42:0/112, fc01::192:168:8:0/104

                        remote_ts = fec0::1/16, fc00:5300:60:9389::/64, fec2::1/128, fc00:41d0:801:2000::/64, fec3::1/128, fc00:41d0:701:1100::/64

                        #-----
                        start_action = trap

                        #-----
                        # ESP

                        # DEFAUT : no cipher
                        # selected proposal: ESP:AES_GCM_16_128/NO_EXT_SEQ

                        # ok
                        esp_proposals = aes256-sha256-x25519-ke1_kyber3-ke2_bike3-ke3_hqc3-ke3_none-ke4_hqc5-ke4_none
                        # selected proposal: ESP:AES_CBC_256/HMAC_SHA2_256_128/NO_EXT_SEQ
                        #-----

#                        rekey_time = 5400 # 90min default
#                        rekey_bytes = 500000000
#                        rekey_packets = 1000000
                }
        }

        #-----
        # IKE

        version = 2
        dpd_delay = 60s

        # DEFAULT : no cipher config
        # selected proposal: IKE:AES_CBC_128/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/ECP_256

        # ok 
        proposals = aes256-sha256-x25519-ke1_kyber3-ke1_frodoa3-ke2_bike3-ke2_hqc3-ke3_hqc3-ke3_none-ke4_hqc5-ke4_none
        # selected proposal: IKE:AES_CBC_256/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/CURVE_25519/KE1_KYBER_L3/KE2_BIKE_L3/KE3_HQC_L3/KE4_HQC_L5

        #-----

}

VoilĂ  la configuration est prĂȘte.

Ci-dessous la création des certificats SSL :

# Creation de clefs de l'autorité de certificats
pki --gen --type rsa --size 3072 --outform pem > /etc/swanctl/private/LAB3W_ZW3B-caKey-rsa_3072.pem

# Création des certificats de l'autorité  (certificat auto-signé)
pki --self --ca --type rsa --in /etc/swanctl/private/LAB3W_ZW3B-caKey-rsa_3072.pem --lifetime 3652 --dn "C=FR, O=LAB3W, CN=ZW3B Cyber Root CA : rsa_3072" --outform pem > /etc/swanctl/x509ca/LAB3W_ZW3B-caCert-rsa_3072.pem

En passant pour installer votre autorité sur votre machine Windows il faut ce type de fichier (par exemple « LAB3W_ZW3B-caCert-rsa_3072.der ») ;

# Fichier de l'autorité au format Windows (pour pouvoir l'importer)
openssl x509 -in /etc/swanctl/x509ca/LAB3W_ZW3B-caCert-rsa_3072.pem -out /etc/swanctl/x509ca/LAB3W_ZW3B-caCert-rsa_3072.der -outform DER

Serveur CA (srv.ca.lab3w.com) debian 10 (buster) pq-strongswan 6.0

# falcon1024
pki --gen --type falcon1024 --outform pem > /etc/swanctl/private/srv.ca.lab3w.com-Key-falcon1024.pem

pki --req --type priv --in /etc/swanctl/private/srv.ca.lab3w.com-Key-falcon1024.pem \
          --dn "C=FR, O=LAB3W, CN=srv.ca.lab3w.com" \
          --san srv.ca.lab3w.com --outform pem > /etc/swanctl/tmp/srv.ca.lab3w.com-Req.pem

# Signature rsa_3072
pki --issue --cacert /etc/swanctl/x509ca/LAB3W_ZW3B-caCert-rsa_3072.pem --cakey /etc/swanctl/private/LAB3W_ZW3B-caKey-rsa_3072.pem \
            --type pkcs10 --in /etc/swanctl/tmp/srv.ca.lab3w.com-Req.pem --serial 01 --lifetime 1826 \
            --outform pem > /etc/swanctl/x509/srv.ca.lab3w.com-Cert-falcon1024-sign_ca-rsa_3072.pem

Serveur FR (srv.fr.lab3w.com) debian 12 (bookworm) pq-strongswan 6.0

# falcon1024
pki --gen --type falcon1024 --outform pem > /etc/swanctl/private/srv.fr.lab3w.com-Key-falcon1024.pem
pki --req --type priv --in /etc/swanctl/private/srv.fr.lab3w.com-Key-falcon1024.pem \
          --dn "C=FR, O=LAB3W, CN=srv.fr.lab3w.com" \
          --san srv.fr.lab3w.com --outform pem > /etc/swanctl/tmp/srv.fr.lab3w.com-Req.pem

# Signature rsa_3072
pki --issue --cacert /etc/swanctl/x509ca/LAB3W_ZW3B-caCert-rsa_3072.pem --cakey /etc/swanctl/private/LAB3W_ZW3B-caKey-rsa_3072.pem \
            --type pkcs10 --in /etc/swanctl/tmp/srv.fr.lab3w.com-Req.pem --serial 01 --lifetime 1826 \
            --outform pem > /etc/swanctl/x509/srv.fr.lab3w.com-Cert-falcon1024-sign_ca-rsa_3072.pem

Et voilĂ , on peut lancer notre connexion :

root@lab3w:/etc/swanctl # swanctl --initiate --child ca-fr

Pour terminer une connexion :

root@lab3w:/etc/swanctl # swanctl --terminate --ike ca-fr

Avec çà, on a une connexion fonctionnelle « basique » de serveur à serveur VPN utilisant StrongSwan v6 (docs).

StrongSwan permet d’autres types d’authentifications comme l’Extensible Authentication Protocol (EAP) que je n’ai pas testĂ©, pour les rĂ©seaux mobiles, Wi-Fi et filaires pour ajouter une mĂ©thode d’authentification suplĂ©mentaire comme MD5, OTP (One-Time Passwords), Generic Token Card, SIM, etc.) comme par exemple pour les systĂšmes Microsoft et Cisco.

@+

Romain.


Voir un certificat avec la commande PKI :

pki --print --type x509 --in /etc/swanctl/x509/srv.fr.lab3w.com-Cert-falcon1024-sign_ca-rsa_3072.pem

Voir un certificat avec la commande OpenSSL :

openssl x509 -in /etc/swanctl/x509/srv.fr.lab3w.com-Cert-falcon1024-sign_ca-rsa_3072.pem -noout -text -inform pem

Les traceroutes :
C:\Users\ORJ>tracert fc00:41d0:801:2000::1

DĂ©termination de l’itinĂ©raire vers fc00:41d0:801:2000::1 avec un maximum de 30 sauts.

  1    <1 ms    <1 ms    <1 ms  fc01::172:16:0:254
  2    97 ms    97 ms    97 ms  fec0::1
  3   175 ms   175 ms   175 ms  fec2::1
  4   174 ms   175 ms   174 ms  fc00:41d0:801:2000::1

Itinéraire déterminé.
C:\Users\ORJ>tracert fc00:41d0:701:1100::1

DĂ©termination de l’itinĂ©raire vers fc00:41d0:701:1100::1 avec un maximum de 30 sauts.

  1    <1 ms    <1 ms    <1 ms  fc01::172:16:0:254
  2    97 ms    97 ms    96 ms  fec0::1
  3   190 ms   190 ms   190 ms  fec3::1
  4   189 ms   189 ms   189 ms  fc00:41d0:701:1100::1

Itinéraire déterminé.
C:\Users\ORJ>tracert fc00:5300:60:9389:15:1:a:10

DĂ©termination de l’itinĂ©raire vers fc00:5300:60:9389:15:1:a:10 avec un maximum de 30 sauts.

  1    <1 ms    <1 ms    <1 ms  fc01::172:16:0:254
  2    97 ms    96 ms    96 ms  fec0::1
  3    97 ms    96 ms    97 ms  fc00:5300:60:9389:15:1:0:1
  4    97 ms     *       96 ms  fc00:5300:60:9389:15:1:a:10

Itinéraire déterminé.
C:\Users\ORJ>tracert fc00:5300:60:9389:15:2:a:10

DĂ©termination de l’itinĂ©raire vers fc00:5300:60:9389:15:2:a:10 avec un maximum de 30 sauts.

  1    <1 ms    <1 ms    <1 ms  fc01::172:16:0:254
  2    97 ms    96 ms    97 ms  fec0::1
  3    96 ms    97 ms    97 ms  fc00:5300:60:9389:15:2:0:1
  4    96 ms    96 ms    97 ms  fc00:5300:60:9389:15:2:a:10

Itinéraire déterminé.
root@lb2.ww2:~ # traceroute fc01::10:106:42:10 -I
traceroute to fc01::10:106:42:10 (fc01::10:106:42:10), 30 hops max, 80 byte packets
 1  fc00:5300:60:9389:15:2:a:ffff (fc00:5300:60:9389:15:2:a:ffff)  0.052 ms  0.016 ms  0.013 ms
 2  fc00:5300:60:9389:15:2:0:f (fc00:5300:60:9389:15:2:0:f)  0.165 ms  0.143 ms  0.128 ms
 3  fec1::1 (fec1::1)  97.483 ms  97.476 ms  97.536 ms
 4  * * *
 5  fc01::10:106:42:10 (fc01::10:106:42:10)  97.534 ms * *
root@lb2.ww2:~ # traceroute fc00:41d0:801:2000::1
traceroute to fc00:41d0:801:2000::1 (fc00:41d0:801:2000::1), 30 hops max, 80 byte packets
 1  fc00:5300:60:9389:15:2:a:ffff (fc00:5300:60:9389:15:2:a:ffff)  0.616 ms  0.539 ms  0.500 ms
 2  fc00:5300:60:9389:15:2:0:f (fc00:5300:60:9389:15:2:0:f)  0.466 ms  0.428 ms  0.397 ms
 3  fec2::1 (fec2::1)  78.224 ms  78.205 ms  78.166 ms
 4  fc00:41d0:801:2000::1 (fc00:41d0:801:2000::1)  78.156 ms  78.172 ms  78.160 ms
root@lb2.ww2:~ # traceroute fc00:41d0:701:1100::1
traceroute to fc00:41d0:701:1100::1 (fc00:41d0:701:1100::1), 30 hops max, 80 byte packets
 1  fc00:5300:60:9389:15:2:a:ffff (fc00:5300:60:9389:15:2:a:ffff)  0.052 ms  0.017 ms  0.016 ms
 2  fc00:5300:60:9389:15:2:0:f (fc00:5300:60:9389:15:2:0:f)  0.117 ms  0.081 ms  0.070 ms
 3  fec3::1 (fec3::1)  92.857 ms  92.880 ms  92.931 ms
 4  fc00:41d0:701:1100::1 (fc00:41d0:701:1100::1)  92.946 ms  92.985 ms  92.959 ms

Netfilter
Je vous ajoute ces fonctions ip6tables.

IPv6 ULA : Unique Local Address (IPv4 : 10.0.0.0/8, 192.168.0.0/16, 172.16-32.0.0/12)
IPv6 GUA : Global Unique Address (IPv4 publique Internet)

Je vous ajoute ces fonctions que j’ai crĂ©ais pour mon pare-feu Linux - correspondante aux addresses « ULA » et autres.

/!\ ttention, on laisse passer les requĂȘtes locales, on adapte aprĂšs, c’est pour la comprĂ©hension de ce type d’adresse.

Exemple :

#####
# we set the rules for local IPv6 addresses
#####

function ipv6_ula()
{
        echo "   |";
        echo "   + IPv6 - Addrs Unique Locale Area -----------------------";

        # Allow Link-Local addresses
        # network range : fc00:0000:0000:0000:0000:0000:0000:0000-fdff:ffff:ffff:ffff:ffff:ffff:ffff:ffff

        echo "   |\\\\";
        $IP6TABLE -A INPUT -s fc00::/7 -j ACCEPT
        $IP6TABLE -A FORWARD -s fc00::/7 -d fc00::/7 -j ACCEPT
        $IP6TABLE -A OUTPUT -d fc00::/7 -j ACCEPT
        echo "   | +--> "fc00::/7 : ACCEPT;
        echo "   | |";
        echo "   |" + IPv6 - Addrs Unique Locale Area : [OK]

}
function ipv6_multicast()
{
        echo "   |";
        echo "   + IPv6 - Addrs Multicast -----------------------";

        # Allow multicast
        # network range : ff00:0000:0000:0000:0000:0000:0000:0000-ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff

        echo "   |\\\\";
        $IP6TABLE -A INPUT -d ff00::/8 -j ACCEPT
        $IP6TABLE -A FORWARD -s ff00::/8 -d ff00::/8 -j ACCEPT
        $IP6TABLE -A OUTPUT -d ff00::/8 -j ACCEPT
        echo "   | +--> "ff00::/8 : ACCEPT;
        echo "   | |";
        echo "   |" + IPv6 - Addrs Multicast : [OK]
}
function ipv6_link_local()
{
        echo "   |";
        echo "   + IPv6 - Addrs Link-Local Unicast -----------------------";

        # Allow Link-Local addresses
        # network range : fe80:0000:0000:0000:0000:0000:0000:0000-febf:ffff:ffff:ffff:ffff:ffff:ffff:ffff

        echo "   |\\\\";
        $IP6TABLE -A INPUT -s fe80::/10 -j ACCEPT
        $IP6TABLE -A FORWARD -s fe80::/10 -d fe80::/10 -j ACCEPT
        $IP6TABLE -A OUTPUT -d fe80::/10 -j ACCEPT
        echo "   | +--> "fe80::/10 : ACCEPT;
        echo "   | |";
        echo "   | "+ IPv6 - Addrs Link-Local : [OK]

}
#####
# we set the rules for secure local IPv6 addresses (VPN/strongSwan)
#####

function ipv6_strongswan()
{
        # Default ------------------
        echo "   |";
        echo "   + IPv6 - Addrs Site-Local Secure Area Network -------------------------";

        # Allow  Secure Area Network addresses
        # network range : fec0:0000:0000:0000:0000:0000:0000:0000-feff:ffff:ffff:ffff:ffff:ffff:ffff:ffff

        echo "   |\\\\";
        $IP6TABLE -A INPUT -s fec0::/10 -j ACCEPT
        $IP6TABLE -A FORWARD -s fec0::/10 -d fec0::/10 -j ACCEPT
        $IP6TABLE -A OUTPUT -d fec0::/10 -j ACCEPT
        echo "   | +--> "fec0::/10 : ACCEPT;
        echo "   | |";
        echo "   | "+ IPv6 - Addrs Secure Area Network : [OK]

        # Add ------------------

        echo "   |";
        # Allow  Forwarding SLAN (fec0::/10) <> ULA (fc00::/7)
        # network range : fc00:0000:0000:0000:0000:0000:0000:0000-fdff:ffff:ffff:ffff:ffff:ffff:ffff:ffff

        echo "   + IPv6 - Forwarding Addrs SWAN 2 ULA Networks -------------------------";
        echo "   |\\\\";
        $IP6TABLE -A FORWARD -s fec0::/10 -d fc00::/7 -j ACCEPT
        $IP6TABLE -A FORWARD -d fec0::/10 -s fc00::/7 -j ACCEPT
        echo "   | +--> fec0::/10 <?> fc00::/7 : ACCEPT";
        echo "   | |";
        echo "   | "+ IPv6 - Forwarding Addrs SWAN 2 ULA Networks : [OK]
        echo "   |";

}
function nat_v6()
{
        WAN_IF="bridge0"
        CT_WEB="fc01::192:168:10:100/128"

        # NET FOR LXC EXCEPT TO THE ULA (fc00::/7) NETWORK
        $IP6TABLE -t nat -A POSTROUTING -o $WAN_IF -s $CT_WEB ! -d fc00::/7 -j MASQUERADE

        echo "   "+ NAT : [OK]
} 
Preferred lifetime
Je vous ajoute en plus, la préférence de Vie d'une adresse IPv6.

si un « container » (ou une machine du rĂ©seau local) a une adresse IPv6 ULA (avec passerelle ULA) et une GUA, on peut fixer la prĂ©fĂ©rence de vie sur la GUA Ă  0 seconde, comme si elle Ă©tait obsolĂšte. CĂ  permet de pouvoir rentrer sur la GUA (malgrĂ© tou) mais de pourvoir attraper le(s) local(s) en utilisant l’adresse ULA (je n’ai pas trouvĂ© comment-faire dans windows).

  • preferred_lft forever → preferred_lft 0sec – deprecated (obsolĂšte)
$ ip -6 address show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 state UNKNOWN qlen 1000
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0@if5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
    inet6 2a01:cb1d:12:1c00:1ab3:126:42:dc0/112 scope global deprecated
       valid_lft forever preferred_lft 0sec
    inet6 fc01::10:126:42:dc0/112 scope global
       valid_lft forever preferred_lft forever
    inet6 fe80::216:3eff:fef3:56b/64 scope link
       valid_lft forever preferred_lft forever
$ ip -6 address add 2a01:cb1d:12:1c00:1ab3:126:42:dc0/112 dev eth0
$ ip -6 address change 2a01:cb1d:12:1c00:1ab3:126:42:dc0/112 dev eth0 prefer 0
Neighbor proxy
Je vous ajoute cela aussi, les adresses voisines proxy-fiante de l'IPv6 GUA.

Quand on a un bloc GUA IPv6::/64 (par exemple) et plusieurs sous-rĂ©seaux, pour qu’on puisse accĂšder Ă  une adresse GUA (d’un sous rĂ©seau) il faut ajouter l’adresse IPv6 comme Ă©tant une adresse voisine proxifiante.

Par exemple notre serveur principal Ă  2 cartes ethernet – eth0 et eth1 – sur eth0 (2a01:cb1d:12:1c00::1) on a LA connectivitĂ© Internet et sur eth1 on distribue un autre rĂ©seau pour des machines locales. Sur eth1 on a une machine, disons la GUA 2a01:cb1d:12:1c00:beef:0000:0000:0001.

Déjà vérifier que la configuration IPv6 est correcte :

Sur la carte eth0 (-r lire et -w écrire):

sysctl -r net.ipv6.conf.eth0.forwarding = 1
sysctl -r net.ipv6.conf.eth0.accept_ra = 2
sysctl -r net.ipv6.conf.eth0.proxy_ndp = 1

Sur la carte eth1 :

sysctl -r net.ipv6.conf.eth1.forwarding = 1
sysctl -r net.ipv6.conf.eth1.accept_ra = 2
sysctl -r net.ipv6.conf.eth1.proxy_ndp = 1

Donc, sur le routeur il faut dĂ©clarer une machine comme voisine Ă  la carte ayant la connectivitĂ© Internet pour qu’on puisse y accĂšder de l’exterieur (internet).

root@routeur:~ #  ip -6 neighbor show proxy
2a01:cb1d:12:1c00:beef::1 dev eth0 proxy 

Exemple :

root@routeur:~ # ip -6 neighbor delete proxy 2a01:cb1d:12:1c00:beef::1 dev eth0 
root@routeur:~ # ip -6 neighbor show proxy

Test depuis l’extĂ©rieur :

root@machine_externe:~ # ssh -6 2a01:cb1d:12:1c00:beef::1
ssh: connect to host 2a01:cb1d:12:1c00:beef::1 port 22: No route to host

root@routeur:~ # ip -6 neighbor add proxy 2a01:cb1d:12:1c00:beef::1 dev eth0

root@machine_externe:~ # ssh -6 2a01:cb1d:12:1c00:beef::1
root@2a01:cb1d:12:1c00:beef::1’s password: OKKK :smiley:


Ciao. Bonne journée à tous !

Romain.

:cowboy_hat_face:

J’ajoute ce commentaire (qui est liĂ© par la librairie OQS et donc la sĂ©curitĂ© « plus sĂ»re » sur les connexions HTTPS) :

Open Quantum Safe
Logiciel open source pour le prototypage de cryptographie résistante aux attaques quantiques.

Objectif de Test Open Quantum Safe

Ce serveur est une instance NGINX amĂ©liorĂ©e avec prise en charge de la cryptographie quantique sĂ©curisĂ©e (QSC) Ă  l’aide de packages logiciels fournis par le projet Open Quantum Safe (OQS).

Afin de fournir aux clients un moyen de tester l’interopĂ©rabilitĂ© avec ce logiciel amĂ©liorĂ© par QSC et les algorithmes QSC qu’il contient, il dispose de ports distincts pour toutes les combinaisons d’algorithmes d’échange de signatures/clĂ©s QSC prises en charge par la distribution OQS actuelle.

Certificats de Test Open Quantum Safe

Chaque port de test fournit une authentification du serveur TLS Ă  l’aide d’un certificat de serveur gĂ©nĂ©rĂ© Ă  l’aide de l’algorithme de signature QSC rĂ©pertoriĂ©. Tous les certificats de serveur sont signĂ©s par un certificat d’autoritĂ© de certification commun utilisant la cryptographie conventionnelle (RSA).

Bonne continuation.

@+

Bonjour,

Pas mal :slight_smile:
Au passage MD5 est une mĂ©thode d’authentification qu’il ne veut mieux pas utiliser dĂ©sormais autant que possible. C’est un algorithme faible et trĂšs largement dĂ©passĂ© de fait de sa fonction de hachage faible vulnĂ©rable aux attaques par dictionnaire et ne supporte pas les clefs wep dynamiques.
Le meilleur protocole à mon sens c’est le PEAP


.

Oui @Zargos, bonjour.

Au passage, j’explique rapidement, j’ai pour l’instant créé une AC (PKI) en RSA_3072 et des certificats pour mes Linux en Falcon1024 puisque j’ai compilĂ© strongSwan avec « liboqs ». Par contre sur Windows 11 et/ou Android, il faut des certificats SSL/TL conventionnels (ainsi que ; signĂ© par une autoritĂ© avec un algorithme conventionnel) puisque il ne sont pas encore « acceptĂ©s » sur ces OS.

Il faut que je fasse un type de connexion « ikev2-eap-tls » et que j’arrive Ă  me connecter depuis un smartphone.

Une connexion type :

ikev2-eap-tls-asymmetric {
       [...]
        local-1 {
            certs = mycert.pem
            id = myid
        }
        remote-1 {
            auth = eap-tls
            # go ask the client for its eap identity.
            eap_id = %any
        }
       [...]
}

Cf : Usable Examples configurations - strongSwan

J’essaie et je reviens par ici.

Note de Moi-mĂȘme 20241105 :

J’ai créé un certificat pksc12 pour mon smartphone mais çà ne fonctionne pas
 je cherche commen rĂ©ussir Ă  m’authentifier.

charon: 12[CFG] selected peer config 'ikev2-eap-tls-asymmetric'
charon: 12[IKE] loading EAP_TLS method failed
ls -l /usr/lib/ipsec/plugins/libstrongswan-eap-identity.so
ls: impossible d'accéder à '/usr/lib/ipsec/plugins/libstrongswan-eap-identity.so': Aucun fichier ou dossier de ce type

Il faut compiler avec ces options


./configure [...] --enable-eap-identity --enable-eap-mschapv2

OK ! C’est bon, j’ai modifiĂ© le commentaire avec l’installation de strongSwan v6 Post Quantum.

ls -l /usr/lib/ipsec/plugins/libstrongswan-eap-identity.so
-rwxr-xr-x 1 root root 180872 nov.   5 15:16 /usr/lib/ipsec/plugins/libstrongswan-eap-identity.so

J’ai modifiĂ© la conf du fichier /etc/strongswan.conf, et les modules se chargent bien.

00[DMN] Starting IKE charon daemon (strongSwan 6.0.0beta6, Linux 5.4.203-1-pve, x86_64)
00[LIB] loaded plugins: charon random nonce x509 revocation constraints pubkey pkcs1 pkcs7 pgp dnskey sshkey pem openssl pkcs8 xcbc cmac kdf frodo oqs drbg attr kernel-netlink resolve socket-default vici updown eap-identity eap-mschapv2

Pour infos dans Windows (RienÀVoir) :

Windows 11 : AccĂ©der aux Networks : Touches Windows + r → ncpa.cpl
Windows 11 : AccĂ©der au Gestionnaire des certificats : Touches Windows + r → Certmgr.msc

  • Falcon1024 to Falcon1024 → Algorithme de signature : 1.3.9999.3.4 (Falcon1024) - Clef Publique : 1.3.9999.3.4 (0 bits) devrait retourner 14344 bits.
  • Dilitium5 : 1.3.6.1.4.1.2.267.7.8.7
    → certificats-in-windows11.txt

J’ai vu des certificats de plus de 30 000 bits, mais je ne sais plus en quel algorithme et en plus je ne sais pas si cela est important - Parcequ’il y a des certificats de 15360bits mais qui sont en TLS 1.2 alors que d’autres de 3072 bits sont de sĂ©curitĂ© TLS 1.3

Pour informations complémentaires liés aux certificats SSL/TLS conventionnels.

TLS 1.3
  • TLS_AES_256_GCM_SHA384 (0x1302) – ECDH x25519 (eq 3072 bits RSA) FS
  • TLS_AES_128_GCM_SHA256 (0x1301) – ECDH x25519 (eq 3072 bits RSA) FS
  • TLS_CHACHA20_POLY1305_SHA256 (0x1303) – ECDH x25519 (eq 3072 bits RSA) FS
TLS 1.2
  • TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA284 (0xc02c) – ECDH x25519 (eq 3072 bits RSA) FS
  • TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 (0xc02b) – ECDH x25519 (eq 3072 bits RSA) FS
  • TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 (0xcca9) – ECDH x25519 (eq 3072 bits RSA) FS
    –
  • TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA284 (0xc02c) – ECDH secp521r1 (eq 15360 bits RSA) FS
  • TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 (0xc02b) – ECDH secp521r1 (eq 15360 bits RSA) FS
  • TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 (0xcca9) – ECDH secp521r1 (eq 15360 bits RSA) FS

My SSLLabs Reports :

SSL Reports www.zw3b.fr (2607:5300:60:9389::1)

SSL Reports smtp.zw3b.eu (2607:5300:60:9389:17:4c1:0:1a)


@+

Bonne journée à tous.

Romain.

Bonjour, j’essaie donc de me connecter avec mon smartphone (pour l’instant je n’y arrive pas).

Voilà ce que j’ai fais :

Le fichier de configuration « conf.d/ikev2-eap-tls-asymmetric.conf » :

ikev2-eap-tls-asymmetric {
        pools = rw_pool, rw_pool-v6

        send_cert = always

        rekey_time = 0s
        fragmentation = yes
#       dpd_delay = 30s

        local {
                auth = pubkey
#               certs = srv.ca.lab3w.com-Cert-falcon1024-sign_ca-rsa_3072.pem
                certs = srv.ca.lab3w.com-Cert-rsa_3072-sign_ca-rsa_3072.pem
                id = srv.ca.lab3w.com
        }
        remote {
#               auth = eap-dynamic
#               auth = eap-mschapv2
                auth = eap-tls
                eap_id = %any
        }
        children {
                ikev2-eap-tls-asymmetric {
                        local_ts = 0.0.0.0/0,::/0

                        esp_proposals = default

                        rekey_time = 0s
                        dpd_action = clear
                        start_action = none
                        close_action = none
                }
        }
        version = 2

        # IKE
        proposals = default

}

J’ai créé un certificat personnel « pksc12 » pour Windows et/ou Android :

root@lab3w:/etc/swanctl # pki --gen --type rsa --size 3072 --outform pem > private/orj-Key-rsa_3072.pem
root@lab3w:/etc/swanctl # pki --req --type priv --in private/orj-Key-rsa_3072.pem \
          --dn "C=FR, O=LAB3W, CN=orj@lab3w.fr" \
          --san orj@lab3w.fr --san orj@lab3w.com --outform pem > tmp/orj-Req.pem

root@lab3w:/etc/swanctl # pki --issue --cacert x509ca/LAB3W_ZW3B-caCert-rsa_3072.pem --cakey private/LAB3W_ZW3B-caKey-rsa_3072.pem \
            --type pkcs10 --in tmp/orj-Req.pem --serial 01 --lifetime 1826 \
            --outform pem > x509/orj-Cert-rsa_3072-sign_ca-rsa_3072.pem

root@lab3w:/etc/swanctl # openssl pkcs12 -export -inkey private/orj-Key-rsa_3072.pem \
               -in x509/orj-Cert-rsa_3072-sign_ca-rsa_3072.pem -name "O.Romain.Jaillet-ramey" \
               -certfile x509ca/LAB3W_ZW3B-caCert-rsa_3072.pem -caname "ZW3B Cyber Root CA : rsa_3072" \
               -out pkcs12/orj-Cert-rsa_3072-sign_ca-rsa_3072.p12

J’ai rĂ©cupĂ©rĂ© le fichier « orj-Cert-rsa_3072-sign_ca-rsa_3072.p12 » et je l’ai installĂ© sur mon smartphone et j’ai testĂ© la connexion (en passant je l’ai virĂ© du rĂ©pertoire « pksc12/ », ce certificat n’a pas besoin d’ĂȘtre lĂ , mais j’ai une erreur d’authentification.

Je cherche d’oĂč peut venir l’erreur.

J’ai installĂ© l’appli « strongSwan VPN Client » puisque cela ne fonctionnait pas depuis l’interface native de mon smartphone (j’ai les logs clientes avec, c’est mieux), mais çà ne fonctionne pas non plus.

Normalement sans « application cliente » cela doit fonctionner avec les options VPN native de nos appareils.

Quelqu’un connaütrait ce genre d’authentification depuis un smartphone ?

Merci.

Romain.

Salut,

J’ai rĂ©ussis Ă  me connecter depuis mon smartphone depuis « strongSwan VPN CLient for Android »

Connexion type : IKEv2 EAP-MSCHAPv2 (username/Password) → OK Connected

strongSwan VPN Client

Le fichier de configuration :

ikev2-eap-mschapv2 {
        version = 2

        pools = rw_pool, rw_pool-v6

        send_cert = always

        rekey_time = 0s
        fragmentation = yes
        dpd_delay = 30s

        # IKE ciphers
        proposals = default

        local {
                auth = pubkey
#               certs = srv.ca.lab3w.com-Cert-falcon1024-sign_ca-rsa_3072.pem
                certs = srv.ca.lab3w.com-Cert-rsa_3072-sign_ca-rsa_3072.pem
                id = srv.ca.lab3w.com
        }
        remote {
                auth = eap-mschapv2
                eap_id = %any
        }
        children {
                ikev2-eap-mschapv2 {
                        local_ts = 0.0.0.0/0,::/0

                        esp_proposals = default

                        rekey_time = 0s
                        dpd_action = clear
                        start_action = none
                        close_action = none
                }
        }
}

J’essaie d’autres mode de connexion plus sĂ»r (pour l’instant je ne trouve pas AUTH_FAILED)

Je met la configuration par ici (strongSwan-config-EAP-XXX+LOGs-strongswanClientAndroid.txt)
 (par contre je n’ai pas configurer les routes pour sortir - y’a une option dans advanced du client
)

strongSwan VPN Client

J’ai modifiĂ© la commande pour l’installation ./Configure plus haut.

# strongSwan will be built with the following plugins
# -----------------------------------------------------
# libstrongswan: random nonce x509 revocation pubkey pkcs1 pkcs7 pgp dnskey sshkey pem openssl pkcs8 xcbc cmac kdf frodo oqs drbg
# libcharon:     attr kernel-libipsec kernel-netlink resolve socket-default vici updown eap-identity eap-md5 eap-mschapv2 eap-dynamic eap-radius eap-tls eap-ttls eap-peap eap-tnc xauth-eap dhcp certexpire radattr addrblock unity
# libtnccs:      tnc-tnccs
# libtpmtss:
Nov  6 16:57:09 00[DMN] Starting IKE charon daemon (strongSwan 6.0.0beta6, Linux 5.4.203-1-pve, x86_64)
Nov  6 16:57:09 00[CFG] install DNS servers in '/etc/resolv.conf'
Nov  6 16:57:09 00[KNL] unable to create IPv4 routing table rule
Nov  6 16:57:09 00[KNL] unable to create IPv6 routing table rule
Nov  6 16:57:09 00[CFG] loaded 0 RADIUS server configurations
Nov  6 16:57:09 00[LIB] loaded plugins: charon random nonce x509 revocation pubkey pkcs1 pkcs7 pgp dnskey sshkey pem openssl pkcs8 xcbc cmac kdf frodo oqs drbg attr kernel-netlink resolve socket-default vici updown eap-identity eap-md5 eap-mschapv2 eap-dynamic eap-radius eap-tls eap-ttls eap-peap eap-tnc xauth-eap tnc-tnccs dhcp certexpire radattr addrblock unity

Bonne journée.

Salut,

Pour « analyse » de l’adressage IP dans strongSwan :

Adressage « automatique » des clients en IPv4 d’adresses entre « 100 » et « 110 » → OK :

addrs = 172.16.8.100-172.16.8.110

Comment peut-on ajouter en plus un masque (longueur de préfixe) ?

  • IPv4 : Longueur de « /16 » sur le rĂ©seau type de CLASS_B (17.16.0.0/12) (pour n’avoir accĂ©s qu’au rĂ©seau 172.16.XXX.XXX)

Adressage « automatique » des clients en IPv6 d’adresses (256 IP) IPv6::/120 → KO :

addrs = fec0::eeee:1ab3:00ca:fe.ff-fec0::eeee:1ab3:00ca:fe.00

Erreur :wink:

Comment peut-on ajouter en plus un masque (longueur de préfixe) ?

  • IPv6 : Longueur de « /104 » pour faire partit du rĂ©seau fec0::eeee:1ab3:00ca:0000/104

Et aussi, comment-faire pour attribuer plusieurs adresses IP (par exemple, pour les DNS, chaque DNS est espacé par une virgule)

dns = fc00::15:2:a:1000, 2001:4860:4860::8844

Il faudrait que l’on puisse simplement Ă©crire : « sur le bloc /120 dans le rĂ©seau /104 » :

Pour l’IPv6 çà donnerait :

addrs = fec0::eeee:1ab3:00ca:fe.ff-fec0::eeee:1ab3:00ca:fe.00/104

Pour l’IPv4 çà donnerait :

addrs = 172.16.8.100-172.16.8.110/16

Au re-chargement des « pools » :

root@lab3w:/etc/swanctl # swanctl --load-pools
loaded pool 'rw_pool'
loading pool 'rw_pool-v6' failed: invalid addrs value: fec0::eeee:1ab3:00ca:00.ff-fec0::eeee:1ab3:00ca:00.00
loaded pool 'v6-lab3w_home'
loaded pool 'v6_vps-uk'
loaded pool 'v6_vps-de'
loaded 4 of 5 pools, 1 failed to load, 0 unloaded

File →

cat /etc/swanctl/swanctl.conf
pools {

        rw_pool {
                addrs = 172.16.8.100-172.16.8.110
                dns = 10.105.150.1, 8.8.8.8
        }
        rw_pool-v6 {
               addrs = fec0::eeee:1ab3:00ca:00.ff-fec0::eeee:1ab3:00ca:00.00
#                addrs = 2607:5300:0060:9389:0000:1ab3:00ca:0000/104
                dns =   fc00::15:2:a:1000, 2001:4860:4860::8844
        }

        # IP HOME
        v6-lab3w_home {
                addrs = fec1::1/16
        }

        # IP VPS
        v6_vps-uk {
                addrs = fec2::1/128
        }
        v6_vps-de {
                addrs = fec3::1/128
        }
}

@+


Donc j’ai essayĂ© comme dans la doc strongSwan > Virtual IP Addresses en ajoutant un « . » :

or as an IP address range

IPv4 IPv6
connections.<conn>.pools = <name> connections.<conn>.pools = <name>
pools.<name>.addrs = 10.3.0.1-10.3.0.100 pools.<name>.addrs = 2001:db8::3.1-2001:db8::3.100
root@lab3w:/etc/swanctl # swanctl --load-pools
loaded pool 'rw_pool'
loading pool 'rw_pool-v6' failed: invalid addrs value: fec0::eeee:1ab3:00ca:fe.ff-fec0::eeee:1ab3:00ca:fe.00
loaded pool 'v6-lab3w_2home'
loaded pool 'v6_vps-uk'
loaded pool 'v6_vps-de'
loaded 4 of 5 pools, 1 failed to load, 0 unloaded
root@lab3w:/etc/swanctl # swanctl --load-pools
loaded pool 'rw_pool'
loading pool 'rw_pool-v6' failed: invalid addrs value: 2001:db8::3.1-2001:db8::3.100
loaded pool 'v6-lab3w_2home'
loaded pool 'v6_vps-uk'
loaded pool 'v6_vps-de'
loaded 4 of 5 pools, 1 failed to load, 0 unloaded

Adressage IPv6 de connexion « opportuniste » (road warrior) → OK :

        rw_pool-v6 {
#                addrs = fec0::eeee:1ab3:00ca:fe.ff-fec0::eeee:1ab3:00ca:fe.00/104
                addrs = fec0::eeee:1ab3:00ca:fe00/104
                dns =   fc00::15:2:a:1000, 2001:4860:4860::8844
        }
root@lab3w:/etc/swanctl # swanctl --load-pools
loaded pool 'rw_pool'
loaded pool 'rw_pool-v6'
loaded pool 'v6-lab3w_home'
loaded pool 'v6_vps-uk'
loaded pool 'v6_vps-de'
successfully loaded 5 pools, 0 unloaded

Me configure sur le client EAP pour la premiĂšre machine l’adresse « fec0::eeee:1ab3:00ca:fe00/128 » — ca:fe00/128 ?

CF : remote 172.16.8.100/32 fec0::eeee:1ab3:ca:fe00/128

root@lab3w:/etc/swanctl # swanctl --list-sas
ikev2-eap-mschapv2: #25, ESTABLISHED, IKEv2, 262cf867d255bd4f_i 9728f8d9aa142ac3_r*
  local  'srv.ca.lab3w.com' @ 158.69.126.137[4500]
  remote 'orj@lab3w.fr' @ 37.174.70.100[43308] [172.16.8.100 fec0::eeee:1ab3:ca:feff]
  AES_CBC-128/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/ECP_256
  established 721s ago
  ikev2-eap-mschapv2: #171, reqid 5, INSTALLED, TUNNEL-in-UDP, ESP:AES_GCM_16-256
    installed 721s ago
    in  c66fbbea, 388011 bytes,  1567 packets,     0s ago
    out 33cdadf1, 323124 bytes,   598 packets,     0s ago
    local  0.0.0.0/0 ::/0
    remote 172.16.8.100/32 fec0::eeee:1ab3:ca:fe00/128

J’ai créé un sujet sur les discussions strongSwan dans GitHub : IPv6 address range (road warrior pools configuration) · strongswan/strongswan · 

Romain

Salut,

J’ai mon VPN IPv4/v6 version PostQuantum strongSwan connectĂ© Ă  mes serveurs depuis mon smartphone, ordinateur portable depuis n’importe quel endroit sur Terre :wink:

:wink:

Bonne journée.


À titre d’information, en natif depuis Android , avec les mĂȘmes paramĂštres je n’arrive pas Ă  me connecter Ă  mon VPN Type de connexion : IKEv2 MSCHAPv2.

  • Versison Android 12 (mise Ă  jour : 5 juillet 2024)
  • Version Color OS : V12.1
  • Appareil : OPPO A53s - ModĂšle CPH2135
  • Version noyeau : 4.1.19.152-perf+

Discuss GitHub : In the native VPN option from Android, i cannot connect to my VPN ? · strongswan/strongswan · Discussion #2528 · GitHub

En natif (option VPN du smartphone) → KO (IP field servername) :

Nov  8 15:12:26 12[NET] <65> received packet: from 78.242.194.44[1620] to 158.69.126.137[500] (1072 bytes)
Nov  8 15:12:26 12[ENC] <65> parsed IKE_SA_INIT request 0 [ SA KE No N(NATD_S_IP) N(NATD_D_IP) N(FRAG_SUP) N(HASH_ALG) ]
Nov  8 15:12:26 12[IKE] <65> 78.242.194.44 is initiating an IKE_SA
Nov  8 15:12:26 12[CFG] <65> selected proposal: IKE:AES_CTR_256/HMAC_SHA2_512_256/PRF_HMAC_SHA1/MODP_4096
Nov  8 15:12:26 12[IKE] <65> remote host is behind NAT
Nov  8 15:12:26 12[IKE] <65> sending cert request for "C=FR, O=LAB3W, CN=ZW3B Cyber Root CA : rsa_3072"
Nov  8 15:12:26 12[ENC] <65> generating IKE_SA_INIT response 0 [ SA KE No N(NATD_S_IP) N(NATD_D_IP) CERTREQ N(FRAG_SUP) N(HASH_ALG) N(CHDLESS_SUP) N(MULT_AUTH) V ]
Nov  8 15:12:26 12[NET] <65> sending packet: from 158.69.126.137[500] to 78.242.194.44[1620] (773 bytes)
Nov  8 15:12:27 14[NET] <65> received packet: from 78.242.194.44[1621] to 158.69.126.137[4500] (488 bytes)
Nov  8 15:12:27 14[ENC] <65> parsed IKE_AUTH request 1 [ IDi IDr SA TSi TSr CPRQ(ADDR ADDR6 DNS DNS6 MASK VER) ]
Nov  8 15:12:27 14[CFG] <65> looking for peer configs matching 158.69.126.137[158.69.126.137]...78.242.194.44[orj@lab3w.fr]
Nov  8 15:12:27 14[CFG] <65> no matching peer config found
Nov  8 15:12:27 14[ENC] <65> generating IKE_AUTH response 1 [ N(AUTH_FAILED) ]
Nov  8 15:12:27 14[NET] <65> sending packet: from 158.69.126.137[4500] to 78.242.194.44[1621] (81 bytes)

En natif (option VPN du smartphone) → KO (FQDN field servername) :

Nov  8 15:54:18 07[NET] <70> received packet: from 78.242.194.44[1747] to 158.69.126.137[500] (1072 bytes)
Nov  8 15:54:18 07[ENC] <70> parsed IKE_SA_INIT request 0 [ SA KE No N(NATD_S_IP) N(NATD_D_IP) N(FRAG_SUP) N(HASH_ALG) ]
Nov  8 15:54:18 07[IKE] <70> 78.242.194.44 is initiating an IKE_SA
Nov  8 15:54:18 07[CFG] <70> selected proposal: IKE:AES_CTR_256/HMAC_SHA2_512_256/PRF_HMAC_SHA1/MODP_4096
Nov  8 15:54:18 07[IKE] <70> remote host is behind NAT
Nov  8 15:54:18 07[IKE] <70> sending cert request for "C=FR, O=LAB3W, CN=ZW3B Cyber Root CA : rsa_3072"
Nov  8 15:54:18 07[ENC] <70> generating IKE_SA_INIT response 0 [ SA KE No N(NATD_S_IP) N(NATD_D_IP) CERTREQ N(FRAG_SUP) N(HASH_ALG) N(CHDLESS_SUP) N(MULT_AUTH) V ]
Nov  8 15:54:18 07[NET] <70> sending packet: from 158.69.126.137[500] to 78.242.194.44[1747] (773 bytes)
Nov  8 15:54:18 05[NET] <70> received packet: from 78.242.194.44[1748] to 158.69.126.137[4500] (504 bytes)
Nov  8 15:54:18 05[ENC] <70> parsed IKE_AUTH request 1 [ IDi IDr SA TSi TSr CPRQ(ADDR ADDR6 DNS DNS6 MASK VER) ]
Nov  8 15:54:18 05[CFG] <70> looking for peer configs matching 158.69.126.137[srv.ca.lab3w.com]...78.242.194.44[orj@lab3w.fr]
Nov  8 15:54:18 05[CFG] <ikev2-eap|70> selected peer config 'ikev2-eap'
Nov  8 15:54:18 05[IKE] <ikev2-eap|70> peer requested EAP, config unacceptable
Nov  8 15:54:18 05[CFG] <ikev2-eap|70> switching to peer config 'ikev2-eap-mschapv2'
Nov  8 15:54:18 05[IKE] <ikev2-eap-mschapv2|70> initiating EAP_IDENTITY method (id 0x00)
Nov  8 15:54:18 05[IKE] <ikev2-eap-mschapv2|70> authentication of 'srv.ca.lab3w.com' (myself) with RSA_EMSA_PSS_SHA2_256_SALT_32 successful
Nov  8 15:54:18 05[IKE] <ikev2-eap-mschapv2|70> sending end entity cert "C=FR, O=LAB3W, CN=srv.ca.lab3w.com"
Nov  8 15:54:18 05[ENC] <ikev2-eap-mschapv2|70> generating IKE_AUTH response 1 [ IDr CERT AUTH EAP/REQ/ID ]
Nov  8 15:54:18 05[ENC] <ikev2-eap-mschapv2|70> splitting IKE message (1759 bytes) into 2 fragments
Nov  8 15:54:18 05[ENC] <ikev2-eap-mschapv2|70> generating IKE_AUTH response 1 [ EF(1/2) ]
Nov  8 15:54:18 05[ENC] <ikev2-eap-mschapv2|70> generating IKE_AUTH response 1 [ EF(2/2) ]
Nov  8 15:54:18 05[NET] <ikev2-eap-mschapv2|70> sending packet: from 158.69.126.137[4500] to 78.242.194.44[1748] (1448 bytes)

Avec « strongSwan VPN client for Android » → OK :

Nov  8 15:17:30 13[NET] <67> received packet: from 78.242.194.44[1710] to 158.69.126.137[500] (948 bytes)
Nov  8 15:17:30 13[ENC] <67> parsed IKE_SA_INIT request 0 [ SA KE No N(NATD_S_IP) N(NATD_D_IP) N(FRAG_SUP) N(HASH_ALG) N(REDIR_SUP) ]
Nov  8 15:17:30 13[IKE] <67> 78.242.194.44 is initiating an IKE_SA
Nov  8 15:17:30 13[CFG] <67> selected proposal: IKE:AES_CBC_128/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/ECP_256
Nov  8 15:17:30 13[IKE] <67> remote host is behind NAT
Nov  8 15:17:30 13[IKE] <67> sending cert request for "C=FR, O=LAB3W, CN=ZW3B Cyber Root CA : rsa_3072"
Nov  8 15:17:30 13[ENC] <67> generating IKE_SA_INIT response 0 [ SA KE No N(NATD_S_IP) N(NATD_D_IP) CERTREQ N(FRAG_SUP) N(HASH_ALG) N(CHDLESS_SUP) N(MULT_AUTH) V ]
Nov  8 15:17:30 13[NET] <67> sending packet: from 158.69.126.137[500] to 78.242.194.44[1710] (325 bytes)
Nov  8 15:17:31 01[NET] <67> received packet: from 78.242.194.44[1713] to 158.69.126.137[4500] (480 bytes)
Nov  8 15:17:31 01[ENC] <67> parsed IKE_AUTH request 1 [ IDi N(INIT_CONTACT) CERTREQ IDr CPRQ(ADDR ADDR6 DNS DNS6) SA TSi TSr N(MOBIKE_SUP) N(NO_ADD_ADDR) N(MULT_AUTH) N(EAP_ONLY) N(MSG_ID_SYN_SUP) ]
Nov  8 15:17:31 01[IKE] <67> received cert request for "C=FR, O=LAB3W, CN=ZW3B Cyber Root CA : rsa_3072"
Nov  8 15:17:31 01[CFG] <67> looking for peer configs matching 158.69.126.137[srv.ca.lab3w.com]...78.242.194.44[orj@lab3w.fr]
Nov  8 15:17:31 01[CFG] <ikev2-eap|67> selected peer config 'ikev2-eap'
Nov  8 15:17:31 01[IKE] <ikev2-eap|67> peer requested EAP, config unacceptable
Nov  8 15:17:31 01[CFG] <ikev2-eap|67> switching to peer config 'ikev2-eap-mschapv2'
Nov  8 15:17:31 01[IKE] <ikev2-eap-mschapv2|67> initiating EAP_IDENTITY method (id 0x00)
Nov  8 15:17:31 01[IKE] <ikev2-eap-mschapv2|67> peer supports MOBIKE
Nov  8 15:17:31 01[IKE] <ikev2-eap-mschapv2|67> authentication of 'srv.ca.lab3w.com' (myself) with RSA_EMSA_PSS_SHA2_256_SALT_32 successful
Nov  8 15:17:31 01[IKE] <ikev2-eap-mschapv2|67> sending end entity cert "C=FR, O=LAB3W, CN=srv.ca.lab3w.com"
Nov  8 15:17:31 01[ENC] <ikev2-eap-mschapv2|67> generating IKE_AUTH response 1 [ IDr CERT AUTH EAP/REQ/ID ]
Nov  8 15:17:31 01[ENC] <ikev2-eap-mschapv2|67> splitting IKE message (1760 bytes) into 2 fragments
Nov  8 15:17:31 01[ENC] <ikev2-eap-mschapv2|67> generating IKE_AUTH response 1 [ EF(1/2) ]
Nov  8 15:17:31 01[ENC] <ikev2-eap-mschapv2|67> generating IKE_AUTH response 1 [ EF(2/2) ]
Nov  8 15:17:31 01[NET] <ikev2-eap-mschapv2|67> sending packet: from 158.69.126.137[4500] to 78.242.194.44[1713] (1444 bytes)
Nov  8 15:17:31 01[NET] <ikev2-eap-mschapv2|67> sending packet: from 158.69.126.137[4500] to 78.242.194.44[1713] (388 bytes)
Nov  8 15:17:31 07[NET] <ikev2-eap-mschapv2|67> received packet: from 78.242.194.44[1713] to 158.69.126.137[4500] (96 bytes)
Nov  8 15:17:31 07[ENC] <ikev2-eap-mschapv2|67> parsed IKE_AUTH request 2 [ EAP/RES/ID ]
Nov  8 15:17:31 07[IKE] <ikev2-eap-mschapv2|67> received EAP identity 'orj@lab3w.fr'
Nov  8 15:17:31 07[IKE] <ikev2-eap-mschapv2|67> initiating EAP_MSCHAPV2 method (id 0x28)
Nov  8 15:17:31 07[ENC] <ikev2-eap-mschapv2|67> generating IKE_AUTH response 2 [ EAP/REQ/MSCHAPV2 ]
Nov  8 15:17:31 07[NET] <ikev2-eap-mschapv2|67> sending packet: from 158.69.126.137[4500] to 78.242.194.44[1713] (112 bytes)
Nov  8 15:17:31 12[NET] <ikev2-eap-mschapv2|67> received packet: from 78.242.194.44[1713] to 158.69.126.137[4500] (144 bytes)
Nov  8 15:17:31 12[ENC] <ikev2-eap-mschapv2|67> parsed IKE_AUTH request 3 [ EAP/RES/MSCHAPV2 ]
Nov  8 15:17:31 12[ENC] <ikev2-eap-mschapv2|67> generating IKE_AUTH response 3 [ EAP/REQ/MSCHAPV2 ]
Nov  8 15:17:31 12[NET] <ikev2-eap-mschapv2|67> sending packet: from 158.69.126.137[4500] to 78.242.194.44[1713] (144 bytes)
Nov  8 15:17:31 10[NET] <ikev2-eap-mschapv2|67> received packet: from 78.242.194.44[1713] to 158.69.126.137[4500] (80 bytes)
Nov  8 15:17:31 10[ENC] <ikev2-eap-mschapv2|67> parsed IKE_AUTH request 4 [ EAP/RES/MSCHAPV2 ]
Nov  8 15:17:31 10[IKE] <ikev2-eap-mschapv2|67> EAP method EAP_MSCHAPV2 succeeded, MSK established
Nov  8 15:17:31 10[ENC] <ikev2-eap-mschapv2|67> generating IKE_AUTH response 4 [ EAP/SUCC ]
Nov  8 15:17:31 10[NET] <ikev2-eap-mschapv2|67> sending packet: from 158.69.126.137[4500] to 78.242.194.44[1713] (80 bytes)
Nov  8 15:17:31 14[NET] <ikev2-eap-mschapv2|67> received packet: from 78.242.194.44[1713] to 158.69.126.137[4500] (112 bytes)
Nov  8 15:17:31 14[ENC] <ikev2-eap-mschapv2|67> parsed IKE_AUTH request 5 [ AUTH ]
Nov  8 15:17:31 14[IKE] <ikev2-eap-mschapv2|67> authentication of 'orj@lab3w.fr' with EAP successful
Nov  8 15:17:31 14[IKE] <ikev2-eap-mschapv2|67> authentication of 'srv.ca.lab3w.com' (myself) with EAP
Nov  8 15:17:31 14[IKE] <ikev2-eap-mschapv2|67> peer requested virtual IP %any
Nov  8 15:17:31 14[CFG] <ikev2-eap-mschapv2|67> reassigning offline lease to 'orj@lab3w.fr'
Nov  8 15:17:31 14[IKE] <ikev2-eap-mschapv2|67> assigning virtual IP 172.16.8.100 to peer 'orj@lab3w.fr'
Nov  8 15:17:31 14[IKE] <ikev2-eap-mschapv2|67> peer requested virtual IP %any6
Nov  8 15:17:31 14[CFG] <ikev2-eap-mschapv2|67> reassigning offline lease to 'orj@lab3w.fr'
Nov  8 15:17:31 14[IKE] <ikev2-eap-mschapv2|67> assigning virtual IP fec0::eeee:1ab3:ca:feff to peer 'orj@lab3w.fr'
Nov  8 15:17:31 14[IKE] <ikev2-eap-mschapv2|67> IKE_SA ikev2-eap-mschapv2[67] established between 158.69.126.137[srv.ca.lab3w.com]...78.242.194.44[orj@lab3w.fr]
Nov  8 15:17:31 14[CFG] <ikev2-eap-mschapv2|67> selected proposal: ESP:AES_GCM_16_256/NO_EXT_SEQ
Nov  8 15:17:31 14[IKE] <ikev2-eap-mschapv2|67> CHILD_SA ikev2-eap-mschapv2{1677} established with SPIs c1900ab9_i 8f10373c_o and TS 0.0.0.0/0 ::/0 === 172.16.8.100/32 fec0::eeee:1ab3:ca:feff/128
Nov  8 15:17:31 14[ENC] <ikev2-eap-mschapv2|67> generating IKE_AUTH response 5 [ AUTH CPRP(ADDR ADDR6 DNS DNS DNS6 DNS6) SA TSi TSr N(MOBIKE_SUP) N(ADD_4_ADDR) N(ADD_6_ADDR) N(ADD_6_ADDR) N(ADD_6_ADDR) N(ADD_6_ADDR) N(ADD_6_ADDR) N(ADD_6_ADDR) N(ADD_6_ADDR) ]
Nov  8 15:17:31 14[NET] <ikev2-eap-mschapv2|67> sending packet: from 158.69.126.137[4500] to 78.242.194.44[1713] (560 bytes)

Bizarre le traceroute vers le dns.google (j’arrive en VPN au Canada, j’ai sort par la passerelle de mon serveur, puis les 2 adresses sont « taguĂ©es française » puis je retourne au Canada, puis j’arrive aux USA) :

La configuration vu depuis mon smartphone :

Le software « Network Analyzer » :

Si l’on vĂ©rifiĂ© l’adresse IP 2001:41d0:0:50::2:15c dans la Routing Assets Database (le successeur de whois), on voit que c’est une IP appartenant Ă  OVH.

Je pense donc que c’est une IP utilisĂ©e par OVH sur leur rĂ©seau au Canada et que l’information affichĂ©e par ton appli sur smartphone n’est pas bonne.

Avec le systĂšme du genre Traffic Manager, l’adresse IP correspondant au nom de domaine (ici dns.google.com) dĂ©pend de l’emplacement gĂ©ographique de ton serveur DNS.
En utilisant un serveur DNS situé au Canada, tu récupÚres une IP au Canada ou aux US.

–
AnonymousCoward

RienÀVoir :
root@lab3w:/etc/swanctl # scan6 -L -i vmbr0 -e --print-type all
fe80::3e26:e4ff:fe2a:b91b @ 3c:26:e4:2a:b9:1b
fe80::3e26:e4ff:fe31:7f63 @ 3c:26:e4:31:7f:63
2607:5300:60:93ff:ff:ff:ff:fe @ 3c:26:e4:2a:b9:1b
2607:5300:60:93ff:ff:ff:ff:fd @ 3c:26:e4:31:7f:63
root@lab3w:/etc/swanctl # ip -6 neighbor show dev vmbr0 | grep router
fe80::3e26:e4ff:fe31:7f63 lladdr 3c:26:e4:31:7f:63 router STALE
2607:5300:60:93ff:ff:ff:ff:fe lladdr 3c:26:e4:2a:b9:1b router REACHABLE
fe80::3e26:e4ff:fe2a:b91b lladdr 3c:26:e4:2a:b9:1b router STALE
2607:5300:60:93ff:ff:ff:ff:fd lladdr 3c:26:e4:31:7f:63 router STALE

oui, tenez le VMS (Visual Monitoring System) - Realtime status of OVHcloud datacenters : http://vms.status-ovhcloud.com/ ; j’aime bien cette page d’accueil :wink:

Je crois que c’est nouveau, (mes anciens traceroute6 n’affichaient pas çà – avec le mĂȘme soft) ^^
Serais-ce parce que je suis client FRançais qui loue un serveur OVH au CAnada, donc ils auraient peut-ĂȘtre fait une routine comme celle-ci, je ne sais pas trop.

Bonjour et bonne année 2025 à toutes et à tous !

Pour infos (les connexions ULA IPv6 inter-sites fonctionnent trĂšs bien) :

Mes « frontaux » Web Apache qui pointent vers 3 serveurs en « backend » plus 1 en standby.

Frontends :
    FR (Valdeblore) : srv.fr.lab3w.com,
    CA (Montreal) : srv.ca.lab3w.com,
    DE (Frankfurt) : vps.de.ipv10.net,
    UK (London) : vps.uk.ipv10.net.

Backends : 2 in CA and 1+1 in FR.

Serveurs #ZW3B #LAB3W :wink:

Serveurs chez OVHcloud_CA OVHcloud_DE OVHcloud_UK Orange_FR :grin:

J’ai fais un papier sur mon portfolio 2025 - Serveurs ZW3B | LAB3W | IPv10 : Frontaux Web dans plusieurs pays.

Les impressions d’écrans des frontaux Apache Web Balancers manager : Index of /pub/screens/apache

Exemple d’applications (web) :

Romain (LAB3W.ORJ) - O.Romain.Jaillet-ramey - Fondateur ZW3B.FR|TV|EU|NET|COM|BLOG


Je vous ajoute les liens VPN StrongSwan v6 en utilisant la librairie « Open Quantum Safe (OQS) project » qui vise à soutenir la transition vers une cryptographie résistante aux attaques quantiques.

Il y a 3 liens IPSec en permanence connectés au serveur du Canada : ca-de | ca-uk | ca-fr :cowboy_hat_face:

IKEv2 : KE1_KYBER_L3/KE2_BIKE_L3/KE3_HQC_L3/KE4_HQC_L5
ESP : KE1_KYBER_L3/KE2_BIKE_L3/KE3_HQC_L3/KE4_HQC_L5
05:22:26 root@srv.ca.lab3w.com:~ # swanctl --list-sas
ca-de: #1113, ESTABLISHED, IKEv2, de4990cf64c5baaf_i d1e1464e53d87cbf_r*
  local  'srv.ca.lab3w.com' @ 158.69.126.137[4500]
  remote 'vps.de.ipv10.net' @ 135.125.133.51[4500] [fec3::1]
  AES_CBC-256/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/CURVE_25519/KE1_KYBER_L3/KE2_BIKE_L3/KE3_HQC_L3/KE4_HQC_L5
  established 1806s ago, rekeying in 11808s
  ca-de: #27888, reqid 2, INSTALLED, TUNNEL, ESP:AES_CBC-256/HMAC_SHA2_256_128/CURVE_25519/KE1_KYBER_L3/KE2_BIKE_L3/KE3_HQC_L3
    installed 43s ago, rekeying in 128s, expires in 156s
    in  c5176f07,  82141 bytes,  1003 packets,     0s ago
    out c378207d, 150822 bytes,   618 packets,     0s ago
    local  fc00:41d0:801:2000::/64 fc00:5300:60:9389::/64 fc01::10:106:0:0/104 fc01::10:126:42:0/112 fc01::172:16:0:0/104 fc01::192:168:0:0/104 fec0::/16 fec1::/16 fec2::1/128
    remote fc00:41d0:701:1100::/64 fec3::1/128
ca-fr: #1111, ESTABLISHED, IKEv2, 723fe3944efc30e2_i* 27263be64c91817c_r
  local  'srv.ca.lab3w.com' @ 158.69.126.137[4500]
  remote 'srv.fr.lab3w.com' @ 90.5.102.244[4500]
  AES_CBC-256/HMAC_SHA2_384_192/PRF_HMAC_SHA2_384/CURVE_448/KE4_HQC_L5
  established 9780s ago, rekeying in 4067s
  ca-fr: #27885, reqid 1, INSTALLED, TUNNEL-in-UDP, ESP:AES_CBC-256/HMAC_SHA2_256_128/CURVE_25519/KE1_KYBER_L3/KE2_BIKE_L3/KE3_HQC_L3/KE4_HQC_L5
    installed 465s ago, rekeying in 4435s, expires in 5475s
    in  c0d8ecbb, 2272106 bytes, 12243 packets,     0s ago
    out c60b4300, 1403489 bytes, 14380 packets,     0s ago
    local  fc00:41d0:701:1100::/64 fc00:41d0:801:2000::/64 fc00:5300:60:9389::/64 fec0::/16 fec2::1/128 fec3::1/128
    remote fc01::10:106:0:0/104 fc01::10:126:42:0/112 fc01::172:16:0:0/104 fc01::192:168:0:0/104 fec1::/16
ca-uk: #1089, ESTABLISHED, IKEv2, e65b5f0cba6f311b_i 8a4dfc7162b7c490_r*
  local  'srv.ca.lab3w.com' @ 158.69.126.137[4500]
  remote 'vps.uk.ipv10.net' @ 57.128.171.43[4500] [fec2::1]
  AES_CBC-256/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/CURVE_25519/KE1_KYBER_L3/KE2_BIKE_L3/KE3_HQC_L3/KE4_HQC_L5
  established 73418s ago
  ca-uk: #27872, reqid 4, INSTALLED, TUNNEL, ESP:AES_CBC-256/HMAC_SHA2_256_128/CURVE_25519/KE1_KYBER_L3/KE2_BIKE_L3/KE3_HQC_L3
    installed 2426s ago
    in  c9c739ed, 5017104 bytes, 57764 packets,     0s ago
    out c7b8b75b, 11242106 bytes, 36951 packets,     0s ago
    local  fc00:41d0:701:1100::/64 fc00:5300:60:9389::/64 fc01::10:106:0:0/104 fc01::10:126:42:0/112 fc01::172:16:0:0/104 fc01::192:168:0:0/104 fec0::/16 fec1::/16
    remote fc00:41d0:801:2000::/64 fec2::1/128
05:22:31 root@srv.ca.lab3w.com:~ #

Ça fonctionne fort ce « Strong Secure Wide Area Network » :sunglasses:


root@srv.fr.lab3w.com:~ # host www.zw3b.fr
www.zw3b.fr has address 90.5.102.244
www.zw3b.fr has address 158.69.126.137
www.zw3b.fr has address 57.128.171.43
www.zw3b.fr has address 135.125.133.51
www.zw3b.fr has IPv6 address 2607:5300:60:9389::1
www.zw3b.fr has IPv6 address 2001:41d0:801:2000::44f9
www.zw3b.fr has IPv6 address 2001:41d0:701:1100::6530
www.zw3b.fr has IPv6 address 2a01:cb1d:5:af00::1

En passant j’attends toujours la gestion du Reverse DNS / IPv6 chez Orange ; et IPv4 !

Note de Moi-mĂȘme : En fait : je n’ai pas essayĂ© de crĂ©er un serveur DNS Bind9 chez moi (Orange_FR) et de configurer mes zones reverse IPv6 aprĂšs avoir dĂ©lĂ©guer (depuis la livebox) et d’essayer si çà rĂ©pond (NXDOMAIN Found my domain name pointer) de l’extĂ©rieur. Qui sait !?!

Server FR → srv.fr.lab3w.com chez Orange_FR :

root@srv.fr.lab3w.com:~ # host 2a01:cb1d:5:af00::1
Host 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.f.a.5.0.0.0.d.1.b.c.1.0.a.2.ip6.arpa not found: 3(NXDOMAIN)
root@srv.fr.lab3w.com:~ # host 90.5.102.244
244.102.5.90.in-addr.arpa domain name pointer apoitiers-657-1-83-244.w90-5.abo.wanadoo.fr.

Server CA → srv.ca.lab3w.com chez OVHcloud_CA :

root@srv.fr.lab3w.com:~ # host 2607:5300:60:9389::1
1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.9.8.3.9.0.6.0.0.0.0.3.5.7.0.6.2.ip6.arpa domain name pointer srv.ca.lab3w.com.
root@srv.fr.lab3w.com:~ # host 158.69.126.137
137.126.69.158.in-addr.arpa domain name pointer mail.zw3b.eu.

Server DE → vps.de.ipv10.net chez OVHcloud_DE :

root@srv.fr.lab3w.com:~ # host 2001:41d0:701:1100::6530
0.3.5.6.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.1.1.0.7.0.0.d.1.4.1.0.0.2.ip6.arpa domain name pointer vps.de.ipv10.net.
root@srv.fr.lab3w.com:~ # host 135.125.133.51
51.133.125.135.in-addr.arpa domain name pointer vps.de.ipv10.net.

Server UK → vps.uk.ipv10.net chez OVHcloud_UK :

root@srv.fr.lab3w.com:~ # host 2001:41d0:801:2000::44f9
9.f.4.4.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.1.0.8.0.0.d.1.4.1.0.0.2.ip6.arpa domain name pointer vps.uk.ipv10.net.
root@srv.fr.lab3w.com:~ # host 57.128.171.43
43.171.128.57.in-addr.arpa domain name pointer vps.uk.ipv10.net.

Je n’habite pas Poitiers ; j’habite à 68 kilomùtres de Nice dans les Alpes-Maritimes.

:laughing:

J’ajoute un Quantum-Safe Benchmark :

On LinkedIn : Andrey Volkov on LinkedIn: #wolfssl #liboqs #platformio #pqc

Capture d'écran 2025-01-19 123711 - Quantum-Safe Benchmark

:wink:

C’est du linkedIn donc quasiment aussi fiable que facebook. Et le gars est clairement en train de se vendre au passage.
Perso j’attends de voir de vrais Ă©volutions. La capacitĂ© d’avoir de vrai ordinateurs quantiques en 2030 a sĂ©rieusement pris du plomb dans l’aile. Mais il suffit d’arriver Ă  le faire croire.

Ça me fait penser aux communications relatives au bug de l’an 2000: 90% d’arnaque.

Je ne pense pas « exactement » comme toi.

Dans LinkedIn j’ai 1 ou 2 milliardaires comme « amis » et une petite dizaine de millionnaire ! Il faut se le dire, ce sont nos patrons, de nous les IngĂ© :wink: Il me manque Xavier Niel PDG de Illiad.fr comme milliardaire Français, il ne m’a jamais rĂ©pondu Ă  mes demandes d’embauche :innocent:

Nombre de salariés iliad FR | Orange FR | Devoteam FR
  • Nombre de salariĂ©s iliad FR : aujourd’hui, ce sont plus de 18 200 collaborateurs qui exercent une grande variĂ©tĂ© de mĂ©tiers.
  • Nombre de salariĂ©s Orange FR : 128 000 salariĂ©s au 30 juin 2024, dont 72 000 en France .
  • Nombre de salariĂ©s Devoteam FR : Devoteam France compte 4300 collaborateurs passionnĂ©s.

Y’en a qui ont plus de frais que d’autres :wink:

Crois-tu qu’il assure/assume comme « IngĂ©nieur SystĂšmes EmbarquĂ©s - MOIA » au travail, sur de tel sujet ?

Dans LinkedIn je connais et/ou rencontré toutes les personnes personnellement.

Dans FaceBook c’est autre chose !

Ce n’est pas Instagram, mais c’est vrai il se vend, il est peut-ĂȘtre commercial en fait
 il mentirai crois-tu ? Lui c’est vrai je ne le connais pas (encore). Il faudrait que je lui demande comment a-t’il fait ce benchmark, avec quel outils, commandes et quel matĂ©riel ? C’est Ă©crit non !? Il faudrait que je parle Allemand ou Anglais couramment ; ou que je demande Ă  quelqu’un qu’il lui parle et qu’il me le dise :wink: Peut-ĂȘtre qu’il parle français
 Crois-tu que cela serait Ă©crit, que ce serait le bon endroit, site web LinkedIn pour avoir cette info ?

Je rigole un peu @Zargos, c’est la fin d’une longue journĂ©e, semaine pour moi, je taquine un peu :slightly_smiling_face:

Et dans Debian-FR, tu me prend au sĂ©rieux, j’espĂšre.

:sweat_smile:

Allez, dansons, merci « Farley Jackmaster Funk Boiler Room Detroit DJ Set »


Hors Sujet : DĂ©solĂ© mais avec vos conneries, vos voix dans la tĂ©lĂ©communication :face_with_raised_eyebrow: j’ai ouvert ce sujet sur FaceBook, tu me crois j’espĂšre @Zargos si je te dis que j’ai trouvĂ© un Bug : FB O-Romain Jaillet-ramey - Post pfbid02[
]ayafStl :rofl:

Celui-ci :
Capture d'écran 2025-01-19 163018 Certificat Error pour devoteam.fr in FF Chrome Edge - FbId.png
Avec un certif valide :
Screenshot 2025-01-19 at 16-30-42 Certificat pour devoteam.fr - OK.png

Heureusement qu’on est dimanche, c’est l’hiver en :fr: France !

@ZargOS comme « systĂšme d’exploitation doré » de : Zarg (bijou) et d’OS (de l’Operating System) :heart_eyes: Langue ouzbek :wink: Moi c’est Kss*OSS :wink: de l’Operating System Solar carrĂ©ment :wink: En OR ce @Zargos ! Sinon y’a un GlandOS (un ancien glandeur de l’Operating System) :face_with_raised_eyebrow: sur Linuxfr.org :smiley:

Kiss ALL !

Bon dimanche et bonne année à tous.

C’est pareil, LinkedIn c’est du vent d’un bout Ă  l’autre depuis quelques annĂ©es, c’est de l’instagram professionnel d’une part et du facebook d’autre part, avec les mĂȘme biais sociaux et cognitifs, en pire mĂȘme car il y rĂšgne une hypocrisie massive.

j’ai arrĂȘtĂ© de collectionner les emballage de vache qui rit depuis mes 8 ans :wink:

Non probablement pas, encore que. Mais ce qui est sur c’est qu’il arrange la vĂ©ritĂ©.
Un benchmark sans en connaĂźtre le protocole, ça ne vaut absolument rien. Pour travailler avec des audits ou en faire rĂ©guliĂšrement, c’est la base mĂȘme.

il y a un biais dans la gestion des certificats.
DĂ©sormais les clients de messagerie considĂšrent que les certificats non signĂ©s par des certifications institutionnelles ne peuvent ĂȘtre valables.
En clair si tu créé ton propre certificat, mĂȘme en respectant un certain nombre de points de sĂ©curitĂ©, il ne sera pas considĂ©rĂ© comme valide par ton navigateur.
J’utilise un certificat racine personnel. Mes systùmes se reconnaissent. Mais pas mon navigateur non, quoique je lui dise de faire.
Personnellement je trouve ça anormal.
Mais c’est aussi un problĂšme; car si quelqu’un venait Ă  t’installer un tel certificat Ă  ton insu tu te retrouverais piĂ©gĂ©. Il y a sĂ»rement un moyen de faire le nĂ©cessaire sans trop de difficultĂ©. Mais les opĂ©rateurs institutionnels n’y ont aucun intĂ©rĂȘt. D’autant que l’incident du certificat Google il y a quelques annĂ©es a bien prouvĂ© qu’un certificat institutionnel pouvait ĂȘtre compromis.
Et surtout les Etats-Unis, qui considùrent qu’ils doivent pouvoir entrer dans tous les systùmes, sans respecter les lois quand ça leur chante.

C’est juste la variable « fbclid » qui donne l’erreur ou plutĂŽt la redirection FB. C’est un peu con :tired_face:
Avec d’autres variables çà https://www.devoteam.fr (lien FB) redirige vers https://france.devoteam.com normalement.
Dans Google Chrome et Microsoft Edge, mĂȘme erreur que dans Firefox.
Sur leur « .com (lien FB) » pas de probleme avec le fbId ou autre variable, çà ne bloque pas.

Salut,

J’ai ouvert ce sujet de discussion I’m trying to retrieve the correct NMAP responses through strongSwan from « site » to « site ». · strongswan/strongswan · Discussion #2669 · GitHub.


Post Scriptum : J’ai mis (mis Ă  jour) ma configuration « 6 » des fichiers strongSwan ici :slightly_smiling_face: si cela peut aider les gens Ă  configurer leurs rĂ©seaux.

Thious !

Romain - Fondateur ZW3B.FR | TV | EU | NET | COM | BLOG et plus.

Salut, je vous écris un tutoriel par ici avec strongSwan v6.0 officiel.

How to configure #strongSwan v6 using the modern Versatile IKE Control Interface (VICI) and the #swanctl command-line tool in an #IPsec network, with #pki and #openssl tools for #NIST compliant Post-Quantum Cryptography #PQC.

Page translate : https://howto-zw3b-fr.translate.goog/linux/securite/strongswan-v6-0-x-for-swanctl-in-ipsec-by-ike-vici?_x_tr_sl=fr&_x_tr_tl=en&_x_tr_hl=auto

#CyberSecurity #LAB3W #ZW3B

Page in French : strongSwan v6.0.x for SWANCTL in IPsec by IKE VICI * Sécurité * OS GNU/Linux * ¿Comment? 'Ou' ¿Que faire?

Bonne journée.


Et j’ai ouvert un sujet sur les discussions du GitHub de strongSwan : :key: How to configure strongSwan v6 Post-Quantum Cryptography NIST compliant #2731

Romain.

Bonsoir, bonjour.

Je vous ajoute ces 2 liens des configurations de mon routeur et de mon serveur :

HTOP-SRV-FR-and-GATE-20250418

J’ai modifiĂ© la Network map, d’un commentaire prĂ©cĂ©dent ; et j’ai changĂ© de bloc d’adresses IPv6 GUA.

Si cela peut aider.


À FAIRE : Installation d’un Active Directory (actuellement, il s’agit uniquement du service Samba) - Introduction : IntĂ©gration d’AD sur Ubuntu Server.

Je dois (rĂ©)installer un Active Directory (PDC et BDC) pour vĂ©rifier que les requĂȘtes des voisins du rĂ©seau local fonctionnent et transitent par les rĂ©seaux intersites ; qu’elles sont dirigĂ©es au bon endroit en fonction de la longueur du prĂ©fixe IPv6 et distribuĂ©es aux rĂ©seaux appropriĂ©s.

:wink:

Salut,

En ajoutant une couche de IDN Internalized Domain Name que j’ai partagĂ© dans une discussion du GitHub strongSwan.

Une petite configuration Reverse IPv6 que je me suis créais sur mes DNS.

C’est assez propre, je pense.

By Pass

www.collective.work
Trouvez des freelances sur Collective
Trouvez, contactez et recrutez les meilleurs freelances pour réaliser votre projet, grùce à la meilleure expérience de recherche : la MegaSearch.

Romain.