> ## Content Index
> Fetch the complete content index at: https://www.newbienotes.my.id/llms.txt
> Use this file to discover other available public pages before exploring further.

# Membenahi IP Publik yang Tidak Terbaca di audit.log Zimbra
- URL: https://www.newbienotes.my.id/membenahi-ip-publik-yang-tidak-terbaca-di-audit-log-zimbra/
- Published: 2026-08-29T15:21:58.000Z
- Updated: 2026-08-29T15:24:25.000Z
- Author: Kudoluffi
- Tags: Zimbra, Fail2ban

Kalau kamu mengelola Zimbra OSE self-hosted, ada satu masalah klasik yang sering luput diperhatikan sampai suatu hari kamu butuh setup fail2ban: **audit.log mencatat IP server Zimbra sendiri sebagai IP login, bukan IP publik user yang sebenarnya.** Akibatnya, rule fail2ban yang kamu buat jadi percuma — bukannya memblokir penyerang, dia malah berpotensi memblokir seluruh trafik webmail sekaligus (karena semua "IP" yang tercatat sama saja).

Tulisan ini mendokumentasikan penyebab masalahnya, cara memperbaikinya, sampai pertimbangan kalau di depan server Zimbra kamu ada firewall/router (studi kasus: Mikrotik) yang melakukan port forwarding.

> **Lingkungan referensi:** Zimbra OSE 10.1.17 di Ubuntu 24.04, instalasi single-server (all-in-one).

---

## 1\. Kenapa Ini Bisa Terjadi?

Zimbra single-server itu sebenarnya bukan satu proses monolitik — ada dua komponen HTTP yang bekerja sama:

- **`zimbra-proxy`** — nginx bawaan Zimbra, menerima koneksi HTTPS dari internet di port 80/443.
- **`zimbra-mailbox`** (mailboxd, berbasis Jetty) — mesin sesungguhnya yang memproses login & mail, biasanya di `localhost:8080`/`8443`.

Jadi walaupun cuma "satu server", secara internal traffic tetap melewati proxy dulu sebelum sampai ke mailboxd. Masalahnya: **mailboxd hanya melihat koneksi datang dari nginx (127.0.0.1)**, kecuali dia diberi tahu secara eksplisit untuk membaca IP asli dari header `X-Forwarded-For` yang dikirim nginx.

Di sinilah dua attribute config Zimbra berperan:

- `zimbra_http_originating_ip_header` — header mana yang harus dibaca mailboxd untuk cari IP asli (default: `X-Forwarded-For`).
- `zimbraMailTrustedIP` — **daftar IP yang boleh dipercaya** untuk mengisi header tersebut. Kalau daftar ini kosong (default-nya memang kosong!), mailboxd akan mengabaikan header X-Forwarded-For sama sekali dan mencatat IP koneksi TCP langsung — yaitu IP si proxy (127.0.0.1 / IP server itu sendiri).

Itulah sumber masalahnya: bukan bug, tapi memang default Zimbra belum "mempercayai" siapa pun untuk mengoper informasi IP asli.

---

## 2\. Solusi: Set `zimbraMailTrustedIP`

Cek dulu kondisi sekarang:

```bash
su - zimbra -c "zmlocalconfig zimbra_http_originating_ip_header"
su - zimbra -c "zmprov gcf zimbraMailTrustedIP"

```

Kalau `zimbraMailTrustedIP` kosong, itu memang biang masalahnya. Karena proxy dan mailbox ada di server yang sama, tambahkan **dua-duanya**: loopback dan IP asli NIC server (nginx kadang connect lewat salah satu dari keduanya, tergantung binding):

```bash
su - zimbra -c "zmprov mcf +zimbraMailTrustedIP 127.0.0.1"
su - zimbra -c "zmprov mcf +zimbraMailTrustedIP <IP-internal-server-zimbra>"

```

Restart mailboxd supaya perubahan kebaca:

```bash
su - zimbra -c "zmmailboxdctl restart"

```

Verifikasi dengan login ulang lalu tail log:

```bash
tail -f /opt/zimbra/log/audit.log

```

Field `oip=` (originating IP) di baris log sekarang seharusnya sudah menampilkan IP publik user yang sebenarnya.

---