1. Client VPN 연결

Windows 기준이며, Linux/macOS는 Authentication – AWS Client VPN (amazon.com)에서 확인하실 수 있습니다.

1.1 EasyRSA 설정

OpenVPN Community Downloads 에서 WINDOWS 64-BIT MSI INSTALLER 를 다운받은 후 설치합니다.

Releases · OpenVPN/easy-rsa · GitHub에서 EasyRSA-3.0.8-win64.zip를 다운받은 후, 압축을 해제하여 \Program Files\OpenVPN 폴더에 넣습니다.

관리자 권한으로 명령프롬프트를 실행한 후, \Program Files\OpenVPN\EasyRSA-3.0.8 폴더로 이동, 커맨드를 입력합니다.

C:\Program Files\OpenVPN\EasyRSA-3.0.8> EasyRSA-Start

새로운 PKI 환경을 구성합니다.

./easyrsa init-pki

CA(Certificate Authority)를 생성합니다.

./easyrsa build-ca nopass

서버 인증서와 키를 생성합니다.

./easyrsa build-server-full server nopass

클라이언트 인증서(사용자별 생성)와 키를 생성합니다.

./easyrsa build-client-full client1.domain.tld nopass

EasyRSA3 shell을 종료합니다.

exit

서버 인증서와 키, 클라이언트 인증서와 키를 새로운 폴더에 복사합니다.

cd C:\Program Files\OpenVPN\EasyRSA-3.0.8
mkdir C:\custom_folder
copy pki\ca.crt C:\custom_folder
copy pki\issued\server.crt C:\custom_folder
copy pki\private\server.key C:\custom_folder
copy pki\issued\client1.domain.tld.crt C:\custom_folder
copy pki\private\client1.domain.tld.key C:\custom_folder
cd C:\custom_folder

C:\Program Files\OpenVPN\EasyRSA> mkdir C:\custom_folder
C:\Program Files\OpenVPN\EasyRSA> copy pki\ca.crt C:\custom_folder
C:\Program Files\OpenVPN\EasyRSA> copy pki\issued\server.crt C:\custom_folder
C:\Program Files\OpenVPN\EasyRSA> copy pki\private\server.key C:\custom_folder
C:\Program Files\OpenVPN\EasyRSA> copy pki\issued\client1.domain.tld.crt C:\custom_folder
C:\Program Files\OpenVPN\EasyRSA> copy pki\private\client1.domain.tld.key C:\custom_folder
C:\Program Files\OpenVPN\EasyRSA> cd C:\custom_folder
1.2 AWS ACM 생성

서버 인증서와 키를 ACM에 업로드합니다.

aws acm import-certificate --certificate fileb://server.crt --private-key fileb://server.key --certificate-chain fileb://ca.crt

※ 위 방법 대신 수동으로 인증서 가져오는 방법(AWS 콘솔 로그인 -> ACM -> 인증서 가져오기
인증서 본문 : server.crt
인증서 프라이빗 키 : server.key
인증서 체인 : ca.crt

가. 서버 인증서 업로드


나. 인증서 업로드 확인
1.3 AWS Client VPN Endpoint 생성

The client CIDR range must have a block size that is between /12 and /22 and not overlap with VPC CIDR or any other route in the route table

위에서 등록한 인증서 사용을 위하여 Mutual authentication을 사용합니다.

AWS Console -> VPC -> 클라이언트 VPN 엔드포인트 생성을 선택합니다.

서버 인증서 및 클라이언트 인증서 ARN : 앞서 업로드한 서버인증서 선택
Split-tunnel 기능을 사용하지 않으면, 모든 트래픽이 VPN으로 향하기 때문에 split-tunnel(분할 터널) 기능 옵션을 체크합니다.
여기까지 설정을 한 후 클라이언트 VPN 엔드포인트 생성을 선택합니다.

연결(Associations)탭에서 연결을 선택하여 연결하고자 하는 VPC와 Subnet을 선택합니다.

권한부여(Authorization) 탭에서 Ingress 규칙을 생성합니다. 

Endpoint State가 Pending-associate에서 available로 변경될 때까지 기다립니다.

1.4 AWS Client VPN Endpoint 사용자 설정

클라이언트 구성 다운로드를 선택합니다.

다운로드한 설정 파일을 수정합니다.

클라이언트 인증서 – easy-rsa/easyrsa3/pki/issued/client1.domain.tld.crt

클라이언트 키 – easy-rsa/easyrsa3/pki/private/client1.domain.tld.key

</ca>태그 아래에 <cert> 태그와 <key> 태그를 추가합니다. 해당 내용은 클라이언트 인증서 및 클라이언트 키 파일에 각각 있습니다.