VPN merupakan singkatan dari Virtual Private Network, yang pada dasarnya merupakan salah satu cara untuk mengamankan koneksi dengan membuat secured connection PTP. Salah satu tool open source yang sering digunakan untuk membuat VPN server adalah OpenVPN. Untuk pembuatan OpenVPN server ini, kita akan menggunakan Docker agar server host “bersih”, karena sifat docker yang merupakan software kontainer. Bagi yang belum paham dengan docker, bisa baca tulisan saya mengenai docker disini [Setup Docker di WSL2].

  1. Langkah pertama, mari kita buat terlebih dahulu direktori volume yang nantinya akan menghubungkan file konfigurasi.

    mkdir vpn-data && touch vpn-data/vars
    
  2. Kemudian kita akan menggunakan Docker dari OpenVPN Server untuk menggenerate file konfigurasi.

    docker run -v $(pwd)/vpn-data:/etc/openvpn --rm kylemanna/openvpn ovpn_genconfig -u udp://$(curl ifconfig.co):3000
    
  3. Lalu, kita siapkan sebuah kunci untuk pengamanan dengan membuat sertifikat.

    docker run -v $(pwd)/vpn-data:/etc/openvpn --rm -it kylemanna/openvpn ovpn_initpki
    
  4. Selanjutnya, kita jalankan server VPN dengan menggunakan file konfigurasi yang telah kita buat tadi.

    docker run -v $(pwd)/vpn-data:/etc/openvpn -d -p 3000:1194/udp --cap-add=NET_ADMIN kylemanna/openvpn
    
  5. Sekarang, kita buat akun user agar dapat menggunakan server.

    docker run -v $(pwd)/vpn-data:/etc/openvpn --rm -it kylemanna/openvpn easyrsa build-client-full firstuser nopass
    

    Pada contoh ini, kita menggunakan contoh firstuser dengan tanpa menggunakan password. Bila ingin menambahkan password pada akun user yang dibuat, cukup menghilangkan flag nopass pada command tersebut.

  6. Ambil konfigurasi user yang telah dibuat di dalam kontainer OpenVPN ke host kita.

    docker run -v $(pwd)/vpn-data:/etc/openvpn --rm kylemanna/openvpn ovpn_getclient firstuser > firstuser.ovpn
    

Untuk menggunakan akun OpenVPN tersebut, kita bisa menggunakan OpenVPN Connect App yang mana tersedia dalam beberapa platform. Kalian bisa mengecek platform yang tersedia pada link berikut: https://openvpn.net/vpn-client/