Kusprayitna Blogs

Hidup untuk berbagi ilmu :: IT Linux Windows Database Oracle PHP OpenSource

Setup freeradius agar bisa otentifikasi dengan LDAP

Posted by kusprayitna on February 18th, 2010

Sebagai tahap integrasi antara radius dan LDAP yang mendukung One Account Policy, maka langkah ini merupakan langkah yang paling vital.

Artikel tentang LDAP bisa dibaca di http://kusprayitna.staff.uii.ac.id/category/application/ldap-application/

Fitur yang diinginkan dari otentifikasi LDAP ini yaitu :

  1. LDAP berada di server lain
  2. Semua akun menggunakan Nomor Induk Mahasiswa/Pegawai untuk akses (yaitu uid)
  3. Semua akun otomatis bisa akses ke hotspot melalui otentifikasi radius
  4. Pengaturan response atau output radius bukan dari LDAP tetapi dari script lain yang disesuaikan dengan manajemen voucher

1. Sesuaikan radius.conf

# vi /etc/radius.conf

Cari bagian seperti point a,b dan c dibawah ini dan disesuaikan
a.    Seting ldap server

ldap {
server = "192.168.0.4"
identity = "cn=manager,dc=uii,dc=ac,dc=id"
password = password
basedn = "dc=uii,dc=ac,dc=id"

#filter = "(uid=%{Stripped-User-Name:-%{User-Name}})"
filter = "(uid=%u)"
# base_filter = "(objectclass=radiusprofile)"

# set this to 'yes' to use TLS encrypted connections
# to the LDAP database by using the StartTLS extended
# operation.
# The StartTLS operation is supposed to be used with normal
# ldap connections instead of using ldaps (port 689) connections
start_tls = no

# tls_cacertfile        = /path/to/cacert.pem
# tls_cacertdir         = /path/to/ca/dir/
# tls_certfile          = /path/to/radius.crt
# tls_keyfile           = /path/to/radius.key
# tls_randfile          = /path/to/rnd
# tls_require_cert      = "demand"

# default_profile = "cn=radprofile,ou=dialup,o=My Org,c=UA"
# profile_attribute = "radiusProfileDn"
access_attr = "uid"

# Mapping of RADIUS dictionary attributes to LDAP
# directory attributes.
dictionary_mapping = ${raddbdir}/ldap.attrmap

ldap_connections_number = 5

timeout = 4
timelimit = 3
net_timeout = 1

}

b.    authorize dengan ldap

#
#  The ldap module will set Auth-Type to LDAP if it has not
#  already been set
ldap

c.    authenticate dengan ldap

# Uncomment it if you want to use ldap for authentication
#
# Note that this means "check plain-text password against
# the ldap database", which means that EAP won't work,
# as it does not supply a plain-text password.
Auth-Type LDAP {
ldap
}

2.    Sesuaikan users

# vi /etc/raddb/users

Ubah Auth-Type dari system ke LDAP

#
# First setup all accounts to be checked against the UNIX /etc/passwd.
# (Unless a password was already given earlier in this file).
#
#DEFAULT        Auth-Type = System
#       Fall-Through = 1

DEFAULT Auth-Type := LDAP
Fall-Through = 1

3.    Uji coba

a.    LDAP

# radtest 999999 pwd 127.0.0.1 1812 radiusuii
Sending Access-Request of id 43 to 127.0.0.1 port 1812
User-Name = "999999"
User-Password = "pwd"
NAS-IP-Address = 255.255.255.255
NAS-Port = 1812
rad_recv: Access-Accept packet from host 127.0.0.1:1812, id=43, length=20

b.    MySQL

# radtest prayitna prayitna 127.0.0.1 1812 radiusuii
Sending Access-Request of id 47 to 127.0.0.1 port 1812
User-Name = "prayitna"
User-Password = "password1"
NAS-IP-Address = 255.255.255.255
NAS-Port = 1812
rad_recv: Access-Accept packet from host 127.0.0.1:1812, id=47, length=44
Framed-Compression = Van-Jacobson-TCP-IP
Framed-Protocol = PPP
Service-Type = Framed-User
Framed-MTU = 1500

c.    file

# radtest user1 password1 127.0.0.1 1812 radiusuii
Sending Access-Request of id 52 to 127.0.0.1 port 1812
User-Name = "user1"
User-Password = "password1"
NAS-IP-Address = 255.255.255.255
NAS-Port = 1812
rad_recv: Access-Accept packet from host 127.0.0.1:1812, id=52, length=20

Berhasil

