QMAIL, QMAIL-SCANNER ve CLAMAV ANTIVIRUS

 

 

Bu belgede Qmail server kurulu bir sistemde gelen ve giden e-postaları  kontrol ederek virüslü maillerin kullanıcılara erişimini engellemek için gerekli programlar ve kurulumları anlatılacaktır.

 

İnternet ve dolayısıyla e-mail kullanan bütün kullanıcıların en büyük sorunu virüslü e-mail lerdir.  Tek kullanıcılı bir sistemde bu sorunun hakkından gelmek bir nevi katlanılabilir bir durum.  Fakat 100 bilgisayardan  oluşan bir yerel ağınız varsa başınız oldukça belada demektir. Kullanıcılara internetten gelen virüslü mailler adres defterindeki yerel kullanıcılara da yayılmaya başladığında durdurmak nerdeyse imkansız bir hale gelir. Terminallerde kurulu olan antivirüs yazılımları ancak virüslü mail  geldikten sonra devreye girer ve gerekeni yapar.  Lakin virüslü mail gelmiştir bir kere, ağ trafiğini boşuna meşgul etmiş, sistem kaynaklarını boşuna kullanmış ve sinirlerinizi bozmuştur. Bana bir anda 200 mail geliyor diyen bir ihracat müdürü.

 

Virüslerin, kullanıcılara ulaşmadan önce sunucu tarafından taranarak temizlenmesi büyük oranda üzerimizdeki yükü hafifletecektir. FreeBsd  ve Qmail Server kurulu bir sistemde qmail-scanner ile Clamav open source antivirüs yazılımını kullanarak  maillerin taranması ve temizlenmesi:

 

 

 

CLAMAV ANTIVIRUS YAZILIMININ KURULMASI

 

Clamav Antivirüs GNU/GPL lisansı ile dağıtılır. Kolay kullanımı, hızı, güvenirliği, internetten otomatik güncelleme yapması ve sıkıştırılmış dosyaları tarayabilmesi başlıca özellikleridir.

 

Port ile kurulum

# cd /usr/ports/security/clamav

# make 

# make install

 

Not : Clamav yazılımını kaynak kodundan derlemek için clamav adında kullanıcı ve grup oluşturmak gerekir.

 

Test

Clamav antivirüsü test etmek için

# clamscan –r /home # home dizinindeki dosyaları tarar.

 

 

Güncelleme

Virüs veritabanını güncellemek için:

# freshclam    # internet üzerinden veritabanını MD5  kullanarak alır.

 

Güncelleme işleminin başarılı olup olmadığını kontrol etmemiz gerekebilir. Bunun için log dosyası oluşturmamız gerekir :

 

# touch /var/log/clam-update.log

# chmod 644 /var/log/clam-update.log

# chown clamav /var/log/clam-update.log

 

Freshclam programını daemon olarak çalıştırmak,

günde 2 defa virüs veritabanını güncellemek,

Güncelleme ile ilgili sonuçları /var/log/clam-update.log dosyasına yazmak için :

 

# freshclam –d –c 2 –l /var/log/clam-update.log

 

Cron programını kullanarak virüs veritabanını istediğimiz zamanlarda otomatik güncelleştirmek için:

 

# vi /etc/crontab

 

……………….

# Her gece saat 03:15 de güncelleme yap.

15  03  *  *  *  root  freshclam  –l /var/log/clam-update.log

 

 

 

QMAİL SCANNER KURULUMU

 

Qmail-scanner yazılımı,  smtp servisinden önce çalışan bir perl programıdır. Maillerin taraması için smtp den önce çalışır ve  clamav antivirüs yazılımıyla mailleri taramayı sağlar.

 

 

QMAILQUEUE PATCH KURULUMU

 

Qmailqueue yaması smtp servisi çalışmadan önce başka bir programın çalıştırılmasını sağlar. Qmailscanner programının mailleri kontrol etmesi için smtp servisinden önce çalışması ve kontrol işlemini yapması gerekir.Bunun için Qmail’e QMAILQUEUE yamasını uygulamamız gerekmekte. Yeni bir qmail kurulumu yapılacaksa bu yama ile kurulum yapılmalıdır. Mevcut sistemde bu yama kurulu değilse aşağıdaki adımları izleyerek kurabiliriz.

 

# cd /usr/ports/mail/qmail

# make install  WITH_QMAILQUEUE_PATCH=yes FORCE_PKG_REGISTER=yes

 

 

 

PERL TIME HIRES PAKETİ KURULUMU

 

qmail-scanner çalıştırmak için sistemde perl yüklü olması gerekir.

 

Perl  Time Hires paketinin kurulumu

http://search.cpan.org/search?module=Time::HiRes Adresinden Time::Hires yazılımını indirelim

 

# tar –zxvf Time-Hires-1.22.tar.gz.

# cd Time-HiRes-1.22

# perl Makefile.PL

# make

# make install

 

MAILDROP KURULUMU

# cd /usr/ports/mail/maildrop

# make install

 

 

TNEF UNPACKER KURULUMU

# cd /usr/ports/converters/tnef

# make install

 

 

QMAIL-SCANNER KURULUMU

http://prdownloads.sourceforge.net/qmail-scanner/qmail-scanner-1.22.tgz?download adresinden qmail-scanner programını indirelim.

qscand kullanıcısı oluşturalım.

# pw useradd qscand

# chown root /usr/bin/suidperl

# chmod 4711 /usr/bin/suidperl

# tar –zxvf qmail-scanner-1.22.tar.gz

# cd qmail-scanner-1.22           

