How to email FROM specific IPs, using Postfix

Clientku di India baru saja menambah 4 (internet protocol) IP address baru pada server colocationnya di Ohio USA. Kemudian dia memintaku untuk setup ke empat IP tersebut ke dalam server colo nya dan setup outgoing mail pada setiap IP untuk setiap domainnya. Secara dia mempunyai 5 domain dan 1 domain sudah running pada IP utama (eth0) di server sebelumnya.

Untuk memasukkan ke 4 IP lainnya ke dalam servernya sangat mudah dilakukan dengan settingan IP Alias di linux pada eth0, sehingga terdapat eth0:0, eth0:1, eth0:2, eth0:3.

Untuk mensetting outgoing mail pada masing-masing IP sesuai alamat domainnya atau istilah kerennya “Other Postfix instance” sedikit memusingkan. Akhirnya kembali ke laptop ehhhh…. postfix.org dengan membaca kembali Postfix main.cf file format.  Setelah berpusing ria memainkan alur logika dan otak atik eksperiment aku menemukan beberapa langkah untuk mensetup permintaan orang India ini.

Konfigurasi utama di postfix yang sudah jalan pada server ini ada pada /etc/postfix dan /var/spool/postfix.  Dengan IP 209.51.x.100 dan domain namadomain100.net.in

Isi didalam konfigurasi /etc/postfix/main.cf yang perlu dicermati agar bisa kita gunakan dalam kasus ini adalah : queue_directory, myhostname, smtp_bind_address, inet_interfaces, alternate_config_directories.  Untuk direktory adalah /etc/postfix, /var/spool/postfix, /etc/init.d/postfix

Berikut langkah untuk membuat semuanya menjadi nyata didalam dunia maya dengan contoh setup pada salah satu IP tambahan yaitu IP 209.51.x.200 dengan namadomain200.net.in :

1. Kita buat copy direktory dan file pada konfigurasi utama postfix yang sudah berjalan dengan perintah cp -rp /etc/postfix /etc/postfix200

2. Edit /etc/postfix/main.cf dan tambahkan :
alternate_config_directories = /etc/postfix200
smtp_bind_address = 209.51.x.100
inet_interfaces = 209.51.x.100
myhostname = mail.namadomain.net.in

3. Pada Postfix instance kita harus membuat direktori /var/spool sendiri dan tidak share dengan /var/spool utama dengan perintah mkdir /var/spool/postfix200

4. Kita edit /etc/postfix200/main.cf untuk memasukkan tambahan IP dengan hosname ke domain lain.
queue_directory = /var/spool/postfix200
smtp_bind_address = 209.51.x.200
inet_interfaces = 209.51.x.200
myhostname = mail.namadomain200.net.in

5. Jalankan postfix -c /etc/postfix200 check

6. Untuk running Postfix instance kita haru buat scripts baru agar tidak bentrok dengan yang utama,
cp /etc/init.d/postfix /etc/init.d/postfix200

7. Edit /etc/init.d/postfix200
Ganti semua path yang ke /etc/postfix menjadi /etc/postfix200, termasuk untuk /var/spool/,  /var/lock/subsys/, jadi mengikuti path postfix200.

8. Jalankan postfix200 : postfix -c /etc/postfix200 start

9. Cek pake netstat -nltup :

tcp  0  0 209.51.xxx.100:25  0.0.0.0 *LISTEN  13733/master

tcp 0  0 209.51.xxx.200:25  0.0.0.0  * LISTEN 13957/master

jika services master muncul dengan binding ke IP 209.51.xxx.100 dan 209.51.xxx.200 dengan port 25 sudah sukses nih memasukkan IP lain untuk outgoing mail.

10. Cek pakai mail client dan masukkan settingan pada outgoing mail : mail.namadomain200.net.in lalu kirim email ke gmail. Jika sukses cek email tersebut di webmail gmail dan klik messages header dengan mengklik Show original : Hasilnya sbb :

Delivered-To: henry.gultom@gmail.com
Received: by 10.150.92.11 with SMTP id p11cs198399ybb;
        Thu, 31 Jul 2008 10:25:16 -0700 (PDT)
Received: by 10.114.25.19 with SMTP id 19mr10440208way.225.1217525114616;
        Thu, 31 Jul 2008 10:25:14 -0700 (PDT)
Return-Path: <kumar@namadomain200.net.in>
Received:from mail.namadomain200.net.in (x.xxx.xlhost.com [209.51.xxx.200])
        by mx.google.com with ESMTP id 4si50043yxq.8.2008.07.31.10.25.14;
        Thu, 31 Jul 2008 10:25:14 -0700 (PDT)

Baris yang dibold menunjukkan instalasi beda IP untuk outgoing mail smtp berhasil, email FROM specific IPs pada postfix sudah jalan.

Sekarang bagaimana dengan 3 IP dan 3 domain lainnya?

Tinggal ulangi langkah 1,3,4,5,6,7,8,9,10 diatas dan untuk langkah ke 2 hanya menambahkan path alternate_config_directories ke path lainnya seperti : alternate_config_directories = /etc/postfix300 dst. Ini dilakukan pada file /etc/postfix/main.cf

Dalam artikel ini nama domain dan IP disamarkan.

Contact me :
henry@gultom.or.id

Leave a Reply

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.