S0t4's Blog

Hanya Catatan dan Mencoba Untuk Berbagi

Saturday, November 20, 2010

Mail Filter Di Postfix Mail Server (Block Spam / UCE)

  Blogger Sejati       Saturday, November 20, 2010
Sebagai lanjutan dari Pembuatan Email Server di Ubuntu, sekarang kita coba untuk mengamankan Server Email kita dari serangan virus maupun Spam. Dengan tidak menginstal program tambahan seperti anti virus maupun anti spam.. cukup dengan mengoptimalkan konfigurasi dari postfix (main.cf).


Untuk yang belum baca tutorial Mail server sebelumnya bisa dilihat disini ya...

1. Instal Basic Mail Server
2. Install Web Mail
3. Download Email dari Server email POP


Pendahuluan
Administrator e-mail harus melindungi usernya dari email yang tidak diinginkan (Unsolicated Commercial Email/UCE). Peningkatan UCE telah menjadi gangguan bagi pengguna banyak email saat ini. Administrator e-mail harus berusaha untuk menerapkan kontrol untuk meminimalkan jumlah UCE yang dikirimkan pada pengguna lokal. Artikel ini menjelaskan beberapa metode yang postfix menyediakan untuk administrator e-mail untuk menyaring situs UCE.

Blocking UCE

Ada beberapa level yang bisa diterapkan untuk memblock email UCE/spam.



Program SMTP Postix

Program Postfix smtpd bertanggung jawab untuk menerima koneksi SMTP dari host remote dan menerima pesan mail untuk pengguna lokal. Tabel access mengarahkan server SMTP Postfix untuk selektif menolak atau menerima email. Akses dapat diizinkan atau ditolak untuk nama host tertentu, nama domain, jaringan, alamat host jaringan atau alamat email.

Masalah Dengan Protocol SMTP

Salah satu teknik yang digunakan oleh pengirim UCE untuk menyembunyikan identitas mereka adalah dengan menggunakan alamat palsu dalam FROM: baris header mail. Hal ini dimungkinkan karena keterbatasan keamanan di Protokol SMTP standard. Selama sesi SMTP yang normal, baik HELO dan MAIL FROM: perintah mengidentifikasi pengirim. Remote host dapat memasukkan nilai untuk perintah ini.

Catatan tentang HELO, Pengirim dan Klien
* HELO / EHLO adalah apa yang *mesin pengirim beritahu * komputer Anda. Hal ini mudah palsu dan sering salah dikonfigurasi. Jadi mungkin tidak sesuai kenyataan.

* Sender adalah alamat amplop-pengirim (SMTP "MAIL FROM"), bukan alamat IP mesin klien atau nama host, atau field "From:" di header. (Meskipun amplop-pengirim mungkin cocok dengan "From:" pada header.)

* Klien adalah alamat IP komputer pengirim - dan mungkin nama host (jika ada).

Bagaimana cara Memilih Optimal Restriction Level untuk SMTPD ?

Saya sarankan untuk menempatkan semua restriction di bagian smtpd_recipient_restrictions di main.cf

Karena dengan menempatkan restriction di bagian smtpd_recipient_restrictions, Anda akan dapat mengumpulkan sebanyak mungkin informasi tentang spam, serta memasang semua restriction untuk lebih memungkinkan Anda untuk mencegah spam - oleh karena itu disarankan untuk tetap menset client, helo dan sender restriction kosong.

smtpd_client_restrictions =
smtpd_helo_restrictions =
smtpd_sender_restrictions =


Tetapi ada baiknya sedikit mendalami tentang client, helo dan sender restriction..

smtpd_client_restrictions

smtpd_client_restriction akan membatasi client yang mengirim email lewat smtp server kita berdasar IP address dan hostname dari sender.

Isi dari main.cf

smtpd_client_restrictions =
check_client_access hash:/etc/postfix/maps/access_client,
permit


contoh isi /etc/postfix/maps/access_client

80.218.40.251 REJECT

Compile access_client kedalam access_client.db

postmap hash:access

Test Client Restriction
#
telnet rabbit 25

Trying rabbit...
Connected to rabbit.
Escape character is '^]'.
220 rabbit.akadia.com ESMTP Postfix
HELO rabbit
250 rabbit.akadia.com
MAIL FROM: < martin.zahn@akadia.ch >
250 Ok
RCPT TO: < martin.zahn@akadia.ch >
554 < dclient80-218-40-251.hispeed.ch[80.218.40.251] >:
Client host rejected: Access denied

