Install Clamav, Amavisd-new untuk SMTP Postfix ----------------------------------------------- Tutorial ini merupakan lanjutan dari tutorial yang berjudul: --- SMTP Auth - Postfix - menggunakan sasllauthd --- Cara Kerja dari kolaborasi clamav,amavisd-new dan postfix adalah sbb: +---------------+ incoming mail | Postfix MTA |local or (port 25) | |remote delivery ------>| |---------> | port 10025 | | +--------^------+ | | | v | | +-----v-------|--+ karantina | port 10024 | | | | Amavis Daemon | +----------------+ penjelasan diagaram diatas: - postfix menerima email dari client/MTA llain melalui port 25 - postfix memforwardkan email tadi ke amavvis daemon melalui port 10024 - Email tersebut diproses oleh amavis daemmon kemudian dikirim kembali ke postfix melalui port 10025 - Postfix mengirim email ke lokal atau ke luar, jika ditemui virus maka email tsb akan disimpan pada folder karantina Instalasi clam --------------- 1. Buat group dan user clamav # groupadd clamav # useradd -g clamav -s /bin/false clamav 2. Download clamav terbaru # wget http://puzzle.dl.sourceforge.net/sourceforge/clamav/clamav-0.87.1.tar.gz 3. Ekstrak dan masuk ke direktori hasil ektrak # tar -zxvf clamav-0.87.1.tar.gz # cd clamav-0.87.1 4. Mulai lakukan instalasi # ./configure --sysconfdir=/etc # make # make check # make install 5. Edit file /etc/clamd.conf, hal yang pertama kali yang harus dilakukan adalah menonaktifkan Example : Example --> #Example 6. Langkah selanjutnya masih melakukan editing file /etc/clamd.conf sbb: #User clamav --> User clamav #ScanMail --> ScanMail 7. Jalankan daemon clam dengan perintah: # clamd atau # /usr/local/sbin/clamd 8. Cek daemon clamd # ps ax | grep clamd 17495 ? S 0:00 clamd 18504 pts/3 S 0:00 grep clamd 9. Sekarang kita pindah ke bagian udpate antivirus clam, langkah pertama yang harus dilakukan adalah melakukan editing pada file /etc/freshclam.conf dengan menonaktfkan Example: Example --> #Example 10.Kemudian langsung lakukan updata database virus clam dengan perintah # freshclam 11.Agar dapat melakukan update, misalnya update antivirus selang 2 jam sekali, edit lagi pada file /etc/freshclam.conf : # Checks 24 --> Checks 12 12.Agar download update lebih cepat, pilih mirror yang dekat dengan server kita, edit pada file /etc/freshclam.conf DatabaseMirror database.clamav.net 15.Kemudian jalankan daemon freshclam # freshclam -d Instalasi Amavisd-new --------------------- 1. Buat subdirektori /home/clamav/tmp /home/clamav/var /var/clamav/db dan /home/clamav/home # mkdir /home/clamav/tmp # mkdir /home/clamav/var # mkdir /home/clamav/db # mkdir /home/clamav/home 2. Set file/direktori kepemilikan dari /home/clamav # chown -R clamav:clamav /home/clamav # chmod -R 750 /home/clamav 3. Download Amavis terbaru # wget http://www.ijs.si/software/amavisd/amavisd-new-2.3.3.tar.gz 4. Simpan source amavis ke direktori /usr/local/src 5. Extrak source amavisd-new dan masuk ke direktori hasil ektrak # tar -zxvf amavisd-new-2.3.3.tar.gz # cd amavisd-new-2.3.3 6. Pastikan module perl untuk persyaratan instalasi amavis ini terpenuhi lihat file INSTALL Cara untuk melakukan instalasi module perl dengan command: # perl -MCPAN -e shell Setelah selesai, baru lakukan download dan instalasi module yang akan diinstall misal: cpan> install Archive::Tar Note: jika ingin merubah url source module, dapat dilakukan perintah sbb: cpan> o conf urllist push http://www.perl.com/CPAN/ Instalasi module perl juga dapat dilakukan dengan cara manual, pertama kali download module yang akan diinstall (misal: Times::HiRes), dengan nama file : Time-HiRes-1.49.tar.gz Extract, dan lakukan instalasi: # tar -zxvf Time-HiRes-1.49.tar.gz # cd Time-HiRes-1.49 # perl Makefile.PL # make # make test # make install Note: jika muncul error berikut saat menjalankan perintah 'make': Makefile:91: *** missing separator. Stop. Maka sebelum menjalankan perl Makefile.PL dilakukan perubahan LANG setting dari default LANG=en_US.UTF-8 menjadi LANG=en_US 7. Copy file amavisd ke direktori /usr/local/sbin dan ubah permission-nya # cp amavisd /usr/local/sbin/ # chown root /usr/local/sbin/amavisd # chmod 755 /usr/local/sbin/amavisd 8. Copy file amavisd.conf ke direktori /etc dan ubah permission-nya # cp amavisd.conf /etc/ # chown root /etc/amavisd.conf # chmod 644 /etc/amavisd.conf 9 .Buat direktori /var/virusmails untuk digunakan amavisd-new sebagai tempat karantina, ubah permission-nya juga # mkdir /var/virusmails # chown amavis:amavis /var/virusmails # chmod 750 /var/virusmails 10.Edit file /etc/amavisd.conf dan sesuaikan $daemon_group dan $daemon_user dengan yang telah dibuat, dan sesuaikan variabel $MYHOME, $TEMPBASE, $db_home dan $QUARANTINEDIR disesuaikan dengan direktori yang sudah dibuat sehingga menjadi berikut: $daemon_user = 'clamav'; $daemon_group = 'clamav'; $MYHOME = '/home/clamav'; $TEMPBASE = "$MYHOME/tmp"; $db_home = "$MYHOME/db"; $QUARANTINEDIR = '/var/virusmails'; 11.Install Virus scanner clamav dengan user dan group yang sama dengan amavis, yaitu user=clamav dan grou=clamav (lihat bagian instalasi clam anti virus) 12.Setelah selasai cek instalasi amavis dengan perintah berikut: # /usr/local/sbin/amavisd -u clamav debug 13.Setelah sudah di tes dan berjalan, maka mulai jalankan daemon amavis dengan perintah # amavisd untuk memberhentikan daemon amavisd: # amavisd stop 14.Periksa lagi daemon amavis untuk keperluan SMTP postfix # netstat -tpan | grep amavis tcp 0 0 127.0.0.1:10024 0.0.0.0:* LISTEN 17538/amavisd (mast [root@devel clamav]# telnet localhost 10024 Trying 127.0.0.1... Connected to devel.takaful.com (127.0.0.1). Escape character is '^]'. 220 [127.0.0.1] ESMTP amavisd-new service ready quit << ketik quit disini 221 2.0.0 [127.0.0.1] amavisd-new closing transmission channel Connection closed by foreign host. 14.Sekarang dilakukan kolaborasi dengan SMTP postfix dengan cara menambahkan baris script berikut pada file /etc/postfix/master.cf smtp-amavis unix - - n - 2 smtp -o smtp_data_done_timeout=1200 -o disable_dns_lookups=yes 127.0.0.1:10025 inet n - n - - smtpd -o content_filter= -o local_recipient_maps= -o relay_recipient_maps= -o smtpd_restriction_classes= -o smtpd_client_restrictions= -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworks,reject -o mynetworks=127.0.0.0/8 -o strict_rfc821_envelopes=yes 15.Reload postfix untuk membaca perubahan pada /etc/postfix/master.cf # postfix reload 16.Periksa amavisd # telnet localhost 10024 Trying 127.0.0.1... Connected to devel.takaful.com (127.0.0.1). Escape character is '^]'. 220 [127.0.0.1] ESMTP amavisd-new service ready MAIL FROM: java_ux@jawaasli.co.id 250 2.1.0 Sender java_ux@jawaasli.co.id OK RCPT TO: untuksaya@sayadisini.com 250 2.1.5 Recipient untuksaya@sayadisini.com OK DATA 354 End data with . Subject: Tes ngirim virus EICAR >> tekan enter sekali saja disini X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H* . 250 2.7.1 Ok, discarded, id=17539-03 - VIRUS: EICAR_Test_file_not_a_virus! quit 221 2.0.0 [127.0.0.1] amavisd-new closing transmission channel Connection closed by foreign host. 17.Tambahkan baris script berikut pada /etc/postfix/main.cf untuk memforward semua email ke amavis daemon content_filter = smtp-amavis:[127.0.0.1]:10024 18.Reload postfix untuk membaca perubahan pada /etc/postfix/main.cf # postfix reload 19.Silahkan mencoba Note: ----- - Jika ingin menonaktifkan atau men'disablle' amavisd pada postfix, sehingga email tidak diproses oleh amavis daemon adalah dengan cara memberikan tanda komen (#) pada scrip berikut: content_filter = smtp-amavis:[127.0.0.1]:10024 menjadi : # content_filter = smtp-amavis:[127.0.0.1]:10024 kemudian restart postfix, # postfix reload - Kalau muncul error berikut saat ingin meenjalankan daemon amavis: # amavisd Insecure dependency in `` while running with -T switch at /usr/lib/perl5 /site_perl/5.8.0/Net/Server/Daemonize.pm line 67. solusinya: hapus file amavisd.lock dan amavisd.pid yang ada dalam direktori home amavis # rm amavisd.lock # rm amavisd.pid atau, error tersebut diakibat oleh adanya bug Pada Net::Server sebelumnya, solusinya: lakukan update Net::Server yang terbaru (saat ini yg terbaru Net::Server 0.90) yang dapat didownload di http://search.cpan.org/CPAN/authors/id/R/RH/RHANDOM/Net-Server-0.90.tar.gz Setelah di download file Net-Server-0.90.tar.gz, lakukan instalasi seperti berikut: # tar zxvf Net-Server-0.90.tar.gz # cd Net-Server-0.90 # perl Makefile.pl # make # make test # make install Insya Allah, jalankan # amavisd akan muncul pesan berikut: Pid_file "/home/clamav/amavisd.pid" already exists. Overwriting! Nah, daemon amavis sudah 'jalan' lagi