Home Linux Memapar Senarai Users Pada OpenVPN Server

Assalamualaikum dan salam sejahtera,

Baru-baru ini saya menerima kerja untuk membina sistem authentication OpenVPN secara “Centralized” menggunakan Freeradius sebagai medium pengawal proses yang dikenali sebagai “AAA” ataupun Authentication, Authorization, dan Authentication.  Mana-mana penyedia Viirtual Private Network (VPN) yang menggunakan OpenVPN server terutamanya pasti sedia maklum dan inginkan hanya satu sahaja sambungan VPN dibuat oleh mana-mana pelanggan pada satu-satu masa.

Freeradius menyediakan fungsi yang dikenali sebagai “Simultaneous Login” iaitu dengan merekod jumlah user (melalui Commnon Name) kedalam database. Walaubagaimanapun kaedah Simultaneous Login ni perlukan reliability antara kedua-dua belah server iaitu NAS (OpenVPN server) dan Freeradius. Sekiranya NAS gagal menghantar maklumat user telah disconnect dari VPN maka boleh berlaku keadaan Freeradius akan menyekat user tersebut untuk sambungan VPN pada masa akan datang.

Justeru, ini merupakan antara solution yang saya lihat setakat ini, iaitu mengeluarkan senarai users pada setiap port pada OpenVPN server. Format output yang dihasilkan juga saya telah set kan pada JSON (JavaScript Object Notation) kerana dapat terus diproses oleh centralized part dengan mudah melalui PHP tanpa perlu memproses raw data.

Kaedah untuk memaparkan  ini dalam  carian awal saya didapati  script yang menggunakan sama ada python dan ada juga dalam perl.  Walaubagaimanapun setelah dinilai daripada beberapa aspek seperti speed dan penggunaan RAM pastinya akan membebankan OpenVPN server yang memerlukan sumber ini untuk servis VPN.

Aplikasi yang dihasilkan ini ditulis (coded) sepenuhnya dalam bahasa C. Untuk versi pertama ini terdapat sedikit kelemahan iaitu saya tidak integrasi dengan auto start service, jadi anda perlu jalankan program ini secara manual setiap kali selepas reboot server. In Sha Allah pada masa akan datang feature ini akan ditambah.

 

Anda boleh mencuba sekiranya berminat ataupun boleh hubungi saya secara terus kalau ingin membuat integrasi penuh dengan Freeradius.

 

Source Code penuh boleh didapati di Github

https://github.com/mahadirz/opnvpnstatus

Saya telah mencuba program ini pada Server Centos 6 x64 yang dipasang dengan OpenVPN. Untuk proses pemasangan pastikan server anda telah dipasang dengan GNU GCC Compiler.

Ikut sahaja langkah pemasangan pada README.md

 

Screenshot installation:

opnvpnstatus

1 reply to this post

Leave a Reply

Anti-spam: complete the taskWordPress CAPTCHA