SMTPD Helo Restrictions

Yang harus diset adalah

smtpd_helo_required = yes

smtpd helo restrictions akan menset pembatasan pada Anda berdasarkan identifikasi string helo dari client.

SMTPD SENDER Restrictions

Pembatasan akan berasarkan alamat pengirim email (MAIL FROM:)

SMTPD RECIPIENT Restrictions

Pembatasan akan dilakukan berdasarkan alamat email penerima (RCPT TO:)
Intinya, semua restriction2 yang dibahas sebelumnya bisa diset disini dan juga bisa diset link RBL maupun RHSBLnya disini...

contoh isi dari smtpd_recipient_restrictions:
--------------------------------------------------
smtpd_recipient_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination,
reject_invalid_hostname,
reject_unauth_pipelining,
reject_non_fqdn_sender,
reject_unknown_sender_domain,
reject_non_fqdn_recipient,
reject_unknown_recipient_domain,
check_client_access hash:/etc/postfix/maps/access_client,
check_helo_access hash:/etc/postfix/maps/access_helo,
check_sender_access hash:/etc/postfix/maps/access_sender,
check_recipient_access hash:/etc/postfix/maps/access_recipient,
reject_rhsbl_client blackhole.securitysage.com,
reject_rhsbl_sender blackhole.securitysage.com,
reject_rbl_client relays.ordb.org,
reject_rbl_client blackholes.easynet.nl,
reject_rbl_client cbl.abuseat.org,
reject_rbl_client proxies.blackholes.wirehub.net,
reject_rbl_client bl.spamcop.net,
reject_rbl_client sbl.spamhaus.org,
reject_rbl_client opm.blitzed.org,
reject_rbl_client dnsbl.njabl.org,
reject_rbl_client list.dsbl.org,
reject_rbl_client multihop.dsbl.org,
permit
-----------------------------------------------------------------

Dengan menambahkan RBL di urutan akhir, untuk memastikan tidak adanya spam yang bisa lolos dari server kita...

Jadi intinya... dengan cukup menset smtpd_recipient_restrictions akan lebih ampuh hasilnya...


Link RBL dan RHSBL

RBL (Real-time, IP Based Blacklist filtration), merupakan site yang berisi IP yang yang diblock yang sering digunakan oleh spammer, open relay, sistem yang tidak sesuai ketentuan RFC.

RHSBL (Real-time, Domain Based Blacklist filtration) adalah seperti RBL, tetapi berisi daftar nama domain yang diblock (sebagai lawan dari alamat IP) yang dicocokkan dengan domain email client.


Header and Body Checks

Sebagai tambahan filter, bisa digunakan filter isi header email dan body email.
dan dengan menambah restriction ini, maka setiap email yang cocok dengan pembatasan disini akan ditolak meskipun dalam restriction sebelumnya (smtpd_recipient_restrictions) tidak ada masalah.

1. Header Checks

Untuk menambahkan header check cukum dengan menambahkan baris berikut di main.cf postfix:

header_checks = regexp:/etc/postfix/maps/header_checks
mime_header_checks = regexp:/etc/postfix/maps/mime_header_checks


Format setiap file header_checks maupun mime_header_checks sebagai berikut:

/^HEADER: .*content_to_act_on/ ACTION

Header bisa diisi sesuai isi dari header email yang dicurigai. Subject header adalah yang paling populer untuk difilter.

contoh

/^Subject: .*Make Money Fast!/ REJECT

Mime Header Checks
mime_header_checks digunakan untuk memfilter attachment file yang disertakan dalam email.

contoh:
/name=[^>]*\.(bat|com|exe|dll)/ REJECT

itu akan memerintahkan mail server untuk menolak aatachment yang berekstensi *.bat,com,exe,dll.

2. Body Checks

tambahkan baris berikut di main.cf

body_checks = regexp:/etc/postfix/maps/body_checks

Digunakan untuk memfilter dari isi email pengirim...
Format file body_checks adalah:

/content_to_act_on/ ACTION



Referensi :
http://jimsun.linxnet.com/misc/postfix-anti-UCE.txt
http://www.securitysage.com
http://www.postfix.org
http://www.akadia.com/services/postfix_mta.html
http://www.akadia.com/services/postfix_uce.html
logoblog

Thanks for reading Mail Filter Di Postfix Mail Server (Block Spam / UCE)

Previous
« Prev Post

No comments: