Tag Archives: ldap

Kasus starting LDAP lama banget saat booting

Ini adalah kasus di server temen saya. Saat booting sistem berhenti ketika menjalankan service ldap. OS menggunakan CentOS 4.7.

Setelah saya cek, /etc/nsswitch.conf di set seperti ini

passwd:     files ldap
shadow:     files ldap
group:      files ldap

Yang berarti untuk user dan group, sistem akan melakukan lookup ke data di ldap.

Dan di sini lah letak masalahnya, saat booting sistem sudah melakukan lookup data user dari ldap, sedangkan ldapnya sendiri belum jalan.

Ternyata, solusinya mudah. Di nss_ldap, kita bisa paksa agar user-user tertentu tidak di lookup ke ldap. Caranya kalau di CentOS, sunting berkas /etc/ldap.conf, masukkan baris seperti ini [1].

nss_initgroups_ignoreusers root,ldap,named,avahi,haldaemon

Yup, yang saya ignore adalah user root, ldap, named, avahi dan haldaemon. Setelah konfigurasi itu diterapkan, sekarang starting ldap menjadi normal kembali.

Case closed!

[1] Informasi saya dapatkan dari bugzilla redhat.

Beberapa hal yang perlu diperhatikan saat akan migrasi ke GOsa

Untuk keperluan migrasi dari qmailLDAP + courier imap ke postfix LDAP + cyrus imap (menggunakan GOsa sebagai alat bantu administrasi) di mail server comlabs, ada beberapa hal yang perlu diperhatikan:

  • Untuk mempertahankan login yang mengandung karakter “.” (titik). Yaitu untuk user asisten yang menggunakan standar login hasil concat dari firstname dan lastname.
    • Cyrus imap harus di set menggunakan unix hierarchy convention
      # /etc/imapd.conf
      unixhierarchysep:       yes
    • GOsa secara default menolak login yang mengandung karakter “.” (titik). Sehingga perlu sedikit diubah di file/usr/share/gosa/include/functions.inc pada fungsi is_dn, is_uid
      # dari
      preg_match (\"/^[a-z0-9 _-]+$/i\", $uid)
      # menjadi
      preg_match (\"/^[a-z0-9 _.-]+$/i\", $uid)
    • GOsa secara default menggunakan cyrus standard internal name space, maka perlu diubah supaya bisa menggunakan alternative name space pada file /usr/share/gosa/plugins/personal/mail/class_mailAccount.inc, fungsi mailAccount.
      # dari
      $this->folder_prefix= \"user.\";
      # menjadi
      $this->folder_prefix= \"user/\";

saslauthd LDAP

Install ports cyrus-sasl2-saslauthd. Jangan lupa dikompilasi agar support LDAP.

cd /usr/ports/security/cyrus-sasl2-saslauthd
make -DWITH_OPENLDAP
make install clean


Edit konfigurasinya,

# contoh konfigurasi
# files: /usr/local/etc/saslauthd.conf
ldap_servers: ldap://localhost/
ldap_scope: sub
ldap_search_base: dc=gonicus,dc=de

Test imap:

ns# telnet localhost 143
Trying ::1...
Connected to localhost.
Escape character is '^]'.
* OK ns.comlabs.itb.ac.id Cyrus IMAP4 v2.2.3 server ready
001 login \"cecepmr\" \"cecepmr\"
001 OK User logged in
001 logout
* BYE LOGOUT received
001 OK Completed
Connection closed by foreign host.

Test pop3:

ns# telnet localhost 110
Trying ::1...
Connected to localhost.
Escape character is '^]'.
+OK ns.comlabs.itb.ac.id Cyrus POP3 v2.2.3 server ready
user cecepmr
+OK Name is a valid mailbox
pass cecepmr
+OK Mailbox locked and ready
list
+OK scan listing follows
.
^]
telnet> q
Connection closed.

saslauthd.conf

Contoh:

ldap_servers: ldap://localhost/
ldap_bind_dn: cn=imap,ou=Accounts,dc=CHANGE,dc=ME
ldap_bind_pw: secret
ldap_scope: sub
ldap_search_base: ou=Accounts,dc=CHANGE,dc=ME
ldap_auth_method: bind
ldap_filter: (&(uid=%u)(|(role=mailUser)(role=mailAdmin)))
ldap_group_dn: cn=%s,ou=MAILROLE,ou=Roles,dc=CHANGE,dc=ME