install_postfix_advanced.sh: Adjust smtpd restrictions. Write file '/etc/postfix/header_checks_pcre'.
This commit is contained in:
parent
407afaff26
commit
20a9a17cb0
@ -814,10 +814,26 @@ mydestination =
|
|||||||
## - privileges than "strangers"
|
## - privileges than "strangers"
|
||||||
## -
|
## -
|
||||||
mynetworks =
|
mynetworks =
|
||||||
127.0.0.0/8
|
# +++++++++++++++++++++++++++++++++++++
|
||||||
|
# replace 127.0.0.1/8 with 127.0.0.1/32
|
||||||
|
# +++++++++++++++++++++++++++++++++++++
|
||||||
|
# So we can use i.e 127.0.0.25 (or any other 127.x.x.x address)
|
||||||
|
# to bind to hidden tor service on port 25 without having an
|
||||||
|
# open relay
|
||||||
|
#
|
||||||
|
# see also: https://github.com/ehloonion/onionmx/blob/master/open-relay.md
|
||||||
|
#
|
||||||
|
#127.0.0.0/8
|
||||||
|
127.0.0.1/32
|
||||||
${IPV4}/32
|
${IPV4}/32
|
||||||
|
# a.mx.oopen.de
|
||||||
|
#83.223.86.91
|
||||||
|
# b.mx.oopen.de
|
||||||
|
#83.223.86.97
|
||||||
|
# d.mx.oopen.de
|
||||||
|
#83.223.86.92/32
|
||||||
|
|
||||||
#smtp_bind_address = $IPV4
|
smtp_bind_address = $IPV4
|
||||||
#smtp_bind_address6 = $IPV6
|
#smtp_bind_address6 = $IPV6
|
||||||
|
|
||||||
EOF
|
EOF
|
||||||
@ -1004,7 +1020,7 @@ smtp_tls_CAfile = $_TLS_CA_FILE
|
|||||||
## - Directory with PEM format certificate authority certificates that the Postfix SMTP
|
## - Directory with PEM format certificate authority certificates that the Postfix SMTP
|
||||||
## - client uses to verify a remote SMTP server certificate. Don't forget to create the
|
## - client uses to verify a remote SMTP server certificate. Don't forget to create the
|
||||||
## - necessary "hash" links with, for example, "
|
## - necessary "hash" links with, for example, "
|
||||||
## - $OPENSSL_HOME/bin/c_rehash /etc/postfix/certs".
|
## - /usr/bin/c_rehash /etc/postfix/certs".
|
||||||
## -
|
## -
|
||||||
## - !! Note !!
|
## - !! Note !!
|
||||||
## - To use this option in chroot mode, this directory (or a copy) must be inside
|
## - To use this option in chroot mode, this directory (or a copy) must be inside
|
||||||
@ -1226,6 +1242,20 @@ virtual_alias_domains =
|
|||||||
|
|
||||||
#======= smtpd Restrictions ============
|
#======= smtpd Restrictions ============
|
||||||
|
|
||||||
|
# - Order of evaluating smtpd restriction lists:
|
||||||
|
# -
|
||||||
|
# - smtpd_client_restrictions
|
||||||
|
# - smtpd_helo_restrictions
|
||||||
|
# - smtpd_sender_restrictions
|
||||||
|
# - smtpd_relay_restrictions
|
||||||
|
# - smtpd_recipient_restrictions
|
||||||
|
# - smtpd_data_restrictions
|
||||||
|
# - smtpd_end_of_data_restrictions
|
||||||
|
# -
|
||||||
|
# - Note:
|
||||||
|
# - all smtpd restrictions are evaluated until one of them
|
||||||
|
# - results in 'REJECT'
|
||||||
|
|
||||||
## ---
|
## ---
|
||||||
## - Define smtpd Restrictions
|
## - Define smtpd Restrictions
|
||||||
## ---
|
## ---
|
||||||
@ -1237,25 +1267,104 @@ check_greylist = check_policy_service inet:127.0.0.1:10023
|
|||||||
127.0.0.1:10040_time_limit = 3600
|
127.0.0.1:10040_time_limit = 3600
|
||||||
|
|
||||||
|
|
||||||
|
# smtpd_delay_reject (default: yes)
|
||||||
|
#
|
||||||
|
# Wait until the RCPT TO command before evaluating \$smtpd_client_restrictions,
|
||||||
|
# \$smtpd_helo_restrictions and \$smtpd_sender_restrictions, or wait until the
|
||||||
|
# ETRN command before evaluating \$smtpd_client_restrictions and \$smtpd_helo_restrictions.
|
||||||
|
#
|
||||||
|
# This feature is turned on by default because some clients apparently mis-behave
|
||||||
|
# when the Postfix SMTP server rejects commands before RCPT TO.
|
||||||
|
#
|
||||||
|
# The default setting has one major benefit: it allows Postfix to log recipient address
|
||||||
|
# information when rejecting a client name/address or sender address, so that it is
|
||||||
|
# possible to find out whose mail is being rejected.
|
||||||
|
smtpd_delay_reject = yes
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## ---
|
||||||
|
## smtpd Client Restrictions
|
||||||
|
## ---
|
||||||
|
|
||||||
|
smtpd_client_restrictions =
|
||||||
|
permit_sasl_authenticated,
|
||||||
|
permit_mynetworks,
|
||||||
|
# Whitelist clients
|
||||||
|
#
|
||||||
|
check_client_access btree:/etc/postfix/client_whitelist
|
||||||
|
# RBL check - !! comment out if postcreens postscreen_dnsbl_sites is in use
|
||||||
|
# Whitelist (configured at a.ns.oopen.de)
|
||||||
|
#
|
||||||
|
permit_dnswl_client dnswl.oopen.de,
|
||||||
|
# Blacklists
|
||||||
|
reject_rbl_client zen.spamhaus.org,
|
||||||
|
reject_rbl_client ix.dnsbl.manitu.net,
|
||||||
|
# Greylisting check
|
||||||
|
#
|
||||||
|
# check_policy_service inet:127.0.0.1:10023,
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# Using defined restriction class (see smtpd_restriction_classes):
|
||||||
|
#
|
||||||
|
# greylist all connections:
|
||||||
|
# check_greylist,
|
||||||
|
#
|
||||||
|
# selctive greylisting:
|
||||||
|
# check_client_access pcre:/etc/postfix/greylist_client_access_pcre,
|
||||||
|
#
|
||||||
|
#warn_if_reject,
|
||||||
|
check_client_access pcre:/etc/postfix/greylist_client_access_pcre,
|
||||||
|
#reject_rbl_client bl.spamcop.net,
|
||||||
|
# Reject the request when
|
||||||
|
# 1) the client IP address->name mapping fails
|
||||||
|
# 2) the name->address mapping fails
|
||||||
|
# 3) the name->address mapping does not match the client IP address.
|
||||||
|
#
|
||||||
|
# Note:
|
||||||
|
# This is a stronger restriction than the reject_unknown_reverse_client_hostname
|
||||||
|
# feature, which triggers only under condition 1) above.
|
||||||
|
#
|
||||||
|
#reject_unknown_client
|
||||||
|
|
||||||
|
|
||||||
## ---
|
## ---
|
||||||
## smtpd HELO Restrictions
|
## smtpd HELO Restrictions
|
||||||
## ---
|
## ---
|
||||||
|
|
||||||
|
smtpd_helo_required = yes
|
||||||
smtpd_helo_restrictions =
|
smtpd_helo_restrictions =
|
||||||
|
permit_mynetworks,
|
||||||
|
permit_sasl_authenticated,
|
||||||
|
# Whitelist clients
|
||||||
|
#
|
||||||
|
check_client_access btree:/etc/postfix/client_whitelist
|
||||||
|
# Reject the request when the HELO or EHLO hostname is malformed.
|
||||||
|
#
|
||||||
|
# Note
|
||||||
|
# specify "smtpd_helo_required = yes" to fully enforce this restriction
|
||||||
|
# (without "smtpd_helo_required = yes", a client can simply skip
|
||||||
|
# reject_invalid_helo_hostname by not sending HELO or EHLO).
|
||||||
|
#
|
||||||
|
reject_invalid_helo_hostname,
|
||||||
|
# Reject the request when the HELO or EHLO hostname is not in fully-qualified
|
||||||
|
# domain or address literal form, as required by the RFC.
|
||||||
|
#
|
||||||
|
reject_non_fqdn_helo_hostname
|
||||||
# Don't talk to mail systems that don't know their own hostname.
|
# Don't talk to mail systems that don't know their own hostname.
|
||||||
|
#
|
||||||
reject_unknown_helo_hostname
|
reject_unknown_helo_hostname
|
||||||
|
|
||||||
|
|
||||||
## ---
|
## ---
|
||||||
## - smtpd DATA Restrictions
|
## - smtpd Sender Restrictions
|
||||||
## ---
|
## ---
|
||||||
|
|
||||||
smtpd_data_restrictions =
|
smtpd_sender_restrictions =
|
||||||
# Block clients that speak too early.
|
permit_mynetworks,
|
||||||
reject_unauth_pipelining
|
permit_sasl_authenticated,
|
||||||
|
reject_unknown_sender_domain,
|
||||||
smtpd_end_of_data_restrictions =
|
reject_non_fqdn_sender
|
||||||
# Check Postfix Firewall Daemon
|
|
||||||
check_policy_service inet:127.0.0.1:10040
|
|
||||||
|
|
||||||
|
|
||||||
## ---
|
## ---
|
||||||
@ -1275,9 +1384,7 @@ smtpd_recipient_restrictions =
|
|||||||
# permit our users
|
# permit our users
|
||||||
permit_sasl_authenticated,
|
permit_sasl_authenticated,
|
||||||
# dont' accept misconfigured Mail
|
# dont' accept misconfigured Mail
|
||||||
reject_non_fqdn_sender,
|
|
||||||
reject_non_fqdn_recipient,
|
reject_non_fqdn_recipient,
|
||||||
reject_unknown_sender_domain,
|
|
||||||
# don't accept misconfigured recipients
|
# don't accept misconfigured recipients
|
||||||
reject_unknown_recipient_domain,
|
reject_unknown_recipient_domain,
|
||||||
# Reject the request when the RCPT TO address is not listed in the list of valid
|
# Reject the request when the RCPT TO address is not listed in the list of valid
|
||||||
@ -1325,29 +1432,8 @@ smtpd_recipient_restrictions =
|
|||||||
# managed by the verify(8) server; see http://www.postfix.org/ADDRESS_VERIFICATION_README.html
|
# managed by the verify(8) server; see http://www.postfix.org/ADDRESS_VERIFICATION_README.html
|
||||||
# for more details
|
# for more details
|
||||||
reject_unverified_recipient,
|
reject_unverified_recipient,
|
||||||
# RBL check - !! comment out if postcreens postscreen_dnsbl_sites is in use
|
|
||||||
# Whitelist (configured at a.ns.oopen.de)
|
|
||||||
permit_dnswl_client dnswl.oopen.de,
|
|
||||||
# Blacklists
|
|
||||||
reject_rbl_client zen.spamhaus.org,
|
|
||||||
reject_rbl_client ix.dnsbl.manitu.net,
|
|
||||||
#reject_rbl_client bl.spamcop.net,
|
|
||||||
# Policyd-Weight
|
# Policyd-Weight
|
||||||
#check_policy_service inet:127.0.0.1:12525,
|
#check_policy_service inet:127.0.0.1:12525,
|
||||||
# Greylisting check
|
|
||||||
#
|
|
||||||
# check_policy_service inet:127.0.0.1:10023,
|
|
||||||
#
|
|
||||||
#
|
|
||||||
# Using defined restriction class (see smtpd_restriction_classes):
|
|
||||||
#
|
|
||||||
# greylist all connections:
|
|
||||||
# check_greylist,
|
|
||||||
#
|
|
||||||
# selctive greylisting:
|
|
||||||
# check_client_access pcre:/etc/postfix/greylist_client_access_pcre,
|
|
||||||
#warn_if_reject,
|
|
||||||
check_client_access pcre:/etc/postfix/greylist_client_access_pcre,
|
|
||||||
# permit Backup MX
|
# permit Backup MX
|
||||||
permit_mx_backup,
|
permit_mx_backup,
|
||||||
# permit, if all restrictions so far passed
|
# permit, if all restrictions so far passed
|
||||||
@ -1372,9 +1458,7 @@ smtpd_relay_restrictions =
|
|||||||
# permit our users
|
# permit our users
|
||||||
permit_sasl_authenticated,
|
permit_sasl_authenticated,
|
||||||
# dont' accept misconfigured Mail
|
# dont' accept misconfigured Mail
|
||||||
reject_non_fqdn_sender,
|
|
||||||
reject_non_fqdn_recipient,
|
reject_non_fqdn_recipient,
|
||||||
reject_unknown_sender_domain,
|
|
||||||
# don't accept misconfigured recipients
|
# don't accept misconfigured recipients
|
||||||
reject_unknown_recipient_domain,
|
reject_unknown_recipient_domain,
|
||||||
# Reject the request unless one of the following is true:
|
# Reject the request unless one of the following is true:
|
||||||
@ -1396,6 +1480,21 @@ smtpd_relay_restrictions =
|
|||||||
# permit, if all restrictions so far passed
|
# permit, if all restrictions so far passed
|
||||||
permit
|
permit
|
||||||
|
|
||||||
|
|
||||||
|
## ---
|
||||||
|
## - smtpd DATA Restrictions
|
||||||
|
## ---
|
||||||
|
|
||||||
|
smtpd_data_restrictions =
|
||||||
|
# Block clients that speak too early.
|
||||||
|
#
|
||||||
|
reject_unauth_pipelining
|
||||||
|
|
||||||
|
smtpd_end_of_data_restrictions =
|
||||||
|
# Check Postfix Firewall Daemon
|
||||||
|
#
|
||||||
|
check_policy_service inet:127.0.0.1:10040
|
||||||
|
|
||||||
EOF
|
EOF
|
||||||
echo_ok
|
echo_ok
|
||||||
|
|
||||||
@ -1591,6 +1690,20 @@ else
|
|||||||
echo_failed
|
echo_failed
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
echononl " Create file \"client_whitelist\""
|
||||||
|
if [[ ! -f "/etc/postfix/client_whitelist" ]]; then
|
||||||
|
cat <<EOF > /etc/postfix/client_whitelist
|
||||||
|
# onion - tor hidden service
|
||||||
|
127.0.0.25 OK
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
|
postmap btree:/etc/postfix/client_whitelist
|
||||||
|
if [[ $? -eq 0 ]] ; then
|
||||||
|
echo_ok
|
||||||
|
else
|
||||||
|
echo_failed
|
||||||
|
fi
|
||||||
|
|
||||||
echononl " Create file \"sender_canonical\""
|
echononl " Create file \"sender_canonical\""
|
||||||
if [[ ! -f /etc/postfix/sender_canonical ]]; then
|
if [[ ! -f /etc/postfix/sender_canonical ]]; then
|
||||||
cat <<EOF > /etc/postfix/sender_canonical
|
cat <<EOF > /etc/postfix/sender_canonical
|
||||||
@ -1674,17 +1787,6 @@ if [[ ! -f /etc/postfix/greylist_client_access_pcre ]]; then
|
|||||||
# - check_client_access pcre:/etc/postfix/greylist_client_access_pcre,
|
# - check_client_access pcre:/etc/postfix/greylist_client_access_pcre,
|
||||||
# - ...
|
# - ...
|
||||||
|
|
||||||
# Prevent connections at 127.0.0.25 (onion - tor hidden service) from greylisting
|
|
||||||
#
|
|
||||||
# Note:
|
|
||||||
# - DUNNO: Pretend, that the lookaup key (127.0.0.25) was not found. No further
|
|
||||||
# evaluation on this access table is done.
|
|
||||||
#
|
|
||||||
# - If 'tor hiddenservice' is supported, we bound it to 127.0.0.25 port 25.
|
|
||||||
# Since those connections are also marked as 'unknown', key below would match
|
|
||||||
# and greylisting would be triggered.
|
|
||||||
/127\\.0\\.0\\.25/ DUNNO
|
|
||||||
|
|
||||||
# ---
|
# ---
|
||||||
# - For clients matching the following rules greylisting check is applied.
|
# - For clients matching the following rules greylisting check is applied.
|
||||||
# ---
|
# ---
|
||||||
@ -1710,6 +1812,35 @@ else
|
|||||||
echo_skipped
|
echo_skipped
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
_file="/etc/postfix/header_checks_pcre"
|
||||||
|
echononl " Create file '$_file' used for header replacing"
|
||||||
|
if [[ ! -f "$_file" ]]; then
|
||||||
|
cat << EOF > "$_file"
|
||||||
|
# ---
|
||||||
|
# - Replace headers
|
||||||
|
# ---
|
||||||
|
|
||||||
|
# - Replace recieved from
|
||||||
|
/^Received: from (.* \\([-._[:alnum:]]+ \\[[.[:digit:]]{7,15}\\]\\)).*?([[:space:]]+).*\\(Authenticated sender: ([^)]+)\\)(.*)/ REPLACE Received: from [127.0.0.1] (localhost [127.0.0.1])\$2(Authenticated sender: \$3)\$4
|
||||||
|
|
||||||
|
# ---
|
||||||
|
# - Ignore Headers
|
||||||
|
# ---
|
||||||
|
|
||||||
|
/^\s*User-Agent/ IGNORE
|
||||||
|
/^\s*X-Enigmail/ IGNORE
|
||||||
|
/^\s*X-Mailer/ IGNORE
|
||||||
|
/^\s*X-Originating-IP/ IGNORE
|
||||||
|
EOF
|
||||||
|
if [[ $? -eq 0 ]] ; then
|
||||||
|
echo_ok
|
||||||
|
else
|
||||||
|
echo_failed
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo_skipped
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
if ! $IS_RELAY_HOST ; then
|
if ! $IS_RELAY_HOST ; then
|
||||||
## - Create Directory '/var/vmail' for virtual mailboxes
|
## - Create Directory '/var/vmail' for virtual mailboxes
|
||||||
|
Loading…
Reference in New Issue
Block a user