10 Responses to “Setup freeradius agar bisa otentifikasi dengan LDAP”

  1. Integrasi manajemen akses hotspot dengan radius | Kusprayitna Blogs Says:

    [...] Pastikan user hotspot sudah bisa otentifikasi dengan LDAP server maupun MySQL Server bahkan jika diperlukan berdasarkan file. (lihat di setup-freeradius-agar-bisa-otentifikasi-dengan-ldap) [...]

  2. choky Says:

    hey lam kenal..
    aq masih newbie dalam masalah LDAP dan RADIUS.
    mau nanya nie, pada artikel sebelumnya mysql kan bisa support dengan server radius nya.
    - misalnya server radius dan mysql berada dalam 1 komputer, lalu server LDAP berada dikomputer yang lain.
    - bisa ga klo server LDAP ngambil data user yang ada pada mysql lewat server RADIUS nya boz?

  3. choky Says:

    makasi

  4. Felix Says:

    Pak, saya ingin bertanya...
    dimana letak radius.conf nya...?
    saya mencari pada direktori /etc/radius.conf tidak ada...
    tetapi saya menemukan file radiusd.conf pada direktori /etc/raddb/radiusd.conf
    apaka file itu sama? dan apakah penempatannya harus pada direktori /etc ?
    sebagai informasi, saya juga menggunakan CentOS...

    Terima Kasih Pak

  5. Firman Says:

    Pak, saya ingin bertanya, pada saat testing, kenapa harus test ke mysql dan LDAP? bukankah LDAP itu sebagai database jg? lagipula auth-type nya sudah dirubah menjadi LDAP? lantas jika jika menginstall mysql, guna nya untuk apa ya pak? Terima kasih, harap dishare ilmunya Pak, saya masih newbie ni 😀

  6. Felix Says:

    Pak, sy ingin bertanya pd bagian uji coba ldap
    "# radtest 999999 pwd" ini apa ya Pak...?
    apakah ini user pd mySQL atau pada LDAP...?

    Terima kasih Pak

  7. kusprayitna Says:

    Salam semua
    Mengapa ada mysql data LDAP dalam otentifikasi di radius ini? Latar belakangnya sederhana, yaitu :
    1. Database user internal kami andalh di LDAP, sehingga semestinya cukup untuk sebagai database radius.
    2. Dalam pemanfaatan radius di hotspot ada user namanya "tamu" atau "guest" yang harus terdaftar dan tidak mengganggu data di LDAP.
    Untuk menangani masalah yang kedua ini, maka data user hotspot tamu disimpan di data mysql, sehingga radius harus bisa melakukan otentifikasi berdasar radius maupun ldap.
    Dalam ujicoba di atas, saya mencoba semuanya, baik itu atas data LDAP maupun mysql.
    Untuk user 999999 adalah contoh data di LDAP (data ujicoba saja).
    Semoga menjawab , Makasih

  8. Aga Says:

    Saya ingin bertanya pak,

    untuk ujicoba yang bagian LDAP, apakah user-name dan user-password sudah dibuat sebelumnya di LDAP server atau bagaimana? bisa dijelaskan cara membuatnya? karena saya mengalami masalah ketika saya menguji coba bagian otentifikasi ini, yaitu muncul tulisan :

    rad_recv: Access-Reject packet from host 127.0.0.1:1812, id=72, length=20

    apakah saya salah dalam membuat user baru atau seperti apa? mohon bantuannya, terima kasih

  9. kusprayitna Says:

    Salam Aga
    Kelihatannya seting radius anda perlu ada yang disesuaikan, yaitu terkait seting untuk klien yang boleh akses ke radius server

    lihat ke : http://kusprayitna.staff.uii.ac.id/2010/02/18/instalasi-radius-server-menggunakan-freeradius-di-os-centos/

  10. aga Says:

    konfigurasi file radiusd.conf saya adalah sebagai berikut :

    ldap {
    server = “167.205.64.104?
    identity = “cn=admin,dc=telematika,dc=itb,dc=ac,dc=id”
    password = password
    basedn = “dc=telematika,dc=itb,dc=ac,dc=id”
    #filter = “(uid=%{Stripped-User-Name:-%{User-Name}})”
    filter = “(uid=%u)”
    # base_filter = “(objectclass=radiusprofile)”
    # set this to ‘yes’ to use TLS encrypted connections
    # to the LDAP database by using the StartTLS extended
    # operation.
    # The StartTLS operation is supposed to be used with normal
    # ldap connections instead of using ldaps (port 689) connections
    start_tls = no
    # tls_cacertfile = /path/to/cacert.pem
    # tls_cacertdir = /path/to/ca/dir/
    # tls_certfile = /path/to/radius.crt
    # tls_keyfile = /path/to/radius.key
    # tls_randfile = /path/to/rnd
    # tls_require_cert = “demand”
    # default_profile = “cn=radprofile,ou=dialup,o=My Org,c=UA”
    # profile_attribute = “radiusProfileDn”
    access_attr = “uid”
    # Mapping of RADIUS dictionary attributes to LDAP
    # directory attributes.
    dictionary_mapping = ${raddbdir}/ldap.attrmap
    ldap_connections_number = 5
    timeout = 4
    timelimit = 3
    net_timeout = 1
    }

    sedangkan untuk clients.conf adalah sebagai berikut :

    client 127.0.0.1 {
    #
    # The shared secret use to “encrypt” and “sign” packets between
    # the NAS and FreeRADIUS. You MUST change this secret from the
    # default, otherwise it’s not a secret any more!
    #
    # The secret can be any string, up to 31 characters in length.
    #
    secret = radius_telematika_itb
    #
    # The short name is used as an alias for the fully qualified
    # domain name, or the IP address.
    #
    shortname = localhost
    #
    # the following three fields are optional, but may be used by
    # checkrad.pl for simultaneous use checks
    #
    #
    # The nastype tells ‘checkrad.pl’ which NAS-specific method to
    # use to query the NAS for simultaneous use.
    #
    # Permitted NAS types are:
    #
    # cisco
    # computone
    # livingston
    # max40xx
    # multitech
    # netserver
    # pathras
    # patton
    # portslave
    # tc
    # usrhiper
    # other # for all other types
    #
    nastype = other # localhost isn’t usually a NAS…
    #
    # The following two configurations are for future use.
    # The ‘naspasswd’ file is currently used to store the NAS
    # login name and password, which is used by checkrad.pl
    # when querying the NAS for simultaneous use.
    #
    # login = !root
    # password = someadminpas
    }
    client 167.205.64.104 {
    secret = radius_telematika_itb
    shortname = liveradius
    nastype = unix
    }

    saya tidak mengerti kesalahannya dimana. kali ini yang terjadi adalah terus memunculkan tulisan sending access-request tanpa berhenti.

    saya menggunakan 2 virtual machine, masing-masing untuk LDAP server dan juga untuk Radius Server. mohon bantuannya. terima kasih.

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>