Di sini kita akan membuat MX server (server penerima email) pada Debian 12. Yes, khusus untuk menerima email saja, dan meneruskan ke mail server original. Tujuannya sudah jelas, agar high availability dan tidak terlalu membebani host mail server original.
Siapkan Debian 12
Siapkan OS debian 12 dan sudah upgrade semua. Pastikan set hostname dan nama servernya sama, dan jangan lupa di add ke /etc/hosts.
Install Postfix terlebih dahulu.
apt install postfix -y
Konfigurasi postfix
Pertama mari kita modifikasi sedikit.
nano /etc/postfix/main.cf
Lalu masukkan yang kita perlukan seperti :
relay_domains = namadomain
relay_recipient_maps =
transport_maps = hash:/etc/postfix/transport
Penjelasan :
- relay_domains : Nama domain dimana email akan di forward dari MX server.
- relay_recipeint_maps : Jika di kosongkan, maka valid ke semua mailbox.
- transport_maps : Final destinasi dimana email harus di kirim
nano /etc/postfix/transport
Lalu kita define nama domain mail server original, dan port berapa. Di sini saya menggunakan port 587.
qqq.id relay:[qqq.id]:587
Mari kita bereskan sisanya, dan restart service.
postmap /etc/postfix/transport
systemctl restart postfix
Mengaktifkan Logs
Kemudian kita aktifkan logs agar bisa membaca logsnya.
apt update && sudo apt install rsyslog -y
systemctl start rsyslog
systemctl enable rsyslog
Kemudian kita edit
nano /etc/rsyslog.d/50-default.conf
mail.* -/var/log/mail.log
mail.info -/var/log/mail.info
mail.warn -/var/log/mail.warn
mail.err /var/log/mail.err
systemctl restart rsyslog
systemctl restart postfix
Dengan begini semua logs email akan tercatat di /var/log/mail.log
Proteksi Keamanan
Jika ditambahkan dengan fitur keamanan seperti anti spoofing, maka tambahkan ini di main.cf :
Dia bakal reject dari sumber yang tidak sah atau ilegal.
smtpd_sender_restrictions =
check_sender_access hash:/etc/postfix/sender_access
Kemudian buat /etc/postfix/sender_access
DOMAINKU reject:550 Sender domain forged from unauthorized IP
Lalu kita adjust.
Tambahan keamanan untuk restriksi recipient saja.
smtpd_recipient_restrictions =
permit_mynetworks,
reject_unauth_destination
Oke kita postmap dan reload.
postmap /etc/postfix/sender_access
systemctl reload postfix
Opsional
Ada opsi tambahan untuk configure log path. Misalnya mau di /mnt/log/mail.log.
postconf "maillog_file_prefixes = /var, /dev/stdout, /mnt"
postconf "maillog_file = /mnt/log/mail.log"
postconf "maillog_file_permissions = 0644"
systemctl restart postfix
Aktifkan internal logging service untuk postfi.
postlog unix-dgram n - n - 1 postlogd
High Availability
Untuk opsi HA, kita bisa buat 2 MX server dengan priority yang sama, namun menggunakan 2 ISP yang berbeda. Misal 1 ISP ini dari US pakai koneksi Arelion. Kemudian 1 nya lagi pakai dari EU pakai koneksi upstream berbeda. Ini sangat bagus untuk high availability. Kemudian di set priority mx yang sama.
domain MX 10
domain MX 10
Selamat! Proteksi keamanan sudah dinyalakan. Contoh postfix config main.cf. Yang terakhir, jangan lupa PTR records dari IPv4 kamu harus di set ke hostname vm-nya ya.