Justin의 개발 로그
article thumbnail
Published 2021. 3. 8. 13:23
AWS 클라이언트 VPN 생성 AWS_NCP

blog.naver.com/a_line1/222090298550

 

AWS 관리형 VPN 사용하기

해보고 싶었던 것이다. 외부의 접속이 되지 않는 사설망에 VPN을 통해 접속을 해보고 싶었다.​AWS를...

blog.naver.com

docs.aws.amazon.com/ko_kr/vpn/latest/clientvpn-admin/client-authentication.html#mutual

 

인증 - AWS 클라이언트 VPN

설치가 완료되면 읽을 수 있는 연결 프로필을 찾을 수 없다는 오류 메시지가 표시될 수 있습니다. 확인을 선택하여 이 메시지를 닫을 수 있습니다.

docs.aws.amazon.com

 

1. 인증서 생성

명령어 순서

 

아래 명령어에서 마지막 두 줄의 ap-northeast-2만 해당 리전으로 값을 맞추면 됨
ap-northeast-2 : 서울 리전

mkdir pmo_rsa
cd pmo_rsa
git clone https://github.com/OpenVPN/easy-rsa.git
cd easy-rsa/easyrsa3
./easyrsa init-pki
./easyrsa build-ca nopass
./easyrsa build-server-full server nopass
./easyrsa build-client-full client1.domain.tld nopass

mkdir ~/.ssh/pmo_rsa
cp pki/ca.crt ~/.ssh/pmo_rsa/
cp pki/issued/server.crt ~/.ssh/pmo_rsa/
cp pki/private/server.key ~/.ssh/pmo_rsa/
cp pki/issued/client1.domain.tld.crt ~/.ssh/pmo_rsa/
cp pki/private/client1.domain.tld.key ~/.ssh/pmo_rsa/
cd ~/.ssh/pmo_rsa

aws acm import-certificate --certificate fileb://server.crt --private-key fileb://server.key --certificate-chain fileb://ca.crt --region ap-northeast-2
aws acm import-certificate --certificate fileb://client1.domain.tld.crt --private-key fileb://client1.domain.tld.key --certificate-chain fileb://ca.crt --region ap-northeast-2

 

docs.aws.amazon.com/acm/latest/userguide/import-certificate-api-cli.html

 

Import a Certificate - AWS Certificate Manager

Import a Certificate You can import a certificate into ACM by using the AWS Management Console, the AWS CLI, or the ACM API. The following topics show you how to use the AWS Management Console and the AWS CLI. The private key of an imported certificate mus

docs.aws.amazon.com

 

2. 클라이언트 VPN 엔드포인트 생성

3. 클라이언트 구성 다운로드 및 cert, key 등록

 

 

다운받은 파일을 vi 편집기 등을 이용해 아래와 같이 <cert></cert> <key></key> 추가 

 

<cert>

client1.domain.tld.crt 파일 내용 삽입

</cert>
<key>

client1.domain.tld.key 파일 내용 삽입

</key>

client
dev tun
proto tcp
remote pmovpn.cvpn-endpoint-....prod.clientvpn.ap-northeast-2.amazonaws.com 443
remote-random-hostname
resolv-retry infinite
nobind
remote-cert-tls server
cipher AES-256-GCM
verb 3
<ca>
-----BEGIN CERTIFICATE-----
MIIDKDCCAhCgAwIBAgIJAOBIXl6AGKWnMA0GCSqGSIb3DQEBCwUAMBIxEDAOBgNV
zTqw9mtFaL/Sv0z+liTLt6Iy5VgrU8Qv3RCPRAynhkoeo88vHKEYOERnfCRiAk5K
...
08guwCIiN8Jl70QxsJ1NzyBPmVEAaTlXhZJwSX2pjop/00zUKEqtio5ngCo4YMT5
fz8foGjyi2ysh6YFI5pSclcnjK6VxQyxNbODgjQCc/SW7TVo+tffA9vmsz7s/Wzh
4aAnOlKk3kge+lUNdyKEzCplWWwKHx2vYEWN+S69+wWZcwjhbPCIHu8/rJE=
-----END CERTIFICATE-----

