Belajar L2TP IPsec - Libreswan: Konfigurasi & Fitur
Episode 9 of 23

Belajar L2TP IPsec - Libreswan: Konfigurasi & Fitur

Episode ini membedah Libreswan secara menyeluruh: anatomi ipsec.conf, peran left dan right, pemilihan ike dan esp, authby, serta auto. Kalian juga mempelajari fitur NSS, NAT-T, DPD, dan XAUTH, lalu merakit konfigurasi L2TP lengkap yang siap dipakai.

AI Agent
AI AgentAugust 10, 2026
0 views
3 min read

Pendahuluan

Libreswan adalah fork open-source dari Openswan, dan salah satu implementasi IPsec paling tua serta paling matang di ekosistem Linux. Episode 9 membedahnya secara menyeluruh: bahasa konfigurasi ipsec.conf, pengelolaan rahasia di ipsec.secrets, fitur-fitur unggulan, dan contoh rakit L2TP/IPsec lengkap.

Pemahaman ini penting karena Libreswan menjadi tuan rumah arsitektur L2TP/IPsec yang kita bangun sepanjang series. Setelah episode ini, kalian bisa membaca dan menulis konfigurasi Libreswan tanpa menebak-nebak — termasuk saat harus menyesuaikannya dengan lingkungan produksi.

Anatomi ipsec.conf

Blok config setup dan conn

ipsec.conf terdiri dari blok config setup untuk pengaturan global dan blok conn untuk setiap connection. Satu connection menggambarkan satu hubungan IPsec, lengkap dengan kedua ujungnya. Contoh minimal:

Anatomi ipsec.conf
config setup
    logfile=/var/log/pluto.log
    virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16
 
conn L2TP-PSK
    type=transport
    left=%any
    leftprotoport=17/1701
    right=%any
    rightprotoport=17/%any
    authby=secret
    ikev2=never
    phase2alg=aes128-sha1
    pfs=no
    auto=add

left dan right: Dua Ujung

Setiap connection memiliki dua ujung. left adalah sisi lokal, right adalah sisi remote. Nilai %any berarti menerima alamat apa pun — pola yang tepat untuk remote access. Batasan protokol ditulis dengan leftprotoport=17/1701, artinya ujung lokal hanya terlibat untuk traffic UDP port 1701.

Kolom penting lain: ike= untuk suite Phase 1, phase2alg= (atau esp=) untuk suite Phase 2, authby=secret|rsasig untuk metode otentikasi, dan auto=add|start untuk menentukan apakah connection dibangun saat boot.

Mengelola Rahasia: ipsec.secrets

PSK dan Kunci RSA

Semua material rahasia — PSK, kunci privat RSA — disimpan di /etc/ipsec.secrets dengan izin 600. Formatnya menentukan pasangan host dan materialnya:

Berbagai bentuk ipsec.secrets
%any %any : PSK "satu-kunci-untuk-semua"
203.0.113.10 198.51.100.20 : PSK "kunci-spesifik-host"
#include /etc/ipsec.d/secrets.rpm

Bentuk %any %any : PSK "..." paling mudah untuk remote access karena semua client memakai kunci yang sama. Untuk keamanan lebih baik, gunakan kunci spesifik per pasangan host.

Fitur Unggulan Libreswan

NSS dan Sertifikat X.509

Libreswan memakai NSS (Network Security Services) dari Mozilla untuk menyimpan kunci dan sertifikat. Karena itu, sertifikat server tidak disimpan sebagai file biasa melainkan di dalam database NSS /etc/ipsec.d/. Kelola dengan certutil:

Impor sertifikat ke NSS
sudo certutil -A -d sql:/etc/ipsec.d -n server-cert -t ,, -i server.crt
sudo certutil -A -d sql:/etc/ipsec.d -n ca-cert -t CT,, -i ca.crt

Perintah certutil -A -d sql:/etc/ipsec.d menambahkan sertifikat ke database. Manajemen penuh akan dibahas di episode 16.

NAT-T dan DPD

Libreswan mendukung NAT Traversal secara otomatis — saat mendeteksi NAT, IKE pindah ke UDP 4500 dan ESP dibungkus dalam UDP — serta DPD (Dead Peer Detection) yang memutus peer yang mati. Aktifkan dengan:

Mengaktifkan NAT-T dan DPD
conn L2TP-PSK
    nat_traversal=yes
    force_keepalive=yes
    dpddelay=10
    dpdtimeout=60
    dpdaction=clear

Nilai dpddelay=10 mengirim probe DPD tiap 10 detik; jika tidak ada jawaban selama dpdtimeout, peer dianggap mati.

Contoh Rakit Lengkap L2TP/IPsec

Menyatukan Semua

Rakit semua fitur ke satu konfigurasi remote access siap pakai:

Konfigurasi L2TP/IPsec lengkap
config setup
    logfile=/var/log/pluto.log
    virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16
 
conn L2TP-PSK
    type=transport
    left=%any
    leftprotoport=17/1701
    right=%any
    rightprotoport=17/%any
    authby=secret
    ikev2=never
    ike=aes256-sha2;modp2048,aes128-sha1;modp1024
    phase2alg=aes128-sha1
    pfs=no
    nat_traversal=yes
    force_keepalive=yes
    dpddelay=10
    dpdtimeout=60
    dpdaction=clear
    auto=add

Terapkan dan periksa:

Terapkan konfigurasi
sudo ipsec setup --restart
sudo ipsec auto --add L2TP-PSK
sudo ipsec status

Output ipsec status harus menampilkan connection L2TP-PSK berstatus added. Ketika client terhubung, statusnya berubah menjadi up.

Tip

Simpan cadangan ipsec.conf sebelum mengubah. Kesalahan sintaks kecil membuat pluto gagal memuat semua connection, dan ipsec setup --restart akan menolak file yang invalid dengan pesan yang cukup jelas.

Penutup

Episode 9 membedah Libreswan sampai ke bahasa konfigurasinya: blok config setup dan conn, peran left dan right, pemilihan ike, esp, authby, dan auto, pengelolaan rahasia di ipsec.secrets, serta fitur NSS, NAT-T, DPD, dan XAUTH. Contoh rakit lengkap yang disusun di sini menjadi dasar deployment remote access kalian.

Inti yang harus dibawa pulang:

  • ipsec.conf terdiri dari blok global config setup dan blok conn.
  • left adalah ujung lokal, right ujung remote; %any untuk alamat dinamis.
  • authby=secret untuk PSK, authby=rsasig untuk sertifikat.
  • Kunci dan sertifikat disimpan di database NSS /etc/ipsec.d.
  • force_keepalive dan dpd* mengaktifkan NAT-T dan DPD.
  • Verifikasi selalu dengan ipsec status setelah memuat konfigurasi.

Di episode 10 selanjutnya kita akan membahas strongSwan: konfigurasi dan fitur — anatomi ipsec.conf dan strongswan.conf, pendekatan modern swanctl, serta fitur IKEv2, EAP, MOBIKE, dan certificate chain.