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:
-
SMTP Authentication menggunakan Cyrus-SASL
(paket:cyrus-sasl,sasl2-bin,libsasl2-modules-ldap) -
SMTP Authentication menggunakan Dovecot + dovecot-ldap
-
SMTP Authentication menggunakan Courier
-
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
- http://www.postfix.org/SASL_README.html
- https://www.linuxtopia.org/online_books/mail_systems/postfix_documentation/local.8.html
- http://www.postfix.org/DATABASE_README.html
- https://www.dovecot.org/doc/dovecot-example.conf
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