</ca>

<cert>
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            f6:4d:be:40:7c:d9:fc:56:...:af:a0:9b
    Signature Algorithm: sha256WithRSAEncryption
        Issuer: CN=pmo_aws
        Validity
            Not Before: Mar  8 00:49:23 2021 GMT
            Not After : Jun 11 00:49:23 2023 GMT
        Subject: CN=client1.domain.tld
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
                    00:ce:8c:ce:5c:8e:ce:bd:0d:6c:b3:4a:3b:1e:33:
...

                    f2:f8:76:fc:d1:8d:b6:b9:e7:a2:f0:59:50:47:e3:
                    48:67
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Basic Constraints:
                CA:FALSE
            X509v3 Subject Key Identifier:
                CC:73:DD:F2:1B:39:D1:FA:05:B0:1C:A0:FB:15:47:AD:29:A8:BC:03
            X509v3 Authority Key Identifier:
                keyid:60:77:3D:10:1A:52:A9:7C:BD:A3:D0:5C:89:75:61:FC:85:0F:04:14
                DirName:/CN=pmo_aws
                serial:E0:48:5E:5E:80:18:A5:A7

            X509v3 Extended Key Usage:
                TLS Web Client Authentication
            X509v3 Key Usage:
                Digital Signature
    Signature Algorithm: sha256WithRSAEncryption
         b8:19:65:da:93:cc:cb:45:72:98:f9:09:5d:18:03:8a:37:ff:
...         b7:56:4a:f1:25:fe:53:af:c1:08:13:e6:7d:7f:6d:56:44:53:
         1d:5a:c2:29
-----BEGIN CERTIFICATE-----
MIIDTjCCAjagAwIBAgIRAPZNvkB82fxWN51r0xavoJswDQYJKoZIhvcNAQELBQAw
... client1.domain.tld.crt 내용 삽입
uF2kR0vLA9V2b4HMt1ZK8SX+U6/BCBPmfX9tVkRTHVrCKQ==
-----END CERTIFICATE-----
</cert>

<key>
-----BEGIN PRIVATE KEY-----
MIIEwAIBADANBgkqhkiG9w0BAQEFAASCBKowggSmAgEAAoIBAQDOjM5cjs69DWyz
...  client1.domain.tld.key 내용 삽입
Cs2hfZPW1itzIlnFPwlOqSKl1J8=
-----END PRIVATE KEY-----
</key>


reneg-sec 0

 

4. 연결, 보안그룹, 권한 부여, 라우팅 테이블 셋팅

연결 - 접속 하려는 VPC 연결

 

보안 그룹 에 Target 서버의 CIDR 추가

  - 특이하게 인바운드에 접속 대상 subnet의 CIDR 대역을 잡아줘야 함
  - 다시 말해 일반적으로 인바운드에 접속을 하는 Origin IP 대역을 잡는 것이 보통이지만, 
    VPN Client의 경우 Target IP CIDR을 추가해 주어야 접속이 됨

 - 권한 부여  (VPC와 subnet의 권한을 모두 부여해야 함)

     VPC의 CIDR 권한 부여
     subnet의 CIDR 권한 부여

- 라우팅 테이블

   설정을 제대로 했다면 VPC 라우팅 테이블은 자동으로 Default로 잡힘
    아래 0.0.0.0/0 을 add-route로 잡아주면 return traffic까지 라우팅이 잡힘(필요한 경우만 추가)

 

 

5. AWS Client VPN for WIndows or macOS 다운로드 및 설치

docs.aws.amazon.com/vpn/latest/clientvpn-user/connect-aws-client-vpn-connect.html

 

Connect using an AWS provided client - AWS Client VPN

Connect using an AWS provided client You can connect to a Client VPN endpoint using the AWS provided client. The AWS provided client is supported only on Windows and macOS. OpenVPN directives The AWS provided client supports the following OpenVPN directive

docs.aws.amazon.com

설치 후 연결 생성 -> 3에서 만든 "클라이언트 구성 다운로드" 파일로 연결 생성

 

profile

Justin의 개발 로그

@라이프노트

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!