Das Problem unerwünschter Nachrichten ist fast so alt wie die E-Mail selbst. Schon 2002 waren mehr als 50% aller Nachrichten Spam, heute sind es über 90%. Traditionelle Mailfilter stoßen hier an ihre Grenzen, da sie Nachrichten erst aufwendig durchsuchen müssen. Die Postfix-Entwickler haben deshalb mit postscreen einen neuen Ansatz gewählt: Da Spam fast ausschließlich aus Bot-Netzen verschickt wird, versuchen sie, die Spam-Bots zu erkennen.
(Vortrag auf den Chemnitzer Linux-Tagen am 17.03.2012)
12. ltern, sondern Bots
I Spam sofort abweisen und nichts ins System lassen
I Spam so 'kostengunstig' wie moglich bekampfen
I Tests von einfach und schnell nach aufwandig und
langsam
22. Postscreen
Christoph Wickert
Inhalt:
Einfuhrung
Spam
Postscreen
Problem
Idee
Aufbau
Tests
Whitelists
Blacklists
Pre-Greeting
Deep Protocol Tests
Bare Newline
Command Pipelining
Non-SMTP
Aktionen
Setup
Tests
Temporare Whitelists
I Temporare / dynamische weie Liste erlaubter Clients
I Automatisch angelegter Cache aus erfolgreichen Tests
I Gultigkeitsdauer: postscreen * ttl
I Aufraumen alle 12 Stunden:
postscreen cache cleanup interval = 12h
I Ab postix 2.9: Sharing von temporaren Whitelists im
Netzwerk mit proxymap
I Alternativer Ansatz mit memcache map
29. Postscreen
Christoph Wickert
Inhalt:
Einfuhrung
Spam
Postscreen
Problem
Idee
Aufbau
Tests
Whitelists
Blacklists
Pre-Greeting
Deep Protocol Tests
Bare Newline
Command Pipelining
Non-SMTP
Aktionen
Setup
Tests
Pre-Geeting
Ein typischer SMTP Dialog
220 mail.example.net ESMTP Postfix
HELO client.example.net
250 mail.example.net
MAIL FROM: joerg@example.net
250 OK
RCPT TO: sabine@example.net
250 OK
DATA
354 End data with CRLF
From: Jorg Mustermann joerg@example.net
To: Sabine Musterfrau sabine@example.net
Subject: HDL
Hallo Lausemadchen, wir sehen uns nachher.
.
250 OK: queued as E82C21839B9
QUIT
221 Bye
38. x/main.cf
postscreen non smtp command enable = yes
postscreen non smtp commnd action = drop
postscreen forbidden commands =
smtpd forbidden commands
39. Postscreen
Christoph Wickert
Inhalt:
Einfuhrung
Spam
Postscreen
Problem
Idee
Aufbau
Tests
Whitelists
Blacklists
Pre-Greeting
Deep Protocol Tests
Bare Newline
Command Pipelining
Non-SMTP
Aktionen
Setup
Tests
Aktionen
Aktionen
I ignore ignoriert das Testergebnis und fuhrt weitere
Tests aus
I drop beendet die Verbindung sofort mit Status 521
(Does not accept mail)
I enforce wartet weitere Tests ab und antwortet solange
mit Status 550 (Mailbox unavailable)
I So viel loggen wie moglich, deshalb lieber enforce als
drop
I drop kann vom Client als Verbindungsabbruch
interpretiert werden. Bots, die man eigentlich loswerden
will, kommen wieder.