perkembangan teknologi container akhir-akhir ini memang sangat pesat, terlebih banyak sekali developer yang mengembangkan container seperti ini, contohnya proxmox
dalam tutorial kali ini kita akan mencoba membuat VPN Server menggunakan Pritunl, bagi yang belum tahu apa itu pritunl adalah aplikasi server OpenVPN dan IPsec dengan penambahan fitur sekelas enterprise yang dikembangkan dan didistribusikan secara opensource dengan fitur dasar yang bisa dipakai secara gratis, tentunya cukuplah bia digunakan untuk kebutuhan personal, untuk fitur yang lebih advance dibandrol dengan harga 10$-$50 perbulan, namun dengan fitur dasarpun saya rasa sudah cukup
Requierement:
pritunl mendukung berbagai macam distribusi linux, anda bisa menginstallnya di
- Arch Linux
- Amazon Linux
- Centos
- Debian
- Ubuntu
- Oracle
sedangkan untuk Pritunl Client mendukung berbagai macam system operasi dekstop maupun mobile seperti
- Window
- Linux
- Android
- IOS
- OSX
pada tutorial kali ini saya menggunakan spesifikasi server yang tidak perlu high specs. Pritunl saya install di Server LXC Proxmox dengan spesifikasi Processor Core 1, Memory 500MB dan HDD Container 15G
sebelum kita memulia install, agar kalian paham ke arah mana server melayani dan dikalayani saya akan menggambarkan topologi sederhana sebagai berikut

ip publik: 157.240.66.250
IP Pritunl: 192.168.10.233
OS : Ubuntu 18.04
Create LXC Container pada server Proxmox

pada tab general isi Hostname, password, dan SSH Public Key

Setting Template config sesuai dengan konfigurasi server proxmox kamu . Storage dan Templates, jika kalian belum ada templates container bisa download di menu
Local > Contents Templates > Pilih Template OS

Pada menu templates pilih OS ubuntu-18.04 standard

pada menu Root Disk saya mengalokasikan Disk Space 15 GB

untuk CPU Settings cukup 1 Core saja

untuk alokasi memory 512MB

untuk network source di eth0 dengan mode bridge vmbr0 dengan mode dhcp

untuk dns saya menggunakan dns cloudflare dan google

confirm dan lanjut install

berhubung jaringan yang saya gunakan melalui mikrotik maka kita perlu ip binding server kita, masuk ke mikrotik bisa melalu web atau winbox
klik menu IP > Hostpot > IP Bindings
lalu tambahkan Mac Address, To Address (sesuai ip yang kita dapat) dan Type “bypassed”

apt update
apt upgrade
tambahkan pritunl repository
echo "deb http://repo.pritunl.com/stable/apt bionic main" | sudo tee /etc/apt/sources.list.d/pritunl.list
tambahkan Mangodb Repository
nano /etc/apt/sources.list.d/mongodb-org-4.0.list
dengan editor nano tambahkan baris paling bawah dengan code berikut
deb https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse
tambahkan public key untuk pritunl dan mangodb
apt-key adv --keyserver hkp://keyserver.ubuntu.com --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
apt-key adv --keyserver hkp://keyserver.ubuntu.com --recv 7568D9BB55FF9E5287D586017AE645C0CF8E292A
apt update
Install Pritunl dan Mangodb
apt --assume-yes install pritunl mongodb-server
systemctl start pritunl mongodb
systemctl enable pritunl mongodb
Konfigurasi Pritunl
dalam mengakses pritunl melalu web panel, mungkin anda akan mengalami sertifik error, dikarena admin page pritunl sendiri dilindungi dengan ssl sertifikat, namun tinggal add exceptions saja untuk mengaksesnya, maka dari itu kita perlu mengatur firewall sebgai berikut, buka terminal kembali
ufw allow http
ufw allow https
ufw reload
pada awal pertama kali kalian akses admin panel maka akan nampak konfigurasi ini

pritunl setup-key
lalu pastekan generate key kedalamnya, setelah itu langkah selanjutnya adalah generate password credential untuk akses login ke dalam panel admin

pritunl default-password
ganti password dari generate key sesuai dengan password kalian dan jangan lupa isikan Public Address sesuai dengan public ip ISP anda

klik tab Users > Add Organization

klik mene Servers > Add Server dan isi konfigurasi sesuai berikut

setelah server ditambahkan klik attach organizations, kemudian klik attach

Jalankan Server
pada kasus ini saya menggunakan LXC server Proxmox untuk menjalankan server pada mulanya akan muncul error sebagai berikut:

untuk mengatasi error tersebut cukup dengan buka terminal server utama proxmox
kemuadian buka config lxc , sesuaikan dengan lxc id kalian, dalam kasus ini lxc number id saya di 109
pct stop 109
vim /etc/pve/lxc/109.conf
lalu tambahkan code berikut di line paling bawah
lxc.mount.entry: /dev/net/tun dev/net/tun none bind,create=file
lxc.cgroup.devices.allow: c 10:200 rwm
buka terminal dan jalan perintah berikut
ufw allow 14878
ufw reload
jalankan kembali server pritunl, dan buat user pada menu Users
dari sini server pritunl sudah terbuat, jika kalian install di cloud/vps tidak perlu lanjutkan membaca sampai tutorial selanjut cukup download config dah import ke pc client
tapi seperti yang sudah dijelaskan dalam topologi diatas, router saya menggunakan mikrotik maka perlu settingan khusus agar client dapet menerima request dari server di lxc
login ke mikrotik
klik IP>Firewall>Nat


masuk ke terminal ketikan perintah berikut:
netstat -tulnp

dari keterangan gambar diatas terlihat bahwa port pritunl 14878 tcp6, berhubung jaringan hanya mendukung ipv4 maka kita perlu sedikit configurasi,
kembali ke terminal lalu ketikan perintah berikut:
mongo
use pritunl
db.settings.find({_id:"vpn"})
db.settings.update({_id:"vpn"}, { $set: { ipv6: false, ipv6_route_all: false } })
exit
netstat tulnp

got it, akhirnya tcp6 berubah menjadi tcp ipv4, untuk lebih jelasnya kalian bisa check menggunakan web https://www.yougetsignal.com/tools/open-ports/
