Realtime Spam Blacklists und Whitelists mit bird und spamd

Crest

rm -rf /*
Ich bin beim Lesen über die BSDCan 2014 Talks wieder auf bgp-spamd.net aufmerksam geworden. Nun ist der OpenBGPd leider nicht so flexibel wie ich es gerne hätte deswegen habe ich das ganze mal mit BIRD eingerichtet. Hier die nötigen Schritte falls ich doch nicht der einzige bin mit einem Interesse an BGP Blacklists und Whitelists.

Code:
################################################################################
# BGP spam lists
################################################################################

define  spam_asn         = 65066;
define  spam_source      = 148.251.233.239;
define  spam_destination = 64.142.121.62;

table   t_spam;

filter spam_import {
        bgp_community.add((my_asn, spam_asn));
        accept "ok";
}

filter spam_whitelist {
        if (spam_asn, 42) ~ bgp_community then {
                accept "in whitelist";
        } else {
                reject "not in whitelist";
        } 
}

filter spam_blacklist {
        if (spam_asn, 666) ~ bgp_community then {
                accept "in blacklist";
        } else {
                reject "not in blacklist";
        } 
}

protocol bgp spam {
        description     "Spam black and white lists by bgp-spamd.net";
        table           t_spam;
        local as        my_asn;
        source address  spam_source;
        neighbor        spam_destination as spam_asn;
        multihop        64;

        export          none;
        import filter   spam_import;
}

protocol firewall spam_white {
        table           t_spam;
        fwtype          pf;
        fwtable         "bgp-spamd-white";
        export filter   spam_whitelist;
}

protocol firewall spam_black {
        table           t_spam;
        fwtype          pf;
        fwtable         "bgp-spamd-black";
        export filter   spam_blacklist;
}

Leider benutzt FreeBSD noch immer die alte prä-4.6 Syntax für Redirects:
Code:
rdr pass log on $ext_if proto tcp from <bgp-spamd-white>  to $ext_v4 port smtp -> $smtp_v4
rdr pass log on $ext_if proto tcp from <spamd-white>      to $ext_v4 port smtp -> $smtp_v4
rdr pass     on $ext_if proto tcp from any                to $ext_v4 port smtp -> 127.0.0.1 port spamd
Die Reihenfolge der rdr Regeln ist hierbei wichtig (first match statt last match wie bei normalen Regeln). Die Verbindungsmetadaten werden auf pflog0 geleitet wo spamlogd sie mitschneiden kann um zu verhindern, dass Mailserver mit denen häufig genug kommuniziert wird wieder vom Greytrapping betroffen werden.
 
Zuletzt bearbeitet:
Zurück
Oben