Jumat, 12 Maret 2010

Membuat LDAP Server

Pada bagian ini saya akan mencoba mengimplementasikan membuat LDAP Server dengan menggunakan Redhat Linux, sebelum menginstall pastikan Linux Anda sudah terinstall :
1. openLDAP
2. openSSL
3. SASL
4. Kerberos (krb5)

untuk mengecek apakah paket sudah terinstall atau belum, bisa di cek dengan cara di bawah ini :
# rpm -qa | grep openldap
jika sudah terinstall, redhat akan menampilkan nama paket ldap yang sudah terinstal pada os-nya.

Agar lebih mudah, saya akan mencoba dengan menggunakan studi kasus, seperti di bawah ini.
----------
Case Study
----------

Sebuah perusahaan dengan nama Warmanet Inc mempunyai beberapa komputer dan beberapa server. Komputer server mengelola account untuk setiap PC Client, setiap pc client terhubung dengan domain (terletak pada domain, join domain) untuk memudahkan server memanage account client.
Permasalahan :
1. Membuat direktori user yang berisi account user pada server
2. Join Domain client pada server

Solusi :
1. Membuat database openLDAP
2. Membuat encrpyted password dengan menggunakan slappasswd untuk ldap user
3. Edit slap.conf
4. Jalankan LDAP Service
5. Membuat Account LDAP User
6. Extract Account ke dalam format LDIF
7. Import LDIF file pada database openLDAP

1. Membuat database openLDAP

Untuk membuat database openLDAP, lakukan beberapa langkah berikut :
1. Buatlah direktori yang dinamakan warmanet pada /var/lib/ldap/warmanet:
# makedir /var/lib/ldap/warmanet
2. Ubah kepemilikan direktori atau file khusus untuk ldap user dengan cara :
# chown ldap:ldap /var/lib/ldap/warmanet

2. Membuat encrpyted password dengan menggunakan slappasswd untuk ldap user

Tuliskan perintah di bawah ini untuk mengakses openLDAP server, dengan cara :
# slappasswd

Perintah di atas adalah untuk membuat password, yang mana password ini di gunakan untuk authentikasi agar bisa mengakses openLDAP server, muncul form seperti di bawah ini.

New Password:

Re-enter new password:
{SSHA}k/DsZN1Bm05WbI6HZRSNpc3HpmI1Nzgc

Copy-kan password yang sudah terenkripsi tersebut, password ini akan di spesifikasikan pada rootpw pada file slapd.conf

3. Edit slap.conf

Buka file /etc/openldap/slapd.conf dengan menggunakan :
# gedit /etc/openldap/slapd.conf

Setelah terbuka, lakukan perubahan seperti di bawah ini:
1. Edit suffix untuk menspesifikasikan domain componen ldap domain
suffix "dc=warmanet,dc=com"

2. Edit rootdn untuk spesifikasikan common name (cn), defaultnya adalah Manager
rootdn "cn=Manager,dc=warmanet,dc=com"

3. Pastekan password yang sudah ter-enkripsi pada rootpw
rootpw {SSHA}k/DsZN1Bm05WbI6HZRSNpc3HpmI1Nzgc

4. Edit direktory ldap
directory /var/lib/ldap/warmanet

5. Save dan Keluar dari /etc/openldap/slapd.conf

4. Jalankan LDAP Service

Jalankan perintah seperti di bawah ini, untuk menjalankan ldap server
# /etc/init.d/ldap start
atau,

# service ldap start

5. Membuat Account LDAP User

Untuk membuat account ldapUser, lakukan beberapa langkah berikut

1. Membuat user account dengan nama musawarman dengan group users
# useradd -g users musawarman

2. Setting password untuk musawarman
# passwd musawarman
perintah di atas menghasilkan output :
Changing password for user musawarman.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
Jika berhasil dibuat, detail user tersimpan di file /etc/passwd

6. Extract Account ke dalam format LDIF

