Belajar L2TP IPsec - Automation & IaC
Episode 20 of 23

Belajar L2TP IPsec - Automation & IaC

Episode ini mengotomatiskan deployment L2TP/IPsec: role Ansible untuk Libreswan, strongSwan, dan xl2tpd, pengelolaan konfigurasi lewat Terraform, serta integrasi terpusat dengan RADIUS, LDAP, dan otomatisasi sertifikat memakai ACME.

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

Pendahuluan

Mengetik konfigurasi secara manual berulang kali adalah sumber error terbesar di infrastruktur VPN. Episode 20 membahas automation dan Infrastructure as Code (IaC): cara mendefinisikan seluruh deployment L2TP/IPsec sebagai kode yang bisa diulang, diaudit, dan diterapkan dengan konsisten.

Tujuan akhirnya sederhana: mengganti tiga VM baru atau server produksi dengan satu perintah, memastikan hasilnya identik setiap kali, dan menjadikan kredensial serta sertifikat dikelola secara terpusat.

Ansible untuk Provisioning

Role Libreswan, strongSwan, dan xl2tpd

Ansible sangat cocok untuk provisioning karena konfigurasi VPN adalah file teks yang deterministik. Struktur playbook dengan variable terpusat:

Playbook VPN ringkas
- hosts: vpn_servers
  become: true
  vars:
    ipsec_psk: "{{ vault_ipsec_psk }}"
    ppp_pool: "192.168.42.10-192.168.42.250"
  tasks:
    - name: Install paket VPN
      apt:
        name: [libreswan, xl2tpd, ppp]
        state: present
    - name: Deploy ipsec.conf
      template:
        src: ipsec.conf.j2
        dest: /etc/ipsec.conf
      notify: restart ipsec
  handlers:
    - name: restart ipsec
      systemd:
        name: ipsec
        state: restarted

Template Jinja2 ipsec.conf.j2 memakai variabel sehingga satu template melayani banyak environment. Simpan PSK di Ansible Vault — jangan pernah di plaintext playbook.

Terraform untuk Infrastructure

Mendefinisikan Infrastruktur sebagai Kode

Terraform mengelola sisi infrastruktur: VM, jaringan, firewall, dan DNS. Contoh dengan penyedia cloud:

Terraform untuk VM VPN
resource "hcloud_server" "vpn" {
  name        = "vpn-prod-01"
  image       = "ubuntu-24.04"
  server_type = "cx21"
  location    = "fsn1"
}
 
resource "hcloud_firewall_rule" "vpn" {
  firewall_id = hcloud_firewall.vpn.id
  direction   = "in"
  protocol    = "udp"
  port        = "500"
  source_ips  = ["0.0.0.0/0"]
}

Aturan firewall ditulis sebagai kode, sehingga port UDP 500, 4500, dan 1701 terdokumentasi dan bisa di-review dalam pull request. Kombinasikan dengan Ansible: Terraform membuat server, Ansible memasang konfigurasi di dalamnya.

Manajemen Terpusat

RADIUS dan LDAP

Semakin banyak server, semakin penting satu sumber kebenaran untuk pengguna. FreeRADIUS bisa memvalidasi kredensial terhadap LDAP sehingga pengguna tidak perlu dibuat ulang di setiap server. pppd memakai modul radius, dan strongSwan memakai eap-radius — keduanya mengarah ke FreeRADIUS yang sama.

Otomatisasi Sertifikat dengan ACME

Sertifikat yang kedaluwarsa adalah downtime yang bisa dicegah. ACME — protokol yang dipakai Let's Encrypt — mengotomatiskan penerbitan dan perpanjangan. Untuk IPsec, terbitkan sertifikat server secara otomatis:

Terbitkan sertifikat dengan certbot
sudo certbot certonly --standalone -d vpn.example.com

Setelah perpanjangan, jalankan hook yang mengimpor sertifikat baru ke NSS atau charon:

Hook reload sertifikat
certbot renew --deploy-hook "ipsec auto --reload"

Baris certbot renew --deploy-hook memuat ulang konfigurasi IPsec setiap kali sertifikat diperbarui.

Membangun Pipeline Deploy

Dari Commit ke Production

Rangkai semua tool ke dalam pipeline yang berjalan otomatis: Terraform menyediakan infrastruktur, Ansible memasang dan mengonfigurasi, CI memvalidasi perubahan, dan pemantauan memastikan semuanya tetap sehat. Ujung-ujungnya adalah GitOps: semua perubahan melalui git, semua perubahan diaudit.

Checklist praktik IaC:

  • Satu repositori untuk konfigurasi, template, dan secrets terenkripsi.
  • Ansible Vault atau cloud secret manager untuk semua kredensial.
  • Template Jinja2 untuk konfigurasi yang berbeda per environment.
  • Terraform untuk VM, jaringan, firewall, dan DNS.
  • ACME untuk perpanjangan sertifikat otomatis.
  • Pipeline CI yang menjalankan validasi sebelum deploy.

Tip

Mulailah dari yang kecil: otomatiskan satu server produksi dengan Ansible, lalu tambahkan Terraform dan pipeline. Otomasi yang terlalu ambisius sejak awal sering gagal karena tidak ada yang sempat memeliharanya.

Penutup

Episode 20 mengotomatiskan seluruh siklus hidup deployment: role Ansible untuk tiga daemon, infrastruktur Terraform sebagai kode, manajemen pengguna terpusat lewat RADIUS dan LDAP, serta perpanjangan sertifikat otomatis lewat ACME.

Inti yang harus dibawa pulang:

  • Ansible mereplikasi konfigurasi server secara deterministik.
  • Simpan PSK dan kredensial di Ansible Vault, bukan di playbook.
  • Terraform mengelola VM, firewall, dan DNS sebagai kode.
  • FreeRADIUS memvalidasi terhadap LDAP untuk satu sumber kebenaran.
  • ACME dan certbot renew --deploy-hook otomatis memperbarui sertifikat.
  • Mulai dari otomasi kecil lalu perluas ke pipeline penuh.

Di episode 21 selanjutnya kita akan membahas deployment production-ready — checklist lengkap mulai key management, firewall, certificate renewal, backup, disaster recovery, hingga monitoring untuk stack L2TP/IPsec.

Belajar L2TP IPsec - Automation & IaC | Belajar L2TP IPsec