개발 스토리

AWS Client VPN 연동하기

태태개발자 2023. 3. 2. 14:36
반응형

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번에서 생성했던 파일을 등록해준다.

  - 연결할 준비가 되었습니다라는 문구가 나오면 연결 클릭, 연결되었습니다 라는 문구가 나오면 연결 완료

 

반응형