Re: mysql lookup table and utf8

2016-09-25 Thread Wietse Venema
For Postfix 3.2 I'll update code and documentation, such that the
default option_group value becomes "client". This causes the "client"
option group to be read twice instead of never (reading it once
is not an option). To get backwards compatibility, specify an empty
option_group value.

For the stable releases I'll update their documentation with a
suggestion to specify "option_group = client".  An incompatible
code change would be forbidden.

Wietse


Re: mysql lookup table and utf8

2016-09-25 Thread Wietse Venema
Wietse Venema:
> For Postfix 3.2 I'll update code and documentation, such that the
> default option_group value becomes "client". This causes the "client"
> option group to be read twice instead of never (reading it once
> is not an option). To get backwards compatibility, specify an empty
> option_group value.
> 
> For the stable releases I'll update their documentation with a
> suggestion to specify "option_group = client".  An incompatible
> code change would be forbidden.

I'd appreciate it if you could do some tests with the postmap command
in postfix-3.2-20160925, which I just rolled out to ftp/www.porcupine.org.

Wietse


Re: mysql lookup table and utf8

2016-09-25 Thread John Fawcett
On 09/25/2016 06:36 PM, Wietse Venema wrote:
> Wietse Venema:
>> For Postfix 3.2 I'll update code and documentation, such that the
>> default option_group value becomes "client". This causes the "client"
>> option group to be read twice instead of never (reading it once
>> is not an option). To get backwards compatibility, specify an empty
>> option_group value.
>>
>> For the stable releases I'll update their documentation with a
>> suggestion to specify "option_group = client".  An incompatible
>> code change would be forbidden.
> I'd appreciate it if you could do some tests with the postmap command
> in postfix-3.2-20160925, which I just rolled out to ftp/www.porcupine.org.
>
>   Wietse

I've downloaded the postfix-3.2-20160925 release and done the following
tests with postmap and get the desired results.

1. that the client group is read by default

2. that the client group is not read if option_group is set to blank

3. that both the client group and the specific group are read if option
group is set to a non blank value

With this version I have no problems receiving or sending email on the
server in general. My [client] group is normally empty (when not doing
the above tests).

John



Re: mysql lookup table and utf8

2016-09-25 Thread John Fawcett
On 09/25/2016 08:04 PM, John Fawcett wrote:
>> I'll update their documentation with a
>> >> suggestion to specify "option_group = client".  An incompatible
>> >> code change would be forbidden.
> > I'd appreciate it if you could do some tests with the postmap command
> > in postfix-3.2-20160925, which I just rolled out to ftp/www.porcupine.org.
> >

I filed a documentation bug for MySQL to help clarify for future reference.

http://bugs.mysql.com/bug.php?id=83142



Re: mysql lookup table and utf8

2016-09-25 Thread Wietse Venema
wietse:
> I'd appreciate it if you could do some tests with the postmap command
> in postfix-3.2-20160925, which I just rolled out to ftp/www.porcupine.org.

John Fawcett:
> I've downloaded the postfix-3.2-20160925 release and done the following
> tests with postmap and get the desired results.
> 
> 1. that the client group is read by default
> 
> 2. that the client group is not read if option_group is set to blank
> 
> 3. that both the client group and the specific group are read if option
> group is set to a non blank value

Great!

> With this version I have no problems receiving or sending email on the
> server in general. My [client] group is normally empty (when not doing
> the above tests).

Thanks for checking this. Looks like we have an easy-to-use solution
to address the original problem, and to get backwards compatibility
in the rare cases where the change would break something.

In the next I'll roll out patches for the stable releases.

Wietse


How to use specific *local* IPv4 address for outbound depending on sender domain?

2016-09-25 Thread Kevin Long

Hello,

I have a single postfix server servicing my company’s domain and several 
customer domains. All outbound mail is first received by postfix,  then sent to 
the same barracuda email service to go on to it’s final destination.


I want Postfix to use a specific local IPv4 address when it connects to the 
barracuda relay, depending on which domain the email is from.  This will 
ultimately show up in the email headers for the recipient, and I need to 
separate my company from the customers. 


If the mail is from mycompany.com ,  use local IP address (eth0) 10.50.55.16  
when connecting to the barracuda service to send the mail.

