AWS 클라이언트 VPN 문제 해결 - AWS 클라이언트 VPN

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

AWS 클라이언트 VPN 문제 해결

다음 주제는 Client VPN 엔드포인트 관련 문제를 해결하는 데 도움이 될 수 있습니다.

클라이언트가 Client VPN에 연결하는 데 사용하는 OpenVPN 기반 소프트웨어의 문제 해결에 대한 자세한 내용은 AWS Client VPN 사용 설명서Client VPN 연결 문제 해결을 참조하십시오.

Client VPN 엔드포인트 DNS 이름을 확인할 수 없음

문제

Client VPN 엔드포인트의 DNS 이름을 확인할 수 없습니다.

원인

Client VPN 엔드포인트 구성 파일에는 remote-random-hostname이라는 파라미터가 포함되어 있습니다. 이 파라미터는 DNS 캐싱을 방지하기 위해 클라이언트가 DNS 이름 앞에 임의의 문자열을 붙이도록 강제합니다. 일부 클라이언트는 이 파라미터를 인식하지 못하므로 DNS 이름 앞에 필요한 임의의 문자열을 붙이지 않습니다.

Solution

원하는 텍스트 편집기를 사용하여 Client VPN 엔드포인트 구성 파일을 엽니다. Client VPN 엔드포인트 DNS 이름을 지정하는 행을 찾은 다음 임의의 문자열을 앞에 붙여 형식이 random_string.displayed_DNS_name이 되도록 합니다. 예:

  • 원래 DNS 이름: cvpn-endpoint-0102bc4c2eEXAMPLE.clientvpn.us-west-2.amazonaws.com

  • 수정된 DNS 이름: asdfa.cvpn-endpoint-0102bc4c2eEXAMPLE.clientvpn.us-west-2.amazonaws.com

트래픽이 서브넷 간에 분할되지 않음

문제

두 서브넷 간에 네트워크 트래픽을 분할하려고 합니다. 프라이빗 트래픽은 프라이빗 서브넷을 통해 라우팅되고 인터넷 트래픽은 퍼블릭 서브넷을 통해 라우팅되어야 합니다. 그러나 Client VPN 엔드포인트 라우팅 테이블에 두 경로를 모두 추가했더라도 하나의 경로만 사용되고 있습니다.

원인

여러 서브넷을 Client VPN 엔드포인트와 연결할 수 있지만 가용 영역당 하나의 서브넷만 연결할 수 있습니다. 여러 서브넷 연결의 목적은 클라이언트에 고가용성 및 가용 영역 중복성을 제공하는 것입니다. 그러나 Client VPN을 사용하면 Client VPN 엔드포인트와 연결된 서브넷 간에 트래픽을 선택적으로 분할할 수 없습니다.

클라이언트는 DNS 라운드 로빈 알고리즘을 기반으로 Client VPN 엔드포인트에 연결합니다. 즉, 연결을 설정할 때 연결된 서브넷을 통해 트래픽이 라우팅될 수 있습니다. 따라서 필요한 경로 항목이 없는 연결된 서브넷에 도달하면 연결 문제가 발생할 수 있습니다.

예를 들어 다음과 같은 서브넷 연결 및 경로를 구성한다고 가정합니다.

  • 서브넷 연결

    • 연결 1: 서브넷-A(us-east-1a)

    • 연결 2: 서브넷-B(us-east-1b)

  • 경로

    • 경로 1: 서브넷-A로 라우팅된 10.0.0.0/16

    • 경로 2: 서브넷-B로 라우팅된 172.31.0.0/16

이 예에서 연결될 때 서브넷-A에 도달한 클라이언트는 루트 2에 액세스할 수 없고, 연결될 때 서브넷-B에 도달한 클라이언트는 루트 1에 액세스할 수 없습니다.

Solution

Client VPN 엔드포인트에 연결된 각 네트워크의 대상이 있는 동일한 경로 항목이 있는지 확인합니다. 이렇게 하면 트래픽이 라우팅되는 서브넷에 관계없이 클라이언트가 모든 경로에 액세스할 수 있습니다.

Active Directory 그룹에 대한 권한 부여 규칙이 예상대로 작동하지 않습니다.

문제

