[AWS] Client 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를 볼 수 있습니다.
감사합니다 :)
