[AWS] Client VPN 사용하기

2024. 11. 9. 21:44AWS/VPN

안녕하세요!

Onezero 입니다 :)

 

AWS Client VPN을 사용하여, Private Subnet에 위치한 EC2에 접속해봅니다.

 

※ 참고 URL 자료는 https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/how-it-works.html 입니다.


Architecture

Client VPN 구성도는 아래와 같습니다.

- Private Subnet에 위치한 Instance에 접근


Demo Guide

(1) 사전 준비 : 인증서 생성 (본 Demo Guide에서는 Windows OS로 진행)

 

1-1. EasyRSA 릴리스에서 사용 중인 Windows 버전에 해당하는 ZIP파일을 다운로드 후 압축 해제를 합니다.

※ EasyRSA 릴리스 URL : https://github.com/OpenVPN/easy-rsa/releases

 

1-2. 명령 프롬포트를 열고 “EasyRSA-3.X” 폴더로 이동 후 EasyRSA3 shell을 오픈합니다.

 

1-3. 새로운 PKI 환경을 시작합니다.

 

1-4. 새로운 CA를 빌드합니다.

 

1-5. 서버 인증서 및 키를 생성합니다.

 

1-6. 클라이언트 인증서 및 키를 생성합니다.

 

1-7. EasyRSA3 Shell을 종료합니다. 종료 후 사용자 지정 폴더에 아래와 같은 명령어로 복사합니다.

 

1-8. AWS Certificate Manager(ACM) 콘솔에 접속하여 인증서를 직접 업로드합니다. 서버인증서 방법과 동일하게 클라이언트도 업로드합니다.

 

 

(2) Client VPN Endpoint 생성 및 설정

 

2-1. 접속 로그를 보기 위해 Client VPN에 대한 CloudWatch Log Group을 생성합니다.

 

2-2. Client VPN Endpoint 생성 진행합니다.

 

Client IPv4 CIDR값은 VPC대역과 중첩되지 않도록 선택합니다. 아래 인증서에는 서버와 클라이언트 선택 후 상호 인증을 위해 “Use mutual authentication” 을 클릭합니다.

※ Mutual authentication 참고 URL : https://docs.aws.amazon.com/ko_kr/vpn/latest/clientvpn-admin/mutual.html

 

2-3. Connection logging 부분은 전에 생성한 CloudWatch logs group을 선택합니다.

 

2-4. Enable split-tunnel을 활성화해줍니다. 비활성화해주면 모든 트래픽이 클라이언트VPN엔드포인트로 라우팅되기때문에 인터넷을 사용할 수 있도록 활성화 해줍니다. 보안그룹은 기본 보안그룹 선택해줍니다.

 

2-5. “Target network associations” 를 실행합니다. 네트워크 인터페이스가 놓일 서브넷을 선택합니다.

 

2-6. “Authorization rules”를 설정합니다. 접근을 허용할 대상인 VPC CIDR입력을 합니다.

Authorization rules를 설정하면, Route Table에 자동으로 등록됩니다.

 

 

(3) Client VPN 연결

※ AWS Client VPN 다운로드 URL : https://aws.amazon.com/ko/vpn/client-vpn-download/

해당 환경에 맞게 다운로드를 받아서 설치 프로그램을 설치합니다.

 

3-1. 구성 파일을 다운로드 받습니다.

 

3-2. 다운로드 파일을 열어, 마지막 줄을 삭제합니다.

 

3-3. 삭제 후에는 </ca> 아래에 <cert> </cert> 와 <key> </key> 를 삽입 후 cert에 Client crt를 key에는 Client key를 넣어줍니다.

 

3-4. AWS VPN Client 프로그램을 실행 후 프로필을 생성합니다. VPN 구성 파일이 저장되어 있는 곳을 지정 후 프로필 추가를 클릭합니다.

 

3-5. AWS VPN Client 지정된 프로필을 클릭 후 연결 후에 EC2의 Private IP로 접속합니다.

 

3-6. Private EC2의 Private IP 주소 통해 접속합니다.

 

3-7. 왼쪽은 AWS Client VPN을 연결하지 않은 경우, 오른쪽은 AWS Client VPN을 연결한 경우의 화면입니다.

 

3-8. AWS Client VPN 콘솔 화면에서 “Connections” 탭에 Common name으로 접속 유저를 확인할 수 있습니다.

 

3-9. 사전에 생성한 AWS CloudWatch Log group을 통해 접속한 Log를 볼 수 있습니다.

 

 

감사합니다 :)