Çarşamba, Temmuz 26, 2006

Qmail E-Posta Sunucusu

Qmail E-Posta Kurulumu

Qmail açık kodlu bir e-posta sunucusudur. Bu sunucunun toaster kurulum paketleri kullanlacaktr. Kurulum için gerekli paketler aşağıdaki gibidir:

autorespond-toaster-*.src.rpm
clamav-toaster-*.src.rpm
control-panel-toaster-*.src.rpm
courier-imap-toaster-*.src.rpm
daemontools-toaster-.src.rpm
ezmlm-toaster-*.src.rpm
isoqlog-toaster-*.src.rpm
maildrop-toaster-*.src.rpm
qmailadmin-toaster-*.src.rpm
qmailmrtg-toaster-*.src.rpm
qmail-toaster-*.src.rpm
simscan-toaster-*.src.rpm
spamassassin-toaster-*.src.rpm
squirrelmail-toaster-*.src.rpm
ucspi-tcp-toaster-*.src.rpm
vpopmail-toaster-*.src.rpm
vqadmin-toaster-*.src.rpm
zlib-*.src.rpm
ripmime-*.tar.gz
pcre-*.tar.gz

Ön Gereksinimler

Bu dosyaların en güncel versiyonlarını www.gmailtoaster.com adresinden elde edebilirsiniz. Qmail e-posta sunucusunu kurabilmek için bazı� gereksinimlere ihtiyaç vardır. Bunlar:

MySQL Sunucusu
Alan Ad Sunucusu (DNS)
Httpd Web Sunucusu

Kuruluma başlamadan önce aşağıdaki komutları kullanarak alan ad sunucusunun düzgün çalışıp çalışmadığını kontrol edebilirsiniz:

# host -t a mail.testsm.gov.tr
# host -t mx testsm.gov.tr
# host 10.1.9.250


Yine MySQL sunucusu çalışıyor ve root için şifrelerin ayarlanmış olması gerekir:

# service mysqld start
# mysqladmin -u root -h mail password 'deneme'
# mysqladmin -u root -h localhost password 'deneme'
# mysqladmin -u root -p reload
# mysqladmin -u root -p refresh

Kuruluma başlamadan önce kaynak paketlerinin kurulumunun nasıl yapılacağını görelim. Kaynak paketlerinden uygun dağıtıma göre derlenmesi gerekir.

# rpmbuild --rebuild --with fdr40 paket.src.rpm
# rpm -Uvh /usr/src/redhat/RPMS/i386/paket.rpm

1. Daemontools Paketi

Bu paket, oluşturulan bir dizin yapısı içerisinde, tüm dosyaların çalıştırlabilmesine olanak veren bir pakettir. Bu paket sayesinde e-posta sunucusu ile beraber çalışması gereken pop3, imap gibi servisleri organize bir şekilde çalıştırabilecez.
Paketin Kurulması

1.1 Daemontools paketinin kurulması;

# rpmbuild --rebuild --with fdr40 daemontools-toaster-*.src.rpm
# rpm -Uvh /usr/src/redhat/RPMS/i386/daemontools-toaster-*.i386.rpm


1.2 Uygulamann Ayarlanması

/var/qmail/supervise dizinine yerleştirilen qmail ile ilgili servisler, svscan ile taranarak çalıştırılır.

# ls /var/qmail/supervise
clamd imap4 imap4-ssl pop3-ssl send smtp spamd

1.3 Güncelleme
Paket derlenir ve güncellenir.

# rpmbuild --rebuild --with DISTRO daemontools-toaster-*.src.rpm
# rpm -Uvh /usr/src/redhat/RPMS/i386/daemontools-toaster-*.i386.rpm

2. Ucspi-tcp Paketi
Bu paket komut satırından sunucu - istemci TCP bağlantısını simule etmek için kullanılır. Tcpserver komutu yardımı ile oluşturulan sunucu gelen isteklere cevap verir. Qmail yapısı içerisinde relay tanımını oluturmak için kullanlacaktır.

2.1 Paketin Kurulması

# rpmbuild --rebuild --with fdr40 ucspi-tcp-toaster-*.src.rpm
# rpm -Uvh /usr/src/redhat/RPMS/i386/ucspi-tcp-toaster-*.i386.rpm


2.2 Uygulamanın Ayarlanması
Ucspi-tcp paketi ile ilgili ayarlamalar /etc/tcprules.d/tcp.smtp dosyasında yapılmaktadır. Bu dosyada temel olarak relay tanımı yapılmakta. Bu dosyadaki tanımlarla ayrıca birçok kontrol tanımı da yapılabilmektedir. Aşağıda örnek bir tcp.smtp dosyası görülmektedir:

127.:allow,RELAYCLIENT=””
192.168.1.1:allow,RELAYCLIENT=""
172.16.1.:allow,RELAYCLIENT=""
:allow

