postfix-users  

[postfix-users] Greylisting Mini Howto

Asfihani
Wed, 10 Mar 2004 00:29:33 -0800

Halo,

Kalau ada yang tertarik memerangi spam dengan greylisting, berikut ini
kira-kira caranya :

1 - Salin file smtpd-policy.pl pada direktori examples/smtpd-policy ke
    direktori /usr/libexec/postfix 

2 - Edit file /usr/libexec/postfix/smtpd-policy.pl pada bagian :
    
    $database_name="/var/mta/smtpd-policy.db";
    $greylist_delay=60;

    database_name: sesuaikan dengan letak direktori yang akan dibuat
                   pada langkah berikutnya

    greylist_delay: sesuaikan dengan waktu (dalam detik) dimana suatu
                    message akan ditunda sebelum diproses.

3 - Buat direktori /var/mta ganti pemiliknya menjadi nobody.

    % mkdir /var/mta
    % chown nobody /var/mta

4 - Buat entry "policy" pada master.cf, misalnya :

    policy  unix  -       n       n       -       -       spawn
      user=nobody argv=/usr/bin/perl /usr/libexec/postfix/smtpd-policy.pl

5 - Set Postfix untuk melakukan greylisting. Anda bisa melakukan
    greylisting terhadap SEMUA email yang masuk (dari luar mynetworks)
    atau hanya dari beberapa domain saja.

    Pilih salah satu saja :-) dibawah ini:

    - Untuk menerapkan greylisting ke semua message:

        smtpd_recipient_restrictions =
            permit_mynetworks
            reject_unauth_destination
            check_sender_access hash:/etc/postfix/maps/sender_access
            check_policy_service unix:private/policy
            ...RBL stuff disini...
            permit

    Lakukan "whitelist" ke mailing-list yang ada, atau database policy 
    akan dipenuhi oleh sampah :-), misalnya bikin sebuah file:

    /etc/postfix/maps/sender_access

    Isinya:

    securityfocus.com           OK
    returns.groups.yahoo.com    OK
    linux.or.id                 OK      
    cloud9.net                  OK
    postfix.org                 OK
    list.cr.yp.to               OK
    worldless.net               OK
    groups.or.id                OK
    lists.untroubled.org        OK


    - Untuk menerapkan greylisting dari domain tertentu:

       smtpd_recipient_restrictions =
            permit_mynetworks
            reject_unauth_destination
            check_sender_access hash:/etc/postfix/maps/sender_access
            ...RBL stuff disini...
            permit
       restriction_classes = greylist
       greylist = check_policy_service unix:private/policy

       Kemudian daftarkan nama domain yang sering digunakan untuk
       forgery pada file /etc/postfix/maps/sender_access

       yahoo.com   greylist
       aol.com     greylist
       hotmail.com greylist
       bigfoot.com greylist
       ... 

5 - % postmap /etc/postfix/maps/sender_access
    % postfix reload

Anda bisa melihat log Postfix atau mencoba mengirim email dari tempat
lain untuk mengetestnya.

Catatan: Selama sekitar 4 hari saya terapkan di server disini dan saya
tinggal pulang ke kampung, alhamudlillah spam yang benar-benar
"diniati" hanya 5 buah :-) dan diidentifikasi dengan baik oleh SA.
File databse "smtpd-policy.db" juga tidak sampai 1 MB. Atau mungkin
pas ditesting spammernya lagi istirahat :-)

[EMAIL PROTECTED] mta]# du -sh smtpd-policy.db
864K    smtpd-policy.db

Semoga berguna, 

 Asfihani