Panduan Install Dan Konfigurasi Proxmox Mail Gateway (PMG) via ISO (Production Ready)
Panduan ini cocok buat kamu yang mau pakai PMG sebagai Mail Gateway di depan mail server backend (contoh: Poste.io) supaya email:
โ
Difilter Spam/Virus
โ
Auto DKIM Sign โ๏ธ
โ
Lolos SPF
โ
Lolos DMARC
โ
Gak masuk Spam ๐
๐งฑ Arsitektur Target
Internet
โ
MX Domain
โ
PMG (Filter + DKIM)
โ
Mail Server Backend (Poste.io / dll)
โ
Inbox User
PMG = Security Layer ๐
Mail Server = Storage Inbox ๐ฌ
โ Prasyarat
Siapkan dulu:
| Kebutuhan | Contoh |
|---|---|
| Public IP PMG | 103.16.2.61 |
| Hostname PMG | pmg.domainkamu.id |
| Mail Backend | 103.16.6.9 |
| PTR (rDNS) | pmg.domainkamu.id |
| A Record | pmg.domainkamu.id โ 103.16.2.61 |
โ ๏ธ PTR WAJIB sama dengan hostname PMG.
๐ฟ INSTALL PMG VIA ISO
1๏ธโฃ Download ISO
Download dari:
https://www.proxmox.com/en/downloads
2๏ธโฃ Buat VM
Rekomendasi:
- CPU: 2 Core ๐ง
- RAM: 2โ4GB ๐งฌ
- Disk: 20โ40GB ๐พ
- Network: Bridge ke Public / LAN
Boot dari ISO โ pilih:
Install Proxmox Mail Gateway
3๏ธโฃ Network Setting
Isi:
Hostname : pmg.domainkamu.id
IP : (LAN / Public IP)
Gateway : sesuai network
Install selesai โ Reboot ๐
Akses:
https://IP-PMG:8006
๐ DNS WAJIB
A Record
pmg.domainkamu.id โ 103.16.2.61
Proxy: DNS Only
MX Record
domainkamu.id โ pmg.domainkamu.id
Priority: 10
DNS Only
SPF
v=spf1 ip4:103.16.2.61 -all
๐ฅ NAT PERLU (JIKA PMG DI BAWAH MIKROTIK)
Misal PMG LAN:
172.21.0.9
/ip firewall nat
add chain=dstnat protocol=tcp dst-address=103.16.2.61 dst-port=25 action=dst-nat to-addresses=172.21.0.9 to-ports=25 comment="SMTP to PMG"
/ip firewall nat
add chain=dstnat protocol=tcp dst-address=103.16.2.61 dst-port=26 action=dst-nat to-addresses=172.21.0.9 to-ports=26 comment="SMTP to PMG"
/ip firewall nat
add chain=srcnat src-address=172.21.0.9 prot
ocol=tcp dst-port=25 action=src-nat to-addresses=103.16.2.61 comment="FORCE PMG SM
TP OUT"
โ๏ธ KONFIGURASI PMG
Masuk:
Configuration โ Mail Proxy
๐ข STEP 1 โ Relay Domain
Tambahkan domain yang dilayani:
masdika.id
๐ข STEP 2 โ Transport (Per Domain)
masdika.id โ 103.16.6.9 โ port 25
Use MX: Uncheck
PMG akan forward email ke backend.
๐ข STEP 3 โ Trusted Network
Tambahkan backend mail:
103.16.6.9/32
Supaya backend boleh kirim outbound via PMG.
๐ข STEP 4 โ Enable TLS
Enable TLS: Yes

๐ DKIM CONFIG
Masuk:
Configuration โ Mail Proxy โ DKIM
Edit:
Enable DKIM Signing: Yes
Selector: pmg
Sign all Outgoing Mail: Yes

๐ข STEP 5 โ Sign Domain
Klik Create:
masdika.id
โ ๏ธ CLI OPENSSL?
Jalankan perintah ini untuk generate DKIM
PMG otomatis generate:
openssl genrsa -out /etc/pmg/dkim/pmg.private 2048
openssl rsa -in /etc/pmg/dkim/pmg.private -pubout -out /etc/pmg/dkim/pmg.public
๐ข STEP 6 โ Ambil DKIM
Klik:
View DNS Record
Salin TXT Public Key.

๐ DNS DKIM (SETIAP DOMAIN)
masdika.id
Type:
TXT
Name:
pmg._domainkey
Value:
โก๏ธ Paste public key hasil generate DKIM
โ ๏ธ SATU BARIS TANPA TANDA KUTIP
๐ฌ POSTE.IO (BACKEND)
Admin โ SMTP Route:
Route all outgoing emails via external mailserver โ
Target SMTP: pmg.domainkamu.id
Port: 26
Auth: Off

