[ YAZICI GORUNUMU ]


TURKCE QMAIL KITABI

TURKCE FreeBSD KITABI
BELGE HAKKINDA:

Bu belge "GNU Free Documentation Licence" ile kaynak gosterilmek ve onceden yazarindan izin alinmak kaydiyla yeniden yayinlanabilir.
Belgedeki eksik, yanlis ya da gelistirilmesi gerektigini dusundugunuz yerleri e-posta yoluyla bildirebilirsiniz.

Bu belgenin en guncel haline, http://www.enderunix.org/docs/qmail-install.php adresinden ulasabilirsiniz.

Belgenin Ilk Olusturulma Tarihi: 02 Ekim 2006
Belgenin Son Guncellenme Tarihi: 15 Kasim 2006

YAZAR HAKKINDA:

Hakan OZAY [ArkHe]

hakan [at] enderunix [nokta] org

BELGE ICERIGI:

1- APACHE+PHP+MYSQL KURULUMU
    1.1- MySQL Kurulumu
    1.2- Apache Kurulumu
    1.3- PHP Kurulumu
2- QMAIL VE BILESENLERININ KURULUMU
    2.1 Gerekli Kullanici ve Gruplarin Olusturulmasi
    2.2 Gerekli Temel Dizinlerin Olusturulmasi
    2.3 Gerekli Dosyalarin Temin Edilmesi
    2.4 Dosyalarin Paketlerden Cikarilmasi
    2.5 Patch'lerin Uygulanmasi
    2.6 Qmail'in Kurulmasi
    2.7 ucspi-tcp paketinin Kurulmasi
    2.8 daemontools paketinin Kurulmasi
    2.9 Ezmlm / Ezmlm-idx Kurulumu
    2.10 Autorespond Kurulumu
    2.11 Vpopmail Kurulumu
        2.11.1 MySQL destekli Vpopmail Kurulumu
        2.11.2 MySQL destegi olmadan Vpopmail Kurulumu
    2.12 Vqadmin Kurulumu
    2.13 Qmailadmin Kurulumu
    2.14 Scriptlerin Yazilmasi
        2.14.1 /var/qmail/supervise/qmail-pop3d/run
        2.14.2 /var/qmail/supervise/qmail-pop3d/log/run
        2.14.3 /var/qmail/supervise/qmail-smtpd/run
        2.14.4 /var/qmail/supervise/qmail-smtpd/log/run
        2.14.5 /var/qmail/supervise/qmail-send/run
        2.14.6 /var/qmail/supervise/qmail-send/log/run
        2.14.7 /var/qmail/rc
        2.14.8 /var/qmail/bin/qmailctl
        2.14.9 Gerekli Izinlerin Verilmesi
    2.15 Qmail Icin Son Ayarlarin Uygulanmasi
    2.16 Sendmail'in Kaldirilmasi
    2.17 Clamav Kurulumu
    2.18 Ripmime Kurulumu
    2.19 qSheff Kurulumu
    2.20 Spamassassin Kurulumu
    2.21 Courier-Authlib Kurulumu
    2.22 Courier-Imap Kurulumu
    2.23 WebMail Kurulumu
        2.23.1 SqWebMail Kurulumu
        2.23.2 SquirrelMail Kurulumu
    2.24 Isoqlog Kurulumu
    - YARARLANILAN KAYNAKLAR

GIRIS:

Ozetle diyebiliriz ki; bu belgede FreeBSD �zerine ihtiyaca gore secimli bilesenlerle birlikte Qmail kurulumunu anlatmaya calisacagim.

Kuruluma baslamadan once bir FreeBSD sisteminin halihazirda kurulmus oldugunu varsayiyorum.

Not: Kurulumda FreeBSD 6.1 kullanilmistir, ve dizin yapilari ona gore ele alinmistir.

1- APACHE+PHP+MYSQL KURULUMU

Qmail kurulumundan once hizlica Apache+PHP+MySQL kurulumuyla ise baslayalim. Burada;

Apache: WebMail, Vpopmail Yonetim Arabirimi, Qmail Yonetim Arabirimi
PHP: Webmail Uygulamasinin Calistirilmasi
MySQL: Vpopmail kullanici bilgilerinin saklanmasi

icin kullanilacaktir denilebilir.

Sorunsuz ve basit bir kurulum icin bu uygulamalari ports uzerinden kuracagiz.

1.1- MySQL Kurulumu:

Web Adresi: http://www.mysql.org

Vpopmail'i MySQL destegiyle kurmayi dusunmuyorsaniz, konumuz dahilinde MySQL'e ihtiyacimiz yok; 1.2 adimina gecebilirsiniz. Farkli bir amac icin gerekecek ya da MySQL destekli Vpopmail tercih edecekseniz; devam edin.

# cd /usr/ports/databases/mysql50-server
# make WITH_CHARSET=latin5 install clean
# /usr/local/bin/mysql_install_db
# chown -R mysql /var/db/mysql/
# chgrp -R mysql /var/db/mysql/
# /usr/local/bin/mysqld_safe -user=mysql &

Simdi MySQL'in sistem acilisinda baslamasini saglayalim:

# echo 'mysql_enable="YES"' >> /etc/rc.conf

Simdi de MySQL admin parolasini olusturalim:

# mysqladmin -u root password yeni_parolaniz

Hepsi bukadar MySQL kurulumunu bitirdik.

1.2- Apache Kurulumu:

Web Adresi: http://www.apache.org

# cd /usr/ports/www/apache22
# make install clean

Simdi Apache acilista baslamasi icin:

# echo 'apache22_enable="YES"' >> /etc/rc.conf

Evet, Apache baslatilabilir artik:

# /usr/local/sbin/apachectl start

Denemek icin bir tarayici acip http://ip_adresiniz yazarak "It works!" yazisini gorebilirsiniz.

Apache'yi baslattiginizda "No such file or directory: Failed to enable the 'httpready' Accept Filter" hatasi veriyorsa, bunu cozmek icin:

# echo 'accf_http_load="YES"' >> /boot/loader.conf

diyebilirsiniz.


1.3- PHP Kurulumu:

Web Adresi: http://www.php.net

# cd /usr/ports/lang/php5
# make install clean

Simdi php5 icin eklenti kurulumlarini gerceklestirelim:

# cd /usr/ports/lang/php5-extensions
# make config

Burada karsiniza gelen ekrandan istediginiz ozellikleri ekleyebilir ya da cikarabilirsiniz. Biz burada konumuzla ilgili olarak standart secenekler disinda herhangi bir degisiklik ihtiyaci duymuyoruz.

Secimi yapip ciktiktan sonra:

# make install clean

diyoruz, ve gerekli eklentiler de kurulmus oldu.

Simdi Apache icin PHP ayarlarini yapalim:

# vi /usr/local/etc/apache22/httpd.conf

Acilan dosyada LoadModule satirlarindan hemen sonra

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

satirlarini ekleyelim.

Ardindan da

DirectoryIndex index.html

kisminda index.html'den sonra index.php ekleyelim. (Buraya Apache'nin index olarak tanimasini istediginiz tum degerleri girebilirsiniz.)
Dosyayi kaydedip cikalim ve Apache'yi yeniden baslatalim.

# apachectl restart

Dosyalarimizi koyacagimiz yer /usr/local/www/apache22/data adresidir.

