[Postfixbuch-users] SPAM Lover

Andreas Delleske delleske at vauban.de
Do Sep 6 17:20:18 CEST 2007


Hallo Uwe,

> Schau dir mal fail2ban an

OK, danke..

> Dann poste mal deine damit man schauen kann an welcher Ecke evtl. noch gefeilt werden
> kann.

Gerne (Debian sarge postfix-mysql):

(Ich habe keinen policy-daemon und weder spamassassin noch amavis.

Ich fahre die Politik daß ich entweder annehme und dann auch zustelle
oder schon während der Einlieferung abbrechen (was mit header_checks
und body_checks ganz gut get!). So kann ich dem Kunden sagen ich kann
nicht schuld sein wenn eine Mail "verschwunden" ist. Den Fall daß eine
Mail erst angenommen wird und dann gelöscht kann es nicht geben. So
greife ich auch nicht (oder kaum) in den Grundgesetzartikel 10
Postgeheimnis ein (!!!)


zwei:~# cat /etc/postfix/main.cf
# Installationsparameter:
command_directory = /usr/sbin
daemon_directory = /usr/lib/postfix
program_directory = /usr/lib/postfix

# Meldung
smtpd_banner = **** - Mailserver
setgid_group = postdrop
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

# Mailserver-Domain und Namen
myhostname = zwei.meinedomain.net
mydomain = meinedomain.net
myorigin = /etc/mailname
mydestination = $myhostname, $mydomain, $transport_maps
relayhost =

# Zur ungeprüften Annahme von localhost:
mynetworks = 127.0.0.0/8

# Benutzer umgezogen:
relocated_maps = mysql:/etc/postfix/mysql-relocated.cf
# Absender umschreiben:
sender_canonical_maps = mysql:/etc/postfix/mysql-canonical.cf
# Enthaelt die Domains, alles wird "virtual" verteilt:
transport_maps = mysql:/etc/postfix/mysql-transport.cf
# Enthält sämtliche Aliasse und Mailboxnamen, also alles was
# angenommen oder verarbeitet wird. Alles was nicht hier drin steht,
# wird abgelehnt.
virtual_maps = mysql:/etc/postfix/mysql-virtual.cf

local_recipient_maps = $virtual_mailbox_maps

mailbox_command =
mailbox_size_limit = 0
maximal_queue_lifetime = 1d
recipient_delimiter = +

# Zum Verteilen der Mails in die virtuellen Mailboxen:
local_transport = virtual
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-maps.cf
virtual_uid_maps = mysql:/etc/postfix/mysql-virtual-uid.cf
virtual_gid_maps = mysql:/etc/postfix/mysql-virtual-gid.cf
virtual_mailbox_base = /home/vmail
broken_sasl_auth_clients = yes

# Spamschutz durch Suchlisten:
body_checks = pcre:/etc/postfix/body_checks.pcre
header_checks = pcre:/etc/postfix/header_checks.pcre

smtpd_helo_required = yes
disable_vrfy_command = yes

# Wegen Outlook etc. dürfen Ablehungen erst nach RCPT TO: kommen, das ist auch
# der Grund, warum man alles in die recipient_restrictions schreibt:
smtpd_delay_reject = yes

# Wir wollen, daß sich alle MUA beim SMTP authentifizieren:
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_security_options = noanonymous
#smtpd_helo_restrictions =
#   permit_mynetworks,
#   reject_invalid_hostname

strict_rfc821_envelopes = yes

# Wir machen alle Filterung nach Empfänger:
# Nur die header- und body-checks werden
# unabhängig davon gemacht.
# body und header kommen IMMER dran, lassen sich also durch eine
besondere Reihenfolge
# wohl nicht umgehen...

# Abarbeitung in der Reihenfolge:
# smtpd_client_restrictions # Server / Rechner von dem die Post kommt
# smtpd_helo_restrictions # Wer der sendende Mailserver behauptet zu sein
# smtpd_sender_restrictions # Was in FROM: steht
# smtpd_recipient_restrictions # Was in RCPT TO: steht
# smtpd_data_restrictions
#
# Man packt aber alle restrictions in die recipient_restrictions:

smtpd_recipient_restrictions =
   reject_unlisted_recipient,
# Wer sich ausweist, durchlassen (SMTP):
   permit_sasl_authenticated,
# Kranker Hostname usw.: Ablehnen:
   reject_invalid_hostname,
#   reject_unknown_hostname,
   reject_non_fqdn_hostname,
   reject_non_fqdn_sender,
#   reject_multi_recipient_bounce,
   reject_non_fqdn_recipient,
   reject_unknown_sender_domain,
   reject_unknown_recipient_domain,
# Lokales Einliefern erlaubt:
   permit_mynetworks,
   reject_unauth_destination,
   check_recipient_access mysql:/etc/postfix/mysql-recipient.cf,
   check_helo_access mysql:/etc/postfix/mysql-helo.cf,
   check_sender_access mysql:/etc/postfix/mysql-sender.cf,
   check_client_access mysql:/etc/postfix/mysql-client.cf,
        reject_rbl_client zen.spamhaus.org,
   reject_rbl_client list.dsbl.org,
   reject_rbl_client cbl.abuseat.org,
   reject_rbl_client dul.dnsbl.sorbs.net,
# verlangt Geld zum deaktivieren
#   dnsbl.sorbs.net,
#   reject_rbl_client dsn.rfc-ignorant.org,
#   reject_rbl_client bogusmx.rfc-ignorant.org,
   permit

smtpd_data_restrictions =
   reject_unauth_pipelining,
   permit

# SSL-Verschlüsselung mit selbst erzeugtem Zertifikat:
# TLS
#vorerst abgeschaltet
#smtpd_use_tls = yes
#smtpd_tls_auth_only = yes
#smtpd_tls_key_file = /etc/postfix/newreq.pem
#smtpd_tls_cert_file = /etc/postfix/newcert.pem
#smtpd_tls_CAfile = /etc/postfix/cacert.pem
#smtpd_tls_loglevel = 3
#smtpd_tls_received_header = yes
#smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom

message_size_limit = 20000000

------------------------------------------------

> Nicht die harte Linie ist das erstrebenswerte sondern eine genau auf dem Einsatzzweck
> passende Zusammenstellung von Restriktionen zu finden.
>
> Diese Restriktionen MÜSSEN Wachsen und frag mal die die länger dabei sind alle haben
> Monate damit verbracht das richtige zu finden.

Naja, ich bin ja auch schon Jahre dabei aber nicht mit so hoher
Priorität (100 Mailboxen). In letzter Zeit werde ich aber mit Spambots
überrannt (MySQL open connections reichen nicht aus)

> konservativen Prüfungen und Tools jedes weitere % muß man sich dann schwer erarbeiten
> (logfiles lesen und auswerten)

Stimmt und ist mir eigentlich auch recht klar...

-- 
Gruß
Andreas



Mehr Informationen über die Mailingliste Postfixbuch-users