Selayang Pandang
Sebetulnya gak terlalu ngerti sih gimana cara kerjanya VPN, taunya cuma singkatan dari VPN adalah Virtual Private Network. Dan taunya VPN itu digunakan untuk bypass web-web yang di blokir oleh provider tertentu. Selain itu VPN juga untuk melindungi data kita. Mmmm sebetulnya masih bingung juga sih gimana dengan VPN ini kita bisa terlindungi. Saya tahunya VPN itu adalah untuk mengakses jaringan kantor dari rumah. Tapi terus terang ya saya masih bingung juga gimana caranya, hehehe. Dan baru sekarang bisa praktek untuk membuat VPN server.
Pernah dibuatin PPTP sama provider di Mikrotik tapi kok labil, kadang connect kadang kagak dan kesini-sini jadinya malah kagak bisa connect, hehehe. Coba-coba buat OpenVPN tapi gak bisa-bisa, selalu masalah di certificate, dan nemu deh tutorialnya Muhammad Arul mengenai membuat VPN menggunakan Strongswan dan Let’s Encrypt di CentOS 7. OK, kita lanjut aja mengenai bagaimana cara membuat VPN menggunakan Strongswan dan Let’s Encrypt untuk mengakses jaringan kantor dari rumah dan dari mana aja, selama ada internet, hehehe.
Persiapan
Berikut yang harus dipersiapkan sebelum kita membuat VPN server menggunakan Strongswan.
- IP public
- Sub domain yang diarahkan ke IP public
- CentOS 7 server dengan root privileges
- Akses ke router (Mikrotik)
- Device dengan OS Windows dan macOS untuk testing sebagai VPN Client
Install Strongswan di CentOS 7
Seperti biasa, sebelum install lakukan update dan upgrade setelah itu mengaktifkan epel-release.
yum -y install epel-release
Dan dilanjutkan dengan menginstall Strongswan yang akan kita buat sebagai VPN Server.
yum -y install strongswan
Install Let’s Encrypt dan Generate Certificate
Kita install terlebih dahulu Let’s Encrypt
yum -y install certbot
Dan kemudian kita harus buka port HTTP dan HTTPS di server CentOS menggunakan firewall-cmd.
firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent
firewall-cmd --reload
Setelah itu kita generate certificate menggunakan Let’s Encrypt dengan perintah:
certbot certonly --rsa-key-size 4096 --standalone --agree-tos --no-eff-email --email aku@dartokloning.com -d vpn.dartokloning.com
Maka SSL certificate sudah dibuat untuk subdomain vpn.dartokloning.com yang diberada di folder ‘/etc/letsencrypt/live‘. Copy atau dibuat symbolic link certificate ke folder ‘/etc/strongswan/ipsec.d/‘.
cp /etc/letsencrypt/live/vpn.dartokloning.com/fullchain.pem /etc/strongswan/ipsec.d/certs/
cp /etc/letsencrypt/live/vpn.dartokloning.com/privkey.pem /etc/strongswan/ipsec.d/private/
cp /etc/letsencrypt/live/vpn.dartokloning.com/chain.pem /etc/strongswan/ipsec.d/cacerts/
Contoh diatas adalah dengan meng-copy certificate, jika hanya ingin membuat symbolic link yang mana sangat membantu jika nantinya saat proses update kita tidak perlu untuk mengcopy ulang ke folder Strongswan. Jika hanya ingin membuat symbolic link, bisa dengan perintah:
ln -s /etc/letsencrypt/live/vpn.dartokloning.com/fullchain.pem /etc/strongswan/ipsec.d/certs/
ln -s /etc/letsencrypt/live/vpn.dartokloning.com/privkey.pem /etc/strongswan/ipsec.d/private/
ln -s /etc/letsencrypt/live/vpn.dartokloning.com/chain.pem /etc/strongswan/ipsec.d/cacerts/
Konfigurasi Strongswan
Backup Konfigurasi Awal
Sebelum merubah konfigurasi, sebaikanya dibiasakan untuk melakukan backup konfigurasi tersebut.
cd /etc/strongswan/
mv ipsec.conf ipsec.conf.asli
Buat Konfigurasi Baru
vim ipsec.conf
Dan kemudian copy paste konfigurasi berikut ini dan harap dirubah disesuaikan dengan konfigurasi jaringan kantor Anda.
#global configuration IPsec
#chron logger
config setup
charondebug="ike 1, knl 1, cfg 0"
uniqueids=no
#define new ipsec connection
conn darto-vpn
auto=add
compress=no
type=tunnel
keyexchange=ikev2
ike=aes128-sha1-modp1024,aes128-sha1-modp1536,aes128-sha1-modp2048,aes128-sha256-ecp256,aes128-sha256-modp1024,aes128-sha256-modp1536,aes128-sha256-modp2048,aes256-aes128-sha256-sha1-modp2048-modp4096-modp1024,aes256-sha1-modp1024,aes256-sha256-modp1024,aes256-sha256-modp1536,aes256-sha256-modp2048,aes256-sha256-modp4096,aes256-sha384-ecp384,aes256-sha384-modp1024,aes256-sha384-modp1536,aes256-sha384-modp2048,aes256-sha384-modp4096,aes256gcm16-aes256gcm12-aes128gcm16-aes128gcm12-sha256-sha1-modp2048-modp4096-modp1024,3des-sha1-modp1024!
esp=aes128-aes256-sha1-sha256-modp2048-modp4096-modp1024,aes128-sha1,aes128-sha1-modp1024,aes128-sha1-modp1536,aes128-sha1-modp2048,aes128-sha256,aes128-sha256-ecp256,aes128-sha256-modp1024,aes128-sha256-modp1536,aes128-sha256-modp2048,aes128gcm12-aes128gcm16-aes256gcm12-aes256gcm16-modp2048-modp4096-modp1024,aes128gcm16,aes128gcm16-ecp256,aes256-sha1,aes256-sha256,aes256-sha256-modp1024,aes256-sha256-modp1536,aes256-sha256-modp2048,aes256-sha256-modp4096,aes256-sha384,aes256-sha384-ecp384,aes256-sha384-modp1024,aes256-sha384-modp1536,aes256-sha384-modp2048,aes256-sha384-modp4096,aes256gcm16,aes256gcm16-ecp384,3des-sha1!
fragmentation=yes
forceencaps=yes
dpdaction=clear
dpddelay=300s
rekey=no
left=%any
leftid=@vpn.dartokloning.com
leftcert=fullchain.pem
leftsendcert=always
leftsubnet=0.0.0.0/0
right=%any
rightid=%any
rightauth=eap-mschapv2
rightsourceip=10.0.7.0/24
rightdns=1.1.1.1,8.8.8.8
rightsendcert=never
eap_identity=%identity
Yang perlu diperhatikan adalah pada:
- Baris ke 8, ganti sesuai dengan nama yang koneksi diinginkan
- Baris ke 21, ganti dengan nama sub domain
- Baris ke 28, ganti dengan subnet IP jaringan di kantor
Selanjutnya, kita mengedit file konfigurasi ‘ipsec.secrets‘.
vim ipsec.secrets
Dan isi dengan username dan password yang nantinya akan digunakan untuk dial VPN IKEv2, dan bisa diisi sebanyak-banyaknya, dengan format:
: RSA "privkey.pem"
darto : EAP "kloning@n"
iphone : EAP "mWaoXk/0cdFYwiNZM1VG92lxGb+oWQPuaDXmyv/c4DVD0klKQUq9xgCVrkXpjWpL"
macosx : EAP "aj2@-X*qq-JMrB-3xDA"
Untuk passwordnya bisa disesuaikan dengan keinginan tapi disarankan agar complex karena ini menyangkut jaringan di kantor. Bisa generate menggunakan openssl seperti contoh di baris ke 3, yaitu dengan perintah:
openssl rand -base64 48
Atau bisa juga dengan menggunakan passgen yang ada di KLoningSpoon. Setelah proses membuat username dan password maka konfigurasi untuk Strongswan sudah selesai dan saatnya untuk dijalankan servicenya, dengan perintah:
systemctl start strongswan
systemctl enable strongswan
Mengaktifkan NAT di Firewalld
Dan saatnya untuk kita mengaktifkan NAT di Firewalld.
firewall-cmd --zone=public --permanent --add-rich-rule='rule protocol value="esp" accept'
firewall-cmd --zone=public --permanent --add-rich-rule='rule protocol value="ah" accept'
firewall-cmd --zone=public --permanent --add-port=500/udp
firewall-cmd --zone=public --permanent --add-port=4500/udp
firewall-cmd --zone=public --permanent --add-service="ipsec"
firewall-cmd --zone=public --permanent --add-masquerade
firewall-cmd --reload
Kita cek kembali dengan perintah:
firewall-cmd --list-all
Mengaktifkan Port-Forwarding
Jalankan perintah:
vim /etc/sysctl.conf
Dan copy paste kode berikut:
net.ipv4.ip_forward = 1
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
Cek kembali dengan perintah:
sysctl -p
Dan kemudian kita restart kembali Strongswan.
systemctl restart strongswan
Mengaktifkan NAT di Mikrotik
Login ke Mikrotik dan kemudian buka menu IP ⇒ Firewall ⇒NAT dan tambahkan masing-masing konfigurasi port yang dibutuhkan oleh Strongswan. Daftar port yang harus dibuka di Mikrotik adalah:
- Port 80/TCP yang digunakan untuk HTTP
- Port 443/TCP yang digunakan untuk HTTPS
- Port 500/UDP untuk paket data Strongswan
- Port 4500/UDP untuk paket data Strongswan
Berikut salah satu cara port-forwarding di Mikrotik, dan jangan lupa dikasih komentar setiap port yang dibuka yah, biar kita mudah mengetahui nantinya.
Membuat Koneksi VPN IKEv2
Membuat Koneksi VPN IKEv2 di macOS

Membuat koneksi VPN IKEv2 di Windows 10
Membuat Koneksi VPN IKEv2 di Windows 7



Membuat Koneksi VPN IKEv2 di iOS
Membuat Koneksi VPN IKEv2 di Android
Untuk di Android silakan di download saja aplikasi strongSwan VPN Client dan isi kolomnya seperti di iOS.
Selesai
Sebetulnya masih banyak diluar sana yang lebih lihai dan pintar dari pada saya terlebih toh ini tutorialnya cuma copy paste aja, ya tapi udah di buktikan sih dan pastinya berhasil, kalau gak berhasil ngapain juga dibuat postingan, hehehe. Semoga bisa bermanfaat untuk yang baca.
Keuntungan dalam membuat VPN server ini bisa dibilang sangat memudahkan bagi yang sering memonitoring kerjaan di kantor. Karena dengan membuat VPN server ini kita seperti memiliki perangkat dalam satu jaringan kantor, sehingga kita bisa akses data server menggunakan IP local dan tentunya jadi bisa remote desktop menggunakan IP local yang menjadi trik untuk membatasi limit waktu di TeamViewer, coba aja deh, hehehe.
OK, selamat praktek.