Cara Menambahkan Antivirus dan Perlindungan Spam ke Server Email Postfix dengan ClamAV dan SpamAssassin - Bagian 3


Dalam dua artikel sebelumnya dari seri Postfix ini Anda telah mempelajari cara mengatur dan mengelola database server email melalui phpMyAdmin, dan cara mengkonfigurasi Postfix dan Dovecot untuk menangani email masuk dan keluar. Selain itu, kami menjelaskan cara menyiapkan klien email, seperti Thunderbird, untuk akun virtual yang kami buat sebelumnya.

  1. Siapkan Server Email Postfix dan Dovecot dengan MariaDB – Bagian 1
  2. Cara Konfigurasi Postfix dan Dovecot dengan Pengguna Domain Virtual – Bagian 2
  3. Instal dan Konfigurasikan Klien Webmail RoundCube dengan Pengguna Virtual di Postfix – Bagian 4
  4. Gunakan Sagator, Gerbang Antivirus/Antispam untuk Melindungi Server Email Anda – Bagian 5

Karena tidak ada penyiapan server email yang dapat diselesaikan tanpa mengambil tindakan pencegahan terhadap virus dan spam, kami akan membahas topik tersebut di artikel kali ini.

Harap diingat bahwa meskipun sistem operasi *mirip nix biasanya dianggap bebas virus, kemungkinan besar klien yang menggunakan sistem operasi lain juga akan terhubung ke server email Anda.

Oleh karena itu, Anda perlu memberi mereka keyakinan bahwa Anda telah mengambil tindakan yang diperlukan untuk melindungi mereka semaksimal mungkin dari ancaman tersebut.

Mengonfigurasi SpamAssassin untuk Postfix

Dalam proses menerima email, spamassassin akan berdiri di antara dunia luar dan layanan email yang berjalan di server Anda sendiri. Jika ditemukan, sesuai dengan aturan definisi dan konfigurasinya, bahwa pesan masuk adalah spam, maka ia akan menulis ulang baris subjek untuk mengidentifikasinya dengan jelas. Mari kita lihat caranya.

File konfigurasi utama adalah /etc/mail/spamassassin/local.cf, dan kita harus memastikan opsi berikut tersedia (tambahkan jika tidak ada atau batalkan komentar jika perlu):

report_safe 0
required_score 8.0
rewrite_header Subject [SPAM]
  1. Jika report_safe disetel ke 0 (nilai yang disarankan), spam yang masuk hanya diubah dengan memodifikasi header email sesuai rewrite_header. Jika disetel ke 1, pesan akan dihapus.
  2. Untuk menyetel agresivitas filter spam, skor_yang diperlukan harus diikuti dengan bilangan bulat atau angka desimal. Semakin kecil angkanya, semakin sensitif filternya. Menyetel required_score ke nilai antara 8.0 dan 10.0 direkomendasikan untuk sistem besar yang melayani banyak (~100 detik) akun email.

Setelah Anda menyimpan perubahan tersebut, aktifkan dan mulai layanan filter spam, lalu perbarui aturan spam:

systemctl enable spamassassin
systemctl start spamassassin
sa-update

Untuk opsi konfigurasi lebih lanjut, Anda mungkin ingin merujuk ke dokumentasi dengan menjalankan perldoc Mail::SpamAssassin::Conf di baris perintah.

Mengintegrasikan Postfix dan SpamAssassin

Untuk mengintegrasikan Postfix dan spamassassin secara efisien, kita perlu membuat pengguna dan grup khusus untuk menjalankan daemon filter spam:

useradd spamd -s /bin/false -d /var/log/spamassassin

Selanjutnya, tambahkan baris berikut di bagian bawah /etc/postfix/master.cf:

spamassassin unix - n n - - pipe flags=R user=spamd argv=/usr/bin/spamc -e /usr/sbin/sendmail -oi -f ${sender} ${recipient}

Dan tunjukkan (di bagian atas) bahwa pembunuh spam akan berfungsi sebagai filter_konten:

-o content_filter=spamassassin

Terakhir, restart Postfix untuk menerapkan perubahan:

systemctl restart postfix

Untuk memverifikasi bahwa SpamAssassin berfungsi dengan baik dan mendeteksi spam yang masuk, pengujian yang dikenal sebagai GTUBE (Tes Umum untuk Email Massal yang Tidak Diminta) disediakan.

Untuk melakukan tes ini, kirim email dari domain di luar jaringan Anda (seperti Yahoo!, Hotmail, atau Gmail) ke akun yang berada di server email Anda. Atur baris Subjek sesuai keinginan Anda dan sertakan teks berikut di badan pesan:

XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X

Misalnya, mengirimkan teks di atas dalam isi pesan dari akun Gmail saya menghasilkan hasil sebagai berikut:

Dan menunjukkan pemberitahuan terkait di log:

journalctl | grep spam

