The most common issue when using a proxy/load balancer like haproxy, is that 
the remote/foreign connections are being forwarded with the IP address of the 
haproxy machine. Thus, they all appear as "local", which makes postfix think 
they are "mynetworks" and as a result, postfix becomes a open relay.

So check your logs, to make sure remote/foreign connections don't appear as 
172.30.0.0/16 in postfix. If they do, then that is the problem.



On Wed, 21 Dec 2022 11:35:13 +0400 Samer Afach <samer.af...@msn.com> wrote:

> Dear Pat:
> 
> Thank you for throwing this idea, because I really thought it wasn't 
> possible to retrieve docker logs without setup, but I dug and found the 
> logs. I have them all. Unfortunately, I can't share them all because 
> they're like GBs in size. Just the grep on that email address is like 
> 750 MB in size.
> 
> I cut a snippet of the relevant part (where I see the spam address), and 
> put it in pastebin. I hope that's allowed in the rules of the list.
> 
> https://pastebin.com/PEir7mDc
> 
> (all from postfix, nothing from dovecot, btw).
> 
> I minimally redacted the logs:
> 
> - The domains example.com and example.org belong to me, seems like both 
> were involved in this attack.
> - My public IP address was replaced with 123.456.789.123
> 
> Please note that 172.30.0.0/16 is the docker-compose subnet for all 
> dockerized email applications. It was created automatically by 
> docker-compose.
> 
> If you need any additional information or additional logs, please let me 
> know.
> 
> Best regards,
> Sam
> 
> 
> On 21/12/2022 10:31 AM, Patrick Proniewski wrote:
> > Hello,
> >
> > Do you have the logs (postfix and maybe dovecot) showing the spammer 
> > interaction with the server?
> >
> > pat
> >  
> >> On 21 Dec 2022, at 05:45, Samer Afach <samer.af...@msn.com> wrote:
> >>
> >> Thank you, Phil. Here we go. Here's postconf -n:
> >>
> >>
> >> I hope this helps in better identifying how the spammer was able to use my 
> >> server to send a spam email.
> >>
> >>
> >> ```
> >>
> >> alias_database = hash:/etc/aliases
> >> alias_maps = hash:/etc/aliases
> >> append_dot_mydomain = no
> >> biff = no
> >> broken_sasl_auth_clients = yes
> >> debug_peer_level = 6
> >> debug_peer_list = 0.0.0.0/0
> >> disable_vrfy_command = yes
> >> inet_interfaces = all
> >> inet_protocols = ipv4
> >> mailbox_size_limit = 0
> >> maillog_file = /dev/stdout
> >> message_size_limit = 0
> >> milter_default_action = accept
> >> milter_protocol = 2
> >> mydestination = hostname.hosting-service.com, 
> >> localhost.hosting-service.com, localhost
> >> myhostname = localhost
> >> mynetworks_style = subnet
> >> myorigin = localhost
> >> non_smtpd_milters = inet:docker-email-opendkim:12301
> >> proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps 
> >> $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains 
> >> $relay_recipient_maps $relay_domains $canonical_maps 
> >> $sender_canonical_maps $recipient_canonical_maps $relocated_maps 
> >> $transport_maps $mynetworks $smtpd_sender_login_maps
> >> readme_directory = no
> >> recipient_delimiter = +
> >> relay_domains =
> >> relayhost =
> >> smtp_tls_cert_file = /shared-keys/example.com/fullchain.pem
> >> smtp_tls_key_file = /shared-keys/example.com/privkey.pem
> >> smtp_tls_loglevel = 1
> >> smtp_tls_mandatory_protocols = !SSLv2,!SSLv3,!TLSv1,!TLSv1.1
> >> smtp_tls_protocols = !SSLv2,!SSLv3,!TLSv1,!TLSv1.1
> >> smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
> >> smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
> >> smtpd_client_restrictions = permit_mynetworks
> >> smtpd_helo_restrictions = reject_invalid_helo_hostname,
> >> smtpd_milters = inet:docker-email-opendkim:12301
> >> smtpd_recipient_restrictions = check_sender_access 
> >> hash:/etc/postfix/sender_access, permit_sasl_authenticated, 
> >> permit_mynetworks, reject_unauth_destination, reject_invalid_hostname, 
> >> reject_unknown_recipient_domain, reject_unauth_destination, 
> >> reject_rbl_client sbl.spamhaus.org, reject_rbl_client 
> >> b.barracudacentral.org, reject_rbl_client zen.spamhaus.org, 
> >> reject_rbl_client truncate.gbudb.net, reject_rbl_client bl.spamcop.net, 
> >> reject_rbl_client cbl.abuseat.org,
> >> smtpd_relay_restrictions = permit_sasl_authenticated permit_mynetworks 
> >> reject_unauth_destination
> >> smtpd_sasl_auth_enable = yes
> >> smtpd_sasl_authenticated_header = yes
> >> smtpd_sasl_path = /shared-socks/auth_dovecot
> >> smtpd_sasl_type = dovecot
> >> smtpd_sender_login_maps = 
> >> proxy:mysql:/etc/postfix/mysql_sender_login_maps.cf
> >> smtpd_tls_auth_only = yes
> >> smtpd_tls_cert_file = /shared-keys/example.com/fullchain.pem
> >> smtpd_tls_ciphers = high
> >> smtpd_tls_key_file = /shared-keys/example.com/privkey.pem
> >> smtpd_tls_mandatory_protocols = !SSLv2,!SSLv3,!TLSv1,!TLSv1.1
> >> smtpd_tls_protocols = !SSLv2,!SSLv3,!TLSv1,!TLSv1.1
> >> smtpd_tls_security_level = may
> >> smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
> >> smtpd_use_tls = yes
> >> virtual_alias_maps = proxy:mysql:/etc/postfix/mysql_virtual_alias_maps.cf
> >> virtual_gid_maps = static:5000
> >> virtual_mailbox_base = /var/vmail/
> >> virtual_mailbox_domains = 
> >> proxy:mysql:/etc/postfix/mysql_virtual_domains_maps.cf
> >> virtual_mailbox_limit = 0
> >> virtual_mailbox_maps = 
> >> proxy:mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
> >> virtual_minimum_uid = 104
> >> virtual_transport = lmtp:inet:docker-email-dovecot:10024
> >> virtual_uid_maps = static:5000
> >>
> >> ```
> >>
> >>
> >> Best regards,
> >>
> >> Sam
> >>
> >>
> >> On 21/12/2022 8:35 AM, Phil Stracchino wrote:  
> >>> On 12/20/22 21:39, Samer Afach wrote:  
> >>>> I could share postconf too, but it's huge and I don't want to make this
> >>>> a huge burden unless necessary.  
> >>> 'postconf -n' is much more concise.  Try it.
> >>>
> >>>  

Reply via email to