AWS Client VPN 연동하기
1. 인증서 생성하기
- https://github.com/OpenVPN/easy-rsa 해당 경로에 깃 저장소를 clone한다.
- 아래 내용에 명령어를 실행하여 클라이언트와 서버에서 사용할 인증서를 생성한다.
1) OpenVPN easy-rsa 리포지토리를 로컬 컴퓨터에 복제하고 easy-rsa/easyrsa3 폴더로 이동하십시오.
$ git clone https://github.com/OpenVPN/easy-rsa.git
$ cd easy-rsa/easyrsa3
2) 새 PKI 환경을 시작합니다.
$ ./easyrsa init-pki
> yes
> yes
3) 새 CA(인증 기관)를 빌드하려면 이 명령을 실행하고 표시되는 메시지를 따릅니다.
$ ./easyrsa build-ca nopass
> testServer
* ${hostName입력}
4) 서버 인증서 및 키를 생성합니다.
$ ./easyrsa build-server-full server nopass
> yes
5) 클라이언트 인증서 및 키를 생성합니다.
클라이언트를 구성할 때 필요하므로 클라이언트 인증서와 클라이언트 프라이빗 키를 저장해야 합니다.
$ ./easyrsa build-client-full client1.domain.tld nopass
> yes
참고) ./easyrsa build-server-full ${인증서 이름} nopass
6) 클라이언트 인증서와 키가 필요한 각 클라이언트(최종 사용자)에 대해 이 단계를 선택적으로 반복할 수 있습니다.
서버 인증서 및 키 그리고 클라이어트 인증서 및 키를 사용자 지정 폴더에 복사한 후 해당 폴더로 이동합니다.
인증서 및 키를 복사하기 전에 mkdir 명령을 사용하여 사용자 지정 폴더를 만듭니다.
다음 예제에서는 홈 디렉터리에 사용자 지정 폴더를 만듭니다.
$ mkdir ~/custom_folder/
$ cp pki/ca.crt ~/custom_folder/
$ cp pki/issued/server.crt ~/custom_folder/
$ cp pki/private/server.key ~/custom_folder/
$ cp pki/issued/client1.domain.tld.crt ~/custom_folder
$ cp pki/private/client1.domain.tld.key ~/custom_folder/
$ cd ~/custom_folder/
2. AWS에 서버 인증서 등록하기
- Certificate Manager > 인증서 가져오기 이동
- 인증서 본문 :
server.crt 파일에 내용중 -----BEGIN CERTIFICATE-----
부터 -----END CERTIFICATE----- 까지 내용을 복사하여 붙여넣는다.
- 인증서 프라이빗 키 :
server.key 파일에 내용을 모두 복사하여 붙여넣는다.
- 인증서 체인
ca.crt 파일에 내용을 모두 복사하여 붙여넣는다.
- 다음버튼을 클릭후 태그추가 에서 다음, 검토 및 가져오기에서 가져오기 버튼을 클릭하여 인증서를 등록한다.
3. Client VPN 생성하기
- VPC > 가상 사설 네트워크(VPN) > Client VPN 엔드포인트 이동 > 클라이언트 VPN 엔드포인트 생성 클릭
- '세부 정보 > 클라이언트 IPv4 CIDR' 입력란에 192.168.0.0/22 입력
* 연결하려는 VPC에 있는 서브넷에 설정된 대역과 겹친다면 다른 네트워크 대역으로 입력해준다.
* 이름태그 및 설명은 선택사항이지만 구분을 해주기 위해 이름태그는 입력권장.
- '인증 정보 > 서버 인증서 ARN'에서 'Certificate Manager'에서 등록해준 인증서를 선택해준다.
- '인증 정보 > 인증 옵션 > 상호 인증 사용' 선택하여 '클라이언트 인증서 ARN'에서도 '서버 인증서 ARN'에 선택된
인증서와 같은걸 선택해준다.
- '기타 파라미터 > 분할 터널 활성화' 를 체크하여 활성화 시켜준다.
- 클라이언트 VPN 엔드포인트 생성 클릭
4. Client VPN과 VPC연결
- 생성한 VPN을 선택하여 대상 네트워크 연결 > 오른쪽 하단에 '대상 네트워크 연결' 버튼 클릭
- 연결하고 싶은 VPC와 서브넷을 선택해준 후 하단에 대상 네트워크 연결 클릭
5. 권한 부여
- 생성한 VPN을 선택하여 권한 부여 규칙 > 오른쪽 하단에 '권한 부여 규칙 추가' 버튼 클릭
- 액세스를 활성화할 대상 네트워크 입력란에 연결한 VPC 네트워크 대역을 입력한다.
- 다음에 대한 액세스 권한 부여에서 모든 사용자에게 액세스 허용 선택 후 하단에 권한 부여 규칙 추가 클릭
6. 상태확인하기
- client VPN 상태가 Pending-associate -> Available로 변경되었는지 확인.
7. 클라이언트 Client VPN 프로필 생성하기
- 클라이언트 구성 다운로드 클릭
- 다운받은 파일에 ca태그 요소 아래에 cert 및 key태그 요소 추가한다.
- 1번에서 받았던 client1.domain.tld.crt 파일에 내용중 -----BEGIN CERTIFICATE-----
부터 -----END CERTIFICATE----- 까지 내용을 복사하여 cert요소에 추가한다.
- 1번에서 받았던 client1.domain.tld.key 파일에 내용을 모두 복사하여 key 요소에 추가한다.
- 다운로드 받았던 파일의 내용중 DNS가 적혀있는 부분 앞에 랜덤값을 추가한 후 저장한다.
(기본적으로 서버이름을 넣으면 됨.)
8. Client VPN을 통하여 서버 내부 IP와 통신하기
- https://aws.amazon.com/ko/vpn/client-vpn-download/ 해당 링크에서 client VPN을 접속할수 있는 프로그램을 설치해준다.
- AWS VPN Client 프로그램을 실행하여 '프로필 관리 > 프로필 추가' 클릭 후 7번에서 생성했던 파일을 등록해준다.
- 연결할 준비가 되었습니다라는 문구가 나오면 연결 클릭, 연결되었습니다 라는 문구가 나오면 연결 완료