GNU/Linux >> Belajar Linux >  >> Ubuntu

Menyiapkan Amavis dan ClamAV di Server Mail Ubuntu

Ini adalah bagian 11 di server email Ubuntu dari seri tutorial awal. Dalam artikel ini, saya akan menunjukkan cara menggunakan Amavis dan ClamAV untuk memindai virus dalam pesan email.

Amavis (Pemindai Virus Mail) adalah antarmuka berkinerja tinggi antara agen transfer pesan (MTA) seperti Postfix dan filter konten. Filter konten adalah program yang memindai header dan isi pesan email, dan biasanya mengambil tindakan berdasarkan apa yang ditemukannya. Contoh paling umum adalah pemindai virus ClamAV dan SpamAssassin .

Amavis berbicara protokol SMTP standar dan juga dapat menggunakan antarmuka milter Sendmail. Biasanya digunakan untuk

  • pemindaian virus dengan mengintegrasikan dengan ClamAV (Clam AntiVirus)
  • pemeriksaan spam dengan mengintegrasikan dengan SpamAssassin
  • Penandatanganan dan verifikasi DKIM. (Sebenarnya, saya lebih suka menggunakan OpenDKIM untuk penandatanganan dan verifikasi DKIM.)

Prasyarat

Anda harus menyelesaikan setidaknya bagian 1 (server SMTP Postfix) dan bagian 2 (server IMAP Dovecot) dari server email Ubuntu dari seri tutorial awal. Perhatikan bahwa jika Anda menggunakan iRedMail atau Modoboa untuk menyiapkan server email Anda, maka Amavis dan ClamAV sudah diinstal dan dikonfigurasi, jadi Anda tidak perlu mengikuti tutorial ini.

Peringatan :Amavis dan ClamAV membutuhkan RAM yang cukup besar. Pastikan Anda memiliki setidaknya 1,3 GB RAM gratis di server Anda sebelum menginstal Amavis dan ClamAV. Seluruh tumpukan server email (Postfix, Dovecot, Amavis, ClamAV, SpamAssassin, OpenDKIM, MySQL/MariaDB, PostfixAdmin, dan Roundcube Webmail) membutuhkan setidaknya 3 GB RAM agar berjalan lancar. Jika RAM Anda habis, Anda akan mengalami masalah seperti server email offline atau tidak responsif.

Langkah 1:Instal Amavis di Ubuntu

Amvis tersedia dari repositori default Ubuntu, jadi jalankan perintah berikut untuk menginstalnya.

sudo apt install amavisd-new -y

Setelah diinstal, secara otomatis dimulai. Anda dapat memeriksa statusnya dengan:

systemctl status amavis

Keluaran:

● amavis.service - LSB:Memulai amavisd-new mailfilter Dimuat:dimuat (/etc/init.d/amavis; dibuat) Aktif:aktif (berjalan) sejak Jum 2020-08-07 15:43:40 HKT; 1 menit 1 dtk yang lalu Dokumen:man:systemd-sysv-generator(8) Tugas:3 (batas:9451) Memori:75.4M CGroup:/system.slice/amavis.service 1794260 /usr/sbin/amavisd-new (master ) 1794263 /usr/sbin/amavisd-new (anak perawan) 1794264 /usr/sbin/amavisd-new (anak perawan)

Jika tidak berjalan, Anda dapat memulainya dengan:

sudo systemctl start amavis

Aktifkan mulai otomatis saat boot.

sudo systemctl aktifkan amavis

Secara default, ia mendengarkan di 127.0.0.1:10024 , seperti yang dapat dilihat dengan:

sudo netstat -lnpt | grep amavis

Dan itu berjalan sebagai amavis pengguna. Untuk memeriksa nomor versi, jalankan

amavisd-baru -V

Contoh keluaran:

amavisd-new-2.11.0 (20160426)

Untuk memeriksa log Amavis, Anda dapat menjalankan

sudo journalctl -eu amavis

Virus biasanya menyebar sebagai lampiran pada pesan email. Instal paket berikut untuk Amavis untuk mengekstrak dan memindai file arsip dalam pesan email seperti .7z , .cab , .doc , .exe , .iso , .jar , dan .rar file.

sudo apt install arj bzip2 cabextract file cpio rpm2cpio gzip lhasa nomarch pax rar unrar p7zip-full unzip zip lrzip lzip liblz4-tool lzop unrar-free

Jika Anda menggunakan Ubuntu 18.04, maka instal juga ripole paket.

sudo apt install ripole

Perhatikan bahwa jika server Anda tidak menggunakan nama domain yang sepenuhnya memenuhi syarat (FQDN) sebagai nama host, Amavis mungkin gagal untuk memulai. Dan nama host OS mungkin berubah, jadi disarankan untuk menyetel nama host yang valid langsung di file konfigurasi Amavis.

sudo nano /etc/amavis/conf.d/05-node_id

Temukan baris berikut.

#$myhostname ="mail.example.com";

Hapus karakter komentar (#) dan ubah mail.example.com ke nama host asli Anda.

$myhostname ="mail.linuxbabe.com";

Simpan dan tutup file. Mulai ulang Amavis agar perubahan diterapkan.

sudo systemctl restart amavis

Langkah 2:Integrasikan Server SMTP Postfix Dengan Amavis

Amavisd-new berfungsi sebagai proxy SMTP. Email diumpankan melalui SMTP, diproses, dan diumpankan kembali ke MTA melalui koneksi SMTP baru.

Edit file konfigurasi utama Postfix.

sudo nano /etc/postfix/main.cf

Tambahkan baris berikut di akhir file. Ini memberitahu Postfix untuk mengaktifkan pemfilteran konten dengan mengirimkan setiap pesan email yang masuk ke Amavis, yang mendengarkan 127.0.0.1:10024 .

content_filter =smtp-amavis:[127.0.0.1]:10024

Juga, tambahkan baris berikut.

smtpd_proxy_options =speed_adjust

Ini akan menunda koneksi Postfix ke filter konten hingga seluruh pesan email telah diterima, yang dapat mencegah filter konten membuang-buang waktu dan sumber daya untuk klien SMTP yang lambat.

Simpan dan tutup file. Kemudian edit master.cf berkas.

sudo nano /etc/postfix/master.cf

Tambahkan baris berikut di akhir file. Ini menginstruksikan Postfix untuk menggunakan komponen klien SMTP khusus yang disebut smtp-amavis untuk mengirimkan pesan email ke Amavis. Harap izinkan setidaknya satu karakter spasi (tab atau spasi) sebelum setiap -o . Dalam konfigurasi postfix, karakter spasi putih sebelumnya berarti bahwa baris ini merupakan kelanjutan dari baris sebelumnya.

smtp-amavis unix - - n - 2 smtp -o syslog_name=postfix/amavis -o smtp_data_done_timeout=1200 -o smtp_send_xforward_command=yes -o disable_dns_lookups=yes -o max_use
 Kemudian tambahkan baris berikut di akhir file. Ini memberitahu Postfix untuk menjalankan daemon smtpd tambahan yang mendengarkan di 127.0.0.1:10025 untuk menerima pesan email kembali dari Amavis.

127.0.0.1:10025 inet n - n - - smtpd -o syslog_name=postfix/10025 -o content_filter=-o mynetworks_style=host -o mynetworks=127.0.0.0/8 -o local_recipient_maps=-o relay_recipient_maps=-o strict_rfc821_envelopes =yes -o smtp_tls_security_level =none -o smtpd_tls_security_level =none -o smtpd_restriction_classes =-o smtpd_delay_reject =tidak -o smtpd_client_restrictions =permit_mynetworks, menolak -o smtpd_helo_restrictions =-o smtpd_sender_restrictions =-o smtpd_recipient_restrictions =permit_mynetworks, menolak -o smtpd_end_of_data_restrictions =-o smtpd_error_sleep_time=0 -o smtpd_soft_error_limit=1001 -o smtpd_hard_error_limit=1000 -o smtpd_client_connection_count_limit=0 -o smtpd_client_connection_rate_limit=0 -o accept_override_options 

Simpan dan tutup file. Mulai ulang Postfix agar perubahan diterapkan.

sudo systemctl restart postfix

Langkah 3:Integrasikan Amavis dengan ClamAV

Sekarang Postfix dapat meneruskan email masuk ke Amavis, kita perlu menginstal pemindai virus ClamAV dan mengintegrasikannya dengan Amavis, sehingga email masuk dapat dipindai oleh ClamAV.

Instal ClamAV di Ubuntu.

sudo apt install clamav clamav-daemon

Akan ada dua layanan systemd yang diinstal oleh ClamAV:

  • clamav-daemon.service :daemon ruang pengguna Clam AntiVirus
  • clamav-freshclam.service :pembaru basis data virus ClamAV

Pertama, periksa status clamav-freshclam.service .

systemctl status clamav-freshclam

Seperti yang Anda lihat, ini aktif (berjalan) dan menggunakan 217,6 juta RAM di server email saya. Kemudian periksa jurnal/log.

sudo journalctl -eu clamav-freshclam

Keluaran:

Petunjuk:Jika perintah di atas tidak segera berhenti, tekan tombol Q untuk menghentikannya.

Kita dapat melihat bahwa freshclam download 3 database virus. CVD adalah singkatan dari ClamAV Virus Database.

  • daily.cvd
  • main.cvd
  • bytecode.cvd

Namun, clamd tidak diberi tahu karena freshclam tidak dapat terhubung ke clamd melalui /var/run/clamav/clamd.ctl . Periksa status clamav-daemon.service .

systemctl status clamav-daemon

Keluaran:

Seperti yang Anda lihat, gagal untuk memulai karena kondisi tidak terpenuhi. Dalam /lib/systemd/system/clamav-daemon.service file, ada dua syarat:

ConditionPathExistsGlob=/var/lib/clamav/main.{c[vl]d,inc}ConditionPathExistsGlob=/var/lib/clamav/daily.{c[vl]d,inc}

clamav-daemon.service gagal memulai karena main.cvd dan daily.cvd belum diunduh saat dimulai. Jadi kita hanya perlu me-restart layanan ini.

sudo systemctl restart clamav-daemon

Sekarang harus berjalan. Omong-omong, ini menggunakan 731.4M RAM di server email saya. Jika server email Anda tidak memiliki cukup RAM tersisa, layanan akan gagal.

systemctl status clamav-daemon.service

clamav-freshclam.service akan memeriksa pembaruan basis data virus ClamAV sekali per jam.

Sekarang kita perlu mengaktifkan pemeriksaan virus di Amavis.

sudo nano /etc/amavis/conf.d/15-content_filter_mode

Batalkan komentar pada baris berikut untuk mengaktifkan pemeriksaan virus.

#@bypass_virus_checks_maps =(#      \%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re);

Simpan dan tutup file. Ada banyak pemindai antivirus di /etc/amavis/conf.d/15-av_scanners mengajukan. ClamAV adalah default. Amavis akan memanggil ClamAV melalui /var/run/clamav/clamd.ctl soket Unix. Kita perlu menambahkan pengguna clamav ke amavis grup.

sudo adduser clamav amavis

Kemudian restart daemon Amavis dan ClamAV agar perubahan diterapkan.

sudo systemctl restart amavis clamav-daemon

Periksa log.

sudo journalctl -eu amavis

Anda dapat melihat bahwa Amavis sekarang menggunakan ClamAV untuk memindai virus.

08 Agustus 17:26:19 mail.linuxbabe.com amavis[1233432]:Menggunakan kode pemindai av internal utama untuk ClamAV-clamd 08 Agustus 17:26:19 mail.linuxbabe.com amavis[1233432]:Ditemukan pemindai av sekunder ClamAV-clamscan di /usr/bin/clamscan

Sekarang jika Anda mengirim email dari server email lain seperti Gmail ke server email Anda sendiri dan memeriksa header email, Anda dapat menemukan baris seperti di bawah ini, yang menunjukkan email ini telah dipindai oleh Amavis.

X-Virus-Scanned:Debian amavisd-baru di linuxbabe.com

Anda juga harus memeriksa log email (/var/log/mail.log ) untuk mengetahui apakah ada kesalahan.

Langkah 4:Gunakan Port Khusus untuk Pengiriman Email

ClamAV dapat memindai email masuk dan keluar sekarang. Amavis mendengarkan pada port 10024 untuk pesan email masuk dan keluar. Namun, ini adalah praktik yang baik untuk menggunakan port yang berbeda seperti 10026 untuk pengiriman email dari pengguna yang diautentikasi. Edit file konfigurasi Amavis.

sudo nano /etc/amavis/conf.d/50-user

Pengaturan khusus harus ditambahkan di antara use strict; dan 1; garis. Secara default, Amavis hanya mendengarkan pada port 10024. Tambahkan baris berikut untuk membuatnya juga mendengarkan pada port 10026.

$inet_socket_port =[10024,10026];

Kemudian tambahkan baris berikut, yang menetapkan kebijakan "ASAL" untuk port 10026.

$interface_policy{'10026'} ='ASAL';

Selanjutnya, tambahkan baris berikut, yang mendefinisikan kebijakan "ASAL".

$policy_bank{'ORIGINATING'} ={ # email seharusnya berasal dari pengguna kami yang berasal => 1, # menyatakan bahwa email dikirimkan oleh klien smtp kami allow_disclaimers => 1, # mengaktifkan penyisipan penafian jika tersedia # beri tahu administrator lokal asal malware virus_admin_maps => ["virusalert\@$mydomain"], spam_admin_maps => ["virusalert\@$mydomain"], warnbadhsender => 1, # paksa konversi MTA ke 7-bit (mis. sebelum penandatanganan DKIM) smtpd_discard_ehlo_keywords => ['8BITMIME'], bypass_banned_checks_maps => [1], # izinkan pengiriman nama dan jenis file apa punterter_dsn_on_notify_success => 0, # jangan hapus NOTIFY=opsi SUCCESS};

Simpan dan tutup file. Mulai ulang Amavis.

sudo systemctl restart amavis

Periksa statusnya untuk melihat apakah restart berhasil.

systemctl status amavis

Selanjutnya, edit file konfigurasi master Postfix.

sudo nano /etc/postfix/master.cf

Tambahkan baris berikut ke submission layanan, jadi email dari klien SMTP yang diautentikasi akan diteruskan ke Amavis mendengarkan pada port 10026. Baris ini akan menimpa (-o ) content_filter parameter di /etc/postfix/main.cf file yang kami tambahkan di langkah 2.

 -o content_filter=smtp-amavis:[127.0.0.1]:10026

Seperti ini:

Jika Anda telah mengaktifkan smtps layanan untuk pengguna Microsoft Outlook, maka Anda juga perlu menambahkan baris ini ke smtps layanan.

Simpan dan tutup file. Mulai ulang Postfix agar perubahan diterapkan.

sudo systemctl restart postfix

Periksa statusnya untuk melihat apakah restart berhasil.

systemctl status postfix

Pemfilteran Spam di Amavis

Catatan :Jika Anda telah mengikuti tutorial SpamAssassin saya, Anda tidak perlu mengaktifkan pemeriksaan spam di Amavis. Jika Anda mengaktifkannya, setiap email akan diperiksa dua kali oleh SpamAssassin.

Untuk mengaktifkan pemeriksaan spam di Amavis, instal SpamAssassin dan paket terkait.

sudo apt install spamassassin libnet-dns-perl libmail-spf-perl pyzor razor

Edit file konfigurasi Amavis.

sudo nano /etc/amavis/conf.d/15-content_filter_mode

Batalkan komentar pada baris berikut untuk mengaktifkan pemeriksaan spam.

#@bypass_spam_checks_maps =(# \%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re);

Simpan dan tutup file. Kemudian mulai ulang Amavis.

sudo systemctl restart amavis

DKIM di Amavis

Dua perangkat lunak umum yang dapat melakukan penandatanganan dan verifikasi DKIM di Linux adalah OpenDKIM dan Amavis. Saya lebih suka menggunakan OpenDKIM karena bekerja lebih baik dengan OpenDMARC. Jadi saya tidak akan menjelaskan cara DKIM menandatangani email Anda di Amavis.

Secara default, Amavis dapat memverifikasi tanda tangan DKIM dari pesan email yang masuk. Jika Anda menjalankan OpenDKIM di server email Anda, maka Anda dapat menonaktifkan verifikasi DKIM di Amavis.

sudo nano /etc/amavis/conf.d/21-ubuntu_defaults

Temukan baris berikut dan ubah 1 ke 0 , jadi Amavis tidak akan memverifikasi tanda tangan DKIM.

$enable_dkim_verification =1;

Simpan dan tutup file. Kemudian mulai ulang Amavis.

sudo systemctl restart amavis

Saat menerima email masuk, Postfix akan memanggil OpenDKIM melalui antarmuka sendmail milter untuk memverifikasi tanda tangan DKIM, kemudian meneruskan email tersebut ke Amavis untuk pemeriksaan virus. Saat mengirim email keluar, Postfix akan memanggil OpenDKIM untuk menandatangani email, lalu meneruskannya ke Amavis untuk pemeriksaan virus.

Meningkatkan Kinerja Amavis

Secara default, Amavis menjalankan 2 proses. Jika Anda melihat baris berikut di log email (/var/log/mail.log ), artinya Amavis tidak dapat memproses email dengan cukup cepat.

postfix/qmgr[1619188]:peringatan:email untuk [127.0.0.1]:10024 menggunakan 4001 dari 4008 entri antrian aktifpostfix/qmgr[1619188]:peringatan:Anda mungkin perlu mengurangi smtp-amavis connect dan helo timeoutspostfix /qmgr[1619188]:warning:agar Postfix dengan cepat melompati hostspostfix/qmgr[1619188] yang tidak tersedia:warning:Anda mungkin perlu meningkatkan main.cf minimal_backoff_time dan maximal_backoff_timepostfix/qmgr[1619188]:warning:agar Postfix membuang waktu lebih sedikit mailmail postfix/qmgr[1619188] tidak terkirim:peringatan:Anda mungkin perlu meningkatkan proses master.cf smtp-amavis limitmail postfix/qmgr[1619188]:peringatan:harap hindari membilas seluruh antrian saat Anda memiliki mail postfix/qmgr[1619188]:peringatan:banyak email yang ditangguhkan, itu buruk untuk kinerja

Untuk meningkatkan kinerja, edit file konfigurasi Amavis.

sudo nano /etc/amavis/conf.d/50-user

Tambahkan baris berikut di file antara use strict; dan 1; garis. Ini akan membuat Amavis menjalankan 4 proses. Jika Anda memiliki 10 inti CPU, Anda dapat mengubah 4 menjadi 10. Perhatikan bahwa menjalankan lebih dari 10 proses Amavis tidak banyak berpengaruh pada kinerja.

$max_servers =4;

Simpan dan tutup file. Kemudian edit file konfigurasi master Postifx.

sudo nano /etc/postfix/master.cf

Temukan smtp-amavis definisi layanan, dan ubah batas proses dari 2 menjadi 4.

smtp-amavis unix - - n - 4 smtp -o syslog_name=postfix/amavis -o smtp_data_done_timeout=1200 -o smtp_send_xforward_command=yes -o disable_dns_lookups=yes -o max_use=20 -o smtp_tls_security_level=none

Simpan dan tutup file. Kemudian restart Amavis dan Postfix agar perubahan diterapkan.

sudo systemctl restart amavis postfix

Sekarang jalankan perintah berikut. Anda akan melihat bahwa ada 4 proses Amavis sekarang.

sudo amavisd-nanny

Tekan Ctrl+C untuk menghentikan amavisd-nanny.

Lewati Pemeriksaan Virus untuk Buletin Anda

Jika Anda menggunakan server email Anda untuk mengirim buletin, dan Anda mengaktifkan Amavis dan ClamAV, maka banyak sumber daya CPU dan RAM akan digunakan untuk pemeriksaan virus saat Anda mengirim buletin ke pelanggan Anda. Itu bisa membuat server email Anda tidak responsif. Anda dapat melewati pemeriksaan virus untuk buletin Anda dengan menggunakan metode di bawah ini.

Edit file konfigurasi master Postfix.

sudo nano /etc/postfix/master.cf

Tambahkan baris berikut di awal file ini. Ini akan mengaktifkan smtpd pada port 2525 dari localhost dan dapat menerima koneksi klien yang dimulai dari server yang sama. Jika ada proses lain yang mendengarkan pada port 2525, Anda dapat mengubah 127.0.0.1:2525 ke yang lain, seperti 127.0.0.1:2552. Perhatikan bahwa content_filter parameter disetel ke none , yang berarti email tidak akan dipindai oleh ClamAV.

127.0.0.1:2525 inet n - - - 1 smtpd -o syslog_name=postfix/2525 -o postscreen_greet_action=ignore -o content_filter=

Kemudian tambahkan baris berikut di akhir file ini. Ganti 12.34.56.78 dengan alamat IP publik server email. Ini akan membuat daemon pengiriman Postfix lain yang mendengarkan pada port 10587. Ini untuk koneksi klien dari server lain.

 12.34.56.78:10587 inet n - y - - smtpd -o syslog_name =postfix / 10587 -o smtpd_tls_security_level =mengenkripsi -o smtpd_tls_wrappermode =tidak ada -o smtpd_sasl_auth_enable =yes -o smtpd_relay_restrictions =permit_sasl_authenticated, menolak -o smtpd_recipient_restrictions =permit_mynetworks, permit_sasl_authenticated,reject -o smtpd_sasl_type=dovecot -o smtpd_sasl_path=private/auth -o content_filter=

Simpan dan tutup file. Kemudian Mulai ulang postfix.

sudo systemctl restart postfix

Jika aplikasi buletin Anda berjalan di server email, tentukan 127.0.0.1:2525 sebagai host SMTP, tanpa otentikasi SMTP. Jika aplikasi buletin Anda berjalan di server yang berbeda, tentukan 12.34.56.78:10587 sebagai host SMTP, dengan otentikasi SMTP.

Pemecahan Masalah

Jika server SMTP Postfix Anda tidak dapat mengirim email keluar, dan Anda menemukan pesan kesalahan berikut di log email (/var/log/mail.log ),

relay=none, delay=239, delays=239/0.04/0/0, dsn=4.3.0, status=deferred (server tidak tersedia atau tidak dapat menerima email)

bisa jadi amavis tidak berjalan, jadi perlu dicek statusnya :

sudo systemctl status amavis

Anda dapat memulai ulang dengan:

sudo systemctl restart amavis

Penyebab lain untuk kesalahan ini adalah Anda menerapkan koneksi TLS untuk Postfix saat mengirim email keluar dengan pengaturan berikut di /etc/postfix/main.cf berkas.

smtp_tls_security_level =menegakkan

Karena Postfix tidak dapat membuat koneksi TLS ke Amavis, maka email tersebut ditangguhkan. Anda harus menggunakan pengaturan berikut.

smtp_tls_security_level =mungkin

Kemudian restart Postfix.


Ubuntu
  1. Cara menginstal DKIM di server Ubuntu

  2. Mengatur NTP Pada Centos dan Ubuntu

  3. Menginstal dan mengatur Php dan Nginx di Ubuntu 20.04

  1. Menyiapkan Server Web Ubuntu?

  2. Instal server email Postfix dan Dovecot di Ubuntu atau Debian

  3. Instal server dan klien vnc di Ubuntu

  1. Cara Menginstal dan Mengonfigurasi Server NFS di Ubuntu 20.04

  2. Cara Menginstal dan Mengkonfigurasi VNC di Ubuntu 20.04

  3. Ubuntu 14 Server Dan Xrdp?