Banyak perusahaan ataupun orang memilih menggunakan IPsec karena support IPsec sudah ada dimana-mana, hampir semua sistem operasi mendukung IPsec tanpa perlu tambahan software lain. Salah satu software yang bisa digunakan untuk membuat server VPN IPsec adalah Strongswan, software tersebut juga yang akan kita gunakan di tutorial kali ini.
Beberapa hal yang perlu di perhatikan/kebutuhan adalah
– IPsec bisa di install tanpa SSL
– Ubuntu 20.04 dengan Public IP
– Client bisa mengunakan Windows, MacOS, Linux, Android ataupun iOS.
– Akses root
Setting DNS
Untuk mendapatkan SSL gratis terlebih dahulu setting DNS record ke IP server
┌────────┬────────────────────────────────────────┬──────────────────────────────────────────────────┬──────────┬────────┬──────────────────────────────────┐ │ Type │ Name │ Value │ TTL │ Active │ ID │ ├────────┼────────────────────────────────────────┼──────────────────────────────────────────────────┼──────────┼────────┼──────────────────────────────────┤ │ A │ ipsec.jaranguda.com │ 192.168.100.87 │ 1 │ false │ aasdasdsadasdasdasdasdadasdsadas │ └────────┴────────────────────────────────────────┴──────────────────────────────────────────────────┴──────────┴────────┴──────────────────────────────────┘
Install dependency
sudo apt install curl socat -y
Install acme.sh Lets Encrypt Client
Daripada menggunakan self-sign SSL saya
curl https://get.acme.sh | sh
update perubahan di ~/.bashrc
source ~/.bashrc
Generate SSL
Untuk penggunaan SSLnya kita akan generate dengan acme.
acme.sh --issue -d ipsec.jaranguda.com --standalone
setelah menjalankan perintah tersebut, tunggu beberapa saat sampai muncul certificate yang diminta

Install Strongswan dan pluginnya
apt install strongswan strongswan-pki libcharon-extauth-plugins libcharon-extra-plugins -y
Konfigurasi IPsec
Ingat untuk merubah ipsec.EXAMPLE.com dengan domain yang ada buat sebelumnya.
Salin file sertifikat dan private key ke folder /etc/ipsec.d
cp /root/.acme.sh/ipsec.EXAMPLE.com/fullchain.cer /etc/ipsec.d/certs/ipsec.EXAMPLE.com.cer cp /root/.acme.sh/ipsec.EXAMPLE.com/ipsec.EXAMPLE.com.key /etc/ipsec.d/private/
Konfigurasi IPsec strongswan berada di file /etc/ipsec.conf, hapus file tersebut ganti dengan
config setup
plutostart=no
conn ipsec-jaranguda
auto=add
compress=no
type=tunnel
keyexchange=ikev2
fragmentation=yes
forceencaps=yes
dpdaction=clear
dpddelay=300s
rekey=no
left=%any
leftid=@ipsec.EXAMPLE.com
leftcert=ipsec.EXAMPLE.com.cer
leftsendcert=always
leftsubnet=0.0.0.0/0
right=%any
rightid=%any
rightauth=eap-mschapv2
rightsourceip=10.1.2.0/24
rightdns=1.1.1.1,8.8.8.8
eap_identity=%identitySetting IPsec Secret
Buka file /etc/ipsec.secrets, tambahkan
: RSA ipsec.jaranguda.com.key
jaranguda : EAP "PASSWORD-SUPER-AMAN"Restart service strongswan
Setelah melakukan perubahan tersebut, restart service strongswan

Aktifkan IP Forwarding
echo 'net.ipv4.ip_forward = 1' > /etc/sysctl.conf
Aplikasikan perubahan tersebut
sysctl -pSetting Iptables
Agar client yang menggunakan VPN bisa mengakses internet, setting IPTABLES sebagai berikut
iptables -t nat -A POSTROUTING -o eth0 -j ACCEPT iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sesuaikan eth0 dengan default interface yang digunakan. Untuk melihatnya gunakan ip route | grep default
# ip route | grep default
default via 192.168.1.2 dev eth0 proto static