Evet, Apache, PHP ve MySQL kurulumlari ihtiyacimizi karsilayacak haliyle tamamlanmis oldu. Simdi 2. asama olan Qmail Kurulumuna gecebiliriz.

2- QMAIL VE BILESENLERININ KURULUMU

Burada Qmail ve beraberinde ihtiyacimizi karsilayacak olan diger cevre uygulamalarinin kurulumunu yapacagiz.

2.1 Gerekli Kullanici ve Gruplarin Olusturulmasi:

Qmail icin;

# pw groupadd nofiles
# pw useradd alias -g nofiles -d /var/qmail/alias -s /sbin/nologin
# pw useradd qmaild -g nofiles -d /var/qmail -s /sbin/nologin
# pw useradd qmaill -g nofiles -d /var/qmail -s /sbin/nologin
# pw useradd qmailp -g nofiles -d /var/qmail -s /sbin/nologin
# pw groupadd qmail
# pw useradd qmailq -g qmail -d /var/qmail -s /sbin/nologin
# pw useradd qmailr -g qmail -d /var/qmail -s /sbin/nologin
# pw useradd qmails -g qmail -d /var/qmail -s /sbin/nologin

Vpopmail icin;

# pw groupadd vchkpw
# pw useradd vpopmail -g vchkpw -m -d /usr/home/vpopmail -s /sbin/nologin

2.2 Gerekli Temel Dizinlerin Olusturulmasi:

# mkdir -p /var/qmail
# mkdir -p /package
# chmod 1755 /package
# mkdir /usr/src/qmail

Simdi gerekli log dizinlerini yaratalim ve izinleri belirleyelim:

# mkdir /var/log/qmail
# cd /var/log/qmail
# mkdir qmail-send qmail-smtpd qmail-pop3d
# chown -R qmaill:wheel /var/log/qmail
# chmod -R 750 /var/log/qmail

Supervise scriptleri icin gerekli dizinleri olsuturalim ve izinleri belirleyelim:

# mkdir /var/qmail/supervise
# cd /var/qmail/supervise
# mkdir -p qmail-smtpd/log qmail-send/log qmail-pop3d/log
# chmod +t qmail-smtpd qmail-send qmail-pop3d

2.3 Gerekli Dosyalarin Temin Edilmesi:

Dosyalarin derli toplu olmasi icin bir downloads dizini icerisine cekelim(Uygulamalarin surumleri guncellenmis olabilir, dosyalari cekmeden once kontrol etmenizde fayda var):

# mkdir /downloads
# cd /downloads
# fetch http://cr.yp.to/software/qmail-1.03.tar.gz
# fetch http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz
# fetch http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
# fetch http://www.ezmlm.org/archive/ezmlm-0.53.tar.gz
# fetch http://www.ezmlm.org/archive/0.443/ezmlm-idx-0.443.tar.gz
# fetch http://mesh.dl.sourceforge.net/sourceforge/vpopmail/vpopmail-5.4.13.tar.gz
# fetch http://www.inter7.com/vqadmin/vqadmin-2.3.2.tar.gz
# fetch http://mesh.dl.sourceforge.net/sourceforge/qmailadmin/qmailadmin-1.2.9.tar.gz
# fetch http://mesh.dl.sourceforge.net/sourceforge/clamav/clamav-0.88.2.tar.gz
# fetch http://www.pldaniels.com/ripmime/ripmime-1.4.0.6.tar.gz
# fetch http://www.enderunix.org/qsheff/qsheff-II-2.1-r2.tar.gz
# fetch http://mesh.dl.sourceforge.net/sourceforge/courier/courier-authlib-0.58.tar.bz2
# fetch http://switch.dl.sourceforge.net/sourceforge/courier/courier-imap-4.1.1.tar.bz2
# fetch http://mesh.dl.sourceforge.net/sourceforge/pcre/pcre-6.3.tar.gz
# fetch http://switch.dl.sourceforge.net/sourceforge/courier/sqwebmail-5.1.2.tar.bz2
# fetch http://mesh.dl.sourceforge.net/sourceforge/squirrelmail/squirrelmail-1.4.6.tar.gz
# fetch http://www.enderunix.org/isoqlog/isoqlog-2.2.1.tar.gz

Gerekli patchleri alalim:

# mkdir /downloads/patches
# cd /downloads/patches
# fetch http://www.ckdhr.com/ckd/qmail-103.patch
# fetch http://www.qmail.org/qmailqueue-patch
# fetch http://members.elysium.pl/brush/qmail-smtpd-auth/dist/qmail-smtpd-auth-0.31.tar.gz

2.4 Dosyalarin Paketlerden Cikarilmasi:

# cd /usr/src/qmail/
# tar -zxvf /downloads/qmail-1.03.tar.gz
# tar -zxvf /downloads/ucspi-tcp-0.88.tar.gz
# tar -zxvf /downloads/ezmlm-0.53.tar.gz
# tar -zxvf /downloads/ezmlm-idx-0.443.tar.gz
# tar -zxvf /downloads/vpopmail-5.4.13.tar.gz
# tar -zxvf /downloads/vqadmin-2.3.2.tar.gz
# tar -zxvf /downloads/qmailadmin-1.2.9.tar.gz
# tar -zxvf /downloads/clamav-0.88.2.tar.gz
# tar -zxvf /downloads/ripmime-1.4.0.6.tar.gz
# tar -zxvf /downloads/qsheff-II-2.1-r2.tar.gz
# tar -jxvf /downloads/courier-authlib-0.58.tar.bz2
# tar -jxvf /downloads/courier-imap-4.1.1.tar.bz2
# tar -zxvf /downloads/pcre-6.3.tar.gz
# tar -jxvf /downloads/sqwebmail-5.1.2.tar.bz2
# tar -zxvf /downloads/squirrelmail-1.4.6.tar.gz
# tar -zxvf /downloads/isoqlog-2.2.1.tar.gz
# cd /package
# tar -zxvf /downloads/daemontools-0.76.tar.gz

2.5 Patch'lerin Uygulanmasi:

# echo 211 > /usr/src/qmail/qmail-1.03/conf-split
# echo 255 > /usr/src/qmail/qmail-1.03/conf-spawn

Patchler icin kisaca aciklama yapmak gerekirse:

- Qmail-1.03 patchi standart Qmail patchidir. Hata gidermeleri ve bazi temel eklemeler icerir.
- QmailQueue patchi de, qmail-queue yerine gececek olan uygulamanin bir cevre degiskeninden okunmasini saglar. Bu degiskeni /etc/tcp.smtp dosyasinda tanimlayacagiz.
- Smtpd-Auth patchi ise, smtp kimlik dogrulamasini sagalayan bir patch. Bu patch uygulanmazsa relay ayari yapilan kesim disinda mail gonderilmesi ya duracak, ya da vpopmail'in roaming-users ozelligi kullanilacaktir. Biz smtpd-auth patch'ini tercih ediyoruz.

Bunlarin disinda farkli patchler'de kullanilabilir; ancak biz temel olarak bunlari kullanacagiz.

Simdi Patch'leri uygulamaya baslayalim;

# cd /usr/src/qmail/qmail-1.03
# patch < /downloads/patches/qmail-103.patch
# patch < /downloads/patches/qmailqueue-patch
# cd ..
# tar -zxvf /downloads/patches/qmail-smtpd-auth-0.31.tar.gz
# cd qmail-smtpd-auth-0.31
# cp README.auth auth.patch base64.c base64.h ../qmail-1.03/
# cd ../qmail-1.03
# patch < auth.patch

