
Logré conectar dos subredes de AWS en diferentes zonas a través de strongSwan VPN usando ike2 con cifrado aes256. Por lo tanto, se crea la clave de CA maestra, el certificado de CA autofirmado, así como las claves públicas y privadas para ambas puertas de enlace. Después de eso, creé certificados para roadwarrior y los exporté al cliente win10 en formato p12.
La conexión entre esas dos LAN funciona, pero no puedo conectar el cliente roadwarrior.
Importé los certificados a win10 y normalmente están visibles en el administrador de certificaciones.
Luego creé la configuración de VPN usando el cliente VPN de Windows10, y cuando lo ejecuté recibí el mensaje de Windows:
No se pudo encontrar un certificado que pueda usarse con este protocolo de autenticación extensible.
El check in certmagr
todo está en el lugar.
El método de autenticación utilizado es EAP-tls y funciona sin problemas en el modelo LAN a LAN.
La configuración de la propiedad de seguridad de Win10 VPN es:
Type of the VPN: IKE2 , Data Encryption: Require encryption (disconnect if server declines) Authentication: Use Extensible Authentication Protocol -> Microsoft smart card or other certificates (encryption enabled) -> Properties ---> Use certificate on this computer ---> Verify the server's identity by validating the certificate ---> Trusted Root Certificate authority ----> Both certificates CA and the client p12 certificate are visible and checked
Aquí estáel ipsec.confarchivo
config setup
charondebug="cfg 2, dmn 2, ike 2,net 2"
uniqueids=yes
strictcrlpolicy=no
conn %default
fragmentation=force
forceencaps=yes
rekeymargin=3m
mobike=no
keyingtries=%forever
ike=aes256-sha256-modp2048,aes256-sha2_256-modp1024!
esp=aes256-sh256,aes256-sha2_256!
ikelifetime=1h
lifetime=8h
dpddelay=30
dpdtimeout=120
dpdaction=restart
authby=pubkey
leftcert=vpn-west-public-certificate.pem
leftsendcert=always
keyexchange=ikev2
type=tunnel
leftca="C=DE, O=Orgname, CN=Orgname Root CA"
leftid=13.57.xx.yy
left=10.0.0.208
leftsubnet=10.0.0.0/16
conn roadw
right=%any
rightid=%any
rightauth=eap-tls
rightsourceip=10.0.0.64/28
rightsendcert=never
rightdns=8.8.8.8
eap_identity=%identity
auto=add
Aquí está elIPsec.secretosarchivo
13.57.xx.yy : RSA "/etc/ipsec.d/private/vpn-west-private-key.pem"
username : EAP "passphrase"
La raíz de CA está instalada en el cliente, así como el nombre de usuario.p12. Sospecho que hay algunos ajustes en Linux y Windows de ambos lados.
Además, descubrí que Windows requiere que el nombre de host o la dirección IP aparezcan como parte de ipsec pki - argumentos del emisor en un formulario --san dns:13.57.xx.yy durante la creación del certificado de servidor público, así como del cliente (Windows) El certificado de usuario debe tener CN=$USER" --san $USER. Agregué ambos parámetros pero aún así no hay cambios en el comportamiento.
¿Necesito agregar extKeyUsage? El OID tiene que ser 1.3.6.1.5.5.7.3.2, ya que agregarlo no cambió nada.
Alguna idea de por dónde empezar, parece que Windows10 ni siquiera está iniciando la sesión, por lo tanto me parece que algo anda mal con la configuración del cliente VPN en Win10, además algunos parámetros también deberían modificarse en el lado de strongSwan.
Aquí están los comandos de configuración de certificados para la CA, el servidor y el cliente.
Clave maestra raíz
ipsec pki --gen --type rsa --size 4096 --outform > root-key-for-ca=signing.pem
Certificado de CA raíz
ipsec pki --self --ca --lifetime 3650 --in root-key-for-ca=signing.pem --type rsa --dn "C=DE, O=Orgname Root CA" --outform pem > signed-root-ca-certificate.pem
Clave privada del cliente
ipsec pki --gen --type rsa --size 2048 --outform pem > win10-client1-key.pem
Certificado público de cliente
ipsec pki --pub --in win10-client1-key.pem --type rsa | ipsec pki --issue --lifetime 730 --cacert signed-root-ca-certificate.pem --cakey root-key-for-ca-signing.pem --dn "C=DE, O=Orgname, CN=win10-client1" --san "win10-client1" --flag serverAuth --flag clientAuth --flag ikeIntermediate --outform pem > vpn-win10-client1-public-certificate.pem
Formato portátil P12 para la transferencia de claves privadas personales del cliente.
openssl pkcs12 -export -inkey win10-client1-key.pem -in vpn-win10-client1-public-certificate.pem -name "win10-client1 VPN certificate" -certfile signed-root-ca-certificate.pem -cname "Orgname Root CA" -out win10-client1.p12
Clave de servidor privado
ipsec pki --gen --type rsa --size 2048 --outform pem > vpn-west=private-key.pem
Certificado de servidor público
ipsec pki --pub --in vpn-west-private-key.pem --type rsa | ipsec pki --issue --lifetime 730 --cacert signed-root-ca-certificate.pem --cakey root-key-for-ca-signing.pem --dn "C=DE, O=Orgname, CN=13.57.xx.yy" --san 13.57.xx.yy --san dns:13.57.xx.yy --flag serverAuth --flag ikeIntermediate --outform pem > vpn-west-public-certificate.pem