Seperti yang Anda lihat pada gambar di atas, pesan email ini mendapat skor spam 1002,3. Selain itu, Anda dapat menguji spamassassin langsung dari baris perintah:

spamassassin -D < /usr/share/doc/spamassassin-3.4.0/sample-spam.txt

Perintah di atas akan menghasilkan beberapa keluaran yang sangat panjang yang mencakup hal-hal berikut:

Jika pengujian ini tidak berhasil, Anda mungkin ingin merujuk ke panduan integrasi pembunuh spam.

Memulai ClamAV dan Memperbarui Definisi Virus

Untuk memulai, kita perlu mengedit /etc/clamd.d/scan.conf. Batalkan komentar pada baris berikut:

LocalSocket /var/run/clamd.scan/clamd.sock

dan mengomentari atau menghapus baris:

Example

Kemudian aktifkan dan mulai daemon pemindai clamav:

systemctl enable [email 
systemctl start [email 

dan jangan lupa setel boolean SELinux antivirus_can_scan_system ke 1:

setsebool -P antivirus_can_scan_system 1

Pada titik ini, ada baiknya untuk memeriksa status layanan:

Seperti yang Anda lihat pada gambar di atas, tanda tangan virus kami berumur lebih dari 7 hari. Untuk memperbaruinya kami akan menggunakan alat bernama freshclam yang diinstal sebagai bagian dari paket clamav-update.

Cara termudah untuk memperbarui definisi virus adalah melalui tugas cron yang dijalankan sesering yang diinginkan (misalnya sehari sekali, pada waktu server 1 pagi seperti yang ditunjukkan dalam contoh berikut dianggap cukup):

00 01 * * * root /usr/share/clamav/freshclam-sleep

Anda juga dapat memperbarui definisi virus secara manual, namun sebelumnya Anda juga harus menghapus atau mengomentari baris berikut di /etc/freshclam.conf.

Example

Sekarang Anda seharusnya dapat menjalankan:

freshclam

yang akan memperbarui definisi virus sesuai keinginan:

Menguji ClamAV untuk Virus di Email

Untuk memverifikasi ClamAV berfungsi dengan benar, mari unduh virus uji (yang bisa kita dapatkan dari http://www.eicar.org/download/eicar.com) ke Maildir [dilindungi email] ( yang terletak di /home/vmail/linuxnewz.com/tecmint/Maildir) untuk menyimulasikan file terinfeksi yang diterima sebagai lampiran email:

cd /home/vmail/linuxnewz.com/tecmint/Maildir
wget http://www.eicar.org/download/eicar.com

Lalu pindai direktori /home/vmail/linuxnewz.com secara rekursif:

clamscan --infected --remove --recursive /home/vmail/linuxnewz.com

Sekarang, silakan atur pemindaian ini agar dijalankan melalui cronjob. Buat file bernama /etc/cron.daily/dailyclamscan, masukkan baris berikut:

#!/bin/bash
SCAN_DIR="/home/vmail/linuxnewz.com"
LOG_FILE="/var/log/clamav/dailyclamscan.log"
touch $LOG_FILE
/usr/bin/clamscan --infected --remove --recursive $SCAN_DIR >> $LOG_FILE

dan berikan izin eksekusi:

chmod +x /etc/cron.daily/dailyclamscan

Cronjob di atas akan memindai direktori server email secara rekursif dan meninggalkan log operasinya di /var/log/clamav/dailyclamscan.log (pastikan /var/log/clamav direktori ada).

Mari kita lihat apa yang terjadi ketika kita mengirim file eicar.com dari [email  ke [email :

Ringkasan

Jika Anda mengikuti langkah-langkah yang dijelaskan dalam tutorial ini dan dalam dua artikel sebelumnya dari seri ini, Anda sekarang memiliki server email Postfix yang berfungsi dengan perlindungan spam dan antivirus.

PENOLAKAN: Harap dicatat bahwa keamanan server adalah subjek yang luas dan tidak dapat dibahas secara memadai dalam seri pendek seperti ini.

Oleh karena itu, saya sangat menganjurkan Anda untuk memahami alat-alat yang digunakan dalam seri ini dan halaman manualnya. Meskipun saya telah melakukan yang terbaik untuk membahas konsep-konsep penting yang terkait dengan topik ini, jangan berasumsi bahwa setelah membaca seri ini Anda sepenuhnya memenuhi syarat untuk menyiapkan dan memelihara server email di lingkungan produksi.

Seri ini dimaksudkan sebagai titik awal dan bukan sebagai panduan lengkap mengenai administrasi server email di Linux.

Anda mungkin akan memikirkan ide lain yang dapat memperkaya seri ini. Jika demikian, silakan kirimkan catatan kepada kami menggunakan formulir komentar di bawah. Pertanyaan dan saran lainnya juga kami hargai – kami menantikan tanggapan Anda!