본문 바로가기

Networking

[실습] AWS Client VPN 구성하기 (OpenVPN, 구글OTP 2차 인증)-2편

반응형

안녕하세요 서후아빠입니다. ^_^

이번 세션은 3rd-Party OpenVPN을 이용하여 Client VPN 구성하되 ID/PW + 2FA(구글 OTP) 인증하는 실습을 해보겠습니다.

AWS에서 제공되는 Client VPN으로 2FA 사용하기 위해서는 Active Directory를 구성해야 하기 때문에 구성이나 비용 측면으로 효율성이 낮아 보입니다. 그래서 제가 선택한 것이 3rd Party입니다. 이번에 실습하는 OpenVPN 이외에도 다양한 제품이 Market Place에 등록되어 있으므로 비교 판단하여 선택하시면 될 것입니다. 

 

2022.07.01 - [Networking] - [실습] AWS Client VPN 구성하기 (OpenVPN)-1편


구성도

Client VPN으로 접속 하면 User Cleint가 OpenVPN 인스턴스와 연결되고, 이후 priA-ec2를 사설 IP로 접근이 가능합니다.
  ① User Client에서 OpenVPN으로 Client VPN 연결에 대한 Profile(ID/PW + 구글OTP)을 등록하여 VPN 연결합니다.
      - VPN 터널링이 되면 Local(User Client)는 172.168.0.0/20 대역 중 하나의 IP를 부여 받음
      - Local에 부여된 터널용 IP(172.27.224.0/20)는 터널 구간(IDC~AWS)구간에서만 사용
  ② VPN이 연결되면 OpenVPN(Proxy 역할) 경유하여 IDC에서 AWS로 Private 통신이 가능합니다. 

사전 작업

인프라 생성 : vpc, subnet, igw, routing table, iam, ec2  등은 설명 생략합니다. 

2022.07.02 - [Networking] - [실습] Amazon VPC 구성요소 생성하기

 

[실습] Amazon VPC 구성요소 생성하기

