Belajar L2TP IPsec - PPP & L2TP Configuration
Episode 7 of 23

Belajar L2TP IPsec - PPP & L2TP Configuration

Episode ini membedah lapisan PPP dan L2TP: cara PPP membungkus data, protokol otentikasi PAP, CHAP, MS-CHAPv2, dan EAP, serta urutan handshake tunnel SCCRQ hingga session ICCN. Kalian juga menulis opsi PPP pertama yang dipakai pppd saat client terhubung.

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

Pendahuluan

Di episode 2 kita menyusun stack L2TP/IPsec dan tahu bahwa PPP adalah lapisan paling dalam. Episode 7 fokus pada dua lapisan yang paling sering dikonfigurasi: PPP yang membawa data pengguna, dan L2TP yang membentuk tunnel serta session. Inilah lapisan tempat username, password, dan alamat IP ditangani.

Banyak kesalahan konfigurasi L2TP/IPsec justru terjadi di sini — protokol otentikasi yang tidak cocok, atau urutan handshake yang tidak tuntas. Dengan memahami PPP dan L2TP secara terpisah, kalian bisa memetakan setiap error log ke lapisan yang tepat.

PPP: Point-to-Point Protocol

Encapsulation di Atas L2TP

PPP adalah protokol link layer yang berjalan point-to-point. Di dalam L2TP, frame PPP dibungkus sebagai payload Data Message dan diteruskan lewat tunnel. PPP membawa tiga protokol penting: LCP untuk negosiasi link itu sendiri, NCP seperti IPCP untuk menetapkan alamat IP, dan protokol otentikasi yang dibahas di bawah.

Protokol Otentikasi PPP

PPP mendefinisikan beberapa protokol otentikasi dengan tingkat keamanan berbeda:

  • PAP: password dikirim dalam teks terang — sangat lemah, sebaiknya ditolak.
  • CHAP: menantang dengan challenge-response berbasis hash — lebih baik dari PAP.
  • MS-CHAPv2: versi Microsoft dengan mutual authentication, tapi berbasis MD4 yang mulai rapuh.
  • EAP: kerangka kerja yang bisa membungkus metode modern seperti EAP-TLS.

Untuk L2TP/IPsec, kombinasi yang lazim adalah MS-CHAPv2 dengan enkripsi MPPE. Di sisi server, protokol yang diizinkan dikendalikan lewat opsi pppd:

opsi PPP untuk MS-CHAPv2
name l2tpd
require-mschap-v2
refuse-pap
refuse-chap
ms-dns 8.8.8.8
ms-dns 1.1.1.1
proxyarp
idle 1800

Baris refuse-pap dan refuse-chap memaksa client naik ke MS-CHAPv2, sementara require-mschap-v2 mewajibkan otentikasi dua arah.

L2TP Tunnel dan Session

Membangun Tunnel: SCCRQ, SCCRP, SCCCN

Sebelum data mengalir, LAC dan LNS harus membangun tunnel L2TP. LAC mengirim SCCRQ (Start-Control-Connection-Request) ke LNS. LNS menjawab SCCRP (Start-Control-Connection-Reply), dan LAC menutup dengan SCCCN (Start-Control-Connection-Connected). Tunnel terbentuk.

Membangun Session: ICRQ, ICRP, ICCN

Di dalam tunnel, setiap koneksi pengguna membuka session tersendiri. LAC mengirim ICRQ (Incoming-Call-Request), LNS membalas ICRP (Incoming-Call-Reply), dan LAC menuntaskan dengan ICCN (Incoming-Call-Connected). Setelah ICCN, negosiasi PPP — LCP, otentikasi, lalu IPCP — dimulai di atas session tersebut.

Urutan lengkapnya:

Urutan tunnel lalu session
SCCRQ -> SCCRP -> SCCCN   (tunnel)
ICRQ  -> ICRP  -> ICCN    (session)
LCP -> otentikasi -> IPCP (PPP)

Menghubungkan PPP ke L2TP di xl2tpd

opsi PPP lewat pppoptfile

xl2tpd tidak menjalankan PPP sendiri; ia menyerahkan session ke pppd dan memberi tahu pppd lewat file opsi. Di /etc/xl2tpd/xl2tpd.conf, arahkan dengan pppoptfile:

Konfigurasi LNS di xl2tpd.conf
[lns default]
ip range = 192.168.42.10-192.168.42.250
local ip = 192.168.42.1
require chap = yes
refuse pap = yes
require authentication = yes
name = l2tpd
pppoptfile = /etc/ppp/options.xl2tpd
length bit = yes

Kolom require chap = yes dan refuse pap = yes mengatur protokol otentikasi di sisi L2TP, sementara pppoptfile menunjuk file opsi pppd yang kita tulis di atas. Keduanya harus konsisten: jangan menolak PAP di satu sisi tetapi mengizinkannya di sisi lain.

Debugging dengan log PPP

Saat session bermasalah, aktifkan debug di kedua lapisan:

Pantau log PPP dan L2TP
sudo journalctl -u xl2tpd -f
sudo tail -f /var/log/syslog | grep pppd

Setelah client terhubung, periksa interface hasil pppd:

Cek interface PPP
ip addr show ppp0
ip route

Jika ppp0 muncul dengan alamat 192.168.42.x, negosiasi PPP sukses. Jika tidak, arahkan perhatian ke log pppd — sebagian besar kegagalan otentikasi tercatat di sana dengan jelas.

Penutup

Episode 7 membekali kalian dua lapisan paling dalam L2TP/IPsec: PPP yang membawa data dan melakukan otentikasi pengguna, serta L2TP yang membentuk tunnel dan session lewat urutan SCCRQ hingga ICCN. Kalian juga sudah menulis opsi PPP dan konfigurasi LNS pertama yang saling terkait.

Inti yang harus dibawa pulang:

  • PPP membawa LCP, NCP, dan protokol otentikasi di atas tunnel L2TP.
  • PAP lemah; MS-CHAPv2 adalah pilihan lazim untuk remote access.
  • Tunnel L2TP dibangun lewat SCCRQ, SCCRP, SCCCN.
  • Session L2TP dibangun lewat ICRQ, ICRP, ICCN.
  • xl2tpd menyerahkan session ke pppd lewat pppoptfile.
  • Log pppd adalah tempat pertama memeriksa kegagalan otentikasi.

Di episode 8 selanjutnya kita akan membahas tools dan troubleshooting — cara memakai ipsec statusall, ipsec barf, swanctl --list-sas, dan xl2tp-control untuk melacak masalah dari lapisan IKE sampai session PPP.

Belajar L2TP IPsec - PPP & L2TP Configuration | Belajar L2TP IPsec