이번 포스트에서는 Docker
를 활용하여 OpenVPN 서버를 구축하는 방법에 대해서 알아보겠습니다.
환경 변수 등록하기
1
| export OVPN_DATA="/home/{username}/openvpn"
|
OpenVPN 설정 및 실행
1
2
3
4
5
| docker run -v $OVPN_DATA:/etc/openvpn --rm kylemanna/openvpn ovpn_genconfig -u udp://{HOST}
docker run -v $OVPN_DATA:/etc/openvpn --rm -it kylemanna/openvpn ovpn_initpki
docker run -v $OVPN_DATA:/etc/openvpn -d -p 1194:1194/udp --cap-add=NET_ADMIN kylemanna/openvpn
|
사용법
1
2
3
4
5
6
7
| docker run -v $OVPN_DATA:/etc/openvpn --rm -it kylemanna/openvpn easyrsa build-client-full {USER_NAME} nopass # 클라이언트 생성
docker run -v $OVPN_DATA:/etc/openvpn --rm kylemanna/openvpn ovpn_getclient {USER_NAME}> {USER_NAME}.ovpn # ovpn 파일 가져오기
docker run --rm -it -v $OVPN_DATA:/etc/openvpn kylemanna/openvpn ovpn_revokeclient {USER_NAME} remove # 클라이언트 삭제
docker run -v $OVPN_DATA:/etc/openvpn --rm -it kylemanna/openvpn vi /etc/openvpn/openvpn.conf # OpenVPN 설정 열기
|
설정 파일 예시
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| ...
duplicate-cn # enable multiple connections with sigle cert
max-clients 30
### Route Configurations Below
route 192.168.254.0 255.255.255.0
data
### Push Configurations Below
#push "block-outside-dns"
#push "dhcp-option DNS 8.8.8.8"
#push "dhcp-option DNS 8.8.4.4"
push "comp-lzo no"
push "route {VPC_CIDR} {SUBNET_MASK}"
# example of 10.1.0.0/16
# push "route 10.1.0.0 255.255.0.0"
|