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                                   │ 1false  │ 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
ssl sudah jadi

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=%identity

Setting 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
vpn strongswan sukses berjalan

Aktifkan IP Forwarding

echo 'net.ipv4.ip_forward = 1' > /etc/sysctl.conf

Aplikasikan perubahan tersebut

sysctl -p

Setting 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

Leave a comment

Your email address will not be published. Required fields are marked *