1. Installation

1.1 Docker

아래 링크를 보면서 docker를 설치합니다.
https://docs.docker.com/engine/install/ubuntu/

아래 링크를 통해서 docker compose를 설치합니다.
https://docs.docker.com/compose/install/

EC2 Security Group

  • Inbound
    • UDP / 1194 가 열려 있어야 합니다. source 부분을 현재 IP Address 또는 회사 주소로 해 놓습니다.

1.3 OpenVPN on EC2

아래 링크를 참조해서 OpenVPN을 설치합니다.

https://github.com/kylemanna/docker-openvpn

아래 코드 중에서 VPN.SERVERNAME.COM 를 실제 EC2 host 로 변경해 줍니다.
예를 들어서 ec2-11-11-111-111.ap-northeast-2.compute.amazonaws.com 같은 주소입니다.

$ export OVPN_DATA="/home/ubuntu/openvpn/"
$ docker run -v $OVPN_DATA:/etc/openvpn --rm kylemanna/openvpn ovpn_genconfig -u udp://VPN.SERVERNAME.COM
$ docker run -v $OVPN_DATA:/etc/openvpn --rm -it kylemanna/openvpn ovpn_initpki
  • passphrase: 대충 암호 넣습니다.
  • comman name: 그냥 엔터
$ docker run -v $OVPN_DATA:/etc/openvpn -d -p 1194:1194/udp --cap-add=NET_ADMIN kylemanna/openvpn

# 실행중단시 자동으로 restart하게 만듭니다.
$ docker update --restart=always {docker_container_id}

암호없는 Client Certificate 을 생성합니다.
awsvpn 은 적절한 이름으로 수정을 합니다.

$ docker run -v $OVPN_DATA:/etc/openvpn --rm -it kylemanna/openvpn easyrsa build-client-full awsvpn nopass

Client configuration 파일을 docker에서 꺼냅니다.

$ docker run -v $OVPN_DATA:/etc/openvpn --rm kylemanna/openvpn ovpn_getclient awsvpn > awsvpn.ovpn

Local computer에서 awsvpn.ovpn 을 가져옵니다.

$ scp -i ~/.ssh/aws.pem ubuntu@ec2-11-11-111-111.ap-northeast-2.compute.amazonaws.com:/home/ubuntu/awsvpn.ovpn ./