GNU/Linux >> Belajar Linux >  >> Cent OS

Siapkan SpamAssassin di CentOS/RHEL untuk Memblokir Spam Email

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.


Cent OS
  1. Cara mengatur children-max untuk Layanan udev di CentOS/RHEL 7

  2. Setel Kata Sandi untuk Mode Pengguna Tunggal di Linux (CentOS/RHEL)

  3. CentOS / RHEL 7 :Cara mengatur target default (runlevel default)

  1. Cara Mengatur atau Mengubah Nama Host di CentOS 7 / RHEL 7

  2. Bagaimana Cara Menonaktifkan Laporan Email LogWatch di CentOS/RHEL/Fedora?

  3. Cara mengatur nama perangkat khusus menggunakan udev di CentOS/RHEL 7

  1. Cara Menyesuaikan Opsi Screensaver Di Gnome di CentOS/RHEL 7

  2. Cara Mengatur Afinitas CPU untuk Proses SISTEM di CentOS/RHEL 7

  3. Cara mengatur pengaturan ethtool secara permanen di CentOS/RHEL 6