Menggunakan docker untuk openvpn server
Saat ini saya sering sekali mengunakan VPN untuk browsing website karena banyak sekali website yang di block ataupun lambat diakses pada saat menggunakan Indihome :(
Saya menggunakan instance Amazon Lightsail dan menggunakan Pritunl sebagai penyedia VPN
Tetapi ada beberapa masalah setelah memakai pritunl, yaitu:
Masalah
- Amazon Lightsail instance hanya mempunyai 512MB Memory
- Pritunl membutuhkan banyak resouces yang banyak tidak terpakai (bloated)
- Proses instalasi yang rumit
Solusi
OpenVPN - Service VPN yang membutuhkan resource kecil dan tidak bloated
Docker - Proses installasi container yang sangat mudah yang dapat dibantu dengan docker-compose
docker-openvpn - Container OpenVPN
Kareana deployment service lain yang ada pada VPS juga menggunakan docker, jadi hanya menambahkannya pada docker-compose.yml
# docker-compose.yml
version: '3.8'
services:
openvpn:
cap_add:
- NET_ADMIN
image: kylemanna/openvpn
container_name: openvpn
ports:
- "1194:1194/udp"
restart: always
volumes:
- ./openvpn-data/conf:/etc/openvpn
Lalu kita setup openvpn pada VPS
$ docker-compose run --rm openvpn ovpn_genconfig -u udp://openvpn.andrikurnia.com
$ docker-compose run --rm openvpn ovpn_initpki
Setelah kita selesai proses setup kita dapat menjalankan openvpn service
$ docker-compose up -d openvpn
$ docker-compose ps
Name Command State Ports
----------------------------------------------------
openvpn ovpn_run Up 0.0.0.0:1194->1194/udp
Oke, sekarang openvpn server kita sudah jalan
Next, kita generate client (.ovpn) file yang akan kita pakai pada device
$ docker-compose run --rm openvpn easyrsa build-client-full andrikurnia
$ docker-compose run --rm openvpn ovpn_getclient andrikurnia > andrikurnia.ovpn
Kita dapat mengambil file andrikurnia.ovpn
pada server menggunakan scp ataupun ftp :tada:
Sekarang hanya ada service openvpn! tidak ada web client ataupun service lain yang tidak terpakai :)
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
764ca078df3a openvpn 1.28% 2.98MiB / 482.4MiB 0.62% 690MB / 707MB 13.1MB / 0B 1