Untuk meng-ekstrak user dan password yang sudah dibuat dari /etc/passwd dalam format LDIF, lakukan beberapa langkah di bawah ini:
1. Ekstrak user musawarman dari /etc/passwd dan tambahkan kedalam /etc/openldap/passwd.musawarman
# grep musawarman /etc/passwd > /etc/openldap/passwd.musawarman
2. Gunakan migration tools untuk membuat format ldif
Migration tools berada di usr/share/openldap/migration/migrate_passwd.pl
# /usr/share/openldap/migration/migrate_passwd.pl (bersambung ke bawah)
/etc/openldap/passwd.musawarman /etc/openldap/musawarman.ldif
3. Edit /etc/openldap/musawarman.ldif
dn: uid=musawarman,ou=People,dc=padl,dc=com ubah dengan:
dn: uid=musawarman,ou=users,dc=warmanet,dc=com
4. Buatlah file dengan nama warmanet.com.ldif pada /etc/openldap/
# vi /etc/openldap/warmanet.com
5. Isikan dengan data di bawah ini :
dn: dc=warmanet,dc=com
dc: warmanet
description: Root LDAP entry for warmanet.com
objectClass: dcObject
objectClass: organizationalUnit
ou: rootobject

dn: ou=users, dc=warmanet,dc=com
ou: users
description: All people in organisation
objectClass: top
objectClass: organizationalUnit

7. Import LDIF file pada database openLDAP

1. Tuliskan syntax di bawah ini untuk import ldif ke ldap server
# ldapadd -x -D "cn=Manager,dc=warmanet,dc=com" -W -f /etc/openldap /warmanet.com.ldif

Enter LDAP Password:
adding new entry "dc=warmanet,dc=com"
adding new entry "ou=users,dc=warmanet,dc=com"

2. Import ldif yang lain
# ldapadd -x -D “cn=Manager,dc=warmanet,dc=com” -W -f /etc/openldap/musawarman.ldif

Enter LDAP Password:
adding new entry "uid=musawarman,ou=users,dc=warmanet,dc=com"

Cek user musawarman, apakah sudah ada dalam ldap databasenya dengan cara:

# ldapsearch -x -b 'uid=musawarman,ou=users,dc=warmanet,dc=com'

jika ada, maka akan menampilkan output seperti ini:

version: 2
#
# filter: (objectclass=*)
# requesting: ALL
#
# musawarman, users, warmanet, com
dn: uid=musawarman,ou=users,dc=warmanet,dc=com
uid: musawarman
cn: musawarman
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
userPassword::
e2NyeXB0fSQxJHQ0VXpuWGpRJFVqUjJjdy5MYzRBS2J0T0dUMEdnWC8=
shadowLastChange: 12936
shadowMax: 99999
shadowWarning: 7
loginShell: /bin/bash
uidNumber: 500
gidNumber: 100
homeDirectory: /home/musawarman
# search result
search: 2
result: 0 Success
# numResponses: 2
# numEntries: 1


Cek dc (domain component), apakah sudah ada dalam ldap databasenya dengan cara:
# ldapsearch –x –b ‘dc=warmanet,dc=com’ ‘(objectClass=*)’


Client

Pada sisi client perlu di konfigurasi dengan cara mengetikan
# authconfig

pilih ldap, masukan server dengan ip Anda dan isikan dc=warmanet,dc=com

Buatlah default folder direktory untuk account musawarman, dengan cara

# mkdir /home/musawarman

untuk mengetes setting permission ke all dulu (read, write, execute) dengan cara

# chmod 777 /home/musawarman

Log off / restart PC Client dan coba log on sebagai musawarman.



Selamat Mencoba,



Musawarman

3 komentar:

  1. mas, mau tanya, saya mau add file ldif pakai ldapadd tapi selalu keluar ini: ldap_bind: Invalid credentials (49)
    itu kenapa ya?
    trims

    BalasHapus
  2. gk di jawab ya ...?
    wkwkwk

    BalasHapus
  3. akan lebih bagus jika disertai gambar, terima kasih ilmunya

    BalasHapus