Saya memiliki instance AWS yang saya ingin menjadi server VPN. Ini akan menghubungkan klien Windows 7 ke jaringan pribadi di cloud Amazon.
- Saya telah menginstal Ubuntu 12.04 dan
strongswan-ikev2
paketnya. ipsec version
laporanLinux strongSwan U4.5.2/K3.2.0-52-virtual
- Perhatikan bahwa klien dan server berada di belakang NAT (klien karena berada di jaringan kantor lokal, dan server karena berada di cloud Amazon). Saya telah membuka port UDP 500 dan 4500 di dashboard Amazon dan firewall klien.
Ini adalah /etc/ipsec.conf:
config setup plutostart=no conn %default keyexchange=ikev2 ike=aes256-sha1-modp1024! esp=aes256-sha1! dpdaction=clear dpddelay=300s rekey=no conn win7vpn left=%any leftsubnet=<amazon VPC CIDR block> leftauth=pubkey leftcert=openssl-cert.pem leftid=<vpn server public dns name> right=%any rightsourceip=<amazon private IP address, which elastic ip is forwarded to> rightauth=eap-mschapv2 rightsendcert=never eap_identity=%any auto=add
Ini adalah /etc/ipsec.secrets:
: RSA openssl-key.rsa TESTDOMAIN\testuser : EAP "testpassword"
Saya telah menambahkan sertifikat CA yang menandatangani sertifikat host server ke toko sertifikat mesin lokal (bukan pengguna) sehingga Windows dapat mengautentikasi server.
Saya kemudian mencoba untuk terhubung ke server menggunakan klien Windows 7 seperti yang ditentukan di sini , dengan satu pengecualian - Saya menggunakan nama DNS daripada alamat IP. Saya memasukkan nama pengguna, domain, dan kata sandi dalam file rahasia ipsec.sec saya, dan mencoba untuk terhubung.
Ketika itu terjadi, saya mendapatkan log StrongSwan yang terlihat seperti ini. Saya membuat ini sedikit untuk sensor dan kejelasan; CLIENTPUB / CLIENTPRIV adalah alamat IP publik dan pribadi klien dan AMAZONPRIV adalah alamat IP pribadi server (yang merupakan IP publik server - Amazon menyebutnya sebagai "IP Elastis" - meneruskan ke).
Sep 4 00:16:17 localhost charon: 14[IKE] CLIENTPUB is initiating an IKE_SA
Sep 4 00:16:17 localhost charon: 14[NET] received packet: from CLIENTPUB[500] to AMAZONPRIV[500]
Sep 4 00:16:17 localhost charon: 14[ENC] parsed IKE_SA_INIT request 0 [ SA KE No N(NATD_S_IP) N(NATD_D_IP) ]
Sep 4 00:16:17 localhost charon: 14[IKE] CLIENTPUB is initiating an IKE_SA
Sep 4 00:16:17 localhost charon: 14[IKE] local host is behind NAT, sending keep alives
Sep 4 00:16:17 localhost charon: 14[IKE] remote host is behind NAT
Sep 4 00:16:17 localhost charon: 14[ENC] generating IKE_SA_INIT response 0 [ SA KE No N(NATD_S_IP) N(NATD_D_IP) N(MULT_AUTH) ]
Sep 4 00:16:17 localhost charon: 14[NET] sending packet: from AMAZONPRIV[500] to CLIENTPUB[500]
Sep 4 00:16:17 localhost charon: 15[NET] received packet: from CLIENTPUB[4500] to AMAZONPRIV[4500]
Sep 4 00:16:17 localhost charon: 15[ENC] unknown attribute type INTERNAL_IP4_SERVER
Sep 4 00:16:17 localhost charon: 15[ENC] parsed IKE_AUTH request 1 [ IDi CERTREQ N(MOBIKE_SUP) CP(ADDR DNS NBNS SRV) SA TSi TSr ]
Sep 4 00:16:17 localhost charon: 15[IKE] received cert request for "C=US, ST=TX, O=Test CA, CN=Test CA"
Sep 4 00:16:17 localhost charon: 15[IKE] received 316 cert requests for an unknown ca
Sep 4 00:16:17 localhost charon: 15[CFG] looking for peer configs matching AMAZONPRIV[%any]...CLIENTPUB[CLIENTPRIV]
Sep 4 00:16:17 localhost charon: 15[CFG] selected peer config 'dlpvpn'
Sep 4 00:16:17 localhost charon: 15[IKE] initiating EAP-Identity request
Sep 4 00:16:17 localhost charon: 15[IKE] peer supports MOBIKE
Sep 4 00:16:17 localhost charon: 15[IKE] authentication of 'C=US, ST=TX, O=DLP Test CA, CN=vpn.example.com' (myself) with RSA signature successful
Sep 4 00:16:17 localhost charon: 15[IKE] sending end entity cert "C=US, ST=TX, O=DLP Test CA, CN=vpn.example.com"
Sep 4 00:16:17 localhost charon: 15[ENC] generating IKE_AUTH response 1 [ IDr CERT AUTH EAP/REQ/ID ]
Sep 4 00:16:17 localhost charon: 15[NET] sending packet: from AMAZONPRIV[4500] to CLIENTPUB[4500]
Pada titik ini, Windows segera memunculkan pesan kesalahan:
Verifying user name and password...
Error 13801: IKE authentication credentials are unacceptable
Setelah beberapa detik, charon mencoba lagi dan kemudian menutup koneksi.
Sep 4 00:16:37 localhost charon: 16[IKE] sending keep alive
Sep 4 00:16:37 localhost charon: 16[NET] sending packet: from AMAZONPRIV[4500] to CLIENTPUB[4500]
Sep 4 00:16:47 localhost charon: 03[JOB] deleting half open IKE_SA after timeout
Dan itu saja.
Sejauh yang saya tahu, saya mengikuti semua instruksi pada wiki StrongSwan.
Apa yang saya lakukan salah di sini?
Sunting: ini jelas merupakan masalah dengan sertifikat. Saya menonaktifkan pemeriksaan validasi diperpanjang dengan mengedit registri dan me-reboot seperti yang dijelaskan dalam MSKB926182 (lol jika Anda menginginkan tautan ke sana) dan sekarang saya dapat terhubung ke server VPN saya tanpa kesalahan. Saya akan mencari cara untuk menghasilkan sertifikat yang memenuhi persyaratan dan menambahkan jawaban. Terima kasih kepada @ecdsa untuk penunjuk ke halaman cert pada wiki strongSwan yang membuat saya menunjuk ke arah yang benar.
sumber
Jawaban:
Menemukan ini. @ecdsa menunjuk saya ke arah yang benar, dan saya akhirnya bisa menyelesaikan masalah dengan mengikuti panduan ini .
Tentang kesalahan
Pesan kesalahan adalah "Kesalahan 13801: kredensial otentikasi IKE tidak dapat diterima", yang terdengar seperti kredensial pengguna saya tidak berfungsi. Namun, ini adalah pesan tentang otentikasi server , yang dilakukan (sesuai konfigurasi saya) oleh sertifikat SSL server. Microsoft telah menerbitkan dokumentasi tentang Pemecahan Masalah Koneksi VPN IKEv2 yang mencantumkan kemungkinan penyebab kesalahan ini:
Dalam kasus saya, masalah saya berkaitan dengan nilai-nilai EKU. Mengikuti panduan yang saya tautkan di atas, saya dapat menghasilkan sertifikat dengan nilai EKU yang benar, dan itu berfungsi dengan baik.
Untuk memecahkan masalah ini, Anda dapat menonaktifkan pemeriksaan EKU pada klien Windows Anda (tentu saja, ini hanya dapat dilakukan untuk pengujian):
regedit
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\RasMan\Parameters
DisableIKENameEkuCheck
, dan atur nilainya menjadi1
sumber
ipsec pki --isue ... --san @ipaddress
Saya memiliki masalah yang sama dan menyelesaikannya dengan memastikan saya memiliki rantai sertifikat di file sertifikat (sertifikat entitas akhir, CA perantara, root CA - dalam urutan itu). TLS itu menyenangkan.
Setelah restart strongSwan, ini berhenti bekerja, tetapi mulai bekerja lagi ketika saya menjatuhkan menengah dan akar CA ke dalam
/etc/ipsec.d/cacerts
.sumber
Setelah pencarian yang panjang, utas ini membuat konfigurasi Windows Phone 10 (WP10) saya berfungsi dengan IKEv2! Satu hal yang perlu disebutkan mungkin adalah Anda harus ./configurasikan Strongswan Anda dengan --enable-eap-identity --enable-eap-mschapv2 --enable-openssl (dan mungkin --enable-dhcp) untuk memiliki plugin yang diperlukan. Dan ya, Anda perlu mendapatkan sertifikat dengan benar (di sisi server - klien hanya perlu mengetahui CA root dari server).
sumber