Sebelumnya kita sudah membahas 7 cara efektif memblokir email spam dengan Postfix di CentOS/RHEL. Dalam tutorial ini, kita akan mempelajari cara menggunakan SpamAssassin (SA) untuk mendeteksi spam di server email CentOS/RHEL. SpamAssassin adalah alat penangkal spam yang gratis, sumber terbuka, fleksibel, dan kuat.
SpamAssassin adalah sistem berbasis skor. Ini akan memeriksa pesan email terhadap sejumlah besar aturan. Setiap aturan menambah atau menghapus poin dalam skor pesan. Jika skornya cukup tinggi (secara default 5.0), pesan dianggap spam.
Instal SpamAssassin di CentOS/RHEL
Jalankan perintah berikut untuk menginstal SpamAssassin dari repositori perangkat lunak CentOS/RHEL default.
sudo dnf install spamassassin
Biner server diinstal oleh spamassassin
paket disebut spamd
, yang akan mendengarkan pada port TCP 783 di localhost. Spamc
adalah klien untuk daemon pemfilteran spam SpamAssassin. Secara default, spamassassin
layanan systemd dinonaktifkan, Anda dapat mengaktifkan mulai otomatis saat boot dengan:
sudo systemctl enable spamassassin
Kemudian mulai SpamAssassin.
sudo systemctl start spamassassin
Mengintegrasikan SpamAssassin dengan Server SMTP Postfix sebagai Milter
Ada beberapa cara yang dapat Anda gunakan untuk mengintegrasikan SpamAssassin dengan Postfix. Saya lebih suka menggunakan SpamAssassin melalui antarmuka sendmail milter, karena memungkinkan saya untuk menolak email ketika mendapat skor yang sangat tinggi seperti 8, sehingga tidak akan pernah terlihat oleh penerima.
Instal spamass-filter
paket di CentOS/RHEL dari repositori perangkat lunak EPEL.
sudo dnf install epel-release sudo dnf install spamass-milter
Mulai layanan.
sudo systemctl start spamass-milter
Aktifkan mulai otomatis saat boot.
sudo systemctl enable spamass-milter
Selanjutnya, edit /etc/postfix/main.cf
file dan tambahkan baris berikut di akhir file.
# Milter configuration milter_default_action = accept milter_protocol = 6 smtpd_milters = unix:/run/spamass-milter/spamass-milter.sock non_smtpd_milters = $smtpd_milters
Jika Anda telah mengonfigurasi OpenDKIM dan OpenDMARC pada CentOS/RHEL, maka baris-baris ini akan terlihat seperti di bawah ini. Urutan milter itu penting.
# Milter configuration milter_default_action = accept milter_protocol = 6 smtpd_milters = inet:127.0.0.1:8891,inet:127.0.0.1:8893,unix:/run/spamass-milter/spamass-milter.sock non_smtpd_milters = $smtpd_milters
Jika Anda belum mengonfigurasi OpenDMARC, Anda harus menghapus local:opendmarc/opendmarc.sock,
dari smtpd_milters
.
Simpan dan tutup file. Sekarang buka /etc/sysconfig/spamass-milter
file dan temukan baris berikut.
#EXTRA_FLAGS="-m -r 15"
Batalkan komentar pada baris ini dan ubah 15 menjadi skor penolakan pilihan Anda seperti 8.
EXTRA_FLAGS="-m -r 8"
Jika skor email tertentu lebih dari 8, Spamassassin akan menolaknya dan Anda akan menemukan pesan seperti di bawah ini di /var/log/maillog
file, yang menunjukkan bahwa itu ditolak.
milter-reject: END-OF-MESSAGE 5.7.1 Blocked by SpamAssassin
Jika Anda ingin pengirim melihat teks penolakan yang berbeda, tambahkan -R
(tolak teks) seperti di bawah ini.
EXTRA_FLAGS="-m -r 8 -R SPAM_ARE_NOT_ALLOWED_HERE"
Ini adalah praktik yang baik untuk mengabaikan email yang berasal dari localhost dengan menambahkan -i 127.0.0.1
pilihan.
EXTRA_FLAGS="-m -r 8 -R SPAM_ARE_NOT_ALLOWED_HERE -i 127.0.0.1"
Kita juga perlu menambahkan -g sa-milt
opsi untuk membuat soket spamass-milter dapat ditulis oleh sa-milt group.
EXTRA_FLAGS="-m -r 8 -R SPAM_ARE_NOT_ALLOWED_HERE -i 127.0.0.1 -g sa-milt"
Simpan dan tutup file. Kemudian tambahkan postfix
pengguna ke sa-milt
grup, sehingga Postfix dapat berkomunikasi dengan spamass-milter.
sudo gpasswd -a postfix sa-milt
Mulai ulang Postfix dan Spamass Milter agar perubahan diterapkan.
sudo systemctl restart postfix spamass-milter
Periksa statusnya dan pastikan statusnya berjalan.
sudo systemctl status postfix spamass-milter
Memeriksa Header dan Isi Email dengan SpamAssassin
SpamAssassin dikirimkan dengan banyak aturan pendeteksian spam di /usr/share/spamassassin/ direktori. Izinkan saya untuk menjelaskan beberapa aturan.
Dalam /usr/share/spamassassin/20_head_tests.cf file, Anda dapat menemukan dua baris berikut.
header MISSING_HEADERS eval:check_for_missing_to_header() describe MISSING_HEADERS Missing To: header
Baris pertama menguji apakah Kepada: header ada dalam pesan email. Baris kedua, yang opsional, menjelaskan apa yang dilakukan baris pertama. Huruf besar adalah nama tes ini.
3 baris berikut untuk menguji apakah ada Tanggal: tajuk dalam pesan email.
header __HAS_DATE exists:Date meta MISSING_DATE !__HAS_DATE describe MISSING_DATE Missing Date: header
Dan 3 baris ini untuk menguji apakah ada Dari: tajuk dalam pesan email.
header __HAS_FROM exists:From meta MISSING_FROM !__HAS_FROM describe MISSING_FROM Missing From: header
Tetapkan Skor Khusus untuk Aturan yang Ada
Dalam 50_scores.cf
dan 72_scores.cf
file, Anda dapat melihat skor default untuk berbagai tes. Jika menurut Anda skor default terlalu rendah atau terlalu tinggi untuk tes tertentu, Anda dapat mengatur skor khusus di /etc/mail/spamassassin/local.cf
berkas.
sudo nano /etc/mail/spamassassin/local.cf
Misalnya, RFC 5322 mengharuskan setiap pesan email harus memiliki Dari: dan Tanggal: bidang header, jadi saya dapat menetapkan skor yang sangat tinggi jika salah satu dari keduanya tidak ada dalam pesan email dengan menambahkan dua baris berikut di local.cf
berkas.
score MISSING_FROM 5.0 score MISSING_DATE 5.0
Meskipun Kepada: bidang tajuk tidak wajib di RFC 5322, saya lebih suka menetapkan skor tinggi jika tidak ada dalam pesan email karena saya belum pernah melihat email yang sah kehilangan bidang tajuk ini.
score MISSING_HEADERS 3.0
Beberapa spammer menggunakan dua alamat email di Dari: bidang header seperti di bawah ini.
From: "[email protected]" <[email protected]>
Saya rasa skor default untuk email jenis ini rendah, saya lebih suka menyetelnya ke 3.0.
score PDS_FROM_2_EMAILS 3.0
Ada spammer yang mengirim pesan kosong tanpa subjek dan tanpa bagian tekstual di badan. Saya menetapkan skor untuk email semacam ini menjadi 5.0, sehingga akan ditempatkan ke folder spam. Mengapa membacanya jika kosong?
score EMPTY_MESSAGE 5.0
Dan spammer lain sering meminta Anda untuk mengirim tanda terima telah dibaca, saya menetapkan skor menjadi 2,0 untuk email semacam ini.
score FREEMAIL_DISPTO 2.0
Ada beberapa spammer yang menggunakan nama domain berbeda di Dari: dan Balas Ke: header, saya memberi mereka skor 3,5.
score FREEMAIL_FORGED_REPLYTO 3.5
Saya juga melihat beberapa spammer menggunakan nama domain yang tidak ada di Dari: bidang tajuk. Saya menetapkan skor 5.0 untuk jenis email ini.
score DKIM_ADSP_NXDOMAIN 5.0
Last but not least, banyak spammer menipu gmail.com
domain di Dari: bidang tajuk. Saya menetapkan skor 2,5 untuk email semacam ini.
score FORGED_GMAIL_RCVD 2.5
Menambahkan Aturan Anda Sendiri
Anda dapat menambahkan aturan SpamAssassin khusus di /etc/mail/spamassassin/local.cf berkas.
sudo nano /etc/mail/spamassassin/local.cf
Aturan Tajuk
Misalnya, beberapa spammer menggunakan alamat email yang sama di Dari: dan Kepada: tajuk. Anda dapat menambahkan baris berikut di akhir file untuk menambahkan skor ke email semacam itu.
header FROM_SAME_AS_TO ALL=~/\nFrom: ([^\n]+)\nTo: \1/sm describe FROM_SAME_AS_TO From address is the same as To address. score FROM_SAME_AS_TO 2.0
Beberapa spammer menggunakan alamat kosong untuk alamat Envelope From (alias header Return Path). Meskipun ini sah untuk mengirim pesan pentalan, saya lebih suka memberi skor pada email semacam ini.
header EMPTY_RETURN_PATH ALL =~ /<>/i describe EMPTY_RETURN_PATH empty address in the Return Path header. score EMPTY_RETURN_PATH 3.0
Jika Anda telah mengonfigurasi OpenDMARC di server email, kini Anda dapat menambahkan baris berikut untuk menambahkan skor ke email yang gagal dalam pemeriksaan DMARC.
header CUSTOM_DMARC_FAIL Authentication-Results =~ /dmarc=fail/ describe CUSTOM_DMARC_FAIL This email failed DMARC check score CUSTOM_DMARC_FAIL 3.0
Kode di atas memberitahu SpamAssassin untuk memeriksa apakah Authentication-Results header berisi string “dmarc=fail”. Jika ditemukan, tambah skornya sebesar 3.0.
Aturan Tubuh
Anda dapat memberitahu SpamAssassin untuk meningkatkan skor email jika frase tertentu ditemukan dalam tubuh. Misalnya, banyak spammer menggunakan alamat email penerima di baris isi pertama seperti di bawah ini.
Hi [email protected] Hello [email protected] Dear [email protected]
Saya tidak ingin berbicara dengan orang yang tidak mau repot-repot menulis nama saya di baris pertama email. Jadi saya membuat aturan di SpamAssassin untuk memfilter email semacam ini.
body BE_POLITE /(hi|hello|dear) xiao\@linuxbabe\.com/i describe BE_POLITE This email doesn't use a proper name for the recipient score BE_POLITE 5.0
Ekspresi reguler di SpamAssassin peka huruf besar/kecil secara default, Anda dapat menambahkan i
opsi di bagian akhir untuk membuatnya peka huruf besar/kecil.
Tambahkan Skor Negatif
Anda juga dapat menambahkan skor negatif ke email yang bagus, sehingga positif palsu akan berkurang. Misalnya, banyak pembaca blog saya menanyakan pertanyaan tentang Linux dan menurut saya spammer tidak akan menyertakan kata-kata seperti Debian
, Ubuntu
, Linux Mint
di badan email, jadi saya membuat aturan berikut.
body GOOD_EMAIL /(debian|ubuntu|linux mint|centos|red hat|RHEL|OpenSUSE|Fedora|Arch Linux|Raspberry Pi|Kali Linux)/i describe GOOD_EMAIL I don't think spammer would include these words in the email body. score GOOD_EMAIL -4.0
Jika badan email berisi nama distro Linux, tambahkan skor negatif (-4.0).
Ada beberapa frasa umum yang disertakan dalam pesan pentalan yang sah, jadi saya dapat menambahkan skor negatif ke pesan email ini.
body BOUNCE_MSG /(Undelivered Mail Returned to Sender|Undeliverable|Auto-Reply|Automatic reply)/i describe BOUNCE_MSG Undelivered mail notifications or auto-reply messages score BOUNCE_MSG -1.5
Perhatikan bahwa aturan isi juga menyertakan Subjek sebagai baris pertama dari isi isi.
Aturan Meta
Selain aturan header dan body, ada juga aturan meta. Aturan meta adalah kombinasi dari aturan lain. Anda dapat membuat aturan meta yang aktif ketika dua atau lebih aturan lainnya benar. Misalnya, saya kadang-kadang menerima email yang mengatakan bahwa pengirim ingin melamar pekerjaan dan resume terlampir. Saya tidak pernah mengatakan di situs web saya bahwa saya perlu mempekerjakan orang. Lampiran tersebut digunakan untuk menyebarkan virus. Saya membuat aturan meta berikut untuk memfilter email semacam ini.
body __RESUME /(C.V|Resume)/i meta RESUME_VIRUS (__RESUME && __MIME_BASE64) describe RESUME_VIRUS The attachment contains virus. score RESUME_VIRUS 5.5
Sub aturan pertama __RESUME
menguji apakah badan email berisi kata C.V.
atau resume
. Sub aturan kedua __MIME_BASE64
sudah didefinisikan di /usr/share/spamassassin/20_body_tests.cf
file, sebagai berikut, jadi saya tidak perlu mendefinisikannya lagi di file local.cf. Aturan ini menguji apakah pesan email menyertakan lampiran base64.
rawbody __MIME_BASE64 eval:check_for_mime('mime_base64_count') describe __MIME_BASE64 Includes a base64 attachment
Aturan meta saya RESUME_VIRUS
akan aktif ketika kedua sub aturan benar, menambahkan skor 5,5 ke pesan email. Perhatikan bahwa sub aturan sering dimulai dengan garis bawah ganda, sehingga tidak memiliki skor sendiri.
Sekarang Anda belajar bagaimana menambahkan skor jika string ditemukan. Bagaimana jika Anda ingin menambahkan skor ketika string tidak ada di header email? Nah, Anda bisa menggunakan !
operator. Misalnya, saya telah melihat spammer menggunakan satu kata di alamat Dari:. Saya menambahkan baris berikut untuk menilai email semacam ini.
header __AT_IN_FROM From =~ /\@/ meta NO_AT_IN_FROM !__AT_IN_FROM score NO_AT_IN_FROM 4.0
Baris pertama memeriksa apakah @
tanda ada di Dari:header. Baris kedua mendefinisikan aturan meta, yang dijalankan saat !__AT_IN_FROM
adalah benar. !__AT_IN_FROM
aturan adalah kebalikan dari aturan header pertama, yang berarti ketika tidak ada @
masuk alamat Dari:, aturan meta aktif.
Anda juga dapat menambahkan baris berikut untuk memeriksa apakah ada titik di alamat Dari:.
header __DOT_IN_FROM From =~ /\./ meta NO_DOT_IN_FROM !__DOT_IN_FROM score NO_DOT_IN_FROM 4.0
Daftar Putih
Anda dapat menggunakan whitelist_from
parameter untuk menambahkan alamat email atau domain tertentu ke daftar putih Spamassassin Anda. Misalnya, tambahkan dua baris berikut di akhir local.cf
berkas.
whitelist_from [email protected] whitelist_from *@canonical.com
Pengirim yang masuk daftar putih memiliki -100
skor standar. Mereka masih akan diuji oleh aturan SpamAssassin, tetapi sangat sulit bagi mereka untuk mencapai skor 5.0.
Daftar Hitam
Untuk memasukkan pengirim ke daftar hitam, gunakan blacklist_from
parameter, yang memiliki format yang sama dengan whitelist_from
.
blacklist_from [email protected] blacklist_from *@example.org
Memeriksa Sintaks dan Memulai Ulang
Setelah menyimpan local.cf
mengajukan. Anda harus menjalankan spamassassin
perintah dalam mode lint untuk memeriksa apakah ada kesalahan sintaksis.
sudo spamassassin --lint
Kemudian restart SpamAssassin agar perubahan diterapkan.
sudo systemctl restart spamassassin
Daftar Putih Bawaan SpamAssassin
Perlu disebutkan bahwa SpamAssassin dikirimkan dengan daftar putihnya sendiri. Ada beberapa file di bawah /usr/share/spamassassin/
direktori yang menyertakan 60_whitelist
dalam nama file. File-file ini berisi daftar putih bawaan SpamAssassin. Misalnya, 60_whitelist_spf.cf
file berisi daftar alamat yang mengirim email yang sering ditandai (salah) sebagai spam.
Pindahkan Spam ke Folder Sampah
Saya akan menunjukkan cara memindahkan spam ke folder Junk dengan server IMAP Dovecot dan plugin sieve. Metode ini mengharuskan email masuk dikirim ke penyimpanan pesan melalui LDA "deliver" Dovecot (agen pengiriman lokal). Jika Anda dapat menemukan teks berikut di /var/log/maillog
file, maka persyaratan ini terpenuhi.
postfix/lmtp
atau
delivered via dovecot service
Jalankan perintah berikut install dovecot-pigeonhole paket dari repositori perangkat lunak CentOS/RHEL.
sudo dnf install dovecot-pigeonhole
Paket ini menginstal dua file konfigurasi di bawah /etc/dovecot/conf.d/
direktori:90-sieve.conf
dan 90-sieve-extprograms.conf
. Buka 15-lda.conf
berkas.
sudo nano /etc/dovecot/conf.d/15-lda.conf
Tambahkan plugin saringan ke agen pengiriman lokal (LDA).
protocol lda { # Space separated list of plugins to load (default is global mail_plugins). mail_plugins = $mail_plugins sieve }
Simpan dan tutup file. Jika Anda dapat menemukan 20-lmtp.conf
file di bawah /etc/dovecot/conf.d/
direktori, maka Anda juga harus mengaktifkan plugin sieve di file itu seperti di bawah ini.
protocol lmtp { mail_plugins = quota sieve }
Kemudian buka 90-sieve.conf
berkas.
sudo nano /etc/dovecot/conf.d/90-sieve.conf
Pergi ke baris 79 dan tambahkan baris berikut, yang memberitahu Saringan untuk selalu menjalankan SpamToJunk.sieve skrip sebelum skrip khusus pengguna.
sieve_before = /var/mail/SpamToJunk.sieve
Simpan dan tutup file. Kemudian buat skrip saringan.
sudo nano /var/mail/SpamToJunk.sieve
Tambahkan baris berikut, yang memberi tahu Dovecot untuk memindahkan pesan email apa pun dengan X-Spam-Flag: YES
tajuk ke folder Sampah.
require "fileinto"; if header :contains "X-Spam-Flag" "YES" { fileinto "Junk"; stop; }
Simpan dan tutup file. Kami dapat mengkompilasi skrip ini, sehingga akan berjalan lebih cepat.
sudo sievec /var/mail/SpamToJunk.sieve
Sekarang ada file biner yang disimpan sebagai /var/mail/SpamToJunk.svbin . Edit file 10-mail.conf.
/etc/dovecot/conf.d/10-mail.conf
Tambahkan baris berikut dalam file, sehingga skrip saringan pengguna individu dapat disimpan di direktori home-nya.
mail_home = /var/vmail/%d/%n
Terakhir, mulai ulang dovecot agar perubahan diterapkan.
sudo systemctl restart dovecot
Setel Ukuran Maksimum Pesan
Secara default, SpamAssassin tidak memeriksa pesan dengan lampiran yang lebih besar dari 500KB, seperti yang ditunjukkan oleh baris berikut di /var/log/mail.log
berkas.
spamc[18922]: skipped message, greater than max message size (512000 bytes)
max-size
default default diatur ke 512000 (byte). Nilai yang tinggi dapat meningkatkan beban server, tetapi saya pikir ukuran defaultnya agak kecil. Untuk menambah ukuran maksimal, edit /etc/sysconfig/spamass-milter
file dan temukan baris berikut.
EXTRA_FLAGS="-m -r 8 -R SPAM_ARE_NOT_ALLOWED_HERE -i 127.0.0.1 -g sa-milt"
Tambahkan -- --max-size=5120000
pilihan di akhir.
EXTRA_FLAGS="-m -r 8 -R SPAM_ARE_NOT_ALLOWED_HERE -i 127.0.0.1 -g sa-milt -- --max-size=5120000"
--
. yang kosong opsi memberi tahu pembuat spam untuk meneruskan semua opsi yang tersisa ke spamc , yang memahami --max-size
pilihan. Saya meningkatkan ukurannya menjadi 5000KB. Simpan dan tutup file. Kemudian mulai ulang spamass-milter.
sudo systemctl restart spamass-milter
Cara Mengonfigurasi Preferensi Pengguna Individual
Anda mungkin ingin menetapkan aturan khusus untuk email yang dikirim ke alamat tertentu di server email. Saya sangat menyukai fitur ini. Saya memiliki alamat email kontak untuk blog ini, yang hanya digunakan untuk menjaga kontak dengan pembaca. Saya tidak menggunakan alamat email kontak di tempat lain , sehingga saya dapat membuat aturan pemfilteran spam khusus yang hanya berlaku untuk alamat email kontak ini.
Pertama, edit file konfigurasi utama SpamAssassin.
sudo nano /etc/mail/spamassassin/local.cf
Tambahkan baris berikut untuk mengizinkan aturan pengguna.
allow_user_rules 1
Simpan dan tutup file. Selanjutnya, edit file lingkungan SpamAssassin.
sudo nano /etc/sysconfig/spamassassin
Temukan baris berikut.
SPAMDOPTIONS="-c -m5 -H --razor-home-dir='/var/lib/razor/' --razor-log-file='sys-syslog'"
Kami perlu menambahkan beberapa opsi tambahan.
SPAMDOPTIONS="-c -m5 -H --razor-home-dir='/var/lib/razor/' --razor-log-file='sys-syslog' --nouser-config --virtual-config-dir=/var/vmail/%d/%l/spamassassin --username=vmail"
Dimana:
--nouser-config
:nonaktifkan file konfigurasi per pengguna untuk pengguna Unix lokal.--virtual-config-dir
:menentukan direktori konfigurasi per pengguna untuk pengguna virtual.%d
placeholder mewakili bagian domain dari alamat email dan%l
mewakili bagian lokal dari alamat email.--username
:jalankan spamd sebagai pengguna vmail.
Simpan dan tutup file. Kemudian restart SpamAssassin.
sudo systemctl restart spamassassin
Secara default, spamass-milter tidak meneruskan alamat penerima ke SpamAssassin. Kita perlu membuatnya mengirim alamat email lengkap ke SpamAssassin. Edit file konfigurasi spamass-milter.
sudo nano /etc/sysconfig/spamass-milter
Tambahkan opsi berikut.
-e yourdomain.com -u sa-milt
Seperti ini:
EXTRA_FLAGS="-e yourdomain.com -u sa-milt -m -r 8 -R SPAM_ARE_NOT_ALLOWED_HERE -i 127.0.0.1 -g sa-milt -- --max-size=5120000"
-e
pilihan akan membuat spamass-milter meneruskan alamat email lengkap ke SpamAssassin. Ganti yourdomain.com dengan nama domain asli Anda. Simpan dan tutup file. Kemudian mulai ulang spamass-milter.
sudo systemctl restart spamass-milter
Sekarang kirim email dari Gmail, Hotmail, dll ke alamat email domain Anda. Anda akan menemukan direktori spamassassin dibuat secara otomatis di bawah /var/vmail/yourdomain.com/username/
direktori.
cd /var/vmail/yourdomain.com/username/spamassassin/
Anda dapat menggunakan editor teks baris perintah untuk membuat file preferensi per pengguna di sini. File ini harus diberi nama sebagai user_prefs
.
sudo nano user_prefs
Anda dapat menambahkan aturan khusus dalam file ini seperti yang akan Anda lakukan di /etc/spamassassin/local.cf
berkas.
Misalnya, saya menemukan banyak spammer mengakhiri badan email mereka dengan tautan berhenti berlangganan untuk memungkinkan Anda menghapus kontak di masa mendatang. Saya tidak berlangganan spam mereka dan saya tidak berpikir tautan berhenti berlangganan akan menghapus alamat email saya dari basis data kontak mereka. Jadi saya menggunakan SpamAssassin untuk mencetak email semacam ini. Aturan berikut menambahkan skor 3.0 ke email yang berisi kata "berhenti berlangganan" atau variasinya di badan. (Saya tidak menggunakan alamat email kontak blog ini untuk berlangganan apa pun secara online.)
body SUBSCRIPTION_SPAM /(unsubscribe|u n s u b s c r i b e|Un-subscribe)/i describe SUBSCRIPTION_SPAM I didn't subscribe to your spam. score SUBSCRIPTION_SPAM 3.0
Terkadang badan email tidak berisi kata “berhenti berlangganan”, tetapi ada List-Unsubscribe
header, yang berarti spammer menambahkan alamat email kontak saya ke milis mereka tanpa persetujuan saya. Saya juga bisa menilai email jenis ini, dengan aturan berikut.
header LIST_UNSUBSCRIBE ALL =~ /List-Unsubscribe/i describe LIST_UNSUBSCRIBE I didn't join your mailing list. score LIST_UNSUBSCRIBE 2.0
Saya membuat akun Mailjet dengan alamat email yang berbeda. Beberapa spammer berasumsi bahwa saya menggunakan alamat email kontak saya untuk membuat akun Mailjet, jadi mereka mencoba meniru layanan pelanggan Mailjet untuk memikat saya agar mengetikkan kata sandi saya di halaman login Mailjet palsu. Saya dapat menilai email semacam ini seperti di bawah ini.
header MAILJET_IMPOSTER From =~ /mailjet/i describe MAILJET_IMPOSTER I don't have a mailjet account for this email address. score MAILJET_IMPOSTER 2.5
Baris di atas memeriksa apakah From:
header berisi kata mailjet
. Jika ditemukan, beri skor 2,5.
Saya terkadang menerima email dari spammer China yang From:
nama domain tidak memiliki huruf vokal (a, e, i, o, u). Spammer menggunakan cdjcbzclyxgs.xyz
nama domain. Hampir tidak mungkin bagi orang/entitas normal untuk menggunakan nama domain tanpa huruf vokal, mengingat banyak domain tingkat atas sudah menyertakan huruf vokal (.com, .net, .org, .co, .io, .shop, .dev , dll), jadi saya memberikan email semacam ini skor yang sangat tinggi seperti di bawah ini. Skor default adalah 0,5.
score FROM_DOMAIN_NOVOWEL 4.0
Beberapa email spam menggunakan banyak gambar di badan tetapi berisi sangat sedikit teks. Skor default untuk email jenis ini adalah 1,9, tetapi saya lebih suka menetapkan skor tinggi untuk alamat email kontak saya.
score HTML_IMAGE_RATIO_02 4.0
Saya juga menerima email spam dengan alamat email saya di subjek, sehingga saya dapat menambahkan skor tinggi untuk itu.
header SUBJECT_SPAM Subject =~ /xiao\@linuxbabe.com/i describe SUBJECT_SPAM Subject contains my email address. score SUBJECT_SPAM 4.0
Beberapa spammer menggunakan BCC (Blind Carbon Copy) untuk menyembunyikan penerima lain. Saya tidak ingin menerima email seperti itu. Jadi saya membuat aturan berikut. Jika nama domain saya tidak ada di header To:, tambahkan 3.0 ke email.
header __DOMAIN_IN_TO To =~ /linuxbabe.com/ meta DOMAIN_NOT_IN_TO !__DOMAIN_IN_TO score DOMAIN_NOT_IN_TO 3.0
Setelah menambahkan aturan khusus, tutup file dan jalankan perintah berikut untuk memeriksa sintaks. Keluaran senyap berarti tidak ada kesalahan sintaksis.
sudo spamassassin --lint
Terakhir, mulai ulang SpamAssassin agar perubahan diterapkan.
sudo systemctl restart spamassassin
Sekarang Anda dapat menguji preferensi pengguna dengan mengirimkan email percobaan dari layanan email lain ke alamat email domain Anda sendiri.
Tolak atau Pantulkan
Jika server SMTP penerima menentukan selama percakapan SMTP bahwa ia tidak akan menerima pesan, ia akan menolak pesan tersebut. Terkadang server SMTP menerima pesan dan kemudian menemukan bahwa pesan tersebut tidak dapat terkirim, mungkin penerima yang dituju tidak ada atau ada masalah dalam pengiriman akhir. Dalam hal ini, server SMTP yang telah menerima pesan akan mengembalikannya ke pengirim asli dengan mengirimkan laporan kesalahan, biasanya termasuk alasan pesan asli tidak dapat dikirim.
Anda tidak boleh memantulkan spam, karena alamat email di Return-path:
header atau From:
header mungkin tidak ada atau merupakan alamat email orang yang tidak bersalah, jadi pesan bouncing mungkin akan masuk ke alamat email orang yang tidak bersalah, menciptakan masalah backscatter. Alih-alih memantulkan spam, Anda harus menolak spam selama dialog SMTP, sebelum email diterima. Artikel ini tidak menunjukkan bahwa Anda memantulkan pesan spam. Anda harus mengingat aturan ini jika Anda akan membuat aturan filter spam sendiri. Jika ragu, uji aturan pemfilteran spam Anda untuk melihat apakah aturan tersebut akan membuat pesan terpental.
URIBL_BLOCKED
Secara default, SpamAssassin mengaktifkan aturan URIBL, yang memeriksa apakah pesan email berisi tautan yang diidentifikasi sebagai spam oleh URIBL. Ini adalah pengukuran anti-spam yang sangat efektif. Namun, Anda mungkin diblokir untuk menanyakan URIBL. Periksa header email mentah dari pesan email masuk, temukan X-Spam-Status
tajuk.
X-Spam-Status: No, score=-92.2 required=5.0 tests=DATING_SPAM,DKIM_SIGNED, DKIM_VALID,HTML_FONT_LOW_CONTRAST,HTML_MESSAGE,SPF_PASS, SUBSCRIPTION_SPAM,UNPARSEABLE_RELAY,URIBL_BLOCKED,USER_IN_WHITELIST autolearn=no autolearn_force=no version=3.4.2
Jika Anda dapat menemukan URIBL_BLOCKED di header ini, itu berarti Anda diblokir dari kueri URIBL. Sebagian besar waktu itu karena Anda tidak menggunakan resolver DNS lokal Anda sendiri. Anda dapat menjalankan perintah berikut di server email Anda untuk menguji server DNS mana yang Anda gunakan untuk menanyakan URIBL.
host -tTXT 2.0.0.127.multi.uribl.com
Contoh keluaran:
2.0.0.127.multi.uribl.com descriptive text "127.0.0.1 -> Query Refused. See http://uribl.com/refused.shtml for more information [Your DNS IP: xx.xx.xx.xx]"
Untuk memperbaiki kesalahan ini, Anda perlu menjalankan resolver DNS lokal Anda sendiri di server email Anda.
- Jalankan Resolver DNS BIND Anda Sendiri di CentOS/RHEL
Setelah resolver DNS lokal Anda aktif dan berjalan, uji URIBL lagi.
host -tTXT 2.0.0.127.multi.uribl.com
Jika Anda melihat output berikut, itu berarti Anda sekarang diizinkan untuk mengkueri URIBL.
2.0.0.127.multi.uribl.com descriptive text "permanent testpoint"
Mulai sekarang, pesan email masuk tidak akan memiliki tag URIBL_BLOCKED di X-Spam-Status
tajuk.
Informasi Menarik Lainnya
SpamAssassin 4.0 menyertakan plugin HashBL, yang dapat memeriksa apakah alamat Bitcoin di badan email telah digunakan oleh scammers. Dan ada juga plugin baru bernama "Ole Macro" yang dapat memeriksa apakah email berisi lampiran Office dengan makro. Plugin ini akan mencoba mendeteksi apakah makro yang dilampirkan berbahaya atau tidak.