Active Directory 그룹에 대한 권한 부여 규칙을 구성했지만 예상대로 작동하지 않습니다. 모든 네트워크의 트래픽을 승인하는 0.0.0.0/0에 대한 권한 부여 규칙을 추가했지만 특정 대상 CIDR에 대한 트래픽은 여전히 실패합니다.

원인

권한 부여 규칙은 네트워크 CIDR에서 인덱싱됩니다. 권한 부여 규칙은 Active Directory 그룹에 특정 네트워크 CIDR에 대한 액세스 권한을 부여해야 합니다. 0.0.0.0/0에 대한 권한 부여 규칙은 특별한 경우로 간주되므로, 권한 부여 규칙이 만들어진 순서에 관계없이 마지막으로 평가됩니다.

예를 들어 다음과 같은 순서로 다섯 가지 권한 부여 규칙을 만들 수 있다고 가정합니다.

  • 규칙 1: 10.1.0.0/16에 액세스하는 그룹 1

  • 규칙 2: 0.0.0.0/0에 액세스하는 그룹 1

  • 규칙 3: 0.0.0.0/0에 액세스하는 그룹 2

  • 규칙 4: 0.0.0.0/0에 액세스하는 그룹 3

  • 규칙 5: 172.131.0.0/16에 액세스하는 그룹 2

이 예시에서는 규칙 2, 규칙 3과 규칙 4를 마지막으로 평가합니다. 그룹 1은 10.1.0.0/16에 대한 액세스 권한만 있고 그룹 2는 172.131.0.0/16에 대한 액세스 권한만 가집니다. 그룹 3은 10.1.0.0/16 또는 172.131.0.0/16에 액세스할 수 없지만 다른 모든 네트워크에 액세스할 수 있습니다. 규칙 1과 5를 제거하면 세 그룹 모두 모든 네트워크에 액세스할 수 있습니다.

Client VPN에서는 권한 부여 규칙을 평가할 때 가장 긴 접두사 일치를 사용합니다. 자세한 내용은 Amazon VPC 사용 설명서경로 우선 순위를 참조하십시오.

Solution

Active Directory 그룹에 특정 네트워크 CIDR에 대한 액세스 권한을 명시적으로 부여하는 권한 부여 규칙을 만들어야 합니다. 0.0.0.0/0에 대한 권한 부여 규칙을 추가하는 경우 마지막으로 평가되며 이전 권한 부여 규칙에 따라 액세스 권한을 부여하는 네트워크가 제한될 수 있습니다.

클라이언트가 피어링된 VPC, Amazon S3 또는 인터넷에 액세스할 수 없음

문제

Client VPN 엔드포인트 경로를 올바르게 구성했지만 클라이언트가 피어링된 VPC, Amazon S3 또는 인터넷에 액세스할 수 없습니다.

Solution

다음 순서도에는 인터넷, 피어링된 VPC 및 Amazon S3 연결 문제를 진단하는 단계가 나와 있습니다.

Client VPN 문제 해결 단계
  1. 인터넷에 액세스하려면 0.0.0.0/0에 대한 권한 부여 규칙을 추가합니다.

    피어링된 VPC에 액세스하려면 VPC의 IPv4 CIDR 범위에 대한 권한 부여 규칙을 추가합니다.

    S3에 액세스하려면 Amazon S3 엔드포인트의 IP 주소를 지정합니다.

  2. DNS 이름을 확인할 수 있는지 확인합니다.

    DNS 이름을 확인할 수 없는 경우 Client VPN 엔드포인트에 대해 DNS 서버를 지정했는지 확인합니다. 자체 DNS 서버를 관리하는 경우 IP 주소를 지정하십시오. VPC에서 DNS 서버에 액세스할 수 있는지 확인합니다.

    DNS 서버에 지정할 IP 주소가 확실하지 않은 경우 VPC의 .2 IP 주소에 VPC DNS 해석기를 지정합니다.

  3. 인터넷 액세스의 경우 퍼블릭 IP 주소 또는 퍼블릭 웹 사이트 (예: amazon.com)를 Ping할 수 있는지 확인합니다. 응답을 받지 못하면 연결된 서브넷의 라우팅 테이블에 인터넷 게이트웨이 또는 NAT 게이트웨이를 대상으로 하는 기본 경로가 있는지 확인합니다. 경로가 설정되어 있으면 연결된 서브넷에 인바운드 및 아웃바운드 트래픽을 차단하는 네트워크 액세스 제어 목록 규칙이 없는지 확인합니다.

    피어링된 VPC에 도달할 수 없는 경우 연결된 서브넷의 라우팅 테이블에 피어링된 VPC에 대한 라우팅 항목이 있는지 확인합니다.

    Amazon S3에 도달할 수 없는 경우 연결된 서브넷의 라우팅 테이블에 게이트웨이 VPC 엔드포인트에 대한 라우팅 항목이 있는지 확인합니다.

  4. 1400바이트보다 큰 페이로드를 사용하여 퍼블릭 IP 주소를 Ping할 수 있는지 확인합니다. 다음 명령 중 하나를 사용합니다.

    • Windows

      C:\> ping 8.8.8.8 -l 1480 -f
    • Linux

      $ ping -s 1480 8.8.8.8 -M do

    1400바이트보다 큰 페이로드를 사용하여 IP 주소를 Ping할 수 없는 경우 원하는 텍스트 편집기를 사용하여 Client VPN 엔드포인트 .ovpn 구성 파일을 열고 다음을 추가합니다.

    mssfix 1328

