Salah satu VPN yang populer dan banyak digunakan adalah L2TP. Ini adalah VPN yang cross platform dan sudah tersedia secara default pada beberapa perangkat client seperti windows, android, macos, pada linux biasanya kita harus memasang paket terlebih dahulu.

Jika kalian pernah nyoba install l2tp/ipsec server pada ubuntu pasti langkahnya sangat ribet sekali dan akan menguras cukup banyak waktu untuk konfigurasi dan testing. Pada artikel ini kita akan belajar bersama bagaimana cara install L2TP/IPsec VPN Server pada Docker Container yang nantinya akan sangat simpel sekali.

Prasyarat

  1. Sudah menginstall docker
  2. Jika akan digunakan di internet maka harus memiliki ip publik, disini tkjpedia menggunakan VPS

Install L2TP/IPsec VPN Server di Docker Container

Pada saat artikel ini dibuat, tkjpedia menggunakan docker versi 20.10.13 build a224086

Pull image dari https://hub.docker.com/r/hwdsl2/ipsec-vpn-server

docker pull hwdsl2/ipsec-vpn-server:debian

Jalankan Docker Container L2TP

docker run \
    --name ipsec-vpn-server \
    --restart=always \
    -v ikev2-vpn-data:/etc/ipsec.d \
    -v /lib/modules:/lib/modules:ro \
    -p 500:500/udp \
    -p 4500:4500/udp \
    -d --privileged \
    hwdsl2/ipsec-vpn-server:debian

Maka hasilnya akan seperti gambar dibawah.

Mendapatkan username dengan melihat log

docker logs ipsec-vpn-server

Coba di Windows

Kita bisa mencoba nya telebih dahulu, jika error pada windows teman teman bisa melakukan perintah dibawah ini menggunakan cmd dengan run as administrator.

REG ADD HKLM\SYSTEM\CurrentControlSet\Services\PolicyAgent /v AssumeUDPEncapsulationContextOnSendRule /t REG_DWORD /d 0x2 /f

Tambahkan VPN pada pengaturan

Isikan formulir sesuai informasi pada log di atas

Jika berhasil maka akan bisa terkoneksi seperti gambar dibawah ini

Cek IP Address publik

Tambah User VPN

Kita bisa menambahkan user sebanyak yang kita mau menggunakan environment dengan cara kita menjalankan ulang container nya.

Pertama, hapus dulu container yang sekarang sudah berjalan dengan command berikut

root@ubuntu-1cpu-1gb-sg-sin1:~# docker stop ipsec-vpn-server
ipsec-vpn-server
root@ubuntu-1cpu-1gb-sg-sin1:~# docker rm ipsec-vpn-server
ipsec-vpn-server
root@ubuntu-1cpu-1gb-sg-sin1:~#

Kemudian jalankan kembali image nya menggunakan command seperti dibawah ini

docker run \
    --name ipsec-vpn-server \
    --restart=always \
    -v ikev2-vpn-data:/etc/ipsec.d \
    -v /lib/modules:/lib/modules:ro \
    -p 500:500/udp \
    -p 4500:4500/udp \
    -d --privileged \
    -e VPN_IPSEC_PSK='rahasia' \
    -e VPN_USER='vpnutama' \
    -e VPN_PASSWORD='rahasiautama' \
    -e VPN_ADDL_USERS='vpnkedua vpnketiga vpnkeempat' \
    -e VPN_ADDL_PASSWORDS='rahasiakedua rahasiaketiga keempat' \
    hwdsl2/ipsec-vpn-server:debian

Keterangan

  1. VPN_IPSEC_PSK = ipsec secret
  2. VPN_USER & VPN_PASSWORD = akun vpn utama
  3. VPN_ADDL_USERS & VPN_ADDL_PASSWORDS = akun tambahan, ditulis dengan format user1 user2 user3

Selamat mencobaaa…