05 Desember 2008

Ubuntu client dengan LDAP otentikasi

Di artikel sebelum ini, udah gue jelasin kalo gue gunakan LDAP server sebagai backend account untuk samba (dan tentu saja bisa sebagai backend account Linuxnya). Dokumentasi yang sangat bagus di paket "smbldap-tools" sangat memudahkan untuk membuatnya. Berikut ini gemana mensetting client Ubuntu untuk gunakan otentikasi dari LDAP.

Salah satu kemajuan di Ubuntu adalah mudahnya setting client untuk gunakan otentikasi LDAP. Ini akan gue jelasin dari terminal aja yah. Jadi loe yang mau setting Ubuntu server pun bisa juga.

Settingnya sebenernya ada 3 hal:
  1. Configurasi /etc/ldap.conf dan /etc/ldap.secret agar Ubuntu tau LDAP server mana yang dipake
  2. Configurasi PAM di /etc/pam.d agar username di LDAP bisa dipake login
  3. Serta setting /etc/nsswitch.conf agar semua username & group di LDAP bisa terintegrasi di sistem
So... itu semuanya dulu paling ribet settingnya :-D Tapi meta paket "ldap-auth-client" disediakan untuk keperluan ini. Dan sekarang jadi lebih mudah saja.

Install aja paket "ldap-auth-client". Di dalamnya udah disertakan libnss-ldap juga beberapa paket laennya.

sudo apt-get install ldap-auth-client

Sehabis install paket itu, debconf langsung menanyakan beberapa hal berkaitan dengan libnss-ldap. Coba jawab aja seperti ini:
  1. Should debconf manage LDAP configuration?
    Yes
  2. LDAP server Uniform Resource Identifier:
    ldap://ldap.domain.com/ ldap://ldap2.domain.com/
  3. Distinguished name of the search base:
    dc=domain,dc=com
  4. LDAP version to use:
    3
  5. Make local root Database admin:
    Yes
  6. Does the LDAP database require login?
    No
  7. LDAP account for root:
    cn=admin,dc=domain,dc=com
  8. LDAP root account password:
    <your-ldap-password>
  9. Local crypt to use when changing passwords:
    md5
Oya, gue di atas pake 2 LDAP server. Jaga-jaga aja. Kalo LDAP server pertama error, yang ke 2 bisa langsung gantikan. Laen kale gue bahas deh termasuk sinkronisasi ke 2 LDAP server itu. Sedangkan kalo abis setting merasa ada yang salah tulis or hal laen, coba ulang aja dengan command ini:

sudo dpkg-reconfigure ldap-auth-config

Pertanyaan itu semuanya hanya untuk generate /etc/ldap.conf (config LDAP client) dan /etc/ldap.secret (password LDAP). Selanjutnya config PAM dan NSSWITCH nggak perlu lakukan setting manual. Udah terinstall utilities "auth-client-config" yang menyertakan file sample configurasi.

Coba check ke dalam folder /etc/auth-client-config/profile.d/

ls -ls /etc/auth-client-config/profile.d/
total 16
4 -rw-r--r-- 1 root root  326 2008-04-10 05:27 acc-cracklib
4 -rw-r--r-- 1 root root 2202 2008-04-10 05:27 acc-default
4 -rw-r--r-- 1 root root  948 2007-09-21 02:13 ldap-auth-config
4 -rw-r--r-- 1 root root  610 2008-09-12 15:54 ldap-domain.com

cat /etc/auth-client-config/profile.d/ldap-auth-config
#
# Clients should be able to authenticate with this profile if following
# Network Authentication in the Ubuntu Server guide.  Please note that
# these settings are not suitable for sometimes disconnected (eg laptop)
# systems.  The example is taken from LDAPClientAuthentication at:
# https://help.ubuntu.com/community/LDAPClientAuthentication
#
[lac_ldap]
nss_passwd=passwd: files ldap
nss_group=group: files ldap
nss_shadow=shadow: files ldap
pam_auth=auth       sufficient   pam_ldap.so
    auth       required     pam_unix.so nullok_secure use_first_pass
pam_account=account    sufficient   pam_ldap.so
    account    required     pam_unix.so
pam_password=password   sufficient   pam_ldap.so
    password   required     pam_unix.so nullok obscure min=4 max=8 md5
pam_session=session    required     pam_unix.so
    session    required     pam_mkhomedir.so skel=/etc/skel/
    session    optional     pam_ldap.so
    session    optional     pam_foreground.so


Loe bisa pake file itu untuk configure PAM dan NSSWITCH-nya. Cara seperti ini:

sudo auth-client-config -a -p lac_ldap

Setelah restart, loe langsung bisa pake username dari LDAP server. Dan juga fasilitas auto create home foldernya.

Laen waktu pengen meresetnya (disjoint dari LDAP server), pake seperti ini:

sudo auth-client-config -a -r -p lac_ldap

Utility laen yang perlu loe pertimbangakan untuk mengurangi query ke LDAP server, loe bisa install pake "nscd" di client. Ini digunakan untuk mencache passwd, group dan hosts. Terutama untuk yang koneksi ke LDAP servernya pelan.

Goodluck pren

4 komentar:

a mengatakan...

wew mas,
makasih udah ngelink toko saya.

thanks ya

amrinz mengatakan...

amrinz neh, sorry namanya kepotong,

Nice Blogger mengatakan...

mantaff
bisa buat panduan lengkapnya gak?

awan kinton mengatakan...

kalo buat otentifikasi squid apakah sama mas. kemaren saya coba auth-client-config -a -p lac_ldap

tapi hasilnya kok gini

Error in updating the file: 'pam_account' not found
--
Errors found. Aborting (no changes made)