Obrolan Pasien Seputar Kesehatan

Thursday, October 3, 2013

Integrasi OpenVPN dengan RADIUS dan LDAP

Sebelumnya saya akan menjelaskan terlebih dahulu apa itu RADIUS dan LDAP.

RADIUS memiliki kepanjangan Remote Authentication Dial In User Service sedangkan LDAP merupakan kependekan dari Lightweight Directory Access Protocol.

Keduanya merupakan protokol keamanan komputer yang serupa, namun tak sama. Ada beberapa perbedaan RADIUS dan LDAP.

RADIUS fungsinya untuk melakukan authentikasi pada user dengan sambuangan jarak jauh atau dial-up. Radius memiliki 3 fungsi utama, yaitu sebagai authentication, authorization, dan accounting. Karena inilah radius sering disebut server AAA (3A).

Sedangkan LDAP merupakan semacam protokol aktif direktory yang digunakan untuk menyimpan informasi, seperti username, password, nama, alamat, dan lainnya.

Kali ini saya punya contoh kasus, bagaimana mengintegrasikan OpenVPN (yang versi Access Server) dengan FreeRADIUS dan LDAP, sebagaimana kita ketahui bahwa OpenVPN hanya bisa menggunakan satu jenis Authentication dengan 4 pilihan yaitu : General, PAM, RADIUS dan LDAP.

Saya asumsikan bahwa server OpenVPN, server FreeRadius dan server LDAP sudah terinstall. Saya memiliki 2 buah group pengguna openVPN, Group A yang terotentikasi menggunakan radius, dan group B terotentikasi dengan LDAP.

Solusi untuk kasus ini adalah membuat FreeRadius agar bisa melakukan otentikasi bersama dengan LDAP. Yang perlu dikonfigurasi hanya file radiusd.conf pada bagian LDAPnya. Dan file ini terletak di direktori /etc/raddb (atau /usr/local/etc/raddb).

Sistem operasi yang digunakan disini adalah CentOS atau bisa juga distro sejenis.


Dan sekarang mari kita edit file radiusd.conf dengan uncomment bagian LDAP berikut:

Auth-Type LDAP {
ldap
}
authorize {
ldap
}
Dan yang perlu diperhatikan di sini adalah basedn dan filternya dibuat sesuai dengan konfig LDAPnya
contohnya mungkin seperti ini :
basedn = "OU=%{%{Stripped-User-Name}:-%{User-Name}},O=Telkom"
filter = "(uid=%{%{Stripped-User-Name}:-%{User-Name}})"
ldap {
#
# Note that this needs to match the name in the LDAP
# server certificate, if you're using ldaps.
server = "192.168.1.35″
#identity = ""
#password = userPassword
basedn = "OU=%{%{Stripped-User-Name}:-%{User-Name}},O=Telkom"
filter = "(uid=%{%{Stripped-User-Name}:-%{User-Name}})"
#filter = "CN=%{%{Stripped-User-Name}:-%{User-Name}}"
#base_filter = "(objectclass=radiusprofile)"
}

Kemudian kita uji coba apakah confignya sukses, tentunya dengan user dan password LDAP.

root@radius-server:/home/cipto# /usr/bin/radtest sucipto passwordku 192.168.1.35 1812 rahasia123
Sending Access-Request of id 119 to 192.168.1.35 port 1812
User-Name = "sucipto"
User-Password = "passwordku"
NAS-IP-Address = 127.0.1.1
NAS-Port = 1812
rad_recv: Access-Accept packet from host 192.168.1.35 port 1812, id=119, length=20
Jika kita telah mendapatkan hasil rad_recv: Access-Accep, artinya Freeradius sudah berhasil terotentikasi dengan LDAP

Dan pada OpenVPN Access Server Web Configuration anda bisa memilih Authentication menggunakan RADIUS.

Note : Jika freeradius terinstall di Ubuntu, maka konfigurasinya sedikit berbeda.

Bagian konfig yang perlu diuncomment ldapnya ada di file berikut: /etc/freeradius/sites-enabled/default
dan bagian untuk setting server ldap ada di file berikut: /etc/freeradius/modules/ldap

[sucipto kuncoro - ciledug, tangerang, banten - 27111434/03102013 - 07:10]

Share on Facebook
Share on Twitter
Share on Google+

Related : Integrasi OpenVPN dengan RADIUS dan LDAP

Tampilkan Komentar
Sembunyikan Komentar

6 comments:

  1. Mas Cipto, mau Tanya :) , jika tanpa LDAP, dari mana Radius server melakukan Autentikasi? apakah sebenarnya Radius server sudah memiliki database user dan password sendiri?

    ReplyDelete
    Replies
    1. Iya radius sudah punya database user, tanpa ldap ga masalah.

      Cara di atas maksudnya biar bisa otentikasi dengan radius dan ldap sekaligus.

      Misal: karyawan otentikasinya dengan ldap agar tidak perlu membuat database user yang baru; dan vendor yang butuh akses otentikasinya dengan radius.

      Delete
    2. Pak Sucipto, saya bikin server OPENVPN , berikut kutipan configurasinya :

      ## serverTest.conf
      local 192.168.3.10
      port 1194
      proto udp
      dev tun
      daemon
      server 10.0.0.0 255.255.255.0
      push "route 192.168.1.0 255.255.255.0"
      push "dhcp-option DNS 192.168.1.50"
      max-clients 25
      ca /etc/openvpn/keys/ca.crt
      cert /etc/openvpn/keys/test.crt
      key /etc/openvpn/keys/test.key
      dh /etc/openvpn/keys/dh1024.pem
      tls-auth /etc/openvpn/keys/test.key 0
      cipher BF-CBC
      comp-lzo
      keepalive 10 120
      log-append /var/log/openvpn.log
      status /var/log/openvpn-status.log
      ifconfig-pool-persist /etc/openvpn/ipp.txt

      dalam buku tutorial yg saya punya, konfigurasinya ada path ke file ipp.txt pada line paling bawah, namun saya gk punya sample/format file tersebut..

      Boleh minta sample nya Pak ?
      Terimakasih,

      Delete
  2. Ipp.txt isinya ip client, biar client dapet fix ip, biasanya otomatis terisi kalau ada client yang connect.

    Format isi filenya: ,

    Contoh: test1.com.client, 192.168.1.5

    Atau kalo ditambahkan argumen 0 seperti ini:

    ifconfig-pool-persist /etc/openvpn/ipp.txt 0

    Openvpn ga akan bisa update isi filenya kecuali kita rubah/isi sendiri.

    ReplyDelete
    Replies
    1. umpanya ada 100 client, apakah mesti kita tulis format seperti yang bapak berikan, sebanyak 100 Line ? Terimakasih ya Pak Jadi tercerahkan :D

      Delete