Belajar PPTP - RADIUS Integration & User Management
Series/Belajar PPTP/Episode 11
Episode 11 of 23

Belajar PPTP - RADIUS Integration & User Management

Episode ini membahas sentralisasi autentikasi PPTP dengan RADIUS: memuat plugin radius.so di pppd, mengonfigurasi radius.conf, menghubungkan FreeRADIUS sebagai backend, integrasi LDAP, serta penggunaan RADIUS accounting untuk monitoring sesi.

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

Pendahuluan

Mengelola user satu per satu di /etc/ppp/chap-secrets cukup untuk lab kecil, tapi akan menjadi mimpi buruk saat user mencapai ratusan. Di sinilah RADIUS masuk: satu titik autentikasi, otorisasi, dan accounting untuk seluruh layanan dial-up.

Episode 11 membahas cara menghubungkan pppd ke RADIUS melalui plugin radius.so, menyiapkan FreeRADIUS sebagai backend, mengintegrasikan LDAP untuk autentikasi terpusat, serta memanfaatkan accounting untuk memantau sesi.

Mengapa RADIUS

Satu Basis Data untuk Semua Layanan

Dengan RADIUS, data user tidak perlu tersebar di chap-secrets setiap server. Autentikasi dilakukan oleh server RADIUS yang menjadi single source of truth. Ini memudahkan penambahan, penonaktifan, dan audit user.

RADIUS juga menyediakan accounting: setiap sesi yang mulai dan berakhir tercatat, sehingga kalian bisa menghitung pemakaian dan mendeteksi anomali.

Plugin radius.so di pppd

Memuat Plugin RADIUS

pppd mendukung plugin RADIUS yang dikompilasi sebagai shared library. Di Debian/Ubuntu, paket ppp menyediakan plugin ini:

Cari plugin RADIUS pppd
find /usr/lib -name "radius.so"

Jika find /usr/lib -name "radius.so" menemukan file tersebut, tambahkan ke file opsi PPP:

/etc/ppp/options.pptpd - plugin RADIUS
plugin radius.so
radius-config-file /etc/ppp/radius.conf

Baris plugin radius.so membuat pppd memuat plugin, dan radius-config-file menunjuk ke file konfigurasi server RADIUS.

File Konfigurasi radius.conf

Konfigurasi plugin di /etc/ppp/radius.conf menentukan alamat server dan secret bersama:

/etc/ppp/radius.conf
auth-server 192.168.1.100:1812
acct-server 192.168.1.100:1813
secret 3k1Ra45lAnDSecreto
nas-identifier pptp-server

auth-server menunjuk ke FreeRADIUS di port 1812 (authentication), acct-server di port 1813 (accounting). Secret harus sama persis dengan yang ada di sisi server RADIUS.

FreeRADIUS sebagai Backend

Menambahkan User di FreeRADIUS

Di server FreeRADIUS, user disimpan di file /etc/freeradius/3.0/users:

/etc/freeradius/3.0/users - satu user
budi    Cleartext-Password := "password-rahasia"

Untuk sesi VPN, tambahkan atribut yang relevan:

Atribut Framed yang dikirim ke pppd
budi    Cleartext-Password := "password-rahasia",
        Framed-Protocol = PPP,
        Framed-IP-Address = 10.0.0.100

Setiap atribut yang dikembalikan server RADIUS akan diteruskan pppd sebagai opsi. Framed-IP-Address misalnya memaksa klien mendapat alamat IP tertentu.

Restart dan Uji

Restart FreeRADIUS
sudo systemctl restart freeradius
sudo radtest budi "password-rahasia" 127.0.0.1 0 3k1Ra45lAnDSecreto

radtest mengirim permintaan autentikasi uji ke server RADIUS. Jika balasannya Access-Accept, konfigurasi server benar dan siap melayani pppd.

Integrasi LDAP

Autentikasi Terpusat via LDAP

Daripada menyimpan password di FreeRADIUS, autentikasi bisa diserahkan ke LDAP seperti Active Directory atau OpenLDAP. Di FreeRADIUS, modul rlm_ldap menghubungkan keduanya.

Konfigurasi rlm_ldap biasanya diatur di file modul LDAP, lalu dipanggil dari virtual server saat autentikasi. Pola umumnya: FreeRADIUS menerima Access-Request dari pppd, menanyakan kredensial ke LDAP, lalu mengembalikan hasil ke pppd.

Verifikasi bind ke LDAP
ldapsearch -x -H ldap://ldap.example.com -b "ou=people,dc=example,dc=com" uid=budi

ldapsearch -x -H ldap://ldap.example.com -b "ou=people,dc=example,dc=com" uid=budi menguji koneksi dan pencarian user. Pastikan bind bisa berjalan sebelum menyambungkannya ke FreeRADIUS.

Accounting dan Monitoring

Memantau Sesi dari Log RADIUS

Setiap sesi PPTP yang memakai plugin radius menghasilkan catatan accounting start dan stop. Informasinya mencakup user, alamat IP, durasi sesi, dan byte yang ditransfer.

Lihat log accounting FreeRADIUS
sudo tail -f /var/log/freeradius/radacct/*/* | grep -E "Acct-Status-Type|Acct-Session-Time"

tail -f /var/log/freeradius/radacct/*/* menampilkan entri accounting secara live. Dari sini, kalian bisa membangun dashboard pemakaian atau mendeteksi user yang sesi-nya tidak wajar.

Penutup

Episode 11 menghubungkan PPTP ke dunia enterprise: memuat plugin radius.so, mengonfigurasi radius.conf, menambahkan user di FreeRADIUS, mengintegrasikan LDAP, dan memantau sesi lewat accounting.

Inti yang harus dibawa pulang:

  • RADIUS menyediakan autentikasi, otorisasi, dan accounting terpusat.
  • plugin radius.so dan radius-config-file menghidupkan RADIUS di pppd.
  • radius.conf butuh alamat server, secret bersama, dan nas-identifier.
  • Atribut Framed yang dikembalikan FreeRADIUS diteruskan sebagai opsi pppd.
  • LDAP terintegrasi lewat modul rlm_ldap di FreeRADIUS.
  • Accounting RADIUS mencatat start, stop, durasi, dan byte setiap sesi.

Di episode 12 selanjutnya kita akan membahas automation dan deployment — script shell untuk setup otomatis, pembuatan user massal, peran Ansible, dan wacana menjalankan PPTP di dalam container Docker.

Belajar PPTP - RADIUS Integration & User Management | Belajar PPTP