Bu belgeyi, Free Software Foundation tarafından yayınlanmış bulunan GNU Genel Kamu Lisansının 2 ya da daha sonraki sürümünün koşullarına bağlı kalarak kopyalayabilir, dağıtabilir ve/veya değiştirebilirsiniz. Bu lisansın bir kopyasını http://www.gnu.org/copyleft/gpl.html adresinde bulabilirsiniz.
Bu belgedeki bilgilerin kullanımından doğacak sorumluluklar, ve olası zararlardan belge yazarı sorumlu tutulamaz. Bu belgedeki bilgileri uygulama sorumluluğu uygulayana aittir.
Tüm telif hakları aksi özellikle belirtilmediği sürece sahibine aittir. Belge içinde geçen herhangi bir terim bir ticarî isim yada kuruma itibar kazandırma olarak algılanmamalıdır. Bir ürün ya da markanın kullanılmış olması ona onay verildiği anlamında görülmemelidir.
| Baskı Tarihçesi | |
|---|---|
| Baskı Versiyon 1.0.0 | Aralık 2007 |
| İlk versiyon | |
Özet
Bu belge ile, Debian Gnu/Linux 4.0 (Etch) üzerinde orta ve büyük ölçekli e-posta sistemi ihtiyacını karşılayabilecek bir yapının kurulması hedeflenmiştir. Söz konusu sistemde, Qmail ve Vpopmail ile birden fazla domaine hizmet verebilecek bir yapı oluşturulmaya çalışılırken, spam ve virüs denetleme uygulamaları ile de desteklenmiştir.
Bu belgede henüz yer almayan detaylar için http://www.serdaraytekin.com/docs/os/debian/sarge-qmail-vpopmail-spamassassin-antivir-squirrelmail.html adresinde yer alan belgeye göz atabilirsiniz.
Belgenin son haline http://www.serdaraytekin.com/docs/os/debian/etch-mail-server.html adresinden ulaşabilirsiniz.
İçindekiler
İçindekiler
ucspi-tcp-src paketinin kurulabilmesi için /etc/apt/sources.list dosyanızda
deb http://ftp.tr.debian.org/debian etch main contrib non-free
Benzeri satırın olması gerekir (bu paketinde deponun non-free kısmında yer aldığına dikkat ediniz). Bu satır yoksa ekleyip apt-get update ile indeximizi güncelleyelim. Ardından;
# apt-get install ucspi-tcp-src # build-ucspi-tcp
Do you want to install ucspi-tcp_0.88-10_[amd64|i386].deb now? [Yn] sorusuna Enter ile yanıt verip kurulumu tamamlayabiliriz.
Qmail paketinin kaynak kodunu indirip smtp-auth yaması uygulayarak yeniden derleyeceğiz. Bunun için /etc/apt/source.list dosyanızda aşağıdaki satırların yer alıyor olması gerekiyor.
deb-src http://ftp.tr.debian.org/debian/ etch main contrib non-free
Yukarıdaki satırı source.list dosyamıza ekledikten sonra apt-get update ile indeximizi güncelleyelim. Sonra aşağıdaki adımları takip edebiliriz.
# apt-get install procmail (qmail paketinin kurulumu için gerekli) # cd /usr/local/src/ # apt-get source qmail # cd qmail-1.03/patches # wget -c http://www.serdaraytekin.com/files/debian/etch/qmail/qmail-dnsbl-smtp-auth.patch # cd .. # patch < ./patches/qmail-dnsbl-smtp-auth.patch # dpkg-buildpackage
İşlem hata vermeden tamamlanmışsa bir üst dizinde qmail-src paketi oluşmuş olmalı. Kurulum için:
# cd .. # dpkg -i qmail-src_1.03-44_all.deb # build-qmail
Yukarıdaki işlemlerden sonra qmail paketi oluşturulacak ve kurulumu için onayınız isteniyor olacak.
Do you want to install qmail_1.03-44_[amd64|i386].deb now? [Yn]
Şeklindeki soruya da enter ile onay verip kurulumu tamamlayabiliriz.
Qmail kurulumundan sonra son bir adım olarak aşağıdaki işlemleri yapıp kurulumun düzgün şekilde tamamlanmayıp tamamlanmadığını kontrol edebiliriz.
# echo "localhost" > /etc/qmail/me
# /etc/init.d/qmail restart
# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 localhost ESMTP
EHLO
250-localhost
250-AUTH LOGIN CRAM-MD5 PLAIN
250-AUTH=LOGIN CRAM-MD5 PLAIN
250-PIPELINING
250 8BITMIME
Yukarıdaki şekilde telnet localhost 25 ile 25. portun qmail tarafından dinlenip dinlenmediğini kontrol edebiliriz. Ayrıca yine EHLO komutu ile de smtp-auth desteğinin verilmiş olup olmadığını kontrol etmiş olduk.
Öncelikle vpopmail paketi tarafından ihtiyaç duyulan libmysqlclient* paketini kuralım
# apt-cache search libmysqlclient
İle depolardaki libmysqlclient paketinin tam ismini tespit edip doğru paketi kuralım.
Paket libmysqlclient15-dev benzeri bir isimle yer alıyor olacaktır.
# apt-get install libmysqlclient15
Paket bağımlılığı sebebi ile zlib1g-dev paketide kurulacaktır.
Ayrıca vpopmail'i mysql destekli olarak kuracağımız için de mysql paketlerine ihtiyacımız olacak.
# apt-get install mysql-server-5.0
Vpopmail kurulumu için aşağıdaki adımları takip edebiliriz.
# cd /usr/local/src # wget -c http://www.serdaraytekin.com/files/vpopmail/vpopmail-5.4.25.tar.gz # tar -zxvf vpopmail-5.4.25.tar.gz # cd vpopmail-5.4.25
Sıra vpopmail'in derlenmesi işlemine geldi.
# ./configure --enable-auth-module=mysql --enable-sqllibdir=/usr/lib --enable-libdir=/usr/lib --enable-clear-passwd=n --enable-md5-passwords=y # make # make install strip
Şimdi mysql üzerinde veritabanımızı oluşturalım.
mysql> create database vpopmail; mysql> grant all on vpopmail.* to vpopmail_user@localhost identified by "vpopmail_password";
Şimdi oluşturduğumuz veritabanı ismi, kullanıcı adı ve şifresine göre vpopmail.mysql dosyasını düzenleyelim.
~vpopmail/etc/vpopmail.mysql dosyasını uygun bir editör ile açarak, bu dosya içerisinde aşağıdakine benzer şekilde tanımlanmış olan satırı uygun şekilde düzenleyip aktif ediyoruz.
localhost|0|vpopmail_user|vpopmail_password|vpopmail
Evet, şimdi sistemimize yeni bir domain ve ardından da kullanıcı ekleyebiliriz.
# ~vpopmail/bin/vadddomain domainismi.com postmaster_şifresi
Domain ekleme işlemini başarılı şekilde tamamlanmışşsa, yeri gelmişken bu domaine nasıl kullanıcı ekleyebileceğimizi de görelim,
# ~vpopmail/bin/vadduser kullanici_adı@domainismi.com kullanıcı_sifresi
Yukarıdaki komut ile domainismi.com domainine kullanici_adi ile tanımlanan kullanıcıyı eklemiş oluyoruz. Kullanıcının şifreside, kullanıcı_sifresi ile tanımlanan şifre olacaktır. Neticesini veritabanınız üzerinden inceleyebilirsiniz.
Sistemimizde e-postalarımız Maildir yapısında tutulacaktır. Bu yapıya erişebilme yeteneğine sahip pop3 daemonlardan birisi olan ve qmail içerisinde gelen qmail pop3 daemon'u aktif edeceğiz. Bunun için ilk iş olarak -varsa- sistemimizde yer alan eski pop3 daemonumuzu kaldıralım. Her sistem için % 100 sonuç vermeyebilirsede, dpkg -l | grep POP3 şeklindeki bir komutla -varsa- kurulu olan pop3 daemonunuzu anlayabilirsiniz.
Daha sonra orjinal qmail scriptimizi kaybetmemek, gerektiği zaman en kötü ihtimalle orjinal duruma geri dönebilmek için qmail scriptimizi aşağıdaki komut ile qmail.org olarak yedekleyelim.
# cp /etc/init.d/qmail /etc/init.d/qmail.org
Şimdi /etc/init.d/qmail betiğinde gerekli değişiklikleri yapıp qmail-pop3 daemonu aktif edeceğiz, aynı zamanda vpopmail'in düzgün şekilde çalışabilmesi için gerekli olan ayarları tamamlamış olacağız.
Aşağıdakı adresde gerekli değişiklerin aktif edilmiş olduğu qmail betiğini bulabilirsiniz.
# cd /etc/init.d/ # wget http://www.serdaraytekin.com/files/debian/etch/qmail/qmail # /etc/init.d/qmail restart
110 nolu porta telnet çekince aşağıdakine benzer bir sonuç almamız gerekir. Cevap alamıyorsak qmailimiz başarılı şekilde başlatılamamış olabilir. Bu durumda qmail scripti içerisindeki değişiklikleri gözden geçirip, yeniden aynı işlemleri deneyiniz.
# telnet localhost 110 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. +OK <22431.1196541543@hostname>
Kurulum için aşağıdaki adımları takip edebiliriz.
# apt-get install spamassassin spamc # apt-get install razor dcc-client pyzor
Kurulum sonraki konfigürasyon dosyalarında gerekli değişiklikleri yapıp aktif edelim.
/etc/default/spamassassin dosyasında spamd daemon'unu enable edelim.
# EDIT /etc/default/spamassassin # ENABLED=1 (varsayılan değer olarak ENABLED=0 olan satırı ENABLED=1 olarak değiştiriyoruz)
/etc/spamassassin/local.cf dosyasında da uygun şekilde düzenleme yapmak için aşağıdaki örnek konfigürasyonu kullanabiliriz.
Aşağıdaki örnek konfigürasyon http://www.yrex.com/spam/spamconfig.php adresindeki web arabirimi ile oluşturulmuştur
# How many hits before a message is considered spam. required_score 5.0 # Encapsulate spam in an attachment (0=no, 1=yes, 2=safe) report_safe 1 # Enable the Bayes system use_bayes 1 # Enable Bayes auto-learning bayes_auto_learn 1 # Enable or disable network checks skip_rbl_checks 0 use_razor2 1 use_dcc 1 use_pyzor 1 # Mail using languages used in these country codes will not be marked # as being possibly spam in a foreign language. ok_languages all # Mail using locales used in these country codes will not be marked # as being possibly spam in a foreign language. ok_locales all
# apt-get install clamav clamav-daemon # apt-get install arj unzoo unrar lha unzip
İleriki adımlarda gerekli olacak clamav-daemon ile ilgili ayarları ayarları şimdiden yapalım. Qmailscanner için gerekli olacak olan qscand grubu ve kullanıcısını ekleyelim.
# groupadd qscand # useradd -c "Qmail-Scanner Account" -g qscand -s /bin/false qscand
Daha sonra /etc/clamav/clamd.conf dosyasındaki User clamav satırını User qscand şeklinde değiştirelim. Ardından;
# chown qscand -R /var/run/clamav/ # chown qscand -R /var/log/clamav/ # /etc/init.d/clamav-daemon restart
Qmail-Scanner, Qmail için tasarlanmış içerik tarayıcı sistemidir. Clamav ve Spamassasin ile birlikte çalışmasını sağlayacağız. Bu şekilde, sisteme gelen veya sistemden gönderilen maillerin kontrol edilmesini, virus içerip içermediğini veya spam olup olmadığını anlayabilmemizi sağlayacak. Bu yazılımın kurulumunuda yine .tar.gz 'den yapacağız. Kurulum için,
Öncelikle kurulum için gerekli olacak paketleri kuralım
# apt-get install perl-suid # apt-get install maildrop # apt-get install apt-get install daemontools-installer # build-daemontools
Qmail-scanner'e ekstra yetenekler kazandırmak için http://toribio.apollinare.org/qmail-scanner/ adresinde yer alan yama uygulanmış qmail-scanner'ı kullanacağız. Bu versiyon ile spam olarak işaretlediğimiz ve içerisinde virüs bulunan e-postaların otomatik olarak silinmesini sağlayabileceğiz.
# cd /usr/local/src/ # wget http://www.serdaraytekin.com/files/qmail-scanner/q-s-2.01st-20070204.tgz # tar -zxvf q-s-2.01st-20070204.tgz # cd qmail-scanner-2.01st
./configure \ --qs-user qscand \ --spooldir /var/spool/qmailscan \ --qmail-queue-binary /usr/sbin/qmail-queue \ --admin-description "System Anti-Virus Administrator" \ --notify none \ --local-domains localhost \ --silent-viruses auto \ --virus-to-delete 1 \ --skip-text-msgs 1 \ --lang tr_TR \ --debug 1 \ --minidebug 1 \ --add-dscr-hdrs 1 \ --dscr-hdrs-text "X-Qmail-Scanner" \ --normalize 1 \ --archive 0 \ --max-scan-size 100000000 \ --unzip 1 \ --max-zip-size 1000000000 \ --max-unpacked-files 10000 \ --redundant 0 \ --log-details yes \ --log-crypto 0 \ --fix-mime 1 \ --ignore-eol-check 0 \ --sa-delta 0 \ --sa-alt 0 \ --sa-debug 0 \ --sa-report 0 \ --sa-quarantine 0 \ --sa-delete 0.0 \ --sa-reject 0 \ --scanners "clamdscan,verbose_spamassassin" \ --install 1
Yukarıdaki parametrelerin işletilmesinden sonra, aşağıdaki şekilde bir konfigürasyon elde etmiş olacağız.
----------------------------------------------
st: configuration options for 2.01st-20070204
----------------------------------------------
minidebug=1
settings-per-domain=0
virus-to-delete=1
dscr-hdrs-text='X-Qmail-Scanner'
sa-delta =0
sa-alt =0
sa-debug =0 (only valid if sa-alt is enabled)
sa-report =0 (only valid if sa-alt and sa-debug are enabled)
Spamassasin Required_Hits=5.0
sa-quarantine=0 (no mail will be quarantined)
sa-delete =0.0 (messages over 5 hits will be deleted)
sa-reject =0
-------------------------------------------------------------------------
If that looks correct, I will now generate qmail-scanner-queue.pl
for your system...
Continue? ([Y]/N)
Yukarıdaki parametrelerden de görüleceği üzere, spam derecesi 5.0 ve üzerinde olan tüm e-postalar e-posta kutusuna gönderilmeden silinecek. Yine benzer şekilde --virus-to-delete 1 parametresi sayesinde virüs tespit edilen e-posta da otomatik olarak silinecek şekilde konfigüre edilmiş oldu.
Spamassassin'de spam seviyesini 5.0 olacak şekilde konfigüre etmiştik. --sa-delete 0.0 parametresi ile de 5.0 (spamassassin seviyesi) + 0.0 (qmail-scanner seviyesi) = 5.0 olarak hesaplanacağı için, yine spam seviyesi 5.0 ve üzeri olan e-postaların otomatik olarak silinmesini istemiş olduk. Şayet --sa-delete 1.0 olsaydı, bu durumda 5.0 (spamassassin seviyesi) + 1.0 (qmail-scanner seviyesi) = 6.0 olarak hesaplanacağı için, spam seviyesi 6 ve üstündeki e-postalar otomatik olarak siliniyor olacaktı.
Son olarak aşağıdaki komut ile kurulum işleminin testini yapmış olalım.
# /var/qmail/bin/qmail-scanner-queue.pl -g
Yukarıdaki işlem sonucunda aşağıdakine benzer bir sonuç görebiliyor olmamız gerekiyor.
perlscanner: generate new DB file from /var/spool/qscan/quarantine-events.txt perlscanner: total of 35 entries.
Qmail-Scanner'in devreye girebilmesi için, /etc/tcp.smtp dosyasında aşağıdaki değişiklikleri aktif edelim.
127.0.0.1:allow,RELAYCLIENT="",QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue.pl" :allow,QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue.pl"
Yukarıdaki satırları /etc/tcp.smtp dosyasına yazdıktan sonra aktif etmek içinde aşağıdaki komutu uygulayalım.
# tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp
Qmail-Scanner dosyalarının izinlerini tekrar ayarlayarak qmail sistemimizi restart edebiliriz.
# chown qscand -R /var/spool/qscan/ # chmod 755 -R /var/spool/qscan/ # qmail-scanner-queue.pl -z # /etc/init.d/qmail restart
# ps -adef | grep qmail | grep -v grep | awk '{print $2}' | xargs kill -9
# /etc/init.d/qmail restart
Qmail-Scanner ile ilgili rapor alabilmek için qmail-queue.log verilerinden faydalanabiliriz. Bunun içinde:
# /var/spool/qscan/log-report.sh /var/spool/qscan/qmail-queue.log