2.6 Qmail'in Kurulmasi:

Web Adresi: http://www.qmail.org

mail.domain.com ifadesini size uygun sekilde degistirmeyi unutmayin.

# make man
# make setup check
# ./config-fast mail.domain.com

2.7 ucspi-tcp paketinin Kurulmasi:

Web Adresi: http://cr.yp.to/ucspi-tcp.html

# cd /usr/src/qmail/ucspi-tcp-0.88/
# make
# make setup check

2.8 daemontools paketinin Kurulmasi:

Web Adresi: http://cr.yp.to/daemontools.html

# cd /package/admin/daemontools-0.76
# ./package/install

Simdi svscan servisini baslatmak icin sistemimizi yeniden baslatalim:

# reboot

Evet, sistemimiz yeniden acildiktan sonra sirada qmail icin yazilmis e-posta liste yazilimi olan ezmlm kurulumu var.

2.9 Ezmlm / Ezmlm-idx Kurulumu:

Web Adresi: http://www.ezmlm.org

Burada bir hususu belirtmek isterim; yukarida indirdigimiz ezmlm paketi(ezmlm-0.53.tar.gz) standart ezmlm paketidir. Ezmlm-idx paketi(ezmlm-idx-0.443.tar.gz) ise ezmlm uygulamasina cesitli yeni ozellikler getiren bir yama uygulamasidir. Simdi bu yamayla birlikte ezmlm kurulumunu yapalim:

# cd /usr/src/qmail/
# mv ezmlm-idx-0.443/* ezmlm-0.53/
# cd ezmlm-0.53
# patch < idx.patch
# make && make man && make setup

2.10 Autorespond Kurulumu:

Web Adresi: http://www.inter7.com

Bazi sorunlarla ugrasmamak icin autorespond uygulamasini ports uzerinden kuracagiz.

# cd /usr/ports/mail/autorespond/
# make install clean

2.11 Vpopmail Kurulumu

Web Adresi: http://www.inter7.com/vpopmail

Simdi vpopmail'i kuracagiz. Supervise scriptlerimizi Vpopmail odakli yazacagimiz icin oncelikle Vpopmail kurulumunu yapalim, ki mantikli bir gidis sirasi olsun.

Vpopmail'i MySQL destegiyle kuracaksaniz, 2.11.1 adimina devam edin. MySQL destegiyle kurmayacaksaniz, 2.11.2 adimina atlayabilirsiniz.

Burada; --enable-logging=p parametresiyle, log dosyasina yazilan hatalarla birlikte giris icin denenen parolalari da yaz demis oluyoruz. Diger --enable-logging secenekleri icin help'e bakabilirsiniz.

http://sourceforge.net/project/showfiles.php?group_id=85937 adresinden stable olan son surumu istediginiz yansidan indirebilirsiniz. Biz yukarida Mesh Solutions uzerinden vpopmail-5.4.13 surumunu indirmistik.

2.11.1 MySQL destekli Vpopmail Kurulumu:

Veritabani adi olarak "vpopmail"; kullanici adi olarak "vpmail", parola olarak da "parola" giriyoruz. Siz bu degerleri istediginiz gibi duzenlemeyi unutmayin.

# mysql -u root -p

dedikten sonra parolamizi girelim ve mysql promptuna duselim. Ardindan asagidaki komutlari sirasiyla ugulayalim:

mysql> CREATE DATABASE vpopmail;
Query OK, 1 row affected (0.04 sec)

mysql> GRANT select,insert,update,delete,create,drop ON vpopmail.* TO vpmail@localhost IDENTIFIED BY 'parola';
Query OK, 0 rows affected (0.02 sec)

mysql> quit
Bye

Sira geldi derlemeye:

# cd /usr/src/qmail/vpopmail-5.4.13
# ./configure --enable-logging=p --enable-auth-module=mysql --disable-passwd --enable-clear-passwd --disable-many-domains --enable-auth-logging --enable-sql-logging --enable-valias --disable-mysql-limits
# make
# make install-strip

Simdi MySQL bilgilerini vpopmail'e bildirelim.

# echo "localhost|0|vpmail|parola|vpopmail" > ~vpopmail/etc/vpopmail.mysql
# chown vpopmail:vchkpw ~vpopmail/etc/vpopmail.mysql
# chmod 640 ~vpopmail/etc/vpopmail.mysql

MySQL destekli Vpopmail kurulumu da boylece tamamlanmis oldu.

2.11.2 MySQL destegi olmadan Vpopmail Kurulumu:

# cd /usr/src/qmail/vpopmail-5.4.13
# ./configure --enable-logging=p
# make
# make install-strip

MySQL destegi olmayan Vpopmail kurulumu da boylece tamamlanmis oldu.


/usr/home/vpopmail/bin/ altinda yer alan araclar sayesinde vpopmaili kolayca kullanabilirsiniz. Ancak bunu daha da kolaylastirmak isterseniz bir web arabirim kullanmak isteyebilirsiniz. Bunun icin yine Inter7 urunu olan vqadmin uygulamasini kuracagiz.

2.12 Vqadmin Kurulumu:

Web Adresi: http://www.inter7.com/vqadmin

# cd /usr/src/qmail/vqadmin-2.3.2
# ./configure --enable-cgibindir=/usr/local/www/apache22/cgi-bin --enable-htmldir=/usr/local/www/apache22/data
# make && make install-strip

Simdi bu cgi-bin uygulamasi icin apache'de gerekli ayarlamalari yapalim:

# vi /usr/local/etc/apache22/httpd.conf

diyerek dosyayi actiktan sonra Directory tanimlarinin oldugu bolume asagidaki satirlari ekleyin.

<Directory "/usr/local/www/apache22/cgi-bin/vqadmin">
deny from all
Options ExecCGI
AllowOverride AuthConfig
Order deny,allow
</Directory>

Simdi kullanici dogrulamasi icin gereken ayarlari yapalim:

# cd /usr/local/www/apache22/cgi-bin/vqadmin/
# vi .htaccess

Dosyada gordugumuz gibi kullanici dogrulamasini yapacagi dosya adresi olarak;

AuthUserFile /usr/local/apache/conf/vqadmin.passwd

satiri mevcut. Biz bunu;

AuthUserFile /usr/local/www/apache22/conf/.htpasswd

olarak degistirelim ve kaydederek dosyayi kapatalim.

Dosyadan ciktiktan sonra;

"admin_parolasi" ifadesi giris icin verdigimiz paroladir. Bunu size gore yazmayi unutmayin.

# chown www .htaccess
# chmod 644 .htaccess
# mkdir /usr/local/www/apache22/conf
# htpasswd -bc /usr/local/www/apache22/conf/.htpasswd admin admin_parolasi
# chmod 644 /usr/local/www/apache22/conf/.htpasswd

Simdi Apache'yi yeniden baslatalim.

# apachectl restart

Bundan sonra tarayiciyi acarak http://ip_adresiniz/cgi-bin/vqadmin/vqadmin.cgi dediginiz zaman kullanici bilgilerini girerek sayfaya ulasabilirsiniz.

