다음을 통해 공유


P2S 인증서 인증 IKEv2 연결을 위한 StrongSwan VPN 구성 - Linux

이 문서는 StrongSwan을 사용하는 Ubuntu Linux 클라이언트에서 VPN Gateway P2S(지점 및 사이트 간) VPN 및 인증서 인증을 사용하여 Azure VNet(가상 네트워크)에 연결하는 데 도움이 됩니다.

시작하기 전에

시작하기 전에 올바른 문서에 있는지 확인합니다. 다음 표에서는 Azure VPN Gateway P2S VPN 클라이언트에 사용할 수 있는 구성 문서를 보여 줍니다. 인증 유형, 터널 유형 및 클라이언트 OS에 따라 단계가 다릅니다.

인증 터널 종류 클라이언트 OS VPN 클라이언트
인증서
IKEv2, SSTP Windows 네이티브 VPN 클라이언트
IKEv2 macOS 네이티브 VPN 클라이언트
IKEv2 Linux strongSwan
OpenVPN Windows Azure VPN 클라이언트
OpenVPN 클라이언트
OpenVPN macOS OpenVPN 클라이언트
OpenVPN iOS OpenVPN 클라이언트
OpenVPN Linux Azure VPN Client
OpenVPN 클라이언트
Microsoft Entra ID
OpenVPN Windows Azure VPN 클라이언트
OpenVPN macOS Azure VPN Client
OpenVPN Linux Azure VPN Client

필수 조건

이 문서에서는 이미 다음 필수 구성 요소를 수행했다고 가정합니다.

연결 요구 사항

StrongSwan 클라이언트 및 IKEv2 터널 형식을 통한 인증서 인증을 사용하여 Azure에 연결하려면 각 연결 클라이언트에 다음 항목이 필요합니다.

  • 각 클라이언트는 StrongSwan을 사용하도록 구성되어야 합니다.
  • 클라이언트에는 로컬에 올바른 인증서가 설치되어 있어야 합니다.

워크플로

이 문서의 워크플로는 다음과 같습니다.

  1. strongSwan을 설치합니다.
  2. 생성한 VPN 클라이언트 프로필 구성 패키지에 포함된 VPN 클라이언트 프로필 구성 파일을 봅니다.
  3. 필요한 클라이언트 인증서를 찾습니다.
  4. StrongSwan을 구성합니다.
  5. Azure에 연결

인증서 정보

인증서 인증의 경우 클라이언트 인증서를 각 클라이언트 컴퓨터에 설치해야 합니다. 사용하려는 클라이언트 인증서는 프라이빗 키를 사용하여 내보내야 하며 인증 경로에 있는 모든 인증서를 포함해야 합니다. 또한 일부 구성의 경우 루트 인증서 정보도 설치해야 합니다.

Linux용 인증서에 대한 자세한 내용은 다음 문서를 참조하세요.

strongSwan 설치

명령을 지정할 때 다음 구성을 사용했습니다.

  • 컴퓨터: Ubuntu Server 18.04
  • 종속성: strongSwan

다음 명령을 사용하여 필요한 strongSwan 구성을 설치합니다.

sudo apt-get update
sudo apt-get upgrade
sudo apt install strongswan
sudo apt install strongswan-pki
sudo apt install libstrongswan-extra-plugins
sudo apt install libtss2-tcti-tabrmd0

VPN 클라이언트 프로필 구성 파일 보기

VPN 클라이언트 프로필 구성 패키지를 생성하면 VPN 클라이언트에 필요한 모든 구성 설정이 VPN 클라이언트 프로필 구성 Zip 파일에 포함됩니다. VPN 클라이언트 프로필 구성 파일은 가상 네트워크에 대한 P2S VPN Gateway 구성과 관련됩니다. 파일을 생성한 후 VPN 프로토콜 유형 또는 인증 유형 변경과 같이 P2S VPN 구성을 변경한 경우 새 VPN 클라이언트 프로필 구성 파일을 생성하고 연결하려는 모든 VPN 클라이언트에 새 구성을 적용해야 합니다.

생성하고 다운로드한 VPN 클라이언트 프로필 구성 패키지를 찾아 압축을 풉니다. 일반 폴더에서 구성에 필요한 모든 정보를 찾을 수 있습니다. Azure는 이 구성에 대한 mobileconfig 파일을 제공하지 않습니다.

일반 폴더가 표시되지 않으면 다음 항목을 확인한 다음 zip 파일을 다시 생성합니다.

  • 구성에 대한 터널 유형을 확인합니다. IKEv2가 터널 유형으로 선택되지 않았을 수 있습니다.
  • VPN 게이트웨이에서 SKU가 기본이 아닌지 확인합니다. VPN 게이트웨이 기본 SKU는 IKEv2를 지원하지 않습니다. 그런 다음, IKEv2를 선택하고 zip 파일을 다시 생성하여 일반 폴더를 검색합니다.

Generic 폴더에 포함되는 파일은 다음과 같습니다.

  • VpnSettings.xml - 서버 주소 및 터널 종류와 같은 중요한 설정이 포함되어 있습니다.
  • VpnServerRoot.cer - P2S 연결 설정에서 Azure VPN 게이트웨이의 유효성을 검사하는 데 필요한 루트 인증서가 포함되어 있습니다.