피어링된 VPC, Amazon S3 또는 인터넷에 대한 액세스가 간헐적임

문제

피어링된 VPC, Amazon S3 또는 인터넷에 연결할 때 간헐적인 연결 문제가 발생하지만 연결된 서브넷에 대한 액세스는 영향을 받지 않습니다. 연결 문제를 해결하려면 연결을 끊었다가 다시 연결해야 합니다.

원인

클라이언트는 DNS 라운드 로빈 알고리즘을 기반으로 Client VPN 엔드포인트에 연결합니다. 즉, 연결을 설정할 때 연결된 서브넷을 통해 트래픽이 라우팅될 수 있습니다. 따라서 필요한 경로 항목이 없는 연결된 서브넷에 도달하면 연결 문제가 발생할 수 있습니다.

Solution

Client VPN 엔드포인트에 연결된 각 네트워크의 대상이 있는 동일한 경로 항목이 있는지 확인합니다. 이렇게 하면 트래픽이 라우팅되는 연결된 서브넷에 관계없이 클라이언트가 모든 경로에 액세스할 수 있습니다.

예를 들어 Client VPN 엔드포인트에 세 개의 연결된 서브넷(서브넷 A, B, C)이 있고 클라이언트에 인터넷 액세스를 활성화한다고 가정합니다. 이렇게 하려면 연결된 각 서브넷을 대상으로 하는 세 개의 0.0.0.0/0 경로를 추가해야 합니다.

  • 루트 1: 서브넷 A의 경우 0.0.0.0/0

  • 루트 2: 서브넷 B의 경우 0.0.0.0/0

  • 루트 3: 서브넷 C의 경우 0.0.0.0/0

클라이언트 소프트웨어가 TLS 오류를 반환함

문제

이전에는 클라이언트를 Client VPN에 성공적으로 연결할 수 있었지만 이제는 OpenVPN 기반 클라이언트가 연결을 시도할 때 다음 오류 중 하나를 반환합니다.

TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity) TLS Error: TLS handshake failed
Connection failed because of a TLS handshake error. Contact your IT administrator.
가능한 원인 #1

상호 인증을 사용하고 클라이언트 인증서 취소 목록을 가져온 경우 클라이언트 인증서 취소 목록이 만료되었을 수 있습니다. 인증 단계에서 Client VPN 엔드포인트는 가져온 클라이언트 인증서 취소 목록과 비교하여 클라이언트 인증서를 확인합니다. 클라이언트 인증서 취소 목록이 만료된 경우 Client VPN 엔드포인트에 연결할 수 없습니다.

해결 방법 #1

OpenSSL 도구를 사용하여 클라이언트 인증서 취소 목록의 만료 날짜를 확인합니다.

$ openssl crl -in path_to_crl_pem_file -noout -nextupdate

출력에 만료 날짜와 시간이 표시됩니다. 클라이언트 인증서 취소 목록이 만료된 경우 새 목록을 만들어 Client VPN 엔드포인트로 가져와야 합니다. 자세한 설명은 클라이언트 인증서 해지 목록 섹션을 참조하세요.

가능한 원인 #2

Client VPN 엔드포인트에 사용 중인 서버 인증서가 만료되었습니다.

해결 방법 #2

AWS Certificate Manager 콘솔에서 또는 AWS CLI를 사용하여 서버 인증서의 상태를 확인합니다. 서버 인증서가 만료된 경우 새 인증서를 생성하여 ACM에 업로드합니다. OpenVPN easy-rsa 유틸리티를 사용하여 서버 및 클라이언트 인증서와 키를 생성하고 ACM으로 가져오는 자세한 단계는 상호 인증 단원을 참조하세요.

또는 클라이언트가 Client VPN에 연결하는 데 사용하는 OpenVPN 기반 소프트웨어에 문제가 있을 수 있습니다. OpenVPN 기반 소프트웨어 문제 해결에 대한 자세한 내용은 AWS Client VPN 사용 설명서Client VPN 연결 문제 해결을 참조하십시오.

클라이언트 소프트웨어가 사용자 이름 및 암호 오류(Active Directory 인증)를 반환함

문제

나는 Client VPN 엔드포인트에 Active Directory 인증을 사용하고, 내 클라이언트를 Client VPN에 성공적으로 연결할 수 있었습니다. 하지만 이제 클라이언트가 잘못된 사용자 이름과 암호 오류를 수신합니다.

가능한 원인

Active Directory 인증을 사용하고 클라이언트 구성 파일을 배포한 후 Multi-Factor Authentication(MFA)을 활성화한 경우, 이 파일에는 MFA 코드를 입력하라는 메시지를 표시하는 데 필요한 정보가 들어 있지 않습니다. 사용자 이름과 암호만 입력하라는 메시지가 표시되고 인증이 실패합니다.

Solution

새 클라이언트 구성 파일을 다운로드하여 클라이언트에 배포합니다. 새 파일이 다음 라인을 포함하고 있는지 확인합니다.

static-challenge "Enter MFA code " 1

자세한 설명은 클라이언트 구성 파일 내보내기 및 구성 섹션을 참조하세요. Client VPN 엔드포인트를 사용하지 않고 Active Directory의 MFA 구성을 테스트하여 MFA가 예상대로 작동하는지 확인합니다.

클라이언트 소프트웨어에서 사용자 이름 및 암호 오류 (페더레이션 인증) 를 반환합니다.

문제

페더레이션 인증을 사용하여 사용자 이름과 암호로 로그인하려고 시도하면 “받은 자격 증명이 올바르지 않습니다.” 라는 오류 메시지가 나타납니다. IT 관리자에게 문의하십시오.”

원인

이 오류는 IdP의 SAML 응답에 속성이 하나 이상 포함되어 있지 않기 때문에 발생할 수 있습니다.

Solution

IdP의 SAML 응답에 속성이 하나 이상 포함되어 있는지 확인하십시오. 자세한 정보는 SAML 기반 IdP 구성 리소스을 참조하세요

클라이언트를 연결할 수 없음(상호 인증)

문제

Client VPN 엔드포인트에 대해 상호 인증을 사용합니다. 클라이언트가 TLS 키 협상 실패 오류 및 제한 시간 오류를 수신하는 중입니다.

가능한 원인

클라이언트에 제공된 구성 파일에 클라이언트 인증서 및 클라이언트 프라이빗 키가 포함되어 있지 않거나, 인증서 및 키가 올바르지 않습니다.

Solution

구성 파일에 올바른 클라이언트 인증서와 키가 포함되어 있는지 확인합니다. 필요한 경우 구성 파일을 수정하여 클라이언트에 재배포합니다. 자세한 설명은 클라이언트 구성 파일 내보내기 및 구성 섹션을 참조하세요.

클라이언트에서 자격 증명이 최대 크기를 초과한다는 오류를 반환함(연동 인증)

문제

Client VPN 엔드포인트에 연동 인증을 사용합니다. 클라이언트가 SAML 기반 자격 증명 공급자(IdP) 브라우저 창에 사용자 이름과 암호를 입력하면 자격 증명이 지원되는 최대 크기를 초과한다는 오류가 발생합니다.

원인

