[ZIMBRA] Panduan Pembatasan Pengiriman Massal di Zimbra 8.8.15 (Postfix) - fourslickz/notes GitHub Wiki
Panduan Pembatasan Pengiriman Massal di Zimbra 8.8.15 (Postfix)
Versi: Zimbra 8.8.15_GA_3869 RHEL7_64 FOSS, Patch 8.8.15_P45
1. Latar belakang
Di Zimbra 8.8.15 FOSS tidak ada atribut zmprov untuk membatasi jumlah penerima per email atau rate pengiriman (yang tersedia hanya zimbraMtaSmtpdClientAuthRateLimit, itu untuk percobaan autentikasi). Karena itu, pembatasan diatur langsung di Postfix dengan postconf -e.
Tujuannya mencegah akun yang dibobol dipakai spam massal, seperti kasus email berjudul "Investitionsmöglichkeit" yang dikirim ke puluhan penerima sekaligus dari [email protected].
2. Kondisi awal (default)
postconf smtpd_recipient_limit smtpd_client_message_rate_limit smtpd_client_recipient_rate_limit anvil_rate_time_unit
smtpd_recipient_limit = 1000
smtpd_client_message_rate_limit = 0
smtpd_client_recipient_rate_limit = 0
anvil_rate_time_unit = 60s
Satu email boleh dikirim ke 1000 penerima dan tidak ada batas jumlah email per menit. Kondisi ini rawan disalahgunakan.
3. Perintah yang dijalankan
postconf -e smtpd_recipient_limit=5
postconf -e smtpd_client_message_rate_limit=60
postconf -e smtpd_client_recipient_rate_limit=200
zmmtactl reload
Output zmmtactl reload:
Rewriting configuration files...
done.
Stopping amavisd... done.
Stopping amavisd-mc... done.
Starting amavisd-mc...done.
Starting amavisd...done.
Stopping saslauthd...done.
Starting saslauthd...done.
/postfix-script: refreshing the Postfix mail system
Zimbra menulis ulang konfigurasi, me-restart amavisd dan saslauthd, lalu me-refresh Postfix. Tidak ada error, jadi proses berhasil.
4. Kondisi setelah perubahan
smtpd_recipient_limit = 5
smtpd_client_message_rate_limit = 60
smtpd_client_recipient_rate_limit = 200
anvil_rate_time_unit = 60s
Ketiga nilai berubah dan sudah aktif.
5. Penjelasan tiap parameter
| Parameter | Nilai | Arti |
|---|---|---|
smtpd_recipient_limit |
5 | Maksimal 5 penerima per satu email (To + Cc + Bcc). Penerima ke-6 dan seterusnya ditolak sementara dengan 452 4.5.3 Too many recipients. |
smtpd_client_message_rate_limit |
60 | Maksimal 60 email per menit per IP klien. |
smtpd_client_recipient_rate_limit |
200 | Maksimal 200 penerima per menit per IP klien. |
anvil_rate_time_unit |
60s | Satuan waktu untuk menghitung rate di atas (1 menit). |
6. Perhatian: nilai 5 atau 50?
Rencana awal nilainya 50, sedangkan yang dijalankan 5. Kalau sengaja untuk uji coba, tidak masalah. Namun nilai 5 sangat ketat: user sah yang mengirim ke lebih dari 5 orang sekaligus (rapat, pengumuman) akan terkena penolakan sebagian.
Untuk pemakaian normal disarankan 50:
postconf -e smtpd_recipient_limit=50
zmmtactl reload
7. Cara kerja dan batasannya
- Limit penerima dihitung per transaksi SMTP. Perintah
postconf -ecukup dijalankan sekali, lalu berlaku untuk setiap email. - Penerima yang melewati batas ditolak sementara. Client email yang baik akan mengirim ulang sisanya, sedangkan spammer biasanya tidak.
- Limit rate dihitung per IP, bukan per akun. IP yang masuk
mynetworks(misalnya localhost) dikecualikan. - Jika spam dikirim lewat webmail, IP yang terlihat adalah IP server sendiri, sehingga limit rate tidak efektif.
- Spammer bisa mengakali dengan banyak email kecil, jadi limit ini hanya memperlambat. Akun yang dibobol tetap harus dikunci.
8. Verifikasi
# Nilai yang aktif
postconf smtpd_recipient_limit smtpd_client_message_rate_limit smtpd_client_recipient_rate_limit
# Hanya parameter yang berbeda dari default
postconf -n | grep -E "recipient_limit|rate_limit"
Cek apakah setelan bertahan setelah restart penuh:
zmmtactl restart
postconf smtpd_recipient_limit smtpd_client_message_rate_limit smtpd_client_recipient_rate_limit
Jika nilainya kembali ke default, jalankan ulang perintah postconf -e. Ini bisa terjadi setelah upgrade atau perubahan konfigurasi MTA lewat zmprov.
9. Mengembalikan ke default
postconf -e smtpd_recipient_limit=1000
postconf -e smtpd_client_message_rate_limit=0
postconf -e smtpd_client_recipient_rate_limit=0
zmmtactl reload
10. Langkah lanjutan yang disarankan
- Kunci akun yang dibobol:
zmprov ma [email protected] zimbraAccountStatus locked
zmprov sp [email protected] 'PasswordBaruYangKuat123!'
- Cek antrian spam:
/opt/zimbra/common/sbin/postqueue -p | tail -1
- Cari akun pengirim sebenarnya (nama di header bisa dipalsukan):
grep -o 'sasl_username=[^ ,]*' /var/log/zimbra.log | sort | uniq -c | sort -rn | head
- Kuota per akun lewat Cbpolicyd (opsional), misalnya 100 email per jam per akun.
- Pasang fail2ban untuk brute force SMTP/IMAP dan perbarui Zimbra ke patch terbaru.
Claude finished the response