NOT: Turkce bir tarayici kullaniyorsaniz muhtemelen karsiniza "invalid language file" hatasi cikacaktir. Bunun sebebi tarayicinin dil onceliklerinde Turkce'nin en ustte yer almasi ve vqadmin'de Turkce dil dosyasinin bulunmamasi. Bunu cozmek icin;

# cp /usr/local/www/apache22/cgi-bin/vqadmin/html/en /usr/local/www/apache22/cgi-bin/vqadmin/html/tr
# cp /usr/local/www/apache22/cgi-bin/vqadmin/html/en-us /usr/local/www/apache22/cgi-bin/vqadmin/html/tr-TR

satirlarini uygulayabiliriz. Tabi isterseniz bu yeni dosyalarin cevirilerini de yapabilirsiniz.

Simdi Qmail'i Web arabirimden yonetmemizi saglayan QmailAdmin uygulamasini kurmaya geldi sira.

2.13 Qmailadmin Kurulumu:

Web Adresi: http://www.inter7.com/qmailadmin

QmailAdmin uygulamasini http://sourceforge.net/project/showfiles.php?group_id=6691 adresinden istediginiz yansi araciligiyla indirebilirsiniz. Biz yukarida Mesh Solutions uzerinden qmailadmin-1.2.9 surumunu indirmistik.

# cd /usr/src/qmail/qmailadmin-1.2.9
# ./configure --enable-modify-quota --enable-cgibindir=/usr/local/www/apache22/cgi-bin --enable-htmldir=/usr/local/www/apache22/data
# make
# make install-strip

http://ip_adresiniz/cgi-bin/qmailadmin diyerek sayfaya ulasabilirsiniz. Buraya yonetmek istediginiz domaini ve domainin ilgili postmaster hesabini parolasiyla girerek devam edebilirsiniz(Tabi ilgili domaini ekledikten sonra).

Simdi gerekli calistirma scriptlerini yazalim.

2.14 Scriptlerin Yazilmasi

Asagidaki dosyalari editorle talep ettikten sonra altlarinda yer alan script satirlarini dosyaya yazarak ilgili dosyayi kaydediyoruz.

Not: qmail-pop3d/run ve qmail-smtpd/run scriptlerinde mail.domain.com adreslerini size gore duzenlemeyi unutmayin.

2.14.1 /var/qmail/supervise/qmail-pop3d/run:

# vi /var/qmail/supervise/qmail-pop3d/run

#!/bin/sh
PATH=/var/qmail/bin:/usr/local/bin:/usr/bin:/bin
export PATH
exec tcpserver -H -R -v -c100 0 110 qmail-popup mail.domain.com \
/usr/home/vpopmail/bin/vchkpw qmail-pop3d Maildir 2>&1

2.14.2 /var/qmail/supervise/qmail-pop3d/log/run:

# vi /var/qmail/supervise/qmail-pop3d/log/run

#!/bin/sh
PATH=/var/qmail/bin:/usr/local/bin:/usr/bin:/bin
export PATH
exec setuidgid qmaill multilog t s100000 n20 /var/log/qmail/qmail-pop3d 2>&1

2.14.3 /var/qmail/supervise/qmail-smtpd/run:

# vi /var/qmail/supervise/qmail-smtpd/run

#!/bin/sh
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 "Refusing to start SMTP listener because it'll create an open relay"
exit 1
fi
exec /usr/local/bin/softlimit -m 30000000 \
/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 mail.domain.com \
/usr/home/vpopmail/bin/vchkpw /usr/bin/true 2>&1

2.14.4 /var/qmail/supervise/qmail-smtpd/log/run:

# vi /var/qmail/supervise/qmail-smtpd/log/run

#!/bin/sh
PATH=/var/qmail/bin:/usr/local/bin:/usr/bin:/bin
export PATH
exec setuidgid qmaill multilog t s100000 n20 /var/log/qmail/qmail-smtpd 2>&1

2.14.5 /var/qmail/supervise/qmail-send/run:

# vi /var/qmail/supervise/qmail-send/run

#!/bin/sh
exec /var/qmail/rc

2.14.6 /var/qmail/supervise/qmail-send/log/run:

# vi /var/qmail/supervise/qmail-send/log/run

#!/bin/sh
PATH=/var/qmail/bin:/usr/local/bin:/usr/bin:/bin
export PATH
exec setuidgid qmaill multilog t s100000 n20 /var/log/qmail/qmail-send 2>&1

2.14.7 /var/qmail/rc:

# vi /var/qmail/rc

#!/bin/sh
exec env - PATH="/var/qmail/bin:$PATH" \
qmail-start "`cat /var/qmail/control/defaultdelivery`"

2.14.8 /var/qmail/bin/qmailctl:

# vi /var/qmail/bin/qmailctl

#!/bin/sh
PATH=/var/qmail/bin:/bin:/usr/bin:/usr/local/bin:/usr/local/sbin
export PATH

QMAILDUID=`id -u qmaild`
NOFILESGID=`id -g qmaild`

case "$1" in
start)
echo "Starting qmail..."
echo ""
if svok /service/qmail-send ; then
svc -u /service/qmail-send /service/qmail-send/log
echo "Starting qmail-send"
else
echo "qmail-send supervise not running"
fi
if svok /service/qmail-smtpd ; then
svc -u /service/qmail-smtpd /service/qmail-smtpd/log
echo "Starting qmail-smtpd"
else
echo "qmail-smtpd supervise not running"
fi
if svok /service/qmail-pop3d ; then
svc -u /service/qmail-pop3d /service/qmail-pop3d/log
echo "Starting qmail-pop3d"
else
echo "qmail-pop3d supervise not running"
fi
if [ -d /var/lock/subsys ]; then
touch /var/lock/subsys/qmail
fi
;;
stop)
echo "Stopping qmail..."
echo ""
echo " qmail-smtpd"
svc -d /service/qmail-smtpd /service/qmail-smtpd/log
echo " qmail-send"
svc -d /service/qmail-send /service/qmail-send/log
echo " qmail-pop3d"
svc -d /service/qmail-pop3d /service/qmail-pop3d/log
if [ -f /var/lock/subsys/qmail ]; then
rm /var/lock/subsys/qmail
fi
;;
stat)
svstat /service/qmail-send
svstat /service/qmail-send/log
svstat /service/qmail-smtpd
svstat /service/qmail-smtpd/log
svstat /service/qmail-pop3d
svstat /service/qmail-pop3d/log
qmail-qstat
;;
doqueue|alrm|flush)
echo "Flushing timeout table and sending ALRM signal to qmail-send."
/var/qmail/bin/qmail-tcpok
svc -a /service/qmail-send
;;
queue)
qmail-qstat
qmail-qread
;;
reload|hup)
echo "Sending HUP signal to qmail-send."
svc -h /service/qmail-send
;;
pause)
echo "Pausing qmail-send"
svc -p /service/qmail-send
echo "Pausing qmail-smtpd"
svc -p /service/qmail-smtpd
echo "Pausing qmail-pop3d"
svc -p /service/qmail-pop3d
;;
cont)
echo "Continuing qmail-send"
svc -c /service/qmail-send
echo "Continuing qmail-smtpd"
svc -c /service/qmail-smtpd
echo "Continuing qmail-pop3d"
svc -c /service/qmail-pop3d
;;
restart)
echo "Restarting qmail:"
echo "* Stopping qmail-smtpd."
svc -d /service/qmail-smtpd /service/qmail-smtpd/log
echo "* Sending qmail-send SIGTERM and restarting."
svc -t /service/qmail-send /service/qmail-send/log
echo "* Sending qmail-pop3d SIGTERM and restarting."
svc -t /service/qmail-pop3d /service/qmail-pop3d/log
echo "* Restarting qmail-smtpd."
svc -u /service/qmail-smtpd /service/qmail-smtpd/log
;;
cdb)
tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp
chmod 644 /etc/tcp.smtp.cdb
echo "Reloaded /etc/tcp.smtp."
;;
help)
cat <<HELP
stop -- stops mail service (smtp connections refused, nothing goes out)
start -- starts mail service (smtp connection accepted, mail can go out)
pause -- temporarily stops mail service (connections accepted, nothing leaves)
cont -- continues paused mail service
stat -- displays status of mail service
cdb -- rebuild the tcpserver cdb file for smtp
restart -- stops and restarts smtp, sends qmail-send a TERM & restarts it
doqueue -- schedules queued messages for immediate delivery
reload -- sends qmail-send HUP, rereading locals and virtualdomains
queue -- shows status of queue
alrm -- same as doqueue
flush -- same as doqueue
hup -- same as reload
HELP
;;
*)
echo "Usage: $0 {start|stop|restart|doqueue|flush|reload|stat|pause|cont|cdb|queue|help}"
exit 1
;;
esac

exit 0

2.14.9 Gerekli Izinlerin Verilmesi:

# chmod 755 /var/qmail/rc /var/qmail/bin/qmailctl
# chmod 751 /var/qmail/supervise/qmail-pop3d/run
# chmod 751 /var/qmail/supervise/qmail-pop3d/log/run
# chmod 751 /var/qmail/supervise/qmail-smtpd/run
# chmod 751 /var/qmail/supervise/qmail-smtpd/log/run
# chmod 751 /var/qmail/supervise/qmail-send/run
# chmod 751 /var/qmail/supervise/qmail-send/log/run

2.15 Qmail Icin Son Ayarlarin Uygulanmasi:

# echo ./Maildir > /var/qmail/control/defaultdelivery
# echo 255 > /var/qmail/control/concurrencyremote
# chmod 644 /var/qmail/control/concurrencyremote
# echo 30 > /var/qmail/control/concurrencyincoming
# chmod 644 /var/qmail/control/concurrencyincoming
# ln -s /var/qmail/bin/qmailctl /usr/bin
# ln -s /var/qmail/supervise/qmail-send /var/qmail/supervise/qmail-smtpd /var/qmail/supervise/qmail-pop3d /service/

Simdi Qmail'i durduralim:

# qmailctl stop

Relay ayarini yapalim:

# echo '127.:allow,RELAYCLIENT=""' >> /etc/tcp.smtp

Ayari aktif ettirelim:

# qmailctl cdb

Simdi de gerekli alias ayarlarini yapalim:

Burada eposta_hesabi kismina ana kullanici diyebilecegimiz hesabi yazmaniz yeterli(ornegin sistem yoneticisi olarak kendi adresiniz(hakan)).

Burada tanimlanan aliaslar sayesinde; ornegin root hesabina gelen mailler .qamil-root dosyasina yazdigimiz hesaba yonlendirilecektir.

# echo eposta_hesabi > /var/qmail/alias/.qmail-root
# echo eposta_hesabi > /var/qmail/alias/.qmail-postmaster
# echo eposta_hesabi > /var/qmail/alias/.qmail-mailer-daemon
# ln -s /var/qmail/alias/.qmail-root /var/qmail/alias/.qmail-anonymous
# chmod 644 /var/qmail/alias/.qmail*

Qmail kurulumu bitti, sirada sendmaili kaldirmak var.

2.16 Sendmail'in Kaldirilmasi:

# killall sendmail
# mv /usr/sbin/sendmail /usr/sbin/sendmail.old
# chmod 0 /usr/sbin/sendmail.old

Simdi rc.conf dosyamiza asagidaki satirlari ekleyerek kaydedelim:

# vi /etc/rc.conf

sendmail_enable="NO"
sendmail_submit_enable="NO"
sendmail_outbound_enable="NO"
sendmail_msp_queue_enable="NO"

Daha sonra qmail'in sendmailini sistemde ilgili yere sembolik link olarak koyalim:

# ln -s /var/qmail/bin/sendmail /usr/lib/sendmail
# ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail

Qmail'i baslatalim artik:

# qmailctl start
# qmailctl stat

Evet; artik sanal alan ve sanal kullanici yonetimi yapabildigimiz mail sistemimiz hazir(pop ve smtp).

Simdi icerik filtreleyici olarak qSheff(beraberinde antivirus olarak clamav), posta almak icin alternatif protokol olan IMAP ve maillerimize ulasmak icin WebMail kurulumunu gerceklestirecegiz.

2.17 Clamav Kurulumu:

Web Adresi: http://www.clamav.net

http://www.clamav.net/stable.php#pagestart adresinden son stable surumu indirebilirsiniz. Biz yukarida Mesh Solutions uzerinden 0.88.2 surumunu indirdik.

# cd /usr/src/qmail/clamav-0.88.2
# pw useradd clamav -s /sbin/nologin -d /tmp
# pw useradd qscand -s /sbin/nologin -d /tmp
# ./configure
# make && make check && make install && make clean

Kurulum tamamdir, simdi clamd.conf ayarlarini yapalim:

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

Example satirinin basina # ekleyerek yorum satiri yapalim. Yoksa clamd.conf ornek kabul edilecek ve gecersiz kalacaktir.
LogFile satirinin basindan # karakterini silelim ve satiri LogFile /var/log/clamav/clamd.log olarak duzenleyelim.
LogTime, LogSyslog, User ve ScanMail satirlarinin basindan # karakterini silelim. User satirindaki clamav degerini qscand olarak degistirerek dosyayi kaydedelim.

Sirada clamav'nin virus tabanini guncellemek icin kullanacagimiz freshclam uygulamasini yapilandirmaya geldi:

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

Example satirinin basina # karakterini ekleyelim.
DatabaseDirectory ifadesinin oldugu satiri da DatabaseDirectory /usr/local/share/clamav olarak duzenleyelim.

Simdi log dizinimizi yaratalim ve izinlerini ayarlayalim:

# mkdir /var/log/clamav
# chown -R clamav /var/log/clamav/

Sira clamd icin scriptimizi yazmaya geldi:

# vi /usr/local/etc/rc.d/clamd.sh

#!/bin/sh

FOO_BIN=/usr/local/sbin/clamd
test -x $FOO_BIN || exit 5

case "$1" in
start)
echo "Starting `$FOO_BIN -V`"
$FOO_BIN

;;
stop)
echo "Shutting down `$FOO_BIN -V`"
killall $FOO_BIN

;;
restart)
$0 stop
$0 start

;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
;;
esac

Dosyayi kaydedip ciktiktan sonra;

# chmod 755 /usr/local/etc/rc.d/clamd.sh
# /usr/local/etc/rc.d/clamd.sh start

dizilerini uyguluyoruz ve clamav'u calistirmis oluyoruz.

FreshClam kullanimi da oldukca basit;

# /usr/local/bin/freshclam -l /var/log/clamav/clam-update.log

satiriyla gerekli guncellemeleri yapiyoruz. Ilgili guncellemenin loglarini da -l parametresi ile /var/log/clamav/clam-update.log dosyasina yazdirmis oluyoruz. Bunu cron'a ekleyerek surekliligi saglanabilir. Ornegin her 6 saatte bir calistirmak icin;

# crontab -e

00 */6 * * * /usr/local/bin/freshclam --quiet -l /var/log/clamav/clam-update.log

satirini eklememiz yeterlidir. (Burada --quiet parametresi sayesinde log dosyasina yanlizca hatalar yazilacaktir).

2.18 Ripmime Kurulumu:

Web Adresi: http://www.pldaniels.com/ripmime

Ripmime, qSheff icin gerekli bir uygulama. Bu uygulama sayesinde mail baslik, govde, eklenti vs seklinde parcalara ayrilabiliyor.

# cd /usr/src/qmail/ripmime-1.4.0.6
# make && make install

2.19 qSheff Kurulumu:

Web Adresi: http://www.enderunix.org/qsheff

Sirada qSheff kurulumu var. qSheff cok guzel bir icerik filtreleyici ve antivirus tetikleyici olarak kullanilabiliyor. Hatta istersek icerik filtreleyici olarak harici bir uygulamayi da kullanabiliriz(buna deginecegiz).

# cd /usr/src/qmail/qsheff-II-2.1-r2
# ./configure --enable-spam-tag --enable-virus-tag --enable-qq-patch --with-clamav
# make && make install
# /usr/local/etc/qsheff-II/install-wrapper.sh

Evet, qSheff kurulumumuz bitti. Parametrelerden bahsedelim;

--enable-backup; Tum mail trafiginin bir yedeginin alinmasini saglar. Yedeklere /var/qsheff/backup/ altindan ulasabilirsiniz.
--enable-spam-tag; Kaybi en aza indirmek icin spam olarak tespit edilen bir mailin konusuna {SPAM} eklemesi yaparak ilgili adrese iletilmesini saglar. Boylece spam olmayip da spam kurallarina takilan kayiplar onlenmis olur.
--enable-virus-tag; Yine kaybi en aza indirmek icin viruslu icerigi tespit edilen bir mailin konusuna {VIRUS} eklemesi yaparak ilgili adrese iletilmesini saglar. Fakat SPAM'dan farkli olarak mailin govdesini ve eklentisini siler.
--enable-qq-patch; qSheff'in QMAILQUEUE(Bu patchi qmail'e uygulamistik) cevre degiskeninden baslatilmasini sagliyoruz. Bunun icin gerekli ayarlari birazdan yapacagiz.
--with-clamav; Sistemimizde clamav'yi kurdugumuz icin mailleri virus taramasindan gecirmek icin bunu qSheff'e bildiriyoruz. Clamav'un yeri farkli olsaydi bu parametre ile belirtmek gerekecekti. Yine ayni sekilde clamd socket dosyasi /tmp/ altinda yer almasaydi --with-clamd-socket parametresiyle bunu bildirmemiz gerekecekti.

SPAM ve VIRUS taglarini isterseniz kullanmayabilirsiniz. Bu durumda SPAM ya da VIRUS icerdigi tespit edilen mailler kullaniciya iletilmeyecektir(fakat kurulumdan sonra qsheff.conf dosyasindan karantinayi aktif ederseniz, bu tip mailler karantinada toplanacaktir). Kararinizi simdi vermelisiniz, kurulumdan sonra tekrar kurmadan bu taglarin durumu degistirilemez.

qSheff ile ilgili kullanabileceginiz diger ozellikler ve daha fazla bilgi icin http://www.enderunix.org/qsheff adresine bakabilirsiniz.

Simdi QMAILQUEUE ile derledigimiz qSheff'imizi Qmail'de kullanabilmek icin /etc/tcp.smtp dosyamizi ayarlayalim:

# echo ':allow,QMAILQUEUE="/var/qmail/bin/qmail-qsheff"' >> /etc/tcp.smtp
# qmailctl cdb
# qmailctl restart

Evet, tum trafigi ayarlamis olduk. Bunu belirli bir networke uygulamak istersek(ornegin 192.168.1 networkunden gelen maillere) 192.168.1.:allow,QMAILQUEUE="/var/qmail/bin/qmail-qsheff" seklinde yazabiliriz.

2.20 SpamAssassin Kurulumu:

Web Adresi: http://spamassassin.apache.org

qSheff ile yolunuza devam etmek isteyebilirsiniz; bu durumda 2.21 bolumune gecin. Spamassassin kurmak istiyorsaniz devam edin.

Spamassassin, guclu bir icerik filtreleyici. Biz de burada bu gucten faydalanmak icin qSheff ile birlikte nasil kullanacagimiza deginecegiz. Genel manada Spamassassin, bir mailin taranarak kriterler sonucunda degerlendirilmesini ve buna gore not almasini saglar. Yani bu ne demek;

Bir mail kuyruga girdiginde SpamAssassin bunu alir ve icerigini tarar, ornegin mailde bir ifadenin fazlaca tekrarlanmasi varsa(birsuru free yaziyorsa mesela) bu bir spam ihtimali tasir ve SpamAssassin +1 verir. Mailde konu yoksa SpamAssassin bu da spam olabilir der ve +1 daha ekler, mailde gonderici kisimlari supheliyse bir +1 daha ekler vs...

Bu sekilde en sonunda atiyorum bir mail icin SpamAssassin tarafindan verilmis 6 puan olsun. Biz SpamAssassin'in configurasyon dosyasinda SCORE tanimini 5.0 yaptiysak bu mail spam olarak kabul edilir.

Simdi Spamassassin kurulumunu yapalim:

# cd /usr/ports/mail/p5-Mail-SpamAssassin
# make install clean

Ports sayesinde kolayca kurmus olduk. Simdi configurasyon dosyasini ayarlayalim:

# cd /usr/local/etc/mail/spamassassin
# cp local.cf.sample local.cf
# vi local.cf

Dosyada;

rewrite_header Subject *****SPAM***** satiri spam olarak tespit edilen maillerin basligina *****SPAM***** ifadesinin eklenmeini saglar. Bunu aktif etmek icin satirin basindaki # ifadesini silelim ve *****SPAM***** ifadesini {SPAM} olarak degistirelim(bunun sebebini bolumun sonunda aciklayacagiz).

required_score ifadesi de az once bahsettigimiz gibi, bir mailin kac puanla spam olacagini belirtir.

report_safe ifadesi de etiketlenen maillere davranis bicimini belirler. Misal bunu 1 yaparsak SPAM olan maillerle ilgili SpamAssassin tarafindan uretilen rapor maille beraber kullaniciya iletilirken, mailin orjinali de eklenti olarak iletilir(.eml formatinda). 2 yaparsak da yine raporla beraber mailin orjinali text formatinda kullaniciya iletilir. 0 olmasi durumunda ise mail orjinal sekliyle kullaniciya iletilir, ve rapor eklenmez.

Dosyada daha detayli ayarlar yapmak da mumkun; razor, pyzor, dcc vs. kullanmak da mumkun. Ornegin spam mesajlarin body kismina bir bildiri eklemek istersek local.cf dosyasina;

clear_report_template

