postfix multiple IP SMTP banner
I've installed postfix 2.11.3
and we have multiple IP addresses on our server which we want to host two domains, isolated and running on their own IPs.
domain1 unix - - n - - smtp
-o smtp_bind_address=1.1.1.1
-o smtp_helo_name=mail.abc.com
-o syslog_name=postfix-mail.abc.com
domain2 unix - - n - - smtp
-o smtp_bind_address=2.2.2.2
-o smtp_helo_name=mail.xyz.com
-o syslog_name=postfix-mail.xyz.com
Following transporter /etc/postfix/sender_transport
also defined in main.cf
:
@abc.com domain1:
@xyz.com domain2:
After restarting postfix, it stopped listening on port 25
:
[[email protected]]# telnet 1.1.1.1 25
Trying 1.1.1.1...
telnet: connect to address 1.1.1.1: Connection refused
But if I use following line in master.cf
it listen on 25 and i can see banner if i telnet:
1.1.1.1:smtp inet n - n - - smtpd -o myhostname=mail.abc.com
2.2.2.2:smtp inet n - n - - smtpd -o myhostname=mail.xyz.com
But I want to tell my mail server when you send out email use specific domain just like sender_transport
What i am doing wrong?
Notes:
I have removed following line from master.cf
and replaced with above domain1 and domain2:
smtp inet n - n - - smtpd
Solution - Postfix version 2.7 or above required:
/etc/postfix/master.cf
#smtp inet n - n - - smtpd
127.0.0.1:smtp inet n - n - - smtpd
-o syslog_name=postfix-localhost
-o smtp_helo_name=localhost
-o smtp_bind_address=127.0.0.1
-o myhostname=localhost
65.xxx.xxx.100:smtp inet n - n - - smtpd
-o syslog_name=postfix-mail.abc.com
-o smtp_helo_name=mail.abc.com
-o smtp_bind_address=65.xxx.xxx.100
-o myhostname=mail.abc.com
65.xxx.xxx.200:smtp inet n - n - - smtpd
-o syslog_name=postfix-mail.xyz.com
-o smtp_helo_name=mail.zyx.com
-o smtp_bind_address=65.xxx.xxx.200
-o myhostname=mail.xyz.com
abc-out unix - - n - - smtp
-o smtp_bind_address=65.xxx.xxx.100
-o smtp_helo_name=mail.abc.com
-o syslog_name=postfix-mail.abc.com
xyz-out unix - - n - - smtp
-o smtp_bind_address=65.xxx.xxx.200
-o smtp_helo_name=mail.xyz.com
-o syslog_name=postfix-mail.xyz.com
/etc/postfix/main.cf
sender_dependent_default_transport_maps = hash:/etc/postfix/sender_transport
/etc/postfix/sender_transport
# Use source IP - 65.xxx.xxx.100
@abc.com abc-out:
@example.com abc-out:
# Use source IP - 65.xxx.xxx.200
@xyz.com xyz-out:
Run command to generate hash db
postmap hash:/etc/postfix/sender_transport
Restart/Reload postfix
service postfix reload
Testing
[root@localhost ~]# telnet 65.xxx.xxx.200 25
Trying 65.xxx.xxx.200...
Connected to 65.xxx.xxx.200.
Escape character is '^]'.
220 mail.xyz.com ESMTP Postfix
Sending email test
[root@localhost ~]# telnet localhost 25
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 localhost ESMTP Postfix
helo localhost
250 localhost
mail from: [email protected]
250 2.1.0 Ok
rcpt to: [email protected]
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
Hello world!
.
250 2.0.0 Ok: queued as 93E708207BA
Got to gmail Inbox > Show Original
Delivered-To: [email protected]
Received: by 10.xxx.xxx.xxx with SMTP id w64csp782609qgd;
Tue, 9 Dec 2014 09:35:57 -0800 (PST)
X-Received: by 10.xxx.xxx.xxx with SMTP id o28mr4132552yha.168.1418146557180;
Tue, 09 Dec 2014 09:35:57 -0800 (PST)
Return-Path: <[email protected]>
Received: from mail.xyz.com ([65.xxx.xxx.200])
by mx.google.com with ESMTPS id n10si743294ykc.114.2014.12.09.09.35.56
for <[email protected]>
(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
Tue, 09 Dec 2014 09:35:56 -0800 (PST)
...
...
Message-Id: <[email protected]>
Date: Tue, 9 Dec 2014 12:37:11 -0500 (EST)
From: [email protected]
Hello world!
Voila!! see it used 65.xxx.xxx.200
IP address to sent out email..
Received: from mail.xyz.com ([65.xxx.xxx.200])