tcp.smtp dosyasında gerekli değişiklikler yapıldıktan sonra, aşağıdaki komutu çalıştırarak uygun veritabanı formatına dönüştürülmesi gerekir:

# tcprules /etc/tcprules.d/tcp.smtp.cdb /etc/tcprules.d/tcp.smtp.tmp < /etc/tcprules.d/tcp.smtp yada # service qmail cdb

2.3 Güncelleme
Paket derlenir ve güncellenir.

# rpmbuild --rebuild --with DISTRO ucspi-tcp-toaster-*.src.rpm
# rpm -Uvh /usr/src/redhat/RPMS/i386/ucspi-tcp-toaster-*.i386.rpm


3. Vpopmail-toaster Paketi

Vpopmail paketi kullanıcı işlemleri için gerekli komut dosyalarının yer aldığı pakettir. Veri tabanı ile bağantıyı kurar ve buraya gerekli kullanıcı tanımlarını yapar. Yetkilendirme de yine bu paket içindeki uygulamalar ile gerçekleştirilmektedir. Paketin Kurulması Burada dikkat edilmesi gereken nokta, varsaylan değerler ile paket derlenip kurulursa veri taban üzerinde kullanıcı şifreleri açık olarak görülebilmektedir. Bunu engellemek için öncelikle kaynak paket açılacak ve SPEC dosyasnda bununla ilgili değşiklikler yapılacaktır.

# rpm -ivh vpopmail-toaster-*.src.rpm
# vi /usr/src/redhat/SPEC/vpopmail-toaster.spec
vpopmail 5.4.10
Current settings
---------------------------------------
vpopmail directory = /home/vpopmail
uid = 89
gid = 89
roaming users = OFF --disable-roaming-users (default)
password learning = OFF --disable-learn-passwords (default)
md5 passwords = ON --enable-md5-passwords (default)
file locking = ON --enable-file-locking (default)
vdelivermail fsync = OFF --disable-file-sync (default)
make seekable = ON --enable-make-seekable (default)
clear passwd = OFF--disable-clear-passwd (erol)
user dir hashing = OFF --disable-users-big-dir
address extensions = ON --enable-qmail-ext
ip alias = OFF --disable-ip-alias-domains (default)
domain quotas = ON --enable-domainquotas
auth module = mysql --enable-auth-module=mysql
mysql replication = OFF --disable-mysql-replication (default)
sql logging = OFF --disable-sql-logging (default)
mysql limits = OFF --disable-mysql-limits (default)
MySQL valias = ON --enable-valias
auth inc = -I/usr/include/mysql
auth lib = -L/usr/lib/mysql -lmysqlclient -lz -lm
system passwords = OFF --disable-passwd (default)
pop syslog = log success and errors including passwords--enable-logging=v
auth logging = ON --enable-auth-logging (default)
one domain per SQL table = --disable-many-domains


Dosyada değiştirilecek diğer bir satır da aşağıdaki gibidir;

./configure --prefix=%{vdir} \
--enable-vpopuser=vpopmail \
--enable-vpopgroup=vchkpw \
--enable-libdir=%{mylibdir} \
--disable-roaming-users \
--enable-tcprules-prog=/usr/bin/tcprules \
--enable-tcpserver-file=/etc/tcprules.d/tcp.smtp \
--enable-make-seekable \
--disable-clear-passwd \
--disable-users-big-dir \
--enable-qmail-ext \
--disable-ip-alias-domains \
--enable-domainquotas \
--enable-auth-module=mysql \
--disable-passwd \
--enable-logging=v \
--enable-log-name=vpopmail \
--disable-mysql-limits \
--enable-valias \
--disable-many-domains


Gerekli değişiklikler yaplıdıktan sonra aşağıdaki komut işletilerek değiştirilmiş spec dosyası yardımı ile yeni RPM paketi derlenir.

# rpmbuild -ba --with DISTRO /usr/src/redhat/SPECS/vpopmail-toaster.spec
# rpm -Uvh /usr/src/redhat/RPMS/i386/vpopmail-toaster-*.i386.rpm

3.1 Uygulamanın Ayarlanması
Kurulum tamamlandıktan sonra, yapılması gereken bir dizi işlem için bizi uyarır:
Buna göre önce vpopmail isminde bir veritabanı oluşturulur. Daha sonra da /home/vpopmail/etc/vpopmail.mysql dosyasında iletişim için kullanılacak şifre ayarlanır. En son olarak da vpopmail kullanıcısına vpopmail veritabanında her türlü hak verilir. ;

Create a database named "vpopmail":
mysqladmin create vpopmail -u root -p
mysqladmin -u root -p reload
mysqladmin -u root -p refresh ;