report --------------------------------------------------------------------------
report Bu E-Posta SPAM olarak tespit edilmis ve isaretlenmistir.
report SPAM degilse lutfen [email protected] adresine bildirin.
report FALANCA FIRMASI
report --------------------------------------------------------------------------

gibi birseyler yazabiliriz.

Simdi qSheff ile birlikte nasil kullanacagimiza bakalim:

# vi /var/qmail/bin/qmail-sa

dosyasina asagidaki satirlari yazip kaydedelim;

#!/bin/sh

/usr/local/bin/spamc | /var/qmail/bin/qmail-qsheff

Dosyanin izinlerini ayarlayalim:

# chmod 755 /var/qmail/bin/qmail-sa

Simdi de /etc/tcp.smtp dosyamizi duzenleyelim:

# vi /etc/tcp.smtp

Burada yer alan :allow,QMAILQUEUE="/var/qmail/bin/qmail-qsheff" ifadesini :allow,QMAILQUEUE="/var/qmail/bin/qmail-sa" olarak degistirelim ve dosyayi kaydederek cikalim.

Servislerimizi baslatalim:

# qmailctl cdb
# qmailctl restart

Spam mailleri qsheff.log dosyasindan takip edecegimiz icin, qSheff'e bir rule ekleyelim ki, o da SpamAssassin tarafindan spam olarak isaretlenen mailleri spam olarak isaretlesin.

# vi /usr/local/etc/qsheff-II/qsheff.rules

Dosyaya, h:(Subject: {SPAM}) satirini eklememiz yeterli, boylece SpamAssassin tarafindan {SPAM} ifadesiyle isaretlenen mailler qSheff tarafindan da spam olarak nitelendirilecek(dogal olarak log dosyasina da bu sekilde giris yapacak). qSheff log dosyasini incelerken de rule olarak {SPAM} gordugumuz satirlarin SpamAssassin tarafindan tespit edildigini anlayabiliriz.

Simdi SpamAssassin'i baslatalim; oncelikle spamd enable edelim:

# echo 'spamd_enable="YES"' >> /etc/rc.conf

Ve baslatalim:

# /usr/local/etc/rc.d/sa-spamd.sh start

Hatirlarsaniz yukarida SpamAssassin ayarlarinda basliga {SPAM} ekle demistik ve sebebini aciklayacagimizi soylemistik. Bunun sebebi qSheff'in de {SPAM} tagini eklemesidir(tabiki qSheff'i derlemeden once kaynak kodda degisiklik yaparak bunu da degistirebiliriz, ama buna gerek yok acikcasi). Boylelikle qSheff baslikta SpamAssassin tarafindan eklenen {SPAM} tagini gordugunde birdaha ekleme yapmayacaktir. Biz SpamAssassin ayarlarinda eklenecek ifadeyi *****SPAM***** olarak biraksaydik, SpamAssassin spam olarak nitelendirdigi bir maile *****SPAM***** ifadesini ekleyecek, ardindan da qSheff'e girdigimiz rule sebebiyle qSheff'de {SPAM} ifadesini ekleyecekti. Yani sonucta mail kullaniciya "{SPAM} *****SPAM***** Mailin konusu" seklinde iletilecekti. Tabi bu durum hem gereksiz, hem de cirkin bir goruntu olusturuyor.

2.21 Courier-Authlib Kurulumu:

Web Adresi: http://www.courier-mta.org/authlib

Webmail gibi uygulamalarda kimlik dogrulamasi yapmak icin authlib kutuphanesini kurmamiz gerekiyor; ayrica Courier-Imap kurabilmek icin de kurulmasi sart.

# cd /usr/src/qmail/courier-authlib-0.58
# ./configure --prefix=/usr/local --without-authmysql --without-authpgsql --without-authldap --with-authvchkpw --without-stdheaderdir --enable-unicode
# gmake
# gmake install-configure
# gmake install-strip
# cd /usr/local/etc/authlib/
# cp authdaemonrc.dist authdaemonrc
# /usr/local/sbin/authdaemond start

Simdi baslangic scriptimizi hazirlayalim:

# vi /usr/local/etc/rc.d/authdaemond.sh

#!/bin/sh
/usr/local/sbin/authdaemond start

Simdi de, dosyaya calistirma izni verelim:

# chmod +x /usr/local/etc/rc.d/authdaemond.sh

Ayrica /etc/rc.local dosyasina /usr/local/sbin/authdaemond start satirini ekleyerek de baslangici saglayabilirsiniz.

Evet, hepsi bu kadar.

Buraya kadar POP ve SMTP hizmeti veren, calisir bir MTA elde etmis olduk. Sirada istege/ihtiyaca bagli bir kurulum daha var. IMAP server kurmak isterseniz yaziya devam edebilirsiniz, kurmayacaksaniz WebMail kurulumuna gecebilirsiniz. Fakat burada tercih ettiginiz webmail uygulamasi SquirrelMail olacaksa IMAP'in gerekli oldugunu hatirlatmak gerekir.

2.22 Courier-Imap Kurulumu:

Web Adresi: http://www.courier-mta.org/imap

Sirada IMAP sunucumuzun kurulumu var:

# cd /usr/src/qmail/courier-imap-4.1.1
# ./configure --prefix=/usr/local --without-authdaemon --without-authmysql --without-authpgsql --without-authldap --with-authvchkpw --enable-unicode --disable-root-check
# make && make install-strip
# cd /usr/local/etc
# cp imapd.dist imapd
# cp imapd-ssl.dist imapd-ssl
# cp /usr/local/libexec/imapd.rc /usr/local/etc/rc.d/imap.sh
# /usr/local/etc/rc.d/imap.sh start

IMAP sunucumuz da kuruldu, ve calisiyor. Standart olarak bu sekilde kullanilabilir(SSL destegiyle kullanmadik).

2.23 WebMail Kurulumu

Burada, Courier-Imap kurduysaniz SquirrelMail kurulumuna gecebilirsiniz. Tabi isterseniz SqWebmail'i de kullanabilirsiniz, fakat bu durumda ben SquirrelMail'i oneririm. Courier-Imap kurmadiysaniz, SqWebmail ile devam edebilirsiniz.

2.23.1 SqWebMail Kurulumu:

Web Adresi: http://www.courier-mta.org/sqwebmail

Bir cgi ugulamasi olan SqWebMail, komplike istekleriniz olmadikca ihtiyaci rahatlikla karsilayan bir uygulamadir. SqWebMail, IMAP server kullanmaz, maillere direk erisim saglar. O nedenle IMAP server kurmadiysaniz tercihiniz bu olmalidir.

Oncelikle PCRE(Perl Compatible Regular Expressions) kurmamiz gerekiyor.

# cd /usr/src/qmail/pcre-6.3
# ./configure --prefix=/usr
# make && make install && make clean

Kurulum tamamlandiktan sonra SqWebMail kurulumuna baslayabiliriz.

# cd /usr/src/qmail/sqwebmail-5.1.2
# ./configure --without-authldap --without-authmysql --with-authvchkpw --enable-cgibindir=/usr/local/www/apache22/cgi-bin --enable-mimetypes=/usr/local/etc/apache22/mime.types --enable-unicode=ISO8859-9 --enable-imagedir=/usr/local/www/apache22/data/sqwebmail/images --enable-imageurl=/sqwebmail/images
# gmake
# gmake install-strip
# gmake install-configure
# /usr/lib/sqwebmail/libexec/sqwebmaild.rc start

