VPN 서버가되고 싶은 AWS 인스턴스가 있습니다. Windows 7 클라이언트를 Amazon 클라우드의 개인 네트워크에 연결합니다.
- Ubuntu 12.04와
strongswan-ikev2
패키지를 설치했습니다 . ipsec version
보고서Linux strongSwan U4.5.2/K3.2.0-52-virtual
- 클라이언트와 서버는 모두 NAT 뒤에 있습니다 (클라이언트는 로컬 오피스 네트워크에 있기 때문에 클라이언트와 Amazon 클라우드에 있으므로 서버). Amazon 대시 보드와 클라이언트 방화벽 모두에서 UDP 포트 500 및 4500의 차단을 해제했습니다.
이것은 /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
이것은 /etc/ipsec.secrets입니다.
: RSA openssl-key.rsa TESTDOMAIN\testuser : EAP "testpassword"
Windows가 서버를 인증 할 수 있도록 서버의 호스트 인증서에 서명 한 CA 인증서를 사용자가 아닌 로컬 컴퓨터 인증서 저장소에 추가했습니다.
그런 다음 여기 에 규정 된대로 Windows 7 클라이언트를 사용하여 서버에 연결하려고 합니다. 단, IP 주소 대신 DNS 이름을 사용하고 있습니다. ipsec.secrets 파일에 사용자 이름, 도메인 및 비밀번호를 입력하고 연결을 시도합니다.
그렇게되면 다음과 같은 strongSwan 로그가 나타납니다. 나는 검열과 명료 함을 위해 이것들을 조금 녹였다. CLIENTPUB / CLIENTPRIV는 클라이언트의 퍼블릭 및 프라이빗 IP 주소이고 AMAZONPRIV는 서버의 프라이빗 IP 주소입니다 (이것은 서버의 퍼블릭 IP-Amazon은이를 "Elastic IP"라고 부릅니다).
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]
이 시점에서 Windows는 즉시 오류 메시지를 표시합니다.
Verifying user name and password...
Error 13801: IKE authentication credentials are unacceptable
몇 초 후 charon은 다시 시도한 다음 연결을 닫습니다.
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
그리고 그게 다야.
내가 알 수있는 한, strongSwan 위키의 모든 지시 사항 을 따르고 있습니다.
내가 여기서 뭘 잘못하고 있니?
편집 : 이것은 인증서의 문제입니다. MSKB926182에 설명 된대로 레지스트리를 편집하고 다시 부팅하여 확장 유효성 검사를 비활성화했습니다 (링크를 원하면 LOL). 이제 오류없이 VPN 서버에 연결할 수 있습니다. 요구 사항을 충족하는 인증서를 생성하고 답변을 추가하는 방법을 알아 보겠습니다. 올바른 방향을 알려주는 strongSwan 위키의 인증서 페이지에 대한 포인터에 대한 @ecdsa에게 감사합니다.