Set password for vpopmail the same as in /home/vpopmail/etc/vpopmail.mysql: ;
Make the password anything you want. Edit vpopmail.mysql to match . . .

echo "GRANT ALL PRIVILEGES ON vpopmail.* TO vpopmail@localhost IDENTIFIED \
BY 'SsEeCcRrEeTt'" | mysql -u root -p
mysqladmin -u root -p reload
mysqladmin -u root -p refresh

3.2 Güncelleme
SPEC dosyası düzenlenir. RPM paketi oluşturularak güncelleme yapılır.

4. Libdomainkeys Paketi
Çöp postaları (SPAM) engellemek amacıyla PKI yapısını kullanan bir uygulamadır. Bilgi için; Libdomain Keys veya Libdomain Keys Project

4.1 Güncelleme

Paket derlenir ve kurulur.

5. Qmail-Toaster Paketi
Qmail e-posta sunucusunun temel paketidir. Bu paket açık kaynak kodludur. Ancak kodların değiştirilmesi ve derlenmiş kodların dağıtımı yasaktır. Dolayısı ile temel qmail kaynak kodu üzerine yamalar oluşturularak geliştirilmiştir. Bu e-posta sisteminin çalışması için gerekli temel pakettir. Bu paket ile beraber bir MTA gelir. Ancak Fedora dağıtımlarında (FC5 ten önce) varsaylan MTA sendmail’dir. FC5 dağıtımında varsayılan MTA POSTFIX tir. Bunun için çakışma olmaması için öncelikle bu MTA ların kaldırılması gerekir.

# rpm -e sendmail --nodeps
# rpm -e postfix --nodeps

5.1 Paketin Kurulması

# rpmbuild --rebuild --with fdr40 qmail-toaster-*.src.rpm
# rpm -Uvh /usr/src/redhat/RPMS/i386/qmail-toaster-*.i386.rpm

5.2 Pakete Yama Yapılması
Kaynak paket içerisinde bu paketi oluturan kişilerin koyduğu bir yama (patch) vardır. Buradaki yamalara ekleme yapmak için kaynak koda inmek ve gerekli değişiklikleri yapmak gerekir. Aaşağıda gönderici alan adının varlığını kontrol (mfcheck) eden yamanın uygulanması anlatılmıştır. Mfcheck Yaması Bu yamayı uygulamak için aşağıdaki adımları izlenmiştir:

1. Kaynak kod açılır;
# rpm -ivh qmail-toaster-*.src.rpm

2. Kaynak kodun bulunduğu dizine giderek işleme başlanır;
# cd /usr/src/redhat/SOURCE/

3. Burada sıkıştırılmış durumdaki qmail-1.03.tar.bz2 ve qmailtoaster.patch.bz2 açılır;

# bunzip2 qmail-1.03.tar.bz2
# bunzip2 qmailtoaster.patch.bz2

4. qmail-1.03.tar paketi açılır.
# tar -xvf qmail-1.03.tar

5. Daha önceden elde edilen yama qmail-1.03-mfcheck.4jk.patch ve qmailtoaster.patch qmail-1.03 dizinine kopyalanır.

6. Qmailtoaster yaması uygulanır;


# patch <>


7. Eğer mfcheck yaması drek uygulanırsa hata alınacaktır. Bunun sebebi yamanın değişiklik yapılmamış qmail dosyalarına uygulanacak şekilde tasarlanmış olmasıdır. Bu problemi gidermek için yamanın ya içerisinde değişiklik yapılır yada yama içerisindeki kod elle gerekli dosyalara uygulanır.


8. Yama içerisinde farklı alanlar vardır. Herbir alanın başında hangi dosyaya yamanın uygulanacağı belirtilir. Yama içerisinde (-) eksi ile başlayan satırlar çıkarılır. (+) artı ile başlayan satırlar eklenir. Önünde hiçbir işaret bulunmayan satırlar ise orjinal dosya içerisinde aranması gereken satırlardır.Yama içerisindeki kodu incelersek;


diff -ruN qmail-1.03-orig/Makefile qmail-1.03/Makefile

--- qmail-1.03-orig/'''Makefile''' Mon Jun 15 12:53:16 1998 # dizinde hangi dosyada değişiklik yapılacağı belirtilir.

+++ qmail-1.03/Makefile Fri May 28 11:20:51 2004

@@ -1536,13 +1536,13 @@

timeoutwrite.o ip.o ipme.o ipalloc.o control.o constmap.o received.o \ # Bu üç satırdan sonra aşağıdaki değişiklik yapılır.

date822fmt.o now.o qmail.o cdb.a fd.a wait.a datetime.a getln.a \ #

open.a sig.a case.a env.a stralloc.a alloc.a substdio.a error.a str.a \ #

-fs.a auto_qmail.o socket.lib # Bu satır çıkarılır

+fs.a auto_qmail.o socket.lib dns.o dns.lib # Yerine bu satır eklenir.

./load qmail-smtpd rcpthosts.o commands.o timeoutread.o \ #

timeoutwrite.o ip.o ipme.o ipalloc.o control.o constmap.o \ # Değişikliğin yapıldığı yerden sonra

received.o date822fmt.o now.o qmail.o cdb.a fd.a wait.a \ # aşağıdaki satırlar görünür.

datetime.a getln.a open.a sig.a case.a env.a stralloc.a \ #

alloc.a substdio.a error.a str.a fs.a auto_qmail.o `cat \ #

- socket.lib`

+ socket.lib` dns.o `cat dns.lib`

qmail-smtpd.0: \

qmail-smtpd.8


9. Bu yama satırları gerekli dosyalar eklendikten sonra qmail-1.03 dizini tarlanır ve bzip2 ile sıkıştırılır.


10. '''/usr/src/redhat/SPEC/qmail-toaster.spec''' dosyasında yapılan değişikliklere uyarlama yapılır. Yamayı elle geçtiğimiz için yamanın uygulanması için girilmiş satırlar çıkarılır.


11. SPEC dosyasında değişiklik yapıldıktan sonra derlenir ve RPM paketi elde edilir.


# rpmbuild --ba --with DISTRO qmail-toaster.spec

12. qmai servisi stop edilir ve yeni paket güncellenir.


# service qmail stop

# rpm -Uvh qmail-toaster*.rpm --replacefiles --replacepkgs


5.3 Güncelleme

Paket derlenir ve güncellenir. Ancak dikkat edilmesi gereken nokta, derlemeden sonra /var/qmail/control/servercert.pem dosyası tekrar oluşturulur. Mevcut dosya ile gerekir ise değiştirilmelidir.

6. Courier-imap Paketinin Kurulması


IMAP, secure IMAP ve secure POP3 servisinin verilebilmesi için gerekli pakettir.


# rpmbuild --rebuild --with DISTRO courier-imap-toaster-*.src.rpm (bu işlem biraz uzun sürebilir)

# rpm -Uvh /usr/src/redhat/RPMS/i386/courier-imap-toaster-*.i386.rpm


6.1 Güncelleme
Paket derlenir ve güncellenir.


7. Courier-Authlib Paketinin Kurulması



8. Autorespond Paketinin Kurulması


# rpmbuild --rebuild --with DISTRO autorespond-toaster-*.src.rpm

# rpm -Uvh /usr/src/redhat/RPMS/i386/autorespond-toaster-*.rpm


8.1 Güncelleme

Paket derlenir ve güncellenir.


Bu paket de kurulduktan sonra e-posta sunucusunun çalışması için gereken temel paketler kurulmuş olur. Bundan sonra kurulacak paketler sunucunun daha güzel yönetilebilmesi için gereken paketlerdir.


9. Control-panel Paketinin Kurulması
# rpmbuild --rebuild --with DISTRO control-panel-toaster-*.src.rpm

# rpm -Uvh /usr/src/redhat/RPMS/noarch/control-panel-toaster-*.noarch.rpm


9.1 Güncelleme

Paket derlenir ve güncellenir. Ancak /etc/httpd/conf/toaster.conf dosyasında değişiklik yapıldıysa orjinali ile eskisi yer değiştirmelidir.


10. Ezmlm Paketinin Kurulması

E-posta listelerinin yönetilmesi için kullanılan pakettir.


# rpmbuild --rebuild --with DISTRO ezmlm-toaster-*.src.rpm

# rpm -Uvh /usr/src/redhat/RPMS/i386/ezmlm*


10.1 Güncelleme

Paket derlenir ve güncellenir.


11. Qmailadmin Paketinin Kurulması

Bu paket postmaster ve kullanıcıların kendi hesaplarını yönetebilmesi için gerekli bir pakettir.


11.1 Paketin Kurulması

# rpmbuild --rebuild --with DISTRO qmailadmin-toaster-*.src.rpm

# rpm -Uvh /usr/src/redhat/RPMS/i386/qmailadmin-toaster-*.rpm


11.2 Güncelleme

Paket derlenir ve güncellenir.


12. Qmailmrtg Paketinin Kurulması

Qmailmrtg paketi gelen giden mailler ile ilgili grafiksel bilgilerin oluşturulabileceği bir pakettir.


12.1 Paketin Kurulması

# rpmbuild --rebuild --with fdr40 qmailmrtg-toaster-4.2-1.2.6.src.rpm

# rpm -Uvh /usr/src/redhat/RPMS/i386/qmailmrtg-toaster-4.2-1.2.6.i386.rpm


12.2 Güncelleme

Paket derlenir ve güncellenir.


13. Isoglog Paketi

Mailler hakkında istatiksel bilgilerin elde edilebileceği bir pakettir.


13.1 Paketin Kurulması

# rpmbuild --rebuild --with fdr40 isoqlog-toaster-2.1-1.2.7.src.rpm

# rpm -Uvh /usr/src/redhat/RPMS/i386/isoqlog-toaster-2.1-1.2.7.i386.rpm


13.2 Güncelleme

Paket derlenir ve güncellenir.


14. Squirrelmail Paketi

Bu paket mail sunucusuna web üzerinden erişip işlem yapmamızı sağlayan uygulamaların olduğu bir pakettir.


14.1 Paketinin Kurulması

# rpmbuild --rebuild --with fdr40 squirrelmail-toaster-1.4.5-1.2.11.src.rpm

# rpm -Uvh /usr/src/redhat/RPMS/noarch/squirrelmail-toaster-1.4.5-1.2.11.noarch.rpm


14.2 Ayarların Yapılması

Squirrelmail paketi ile ilgili ayarların yapılabilmesi için aşağıdaki betik kullanılır:


# perl /usr/share/squirrelmail/config/conf.pl

Main Menu --

1. Organization Preferences

2. Server Settings

3. Folder Defaults

4. General Options

5. Themes

6. Address Books

7. Message of the Day (MOTD)

8. Plugins

9. Database

10. Languages

D. Set pre-defined settings for specific IMAP servers

C Turn color off

S Save data

Q Quit

Command >>


Buradan ilgili seçenekler seçerek ayarlamalar yapılır. Squirrelmail versiyon bilgilerini gizlemek için:


# vi /usr/share/squirrelmail/functions/strings.php

'''version = '1.4.5-1.2.13';'''


14.3 Squirrelmail Paketinin Güncellenmesi
Güncelleme iki şekilde yapılabilir.

1. Toaster paketlerinden.
2. Sitesinden paketin indirilerek derlenmesi.

14.1.1 Toaster Paketinden Güncelleme

Toaster paketlerinden güncelleme yapmak çok kolaydır. Toaster dağıtımını gerçekleştiren grup squirrelmail için hazırladığı paketi alır ve aşağıdaki komutu çalıştırarak uygularsınız.

# rpm -Uvh squirrelmail-toaster*.rpm

Ancak toaster paketleri genelde birlikte çıkar ve arada çıkan güvenlik güncellemeleri gecikebilir. Bu sorunu çözebilmek için ikinci yöntem kullanılır.

14.1.2 Squirrelmail Kaynak Paket Derleme

Bu yöntem için öncelikle www.squirrelmail.org web sayfasını ziyaret ederek en son stable versiyonu indirilir. Ayrıca toaster paketlerinden squirrelmail-toaster*-src.rpm paketi indirlir. Burada amaç squirrelmail-toaster peketinin SPEC dosyasını kullanarak yeni versiyon ile derleme yapabilmek. Bunu gerçekleştirebilmek için aşağıdaki adımları izleriz.

# rpm -ivh squirrelmail-toaster*-src.rpm
# vi /usr/src/redhat/SPECS/squirrelmail-toaster*.spec

SPEC dosyasında aşağıdaki parametreler değiştirilir.

%define pversion 1.4.6 [yeni versiyon]
%define bversion 1.3 [minor versiyon, bu numara toaster paketleri için gerekli, deðerleri çok önemli deðil.]
%define rpmrelease 00 [rpm paketinin versiyonu, bu numara toaster paketleri için gerekli, deðerleri çok önemli deðil.]
...

Dikkat edilecek diğer bir satır ise;

Patch0: squirrelmail-toaster-*.patch.bz2

Bu satırda squirrelmail paketine uygulanacak yama belirtilir. Büyük bir olasılıkla bir problem olmayabilir, ancak akılda tutulması ve problem durumunda kontrol edilmesi gerekebilir. SPEC dosyasında gerekli değişiklikleri yaptıktan sonra;

# rpmbuild --ba --with fdr40 /usr/src/redhat/SPECS/squirrelmail-toaster.spec

komutu ile RPM paketi elde edilir. Yeni paketin kurulması da bir önceki yöntemde olduðu gibi, aşağıdaki gibi gerçekleştirilir.

# rpm -Uvh /usr/src/redhat/RPMS/noarch/squirrelmail-toaster[yeni_versiyon].rpm

NOT : Squirrelmail kurulurken varsayılan dosyaları kurar. Dolayısı ile daha önce yapılmış olan değişiklikler kaybolur. Bu işleme başlamadan önce değişiklik yapılmış olan dosyalar yedeklenmeli ve güncelleme yapıldıktan sonra yerine konulmalıdır.

15. Spamassassin Paketi

Adından da anlaşılabileceği gibi çöp posta (SPAM) belirlemek amacı ile kullanılan pakettir.

15.1 Paketin Kurulması

# rpmbuild --rebuild --with DISTRO spamassassin-toaster-*.src.rpm
# rpm -Uvh /usr/src/redhat/RPMS/i386/spamassassin-toaster-*.i386.rpm

15.2 Güncelleme
Paket derlenir ve güncellenir.

16. Clamav Paketi
E-posta yolu ile gelebilecek virüslü postaları taramak ve engellemek amacı ile kullanılan bir antivirüs yazlım paketidir.

16.1 Paketin Kurulması

# rpmbuild --rebuild --with DISTRO clamav-toaster-*.src.rpm
# rpm -Uvh /usr/src/redhat/RPMS/i386/clamav-toaster-*.i386.rpm

16.2 Uygulamanın Ayarlanması
Clamav anti virus uygulaması ile ilgili ayarlar /etc/clamd.conf dosyasında yer almaktadır. Burada aşağıdaki gibi değişiklikler yapılabilir.

LogFile /var/log/clamav/clamd.log ; kayıtların tutulacağı dosya belirlenir.

16.3 Güncelleme
Paket derlenir ve güncellenir. Dikkat edilmesi gereken nokta, güncelleme sonrasında /etc/clamav/clamav.conf dosya güncellenir. Yapılmış olan ayarlar kaybolur.

17. Ripmime Paketi

Bu paket simscan uygulamasının e-postayı göndermeden önce içeriğini kontrol edebilmesi için gerekli olan pakettir. Bu paket toaster dağıtımının bir parçası değildir ve şu bağlantıdan indirilebilir; RIPMIME

17.1 Paketin Kurulması

# tar -xzvf ripmime-1.4.0.5.tar.gz
# cd ripmime-1.4.0.5
# make
# make install

yada
# rpmbuild --rebuild --with DISTRO ripmime-toaster-*.src.rpm
# rpm -Uvh /usr/src/redhat/RPMS/i386/ripmime-toaster-*.i386.rpm

17.2 Güncelleme
Paket derlenir ve güncellenir.

18. Simscan Paketi
Simscan sunucuya gönderilen yada sunucudan gidecek olan belli özellikteki dosyaların bloklanması ve antivirüs sunucusuna gönderilemesini sağlayan bir pakettir.

18.1 Paketin Kurulması

Paketi kurmadan önce SPEC dosyasında gerekli değişikliklerin yapılması gerekir. Simscan paketinin kurulabilmesi için zlib ve pcre paketlerinin de kurulu olması gerekir.

# rpm -ivh simscan-toaster-*.src.rpm
# vi /usr/src/redhat/SPEC/simscan-toaster.spec

SPEC dosyasındaki varsayılan ayarlar aşağıdaki gibidir:

Current settings
---------------------------------------
user = clamav
qmail directory = /var/qmail
work directory = /var/qmail/simscan
control directory = /var/qmail/control
qmail queue program = /var/qmail/bin/qmail-queue
clamdscan program = /usr/bin/clamdscan
clamav scan = ON
trophie scanning = OFF
attachement scan = ON
ripmime program = /usr/local/bin/ripmime
custom smtp reject = ON
drop message = OFF
regex scanner = ON
quarantine processing = OFF
domain based checking = OFF
add received header = ON
spam scanning = ON
spamc program = /usr/bin/spamc
spamc arguments =
spamc user = OFF
spam passthru = ON
...

%configure \
--enable-user=clamav \
--enable-attach \
--enable-ripmime=/usr/bin/ripmime \
--enable-per-domain \
--enable-spam \
--enable-spam-hits=20 \
--enable-received \
--enable-clamavdb-path=/usr/share/clamav \
--enable-custom-smtp-reject \
--enable-regex

# rpmbuild --ba --with DISTRO /usr/src/redhat/SPEC/simscan-toaster.spec
# rpm -Uvh /usr/src/redhat/RPMS/i386/simscan-toaster-1.1-1.2.4.i386.rpm

Uygulamanın Ayarlanması

Bu dosyada gelen e-postanın hangi kontrollerden geçeceği tanımlanır. Bu ilem farklı farkl alanlar için farklı tanımlar yapılabilir.

:clam=yes,spam=yes,spam_passthru=yes ; tüm alanlar için geçerli bir tanım. Antivirüs ve spam taramalarından geçer.
test.org.tr:clam=yes,spam=no ; sadece test alanı kullanılır.

E-Posta Sunucusunun Ayarlanması

Kurulum işlemleri tamamlandıktan sonra sunucu çalıştırılarak devreye alınır.

# service qmail start

test.org.tr Alanının Oluşturulması

E-posta sunucusu aynı anda birden çok alana (domain) hizmet vermek üzere tasarlanmıştır. Burada test.org.tr alanı eklenece ve kullanıcılar burada yaratılarak testler yapılacaktır.

# /hove/vpopmail/bin/./vadddomain test.org.tr

Alan oluşturulduktan sonra postmaster kullancısı oluşturulur ve şifresini ayarlamak için sizden giriş yapmanızı bekler. Bu kullanıcı alan üzerinde yönetici haklarına sahiptir. Alan tanımlandıktan sonra bunu MySQL veri tabanı üzerinden de kontrol edilebilir.

# mysql -u root -p
mysql> use vpopmail;
mysql> select * from test_org_tr;

Kullanıcıların Oluşturulması

# /home/vpopmail/bin/./vadduser user1@test.org.tr
# /home/vpopmail/bin/./vadduser user2@test.org.tr

Varsayılan Alan Tanımlanması

# touch /home/vpopmail/etc/defaultdomain # echo test.org.tr > /home/vpopmail/etc/defaultdomain

Bu tanımlama yapıldıktan sonra kullanıcılar, kullanıcı adı bilgisi alanına, alan adının eklenmesine gerek kalmaz. Bunun dışında web sayfası üzerinden giriş yapılırken de kullanıcı adının sonuna varsayılan alan adının eklenmesine gerek kalmaz.

# /home/vpopmail/bin/./vadduser user3

Varsayılan Kullanıcı ve Alan Kotalarının Belirlenmesi

Kota tanımları /home/vpopmail/etc/vlimits.default dosyasında yapılmaktadır.

Alan kota değerleri

quota 1000 ; 1000 MByte sınırı
maxmsgcount 100000 ; 100000 mesaj sınırı

Kullanıcı kota deðerleri

default_quota 41943040 ; 40 MByte sınırı
default_maxmsgcount 4000 ; 4000 mesaj sınırı

Kullanıcı oluşturulduktan sonra kota deðerlerinin değiştirilmesi için;

# /home/vpopmail/bin/./vuserinfo user1
gecos: user1
limits: No user limits set.
dir: /home/vpopmail/domains/testsm.gov.tr/user1
quota: 41943040S,4000C ; bu satır ile tanımlanır

# /home/vpopmail/bin/./vmoduser -q 100000000,5000C user1@test.org.tr

# /home/vpopmail/bin/./vuserinfo user1
gecos: user1
limits: No user limits set.
dir: /home/vpopmail/domains/testsm.gov.tr/erolk
quota: 50000000S,5000C ; yeni değerler

Alan oluşturulduktan sonra kota değerlerinin değiştirilmesi için;

# /home/vpopmail/bin/./vmoddomlimits -S test.org.tr
Domain: testsm.gov.tr
Domain Quota: 1000 MB ; alan kotası
Default User Quota: 41943040 bytes
Max Domain Messages: 100000 ; alan mesaj kotası
Default Max Messages per User: 4000

# /home/vpopmail/bin/./vmoddomlimits -Q 2000 -M 200000

# /home/vpopmail/bin/./vmoddomlimits -S testsm.gov.tr
Domain: testsm.gov.tr
Domain Quota: 2000 MB ; yeni alan kotası
Default User Quota: 41943040 bytes
Max Domain Messages: 200000 ; yeni alan mesaj kotası
Default Max Messages per User: 4000

IMAP4-SSL, POP3-SSL ve Secure SMTP Sertifikaları

Qmail sunucusu ile gelen SSL destekli servisler için uygun sertifikaların üretilmesi gerekir. Bu amaçla courier paketi ile beraber bu sertifikaları üretecek betikler gelmektedir.

/usr/sbin/mkimapdcert
/usr/sbin/mkpop3dcert

Courier paketi kurulurken otomatik olarak sertifikalar /usr/share/courier/ dizininde üretilir (imapd.pem ve pop3d.pem). Ancak bu sertifikadaki değerler varsayılan olduğu için sunucuya uygun olarak değiştirilmesi gerekir. Bu amaçla pop3 ve imap servislerinin ayar dosyalarında değişiklik yapılması gerekir. Değişiklikler /etc/courier/ dizinindeki dosyalarda yapılır.

/etc/courier/imapd.cnf
/etc/courier/pop3d.cnf

# vi /etc/courier/imapd.cnf

RANDFILE = /usr/share/courier/imapd.rand
[ req ]
default_bits = 1024|2048|4096
encrypt_key = yes
distinguished_name = req_dn
x509_extensions = cert_type
prompt = no
[ req_dn ]
C=TR
ST=KOCAELI
L=GEBZE
O=E-Posta Sunucusu
OU=IMAP Sunucusu
CN=mail.test.org.tr
emailAddress=postmaster@test.org.tr
[ cert_type ]
nsCertType = server

Gerekli değişiklik yapıldıktan sonra komut çalıştırılır ve sunucu için uygun sertifika üretilir. Ancak bu sertifikalar kendi kendine imzalıdır. (Herhangi bir yetkili kurum tarafından imzalanmadığı için.)

Ayrıca hem imapd4-ssl hem pop3d-ssl servisleri aksi söylenmediği sürece /var/qmail/control/servercert.pem sertifikasını kullanırlar. Bununla ilgili ayarlar /etc/courier/imap4-ssl ve /etc/courier/pop3d-ssl dosyalarında yer alır.
PHP Ayarlarının Yapılması

E-posta sunucusunun web üzerinden düzgün çalışabilmesi için bazı php parametrelerinin değiştirilmesi gerekir. Bunlar web üzerinden upload yapılacak dosya boyutu, bunun için ayrılacak bellek miktarı gibi parametrelerdir. İlgili ayralar aşağıdaki gibi yapılabilir.

# vi /etc/php.ini

post_max_size 10M
upload_max 10M
memory_limit 20M

Değişikliklerin kontrol edilmesi için aşağıdaki komut kullanılabilir.

# echo "" | php | grep post_max_size
# echo "" | php | grep upload_max
# echo "" | php | grep memory_limit

Genel Ayarlar

Qmail için yapılan ayarlamalar /var/qmail/control dizini altındaki dosyalarda yapılmaktadır.

badmimetypes


Gönderilen e-postalar mime formatına dönüştürülerek gönderilir. Mime formatına dönüştürülen e-postaların içeriğini kontrol edebilmek için bu dosya /var/qmail/control/badmimetypes kullanılır. Dosyanın içeriği aşağıdaki gibi olabilir;

TVqQAAMAA
TVpQAAIAA
TVpAALQAc
TVpyAXkAX
TVrmAU4AA
TVrhARwAk
TVoFAQUAA
TVoAAAQAA
TVoIARMAA
TVouARsAA
TVrQAT8AA
TVrvAEQAe
...

Burada yer alan ifadeler mime formatında yer alan dosya tipini belirler. Magic number olarak da bilinen bu tanım, filtreleme işlemi için kullanılır. Bu dosyada herhangi bir değişiklik yapıldıktan sonra aşağıdaki komutun çalıştırılması gerekir.

# /var/qmail/bin/qmail-badmimetypes
# service qmail stop
# service qmail start

smtpgreeting

E-posta sunucusuna bağlandığınızda sizi karşılayacak mesajdır. Varsayılan olarak çıkan mesajda Qmail hakkında bilgiler vermektedir. Bu güvenlik olarak problem teşkil ettiği için, değiştirilmesi önerilir.

# echo "E-POSTA SUNUCUSUNA HOSGELDINIZ..." > /var/qmail/control/smtpgreeting

databytes

E-posta sunucusu üzerinden aktarılabilecek en fazla veri miktarı.

# echo 5000000 > /var/qmail/control/databytes

queuelifetime

E-post kuyrukta 24 saat (86400 sn) bekler.

# echo 86400 > /var/qmail/control/queuelifetime

ssattach

Bu dosyada tanımlanan uzantılar e-posta sunucusundan geçemez. .EXE, .COM, .BAT vb tehlikeli uzantılara sahip olan dosyalar bloklanır. ssattach dosyasının içeriği aşağıdaki gibi olabilir.

.exe
.com
.bat
.hta
.vbs
.lnk
.pif
.scr

Vekil (Relay) Tanımlarının Yapılması

Sunucuya kimin bağlanıp, hangi kontrollerden geçerek e-posta gönderebileceğini /etc/tcprules.d/tcp.smtp dosyasında belirtilir.

127.:allow,RELAYCLIENT="",QMAILQUEUE="/var/qmail/bin/simscan"
:allow,BADMIMETYPE="",BADLOADERTYPE="M",CHKUSER_RCPTLIMIT="15",CHKUSER_WRONGRCPTLIMIT="3",QMAILQUEUE="/var/qmail/bin/simscan"

Varsayılan bu değerlerde localhost üzerinden yapılan bağlantılar için yetkilendirme gerekmeden e-posta gönderilebilir. Bunun dışındaki diğer bağlantılar için tüm virus,spam ve eklenti taramaları, asılsız e-posta kontrolleri ve yetkilendirme yapılır. Burada IP bazında ve alan bazında vekil tanımları yapılabilir. Gerekli tanımlar yapıldıktan sonra:

service qmail stop
service qmail cdb
service qmail start

komutları işletilerek değişikliklerin etkili olması sağlanır.

Sunucunun Test Edilmesi


echo "deneme" > deneme.txt
env QMAILQUEUE=/var/qmail/bin/simscan SIMSCAN_DEBUG=2 /var/qmail/bin/qmail-inject user1@test.org.tr < deneme.txt

Kayıtların incelenmesi ;

# cat /var/log/qmail/smtp/current | tai64nlocal | more
# cat /var/log/qmail/send/current | tai64nlocal | more

Hiç yorum yok: