Cerita singkat cerita saya tahu bahwa Linux tidak membutuhkan Antivirus, setidaknya tidak selevel Windows yang memang jadi sasaran sejak dulu kala, cuma ada kalanya(terutama di server) ada dibutuhkan antivirus. Biasanya tujuannya bukan hanya untuk ‘menghalau’ virus pada OS Linux, tetapi juga mencegah penyebaran virus untuk OS lainnya yang mungkin server kita jadi “teerminal” penyebarannya(contohnya mungkin email server, upload file storage pada webapp/mobile app, dll).
Pastinya, tidak jarang apabila Anda bertindak sebagai vendor, client yang Window minded atau memiliki security related departement(ex: perbankan, dan instansi finansial lainnya) masih menggunakan Antivirus sebagai salah satu persyaratan pemilihan vendor(Beneran hehehe).
TBH, ClamAV mungkin bukan yang terbaik, tetapi ClamAV merupakan Antivirus Opensource gratis yang tersedia untuk Linux dan poenginstallannya ada di repository pada Ubuntu series(dan derivative serta mungkin upstreamnya, Debian).
Installasi
Berikut cara installnya(pastikan dalam mode super user, atau jalankan command “sudo su”).
apt update
apt-get install clamav clamav-daemon
Jawab y(Yes) ketika ditanya apakah akan menginstall package tersebut. Setelah selesai, check apakah sudah bener terinstall dengan perintah:
clamscan --version
Update
Sebenernya ClamAV memiliki agent updater yang jalan sebagai daemon yaitu “freshclam” yang settingnya terdapat di file /etc/clamav/freshclam.conf. Tetapi ada baiknya kita langsung jalankan update setelah installasi selesai. Tetapi sebelum dapat melakukan update secara manual, service updater harus dimatikan terlebih dahulu dengan menjalankan perintah sbb:
systemctl stop clamav-freshclam
Kemudian jalankan perintah
freshclam
Setelah proses update selesai, jalankan kembali service updaternya
systemctl start clamav-freshclam
Manual Scan
Cl;amAV merupakan Antivirus yang aslinya hanya melakukan scanning apabila direquest saja(ga realtime macam Windows AV, walau ada caranya dengan menggunakan “clamonacc“). Contoh:
clamscan --infected --recursive /
Perintah diatas akan menjalankan scan mulai dari root directory(“/”) secara recursive dan menampilkan info file yang terinfeksi malware.
clamscan --infected --remove --recursive /
Perintah diatas contoh untuk melakukan scan mulai dari root directory secara recursive, print infected file dan menghapusnya.
clamscan --infected --move /var/clamav/infected --recursive /
Perintah diatas contoh untuk melakukan scan mulai dari root directory secara recursive, print infected file dan memindahkannya ke folder /var/clamav/infected.
Apabila kamu ingin scan beberapa directory saja, tanpa mau repot, gunakan textfile yang berisi path yang hendak kamu scan. Buat file dirlist.txt
nano /etc/clamav/dirlist.txt
Kemudian isi directory list dalam file tersebut dengan aturan, satu line satu path, kemudian simpan file tersebut:
/tmp
/home/my-user/Downloads
Contoh di atas akan meminta clamav untuk melakukan scan folder /tmp dan /home/my-user/Downloads. kemudian untuk menjalankan ClamAV menggunakan list tersebut, tambahkan parameter/argumen –file-list saat menjalankan scan, contoh:
clamscan --infected --remove --recursive --file-list=/etc/clamav/dirlist.txt
Scheduling
Lagi, ClamAV bukanlah one stop solution yang menyediakan scheduling senndiri, untuk melakukan scanning secara periodik, gunakan cronjob. Jalankan perintah berikut dalam mode root
crontab -e
Tambahkan line sbb kemudian save file crontab:
0 1 * * * clamscan --infected --move /var/clamav/infected --recursive /
Contoh di atas akan menjalankan clamscan setiap jam 1 pagi.
Timezone warning
Apabila kamu menggunakan VM yang ada di cloud provider seperti Digital Ocean, AWS, GCP, Azure, etc pastikan timezone server kamu sama dengan waktu yang kamu tuliskan di cronjob. Biasanya pada provider internasional tersebut,server menggunakan UTC sebagai timezone server(gunakan command date untuk melihatnya), lalu sesuaikan dengan timezonenya.
Contoh apabila kamu ingin scan jalan jam 1 pagi jam Indonesia Barat, maka kurangi 7 jam, 1 pagi – 7 jam = 6 sore atau pukul 18. Maka masukan value:
0 18 * * *
Jangan salah setting waktu karena scanning ClamAV akan memakan banyak memakan memory.
Scan On Access
Scan on access merupakan fitur dari ClamAV yang dapat melakukan scan ketika terdapat operasi file pada sebuah folder(sesuai dengan yangs udah di definisikan sebelumnya). Untuk melakukannya, bukalah file setting:
nano /etc/clamav/clamd.conf
Kemudian di bagian akhir, tambahkan beberapa line sbb:
OnAccessMaxFileSize [xx]M
OnAccessMaxThreads 5
OnAccessDisableDDD false
OnAccessPrevention true
OnAccessExtraScanning true
OnAccessExcludeUname clamav
OnAccessRetryAttempts 3
OnAccessIncludePath [dir-path-you-want-to-monitor-1]
OnAccessIncludePath [dir-path-you-want-to-monitor-2]
OnAccessIncludePath [dir-path-you-want-to-monitor-n]
Save file tersebut.
Keterangan konfigurasi
Dokuemnbtasi configurasi tsb dapat dilihat di halaman ini: https://docs.clamav.net/manual/OnAccess.html?highlight=onacc#configuration-and-recipes
Untuk menjalankannya, clamav daemon harus dalam kondisi aktif, gunakan perintah ebrikut untuk melihat statusnya:
systemctl status clamav-daemon
Apabila Clamav sudah berjhalan, kamu akan menemui report seperti ini

Apabila tidak berjalan, jalankan menggunakan perintah:
systemctl start clamav-daemon
Lalu kita jalankan/test dengan menggunakan perintah
clamonacc --foreground --remove
Perintah tersebut akan menjalankan monitoring dan scanning pada folder yang tertera pada configuration file. Apabila sudah sesuai dengan keinginan, hilangkan argument –foreground untuk menjalankan dalam mode daemon.
Gunakan perintah berikut untuk melihat apakah proses telah berjalan:
ps -aux | grep clam
Apabila berjalan dengan baik, system akan memberi response kurang lebih seperti ini

Resource Warning
Sebelum artikel ini ditutup, ada satuhal yang sangat perlu diperhatikan, yaitu resource server kamu. ClamAV akan membaca dan menytimpan virus signature pada memory saat melakukan scanning, sehingga apabila kamu menggunakan VM kecil perhatikan baik-baik resource server, terutama penggunaan memory-nya.
Beberapa server kecil saya sempat crash karena memory usage full oleh clamav

Kemudian saya coba scan satu targetnya(Sebelumnya saya jalankan 3 scan sekaligus di crontab yang kebetulan… tabrakan waktunya hahaha), ketauan dari resource meternya kalau clamAV memakan banyak memory.
