25.04.2013 Aufrufe

Policyd-weight Score Testing - Heinlein

Policyd-weight Score Testing - Heinlein

Policyd-weight Score Testing - Heinlein

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

3. Mailserver Konferenz / Berlin<br />

Über 300 Scoring Konstellationen<br />

# bzgrep 'rate: ' /var/log/mail/maillog* \<br />

| sed -e 's/.*rate: //' -e 's/[ ;].*//' \<br />

| sort -u | wc -l<br />

348<br />

<strong>Policyd</strong>-<strong>weight</strong><br />

Kuttendreier


3. Mailserver Konferenz / Berlin<br />

1. HAM (hard) / SPAM Cache<br />

2. RBL Lookups<br />

3. HAM-Cache<br />

Scoring<br />

4. Sender (Sub)Domain MX/A records vs IP/32/24/16<br />

Bogus MX == leer oder private networks<br />

Bad MX == A/MX leer oder private networks<br />

5. HELO (Sub)Domain MX/A records vs IP/32/24/16<br />

6. IP PTR Dialup Regex Check<br />

7. IP PTR vs HELO/Domain check – untrusted, wenn<br />

4. oder 5. kein Treffer<br />

8. HELO numeric check<br />

9. HELO Dialup check wenn 6. kein Treffer<br />

<strong>Policyd</strong>-<strong>weight</strong><br />

Kuttendreier


3. Mailserver Konferenz / Berlin<br />

10. Nobody/Anonymous check<br />

11. Sender Domain vs HELO Domain – Check wenn IP nicht MX Sender Domain<br />

Gewichtet nach:<br />

11.1 HELO (Sub)Domain A/MX == IP aus 5.<br />

11.2 IP == HELO (Domain) aus 7.<br />

11.3 5. UND 7. ergaben kein positives Ergebnis<br />

12. IP == MX/A Sender check wenn<br />

- 2. (RBL) einen Treffer ergab<br />

- 4. (Sender MX vs IP) keinen Treffer ergab<br />

- 11.2 oder 11.3 einen negativ Treffer ergab<br />

faktisch erhöht dieser check den Check 4<br />

13. Sender Domain Multiparted (user@a.b.c.d.example.tld)<br />

Wird nur ausgeführt, wenn 4. und 5. keine positive Treffer ergaben<br />

14. Random Sender Check<br />

<strong>Policyd</strong>-<strong>weight</strong><br />

Kuttendreier


3. Mailserver Konferenz / Berlin<br />

15. RHSBL checks wenn $REJECTLEVEL noch nicht erreicht<br />

surbl.org, ahbl.org, rfc-ignorant.org<br />

<strong>Policyd</strong>-<strong>weight</strong><br />

Kuttendreier


3. Mailserver Konferenz / Berlin<br />

~45,000,000 Mail Vers. /Jahr<br />

~123,000 Mail Vers. /Tag<br />

Graphs und Zahlen<br />

~82,000 Rejects/Tag<br />

~50% Anteil gesamt<br />

Filterung<br />

<strong>Policyd</strong>-<strong>weight</strong><br />

Kuttendreier<br />

~270GB pro Jahr Traffic<br />

Ersparnis bei<br />

10k Spam<br />

(über alle UCE<br />

Massnahmen)


3. Mailserver Konferenz / Berlin<br />

Ort: /etc/policyd-<strong>weight</strong>.conf<br />

oder -f /path/t/policyd-<strong>weight</strong>.conf<br />

Sinnvolle Einstellungen<br />

<strong>Policyd</strong>-<strong>weight</strong><br />

1. $REJECTLEVEL = 4; # (default: 1 – WERT)<br />

Empfehlenswert für Phase <strong>Testing</strong> -> Produktiv<br />

2. $dnsbl_checks_only = 1; # (default: 0 – BOOL)<br />

Prüft nur IP gegen DNSBLs, keine weiteren Sender, HELO checks<br />

3. $REJECTLEVEL = 100;<br />

Empfehlenswert, wenn DNSBL checks rejecten sollen, DNS checks<br />

aber nicht, da $MAXDNSBLHITS bzw $MAXDNSBLSCORE greifen<br />

Ein evtl. Header kann vom MUA ausgewertet werden.<br />

Kuttendreier


3. Mailserver Konferenz / Berlin<br />

1. /etc/policyd-<strong>weight</strong>.conf.testing anlegen<br />

<strong>Score</strong> <strong>Testing</strong> (suicide)<br />

<strong>Policyd</strong>-<strong>weight</strong><br />

Kuttendreier<br />

2. echo „request=smtpd_access_policy<br />

client_address=1.2.3.4<br />

helo_name=example.tld<br />

sender=user@example.tld<br />

„ | /path/to/policyd-<strong>weight</strong> -f /etc/policyd-<strong>weight</strong>.conf.testing -d | grep rate<br />

10:07:20 info: <strong>weight</strong>ed check: NOT_IN_SBL_XBL_SPAMHAUS=-1.5<br />

NOT_IN_SPAMCOP=-1.5 NOT_IN_BL_NJABL=-1.5 IX_MANITU=ERR(0)<br />

BOGUS_MX=2.1 CL_IP_NE_HELO=1.5 RESOLVED_IP_IS_NOT_HELO=1.5<br />

(check from: .example. - helo: .example. - helo-domain:<br />

.example.) MAIL_SEEMS_FORGED=2.5 IN_DSN_RFCI=6.6<br />

IN_PM_RFCI=3.2 IN_ABUSE_RFCI=3.2 <br />

,<br />

rate: 16.1<br />

Warnungen über Use of uninitialized value können idR ignoriert werden, sollten<br />

bei Problemberichten aber mit berichtet werden.


3. Mailserver Konferenz / Berlin<br />

smtpd_restriction_classes =<br />

check_policyd_<strong>weight</strong><br />

Postfix Einbindung / Whitelists<br />

<strong>Policyd</strong>-<strong>weight</strong><br />

check_policyd_<strong>weight</strong> =<br />

check_policy_service inet:127.0.0.1:12525<br />

#warn_if_reject check_policy_service inet:127.0.0.1:12525<br />

smtpd_recipient_restrictions =<br />

permit_mynetworks<br />

permit_sasl_authenticated<br />

reject_unauth_destination<br />

check_client_access hash:/path/to/uce_whitelists<br />

check_policyd_<strong>weight</strong><br />

#check_recipient_access hash:/path/to/policyd_<strong>weight</strong>_users<br />

file /path/to/uce_whitelists (postmap /path/to/uce_whitelists)<br />

1.2.3.4 OK<br />

.yahoo.com OK<br />

file /path/to/policyd_<strong>weight</strong>_users (postmap /path/to/policyd_<strong>weight</strong>_users)<br />

.kunde.tld check_policyd_<strong>weight</strong><br />

user@kunde2.tld check_policyd_<strong>weight</strong><br />

Kuttendreier

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!