VPN 클라이언트 구성

VPN 클라이언트 프로필 파일을 본 후 사용하려는 단계를 계속 진행합니다.

GUI 단계

이 섹션에서는 strongSwan GUI를 사용하여 구성을 안내합니다. 다음 지침은 Ubuntu 18.0.4. 기준으로 작성되었습니다. Ubuntu 16.0.10은 strongSwan GUI를 지원하지 않습니다. Ubuntu 16.0.10을 사용하려는 경우 명령줄을 사용해야 합니다. 다음 예제는 Linux 및 strongSwan 버전에 따라 표시되는 화면과 일치하지 않을 수 있습니다.

  1. 이 예의 명령을 실행하여 터미널을 열고 strongSwan과 네트워크 관리자를 설치합니다.

    sudo apt install network-manager-strongswan
    
  2. 설정을 선택한 후 네트워크를 선택합니다. + 단추를 선택해 새로운 연결을 만듭니다.

    네트워크 연결 페이지를 보여 주는 스크린샷

  3. 메뉴에서 IPsec/IKEv2(strongSwan)를 선택하고 두 번 클릭합니다.

    VPN 추가 페이지를 보여 주는 스크린샷

  4. VPN 추가 페이지에서 VPN 연결의 이름을 추가합니다.

    연결 형식 선택을 보여 주는 스크린샷

  5. 다운로드한 VPN 클라이언트 프로필 구성 파일에 포함된 Generic 폴더에서 VpnSettings.xml 파일을 엽니다. VpnServer라는 태그를 찾아 'azuregateway'로 시작하고 '.cloudapp.net'으로 끝나는 이름을 복사합니다.

    데이터 복사를 보여 주는 스크린샷

  6. 게이트웨이 섹션에서 새 VPN 연결의 주소 필드에 이름을 붙여넣습니다. 다음으로, 인증서 필드 끝에 있는 폴더 아이콘을 클릭하고 Generic 폴더로 이동하여 VpnServerRoot 파일을 선택합니다.

  7. 연결의 클라이언트 섹션에서 인증에 대해 인증서/프라이빗 키를 선택합니다. 인증서프라이빗 키에 대해 이전에 만든 인증서 및 프라이빗 키를 선택합니다. 옵션에서 내부 IP 주소 요청을 선택합니다. 그런 후 추가를 선택합니다.

    내부 IP 주소 요청을 보여 주는 스크린샷

  8. 연결을 On으로 전환합니다.

    복사를 보여 주는 스크린샷

CLI 단계

이 섹션에서는 strongSwan CLI를 사용하여 구성을 안내합니다.

  1. VPN 클라이언트 프로필 구성 파일 Generic 폴더에서 VpnServerRoot.cer/etc/ipsec.d/cacerts로 복사 또는 이동합니다.

  2. 생성한 파일을 /etc/ipsec.d/certs /etc/ipsec.d/certs/etc/ipsec.d/private/로 각각 복사하거나 이동합니다. 이러한 파일은 클라이언트 인증서 및 프라이빗 키이며 해당 디렉터리에 있어야 합니다. 다음 명령을 사용합니다.

    sudo cp ${USERNAME}Cert.pem /etc/ipsec.d/certs/
    sudo cp ${USERNAME}Key.pem /etc/ipsec.d/private/
    sudo chmod -R go-rwx /etc/ipsec.d/private /etc/ipsec.d/certs
    
  3. 다음 명령을 실행하여 호스트 이름을 기록해 둡니다. 이 값은 다음 단계에서 사용됩니다.

    hostnamectl --static
    
  4. VpnSettings.xml 파일을 열고 <VpnServer> 값을 복사합니다. 이 값은 다음 단계에서 사용됩니다.

  5. 다음 예제에서 값을 조정한 다음, 예제를 /etc/ipsec.conf 구성에 추가합니다.

    conn azure
          keyexchange=ikev2
          type=tunnel
          leftfirewall=yes
          left=%any
          # Replace ${USERNAME}Cert.pem with the key filename inside /etc/ipsec.d/certs  directory. 
          leftcert=${USERNAME}Cert.pem
          leftauth=pubkey
          leftid=%client # use the hostname of your machine with % character prepended. Example: %client
          right= #Azure VPN gateway address. Example: azuregateway-xxx-xxx.vpn.azure.com
          rightid=% #Azure VPN gateway FQDN with % character prepended. Example: %azuregateway-xxx-xxx.vpn.azure.com
          rightsubnet=0.0.0.0/0
          leftsourceip=%config
          auto=add
          esp=aes256gcm16
    
  6. 비밀 값을 /etc/ipsec.secrets에 추가합니다.

    PEM 파일의 이름은 이전에 클라이언트 키 파일로 사용한 이름과 일치해야 합니다.

    : RSA ${USERNAME}Key.pem  # Replace ${USERNAME}Key.pem with the key filename inside /etc/ipsec.d/private directory. 
    
  7. 다음 명령을 실행합니다.

    sudo ipsec restart
    sudo ipsec up azure
    

다음 단계

자세한 단계를 보려면 P2S Azure Portal 문서로 돌아갑니다.