Postfix-White-Black-Greylisting

Postfix’ smtpd_*_restrictions werden in folgender Reihenfolge abgearbeitet:

  1. smtpd_client_restrictions
  2. smtpd_helo_restrictions
  3. smtpd_sender_restrictions
  4. smtpd_recipient_restrictions
  5. smtpd_data_restrictions
Postfix-White-Black-Greylisting
Postfix-White-Black-Greylisting

Whitelist & Blacklist

Postfix-Konfiguration für Client-IPs (smtpd_client_restrictions)

Blocking in smtpd_client_restrictions ist Hardcore, der REJECT kommt bereits beim Connect. Im Logfile werden nicht einmal Absende- und Empfänger- Adresse stehen.

Möchte man solcherart Information haben, dann sicherstellen, dass auch smtpd_delay_reject aktiv ist (default).

Wichtig ist die Reihefolge: Whitelist vor Blacklist, da das abschließende permit ohnehin ein OK impliziert. Daher stehen in der Whitelist auch nur Ausnahmen von der Blacklist.

sudo postconf smtpd_delay_reject=yes
sudo postconf smtpd_client_restrictions="permit_mynetworks, check_client_access cidr:/etc/postfix/networks_whitelist.cidr, check_client_access cidr:/etc/postfix/networks_blacklist.cidr, permit"
cat <<EOF > /etc/postfix/networks_whitelist.cidr
# Hier nur 'OK'
# Ausnahmen für Netze die in networks_blacklist.cidr gelistet sind
192.168.1.1             OK
EOF
sudo postmap -q 192.168.1.1 cidr:/etc/postfix/networks_whitelist.cidr
cat <<EOF > /etc/postfix/networks_blacklist.cidr
# Hier nur 'REJECT'
# Ausnahmen für IPs aus diesen Netzen gehören nach networks_whitelist.cidr
192.168.0.0/16          REJECT
EOF
sudo postmap -q 192.168.1.1 cidr:/etc/postfix/networks_blacklist.cidr

Postfix-Konfiguration für HELO (smtpd_helo_restrictions)

sudo postconf smtpd_delay_reject=yes
sudo postconf smtpd_helo_required=yes
sudo postconf smtpd_helo_restrictions="permit_mynetworks, reject_non_fqdn_helo_hostname, reject_invalid_helo_hostname, permit"

Postfix-Konfiguration für Absende-Adressen (smtpd_sender_restrictions)

(MAIL FROM: in check_sender_access)

sudo postconf smtpd_delay_reject=yes
sudo postconf smtpd_sender_restrictions="permit_mynetworks, reject_non_fqdn_sender, reject_unknown_sender_domain, check_sender_access hash:/etc/postfix/sender_whitelist, check_sender_access hash:/etc/postfix/sender_blacklist, permit"
cat <<EOF > /etc/postfix/sender_whitelist
# /etc/postfix/sender_whitelist
#
# Whitelist senders matching the 'MAIL FROM' field. Examples...

# Whitelist
partner@foo.bar OK
@partner.foo.bar    OK
EOF
cat <<EOF > /etc/postfix/sender_blacklist
# /etc/postfix/sender_whitelist
#
# Whitelist senders matching the 'MAIL FROM' field. Examples...

# Blacklist
@porn.foo.bar   REJECT
@spam.foo.bar   REJECT
foo.bar       REJECT
EOF
postmap /etc/postfix/sender_whitelist
postmap /etc/postfix/sender_blacklist

Postfix-Konfiguration für Empfänger-Adressen (smtpd_recipient_restrictions)

sudo postconf smtpd_delay_reject=yes
sudo postconf smtpd_recipient_restrictions="reject_unauth_pipelining, reject_non_fqdn_recipient, reject_unknown_recipient_domain, permit_mynetworks, reject_unauth_destination, permit"

Spamhaus DNS-RBL

Postfix-Konfiguration (smtpd_client_restrictions)

sudo postconf smtpd_delay_reject=yes
sudo postconf smtpd_client_restrictions="permit_mynetworks, check_client_access cidr:/etc/postfix/networks_whitelist.cidr, check_client_access cidr:/etc/postfix/networks_blacklist.cidr, reject_rbl_client sbl.spamhaus.org, reject_rbl_client xbl.spamhaus.org, permit"

Greylisting

Postgrey-Installation

sudo apt-get install postgrey

Postfix-Konfiguration

sudo postconf smtpd_recipient_restrictions="reject_unauth_pipelining, reject_non_fqdn_recipient, reject_unknown_recipient_domain, permit_mynetworks, reject_unauth_destination, check_policy_service inet:127.0.0.1:10023, permit"
  1. Postfix-Dovecot-MySQL
  2. Postfix-Spam-Virus-Protection