Cara Konfigurasi SMTP Authentication Postfix Menggunakan LDAP (Dovecot + libnss-ldap)

Untuk membuat SMTP Authentication pada Postfix, diperlukan komponen SASL seperti Cyrus-SASL atau Dovecot-SASL. Hal ini dijelaskan dalam dokumentasi resmi Postfix:

http://www.postfix.org/SASL_README.html

Salah satu kebutuhan yang sering muncul adalah:

“Authentication has to be done through LDAP.”
Artinya proses autentikasi SMTP harus menggunakan user yang tersimpan di LDAP server.


Metode SMTP Authentication dengan LDAP

Ada beberapa cara untuk mengimplementasikan autentikasi LDAP pada Postfix, di antaranya:

  1. SMTP Authentication menggunakan Cyrus-SASL
    (paket: cyrus-sasl, sasl2-bin, libsasl2-modules-ldap)

  2. SMTP Authentication menggunakan Dovecot + dovecot-ldap

  3. SMTP Authentication menggunakan Courier

  4. SMTP Authentication menggunakan Dovecot + libnss-ldap(metode yang dibahas di artikel ini)


Konsep Metode Dovecot + libnss-ldap

Secara default, Dovecot menggunakan system users untuk autentikasi.
Oleh karena itu, kita dapat memanfaatkan libnss-ldap agar user LDAP dapat dikenali sebagai system user di Linux.

Dengan cara ini:

Postfix → Dovecot (SASL) → NSS → LDAP Server


Langkah Konfigurasi

1. Install libnss-ldap

Lakukan instalasi paket:

apt install libnss-ldap

2. Konfigurasi NSS

Edit file berikut:

/etc/nsswitch.conf

Pastikan bagian passwd, group, dan shadow berisi:

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

3. Konfigurasi libnss-ldap

Jalankan konfigurasi ulang:

dpkg-reconfigure libnss-ldap

Kemudian sesuaikan pengaturan di:

/etc/ldap.conf

4. Konfigurasi Dovecot untuk SASL

Pastikan Dovecot menggunakan autentikasi system user (default).

Contoh konfigurasi utama:

auth_mechanisms = plain login
!include auth-system.conf.ext

Dengan konfigurasi ini, Dovecot akan membaca user dari NSS → LDAP.


Hal Penting yang Harus Diperhatikan

✅ Pastikan user lokal tidak ada

User dengan nama yang sama tidak boleh ada di /etc/passwd, agar autentikasi benar-benar menggunakan LDAP.


✅ Pastikan user LDAP tidak bisa login lokal

Saat membuat user di LDAP, gunakan shell:

/sbin/nologin

Tujuannya agar user hanya digunakan untuk autentikasi mail, bukan login sistem.


Cara Kerja Autentikasi

Bagaimana Postfix mengecek user

Postfix akan melihat database user melalui mekanisme lookup: http://www.postfix.org/DATABASE_README.html


Bagaimana Dovecot mengecek user

Dovecot memverifikasi user melalui system lookup (NSS): https://www.dovecot.org/doc/dovecot-example.conf


Referensi Tambahan


Kesimpulan

Menggunakan Dovecot + libnss-ldap merupakan metode yang sederhana untuk mengintegrasikan Postfix dengan LDAP karena:

  • Tidak perlu konfigurasi LDAP langsung di Postfix
  • Dovecot cukup membaca system user
  • libnss-ldap bertindak sebagai penghubung ke LDAP

Metode ini cocok untuk implementasi SMTP Authentication berbasis LDAP dengan konfigurasi yang relatif mudah.


Lampiran video 




Make sure that the corresponding local user do not exist
Berikut screencast untuk solusi memakai dovecot dan libnss-ldap




Make sure LDAP user cannot login locally
Pada saat pembuatan user LDAP untuk shell isikan /sbin/nologin



Good Luck







Komentar

Anonim mengatakan…
Kalau untuk multiple domain LDAP gimana?

Postingan populer dari blog ini

Cara restart / stop windows service (services.msc) dengan bat / cmd

Learning Haproxy Load Balancer with Podman and Go Backends

Konfigurasi ITNSA OpenVPN auth LDAP