Tabi bunu her acilista baslatmayi saglamak gerekir:

# echo '/usr/lib/sqwebmail/libexec/sqwebmaild.rc start' >> /etc/rc.local

SqWebMail ile ilgili gerekebilecek dosyalara; /usr/lib/sqwebmail/ altindan ulasabilirsiniz.

Hepsi bu kadar, http://ip_adresiniz/cgi-bin/sqwebmail diyerek SqWebMail'e ulasabilirsiniz.

2.23.2 SquirrelMail Kurulumu:

Web Adresi: http://www.squirrelmail.org

SquirrelMail, PHP ile yazilmis, gelismis ozelliklere sahip, oldukca hizli ve plugin destegiyle hem kolay kurulum hem de oldukca detayli ek secenekler sunmaktadir. Yukarida squirrelmail'i indirmistik, simdi onu gerekli sekilde acalim ve ayarlarini yapalim.

# cd /usr/src/qmail/squirrelmail-1.4.6
# mkdir /usr/local/www/apache22/data/webmail
# cp -R * /usr/local/www/apache22/data/webmail/
# chown -R www /usr/local/www/apache22/data/webmail/data/
# /usr/local/www/apache22/data/webmail/config/conf.pl

Simdi burada ayarlarimizi yaparak config.php dosyamizin olusmasini saglayacagiz. Bu ekranda temel olarak yapmamiz gerekenler;

2. Server Settings altinda yer alan ayarlari yapmamiz sart.

Burada;
1. secenek olan Domain secenegini size uygun olarak ip_adresiniz ya da domain_adiniz olarak girin.
3. secenek olan Sendmail or SMTP secenegini SMTP olarak birakin.

Daha sonra A'ya basarak IMAP ayarlarina girin ve burada da;

6. secenek olan Authentication type olarak login kalsin.
8. secenek olan Server software olarak da courier girin.
4. secenek olan IMAP Server degerini de localhost olarak birakabilirsiniz.

Simdi de, B'ye basarak SMTP ayarlarina girin. Burada da;

7. secenek olan SMTP Authentication ifadesinin degerini login yapin.
4. secenek olan SMTP Server ifadesinin degerini ip_adresiniz olarak degistirebilirsiniz. Burada localhost deseniz de olur tabiki, ancak RELAY ayari sebebiyle WebMail uzerinden gonderilen mailler, QMAILQUEUE ile tetiklenen uygulama tarafindan(qmail-qsheff ya da qmail-sa) isleme tabi tutulmamis olur.

Son olarak s'ye basarak kaydedin, ve q'ya basarak cikin.

IMAP ve SMTP icin Secure(TLS) ayarini isteginize gore yes yapabilirsiniz, tercih size/ihtiyaciniza bagli.
Diger ayarlari da isteginize gore yapabilirsiniz.

Evet hepsi bu kadar. http://ip_adresiniz/webmail diyerek giris sayfasina ulasabilirsiniz.

2.24 Isoqlog Kurulumu:

Web Adresi: http://www.enderunix.org/isoqlog

Simdi de mail loglarimizi web arabirimden kolayca takip edebilmemiz icin, tipki qSheff gibi enderunix ekibi tarafindan gelistirilen isoqlog uygulamasini kuracagiz. Evet, baslayabiliriz:

# cd /usr/src/qmail/isoqlog-2.2.1
# ./configure
# make && make install && make clean
# mkdir /usr/local/www/apache22/data/isoqlog
# cp -pr /usr/local/share/isoqlog/htmltemp/images /usr/local/share/isoqlog/htmltemp/library /usr/local/www/apache22/data/isoqlog/
# cp /usr/local/etc/isoqlog.conf-dist /usr/local/etc/isoqlog.conf
# cp /usr/local/etc/isoqlog.domains-dist /usr/local/etc/isoqlog.domains

Kurulum bitti. Simdi ayarlari yapmak icin isoqlog.conf dosyasini ve isoqlog.domains dosyasini duzenlememiz gerekli. Asagida kirmizi olan kisimlar dosyanin ilk hali uzerinden degisiklik yapilan kisimlardir:

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

#isoqlog Configuration file

logtype = "qmail-multilog"
logstore = "/var/log/qmail/qmail-send"
domainsfile = "/usr/local/etc/isoqlog.domains"
outputdir = "/usr/local/www/apache22/data/isoqlog"
htmldir = "/usr/local/share/isoqlog/htmltemp"
langfile = "/usr/local/share/isoqlog/lang/turkish"
hostname = "domain.com"

maxsender = 100
maxreceiver = 100
maxtotal = 100

maxbyte = 100

Simdi de, loglarini alacagimiz domainlerimizi ayarlayacagiz. Bunun icin isoqlog.conf dosyasinda belirttigimiz isoqlog.domains dosyasini kullanacagiz:

# vi /usr/local/etc/isoqlog.domains

domain1.com
domain2.com

Yani burada loglarini gormek istedigimiz domainlerinizi yazmaniz yeterli.

Tum domainlerinizin loglarini gormek istiyorsaniz, her domain eklendiginde elle ekleme yapmamak icin, qmail'in rcpthosts dosyasini kullanabilirsiniz. Bunun icin ilgili dosyaya sembolik link yaratmak yeterli:

# ln -s /var/qmail/control/rcpthosts /usr/local/etc/isoqlog.domains

Simdi de;

# /usr/local/bin/isoqlog

diyerek loglarimizi analiz ettirip, web dizinimize yazdirmis olalim. http://ip_adresiniz/isoqlog diyerek goruntuye ulasabilirsiniz.

Isoqlog tetiklenmeden loglari ellemez, bu nedenle kendisini crontab ile tetiklememiz gerekir. Burada suna dikkat etmemiz gerekir; eksiksiz bir loglama icin sadece 23:58 gibi, gun bitmeden az onceye tekabul eden bir zamanda calismasi yeterli. Fakat gun icerisinde loglarimiza isoqlog ile bakmak istersek guncelligini bir gun oncesinde birakmis olarak goruruz. O nedenle bunu saatte bir olacak sekilde, ve gun sonunda da isimizi gorecek sekilde(mesela dakika 58 oldugunda) ayarlayalim:

# crontab -e

58 * * * * /usr/local/bin/isoqlog 1>/dev/null 2>/dev/null

Evet, artik dakika 58 oldugunda; yani saatte bir, loglarimiz alinacak. Artik http://ip_adresiniz/isoqlog sayfasindan loglari takip edebilirsiniz.




- YARARLANILAN KAYNAKLAR:

- http://www.freebsd.org/ports
- http://www.mydigitallife.info/category/application-software/web-servers
- http://www.qmailrocks.org
- http://www.inter7.com
- http://www.clamav.net
- http://www.enderunix.org/qsheff
- http://spamassassin.apache.org
- http://www.enderunix.org/qsheff/docs/spamass-qsheff.en.html
- http://www.courier-mta.org
- http://www.squirrelmail.org
- http://www.enderunix.org/isoqlog
- http://www.acikakademi.com/catalog/qmail
- http://www.acikakademi.com/catalog/freebsd

- Tek tek yazamayacagim, kucuk parcalar halinde bilgi edindigim diger kaynaklar; ve bu kaynaklara ulasmami saglayan http://www.google.com