IdP에서 반환한 SAML 응답이 지원되는 최대 크기를 초과합니다. 자세한 설명은 SAML 기반 연동 인증에 대한 요구 사항 및 고려 사항 섹션을 참조하세요.

Solution

IdP에서 사용자가 속한 그룹 수를 줄이고 다시 연결해 보십시오.

클라이언트에서 브라우저가 열리지 않음(연동 인증)

문제

Client VPN 엔드포인트에 연동 인증을 사용합니다. 클라이언트가 엔드포인트에 연결하려고 하면 클라이언트 소프트웨어에서 브라우저 창을 열지 않고 대신 사용자 이름 및 암호 팝업 창을 표시합니다.

원인

클라이언트에 제공된 구성 파일에 auth-federate 플래그가 포함되어 있지 않습니다.

Solution

최신 구성 파일을 내보내고 AWS 제공된 클라이언트로 가져온 다음 다시 연결해 보십시오.

클라이언트에서 사용 가능한 포트가 없다는 오류를 반환함(연동 인증).

문제

Client VPN 엔드포인트에 연동 인증을 사용합니다. 클라이언트가 엔드포인트에 연결하려고 하면 클라이언트 소프트웨어에서 다음 오류를 반환합니다.

The authentication flow could not be initiated. There are no available ports.
원인

AWS 제공된 클라이언트는 TCP 포트 35001을 사용하여 인증을 완료해야 합니다. 자세한 설명은 SAML 기반 연동 인증에 대한 요구 사항 및 고려 사항 섹션을 참조하세요.

Solution

클라이언트의 디바이스가 TCP 포트 35001을 차단하거나 다른 프로세스에서 사용하고 있지 않은지 확인하십시오.

IP 불일치로 인해 VPN 연결이 종료되었습니다.

문제

VPN 연결이 종료되고 클라이언트 소프트웨어에서 다음 오류가 반환됩니다. "The VPN connection is being terminated due to a discrepancy between the IP address of the connected server and the expected VPN server IP. Please contact your network administrator for assistance in resolving this issue."

원인

AWS 제공된 클라이언트는 연결된 IP 주소가 Client VPN 엔드포인트를 지원하는 VPN 서버의 IP와 일치해야 합니다. 자세한 설명은 의 규칙 및 모범 사례 AWS Client VPN 섹션을 참조하세요.

Solution

AWS 제공된 클라이언트와 Client VPN 엔드포인트 사이에 DNS 프록시가 없는지 확인합니다.

LAN으로의 트래픽 라우팅이 예상대로 작동하지 않음

문제

LAN IP 주소 범위가 다음 표준 사설 IP 주소 범위 (10.0.0.0/8, 172.16.0.0/12192.168.0.0/16, 또는) 에 속하지 않는 경우 트래픽을 LAN (Local Area Network) 으로 라우팅하려고 시도하면 예상대로 작동하지 않습니다169.254.0.0/16.

원인

클라이언트 LAN 주소 범위가 위의 표준 범위를 벗어나는 것으로 감지되면 Client VPN 엔드포인트는 OpenVPN 지침 “리디렉션 게이트웨이 블록 로컬”을 자동으로 클라이언트에 푸시하여 모든 LAN 트래픽을 VPN으로 강제 전송합니다. 자세한 설명은 의 규칙 및 모범 사례 AWS Client VPN 섹션을 참조하세요.

Solution

VPN 연결 중에 LAN 액세스가 필요한 경우 위에 나열된 일반 LAN 주소 범위를 사용하는 것이 좋습니다.

Client VPN 엔드포인트에 대한 대역폭 제한 확인

문제

Client VPN 엔드포인트에 대한 대역폭 제한을 확인해야 합니다.

원인

처리량은 사용자 위치에서의 연결 용량, 컴퓨터의 Client VPN 데스크톱 애플리케이션과 VPC 엔드포인트 간의 네트워크 지연 시간 등 여러 요소에 따라 달라집니다. 또한 사용자 연결당 10Mbps 대역폭 제한이 있습니다.

Solution

다음 명령을 실행하여 대역폭을 확인하십시오.

sudo iperf3 -s -V

클라이언트에서 다음을 수행합니다.

sudo iperf -c server IP address -p port -w 512k -P 60