RSA 인증을 사용한 IPSec 연결 계산

RSA 인증을 사용한 IPSec 연결 계산

Apple iOS에는 "주문형 VPN" 기능이 있습니다. 이 기능을 사용하면 장치가 특정 도메인이나 인터넷에 연결을 시도할 때마다 VPN 연결이 이루어집니다. iOS는 인증서 기반 인증을 통해서만 "주문형 VPN"을 지원합니다.

내 사무실 VPN 서버의 iOS 사용자에게 "주문형 VPN"을 제공하기 위해 다음 IPSec 솔루션을 사용하고 있습니다.

  • Ubuntu 14.04 - VPN 서버 OS.
  • StrongSwan 5.1.2 - IKE 데몬.
  • 각 피어에 대해 개별 개인 키를 생성하고 일치하는 인증서를 발급합니다. 클라이언트(iOS IKEv1)는 RSA 및 Xauth를 사용하여 인증합니다.
  • iPhone 및 iPad는 Xauth(소위 Cisco IPSec) 없이 IPSec를 사용할 수 없습니다. 그리고 "주문형 VPN"은 비밀번호 입력이 필요한 VPN 프로필을 사용할 수 없지만 일반적으로 Xauth에서는 사용자 이름/비밀번호가 필요합니다. 이 문제를 처리하기 위해 우리는 모든 사용자 이름과 비밀번호를 허용하는 가짜 Xauth 인증자인 xauth-noauth를 사용하고 있습니다. 이 경우 클라이언트 인증서만 사용하여 인증합니다.

이 솔루션은 우리에게 잘 작동합니다. 그러나 새로운 요구 사항이 생겼습니다. 하나의 사용자 데이터베이스로 여러 VPN 서버를 설정하고 VPN 사용량을 계산하는 것입니다.

이는 이 작업에서 RADIUS를 사용하는 일반적인 관행이며 StrongSwan에는 이를 위한 플러그인이 있습니다. 그러나 IKEv1/Xauth를 사용하는 StrongSwan은 백엔드 RADIUS 서버에서 사용자를 인증하기 위해 사용자 이름/비밀번호를 사용합니다. 사용자 이름/비밀번호가 내 솔루션에서 사용되지 않습니다.

내 질문:

  1. Xauth가 사용자 이름/비밀번호를 사용하지 않는 경우 Radius 계정을 어떻게 사용합니까?
  2. RSA 인증 확인을 RADIUS 서버에 위임할 수 있나요?

PS 대부분의 iOS 클라이언트는 IKEv2를 지원하는 iOS 8을 사용합니다. IKEv2에는 EAP-TLS가 있습니다. EAP-TLS를 사용하여 RSA 인증 확인을 RADIUS 서버에 위임할 수 있습니까? 아니면 EAP-TLS를 잘못된 방향으로 파고 있는 걸까요?

PSPS 두 번째로 StrongSwan의 VICI 인터페이스에 관한 것이었습니다. 각각의 새로운 IPSec 연결에 대한 알림을 받아야 하는데 VICI가 다른 방식으로 작동하는 것 같습니다.

답변1

RADIUS 회계eap 반경플러그인에는 XAuth 인증이 필요하지 않습니다. 클라이언트가 가상 IP 주소를 요청하는 한 실제로 RADIUS를 통하든 그렇지 않든 모든 종류의 인증에서 작동합니다(IKEv2의 경우 이 요구 사항도 비활성화할 수 있음). 일부 IKEv1 클라이언트의 경우 재인증 시 몇 가지 문제가 있습니다(문제 참조).#937및 관련).

EAP-TLS를 사용하면 IKEv2 클라이언트에 대한 인증서 인증을 AAA 서버에 위임할 수 있지만 이는 RADIUS 계정과 관련이 없습니다.

답변2

ecdsa 덕분에 내 문제에 대한 몇 가지 해결책을 찾았습니다.

  1. RADIUS 인증 없이 RADIUS 계정을 사용합니다.

eap-radius 플러그인이 옵션으로 활성화된 경우회계=네, StrongSwan은 ipsec.conf 파일에서 eap-radius가 사용되지 않는 경우에도 계정을 시작하기 위해 RADIUS 메시지를 보냅니다. 제 경우에는 이 RADIUS 메시지는 다음과 같습니다.

Acct-Status-Type = Start
Acct-Session-Id = 1434531934-1
NAS-Port-Type = Virtual
Service-Type = Framed-User
NAS-Port = 1
NAS-Port-Id = ios-ikev1-fakexauth
NAS-IP-Address = <nas_ip>
Called-Station-Id = <nas_ip>[4500]
Calling-Station-Id = <client_ip>[4500]
User-Name = "C=CH, O=strongSwan, [email protected]"
Framed-IP-Address = 172.20.1.1
NAS-Identifier = strongSwan

메시지에서 인증서 CN을 얻을 수 있으며 적절한 계산을 수행하는 것으로 충분합니다. 일부 CN에 대한 액세스를 거부하려면 stronSwan의 RADIUS 메시지를 거부하면 ipsec 연결이 중단됩니다.

  1. 계정 및 액세스 확인을 다음에서 수행하십시오.위아래RADIUS를 사용하는 대신 스크립트를 사용하세요.

또한 인증서 해지 목록에 액세스하기 위해 StrongSwan 컬 플러그인을 사용하고 싶습니다. 하지만 이 플러그인에 대한 문서가 부족하다는 것을 발견했습니다. 뭔가 빠졌나요?

관련 정보