/*
 * Copyright (c) 2004 Barış ŞİMŞEK.
 * Permission is granted to copy, distribute and/or modify this document
 * under the terms of the GNU Free Documentation License, Version 1.2
 * or any later version published by the Free Software Foundation;
 * with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
 * Texts.  A copy of the license is included in the section entitled "GNU
 * Free Documentation License".
 *
 * Bu belgenin telif hakları 'GNU Free Documentation License'
 * lisansı şartları altında Barış ŞİMŞEK'e aittir.
 *
 * Kök: http://www.acikkod.org
 * Sürüm No: 1
 * İlk baskı: 2004-09-23
 * Son güncelleme: 2004-09-23
 *
 */
 

Qscanq ve Zabit ile Qmail'de Spam ve Virüs Çözümleri

Qmail, kullanım oranı sürekli artan güvenli, genişletilebilir ve yüksek erişilebilirlik olanakları sunan bir mail sunucudur. Yazar D. J. Bernstein tarafından güvenlik açığı bulan kişiye para vaad edilmesine rağmen henüz kimse bir güvenlik açığı bulamamıştır.

Qmail'in avantajlarından birisi de, genişlemeye müsait bir yapısı olmasıdır. Sunucu, çok iyi bir matematik model üzerine oturtulmuş. Herşey bir legonun parçaları gibi birbirine entegre edilmiş. Kendiniz istediğiniz takdirde bu parçalardan birini çıkarıp veya öteleyip araya kendi yazılımınızı sokabilirsiniz.

QSCANQ, qmail'in bu genişleyebilir yapısını kullanarak qmail-queue'nun yerine geçer ve kendi çalıştıktan sonra program akışını yeniden qmail-queue'ya verir. QSCANQ, kendisi bir virüs tarayıcıyı veya spam bloklayıcıyı tetikleyebilir.

ripMIME

Email eklerini maillerden ayırmak için Paul L Daniels'in yazdığı ripMIME programını kullanacağız. ripMIME'ı aşağıdaki şekilde kurabilirsiniz:

# cd /root/src
# wget http://www.pldaniels.com/ripmime/ripmime-1.4.0.0.tar.gz
# gunzip ripmime-1.4.0.0.tar.gz
# tar xvf ripmime-1.4.0.0.tar
# cd ripmime-1.4.0.0
# make
# make install

Komut satırından ripmime komutunu vererek kurulduğundan ve çalıştığından emin olun.

ClamAV

ClamAV, çok başarılı bir açık kod virüs tarayıcıdır. Değişik versiyonları var. Biz clamd ve clamdscan ikilisini kullanacağız. clamd bir daemon olarak çalışır. clamdscan ise komut satırından çalışan bir virüs tarama programıdır. Aynı zamanda clamd'nin bir istemcisidir. Bu yapıda virüs veritabanı her taramada değil yalnızca clamd çalışırken belleğe yüklenir. Bundan sonraki her taramada clamdscan, clamd ile haberleşerek virüs tarama işlemi gerçekleşir. Diğer programlara göre bunun oldukça fazla performans kazancı vardır.

ClamAV aşağıdaki şekilde kurulur. (Bu kurulumda clamdscan'ın yanı sıra clamscan ve libclam da kurulur.)

# cd /root/src
# wget http://umn.dl.sourceforge.net/sourceforge/clamav/clamav-0.75.1.tar.gz
# gunzip clamav-0.75.1.tar.gz
# tar xvf clamav-0.75.1.tar
# cd clamav-0.75.1
# groupadd clamav
# useradd -g clamav clamav
# ./configure --prefix=/usr/local/ --without-libcurl
# make
# make install

Bu aşamadan sonra clamav'ın yapılandırılması gerekir.

# vi /usr/local/etc/clamav.conf

Bu dosyada 'LogFile /var/log/clamd.log', 'DatabaseDirectory /usr/local/share/clamav' ve 'User Gqscanq' değişkenlerini yapılandırmayı unutmayın. 'Gqscanq' kullanıcısını yazmayı unutmayın. Bu kullanıcıyı ileride qscanq'nun kurulum aşamasında açacağız.

Solaris, dizinlerin izin yönetimini Linux ve BSD'lere göre farklı yapmaktadır. Bu farklılık clamav'ın çalışmasını engellemektedir. Bu problemi düzeltmek için /usr/local/sbin/clam-wrp şeklinde bir yardımcı program kullanacağız. Bu dosyayı açıp içine şunları yazın (find'ın yolunu 'which find' ile kontrol edin.):

#!/bin/sh
/usr/bin/find . -type f -print|xargs cat|/usr/local/bin/clamdscan -

Yardımcı programı çalışabilir yapalım:

# chmod +x /usr/local/sbin/clam-wrp

Qscanq

# cd /root/src
# wget http://www.qscanq.org/qscanq-0.42.tar.gz
# gunzip qscanq-0.42.tar.gz
# cd /package/
# tar xvf /src/qscanq-0.42.tar
# groupadd Gqscanq
# useradd Gqscanlog

Qscanq'nun yapılandırmanız gereken src/conf-* dosyaları vardır. Qscanq, bu dosyaların ilk satırlarını okur. Bu dosyalardan src/conf-qmail qmail yolunu içerir. conf-groups, qscanq'nun çalıştığı grubu, src/conf-users ise kullanıcıyı belirtir. Bunların geçerli değerlerini değiştirmemeye çalışın.

Bu yapılandırma dosyalarından bizim için en önemlisi src/conf-scancmd dosyasıdır. Hangi antivirüs programını ne şekilde kullanacağımız burada yazılıdır. Aslında Zabit kullanacaksak bunu buraya yazmamızın bir anlamı yok ilk bakışta. Çünkü zabit bu dosyayı değiştirip kendisini ekleyecektir oraya. Ancak zabit, kendisinin hangi virüs programını kullanacağını buradan öğrenir. Bu dosyaya clamdscan kullanacağımız için şu satırı yazıyoruz:

/usr/local/bin/clamdscan --quiet ./

Diğerlerini silebilirsiniz. ÖNEMLİ: Açıklama satırı kullanmayın. Zabit parse ederken hata verir!!! Şimdi kurulumu bitirebiliriz.

# cd mail/qscanq-0.42
# ./package/install
# ./package/rts
# ./command/install-wrap
# ls -l /var/qmail/bin/qmail-queue
lrwxr-xr-x  1 root  qmail     35 Sep 22 22:51 qmail-queue -> /package/mail/qscanq/command/qscanq

qmail-queue, qscanq'ya yönlendirildi. Endişe etmeyin. qmail-queue programınızın orjinali /var/qmail/bin/qscanq dizinine yedeklendi. Qmail, artık qmail-queue'yu değil, qscanq'yu tetikleyecek. Qscanq, işini bitirdikten sonra yedeğini aldığı qmail-queue'yu çalıştıracak.

Zabit

Zabit, EnderUNIX Yazılım Geliştirme Takımı'nın geliştirdiği bir spam bloklayıcı ve içerik filitreleyicidir. E-mail sunucunuzdaki virüs çözümleri müşterilerinizi korur. Ancak spam ve içerik filitreleme e-mail sunucunuzda oluşacak gereksiz trafiğin bir kısmını yok edecektir.

Zabit'i tek başına bir içerik filitreleyici olarak kullanmanız da mümkündür. Bu durumda zabit-wrp'ye ihtiyacınız olmayacaktır. zabit-wrp, spam ve içerik filtrelerinden sonra scanq'da ayarladığınız antivirüs programını çalıştırır.

Zabit'i aşağıdaki gibi kurabilirsiniz:

# cd /root/src
# wget http://www.enderunix.org/zabit/zabit-0.5-BETA.tar.gz
# gunzip zabit-0.5-BETA.tar.gz
# tar xvf zabit-0.5-BETA.tar
# cd zabit-0.5-BETA
# ./compile
# ./install

# cd zabit-wrp/
# ./compile
# ./install

ÖNEMLİ: Zabit virüs programı olarak ne kullanacağınızı qscanq'nun src/conf-scancmd yapılandırma dosyasından öğrenir. Bu yapılandırmayı, qscanq'yu kurarken yaptığınıza emin olun.

Qscanq ve zabit kullanıldığı takdirde qmail'in çalışması şu şekilde olacaktır:

uzak e-posta sunucusu        yerel kullanıcı
---------------------        ---------------
          |                         |
          |                         |
    .------------.           .------------.
    |qmail-smtpd |           |qmail-inject|
    '------------'           '------------'
          |                         |
          |                         |
          '-----------.   .---------'
                      |   |
              .------------------.
              |      Qscanq       |
              | .---------------. |
              | |   zabit-wrp   | |
              | | .-----------. | |
              | | |   zabit   | | |
              | | | antivirus | | |
              | | '-----------' | |
              | '---------------' |
              '-------------------'
                        |
                 .-------------.
                 | qmail-queue |
                 '-------------'
                        |
                 .-------------.
                 | qmail-send  |
                 '-------------'
                        |

Clamav için oluşturduğumuz yardımcı programı test edelim ve daemon'ı çalıştıralım:

# /usr/local/sbin/clam-wrp
# /usr/local/sbin/clamd

Artık sunucunun virüs filitresini test edebiliriz.

# cd /package/mail/qscanq-0.42
# DEBUG=1 /var/qmail/bin/qmail-inject -a root < src/TEST-BAD
554 mail server permanently rejected message (#5.3.0)
# echo $?

'permanently rejected message (#5.3.0)' hatasını vermesi gerekir. Son komut geriye 100 döndürmelidir. Çünkü TEST-BAD virüslü dosyadır.

Bir de virüssüz test yapalım.

# DEBUG=1 /var/qmail/bin/qmail-inject -a root < src/TEST-GOOD
# echo $?

Şimdi de zabit'in spam engellemesini ve içerik filitrelemesini test edelim:

# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 bugs.alanadi.com ESMTP
helo
250 bugs.alanadi.com
mail from: [email protected]
250 ok
rcpt to: [email protected]
250 ok
data
354 go ahead
viagra
.
554 mail server permanently rejected message (#5.3.0)

'viagra' kelimesi zabit.conf dosyasında olduğundan spam olarak kabul edildi ve geçişi engellenmiştir.

Linkler

  1. Qmail Kurulumu (İsmail Yenigül)
  2. Zabit Programı
  3. Qscanq
  4. ripMIME
  5. Clam Antivirüs

Bu dökümana http://www.acikkod.org ve http://www.enderunix.org adreslerinden ulaşabilirsiniz.