Skip to content

Commit 44bd2a9

Browse files
authored
Merge pull request #441 from crazy-max/postfix-reverse-client-hostname-toggle
add Postfix reverse hostname rejection toggle
2 parents bdcc54b + 8bbd19d commit 44bd2a9

3 files changed

Lines changed: 12 additions & 2 deletions

File tree

‎README.md‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,7 @@ linux/arm64
158158
* `POSTFIX_DEBUG`: Enable debug (default `false`)
159159
* `POSTFIX_MYNETWORKS`: Trusted SMTP clients that may relay outbound mail through Postfix (default `127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128`)
160160
* `POSTFIX_MESSAGE_SIZE_LIMIT`: The maximal size in bytes of a message, including envelope information (default `26214400`)
161+
* `POSTFIX_REJECT_UNKNOWN_REVERSE_CLIENT_HOSTNAME`: Reject clients when their IP address has no reverse DNS entry (default `true`)
161162
* `POSTFIX_STRIP_SENDER_HEADER`: Strip the Sender header from incoming emails to prevent SES rejection issues (default `false`)
162163
* `POSTFIX_SMTPD_TLS`: Enabling TLS in the Postfix SMTP server (default `false`, possible values: `true`|`may`|`encrypt`|`ask`|`require`, see [Postfix TLS README](https://www.postfix.org/TLS_README.html#client_tls_levels))
163164
* `POSTFIX_SMTPD_TLS_CERT_FILE`: File with the Postfix SMTP server RSA certificate in PEM format
@@ -182,6 +183,9 @@ linux/arm64
182183
> unless every client in those ranges is trusted to relay mail. Docker port
183184
> publishing and proxies can make external SMTP clients appear as private bridge
184185
> addresses.
186+
> If Docker or a proxy makes public SMTP clients appear as a local bridge address
187+
> without reverse DNS, set `POSTFIX_REJECT_UNKNOWN_REVERSE_CLIENT_HOSTNAME=false`
188+
> instead of trusting that bridge range.
185189
186190
### RSPAMD
187191

‎rootfs/etc/cont-init.d/00-env‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ POSTFIX_DEBUG=${POSTFIX_DEBUG:-false}
8686
POSTFIX_LOG_PATH=/data/postfix/mail.log
8787
POSTFIX_MYNETWORKS="${POSTFIX_MYNETWORKS:-127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128}"
8888
POSTFIX_MESSAGE_SIZE_LIMIT=${POSTFIX_MESSAGE_SIZE_LIMIT:-26214400}
89+
POSTFIX_REJECT_UNKNOWN_REVERSE_CLIENT_HOSTNAME=${POSTFIX_REJECT_UNKNOWN_REVERSE_CLIENT_HOSTNAME:-true}
8990
POSTFIX_STRIP_SENDER_HEADER=${POSTFIX_STRIP_SENDER_HEADER:-false}
9091
POSTFIX_SMTPD_TLS=${POSTFIX_SMTPD_TLS:-false}
9192
POSTFIX_SMTP_TLS=${POSTFIX_SMTP_TLS:-false}

‎rootfs/etc/cont-init.d/15-config-postfix.sh‎

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,12 @@ else
4848
ZEN_DOMAIN="${POSTFIX_SPAMHAUS_DQS_KEY}.zen.dq.spamhaus.net"
4949
fi
5050

51+
POSTFIX_REJECT_UNKNOWN_REVERSE_CLIENT_HOSTNAME_RESTRICTION=""
52+
if [ "$POSTFIX_REJECT_UNKNOWN_REVERSE_CLIENT_HOSTNAME" = "true" ]; then
53+
POSTFIX_REJECT_UNKNOWN_REVERSE_CLIENT_HOSTNAME_RESTRICTION=$',
54+
reject_unknown_reverse_client_hostname'
55+
fi
56+
5157
cat >>/etc/postfix/main.cf <<EOL
5258
myhostname = ${ANONADDY_HOSTNAME}
5359
mydomain = ${ANONADDY_DOMAIN}
@@ -90,8 +96,7 @@ smtpd_sender_restrictions =
9096
permit_mynetworks,
9197
permit_sasl_authenticated,
9298
reject_non_fqdn_sender,
93-
reject_unknown_sender_domain,
94-
reject_unknown_reverse_client_hostname
99+
reject_unknown_sender_domain${POSTFIX_REJECT_UNKNOWN_REVERSE_CLIENT_HOSTNAME_RESTRICTION}
95100
96101
smtpd_recipient_restrictions =
97102
permit_mynetworks,

0 commit comments

Comments
 (0)