안녕하세요 서후아빠입니다. ^_^ 이번 세션은 VPC 관련 구성요소에 대해서 실습을 해보겠습니다. 구성도 1단계 : VPC 생성 VPC > Your VPCs > Create VPC 구분 VPC settings (VPC Only 방식) VPC settings (VPC a..

sh-t.tistory.com

1단계 : OpenVPN (EC2) 인스턴스 생성

EC2 > Instances > Launch instances > Launch instances

Name and tags Applicatoin and OS Images Instance type Network settings
Name : OpenVPN OpenVPN Access Server (5 Connected Devices) t2.small VPC : vpcA
Subnet : pubA-sn
Auto-assign public IP : Enable
Firewall :  신규 생성 or 기존 선택
OpenVPN Access Server는 Connected Devices에 따라 다양하게 등록되어 있습니다. (5, 10, 25, 50, 100, 250, 500)
 - 5 Connected Devices 경우 비용은 t2.small (제조사 권고)기준으로 $ 0.0125/H 입니다.

실습을 위해서 고정 EIP를 할당하지 않았지만, 실 사용에서는 꼭 고정 EIP를 별도 연결하시기 바랍니다. Client 파일에 EIP가 등록되어 있기 때문에 OpenVPN Server의 EIP가 변경이 발생하면 Client 접속이 되지 않습니다.

2단계 : OpenVPN (EC2) 접속 및 약관 동의

SSH 접속 정보

SSH Port ID Key Pair
22 openvpnas EC2 생성 시 선택한 key 선택

SSH 접속 후, 약관 동의 등 진행 > 마지막에 접속 URL 확인

# 약관 동의 
Welcome to OpenVPN Access Server Appliance 2.8.5
…
Please enter 'yes' to indicate your agreement [no]: yes

… 이하 내용은 기본값(Enter)로 진행 …

# 약관 동의 마지막에 접속 URL 확인
During normal operation, OpenVPN AS can be accessed via these URLs:
Admin  UI: https://3.35.136.66:943/admin
Client UI: https://3.35.136.66:943/

기본 계정(openvpn)의 패스워드 생성

# 패스워드 생성 
openvpnas@ip-10-0-1-210:~$ sudo passwd openvpn
Enter new UNIX password: Qew123!@#
Retype new UNIX password: Qew123!@#
passwd: password updated successfully

3단계 : 사용자 생성 (Admin 페이지)

웹 브라우저에서 https://3.35.136.66:943/admin 연결하여 접속 (ID / PW : openvpn / Qwe123!@#)

USER MANAGEMENT > User Permissions > 아래처럼 사용자 등록(ID / PW : user01 / Qwe123!@#) > Save Settings > 팝업창에서 “Update Running Server”

사용자는 라이선스 수량과 관계없이 등록할 수 있습니다. 
OpenVPN 라이선스는 사용자 기반이 아닌 VPN Connections 기반입니다.

4단계 : 2FA  활성화 (Admin 페이지)

AUTHENTICATION > General > Google Authenticator Multi-Factor Authentication “Yes” > Save Settings > 팝업창에서 “Update Running Server”

Google Authenticator Multi-Factor Authentication이 TOTP-based Multi-Factor Authentication로 용어 변경
  - AUTHENTICATION > Settings > TOTP Multi-Factor Authentication 활성화 
  - USER MANAGEMENT > User Permissions > 사용자 선택하여 수정모드 > TOTP Multi-Factor Authentication 활성화 
  - 참고 : https://openvpn.net/vpn-server-resources/google-authenticator-multi-factor-authentication/

5단계 : Client 다운로드 (Client 페이지)

웹 브라우저에서 https://3.35.136.66:943/ 연결하여 접속 (ID / PW : user01 / Qwe123!@#)

2FA(구글 OTP) 인증 > 초기 패스워드 변경 > Client 다운로드 : 아래 이미지 참조

 

6단계 : Client 설치 및 접속 (Windows 경우)

다운로드 받은(ex : openvpn-connect-3.1.3.713_signed.msi) 파일 설치

OpenVPN Connect 더블클릭하여 실행하고, “>” 클릭 2번 진행하면 아래처럼 팝업창 발생 > AGREE > OK

Linux, Mac, iOS 등 OS에 따라 이미지 내용이 다를 수 있습니다. 

Profile 생성 > ID / PW 입력 (user01 / Qwe123!@#) > 2FA(구글 OTP) 인증 > VPN 연결 : 아래 이미지 참조

7단계 : EC2 접속 테스트

터미널 프로그램(ex : MobaXterm)을 이용하여 priA-ec2 접속 시도 : 설명 생략 

터미널 프로그램으로 파일(ex : 200MB) 업로드(ex : 35.14 Mb/s) 및 다운로드(ex : 8.17 Mb/s) 속도 테스트 결과 

사용자 PC의 회선 속도에 따라 업로드 및 다운로드 속도는 상이할 수 있습니다.

8단계 : VPN 연결 로그 (Admin 페이지)

STATUS > Current Users

STATUS > Log Reports

기타 : 사용자별 서버접근제어  설정 방법

브라우저에서 https://3.35.136.66:943/admin 연결하여 접속 (ID / PW : openvpn / Qwe123!@#)하여 설정

A사용자는 서버A만 접속하고, B사용자는 서버B나 서버C를 접속 허용하는 설정

1. CONFIGURATION > VPN Settings > Rouing 아래처럼 설정 > Save Settings > Update Running Server

Routing은 기본값이 NAT모드이며, 서버접근제어 구성할 경우 Routing모드로 변경해야 합니다.
허용하는 Private subnet이 여러개일 경우는 한줄에 한개씩 입력하면 됩니다.

2. CONFIGURATION > Advanced VPN > Private Routed Subnets (Optional) 아래처럼 설정 > Save Settings > Update Running Server

1에 설정한 동일한 값으로 설정합니다.

3. USER MANAGEMENT > User Permissions > 사용자 선택하여 수정모드 > Access Control 아래처럼 설정 > Save Settings > Update Running Server

사용자별로 접근허용할 서버 IP 정보를 입력합니다. 
한줄에 한개씩 입력하면 됩니다. 

 

반응형