All other domains (our customers),  use 10.50.55.17 (eth0:1)

These local IPs ultimately NAT to different public IPv4 on different subnets 
and different reverse DNS names, etc.



I have already configured postfix to listen on both IP address, and even to use 
different TLS certificates for them via the master.cf and I verified this is 
working.  But even connecting to the second IP via SMTP, authenticating and 
sending a mail,  the first IP is used when connecting to the relay host, as 
seen in the headers of the email.



My configuration is slightly broken right now, but I don’t know how to proceed 
to accomplish what I am trying to do.


Thanks for any help,

- Kevin



my /etc/postfix/transport (I know this isn’t working .. )

mycompany.com smtp:[10.50.55.16]:587
customer1.com smtp:[10.50.55.17]:587
customer2.com smtp:[10.50.55.17]:587


postconfig -nf:

postconf: warning: /etc/postfix/main.cf: unused parameter: 
sender_based_routing=yes


alias_maps =
append_dot_mydomain = no
broken_sasl_auth_clients = yes
config_directory = /etc/postfix
disable_vrfy_command = yes
inet_protocols = ipv4
local_transport = error:Local Transport Disabled
mydestination = localhost.$mydomain localhost
mydomain = mailsystem.com
myhostname = mailsystem.com
mynetworks = 127.0.0.0/8
postscreen_greet_action = enforce
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
smtpd_client_new_tls_session_rate_limit = 10
smtpd_client_restrictions = check_client_access cidr:/etc/postfix/drop.cidr
smtpd_data_restrictions = reject_multi_recipient_bounce
smtpd_delay_reject = no
smtpd_helo_required = yes
smtpd_helo_restrictions = permit_mynetworks check_helo_access
pcre:/etc/postfix/identitycheck.pcre reject_invalid_hostname
smtpd_recipient_restrictions = reject_non_fqdn_recipient
reject_unknown_recipient_domain permit_sasl_authenticated permit_mynetworks
reject_unauth_destination check_sender_ns_access cidr:/etc/postfix/drop.cidr
check_sender_mx_access cidr:/etc/postfix/drop.cidr reject_rbl_client
ix.dnsbl.manitu.net permit
smtpd_sasl_auth_enable = yes
smtpd_sasl_path = private/auth
smtpd_sasl_type = dovecot
smtpd_sender_restrictions = reject_non_fqdn_sender reject_unknown_sender_domain
smtpd_tls_dh1024_param_file = ${config_directory}/certs/dh_1024.pem
smtpd_tls_dh512_param_file = ${config_directory}/certs/dh_512.pem
smtpd_tls_exclude_ciphers = EXP EDH-RSA-DES-CBC-SHA ADH-DES-CBC-SHA DES-CBC-SHA
SEED-SHA
smtpd_tls_loglevel = 2
smtpd_tls_session_cache_database = btree:/etc/postfix/smtpd_session_cache
tls_random_source = dev:/dev/urandom
transport_maps = hash:/etc/postfix/transport
virtual_alias_maps = proxy:ldap:/etc/postfix/ldap_virtual_aliases.cf
virtual_mailbox_domains = hash:/etc/postfix/virtual_domains
virtual_mailbox_maps = proxy:ldap:/etc/postfix/ldap_virtual_recipients.cf
hash:/etc/postfix/transport
virtual_transport = dovecot



postconf -Mf:


dovecotunix  -   n   n   -   -   pipe flags=ODRhu
user=vmail:vmail argv=/usr/lib/dovecot/deliver -e -f ${sender} -d
${recipient}
10.50.55.16- unix -  n   n   -   -   smtp
-o smtp_bind_address=10.50.55.16
-o smtp_bind_address6=
-o smtp_address_preference=ipv4
10.50.55.17- unix -  n   n   -   -   smtp
-o smtp_bind_address=10.50.55.17
-o smtp_bind_address6=
-o smtp_address_preference=ipv4
10.50.55.16:smtp inet n  -   n   -   -   smtpd
-o smtpd_tls_cert_file=/etc/ssl/certs/mail.mycompany.com-chain.crt
-o smtpd_tls_key_file=/etc/ssl/private/mail.mycompany.com.key
10.50.55.16:smtps inet n -   n   -   -   smtpd
-o smtpd_tls_wrappermode=yes
-o smtpd_tls_cert_file=/etc/ssl/certs/mail.mycompany.com-chain.crt
-o smtpd_tls_key_file=/etc/ssl/private/mail.mycompany.com.key
10.50.55.16:submission inet n -  n   -   -   smtpd
-o smtpd_enforce_tls=yes
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
-o smtpd_sender_restrictions=
-o smtpd_tls_cert_file=/etc/postfix/cert1.pem
-o smtpd_tls_key_file=/etc/postfix/cert1.pem
10.50.55.17:smtp inet n  -   n   -   -   smtpd
-o 
smtpd_tls_cert_file=/etc/letsencrypt/live/mail.customerservers.com/fullchain.pem
-o 
smtpd_tls_key

proxy protocol

2016-09-25 Thread Brendan Kearney
i have postscreen and smtpd running on the same box as submission, and 
it seems i am missing something when trying to leverage proxy protocol.


in my main.cf i have the lines:
smtpd_upstream_proxy_protocol = haproxy
...
postscreen_upstream_proxy_protocol = haproxy

this seems to work, but after a while haproxy detects the services as 
down, and i get the below message from submission in logs:

postscreen_upstream_proxy_protocol = haproxy

i tried to add:
-o smtpd_upstream_proxy_protocol=
and
-o smtpd_upstream_proxy_protocol=none

to my master.cf, so submission would not try to use the proxy protocol 
header, but i got errors or failures in both cases.


how do i configure postscreen and smtpd to use the proxy protocol, but 
leave submission out, since it does not seem to recognize proxy 
protocol.  if submission does use the proxy protocol, what do i set for it?


Re: How to use specific *local* IPv4 address for outbound depending on sender domain?

2016-09-25 Thread Wietse Venema
Kevin Long:
> 
> Hello,
> 
> I have a single postfix server servicing my company?s domain and
> several customer domains. All outbound mail is first received by
> postfix,  then sent to the same barracuda email service to go on
> to it?s final destination.
>
> I want Postfix to use a specific local IPv4 address when it connects
> to the barracuda relay, depending on which domain the email is
> from.  This will ultimately show up in the email headers for the
> recipient, and I need to separate my company from the customers.

Configure an SMTP client in master.cf:

/etc/postfix/master.cf:
barracuda-1.2.3.4 ... . .. .. .. .. smtp
 -o smtp_bind_address=1.2.3.4
barracuda-1.2.3.5 ... . .. .. .. .. smtp
 -o smtp_bind_address=1.2.3.5

/etc/postfix/main.cf:
sender_dependent_default_transport_maps = 
hash:/etc/postfix/sender_transport

/etc/postfix/sender_transport:
example.com barracuda-1.2.3.4:
example.net barracuda-1.2.3.5:

This requires Postfix 2.7 or later.

Not saying that postfix->barracura->internet is a good idea, though.

You could instead do postfix-barracuda-postfix(*) and use the same
trick to set the IP address on the internet-facing Postfix SMTP
client. That is the IP address that remote receivers will use for
their IP-based reputation rankings. They don't care about some IP
address on your internal network behind an outbound relay.

Wietse


Re: proxy protocol

2016-09-25 Thread Wietse Venema
Brendan Kearney:
> i have postscreen and smtpd running on the same box as submission, and 

Running postscreen for the submission service is not recommended.
It should be used for MTA-to-MTA service only. The documentation
even says so, threfore don't do it.

> it seems i am missing something when trying to leverage proxy protocol.
> 
> in my main.cf i have the lines:
> smtpd_upstream_proxy_protocol = haproxy
> ...
> postscreen_upstream_proxy_protocol = haproxy

smtpd_upstream_proxy_protocol is not needed when the haproxy
handshake is already done in postscreen.

> this seems to work, but after a while haproxy detects the services as 
> down, and i get the below message from submission in logs:
> postscreen_upstream_proxy_protocol = haproxy

What is the error message? Have you tried to look in the Postfix
logs? See http://www.postfix.org/DEBUG_README.html#logging

Wietse