본문 바로가기

AWS/PROJECT

AWS Client VPN 설정 및 연결

728x90

 Client VPN

- AWS 리소스와 온프레미스의 리소스에 접근할 수 있는 VPN 서비스

- OpenVPN 기반으로, 리소스에 접근할 수 있음

출처 : https://musma.github.io/2019/11/04/aws-client-vpn-endpoint.html

 

구성요소

Client VPN 엔드포인트 : 클라이언트 IP 주소가 할당되는 IP 주소 범위(CIDR 표기법)

  • 한 마디로, 클라이언트(AWS 환경에 접근하려는 온프레미스의 사용자)에게 할당할 IP 주소 범위이다.
  • 주소 범위는 대상 네트워크 범위 / VPC 주소 범위 / 클라이언트 VPN 엔드포인트와 연결될 경로와 중첩될 수 없다.
  • 클라이언트 주소 범위는 최소 /22 이상, /12 CIDR 보다 크지 않아야 한다.
  • 생성 이후, 변경이 불가하다.

서버 인증서 ARN & 클라이언트 인증서 ARN

  • ACM으로 가져오는, 서버에서 사용할 인증서이다.
  • ACM에서 발급받을 수 없고, ACM으로 가져와야 한다.

 

분할 터널 활성화

  • Client VPN을 설정하면, AWS 리소스와의 통신만 가능하고, 인터넷 통신은 불가능하다.
  • 즉, 모든 트래픽이 VPN 터널을 통해 라우팅 된다.
  • 그래서 이 분할 터널 활성화를 활성화 시키면, 모든 트래픽이 Client VPN 엔드포인트를 통해 라우팅되지 않는다.


VPC - Client VPN 콘솔 - Client VPN 생성하기

서버 인증서는 ACM에 import 시킨 인증서로 가져온다

 

클라이언트 인증서도 동일하다

-> 인증서 발급 받는 방법은 추가 게시물로 작성하겠다

 

사용할 VPC와 보안 그룹을 선택한다

마지막으로 <생성>을 눌러주기

 

그럼 다음과 같이 생성이 된다

 

탭에서 <대상 네트워크 연결> 선택 후 다음과 같이 작성한다.

Private Subnet 내에 있는 인스턴스와 통신이 되어야 하기 때문에 다음과 같이 설정한다.

VPC 내의 private subnet과 연결

탭에서 <권한 부여 규칙> 선택 후 다음과 같이 설정한다.

- 권한 부여 규칙 : 네트워크에 대한 액세스 권한을 부여하는 방화벽의 역할

 

이제 Client VPN에 접속하기 위한 설정을 해보자

 

생성된 Client VPN의 구성을 다운로드 하자. 파일 형식은 .opvn이다.

 

다운로드 받은 구성 파일을 업데이트 해주자.

- 업데이트 할 구성파일이 있는 컴퓨터에 클라이언트의 인증서가 있다면 다음과 같이 경로를 추가한다.

client
dev tun
proto udp
remote cvpn-endpoint-03151fb0de9552f06.prod.clientvpn.ap-northeast-2.amazonaws.com 443
remote-random-hostname
resolv-retry infinite
nobind
remote-cert-tls server
cipher AES-256-GCM
--cert "C:\\test-client-vpn\\client1.domain.tld.crt" #클라이언트 인증서의 cert 경로 추가
--key "C:\\test-client-vpn\\client1.domain.tld.key" #클라이언트 인증서의 key 경로 추가
verb 3
<ca>
-----BEGIN CERTIFICATE-----

-----END CERTIFICATE-----

</ca>


reneg-sec 0

 

만약, 인증서의 경로를 따로 지정하지 못할 때는 다음과 같이 작성하면 된다.

client
dev tun
proto tcp
remote cvpn-endpoint-03151fb0de9552f06.prod.clientvpn.ap-northeast-2.amazonaws.com 443
remote-random-hostname
resolv-retry infinite
nobind
remote-cert-tls server
cipher AES-256-GCM
verb 3
<ca>
-----BEGIN CERTIFICATE-----

-----END CERTIFICATE-----
</ca> 

<cert> # <- 클라이언트 인증서의 cert 부분 추가
-----BEGIN CERTIFICATE-----

-----END CERTIFICATE-----
</cert>

<key> # <- 클라이언트 인증서의 key 부분 추가
-----BEGIN PRIVATE KEY-----

-----END PRIVATE KEY-----
</key>



reneg-sec 0

 

그리고 다음 링크에서 사용자가 쓰는 운영체제에 맞추어 AWS VPN Client를 설치한다.

https://aws.amazon.com/ko/vpn/client-vpn-download/

 

AWS Client VPN Download | Amazon Web Services

The client for AWS Client VPN is provided free of charge. You can connect your computer directly to AWS Client VPN for an end-to-end VPN experience. The software client is compatible with all features of AWS Client VPN.

aws.amazon.com

 

설치한 AWS VPN Client를 실행한다

파일 - 프로필 관리 - 프로필 추가 선택

 

이름과 VPN 구성 파일인 아까 다운로드 받은 .opvn 파일을 넣어준다

 

그리고 프로필 추가를 눌러준다.

 

Client VPN을 연결해보자.

 

그러면 네트워크 상태는 다음과 같이 변한다.

 

터미널에서 AWS의 Private Subnet에 있는 Private 서버로 ping을 날려보자

잘 날아가는 것을 확인할 수 있다.

728x90