Clam antivirus ( http://clamav.elektrapro.com) merupakan software antivirus yang berlisensi GNU GPL 2 dengan menggunakan database virus dari OpenAntiVirus ( http://www.openantivirus.org). Download, ekstrak dan ganti direktori ke source clam antivirus :
[root@wedus src]# wget http://clamav.elektrapro.com/stable/clamav-0.54.tar.gz [root@wedus src]# tar -xzvf clamav-0.54.tar.gz [root@wedus src]# cd clamav-0.54
Buat user dan group yang akan menjalankan daemon clam anvirus :
[root@wedus clamav-0.54]# groupadd clamav [root@wedus clamav-0.54]# useradd -g clamav -s /bin/false -c "Clam AntiVirus" clamav
Lakukan kompilasi dan install :
[root@wedus clamav-0.54]# ./configure [root@wedus clamav-0.54]# make [root@wedus clamav-0.54]# make install
Pindah file konfigurasi standar dari clam antivirus ke nama file yang lain, karena kita akan menyusun sendiri file konfigurasi tersebut :
[root@wedus clamav-0.54]# mv /usr/local/etc/clamav.conf /usr/local/etc/clamav.conf.default
Buatlah file /usr/local/etc/clamav.conf isinya :
LogFile /tmp/clamd.log LogFileMaxSize 2M LogVerbose LogTime PidFile /var/run/clamd.pid DataDirectory /usr/local/share/clamav LocalSocket /tmp/clamd MaxDirectoryRecursion 15 User clamav ScanArchive ArchiveMaxFileSize 10M ArchiveMaxRecursion 5 ArchiveMaxFiles 1000
Jalankan daemon clam antivirus (clamd ) :
[root@wedus clamav-0.54]# clamd
Periksa apakah daemon tersebut sudah berjalan seperti yang kita inginkan :
[root@wedus clamav-0.54]# ps axu | grep clamd clamav 29192 0.0 4.7 9120 5984 ? S 11:06 0:00 clamd clamav 29193 0.0 4.7 9120 5984 ? S 11:06 0:00 clamd clamav 29194 0.0 4.7 9120 5984 ? S 11:06 0:00 clamd
Untuk menjalankan daemon clamd setiap server di reboot :
[root@wedus clamav-0.54]# echo /usr/local/sbin/clamd >> /etc/rc.local
Tanpa berpindah dari direktori source clam antivirus, lakukan test dengan cara menscan direktori test :
[root@wedus clamav-0.54]# clamscan -r test
Kemudian download update database virus yang paling baru :
[root@wedus clamav-0.54]# freshclam
Jika sudah selesai kemudian kita jalankan daemon proses update database virus tersebut secara otomatis (akan dilaksanakan pengecekan database virus yang paling baru 2 kali dalam sehari ) :
[root@wedus clamav-0.54]# touch /var/log/clam-update.log [root@wedus clamav-0.54]# chmod 644 /var/log/clam-update.log [root@wedus clamav-0.54]# chown clamav /var/log/clam-update.log
Jalankan daemonnya (freshclam ):
[root@wedus clamav-0.54]# freshclam -d -c 2 -l /var/log/clam-update.log
Untuk menjalankan daemon freshclam jika server di reboot :
[root@wedus clamav-0.54]# echo "freshclam -d -c 2 -l /var/log/clam-update.log" \ >> /etc/rc.local
Anda bisa mendapatkan module perl Time::HiRes tersebut yang paling baru melalui http://search.cpan.org/search?module=Time::HiRes, atau anda bisa langsung mendownload di lokal mirror CPAN di Indonesia (terima kasih kepada ISP CBN), download, ekstrak, dan kompilasi :
[root@wedus src]# wget \ ftp://ftp.cbn.net.id/mirror/CPAN/authors/id/J/JH/JHI/Time-HiRes-1.42.tar.gz [root@wedus src]# tar -xzvf Time-HiRes-1.42.tar.gz [root@wedus src]# cd Time-HiRes-1.42 [root@wedus Time-HiRes-1.42]# perl Makefile.PL [root@wedus Time-HiRes-1.42]# make [root@wedus Time-HiRes-1.42]# make install
Atau, anda juga bisa menggunakan CPAN auto-install sebagai berikut untuk menginstal module perl Time::HiRes tersebut :
[root@wedus src]# perl -MCPAN -e "install Time::HiRes"
Lakukan juga langkah seperti tersebut diatas untuk module DB_File.
Yang dibutuhkan oleh qmail-scanner dari paket maildrop sebenarnya adalah program reformime. Download, ekstrak, kompilasi dan install :
[root@wedus src]# wget http://unc.dl.sf.net/courier/maildrop-1.5.2.tar.bz2 [root@wedus src]# tar -jxvf maildrop-1.5.2.tar.bz2 [root@wedus src]# cd maildrop-1.5.2 [root@wedus maildrop-1.5.2]# ./configure [root@wedus maildrop-1.5.2]# make [root@wedus maildrop-1.5.2]# make install
Tnef unpacker digunakan untuk menguraikan attachment MS-TNEF MIME yang digunakan oleh Microsoft mail server.
[root@wedus src]# wget http://unc.dl.sf.net/sourceforge/tnef/tnef-1.2.0.tar.gz [root@wedus src]# tar -xzvf tnef-1.2.0.tar.gz [root@wedus src]# cd tnef-1.2.0 [root@wedus tnef-1.2.0]# ./configure [root@wedus tnef-1.2.0]# make [root@wedus tnef-1.2.0]# make install
Karena pada default distribusi RedHat 7.3 tidak menyertakan program perl-suidperl, maka kita perlu menginstal program tersebut (hal ini mungkin bisa anda temui jika anda tidak menginstal program tersebut pada file /var/log/qmail/smtpd/current akan terdapat error Can't do setuid atau jika di server lokal akan anda dapatkan error 451_qq_temporary_problem_(#4.3.0) ) :
[root@wedus src]# wget \ ftp://rpmfind.net/linux/redhat/7.3/en/os/i386/RedHat/RPMS/perl-suidperl-5.6.1-34.99.6.i386.rpm [root@wedus src]# rpm -ivh perl-suidperl-5.6.1-34.99.6.i386.rpm
Download, ekstrak source qmail-scanner yang paling baru :
[root@wedus src]# wget \ http://unc.dl.sourceforge.net/sourceforge/qmail-scanner/qmail-scanner-1.16.tgz [root@wedus src]# tar -xzvf qmail-scanner-1.16.tgz
Ganti direktori ke source qmail-scanner kemudian lakukan konfigurasi :
[root@wedus src]# cd qmail-scanner-1.16 [root@wedus qmail-scanner-1.16]# ./configure
Jika sukses, script configure akan menemukan path program yang dibutuhkan oleh qmail-scanner dan clam antivirus, misalnya :
.... mimeunpacker=/usr/local/bin/reformime uudecode=/usr/bin/uudecode unzip=/usr/bin/unzip tnef=/usr/local/bin/tnef clamscan=/usr/local/bin/clamscan scanners="clamscan_scanner" ....
Buat direktori yang akan digunakan oleh qmail-scanner :
[root@wedus qmail-scanner-1.16]# mkdir -p /var/spool/qmailscan/quarantine/{tmp,cur,new} [root@wedus qmail-scanner-1.16]# mkdir -p /var/spool/qmailscan/working/{tmp,cur,new} [root@wedus qmail-scanner-1.16]# mkdir -p /var/spool/qmailscan/archive/{tmp,cur,new}
Salin file quarantine-attachments.txt ke direktori /var/spool/qmailscan :
[root@wedus qmail-scanner-1.16]# cp quarantine-attachments.txt /var/spool/qmailscan/
Ubah kepemilikan dari direktori /var/spool/qmailscan :
[root@wedus qmail-scanner-1.16]# chown -R qmailq:qmail /var/spool/qmailscan/
Salin file qmail-scanner-queue.pl ke direktori /var/qmail/bin :
[root@wedus qmail-scanner-1.16]# cp qmail-scanner-queue.pl \ /var/qmail/bin/qmail-scanner-queue.pl
Ganti kepemilikan dan mode dari file qmail-scanner-queue.pl tersebut :
[root@wedus qmail-scanner-1.16]# chown qmailq:qmail /var/qmail/bin/qmail-scanner-queue.pl [root@wedus qmail-scanner-1.16]# chmod 4755 /var/qmail/bin/qmail-scanner-queue.pl
Generate database perl-scanner dan membersihkan file-file sementara :
[root@wedus qmail-scanner-1.16]# /var/qmail/bin/qmail-scanner-queue.pl -z [root@wedus qmail-scanner-1.16]# /var/qmail/bin/qmail-scanner-queue.pl -g
Edit file /var/qmail/bin/qmail-scanner-queue.pl, sesuaikan dengan konfigurasi yang anda kehendaki, misalnya :
my $V_FROM='virus-notif[email protected]'; my $QUARANTINE_CC='[email protected]';
Test kirim email bervirus ke root@localhost :
[root@wedus qmail-scanner-1.16]# ./contrib/test_installation.sh -doit
Jika sukses, anda bisa memodifikasi file startup untuk menjalakan qmail-smtpd anda, misalnya jika anda menggunakan supervise anda bisa mengedit file /service/qmail-smtpd/run menjadi :
PATH=$PATH:/usr/local/bin:/var/qmail/bin QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue.pl" export PATH QMAILQUEUE QMAILDUID=`id -u qmaild` NOFILESGID=`id -g qmaild` MAXSMTPD=30 exec /usr/local/bin/softlimit -m 11000000 \ tcpserver -H -R -v -x /etc/tcp.smtp.cdb -c "$MAXSMTPD" -u "$QMAILDUID" -g "$NOFILESGID" \ 0 25 qmail-smtpd 2>&1
Perhatikan perubahan tersebut diatas terutama pada path QMAILQUEUE dan angka (memory) yang digunakan softlimit, jika anda mengeset angka tersebut terlalu kecil, maka biasanya anda akan mendapatkan error perl: error in loading shared libraries: atau failed to map segment from shared object: Cannot allocate memory. Qmail-scanner tidak mendeteksi virus klez jika setting dari soflimit kurang dari 11000000 (11 juta), anda bisa lihat referensinya di http://archive.elektrapro.com/clamav.elektrapro.com/users/2002/10/msg00114.html (thanks kepada tio aka geep di #indolinux EFnet)
Restart daemon qmail anda, jika anda menggunakan supervise anda bisa menggunakan :
[root@wedus qmail-scanner-1.16]# qmailctl restart
Kemudian anda bisa mencoba mengirim email dengan attachment sebuah file eicar.com yang isinya sebagai berikut :
X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
Jika anda lakukan tail -f /var/spool/qmailscan/quarantine.log, maka akan anda dapatkan file tersebut akan ditolak dan di log oleh qmail-scanner, misalnya :
04/03/2003 12:31:45 [email protected] [email protected] test email mengandung virus EICAR Test Virus clamscan: 0.54.
Jika sukses, berarti mail server anda telah menggunakan software antivirus :), have fun ! Jika anda menginginkan pembacaan statistik berapa jumlah email yang masuk kedalam file /var/spool/qmailscan/quarantine.log, anda bisa menggunakan Qmail Scanner Statistics (QSS). Caranya, buat direktori qss, download source qss, dan ekstrak :
[root@wedus src]# mkdir qss [root@wedus src]# cd qss [root@wedus qss]# wget http://unc.dl.sf.net/sourceforge/qss/qss-2.0.2.tar.gz [root@wedus qss]# tar -xzvf qss-2.0.2.tar.gz
Tentukan direktori dimana akan kita salin file /var/spool/qmailscan/quarantine.log, misalnya buat direktori /usr/local/httpd/logs/quarantine, kemudian cari user yang menjalankan daemon apache (anda bisa melihat dari file httpd.conf anda bagian User atau anda bisa menggunakan perintah ps axu | grep httpd untuk mencarinya), disini kita misalkan usernya adalah www. Kemudian buatlah file /etc/qss.sh (mulai dibawah ini ganti user www dengan user yang menjalankan daemon apache anda) isinya :
#!/bin/bash cp -f /var/spool/qmailscan/quarantine.log /usr/local/httpd/logs/quarantine/quarantine.log chown www /usr/local/httpd/logs/quarantine/quarantine.log
Set menjadi script yang executable :
[root@wedus qss]# chmod +x /etc/qss.sh
Buat direktori /usr/local/httpd/logs/quarantine dan ganti kepemilikannya ke user www :
[root@wedus qss]# mkdir /usr/local/httpd/logs/quarantine [root@wedus qss]# chown www /usr/local/httpd/logs/quarantine
Tentukan dimana qss akan diinstall, hal ini tergantung setting dari DocumentRoot di file httpd.conf anda, misalnya kita buat di direktori /usr/local/httpd/htdocs/qss (sehingga nantinya bisa diakses melalui http://localhost/qss misalnya) :
[root@wedus qss]# mkdir /usr/local/httpd/htdocs/qss
Salin semua file ke direktori tersebut diatas dan ganti kepemilikannya :
[root@wedus qss]# cp -R * /usr/local/httpd/htdocs/qss [root@wedus qss]# chown -R www /usr/local/httpd/htdocs/qss
Edit file /usr/local/httpd/htdocs/qss/config.php ganti bagian :
$config["logFile"] = "quarantine.log";
menjadi :
$config["logFile"] = "/usr/local/httpd/logs/quarantine/quarantine.log";
Jalankan script untuk menyalin file quarantine.log untuk pertama kali :
[root@wedus qss]# sh /etc/qss.sh
Test dengan browser anda dengan url http://localhost/qss atau http://ip.address.server.anda/qss tergantung konfigurasi ServerNamepada file httpd.conf anda. Jika sukses anda bisa menambahkan cron setiap 5 menit (jika anda menginginkan waktu yang lebih lama anda bisa mengganti angka 5 menjadi yang lain, misalnya 10,15 atau 30, silakan konsultasi dengan man 5 crontab anda ) :
[root@wedus qss]# echo "*/5 * * * * /etc/qss.sh" > cron.temp [root@wedus qss]# crontab -u root cron.temp
Enjoy !
12 Maret 2003
08 Maret 2003
04 Maret 2003