mainly postfwd konfigurations.

This commit is contained in:
2026-11-09 00:07:38 +01:00
parent 2089be116e
commit dd0f4990e1
43 changed files with 654 additions and 1171 deletions
+2 -2
View File
@@ -31,7 +31,7 @@ install_compiler_pkgs: true
# vars used by roles/common/tasks/systemd-resolved.yml
# ---
systemd_resolved: true
systemd_resolved: false
# CyberGhost - Schnelle Verbindung mit Keine-Logs-Datenschutzrichtlinie
# Primäre DNS-Adresse: 38.132.106.139
@@ -101,7 +101,7 @@ resolved_fallback_nameserver:
# vars used by roles/common/tasks/users.yml
# ---
# insert_root_ssh_keypair: true
insert_root_ssh_keypair: true
#
# root_ssh_keypair:
# - name: id-rsa-dehydrated
+1 -1
View File
@@ -488,10 +488,10 @@ web-09.oopen.de
o40.oopen.de
cl-flr.oopen.de
cp-flr.oopen.de
g.mx.oopen.de
# Kotti-Coop e.V.
o41.oopen.de
g.mx.oopen.de
# RAV
o42.oopen.de
@@ -1,15 +1,17 @@
# *** [ Ansible managed: DO NOT EDIT DIRECTLY ] ***
# ---
# SASL Users whitelisted by postfwd
#
# example:
# Vollstaendige Freistellung fuer SASL-Benutzernamen.
#
# Exakter Name pro Zeile, keine Regex; wie von Postfix als sasl_username geliefert.
#
# Umgeht auch Blacklists und alle Limits. Fuer nur hoehere Limits stattdessen
# postfwd.high-rate-number-messages bzw. -recipients verwenden.
#
# Example:
#
# # give trusted sasl usernames here
# ckubu@oopen.de
# vertrieb@akweb.de
#
# ---
# give trusted sasl usernames here
abo@akweb.de
@@ -1,19 +1,24 @@
# *** [ Ansible managed: DO NOT EDIT DIRECTLY ] ***
# ---
# Trusted networks whitelisted by postfwd
#
# Example:
# Vollstaendige Freistellung fuer Client-IP-Adressen/IPv4-Netze.
# Umgeht auch die nachfolgenden Blacklists und alle Limits; nur bewusst nutzen.
# IPv4: einzelne Adresse oder CIDR-Netz. postfwd2 1.35 verarbeitet IPv6 hier
# nur als exakten Adresstext OHNE /128, nicht als IPv6-CIDR-Netz.
#
# Exakte IPv6-Schreibweise wie client_address von Postfix verwenden.
# Eine Adresse/ein Netz pro Zeile.
#
# Beispiele:
#
# 192.0.2.10
# 192.0.2.0/24
#
# # b.mx.oopen.de
# 2a01:4f8:271:1266::73
# 2a01:4f8:271:1266::/64
#
# # web0.warenform.de
# #83.223.86.76
# #2a01:30:0:505:286:96ff:fe4a:6ee
# #2a01:30:0:13:286:96ff:fe4a:6eee
#
# ---
# give truested networrk adresses here
# d.mx.oopen.de (listen server)
95.217.204.227
2a01:4f9:4a:47e5::227
@@ -1,25 +1,20 @@
# *** [ Ansible managed: DO NOT EDIT DIRECTLY ] ***
# ---
# Trusted senders whitelisted by postfwd
#
# This file is called with '=~'. This means perl regexp is possible
# Vollstaendige Freistellung anhand des Envelope-Absenders, NICHT From:-Header.
#
#
# To increase performance use ^ and/or $ in regular expressions
# Perl-Regex pro Zeile
#
# Example:
#
# # all senders of maildomaindomain 'oopen.de'
# @oopen\.de$
# ^noreply@example\.org$
#
# # sender address ckubu@oopen.de
# ^ckubu@oopen\.de$
# ACHTUNG:
# Absender ist nachahmbar; diese Liste prueft weder SPF noch DKIM noch
# SASL-Identitaet. Treffer umgehen nachfolgende postfwd-Sperren und Limits.
# Der vorhandene Eintrag wurde als bisherige Ausnahme beibehalten.
#
# ---
# give trusted sender addresses here
^noreply@login\.ubuntu\.com$
^check_local_es_service@oolm-shop\.oopen\.de$
^root@oolm-shop\.oopen\.de$
@@ -1,23 +1,35 @@
# *** [ Ansible managed: DO NOT EDIT DIRECTLY ] ***
# ---
# Block messages exeeds 20 MB for listed recipients
#
# This file is called with '=~'. This means perl regexp is possible
# Empfaenger mit zusaetzlichem 20-MiB-Limit, NUR bei Einzelempfaengern.
# Perl-Regex pro Zeile; z.B.
# ^user@example\.org$
# @example\.org$
# Die Regel greift nur bei recipient_count=1 am END-OF-MESSAGE und bei
# size > 20971520 Bytes. Genau 20 MiB bleiben erlaubt.
# Bei mehreren Empfaengern fehlt recipient dort; dafuer bietet diese Datei
# KEIN verlaessliches Limit. Fuer verbindliche Limits ist eine andere
# Loesung erforderlich. Die bisher leere Liste bleibt leer.
# Historischer Dateiname mit Schreibfehler bleibt aus Kompatibilitaet erhalten.
#
# +------------------+----------------------+----------------+----------------------+
# | SMTP-Empfaenger | Empfaenger gelistet? | Nachricht | Wirkung dieser Regel |
# +------------------+----------------------+----------------+----------------------+
# | Genau einer | Ja | Bis 20 MiB | Keine Ablehnung |
# | Genau einer | Ja | Ueber 20 MiB | REJECT |
# | Genau einer | Nein | Beliebig | Keine Ablehnung |
# | Mehrere | Einer oder mehrere | Beliebig | Keine Ablehnung |
# | | gelistet | | |
# +------------------+----------------------+----------------+----------------------+
#
# 20 MiB = 20.971.520 Bytes, einschliesslich Header und MIME-Kodierung.
#
# Bei mehreren SMTP-Empfaengern liefert Postfix am Nachrichtenende
# keine einzelne Empfaengeradresse fuer den Listenvergleich.
#
# Das globale Postfix-Limit message_size_limit gilt weiterhin.
#
#
# To increase performance use ^ and/or $ in regular expressions
#
# @acieu\.co\.uk$
# ^error@mailfrom\.com$
#
# instedt of
#
# @acieu.co.uk
# error@mailfrom.com
#
#
# Example:
# # Example:
#
# # # annoying spammer domains
# # block all senders of maildomaindomain 'oopen.de'
@@ -27,8 +39,6 @@
# # block sender address
# error@mailfrom.com
# sqek@eike\.se$
#
# ---
# MBR / VDK
info@mbr-berlin.de
^info@mbr-berlin\.de$
@@ -1,19 +1,20 @@
# *** [ Ansible managed: DO NOT EDIT DIRECTLY ] ***
# ---
# SASL Users are allowed to send up to 500 messages per hour
#
# This file is called with '=='. This means perl regexp is NOT possible
# SASL-Benutzer mit bis zu 500 Nachrichten UND 1000 Empfaengern pro Stunde.
#
# Exakter sasl_username pro Zeile, keine Regex. Leere Datei = keine Ausnahme.
# ===========================================================================
#
# example:
# interne Bemerkung
# Die Standardlimits 50 Nachrichten und 250 Empfaenger werden gezielt
# uebersprungen. IP-Minutenlimit und maximal 89 Empfaenger/Nachricht bleiben.
# Eine Nachricht mit 10 Empfaengern zaehlt als 1 Nachricht und 10 Empfaenger.
# Dies ist keine vollstaendige Freistellung; Blacklists gelten weiterhin.
#
# # give sasl usernames here
# #
# ckubu@oopen.de
# Example:
#
# ---
# buchsys@sprachenatelier-berlin.de
# todo@warenform.de
# give sasl usernames here
buchsys@sprachenatelier-berlin.de
@@ -1,40 +0,0 @@
# *** [ Ansible managed: DO NOT EDIT DIRECTLY ] ***
# ============================================================
# Whitelist fuer erhoehtes Rate-Limit (100 Nachrichten/Minute)
# auf Basis des Client-Hostnamens (Reverse-DNS/PTR-Eintrag),
# statt der Standard-Grenze von 50/Minute aus RATE_CLIENT_ADDR
#
# Format: PCRE-regulaerer Ausdruck pro Zeile (kein Wildcard/Glob!),
# postfwd2 vergleicht jede Zeile gegen den von Postfix aufgeloesten
# 'client_name'-Wert (PTR-Eintrag der Client-IP).
# Leerzeilen und Zeilen, die mit '#' beginnen, werden ignoriert.
#
# Beispiele:
# /^buchsys3\.buchsys\.de$/ -> nur dieser eine Hostname
# /\.buchsys\.de$/ -> alle Subdomains von buchsys.de
# (z.B. buchsys3.buchsys.de,
# mail.buchsys.de, etc.)
#
# WICHTIG:
# - Diese Regel greift NUR, wenn Reverse-DNS fuer die jeweilige
# IP sauber konfiguriert ist und der PTR-Eintrag auf das Muster
# passt. Pruefe den tatsaechlichen 'client_name'-Wert vorher in
# den postfwd2-Logs.
# - Ein zu breites Muster (z.B. /buchsys\.de/ ohne Anker) kann auch
# unerwuenschte Hosts matchen (z.B. "evil-buchsys.de.attacker.com").
# Deshalb immer mit '^' und '$' bzw. '\.' vor der Domain arbeiten.
# - Jeder hier gematchte Hostname umgeht das strengere 50er-Limit
# und erlaubt bis zu 100 Nachrichten/Minute. Bitte nur Muster
# eintragen, denen du tatsaechlich vertraust.
# - Nach Aenderungen an dieser Datei postfwd2 neu laden/starten:
# systemctl restart postfwd2
# - Diese Datei wird per 'pcre:' Lookup direkt in postfwd.cf
# referenziert, siehe Regel 'HIGH_RATE_CLIENT_NAME'.
# - Die IP-basierte Regel (HIGH_RATE_CLIENT_ADDR) ist zuverlaessiger
# und sollte die primaere Loesung sein; diese Hostname-Regel
# eignet sich vor allem als Ergaenzung bei wechselnden IPs.
# ============================================================
/^buchsys3\.buchsys\.de$/
/^www\.buchsys\.de$/
@@ -1,35 +0,0 @@
# *** [ Ansible managed: DO NOT EDIT DIRECTLY ] ***
# ============================================================
# Whitelist fuer erhoehtes Rate-Limit (100 Nachrichten/Minute)
# statt der Standard-Grenze von 50/Minute aus RATE_CLIENT_ADDR
#
# Hier werden IP-Adressen bzw. CIDR-Netze von vertrauenswuerdigen
# Absende-Systemen eingetragen, die routinemaessig hoehere
# Mailmengen ueber eine feste Absender-IP verschicken, z. B.
# Kunden-Mailserver, angebundene Fachanwendungen/Buchungssysteme,
# Newsletter- oder Transaktionsmail-Versender.
#
# Format: eine IP-Adresse oder ein CIDR-Netz pro Zeile.
# Leerzeilen und Zeilen, die mit '#' beginnen, werden ignoriert.
# IPv4 und IPv6 werden unterstuetzt.
#
# Beispiele:
# 116.202.85.120
# 203.0.113.0/24
#
# WICHTIG:
# - Jede hier eingetragene IP umgeht das strengere 50er-Limit
# und darf bis zu 100 Nachrichten/Minute senden. Bitte nur
# IPs eintragen, denen du tatsaechlich vertraust (kompromittierte
# oder falsch eingetragene Systeme koennten sonst zum offenen
# Spam-Verteiler werden).
# - Nach Aenderungen an dieser Datei postfwd2 neu laden/starten,
# damit die Aenderung sicher greift:
# systemctl restart postfwd2
# - Diese Datei wird per 'cidr:' Lookup direkt in postfwd.cf
# referenziert, siehe Regel 'HIGH_RATE_CLIENT_ADDR'.
# ============================================================
# www.buchsys.de
116.202.85.120
@@ -1,19 +1,20 @@
# *** [ Ansible managed: DO NOT EDIT DIRECTLY ] ***
# ---
# SASL Users whitelisted by postfwd
#
# example:
# Vollstaendige Freistellung fuer SASL-Benutzernamen.
#
# Exakter Name pro Zeile, keine Regex; wie von Postfix als sasl_username geliefert.
#
# Umgeht auch Blacklists und alle Limits. Fuer nur hoehere Limits stattdessen
# postfwd.high-rate-number-messages bzw. -recipients verwenden.
#
# Example:
#
# # give trusted sasl usernames here
# ckubu@oopen.de
# vertrieb@akweb.de
#
# ---
# give trusted sasl usernames here
abo@akweb.de
vertrieb@akweb.de
prokla@akweb.de
presse@mbr-berlin.de
@@ -1,19 +1,27 @@
# *** [ Ansible managed: DO NOT EDIT DIRECTLY ] ***
# ---
# Trusted networks whitelisted by postfwd
#
# Example:
# Vollstaendige Freistellung fuer Client-IP-Adressen/IPv4-Netze.
# Umgeht auch die nachfolgenden Blacklists und alle Limits; nur bewusst nutzen.
# IPv4: einzelne Adresse oder CIDR-Netz. postfwd2 1.35 verarbeitet IPv6 hier
# nur als exakten Adresstext OHNE /128, nicht als IPv6-CIDR-Netz.
#
# Exakte IPv6-Schreibweise wie client_address von Postfix verwenden.
# Eine Adresse/ein Netz pro Zeile.
#
# Beispiele:
#
# 192.0.2.10
# 192.0.2.0/24
#
# # b.mx.oopen.de
# 2a01:4f8:271:1266::73
# 2a01:4f8:271:1266::/64
#
# # web0.warenform.de
# #83.223.86.76
# #2a01:30:0:505:286:96ff:fe4a:6ee
# #2a01:30:0:13:286:96ff:fe4a:6eee
#
# ---
# give truested networrk adresses here
# d.mx.oopen.de (listen server)
95.217.204.227
2a01:4f9:4a:47e5::227
# b.mx.oopen.de
162.55.82.73/32
2a01:4f8:271:1266::73
@@ -1,19 +1,27 @@
# *** [ Ansible managed: DO NOT EDIT DIRECTLY ] ***
# ---
# Trusted networks whitelisted by postfwd
#
# Example:
# Vollstaendige Freistellung fuer Client-IP-Adressen/IPv4-Netze.
# Umgeht auch die nachfolgenden Blacklists und alle Limits; nur bewusst nutzen.
# IPv4: einzelne Adresse oder CIDR-Netz. postfwd2 1.35 verarbeitet IPv6 hier
# nur als exakten Adresstext OHNE /128, nicht als IPv6-CIDR-Netz.
#
# Exakte IPv6-Schreibweise wie client_address von Postfix verwenden.
# Eine Adresse/ein Netz pro Zeile.
#
# Beispiele:
#
# 192.0.2.10
# 192.0.2.0/24
#
# # b.mx.oopen.de
# 2a01:4f8:271:1266::73
# 2a01:4f8:271:1266::/64
#
# # web0.warenform.de
# #83.223.86.76
# #2a01:30:0:505:286:96ff:fe4a:6ee
# #2a01:30:0:13:286:96ff:fe4a:6eee
#
# ---
# give truested networrk adresses here
# d.mx.oopen.de (listen server)
95.217.204.227
2a01:4f9:4a:47e5::227
# b.mx.oopen.de
162.55.82.73/32
2a01:4f8:271:1266::73
@@ -1,19 +1,20 @@
# *** [ Ansible managed: DO NOT EDIT DIRECTLY ] ***
# ---
# SASL Users are allowed to send up to 500 messages per hour
#
# This file is called with '=='. This means perl regexp is NOT possible
# SASL-Benutzer mit bis zu 500 Nachrichten UND 1000 Empfaengern pro Stunde.
#
# Exakter sasl_username pro Zeile, keine Regex. Leere Datei = keine Ausnahme.
# ===========================================================================
#
# example:
# interne Bemerkung
# Die Standardlimits 50 Nachrichten und 250 Empfaenger werden gezielt
# uebersprungen. IP-Minutenlimit und maximal 89 Empfaenger/Nachricht bleiben.
# Eine Nachricht mit 10 Empfaengern zaehlt als 1 Nachricht und 10 Empfaenger.
# Dies ist keine vollstaendige Freistellung; Blacklists gelten weiterhin.
#
# # give sasl usernames here
# #
# ckubu@oopen.de
# Example:
#
# ---
# buchsys@sprachenatelier-berlin.de
# todo@warenform.de
# give sasl usernames here
application@cadus.org
@@ -1,18 +1,23 @@
# *** [ Ansible managed: DO NOT EDIT DIRECTLY ] ***
# ---
# Trusted networks whitelisted by postfwd
#
# Example:
# Vollstaendige Freistellung fuer Client-IP-Adressen/IPv4-Netze.
# Umgeht auch die nachfolgenden Blacklists und alle Limits; nur bewusst nutzen.
# IPv4: einzelne Adresse oder CIDR-Netz. postfwd2 1.35 verarbeitet IPv6 hier
# nur als exakten Adresstext OHNE /128, nicht als IPv6-CIDR-Netz.
#
# Exakte IPv6-Schreibweise wie client_address von Postfix verwenden.
# Eine Adresse/ein Netz pro Zeile.
#
# Beispiele:
#
# 192.0.2.10
# 192.0.2.0/24
#
# # b.mx.oopen.de
# 2a01:4f8:271:1266::73
# 2a01:4f8:271:1266::/64
#
# # web0.warenform.de
# #83.223.86.76
# #2a01:30:0:505:286:96ff:fe4a:6ee
# #2a01:30:0:13:286:96ff:fe4a:6eee
#
# ---
# give truested networrk adresses here
# d.mx.oopen.de (listen server)
95.217.204.227
2a01:4f9:4a:47e5::227
@@ -1,24 +1,19 @@
# *** [ Ansible managed: DO NOT EDIT DIRECTLY ] ***
# ---
# Trusted senders whitelisted by postfwd
#
# This file is called with '=~'. This means perl regexp is possible
# Vollstaendige Freistellung anhand des Envelope-Absenders, NICHT From:-Header.
#
#
# To increase performance use ^ and/or $ in regular expressions
# Perl-Regex pro Zeile
#
# Example:
#
# # all senders of maildomaindomain 'oopen.de'
# @oopen\.de$
# ^noreply@example\.org$
#
# # sender address ckubu@oopen.de
# ^ckubu@oopen\.de$
# ACHTUNG:
# Absender ist nachahmbar; diese Liste prueft weder SPF noch DKIM noch
# SASL-Identitaet. Treffer umgehen nachfolgende postfwd-Sperren und Limits.
# Der vorhandene Eintrag wurde als bisherige Ausnahme beibehalten.
#
# ---
# give trusted sender addresses here
spenden\@cadus.org$
ebru.altintop\@cadus\.org$
^spenden@cadus.org$
^ebru.altintop@cadus\.org$
@@ -1,15 +1,17 @@
# *** [ Ansible managed: DO NOT EDIT DIRECTLY ] ***
# ---
# SASL Users whitelisted by postfwd
#
# example:
# Vollstaendige Freistellung fuer SASL-Benutzernamen.
#
# Exakter Name pro Zeile, keine Regex; wie von Postfix als sasl_username geliefert.
#
# Umgeht auch Blacklists und alle Limits. Fuer nur hoehere Limits stattdessen
# postfwd.high-rate-number-messages bzw. -recipients verwenden.
#
# Example:
#
# # give trusted sasl usernames here
# ckubu@oopen.de
# vertrieb@akweb.de
#
# ---
# give trusted sasl usernames here
spenden@cadus.org
@@ -1,37 +0,0 @@
# *** [ Ansible managed: DO NOT EDIT DIRECTLY ] ***
# ---
# - Replace headers
# - Replace recieved from IPv4
#/^Received: from (.* \([-._[:alnum:]]+ \[[.[:digit:]]{7,15}\]\))(.*)\(Authenticated sender: ([^)]+)\)(.*)/ REPLACE Received: from anonymized.ipv4 (localhost [127.0.0.1])$2(Authenticated sender: hidden)$4
# - Replace recieved from IPv6
#/^Received: from (.*IP[vV]6:(([0-9a-f]{0,4}:){1,7}[0-9a-f]{1,4})\]\){0,1})(.*)\(Authenticated sender: ([^)]+)\)(.*)/ REPLACE Received: from anonymized.ipv6 (localhost [::1])$4(Authenticated sender: hidden)$6
# ---
# - Ignore Headers
# ---
#/^\s*User-Agent/ IGNORE
#/^\s*X-Enigmail/ IGNORE
#/^\s*X-Mailer/ IGNORE
#/^\s*X-Originating-IP/ IGNORE
# ---
# - Reject / Discard headers
# ---
/^To:.*<>/ REJECT Possible SPAM Blank email address To: header - Header-Spamschutzregel T0-1001
/\(envelope-from <>\)/ REJECT Possible SPAM - Header-Spamschutzregel RECIEV-1001
/^Reply-To: .+\@inx1and1\..+/ REJECT Possible SPAM - Header-Spamschutzregel REPLY-1001
/^From:.*<>/ REJECT Possible SPAM - Header-Spamschutzregel FROM-1001
/^Date: .* 19[0-9][0-9]/ REJECT Date from the past. Fix your system clock. - Header-Spamschutzregel DATE-1001
/^Date: .* 200[0-9]/ REJECT Date from the past. Fix your system clock. - Header-Spamschutzregel DATE-1002
/^Date: .* 201[0-9]/ REJECT Date from the past. Fix your system clock. - Header-Spamschutzregel DATE-1003
/^Date: .* 2020/ REJECT Date from the past. Fix your system clock. - Header-Spamschutzregel DATE-1004
@@ -1,43 +0,0 @@
# *** [ Ansible managed: DO NOT EDIT DIRECTLY ] ***
# ---
# - Replace headers
# - Replace recieved from IPv4 / IPv6 header - hide senders IP address and also 'Authenticated sender'
#
#/^Received: from (.* \([-._[:alnum:]]+ \[[.[:digit:]]{7,15}\]\))(.*)\(Authenticated sender: ([^)]+)\)(.*)/ REPLACE Received: from anonymized.ipv4 (localhost [127.0.0.1])$2(Authenticated sender: hidden)$4
#
#/^Received: from (.*IP[vV]6:(([0-9a-f]{0,4}:){1,7}[0-9a-f]{1,4})\]\){0,1})(.*)\(Authenticated sender: ([^)]+)\)(.*)/ REPLACE Received: from anonymized.ipv6 (localhost [::1])$4(Authenticated sender: hidden)$6
# - Replace recieved from IPv4 / IPv6 header - hide only sender IP address
#
#/^Received: from (.* \([-._[:alnum:]]+ \[[.[:digit:]]{7,15}\]\))(.*)\(Authenticated sender: (.*) / REPLACE Received: from anonymized.ipv4 (localhost [127.0.0.1])$2(Authenticated sender: $3
#/^Received: from (.*IP[vV]6:(([0-9a-f]{0,4}:){1,7}[0-9a-f]{1,4})\]\){0,1})(.*)\(Authenticated sender: (.*) / REPLACE Received: from anonymized.ipv6 (localhost [::1])$4(Authenticated sender: $5
# ---
# - Ignore Headers
# ---
#/^\s*User-Agent/ IGNORE
#/^\s*X-Enigmail/ IGNORE
#/^\s*X-Mailer/ IGNORE
#/^\s*X-Originating-IP/ IGNORE
# ---
# - Reject / Discard headers
# ---
/^To:.*<>/ REJECT Possible SPAM Blank email address To: header - Header-Spamschutzregel T0-1001
/\(envelope-from <>\)/ REJECT Possible SPAM - Header-Spamschutzregel RECIEV-1001
/^Reply-To: .+\@inx1and1\..+/ REJECT Possible SPAM - Header-Spamschutzregel REPLY-1001
/^From:.*<>/ REJECT Possible SPAM - Header-Spamschutzregel FROM-1001
/^Date: .* 19[0-9][0-9]/ REJECT Date from the past. Fix your system clock. - Header-Spamschutzregel DATE-1001
/^Date: .* 200[0-9]/ REJECT Date from the past. Fix your system clock. - Header-Spamschutzregel DATE-1002
/^Date: .* 201[0-9]/ REJECT Date from the past. Fix your system clock. - Header-Spamschutzregel DATE-1003
/^Date: .* 2020/ REJECT Date from the past. Fix your system clock. - Header-Spamschutzregel DATE-1004
@@ -1,105 +1,96 @@
# *** [ Ansible managed: DO NOT EDIT DIRECTLY ] ***
# ---
# hosts blocked by postfwd
#
# This file is called with '=~'. This means perl regexp is possible
# Sperrliste fuer den von Postfix gelieferten client_name, nicht fuer HELO.
# Perl-Regex pro Zeile; Punkte maskieren und Grenzen verankern.
# Beispiel exakter Host: ^mail\.example\.org$
# Domaene einschliesslich Subdomains: (^|\.)example\.org$
# Es handelt sich nicht um Postfix-pcre:-Tabellen (keine Ergebnis-Spalte).
#
#
# To increase performance use ^ and/or $ in regular expressions
#
# Example:
#
# # block all hosts of domain 'oopen.de'
# \.oopen\.de$
#
# # block host a.mx.oopen.de
# ^a\.mx\.oopen\.de$
#
# ---
# give hostnames to blocke here
# Nach Aenderungen: postfwd -f /etc/postfix/postfwd.cf -C
# Danach systemctl reload postfwd (setzt mit den gelieferten Optionen Zaehler zurueck).
# Der Dienst heisst postfwd, nicht postfwd2. file:-Listen werden beim Laden gelesen.
# Leerzeilen und Kommentare werden ignoriert. Dateien muessen lesbar sein.
# Werkzeug
katherina-remberg\.de$
(^|\.)katherina-remberg\.de$
# Mehr Energie für Ihre Schritte
elcoino\.de$
(^|\.)elcoino\.de$
# Wiederherstellung des Sehvermogens ohne Operation
toonaca\.or\.mg$
(^|\.)toonaca\.or\.mg$
# info re_zeptfrei ordern
radiotrabajandoparacristoirmp\.com$
(^|\.)radiotrabajandoparacristoirmp\.com$
# HL Group
group-hire\.com$
(^|\.)group-hire\.com$
# Erinnerung: Überzahlung entdeckt – Ihre Rückerstattung wartet!
#mtasv\.net$
# edge.toprains.shop:w
edge\.toprains\.shop$
(^|\.)edge\.toprains\.shop$
# Ideal für Apple- und Samsung-Fans
sdeals\.shop$
(^|\.)sdeals\.shop$
# Spiegel.de
delpieroacademy\.com$
(^|\.)delpieroacademy\.com$
# Kundensupport - photoTAN
#mailjet\.com$
# LOTTO-Rabatt
gdwr\.de$
(^|\.)gdwr\.de$
# info mit ETFs die Millionen knacken?
movingcompanywheaton\.com$
(^|\.)movingcompanywheaton\.com$
# Specht Office
mta3\.dev\.60cr\.com$
(^|\.)mta3\.dev\.60cr\.com$
# lichtbringer.sho
lichtbringer\.shop$
(^|\.)lichtbringer\.shop$
# insights.sternenpfad.shop
insights\.sternenpfad\.shop$
(^|\.)insights\.sternenpfad\.shop$
# info rezeptfre-i Bestellung
ugms\.org$
(^|\.)ugms\.org$
# info Herrenmeds anfordern
fullendoscopy\.mx$
(^|\.)fullendoscopy\.mx$
# Premium-Werkzeugwagen:
minillq\.com$
(^|\.)minillq\.com$
# zaubermoment.shop
zaubermoment\.shop$
(^|\.)zaubermoment\.shop$
# Lustexperte
jetztpower\.shop$
(^|\.)jetztpower\.shop$
# herzenstone.shop
herzenstone\.shop$
(^|\.)herzenstone\.shop$
# Versand - Wichtige Neiuheit (a2hosted.com)
a2hosted\.com$
(^|\.)a2hosted\.com$
# Eleganz trifft Funktion: Metall-Kugelschreiber mit Logo
game\.cn$
(^|\.)game\.cn$
# Ein Sprühstoß für die sofortige Erektion!
perfektepower\.shop$
(^|\.)perfektepower\.shop$
# Home Security / preview.glanzpunkt.shop
glanzpunkt.shop$
(^|\.)glanzpunkt\.shop$
# Phishing IHK
rightappearance\.com$
(^|\.)rightappearance\.com$
# info rezeptf-rei Bestellung
sectiontrading\.com$
(^|\.)sectiontrading\.com$
# Sofortiger zweisprachiger Sprachübersetzer
# - kein Eintrag -
@@ -1,84 +0,0 @@
# *** [ Ansible managed: DO NOT EDIT DIRECTLY ] ***
# ---
# hosts blocked by postfwd
#
# This file is called with '=~'. This means perl regexp is possible
#
#
# To increase performance use ^ and/or $ in regular expressions
#
# Example:
#
# # block all hosts of domain 'oopen.de'
# \.oopen\.de$
#
# # block host a.mx.oopen.de
# ^a\.mx\.oopen\.de$
#
# ---
# give hostnames to blocke here
illuminatus\.lionheart\.lovejoy$
dancortez\.500$
geplosser\.pl$
zukunftbeitragen\.quest$
gulpagerts\.com$
flodesyta\.shop$
einfach-mail-express\.eu$
feowatley\.shop$
kssalon\.com$
zeitarbeitsgruppe\.com$
jobinscenter\.mom$
bilingates\.gsm\.pl$
^mail\.finsky-palace\.radio\.am$
^mail\.newslinkes\.radio\.fm$
thecaffeinatedquilter\.com$
^mail\.hossted\.app$
rea\.realflightshop\.com$
tetontimberlinetrading\.com$
walelaber\.shop$
technedigitale\.com$
dia-two-2\.de$
surlumice\.store$
mail\.notistall\.balashov\.su$
mail\.batistase\.hz\.cz$
mail\.lorinsales\.de\.fr$
mail\.jostalles\.azerbaijan\.su$
mail\.batistase\.hz\.cz$
circuitlogix\.com$
a27-10\.smtp-out.us-west-2\.amazonses\.com$
relay01\.cne\.gob\.ve$
mta01\.cne\.gob\.ve$
news1\.worldnews\.hair$
ritechager\.info$
berligpot\.quest$
chwestinstrumentalmusic\.com$
nrgroekle\.site$
classyak\.com$
childswork\.com$
ywgf\.net$
alnweohct\.online$
kitchenfantasy\.com$
kitchenfaucetcenter\.com$
fqmeta\.net$
kitchenespial\.com$
owboyhardware\.com$
comicartcollective\.com$
fesg56wesg\.xyz$
convinceandconvert\.com$
thelargest\.homes$
eamyobai\.cfd$
countryfields\.ca$
urgencypasture\.shop$
detectivecomics\.net$
bell\.net$
beheshtfoundation\.com$
tohochina\.com$
mailer-service\.de$
hunshachang\.com$
likelark\.com$
mlmlh\.xyz$
osdh\.net$
trentbbs\.com$
sharelikecrazy\.com$
@@ -1,16 +1,21 @@
# *** [ Ansible managed: DO NOT EDIT DIRECTLY ] ***
# ---
# Networks blocked by postfwd
#
# Example:
# Gesperrte Client-IP-Adressen/IPv4-Netze; permanente REJECT-Antwort.
# Eine Adresse/ein Netz pro Zeile. IPv4-CIDR-Netze werden unterstuetzt.
# postfwd2 1.35: IPv6 nur als exakte Adresse OHNE /128, keine IPv6-Netze.
# Vorherige Vollfreistellungen haben Vorrang vor dieser Sperrliste.
#
# Nach Aenderungen: postfwd -f /etc/postfix/postfwd.cf -C
# Danach systemctl reload postfwd (setzt mit den gelieferten Optionen Zaehler zurueck).
# Der Dienst heisst postfwd, nicht postfwd2. file:-Listen werden beim Laden gelesen.
# Leerzeilen und Kommentare werden ignoriert. Dateien muessen lesbar sein.
#
# # Example:
#
# # web0.warenform.de
# #83.223.86.76
# #2a01:30:0:505:286:96ff:fe4a:6ee
# #2a01:30:0:13:286:96ff:fe4a:6eee
#
# ---
# Werkzeug
5.135.22.148/30
@@ -1,169 +0,0 @@
# *** [ Ansible managed: DO NOT EDIT DIRECTLY ] ***
# ---
# Networks blocked by postfwd
#
# Example:
#
# # web0.warenform.de
# #83.223.86.76
# #2a01:30:0:505:286:96ff:fe4a:6ee
# #2a01:30:0:13:286:96ff:fe4a:6eee
#
# ---
# give networks to block here
188.214.104.0/24
91.219.236.254
85.254.72.106
103.136.40.0/23
185.53.170.115
# zukunftbeitragen.quest
86.107.103.211
# RU (u.a. mail.geplosser.pl)
62.152.59.0/24
# GB mx.bilingates.gsm.pl
95.168.184.156
# RU (u.a. mx.jobinscenter.mom)
31.28.27.0/24
# RU (u.a. mx.novatechs.gen.tr)
93.189.44.0/22
# RU (u.a. vh126.timeweb.ru)
92.53.96.0/24
# RU (u.a. mail.newslinkes.radio.am)
45.130.151.0/24
# US - OLink Cloud LLC US Cloud ( u.a. pritionch.store)
104.160.19.0/24
# TR (u.a. dosvufpro.store
185.219.135.0/24
# RZ ( u.a. mx.jobinscenter.mom)
31.28.27.0/24
# RU (mx.novatechs.gen.tr)
93.189.44.0/22
# mx.bilingates.gsm.pl
95.168.184.156
# mail.finsky-palace.radio.am
89.163.230.186
# mail.newslinkes.radio.fm
62.3.58.20
# SC ( u.a. undialogy.store)
149.3.170.0/24
# tetontimberlinetrading.com
155.94.219.66
185.43.108.101
# US (u.a.walelaber.shop)
216.250.247.0/24
# IN (u.a. couetsart.xyz)
103.174.86.0/23
# DE ( u.a. smtp15.dia-two-2.de
193.168.252.0/23
# US ( u.a. surlumice.store )
# 192.161.160.0/19
192.161.173.22
# RU
194.87.236.0/22
# SC (u.a. werkzeughandeldirekt.net)
146.19.253.0/24
# Piscataway NJ (u.a. werkzeughandeldirekt.net)
209.182.224.0/22
# LV (u.a. eur-versand.com )
217.199.96.0/19
# viastarco.xyz (eur-versand.com)
163.123.180.214
# RU (u.a lorinsales.de.fr)
185.31.160.0/22
# RU (batistase.hz.cz)
93.189.42.0/23
# RU (notistall.balashov.su)
77.87.212.0/24
# RU (jostalles.azerbaijan.su)
62.173.128.0/19
# RU ( u.a. batistase.hz.cz )
62.76.184.0/21
# US (u.a. premiumofen.com)
172.93.96.0/20
# US (u.a. premiumofen.com)
108.171.192.0/19
# VE ( u.a. cne.gob.ve)
201.130.82.0/23
# classic-british-motorcycles.com
172.67.189.127
104.21.33.94
# (u.a. direktpaket.com)
194.116.228.0/24
# GB (u.a.versand-king.com)
78.129.191.68/28
# US ( u.a.profiverkauf.com)
192.30.240.0/22
# (u.a. profiverkauf.com)
185.221.200.0/22
# US u.a.(liefer-experten.com)
69.12.79.32/27
207.167.64.0/23
# US (u.a. premiumversender.com)
192.161.172.0/23
# LIR (u.a. premiumversender.com)
185.101.92.0/22
# US (u.a. d-logistik.com)
216.144.236.224/28
# GB
146.59.88.240/29
# UA (Ukraine)
193.3.23.0/24
# DE (u.a. lagerexpress.com)
41.216.188.0/24
# US (u.a. echtzeit-video.com>)
104.161.0.0/17
158.51.124.0/22
193.42.38.0/24
# US (u.a. pro-versender.com)
173.254.192.0/18
# US ( u.a. werksvertriebe.com)
104.218.236.0/23
# US ( u.a. notstrom-generatoren.com)
68.69.187.0/24
104.156.156.0/22
# US (u.a direktversender.net)
103.83.37.0/24
103.114.162.0/24
# US (u.a.versender50.com)
204.152.197.0/24
# US (u.a.vs-dienst.com)
45.134.11.0/24
212.83.56.0/24
# US ( u.a. urgencypasture.shop)
194.87.84.0/24
# US ( u.a. dkdirekt.com)
64.188.1.176/28
# CA (Canada) (u.a. bell.net)
209.71.192.0/18
# HU (u.a. beheshtfoundation.com)
83.137.158.0/24
# US (u.a. josephraffael.com / auftrag@v-markt-direkt.com)
64.188.4.0/22
# IR (Iran) brute force on SASL Login
46.148.32.0/20
# US
45.15.128.0/22
# US
103.114.163.0/24
# US
192.154.224.0/21
# US
139.28.234.0/23
# US
213.59.118.0/23
# US cityboxing.com
103.114.160.0/24
104.237.192.0/19
# CZ
176.102.65.0/24
46.36.39.0/24
# US
91.193.19.0/24
# US
103.125.147.0/24
# US
79.141.173.0/24
# LU Luxenburg
107.189.3.105
@@ -1,23 +1,35 @@
# *** [ Ansible managed: DO NOT EDIT DIRECTLY ] ***
# ---
# Block messages exeeds 20 MB for listed recipients
#
# This file is called with '=~'. This means perl regexp is possible
# Empfaenger mit zusaetzlichem 20-MiB-Limit, NUR bei Einzelempfaengern.
# Perl-Regex pro Zeile; z.B.
# ^user@example\.org$
# @example\.org$
# Die Regel greift nur bei recipient_count=1 am END-OF-MESSAGE und bei
# size > 20971520 Bytes. Genau 20 MiB bleiben erlaubt.
# Bei mehreren Empfaengern fehlt recipient dort; dafuer bietet diese Datei
# KEIN verlaessliches Limit. Fuer verbindliche Limits ist eine andere
# Loesung erforderlich. Die bisher leere Liste bleibt leer.
# Historischer Dateiname mit Schreibfehler bleibt aus Kompatibilitaet erhalten.
#
# +------------------+----------------------+----------------+----------------------+
# | SMTP-Empfaenger | Empfaenger gelistet? | Nachricht | Wirkung dieser Regel |
# +------------------+----------------------+----------------+----------------------+
# | Genau einer | Ja | Bis 20 MiB | Keine Ablehnung |
# | Genau einer | Ja | Ueber 20 MiB | REJECT |
# | Genau einer | Nein | Beliebig | Keine Ablehnung |
# | Mehrere | Einer oder mehrere | Beliebig | Keine Ablehnung |
# | | gelistet | | |
# +------------------+----------------------+----------------+----------------------+
#
# 20 MiB = 20.971.520 Bytes, einschliesslich Header und MIME-Kodierung.
#
# Bei mehreren SMTP-Empfaengern liefert Postfix am Nachrichtenende
# keine einzelne Empfaengeradresse fuer den Listenvergleich.
#
# Das globale Postfix-Limit message_size_limit gilt weiterhin.
#
#
# To increase performance use ^ and/or $ in regular expressions
#
# @acieu\.co\.uk$
# ^error@mailfrom\.com$
#
# instedt of
#
# @acieu.co.uk
# error@mailfrom.com
#
#
# Example:
# # Example:
#
# # # annoying spammer domains
# # block all senders of maildomaindomain 'oopen.de'
@@ -27,6 +39,3 @@
# # block sender address
# error@mailfrom.com
# sqek@eike\.se$
#
# ---
@@ -1,134 +1,115 @@
# *** [ Ansible managed: DO NOT EDIT DIRECTLY ] ***
# ---
# Sender addresses blocked by postfwd
#
# This file is called with '=~'. This means perl regexp is possible
# Sperrliste fuer Envelope-Absender (MAIL FROM), NICHT From:-Header.
# Perl-Regex pro Zeile; keine Postfix-pcre:-Tabellen mit Ergebnis-Spalte.
#
# Exakte Adresse: ^user@example\.org$
#
# To increase performance use ^ and/or $ in regular expressions
# Domaene und Subdomains: @([^@]+\.)?example\.org$
#
# @acieu\.co\.uk$
# ^error@mailfrom.com$
# Ablehnung mit REJECT, kein stilles DISCARD. Domain-Grenzen und maskierte
# Punkte vermeiden unbeabsichtigte Treffer auf aehnliche Domainnamen.
#
# instedt of
#
# @acieu.co.uk
# error@mailfrom.com
#
#
# Example:
#
# # # annoying spammer domains
# # block all senders of maildomaindomain 'oopen.de'
# @acieu\.co\.uk$
#
# # annoying spammer addresses
# # block sender address
# error@mailfrom.com
# sqek@eike\.se$
#
# ---
# reported by MBR
paul.graber99@gmail.com
ludwigpestow@gmail.com
^paul\.graber99@gmail\.com$
^ludwigpestow@gmail\.com$
# annoying spammer domains
@acieu\.co\.uk$
@inbox\.ru$
@([^@]+\.)?acieu\.co\.uk$
@([^@]+\.)?inbox\.ru$
# ----
# Werkzeug
katherina-remberg\.de$
@([^@]+\.)?katherina-remberg\.de$
# Mehr Energie für Ihre Schritte
elcoino\.de$
@([^@]+\.)?elcoino\.de$
# Wiederherstellung des Sehvermogens ohne Operation
toonaca\.or\.mg$
@([^@]+\.)?toonaca\.or\.mg$
# info re_zeptfrei ordern
radiotrabajandoparacristoirmp\.com$
@([^@]+\.)?radiotrabajandoparacristoirmp\.com$
# HL Group
group-hire\.com$
@([^@]+\.)?group-hire\.com$
# Erinnerung: Überzahlung entdeckt – Ihre Rückerstattung wartet!
toldfinancialcapital\.com$
@([^@]+\.)?toldfinancialcapital\.com$
# edge.toprains.shop
toprains.shop$
@([^@]+\.)?toprains\.shop$
# Ideal für Apple- und Samsung-Fans
sdeals\.shop$
@([^@]+\.)?sdeals\.shop$
# Spiegel.de
delpieroacademy\.com$
@([^@]+\.)?delpieroacademy\.com$
# Kundensupport - photoTAN
#@laurash.net
# LOTTO-Rabatt
gdwr\.de$
@([^@]+\.)?gdwr\.de$
# info mit ETFs die Millionen knacken?
movingcompanywheaton\.com$
@([^@]+\.)?movingcompanywheaton\.com$
# Specht Offic
officeuf@jxb669\.com$
officeuf@
^officeuf@jxb669\.com$
^officeuf@
# edge.toprains.shop
@edge.toprains.shop$
@([^@]+\.)?edge\.toprains\.shop$
# lichtbringer.shop
lichtbringer\.shop$
@([^@]+\.)?lichtbringer\.shop$
# insights.sternenpfad.shop
insights\.sternenpfad\.shop$
@([^@]+\.)?insights\.sternenpfad\.shop$
# info rezeptfre-i Bestellung
ugms\.org$
@([^@]+\.)?ugms\.org$
# Premium-Werkzeugwagen:
ezhifeng.co$
@([^@]+\.)?ezhifeng\.co$
# zaubermoment.shop
zaubermoment\.shop$
@([^@]+\.)?zaubermoment\.shop$
# Lustexperte
jetztpower\.shop$
@([^@]+\.)?jetztpower\.shop$
# herzenstone.shop
herzenstone\.shop$
@([^@]+\.)?herzenstone\.shop$
# ?? 181.214.99.0/24
imrx4k\.com$
@([^@]+\.)?imrx4k\.com$
# Versand - Wichtige Neiuheit (a2hosted.com)
a2hosted\.com$
@([^@]+\.)?a2hosted\.com$
# Eleganz trifft Funktion: Metall-Kugelschreiber mit Logo
izilian\.com$
@([^@]+\.)?izilian\.com$
# Ein Sprühstoß für die sofortige Erektion!
perfektepower\.shop$
@([^@]+\.)?perfektepower\.shop$
# Home Security / preview.glanzpunkt.shop
glanzpunkt\.shop$
@([^@]+\.)?glanzpunkt\.shop$
# Phishing IHK
rightappearance\.com$
@([^@]+\.)?rightappearance\.com$
# info rezeptf-rei Bestellung
sectiontrading\.com%
@([^@]+\.)?sectiontrading\.com$
# Sofortiger zweisprachiger Sprachübersetzer
delavers\.de$
@([^@]+\.)?delavers\.de$
# ---
# Google Mail Adresse
@laravel.digital
@([^@]+\.)?laravel\.digital$
@@ -1,118 +0,0 @@
# *** [ Ansible managed: DO NOT EDIT DIRECTLY ] ***
# ---
# Sender addresses blocked by postfwd
#
# This file is called with '=~'. This means perl regexp is possible
#
#
# To increase performance use ^ and/or $ in regular expressions
#
# @acieu\.co\.uk$
# ^error@mailfrom.com$
#
# instedt of
#
# @acieu.co.uk
# error@mailfrom.com
#
#
# Example:
#
# # # annoying spammer domains
# # block all senders of maildomaindomain 'oopen.de'
# @acieu\.co\.uk$
#
# # annoying spammer addresses
# # block sender address
# error@mailfrom.com
# sqek@eike\.se$
#
# ---
# reported by MBR
paul.graber99@gmail.com
ludwigpestow@gmail.com
# annoying spammer domains
@acieu\.co\.uk$
@sendelope\.eu$
@growthrecords\.com$
@videosicherheit.biz$
@arbeitsschutzmasken.shop$
@medprodukte.shop$
@geplosser\.pl$
@alfasells\.de$
@news-des-tages\.de$
@handel2022\.com$
@zukunftbeitragen\.quest$
@ip-51-83-242\.eu$
@notreesnolife\.com$
@ilsang\.biz$
vorteilsemail\.de$
@inbox\.ru$
@poeloker\.com$
@jobinscenter\.mom$
@novatechs\.gen\.tr$
@bilingates\.gsm\.pl$
@newslinkes\.radio\.fm$
@finsky-palace\.radio\.am$
@deutsche-ecommerce\.net$
@cpsarg\.com$
@markenhandelonline\.com$
firmen-infos\.com$
@inx1and1\..+$
@ppe-healthcare-europe\.\S+$
@testbedarf\.shop$
@acievents\.\S+$
@dokpotenz\.\S+$
@doktorapo\.\S+$
@team-de-luxe\.\S+$
@klickensiejetzt\.\S+$
@podiumskate\.\S+$
@ppe-healthcare-europe\.\S+$
@direktpaket\.com$
@revzilla\.com$
@christopherhinz\.com$
@versand-king\.com$
@profiverkauf\.com$
@liefer-experten\.com$
@premiumversender\.com$
@longhornvapor\.com$
@d-logistik\.com$
@corvsport\.com$
@echtzeit-video\.com$
@cortlandparkcashmere\.com$
@pro-versender\.com$
@werksvertriebe\.com$
@notstrom-generatoren\.com$
# annoying spammer addresses
^error@mailfrom\.com$
^sqek@eike\.se$
^info@webmeinung\.de$
^info@handel-versand\.com$
^order@direktversender\.net$
versender.*\.com$
vs-dienst\.com$
urgencypasture\.shop$
dkdirekt\.com$
nb\.sympatico\.ca$
beheshtfoundation\.com$
josephraffael\.com$
v-markt-direkt\.com$
mailer-service\.de$
swissad\.biz$
@math-salamanders\.com$
mazdas247\.com$
johnnybugs\.com$
livingoncookies\.com$
joshua24\.com$
cityboxing\.com$
clotheswithoutlimits\.com$
distrowatch\.com$
designerwicker\.com$
sharelikecrazy\.com$
@@ -1,13 +1,10 @@
# *** [ Ansible managed: DO NOT EDIT DIRECTLY ] ***
# ---
# SASL Users blocked by postfwd
#
# Gesperrte SASL-Benutzernamen; permanente REJECT-Antwort.
# Exakter Name pro Zeile, keine Regex. Vorherige Vollfreistellungen haben Vorrang.
#
# Example:
#
# # give SASL usernames to block here
# ckubu@oopen.de
#
# ---
# give SASL usernames to block here
@@ -1,221 +1,229 @@
# *** [ Ansible managed: DO NOT EDIT DIRECTLY ] ***
#======= Definitions ============
# Match messages with an associated SASL username
&&SASL_AUTH {
sasl_username!~^$
}
# Trusted networks
&&TRUSTED_NETS {
client_address==file:/etc/postfix/postfwd.wl-nets
}
# Trusted hostnames
# client_name~=.warenform.de$
&&TRUSTED_HOSTS {
client_name=~file:/etc/postfix/postfwd.wl-hosts
}
# Trusted users
&&TRUSTED_USERS {
sasl_username==file:/etc/postfix/postfwd.wl-user
}
# Trusted senders
&&TRUSTED_SENDERS {
sender=~file:/etc/postfix/postfwd.wl-sender
}
# Blacklist networks
&&BLOCK_NETS {
client_address==file:/etc/postfix/postfwd.bl-nets
}
# Blacklist hostnames
&&BLOCK_HOSTS {
client_name=~file:/etc/postfix/postfwd.bl-hosts
}
# Blacklist users
&&BLOCK_USERS {
sasl_username==file:/etc/postfix/postfwd.bl-user
}
# Blacklist sender adresses
&&BLOCK_SENDER {
# =~
# using '=~' allows also matching entries for domains (i.e. @acieu.co.uk)
sender=~file:/etc/postfix/postfwd.bl-sender
}
# Block messages exceedds size of 20MB
&&BLOCK_CLIENT_NAME_MSG_SIZE_20MB {
protocol_state==END-OF-MESSAGE
recipient=~file:/etc/postfix/postfwd.bl-recipient-exeeds-msg-size-20mb
size=20971520
}
# Inbound emails only
&&INCOMING {
client_address!=127.0.0.1
}
#======= Rule Sets ============
# ---
#
# Processing of the Rule Sets
# Statische Vorlage fuer postfwd 1.35, ohne Jinja-Variablen.
#
# The parser checks the elements of a policy delegation request against the postfwd set
# of rules and, if necessary, triggers the configured action (action=). Similar to a
# classic firewall, a rule is considered true if every element of the set of rules (or
# one from every element list) applies to the comparison. I.e. the following rule:
# POSTFIX-EINBINDUNG
# main.cf: smtpd_end_of_data_restrictions =
# check_policy_service inet:127.0.0.1:10040
# Amavis-Rueckgabeport localhost:10025 in master.cf:
# -o smtpd_end_of_data_restrictions=
# Sonst kann die Wiedereinlieferung mit XFORWARD erneut gezaehlt werden.
# /etc/default/postfwd: ARGS="--summary=600 --cache=0"
#
# client_address=1.1.1.1, 1.1.1.2; client_name==unknown; action=REJECT
# AUSWERTUNG
# Verschiedene Attribute einer Regel: UND. Gleiches Attribut mehrfach: ODER.
# DUNNO beendet diesen postfwd-Aufruf; Postfix setzt eigene Pruefungen fort.
# REJECT lehnt permanent, 450 temporaer ab. rate()/rcpt() laufen unterhalb
# des Limits weiter. jump(ID) springt zur bezeichneten Regel.
# final=yes ist keine Steueranweisung und wird NICHT verwendet.
#
# triggers a REJECT if the
# LIMITS (fuer nicht vollstaendig freigestellte, nicht lokale SMTP-Clients)
#
# Client address is equal (1.1.1.1 OR 1.1.1.2) AND the client name 'unknown'
# +--------------------------------+-----------+-----------+------------------+
# | Limit | Standard | Benutzer | Benutzer nur in |
# | | | 500er- | Empfaenger- |
# | | | Liste | Ausnahmeliste |
# +--------------------------------+-----------+-----------+------------------+
# | Nachrichten / Stunde / Benutzer| 50 | 500 | 50 |
# | Empfaenger / Stunde / Benutzer| 250 | 1000 | 1000 |
# | Empfaenger / Nachricht | 89 | 89 | 89 |
# +--------------------------------+-----------+-----------+------------------+
#
# Zusaetzlich fuer alle oben genannten Benutzer:
#
# Note:
# If an element occurs more than once, an element list is formed:
# +------------------------------------------+----------------------------+
# | Client-IP | Nachrichten / Minute / IP |
# +------------------------------------------+----------------------------+
# | Weder IP noch Hostname in Ausnahmeliste | 50 |
# | IP ODER Hostname in Ausnahmeliste | 100 |
# +------------------------------------------+----------------------------+
#
# The following rule set is equivalent to the above:
# Zusaetzlich fuer nicht authentifizierte Clients:
#
# client_address=1.1.1.1; client_address=1.1.1.2; client_name==unknown; action=REJECT
# +------------------------------------------+----------------------------+
# | client_name = unknown | 5 Nachrichten / 5 Minuten |
# | | je Client-IP |
# +------------------------------------------+----------------------------+
#
# Unauthentifiziert + client_name=unknown: 5 Nachrichten / 300 Sekunden / IP.
# SASL: 50 Nachrichten / 3600 Sekunden / Benutzer; Ausnahme: 500.
# IP: 50 Nachrichten / 60 Sekunden; Ausnahme ueber IP ODER Hostname: 100.
# SASL: maximal 89 Empfaenger pro Nachricht (Ablehnung ab 90).
# SASL: 250 Empfaenger / 3600 Sekunden; Ausnahme: 1000.
# Jeder Benutzer der 500er-Nachrichtenliste bekommt auch die 1000er-
# Empfaengerausnahme. Die separate Empfaengerliste erlaubt nur 1000 statt
# 250 Empfaenger/Stunde, erhoeht aber nicht das Nachrichtenlimit.
# Benutzer der 500er-Nachrichtenliste sind vom IP-Minutenlimit (50 bzw.
# 100 Nachrichten / 60 Sekunden) ausgenommen: sie versenden meist
# automatisiert in Schueben und wuerden sonst trotz 500er-Ausnahme am
# Minutenlimit haengen bleiben. Fuer alle anderen bleibt das Minutenlimit
# aktiv. Die Empfaengerzahl pro Nachricht (max. 89) gilt fuer alle.
#
# triggers a REJECT if (as above) the
# ZAEHLWEISE
# rate() zaehlt END-OF-MESSAGE-Anfragen, rcpt() addiert recipient_count.
# Es sind Versandversuche, keine bestaetigten Zustellungen. Wiederholungen
# und spaeter abgelehnte Versuche koennen mitgezaehlt werden. Empfaenger
# werden aufsummiert, nicht dedupliziert. Kein gleitendes Kalenderstunden-
# budget: postfwd verwaltet befristete Zaehler ab ihrer Anlage.
# Gemeinsame IPs teilen sich das Minutenlimit, auch bei mehreren Benutzern.
#
# Client address (1.1.1.1 OR 1.1.1.2) AND the client name 'unknown'
#
# ---
# DATEIEN
# file: liest Listen beim Laden der Konfiguration. Danach neu laden/starten.
# Fuer IPs/Netze: client_address==file:... (CIDR-Vergleich).
# Fuer SASL: sasl_username==file:... (exakte Namen, keine Regex).
# Fuer Namen/Adressen: =~file:... (Perl-Regex, keine Postfix-pcre:-Tabelle).
# Alle referenzierten Dateien muessen fuer den Benutzer postfw lesbar sein.
# Keine Ausnahmeliste mit &&SASL_AUTH in derselben Regel kombinieren:
# das waere eine ODER-Verknuepfung auf sasl_username!
# Whitelists
# Nur diese Phase verwenden; keine Zaehleranlage in anderen SMTP-Phasen.
id=CHECK_PHASE
protocol_state!=END-OF-MESSAGE
action=DUNNO
# Whitelist trusted networks
# Lokaler SMTP-Verkehr wird ausgenommen, IPv4-Loopback und IPv6-Loopback.
# Dies ersetzt NICHT die Abschaltung am Amavis-Rueckgabeport: XFORWARD
# kann dort die urspruengliche externe Clientadresse wiederherstellen.
id=SKIP_LOOPBACK
client_address==127.0.0.0/8, ::1
action=DUNNO
# 1. VOLLSTAENDIGE AUSNAHMEN
# Bewusst vor den Sperrlisten wie in der bisherigen Konfiguration.
# Diese Listen umgehen ALLE folgenden postfwd-Regeln, auch Blacklists.
# Fuer nur hoehere Versandlimits ausschliesslich die high-rate-Listen nutzen.
id=WHL_NETS
&&TRUSTED_NETS
action=DUNNO
client_address==file:/etc/postfix/postfwd.wl-nets
action=DUNNO
# Whitelist trusted hostnames
id=WHL_HOSTS
&&TRUSTED_HOSTS
action=DUNNO
client_name=~file:/etc/postfix/postfwd.wl-hosts
action=DUNNO
# Whitelist sasl users
id=WHL_USERS
&&TRUSTED_USERS
action=DUNNO
sasl_username==file:/etc/postfix/postfwd.wl-user
action=DUNNO
# Whitelist senders
# Achtung: Envelope-Absender ist keine authentifizierte Identitaet.
# Bestehende Freistellung bleibt erhalten; kein SPF-/DKIM-Nachweis hier.
id=WHL_SENDERS
&&INCOMING
&&TRUSTED_SENDERS
action=DUNNO
sender=~file:/etc/postfix/postfwd.wl-sender
action=DUNNO
# Blacklists
# Block networks
# 2. SPERRLISTEN: permanente Ablehnung, kein stilles DISCARD.
id=BL_NETS
&&BLOCK_NETS
action=REJECT Network Address $$client_address blocked by Mailserver admins. Error: BL_NETS
client_address==file:/etc/postfix/postfwd.bl-nets
action=REJECT Network $$client_address blocked by mailserver admins. Error:BL_NETS
# Block hostname
id=BL_HOSTS
&&BLOCK_HOSTS
action=REJECT $$client_name blocked by Mailserver admins. Error: BL_HOSTS
client_name=~file:/etc/postfix/postfwd.bl-hosts
action=REJECT Client $$client_name blocked by mailserver admins. Error:BL_HOSTS
# Block users
id=BL_USERS
&&BLOCK_USERS
action=REJECT User is blocked by Mailserver admins. Error: BL_USERS
sasl_username==file:/etc/postfix/postfwd.bl-user
action=REJECT User blocked by mailserver admins. Error:BL_USERS
# Blacklist sender
#
# Claim successful delivery and silently discard the message.
#
id=BL_SENDER
&&BLOCK_SENDER
#action=DISCARD
action=REJECT Sender address is blocked by Mailserver admins. Error: BL_SENDER
sender=~file:/etc/postfix/postfwd.bl-sender
action=REJECT Sender blocked by mailserver admins. Error:BL_SENDER
# Block messages for given recipients exceeds size of 20 MB
# 3. EMPFAENGERBEZOGENE GROESSE, NUR BEI GENAU EINEM EMPFAENGER
# 20 MiB = 20971520 Bytes; mit > bleibt genau dieser Wert erlaubt.
# Postfix liefert recipient am Nachrichtenende nur bei einem Empfaenger.
# Bei mehreren Empfaengern kann diese Regel KEIN Limit durchsetzen.
# Die bisher leere Empfaengerliste bleibt erhalten; solange sie leer ist,
# ist diese Zusatzpruefung inaktiv. Global gilt weiter message_size_limit.
# Fuer verbindliche empfaengerbezogene Limits auch bei Mehrfachadressierung
# ist eine andere Loesung, z.B. ein geeigneter Milter, erforderlich.
id=BLOCK_MSG_SIZE_20MB
&&BLOCK_CLIENT_NAME_MSG_SIZE_20MB
action=REJECT message exceeds the size of 20 MB ($$size). Error: BLOCK_MSG_SIZE_20MB
recipient_count==1
recipient=~file:/etc/postfix/postfwd.bl-recipient-exeeds-msg-size-20mb
size>20971520
action=REJECT Message exceeds 20 MiB ($$size bytes). Error:BLOCK_MSG_SIZE_20MB
# Rate Limits
# Throttle unknown clients to 5 recipients per 5 minutes:
id=RATE_UNKNOWN_CLIENT_ADDR
sasl_username =~ /^$/
client_name==unknown
action=rate(client_address/5/300/450 4.7.1 only 5 recipients per 5 minutes allowed)
# Ausnahme vom 50/Minute-Limit: IPs aus der Whitelist-Datei
# duerfen bis zu 100 Nachrichten/Minute senden. 'final=yes'
# sorgt dafuer, dass fuer diese IPs die nachfolgende
# RATE_CLIENT_ADDR-Regel NICHT mehr zusaetzlich ausgewertet wird.
id=HIGH_RATE_CLIENT_ADDR
&&INCOMING
client_address=cidr:/etc/postfix/postfwd.high_rate_ip
action=rate($$client_address/100/60/421 421 4.7.0 Too many connections (150/m) from $$client_address)
final=yes
# Ausnahme vom 50/Minute-Limit auf Basis des Client-Hostnamens
# (Reverse-DNS/PTR). 'final=yes' verhindert die zusaetzliche
# Auswertung der nachfolgenden RATE_CLIENT_ADDR-Regel.
id=HIGH_RATE_CLIENT_NAME
&&INCOMING
client_name=pcre:/etc/postfix/postfwd.high_rate_hostname
action=rate($$client_address/100/60/421 421 4.7.0 Too many connections (150/m) from $$client_address ($$client_name))
final=yes
# Block clients (ip-addresses) sending more than 50 messages per minute exceeded. Error:RATE_CLIENT)
id=RATE_CLIENT_ADDR
&&INCOMING
action=rate($$client_address/50/60/421 421 4.7.0 Too many connections (50/m) from $$client_address)
# Block messages with more than 50 recipients
# Permanente Empfaengerzahl-Pruefung vor die Rate-Zaehler stellen.
# Das bisher wirksame Limit bleibt erhalten: 89 erlaubt, ab 90 ablehnen.
id=BLOCK_MSG_RCPT
&&INCOMING
&&SASL_AUTH
recipient_count=90
action=REJECT Too many recipients, please reduce to less than 90 or consider using a mailing list. Error: BLOCK_MSG_RCPT
sasl_username!~^$
recipient_count=>90
action=REJECT Too many recipients, maximum is 89 per message. Error:BLOCK_MSG_RCPT
# Higher rate limit for users in exception list (limit: 500 messages/hour)
id=RATE_MSG_EXCEPTION
&&INCOMING
&&SASL_AUTH
# 4. UNBEKANNTE, UNAUTHENTIFIZIERTE CLIENTS
# 5 Nachrichten, NICHT 5 Empfaenger oder 5 TCP-Verbindungen.
id=RATE_UNKNOWN_CLIENT_ADDR
sasl_username=~^$
client_name==unknown
action=rate(client_address/5/300/450 4.7.1 Only 5 messages per 5 minutes allowed. Error:RATE_UNKNOWN_CLIENT_ADDR)
# 5. NACHRICHTEN PRO STUNDE UND SASL-BENUTZER
# Auswahl VOR dem Zaehlen. Die Ausnahme springt an der 50er-Regel vorbei.
# Unterhalb 500 wird nach RATE_MSG_EXCEPTION direkt mit der Empfaenger-
# summe (Abschnitt 7) fortgesetzt; die IP-Minutenlimits entfallen bewusst.
id=SELECT_MSG_EXCEPTION
sasl_username==file:/etc/postfix/postfwd.high-rate-number-messages
action=rate($$sasl_username/500/3600/450 4.7.1 Number messages per hour exceeded. Error:RATE_MSG_EXCEPTION)
final=yes
action=jump(RATE_MSG_EXCEPTION)
# Block users sending more than 50 messages/hour
id=RATE_MSG
&&INCOMING
&&SASL_AUTH
action=rate($$sasl_username/50/3600/450 4.7.1 Number messages per hour exceeded. Error:RATE_MSG)
sasl_username!~^$
action=rate(sasl_username/50/3600/450 4.7.1 Maximum 50 messages per hour exceeded. Error:RATE_MSG)
# Higher recipient rate limit for specific users from file (limit: 1000 recipients total/hour)
id=RATE_RCPT_HIGH
&&INCOMING
&&SASL_AUTH
sasl_username==file:/etc/postfix/postfwd.rate-msg-exceptions
action=rcpt($$sasl_username/1000/3600/450 4.7.1 Number recipients per hour exceeded. Error:RATE_RCPT_HIGH)
final=yes
# Standardpfad muss die nachfolgende 500er-Regel ueberspringen.
id=AFTER_RATE_MSG
action=jump(SELECT_HIGH_RATE_IP)
id=RATE_MSG_EXCEPTION
sasl_username!~^$
action=rate(sasl_username/500/3600/450 4.7.1 Maximum 500 messages per hour exceeded. Error:RATE_MSG_EXCEPTION)
# Nach erfolgreicher 500er-Pruefung die IP-Minutenlimits (Abschnitt 6)
# bewusst ueberspringen: automatisierte Versender wuerden sonst am
# Minutenlimit scheitern. Empfaengerlimit pro Stunde weiterhin pruefen.
id=AFTER_RATE_MSG_EXCEPTION
action=jump(SELECT_RCPT_EXCEPTION_MSG)
# 6. NACHRICHTEN PRO MINUTE UND IP
# IP oder Hostname waehlen denselben 100er-Zaehler. Auch bei zwei Treffern
# nur eine Zaehlung. Hostname ist der von Postfix gelieferte client_name;
# nicht identisch mit einem ungeprueften HELO oder bloss irgendeinem PTR.
id=SELECT_HIGH_RATE_IP
client_address==file:/etc/postfix/postfwd.high_rate_ip
action=jump(HIGH_RATE_CLIENT_ADDR)
id=SELECT_HIGH_RATE_HOST
client_name=~file:/etc/postfix/postfwd.high_rate_hostname
action=jump(HIGH_RATE_CLIENT_ADDR)
id=RATE_CLIENT_ADDR
action=rate(client_address/50/60/450 4.7.1 Maximum 50 messages per minute per IP exceeded. Error:RATE_CLIENT_ADDR)
id=AFTER_RATE_CLIENT_ADDR
action=jump(SELECT_RCPT_EXCEPTION_MSG)
id=HIGH_RATE_CLIENT_ADDR
action=rate(client_address/100/60/450 4.7.1 Maximum 100 messages per minute per IP exceeded. Error:HIGH_RATE_CLIENT_ADDR)
# 7. EMPFAENGERSUMME PRO STUNDE UND SASL-BENUTZER
# 500er-Nachrichtenausnahme erhaelt automatisch auch 1000 Empfaenger/Stunde.
# So scheitert sie nicht nach spaetestens 250 Ein-Empfaenger-Nachrichten.
# Die zweite Liste kann weitere Benutzer NUR fuer die Empfaengersumme nennen.
id=SELECT_RCPT_EXCEPTION_MSG
sasl_username==file:/etc/postfix/postfwd.high-rate-number-messages
action=jump(RATE_RCPT_HIGH)
id=SELECT_RCPT_EXCEPTION_LIST
sasl_username==file:/etc/postfix/postfwd.high-rate-number-recipients
action=jump(RATE_RCPT_HIGH)
# Block users sending more than 250 recipients total/hour
id=RATE_RCPT
&&INCOMING
&&SASL_AUTH
action=rcpt($$sasl_username/250/3600/450 4.7.1 Number recipients per hour exceeded. Error:RATE_RCPT)
sasl_username!~^$
action=rcpt(sasl_username/250/3600/450 4.7.1 Maximum 250 recipients per hour exceeded. Error:RATE_RCPT)
id=AFTER_RATE_RCPT
action=jump(END)
id=RATE_RCPT_HIGH
sasl_username!~^$
action=rcpt(sasl_username/1000/3600/450 4.7.1 Maximum 1000 recipients per hour exceeded. Error:RATE_RCPT_HIGH)
id=END
action=DUNNO
@@ -1,18 +1,18 @@
# *** [ Ansible managed: DO NOT EDIT DIRECTLY ] ***
# ---
# SASL Users are allowed to send up to 500 messages per hour
#
# This file is called with '=='. This means perl regexp is NOT possible
#
#
# example:
#
# # give sasl usernames here
# #
# ckubu@oopen.de
#
# ---
# give sasl usernames here
#
# SASL-Benutzer mit bis zu 500 Nachrichten UND 1000 Empfaengern pro Stunde.
#
# Exakter sasl_username pro Zeile, keine Regex. Leere Datei = keine Ausnahme.
# ===========================================================================
#
# interne Bemerkung
# Die Standardlimits 50 Nachrichten und 250 Empfaenger werden gezielt
# uebersprungen. IP-Minutenlimit und maximal 89 Empfaenger/Nachricht bleiben.
# Eine Nachricht mit 10 Empfaengern zaehlt als 1 Nachricht und 10 Empfaenger.
# Dies ist keine vollstaendige Freistellung; Blacklists gelten weiterhin.
#
# Example:
#
# buchsys@sprachenatelier-berlin.de
# todo@warenform.de
@@ -1,17 +1,19 @@
# *** [ Ansible managed: DO NOT EDIT DIRECTLY ] ***
# ---
# SASL Users are allowed to send up to 1000 recipients per hour
#
# This file is called with '=='. This means perl regexp is NOT possible
# Zusaetzliche SASL-Benutzer mit bis zu 1000 Empfaengern pro Stunde.
#
# example:
# Exakter sasl_username pro Zeile, keine Regex. Das Nachrichtenlimit bleibt 50,
# =============================================================================
#
# sofern der Benutzer nicht auch in postfwd.high-rate-number-messages steht.
# Benutzer der Nachrichtenliste haben die 1000er-Ausnahme bereits automatisch
# und muessen hier NICHT doppelt gepflegt werden. Leer ist zulaessig.
# Es werden Empfaengervorkommen gezaehlt, keine eindeutigen Adressen.
#
# Example:
#
# # give sasl usernames here
# #
# ckubu@oopen.de
#
# ---
# give sasl usernames here
@@ -4,19 +4,11 @@
# Whitelist fuer erhoehtes Rate-Limit (100 Nachrichten/Minute)
# auf Basis des Client-Hostnamens (Reverse-DNS/PTR-Eintrag),
# statt der Standard-Grenze von 50/Minute aus RATE_CLIENT_ADDR
# das heisst:
#
# Format: PCRE-regulaerer Ausdruck pro Zeile (kein Wildcard/Glob!),
# postfwd2 vergleicht jede Zeile gegen den von Postfix aufgeloesten
# 'client_name'-Wert (PTR-Eintrag der Client-IP).
# Leerzeilen und Zeilen, die mit '#' beginnen, werden ignoriert.
#
# Beispiele:
# /^buchsys3\.buchsys\.de$/ -> nur dieser eine Hostname
# /\.buchsys\.de$/ -> alle Subdomains von buchsys.de
# (z.B. buchsys3.buchsys.de,
# mail.buchsys.de, etc.)
#
# WICHTIG:
# - Jeder hier gematchte Hostname umgeht das strengere 50er-Limit
# und erlaubt bis zu 100 Nachrichten/Minute. Bitte nur Muster
# eintragen, denen du tatsaechlich vertraust.
# - Diese Regel greift NUR, wenn Reverse-DNS fuer die jeweilige
# IP sauber konfiguriert ist und der PTR-Eintrag auf das Muster
# passt. Pruefe den tatsaechlichen 'client_name'-Wert vorher in
@@ -24,15 +16,30 @@
# - Ein zu breites Muster (z.B. /buchsys\.de/ ohne Anker) kann auch
# unerwuenschte Hosts matchen (z.B. "evil-buchsys.de.attacker.com").
# Deshalb immer mit '^' und '$' bzw. '\.' vor der Domain arbeiten.
# - Jeder hier gematchte Hostname umgeht das strengere 50er-Limit
# und erlaubt bis zu 100 Nachrichten/Minute. Bitte nur Muster
# eintragen, denen du tatsaechlich vertraust.
# - Nach Aenderungen an dieser Datei postfwd2 neu laden/starten:
# systemctl restart postfwd2
# - Diese Datei wird per 'pcre:' Lookup direkt in postfwd.cf
# referenziert, siehe Regel 'HIGH_RATE_CLIENT_NAME'.
# - Die IP-basierte Regel (HIGH_RATE_CLIENT_ADDR) ist zuverlaessiger
# und sollte die primaere Loesung sein; diese Hostname-Regel
# eignet sich vor allem als Ergaenzung bei wechselnden IPs.
#
# Format: PCRE-regulaerer Ausdruck pro Zeile (kein Wildcard/Glob!),
#
# postfwd vergleicht jede Zeile gegen den von Postfix aufgeloesten
# 'client_name'-Wert (PTR-Eintrag der Client-IP).
# Leerzeilen und Zeilen, die mit '#' beginnen, werden ignoriert.
#
# Example
#
# ^buchsys3\.buchsys\.de$
#
# # buchsys.de
# # www.buchsys.de
# # mail.buchsys.com
# # buchsys.org
# #www.buchsys.co.uk
# (^|\.)buchsys\.[a-z0-9.-]+$
#
# ============================================================
#^buchsys3\.buchsys\.de$
#(^|\.)buchsys\.[a-z0-9.-]+$
@@ -3,6 +3,13 @@
# ============================================================
# Whitelist fuer erhoehtes Rate-Limit (100 Nachrichten/Minute)
# statt der Standard-Grenze von 50/Minute aus RATE_CLIENT_ADDR
# das heisst:
#
# - Jede hier eingetragene IP umgeht das strengere 50er-Limit
# und darf bis zu 100 Nachrichten/Minute senden. Bitte nur
# IPs eintragen, denen du tatsaechlich vertraust (kompromittierte
# oder falsch eingetragene Systeme koennten sonst zum offenen
# Spam-Verteiler werden).
#
# Hier werden IP-Adressen bzw. CIDR-Netze von vertrauenswuerdigen
# Absende-Systemen eingetragen, die routinemaessig hoehere
@@ -15,18 +22,9 @@
# IPv4 und IPv6 werden unterstuetzt.
#
# Beispiele:
# 116.202.85.120
# 203.0.113.0/24
#
# WICHTIG:
# - Jede hier eingetragene IP umgeht das strengere 50er-Limit
# und darf bis zu 100 Nachrichten/Minute senden. Bitte nur
# IPs eintragen, denen du tatsaechlich vertraust (kompromittierte
# oder falsch eingetragene Systeme koennten sonst zum offenen
# Spam-Verteiler werden).
# - Nach Aenderungen an dieser Datei postfwd2 neu laden/starten,
# damit die Aenderung sicher greift:
# systemctl restart postfwd2
# - Diese Datei wird per 'cidr:' Lookup direkt in postfwd.cf
# referenziert, siehe Regel 'HIGH_RATE_CLIENT_ADDR'.
# 116.202.85.120
# 203.0.113.0/24
#
# ============================================================
@@ -1,22 +1,16 @@
# *** [ Ansible managed: DO NOT EDIT DIRECTLY ] ***
#
# Vollstaendige Freistellung anhand des von Postfix gelieferten client_name.
#
# Perl-Regex pro Zeile;
#
# Beispiel:
# ^mail\.example\.org$
#
# # Domaene einschliesslich Subdomains:
# (^|\.)example\.org$
#
# Umgeht auch Blacklists und alle Versandlimits. Fuer nur 100 Nachrichten pro
# Minute die Datei postfwd.high_rate_hostname verwenden.
# ---
# Trusted hosts whitelisted by postfwd
#
# This file is called with '=~'. This means perl regexp is possible
#
#
# To increase performance use ^ and/or $ in regular expressions
#
# Example:
#
# # all hosts of domain 'oopen.de'
# \.oopen\.de$
#
# # host a.mx.oopen.de
# ^a\.mx\.oopen\.de$
#
# ---
# give truested hostnames here
@@ -1,18 +1,23 @@
# *** [ Ansible managed: DO NOT EDIT DIRECTLY ] ***
# ---
# Trusted networks whitelisted by postfwd
#
# Example:
# Vollstaendige Freistellung fuer Client-IP-Adressen/IPv4-Netze.
# Umgeht auch die nachfolgenden Blacklists und alle Limits; nur bewusst nutzen.
# IPv4: einzelne Adresse oder CIDR-Netz. postfwd2 1.35 verarbeitet IPv6 hier
# nur als exakten Adresstext OHNE /128, nicht als IPv6-CIDR-Netz.
#
# Exakte IPv6-Schreibweise wie client_address von Postfix verwenden.
# Eine Adresse/ein Netz pro Zeile.
#
# Beispiele:
#
# 192.0.2.10
# 192.0.2.0/24
#
# # b.mx.oopen.de
# 2a01:4f8:271:1266::73
# 2a01:4f8:271:1266::/64
#
# # web0.warenform.de
# #83.223.86.76
# #2a01:30:0:505:286:96ff:fe4a:6ee
# #2a01:30:0:13:286:96ff:fe4a:6eee
#
# ---
# give truested networrk adresses here
# d.mx.oopen.de (listen server)
95.217.204.227
2a01:4f9:4a:47e5::227
@@ -1,22 +1,18 @@
# *** [ Ansible managed: DO NOT EDIT DIRECTLY ] ***
# ---
# Trusted senders whitelisted by postfwd
#
# This file is called with '=~'. This means perl regexp is possible
# Vollstaendige Freistellung anhand des Envelope-Absenders, NICHT From:-Header.
#
#
# To increase performance use ^ and/or $ in regular expressions
# Perl-Regex pro Zeile
#
# Example:
#
# # all senders of maildomaindomain 'oopen.de'
# @oopen\.de$
# ^noreply@example\.org$
#
# # sender address ckubu@oopen.de
# ^ckubu@oopen\.de$
# ACHTUNG:
# Absender ist nachahmbar; diese Liste prueft weder SPF noch DKIM noch
# SASL-Identitaet. Treffer umgehen nachfolgende postfwd-Sperren und Limits.
# Der vorhandene Eintrag wurde als bisherige Ausnahme beibehalten.
#
# ---
# give trusted sender addresses here
^noreply@login\.ubuntu\.com$
@@ -1,15 +1,18 @@
# *** [ Ansible managed: DO NOT EDIT DIRECTLY ] ***
# ---
# SASL Users whitelisted by postfwd
#
# example:
# Vollstaendige Freistellung fuer SASL-Benutzernamen.
#
# Exakter Name pro Zeile, keine Regex; wie von Postfix als sasl_username geliefert.
#
# Umgeht auch Blacklists und alle Limits. Fuer nur hoehere Limits stattdessen
# postfwd.high-rate-number-messages bzw. -recipients verwenden.
#
# Example:
#
# # give trusted sasl usernames here
# ckubu@oopen.de
# vertrieb@akweb.de
#
# ---
# give trusted sasl usernames here
spenden@cadus.org
ebru.altintop@cadus.org
@@ -16,4 +16,5 @@
# give sasl usernames here
buchsys@sprachenatelier-berlin.de
todo@warenform.de
@@ -4,19 +4,11 @@
# Whitelist fuer erhoehtes Rate-Limit (100 Nachrichten/Minute)
# auf Basis des Client-Hostnamens (Reverse-DNS/PTR-Eintrag),
# statt der Standard-Grenze von 50/Minute aus RATE_CLIENT_ADDR
# das heisst:
#
# Format: PCRE-regulaerer Ausdruck pro Zeile (kein Wildcard/Glob!),
# postfwd2 vergleicht jede Zeile gegen den von Postfix aufgeloesten
# 'client_name'-Wert (PTR-Eintrag der Client-IP).
# Leerzeilen und Zeilen, die mit '#' beginnen, werden ignoriert.
#
# Beispiele:
# /^buchsys3\.buchsys\.de$/ -> nur dieser eine Hostname
# /\.buchsys\.de$/ -> alle Subdomains von buchsys.de
# (z.B. buchsys3.buchsys.de,
# mail.buchsys.de, etc.)
#
# WICHTIG:
# - Jeder hier gematchte Hostname umgeht das strengere 50er-Limit
# und erlaubt bis zu 100 Nachrichten/Minute. Bitte nur Muster
# eintragen, denen du tatsaechlich vertraust.
# - Diese Regel greift NUR, wenn Reverse-DNS fuer die jeweilige
# IP sauber konfiguriert ist und der PTR-Eintrag auf das Muster
# passt. Pruefe den tatsaechlichen 'client_name'-Wert vorher in
@@ -24,17 +16,30 @@
# - Ein zu breites Muster (z.B. /buchsys\.de/ ohne Anker) kann auch
# unerwuenschte Hosts matchen (z.B. "evil-buchsys.de.attacker.com").
# Deshalb immer mit '^' und '$' bzw. '\.' vor der Domain arbeiten.
# - Jeder hier gematchte Hostname umgeht das strengere 50er-Limit
# und erlaubt bis zu 100 Nachrichten/Minute. Bitte nur Muster
# eintragen, denen du tatsaechlich vertraust.
# - Nach Aenderungen an dieser Datei postfwd2 neu laden/starten:
# systemctl restart postfwd2
# - Diese Datei wird per 'pcre:' Lookup direkt in postfwd.cf
# referenziert, siehe Regel 'HIGH_RATE_CLIENT_NAME'.
# - Die IP-basierte Regel (HIGH_RATE_CLIENT_ADDR) ist zuverlaessiger
# und sollte die primaere Loesung sein; diese Hostname-Regel
# eignet sich vor allem als Ergaenzung bei wechselnden IPs.
#
# Format: PCRE-regulaerer Ausdruck pro Zeile (kein Wildcard/Glob!),
#
# postfwd vergleicht jede Zeile gegen den von Postfix aufgeloesten
# 'client_name'-Wert (PTR-Eintrag der Client-IP).
# Leerzeilen und Zeilen, die mit '#' beginnen, werden ignoriert.
#
# Example
#
# ^buchsys3\.buchsys\.de$
#
# # buchsys.de
# # www.buchsys.de
# # mail.buchsys.com
# # buchsys.org
# #www.buchsys.co.uk
# (^|\.)buchsys\.[a-z0-9.-]+$
#
# ============================================================
/^buchsys3\.buchsys\.de$/
/^www\.buchsys\.de$/
^buchsys3\.buchsys\.de$
(^|\.)buchsys\.[a-z0-9.-]+$
@@ -3,6 +3,13 @@
# ============================================================
# Whitelist fuer erhoehtes Rate-Limit (100 Nachrichten/Minute)
# statt der Standard-Grenze von 50/Minute aus RATE_CLIENT_ADDR
# das heisst:
#
# - Jede hier eingetragene IP umgeht das strengere 50er-Limit
# und darf bis zu 100 Nachrichten/Minute senden. Bitte nur
# IPs eintragen, denen du tatsaechlich vertraust (kompromittierte
# oder falsch eingetragene Systeme koennten sonst zum offenen
# Spam-Verteiler werden).
#
# Hier werden IP-Adressen bzw. CIDR-Netze von vertrauenswuerdigen
# Absende-Systemen eingetragen, die routinemaessig hoehere
@@ -15,20 +22,10 @@
# IPv4 und IPv6 werden unterstuetzt.
#
# Beispiele:
# 116.202.85.120
# 203.0.113.0/24
#
# WICHTIG:
# - Jede hier eingetragene IP umgeht das strengere 50er-Limit
# und darf bis zu 100 Nachrichten/Minute senden. Bitte nur
# IPs eintragen, denen du tatsaechlich vertraust (kompromittierte
# oder falsch eingetragene Systeme koennten sonst zum offenen
# Spam-Verteiler werden).
# - Nach Aenderungen an dieser Datei postfwd2 neu laden/starten,
# damit die Aenderung sicher greift:
# systemctl restart postfwd2
# - Diese Datei wird per 'cidr:' Lookup direkt in postfwd.cf
# referenziert, siehe Regel 'HIGH_RATE_CLIENT_ADDR'.
# 116.202.85.120
# 203.0.113.0/24
#
# ============================================================
# www.buchsys.de
@@ -1,22 +0,0 @@
# *** [ Ansible managed: DO NOT EDIT DIRECTLY ] ***
# ---
# Trusted hosts whitelisted by postfwd
#
# This file is called with '=~'. This means perl regexp is possible
#
#
# To increase performance use ^ and/or $ in regular expressions
#
# Example:
#
# # all hosts of domain 'oopen.de'
# \.oopen\.de$
#
# # host a.mx.oopen.de
# ^a\.mx\.oopen\.de$
#
# ---
# give truested hostnames here
@@ -1,18 +1,27 @@
# *** [ Ansible managed: DO NOT EDIT DIRECTLY ] ***
# ---
# Trusted networks whitelisted by postfwd
#
# Example:
# Vollstaendige Freistellung fuer Client-IP-Adressen/IPv4-Netze.
# Umgeht auch die nachfolgenden Blacklists und alle Limits; nur bewusst nutzen.
# IPv4: einzelne Adresse oder CIDR-Netz. postfwd2 1.35 verarbeitet IPv6 hier
# nur als exakten Adresstext OHNE /128, nicht als IPv6-CIDR-Netz.
#
# Exakte IPv6-Schreibweise wie client_address von Postfix verwenden.
# Eine Adresse/ein Netz pro Zeile.
#
# Beispiele:
#
# 192.0.2.10
# 192.0.2.0/24
#
# # b.mx.oopen.de
# 2a01:4f8:271:1266::73
# 2a01:4f8:271:1266::/64
#
# # web0.warenform.de
# #83.223.86.76
# #2a01:30:0:505:286:96ff:fe4a:6ee
# #2a01:30:0:13:286:96ff:fe4a:6eee
#
# ---
# give truested networrk adresses here
# d.mx.oopen.de (listen server)
95.217.204.227
2a01:4f9:4a:47e5::227
# b.mx.oopen.de
162.55.82.73/32
2a01:4f8:271:1266::73
@@ -1,23 +1,18 @@
# *** [ Ansible managed: DO NOT EDIT DIRECTLY ] ***
# ---
# Trusted senders whitelisted by postfwd
#
# This file is called with '=~'. This means perl regexp is possible
# Vollstaendige Freistellung anhand des Envelope-Absenders, NICHT From:-Header.
#
#
# To increase performance use ^ and/or $ in regular expressions
# Perl-Regex pro Zeile
#
# Example:
#
# # all senders of maildomaindomain 'oopen.de'
# @oopen\.de$
# ^noreply@example\.org$
#
# # sender address ckubu@oopen.de
# ^ckubu@oopen\.de$
# ACHTUNG:
# Absender ist nachahmbar; diese Liste prueft weder SPF noch DKIM noch
# SASL-Identitaet. Treffer umgehen nachfolgende postfwd-Sperren und Limits.
# Der vorhandene Eintrag wurde als bisherige Ausnahme beibehalten.
#
# ---
# give trusted sender addresses here
^noreply@login\.ubuntu\.com$
@@ -1,14 +0,0 @@
# *** [ Ansible managed: DO NOT EDIT DIRECTLY ] ***
# ---
# SASL Users whitelisted by postfwd
#
# example:
#
# # give trusted sasl usernames here
# ckubu@oopen.de
# vertrieb@akweb.de
#
# ---
# give trusted sasl usernames here
@@ -90,4 +90,13 @@ back {{ item }}
{% endfor %}
{% endif %}
#chris ALL=(ALL) NOPASSWD: ALL
# Group privilege specification
{%- if (sudoers_file_group_privileges is defined and sudoers_file_group_privileges) %}
{% for item in sudoers_file_group_privileges | default([]) %}
{{ item.name }} {{ item.entry }}
{% endfor %}
{% endif %}