โ ๏ธ Matikan DKIM di backend.
Biarkan PMG yang sign.
๐งช TESTING
Kirim email ke Gmail.
Gmail โ Show Original
Harus muncul:
SPF: PASS
DKIM: PASS
DMARC: PASS
๐งฐ TROUBLESHOOT
Backend โ PMG
telnet pmg.domainkamu.id 25
PMG โ Internet
telnet gmail-smtp-in.l.google.com 25
Realtime Log
tail -f /var/log/mail.log
๐ฃ MULTI DOMAIN
Domain baru?
Cukup:
- Tambah Relay Domain
- Tambah Transport
- Tambah Trusted Network
- Tambah Sign Domain
- Tambah TXT DKIM
โ Tidak perlu generate key baru
๐ ๏ธ TROUBLESHOOTING: Error TLS Certificate Missing di PMG
Pada beberapa kasus setelah instalasi Proxmox Mail Gateway, email masuk bisa gagal karena TLS certificate tidak ditemukan.
Biasanya akan muncul error seperti ini di log:
tail -f /var/log/mail.log
Contoh error:
warning: error opening chain file: /etc/pmg/pmg-tls.pem: No such file or directory
lost connection after STARTTLS
Artinya Postfix tidak menemukan file TLS certificate yang digunakan untuk STARTTLS.
Akibatnya mail server lain seperti Gmail akan memutus koneksi karena handshake TLS gagal.
๐ Penyebab
File TLS bawaan PMG belum dibuat atau gagal dibuat.
File yang dicari oleh Postfix adalah:
/etc/pmg/pmg-tls.pem
Jika file ini tidak ada maka SMTP TLS akan gagal.
โก Cara Cepat Solve (Generate TLS Manual)
Jika terjadi error tersebut, kita bisa membuat certificate sementara menggunakan OpenSSL.
Jalankan perintah berikut:
openssl req -x509 -newkey rsa:4096 -nodes \
-keyout /etc/pmg/pmg-tls.pem \
-out /etc/pmg/pmg-tls.pem \
-days 3650 \
-subj "/C=ID/ST=East Java/L=Surabaya/O=PMG/OU=Mail/CN=pmg.masdika.id"
Perintah ini akan membuat Self Signed Certificate yang langsung bisa digunakan oleh Postfix.
๐ Set Permission File
Setelah certificate dibuat, atur permission agar bisa dibaca oleh Postfix:
chmod 640 /etc/pmg/pmg-tls.pem
chown root:www-data /etc/pmg/pmg-tls.pem
๐ Restart Postfix
Agar konfigurasi TLS terbaca oleh sistem mail:
systemctl restart postfix
๐ Verifikasi
Pastikan file sudah ada:
ls -lh /etc/pmg/pmg-tls.pem
Cek kembali log mail:
tail -f /var/log/mail.log
Jika berhasil, error berikut akan hilang:
error opening chain file
lost connection after STARTTLS
Dan koneksi SMTP TLS akan berjalan normal.
โ ๏ธ Catatan
Certificate yang dibuat di atas adalah Self Signed Certificate, sehingga:
โ SMTP tetap berjalan normal
โ Gmail tetap bisa kirim email
โ Sertifikat tidak trusted oleh browser
Untuk produksi disarankan menggunakan Let’s Encrypt Certificate melalui fitur ACME di Proxmox Mail Gateway.
๐ฏ Kesimpulan
Jika PMG mengalami error TLS seperti ini:
error opening chain file: /etc/pmg/pmg-tls.pem
Solusinya cukup:
1๏ธโฃ Generate TLS certificate manual
2๏ธโฃ Set permission file
3๏ธโฃ Restart postfix
SMTP akan langsung normal kembali.
๐ ๏ธ TROUBLESHOOTING: ClamAV Tidak Bisa Update (freshclam error)
Pada beberapa instalasi Proxmox Mail Gateway, proses update database antivirus ClamAV bisa gagal.
Biasanya muncul error seperti ini saat menjalankan:
freshclam
Contoh error:
WARNING: Download failed (6)
Message: Couldn't resolve host name
Can't download daily.cvd from https://database.clamav.net
Padahal server sebenarnya bisa internet dan DNS normal.
๐ Penyebab
Masalah ini biasanya disebabkan oleh AppArmor yang memblokir proses freshclam.
AppArmor adalah security module di Linux yang membatasi akses aplikasi terhadap sistem.
Pada beberapa instalasi Proxmox Mail Gateway, policy AppArmor dapat membuat freshclam tidak bisa melakukan koneksi keluar, sehingga update database virus gagal.
โก Cara Fix
Install utilitas AppArmor terlebih dahulu:
apt update
apt install apparmor-utils -y
Kemudian ubah mode AppArmor untuk freshclam menjadi complain mode:
aa-complain /usr/bin/freshclam
Jika berhasil akan muncul output seperti ini:
Setting /usr/bin/freshclam to complain mode.
Mode ini membuat AppArmor tidak lagi memblokir freshclam, tetapi hanya mencatat aktivitasnya ke log.
๐ Update Database ClamAV
Setelah itu jalankan kembali update database:
freshclam
Jika berhasil akan muncul output seperti:
daily.cld updated
main.cvd database is up-to-date
bytecode.cvd database is up-to-date
Clamd successfully notified about the update.
Artinya database antivirus berhasil diperbarui dan service ClamAV sudah aktif.
๐ Verifikasi Service ClamAV
Pastikan service berjalan:
systemctl status clamav-freshclam
atau
systemctl status clamav-daemon
๐ฏ Kesimpulan
Jika PMG mengalami error seperti ini:
Couldn't resolve host name
Failed to get daily database version
Padahal koneksi internet normal, biasanya penyebabnya adalah AppArmor memblokir freshclam.
Solusinya cukup:
1๏ธโฃ Install apparmor-utils
2๏ธโฃ Jalankan aa-complain /usr/bin/freshclam
3๏ธโฃ Jalankan kembali freshclam
Setelah itu database antivirus akan update normal kembali.embali.
๐ FINAL
Setup kamu sekarang:
โ Gateway Filter
โ DKIM Signing
โ SPF PASS
โ DMARC PASS
โ TLS Enabled
โ Multi Domain Ready
Production Ready ๐
Backup server adalah hal wajib untuk menjaga data tetap aman dari kegagalan hardware, human error, maupun serangan malware. Dengan Proxmox…
Kalau kamu pakai Proxmox VE 9 dan mau automasi bikin VM tanpa klik-klik GUI, Terraform adalah jawabannya. Artikel ini FULL…