Mengatasi Error 451 4.3.0 Temporary lookup failure di Carbonio

Beberapa waktu lalu, saya menemukan satu hal setelah melakukan upgrade in-place pada server Carbonio. Pengiriman email lokal (local delivery) gagal dan log Postfix menunjukkan error 451 4.3.0 Temporary lookup failure yang sekilas terlihat seperti masalah LDAP atau DNS.

Awalnya saya juga mengira penyebabnya adalah layanan LDAP yang tidak berjalan atau DNS lokal bermasalah. Namun setelah melakukan pengecekan lebih dalam, ternyata penyebabnya sama sekali berbeda. Masalah terjadi karena Postfix tidak memiliki izin membaca file konfigurasi LDAP yang digunakan untuk melakukan lookup account dan domain.

Panduan ini membahas langkah-langkah troubleshooting hingga menemukan akar penyebabnya.


Kendala

Saat mengirim email muncul log seperti berikut.

postfix/proxymap: warning: ldap:/opt/zextras/conf/ldap-transport.cf is unavailable.
open /opt/zextras/conf/ldap-transport.cf: Permission denied

postfix/trivial-rewrite: warning:
virtual_alias_domains lookup failure

451 4.3.0 Temporary lookup failure

Karena Postfix gagal melakukan lookup ke LDAP, proses penerimaan email langsung ditolak. Ternyata permission ditolak pada file /opt/zextras/conf/ldap-transport.cf untuk user group postfix.


Analisis Awal

Awalnya saya melakukan beberapa pengecekan berikut.

Memastikan service LDAP berjalan

su - zextras
systemctl list-units -all carbonio-*

Semua service berjalan normal.


Memastikan DNS berjalan

Saya juga mengecek dnsmasq.

systemctl status dnsmasq

Memeriksa permission file LDAP

Saya mengecek seluruh file konfigurasi LDAP yang digunakan Postfix.

ls -l /opt/zextras/conf/ldap-*.cf

Hasilnya:

-rw-r----- 1 zextras zextras ldap-transport.cf
-rw-r----- 1 zextras zextras ldap-vad.cf
-rw-r----- 1 zextras zextras ldap-vmd.cf

Sekilas permission tersebut terlihat normal.

Namun saya mencoba membaca file menggunakan user Postfix.

su -s /bin/bash postfix

Kemudian:

cat /opt/zextras/conf/ldap-transport.cf

Hasilnya:

Permission denied

Di sinilah penyebab utama mulai terlihat.


Mengapa Bisa Terjadi?

Service SMTP dijalankan oleh user postfix.

ps -ef | grep smtpd

Output:

postfix .... smtpd

Sementara file konfigurasi LDAP dimiliki oleh:

Owner : zextras
Group : zextras
Permission : 640

Artinya hanya:

  • owner (zextras)
  • group (zextras)

yang dapat membaca file tersebut.

Karena user postfix bukan anggota group zextras, maka Postfix tidak dapat membaca file konfigurasi LDAP.

Akibatnya seluruh proses lookup gagal.

Postfix
      │
      ▼
ldap-transport.cf
      │
Permission denied
      │
      ▼
LDAP lookup gagal
      │
      ▼
451 Temporary lookup failure

Membandingkan Dengan Server Carbonio yang Normal

Saya kemudian membandingkan dengan server Carbonio lain yang berjalan normal.

Server yang sehat memiliki permission berikut.

-rw-r----- 1 zextras postfix ldap-transport.cf

Perbedaannya hanya pada group ownership.

ServerOwnerGroup
Server errorzextraszextras
Server normalzextraspostfix

Karena group sudah menggunakan postfix, service SMTP dapat membaca file tanpa perlu memberikan permission ke user lain.


Solusi

Saya mengubah group ownership seluruh file LDAP menjadi postfix.

chown zextras:postfix /opt/zextras/conf/ldap-*.cf
chmod 640 /opt/zextras/conf/ldap-*.cf

Kemudian restart layanan MTA.

systemctl restart carbonio-mta.target

Setelah itu saya kembali mencoba membaca file menggunakan user postfix.

su -s /bin/bash postfix

cat /opt/zextras/conf/ldap-transport.cf

File sudah dapat dibaca tanpa error.


Penyebab Permission Berubah

Sampai artikel ini ditulis saya belum tau penyebab pastinya. Namun ada beberapa kemungkinan:

  • Upgrade Carbonio mengubah ownership file.
  • Script maintenance atau proses regenerasi konfigurasi membuat ulang file LDAP.
  • Restore konfigurasi dari backup dengan ownership berbeda.
  • Perubahan manual menggunakan chown.

Tips Sebelum Mengubah Permission

Saya tidak menyarankan menggunakan:

chmod 644 /opt/zextras/conf/ldap-*.cf

karena file tersebut berisi informasi autentikasi LDAP seperti:

bind_dn
bind_pw

Memberikan permission 644 berarti seluruh user lokal pada server dapat membaca credential LDAP.

Solusi yang lebih aman adalah tetap menggunakan permission 640, namun memastikan group ownership sesuai dengan yang dibutuhkan oleh Postfix.


Penutup

Error 451 Temporary lookup failure tidak selalu berarti LDAP atau DNS sedang bermasalah. Pada kasus ini penyebab sebenarnya adalah Postfix tidak dapat membaca file konfigurasi LDAP akibat perubahan group ownership.

Jika menemukan log seperti:

open /opt/zextras/conf/ldap-transport.cf: Permission denied

Periksa ownership dan permission file konfigurasi LDAP dan pastikan ownership dan permission sesuai. Perubahan kecil pada group ownership dapat menyebabkan seluruh proses lookup gagal dan membuat layanan email tidak dapat berfungsi sebagaimana mestinya.

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *