/* * 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 * */
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.
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, ç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
# 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, 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.
Bu dökümana http://www.acikkod.org ve http://www.enderunix.org adreslerinden ulaşabilirsiniz.