# ./configure --domain benim.com --notify none

 

Test

 

/var/qmail/bin/qmail-scanner-queue.pl

(eğer bu dosya /var/qmail/bin içerisinde yoksa qmail-scanner derlemesinin yapıldığı kaynak dizinden kopyalanabilir.

# cp /root/qmail-scanner-1.22/qmail-scanner-queue.pl /var/qmail/bin )

Kurulumun tamamlanması için bazı dizin ve dosyalar oluşturmamız gerekir.

 

Dizin ve Dosyaların Oluşturulması

 

#mkdir –p /var/spool/qmailscan/quarantine/new

#mkdir –p /var/spool/qmailscan/quarantine/cur

#mkdir –p /var/spool/qmailscan/quarantine/tmp

#mkdir –p /var/spool/qmailscan/working/new

#mkdir –p /var/spool/qmailscan/working/cur

#mkdir –p /var/spool/qmailscan/working/tmp

#mkdir –p /var/spool/qmailscan/archive/new

#mkdir –p /var/spool/qmailscan/archive/cur

#mkdir –p /var/spool/qmailscan/archive/tmp

#chown –R qmailq:qmail /var/spool/qmailscan

#chown qmailq:qmail /var/qmail/bin/qmail-scanner-queue.pl

#chmod 4755  /var/qmail/bin/qmail-scanner-queue.pl

 

Kaynak kodun derlendiği dizinde bulunan quarantine-attachments.txt dosyasını /var/spool/qmailscan dizinine kopyalayalım. Bu dosyada qmail-scanner programının gelen-giden  mailleri tarama yapabileceği tanımlamalar yer alır. Bu taramalar, gelen mail eklerinin uzantı kontrolü(*.vbs, *.scr, *.exe ) ve mail konusunun kontrolü gibi işlemlerdir. Ekinde exe dosya bulunan maillerin engellenmesi, konusu I LOVE YOU olan maillerin engellenmesi vb.

 

# cp /root/qmail-scanner-1.22/quarantine-attachments.txt /var/spool/qmailscan/

 

/var/spool/qmailscan/quarantine-attachments.txt dosyasında bulunan tanımlamaları yaptıktan sonra (Örnek tanımlamalar dosyada mevcut)

 

#/var/qmail/bin/qmail-scanner-queue.pl –g

komutu ile değişikliklerin quarantine-attachments.db dosyasına yazılmasını sağlayacağız.

 

Bulunan virüsleri kontrol etmek, hangi mail adresinden geldiğini, hangi mail adresine gittiğini saptamak için /var/spool/qmailscan/quarantine.log dosyasını oluşturmak gerekir.(en keyif verici kısım)

 

# vi /var/spool/qmailscan/quarantine.log

 

 

 

QMAIL-SCANNER’ın ÇALIŞTIRILMASI

             

Kurulumun tamamlanabilmesi için /var/qmail/supervise/qmail-smtpd/run ve /etc/tcp.smtp dosyalarında qmail-scanner için

tanımlamalar yapmamız gerekir. Örnek dosyalar:

 

/var/qmail/supervise/qmail-smtpd/run

#!/bin/sh
QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue.pl" export QMAILQUEUE
QMAILDUID=`id -u vpopmail`
NOFILESGID=`id -g vpopmail`
MAXSMTPD=`cat /var/qmail/control/concurrencyincoming`
LOCAL=`head -1 /var/qmail/control/me`
if [ -z "$QMAILDUID" -o -z "$NOFILESGID" -o -z "$MAXSMTPD" -o -z "$LOCAL" ]; then
echo QMAILDUID, NOFILESGID, MAXSMTPD, or LOCAL is unset in
echo /var/qmail/supervise/qmail-smtpd/run
exit 1
fi
if [ ! -f /var/qmail/control/rcpthosts ]; then
echo "No /var/qmail/control/rcpthosts!"
echo "UYARI : Refusing to start SMTP listener because it'll create an open relay"
exit 1
fi
exec /usr/local/bin/softlimit -m 40000000 \
/usr/local/bin/tcpserver -v -R -l "$LOCAL" -x /etc/tcp.smtp.cdb -c "$MAXSMTPD" \
-u "$QMAILDUID" -g "$NOFILESGID" 0 smtp \
/var/qmail/bin/qmail-smtpd alanadi.com \
/home/vpopmail/bin/vchkpw /usr/bin/true 2>&1

 

 

 

/etc/tcp.smtp

 

127.:allow,RELAYCLIENT="",QMAILQUEUE="/var/qmail/bin/qmail-queue"

192.168.0.:allow,RELAYCLIENT="",QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue.pl"

:allow,QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue.pl"

 

 

Relay izinlerinin tanımlanması

# tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp  < /etc/tcp.smtp

 

 

 

 

Qmail’i yeniden başlattığımızda kurulum tamamlanmış olacaktır.

 

 

NOT: qmail-scanner /var/qmail/bin/qmail-scanner-queue.pl perl dosyasını kullanır. Kurulumu yaptıktan sonra oluşabilecek hataların düzeltilmesi bu dosyasının içinde bulunan tanımlamaların değiştirilmesiyle sağlanır. /var/spool/qmailscan/qmail-queue.log dosyasından oluşan hatalar kontrol edilebilir. Bu hatalar : clamscan programının yanlış parametre ile çalıştırması, sıkıştırılmış dosyalar için kullanılan programın bulunmaması veya dosyayı açamaması vb.

 

 

Ahmet ORHAN

[email protected]

23 Nisan 2004