Openfire ” The messages in this conversation were not archived. ” hatası

Openfire Server kurdunuz fakat Monitoring Service  doğru çalışmasına rağmen client konuşmalarını archive etmiyor . Archiving sekmesinde konuşmaları search ettiğinizde aldığınız hata ” The messages in this conversation were not archived ” bu durumda Archiving Settings sekmesinden database’inizi Rebuild Index etmeniz gerekicek .

       Hata :                                     Çözüm :                               Sonuç :



FreeBsd üzerinde Vmware Tool kurulumu

Esx üzerinde kurduğumuz sanal makinelerin performanslı ve düzgün çalışması için Vmware Tool paketini kurmamız gerekir. Windows makinelerde bu basit bir sihirbaz yardımıyla kurulabilirken Unix sistemlerde bu biraz daha zor gözüksede Windows kadar basit ve daha keyifli bir kurulumu vardır.Freebsd üzerinde Vmware Tool kurulumu yapmadan önce kurmamız gereken bazı paketler var .

Vmware Tool paketini derlemek için Perl kurulumu yapıyoruz

pkg_add -v -r perl

ve compat6x paketini kuruyoruz.

cd /usr/ports/misc/compat6x/

make install clean

Vmware Client üzerinden tool cdsini taktıktan sonra CLI üzerinden ;

Cdromu mount edip dizine giriyoruz ,

mount /cdrom/

cd /cdrom

Cd içersindeki Vmware Tool dosyasını tmp klasörüne tarlıyoruz ,

tar zxvf vmware-freebsd-tools.tar.gz -C /tmp

tarladığımız dosyada kurulum yapmak için tmp dizinine gidip  vmware tools klasörüne giriyoruz,

cd /tmp/vmware-tools-distrib/

Bu dizinde kurulumu başlatıyoruz ,

./vmware-install.pl

Kısa süren kurulumun ardından kurulum yaptığımız dizine gidip config yapıyoruz

cd /usr/local/bin/

 ./vmware-config-tools.pl

Ve ardından makinemizi reboot ediyoruz

Görüldüğü üzere vmware tool freebsd üzerinde çalışır halde

Openfire Server vcard desteklenmiyor hatası

IM sunucusu olarak Openfire server client olarakta Spark kullanıyorsanız , kullanıcılarınız Spark’a avatar eklemek isteyebilirler. Ve sonucunda “Sunucunuz vcard desteklemiyor” hatası alabilirler.

Openfire yönetim konsolundan

ServerServer MangerSystem Properties sekmesinde

provider.vcard.className değerini bulup editliyoruz .

default olarak “ org.jivesoftware.openfire.ldap.LdapVCardProvider

değiştirdikten sonra ” org.jivesoftware.openfire.auth.DefaultAuthProvider” bu değer  olmalı .

ASP 0175 – Disallowed Parent Path Hatası

ASP 0175 – Disallowed Parent Path ( Üst dizin erişim hakları hatası )

Sunucu üzerinde IIS yönetiminden projenin üzerine tıklıyarak özelliklerini görüntülüyoruz. Görüntülediğimiz özelliklerde ASP seçeneğine erişiyoruz.

 

ASP seçeneğinin ardından ;

Resimde ki gibi “Enable Parrent Paths” özelliğini true olarak değiştiriyoruz.

Qmail Hizmetini Net-SNMP ile İzleme

Qmail Hizmetini Net-SNMP ile İzleme

Qmail üzerindenki mail trafiğini MRTG PRTG gibi snmp analiz programlarında izlemek istiyorsanız aşağıdaki yolu takip etmeniz gerekicek. Qmail’de ne olup bittiğinden haberdar olmak için gayet kullanışlı ve kolay bir yöntem .

Freebsd kullananlar için ;

1-    (Net-Snmp Kurulu değilse)

Net – Snmp Kurulumu

Port ağacından net snmp kurmak için

# cd /usr/ports/net-mgmt/net-snmp

# make install clean

Bizim burada yapacağımız işlem için net-snmp paketini default ayarlarla kurmak yeterli olacaktır.

Net-snmp kurulumu bittikten sonra gelelim snmp konfigürasyonunu yapmaya

# snmpconf –i

Snmpd.conf dosyasını düzenlemek için 1 deyip devam ediyoruz .

Gelen menüde snmp erişim ayarları için 2 deyip geçiyoruz

Gelen menüde bize snmp hangi versiyonu için community oluşturacağımızı soruyor. Burada kullandığınız snmp analiz programının desteklediği versiyona göre hareket edebilirsiniz . Genelde desteklenen v1 ve v2 dir . Bu menüde 4 deyip ilerliyoruz.

Gelen ekranda community name isteniyor . Community name olarak kirn deyip ilerliyorum ve diğer iki aşama için default değerler bırakıyorum .

Snmp tarafındaki ayarlarımızı bitirdik bu sihirbazda yaptığımız değişiklikleri kaydetip çıkmak için finished deyip ana menüye döndükten sonra quit deyip çıkıyoruz.

Ve bize snmpd.conf dosyasını nerede oluşturduğunun bilgisini veriyor.

Snmp  konfigürasyonunda bizim için gerekli olan aşamaları tamamladık . Şimdi Qmail için gerekli eklentiyi indirelim.

2-    Qmail Mrtg Kurulumu

# fetch http://www.inter7.com/qmailmrtg7/qmailmrtg7-4.2.tar.gz

# tar –zxvf qmailmrtg7-4.2.tar.gz

# cd qmailmrtg7-4.2

# make

# make install

Qmail mrtg eklentisi kuruldu.

Aşağıdaki bilgileri snmpd.conf dosyasının en alt satırına eklememiz gerekiyor.

# ee /usr/local/share/snmp/snmpd.conf

extend qmail-message-status /usr/local/bin/qmailmrtg7 s /var/log/qmail

extend qmail-bytes-transfer /usr/local/bin/qmailmrtg7 b /var/log/qmail

extend qmail-smtp-concurrency /usr/local/bin/qmailmrtg7 t /var/log/smtpd

extend qmail-smtp-sessions /usr/local/bin/qmailmrtg7 a /var/log/smtpd

extend qmail-pop3-concurrency /usr/local/bin/qmailmrtg7 t /var/log/pop3d

extend qmail-pop3-sessions /usr/local/bin/qmailmrtg7 a /var/log/pop3d

extend qmail-queue /usr/local/bin/qmailmrtg7 q /var/qmail/queue

extend qmail-messages /usr/local/bin/qmailmrtg7 m /var/log/qmail

extend qmail-concurrency /usr/local/bin/qmailmrtg7 c /var/log/qmail

extend qmail-virus /usr/local/bin/qmailmrtg7 C /var/log/clamd

extend qmail-spam /usr/local/bin/qmailmrtg7 S /var/log/spamd

extend dnscache /usr/local/bin/dnscache-stats

4-) Kullanacağınız SNMP destekleyen izleme programını aşağıdaki SNMP MIB kodlarını girmeniz yeterli olacaktır.

QMail Kuyruk Sayısı

.1.3.6.1.4.1.8072.1.3.2.4.1.2.11.113.109.97.105.108.45.113.117.101.117.101.1

QMail Açılmamış Kuyruk Sayısı

.1.3.6.1.4.1.8072.1.3.2.4.1.2.11.113.109.97.105.108.45.113.117.101.117.101.2

QMail SMTPd Bağlantı Sayısı

.1.3.6.1.4.1.8072.1.3.2.4.1.2.22.113.109.97.105.108.45.115.109.116.112.45.99.111.110.99.117.114.114.101.110.99.121.1

Ve PRTG konsolunda bu şekilde görüyoruz ,

Qmail Relay Açma veya Kapama

Qmail kurulumundan sonra default olarak gelen tcp.smtp değerlerine göre qmail üzerinden local’den dahi olsa mail atamıyoruz. Ve bunun için tcp.smtp dosyasının içindeki Relay ayarlarını kontrol etmemiz gerekiyor.

# ee  /etc/tcp.smtp

127.:allow,RELAYCLIENT=””
10.10.10.10:allow,RELAYCLIENT=””
10.10.20.:allow,RELAYCLIENT=””

Bu şekilde düzenleyip kaydettikten sonra sadece 10.10.10.10 nolu ipden ve 10.10.20.0 networkünden gelen istekler qmail server üzerinden geçebilecek .

Tabiki qmaili smtp auth olarak calistirmak daha garantili.

Qmail log dosyalarını okunabilir hale getirmek

Qmail log dosyalarını okunabilir hale getirmek 

/var/log/qmail/ altında bulunan log dosyaları üzerinde çalışılmıştır.Bu dizin sizde başka bir yerde olabilir.

qmail loglarının bulunduğu dizinde “@” işareti ile başlayan (@400000004359384d36cf0b44.s) dosyalar ve current isimli dosya bulunmaktadır. Bu dosyaların içinde de aynı şekilde başlayan satırlar bulunmaktadır. Bunlar TAI64N formatında 16’lı sayı sisteminin rakamlarından oluşan zaman bilgisidir.
İlk 16 basamak 1.1.1970 yılı başından şu ana kadar geçen saniyeyi, sonraki 8 basamak ise nanosaniye bilgisini göstermektedir. Bu formatı bildiğimiz tarih formatına çevirmek için “tai64nlocal” komutu yeterlidir.

Örnek:
# tail current 
@40000000435f391021516564 info msg 441674: bytes 5624 from qp 29263 uid 0
@40000000435f391023d37494 starting delivery 230469: msg 441674 to local deu.edu.tr-xxxxxxx@deu.edu.tr
@40000000435f391023d491bc status: local 1/120 remote 15/120
@40000000435f39102aa876ac new msg 441675
@40000000435f39102aaad424 info msg 441675: bytes 5851 from qp 29273 uid 0
@40000000435f39102da8fcdc starting delivery 230470: msg 441675 to remote xxxxxxxx@enkapower.com
@40000000435f39102da923ec status: local 1/120 remote 16/120
@40000000435f3910349328ec delivery 230469: success: did_0+0+4/
@40000000435f391034982a2c status: local 0/120 remote 16/120
@40000000435f391034a1c334 end msg 441674

# tail current|tai64nlocal 
2005-10-26 11:06:30.558982500 info msg 441674: bytes 5624 from qp 29263 uid 0
2005-10-26 11:06:30.601060500 starting delivery 230469: msg 441674 to local deu.edu.tr-xxxxxxx@deu.edu.tr
2005-10-26 11:06:30.601133500 status: local 1/120 remote 15/120
2005-10-26 11:06:30.715683500 new msg 441675
2005-10-26 11:06:30.715838500 info msg 441675: bytes 5851 from qp 29273 uid 0
2005-10-26 11:06:30.766049500 starting delivery 230470: msg 441675 to remote xxxxxxx@enkapower.com
2005-10-26 11:06:30.766059500 status: local 1/120 remote 16/120
2005-10-26 11:06:30.882059500 delivery 230469: success: did_0+0+4/
2005-10-26 11:06:30.882387500 status: local 0/120 remote 16/120
2005-10-26 11:06:30.883016500 end msg 441674
bash-2.03#

Qmail – DKIM ve Domainkeys imzalaması

Gönderdiğiniz maillerin gerçekten sizin tarafınızdan gönderildiğini ispat etmeye yönelik bir kimlik doğrulama metodu olan DKIM konusuna önceki bir yazımdadeğinmiş ve qmail sunucularda giden maillerin DKIM (DomainKeys Identified Mail) ile imzalanmasının nasıl sağlanabileceğini anlatmıştım. Özellikle toplu mail gönderileri yapıyorsanız maillerinize mutlaka uygulanması gereken DKIM bildiğiniz gibi Domainkeys denilen bir diğer kimlik doğrulama metodunun geliştirilmiş ve yaygın olarak kullanılan versiyonudur.

DKIM ile DomainKeys aynı şeyi amaçlayıp aynı teknolojiyi kullanıyor olsalar ve sadece DKIM kullanmak yeterli gibi görünse de gönderdiğiniz mailleri hem DKIM hem de Domainkeys ile imzalamak elbette daha iyi olacaktır. Zira bazı sistemlerde sadece DKIM doğrulaması yapılırken bazılarında sadece DomainKeys kullanılıyor olabilir. Bu nedenle her iki yöntemi kullanarak yapılan imzalama, iki yöntemden sadece birini kullanan alıcı sistemlerle de iyi geçinmek anlamına gelir. Yazının devamında, daha önceki yazıma ek olarak qmail sistemlerde giden maillerin DKIM’in yanı sıraDomainKeys kullanılarak da imzalanmasından bahsedeceğim.

DomainKeys ve DKIM


Giriş bölümünde de değindiğim gibi DomainKeys ve DKIM birbirleri ile aynı mantıkta çalışıyor ve çok benzer metodları kullanıyorlar, daha önceki yazımda DKIM’in ne olduğuna ve çalışma mantığına uzun uzun değindiğim için bu yazıda DKIM nedir, DomainKeys nedir gibi konulara tekrar değinmeyeceğim, bu konularda bilgi almak için http://www.syslogs.org/qmail-giden-postalar-icin-dkim-implementasyonu/ linkindeki ilgili yazıya göz atabilirsiniz.

Çalışma Mantığı


qmail sistemlerde DKIM ve DomainKeys ile imzalama işlemi, giden maillerin gönderilmesinden sorumlu olan qmail-remote’un, imzalama işlemini yapacak olan bir wrapper script ile değiştirilmesi sayesinde yapılabilmektedir. İlgili script, uzaktaki sisteme gönderilmesi için qmail-remote’a verilmek istenen mail’i alır, DKIM için libdkim kütüphanesi ile birlikte gelen libdkimtest ve DomainKeys için de libdomainkeyskütüphanesi ile gelen dktest isimli programcıktan yararlanarak ve özel anahtarınızı kullanarak imzalama işlemini yaptıktan sonra teslim işlemi için gerçek qmail-remote verir. Yazının devamında, adım adım libdkimtest ve dktest’in kurulmasından, openSSL kullanarak private  key ve  (dns txt recordu olarak yayınlanacak) public key’in oluşturulmasından son olarak da qmail-remote’un imzalama işlemini yapacak wrapper script ile değiştirilmesinden bahsedeceğim.

Kurulum


libdkimtest ve dktest portable uygulamalar olduğu için uzun uzadıya kurulum prosedürleri bulunmuyor. İlgili paketleri download edip make işlemi yaptıktan sonra oluşan dosyaları sistemin binary dizinine atmak yeterli oluyor. Ben qmail’i FreeBSD sistemler üzerinde çalıştırıyorum. Dolayısı ile bu bölümde FreeBSD üzerine kurulumdan bahsedeceğim. Ancak kurulum herhangi bir linux dağıtımı için de pek farklı değildir. Dolayısı ile aynı yönergeler ile Linux’lar için de kurulum yapabilirsiniz.

 

 

Libdkim

Aslında libdkim http://libdkim.sourceforge.net/ adresinde bulunuyor ancak ben http://patchlog.com/security/qmail-and-dkim/ adresinde bulunan ve kütüphanenin Linux sistemler altında derlenebilmesi ve bizim wrapper scriptimizin de kullanacağı bir takım extra özellik içeren patch’li bir versiyonunu kullanıyorum.

Şimdi bu versiyonu sisteme kuralım:

FreeBSD’ler altında, Libdkim’i derlemek için gmake kullanmak gerekiyor. Bu nedenle öncesinde sisteminizde yüklü olması gerekir. Kontrol etmek için aşağıdaki şekilde pkg_info komutundan yararlanabilirsiniz:

Komut

# pkg_info |grep gmake

Eğer yüklü ise sorun yok, ancak değilse kurmanız gerekir. gmake, port ağacında /usr/ports/devel/gmake dizininde bulunuyor. Dolayısı ile port ağacınızı güncelledikten sonra aşağıdaki şekilde kurulum yapabilirsiniz.

Komut

# cd /usr/ports/devel/gmake/

# make install clean

Sisteminizde port ağacı yoksa, “pkg_add -r gmake” komutu ile yüklemeniz de mümkün. Gmake kurulumundan sonra, derleme işlemine geçebilirsiniz. Ben, derleme vs işlemleri için çalışma dizini olarak /usr/local/src dizinini kullanıyorum. Şimdi ilgili çalışma dizinine girip libdkim’in yukarıda bahsedilen patchli  versiyonunu indirelim

Komut

Paketi açalım ve gmake ile derleme işlemini yapalım.

Komut

# tar xvfz libdkim-1.0.19-patched.tgz

# cd libdkim-1.0.19-patched/src/

# gmake

Derleme işleminden sonra src dizininde libdkimtest isimli binary dosyasını görebilirsiniz. Bu binary dosyasını /usr/local/bin dizinine kopyalıyoruz.

Komut

# cp libdkimtest /usr/local/bin/

libdkimtest dosyası herkes tarafından çalıştırılabilir olmalıdır:

Komut

# chown root:wheel /usr/local/bin/libdkimtest

# chmod 755 /usr/local/bin/libdkimtest

Libdkim kurulumu bu kadar. libdkimtest komutunu vermeniz ve aşağıdaki gibi bir çıktı almanız gerekir.

Çıktı

# libdkimtest

dkimlibtest: can’t open private key file test.pem

Yukarıdaki çıktıyı alıyorsanız, (özel anahtar dosyasını bulamadığı için uyarı veriyor olsa da) libdkimtest sorunsuz çalışıyor demektir.

Şimdi de libdomainkeys’in kurulumunu yapalım.

 

 

Libdomainkeys

Libdomainkeys http://sourceforge.net/projects/domainkeys/ adresinden download edilebilmektedir. /usr/local/src dizinine geçelim ve paketi indirelim.

Komut

Şimdi de paketi açıp make edelim.

Komut

# tar xvf libdomainkeys-0.69.tar.gz

# cd libdomainkeys-0.69

# make

Make işlemi sonucu oluşan dktest binary’sini /usr/local/bin dizinine taşıyıp, gerekli izinleri verelim:

Komut

# cp dktest /usr/local/bin/

# chown root:wheel /usr/local/bin/dktest

# chmod 755 /usr/local/bin/dktest

libdomainkeys kurulumu da bu kadar. dktest komutunu verdiğiniz zaman aşağıdaki gibi usage bilgisini içeren bir çıktı almanız gerekir.

Çıktı

# dktest

dktest: [-f] [-b#] [-c nofws|simple] [-v|-s selector] [-h] [-t#] [-r] [-T]

Durum sizde de yukarıdaki şekildeyse dktest çalışıyor demektir.

Gerekli programcıkların kurulmasından sonra, OpenSSL kullanarak private ve public key’lerin oluşturulması ve txt recordu olarak dns’e girilecek kayıtların düzenlenmesi bölümüne geçiyoruz.

Private ve Public Keylerin Oluşturulması


Key’lerle ilgili teorik bilgiye daha önceki yazımda değindiğim için burda uzun uzadıya tekrarlamayacağım, detay ve teorik bilgi isterseniz, daha önceki yazımın “OpenSSL Private ve Public Key Oluşturmak” bölümüne bakabilirsiniz. İmzalama işleminde kullanılacak private key ve alıcı tarafında doğrulama işlemi için kullanılacak (dns sorgusu ile elde edilecek) public key’i oluşturmak için OpenSSL kullanılmaktadır. Keylerin oluşturulması işlemi manual olarak yapılabilir ancak http://www.syslogs.org/downloads/domainkey * adresinde bulunan shell script ile daha kolay bir şekilde yapmak mümkün. İlgili script, verdiğiniz alan adı ve selector için private ve public key’leri  /etc/domainkeys dizini altında oluşturmakta ve dns sunucusuna girilmesi gereken txt kaydını da vermektedir.  Bu yüzden bu aşamada scripti kullanmak daha yerinde olacaktır.

* Scriptin orjinali http://www.backschues.net/backschues.net/know-how/qmail/domainkey adresinde bulunuyor. Ben scripte küçük bir değişiklik yaptım.

Şimdi shell scripti download edelim:

Kod

# cd /usr/local/src

# fetch http://www.syslogs.org/downloads/domainkey

Örnek olarak, syslogs.org domainini ve genel isimli selector’u kullanacağımızı düşünürsek scripti aşağıdaki şekilde çalıştırabiliriz:

Kod

# sh domainkey syslogs.org genel

Komutu verdiğiniz zaman, anahtarlar oluşturulup, /etc/domainkeys/ altında syslogs.org dizini altında konulacaktır ve aşağıdaki gibi bir çıktı verilecektir.

Çıktı

Generating RSA private key, 1024 bit long modulus

…..++++++

………………….++++++

e is 65537 (0x10001)

writing RSA key

TXT record for BIND:

genel._domainkey.syslogs.org. IN TXT “v=DKIM1\; k=rsa\; t=y\; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDynTqLz+FyCuU4GM4h87Jg1tXd9AxDaK6Ix2HV9vByoCkY8uY0LRd/1XSZMSP2oyeABsdppAahts5whPayVjG83XDb80C3bGaJW8/XKYjUjfmtzwQ/5sivpTAjfsPCvt7LGaQnkAIO20FDCybksYWRobvit9aD8WJGvqOc9bpQCwIDAQAB”

Gördüğünüz gibi bind dns sunucuları için sisteme eklenmesi gereken txt recordu veriliyor. Yukarıdaki çıktıyı bir yere not edin, dns kaydı oluşturulması ile ilgil bölümde kullanacağız.

Ayrıca /etc/domainkeys dizinine bakarsanız içerisinde alanadi.com isminde bir dizin olduğunu görebilirsiniz. Bizim örneğimiz için dizinin içeriği şu şekilde olacaktır:

Çıktı

# ls -l /etc/domainkeys/syslogs.org/

total 6

lrwxr-xr-x  1 root    wheel   45 Apr 26 23:30 default -> /etc/domainkeys/syslogs.org/rsa.private_genel

-rw——-  1 qmailr  qmail  887 Apr 26 23:30 genel

-rw——-  1 qmailr  qmail  887 Apr 26 23:30 rsa.private_genel

-rw——-  1 qmailr  qmail  272 Apr 26 23:30 rsa.public_genel

-rw——-  1 qmailr  qmail    6 Apr 26 23:30 selector

Dikkat ederseniz dosyaların sahibi qmailr ve grubu qmail. Ayrıca bu dosyaları sadece qmailr okuyabiliyor. Gerekli dosyalar oluşturulduğuna göre, bundan sonra izlenmesi gereken adım, public key’i yayınlamak için DNS sunucusunda txt kayıtlarını oluşturmaktır.

Public Key İçin DNS Kaydı Oluşturulması


Bu bölümde de uzun uzadıya teorik detaylara değinmeyeceğim, detay almak isterseniz daha önceki yazımın “Public Key İçin DNS Kaydı Oluşturulması” bölümüne bakabilirsiniz.

DKIM ve Domainkeys, aynı dns kaydını kullanmakta olduğu için sadece bir txt kaydı oluşturmak hem dkim hem de domainkeys için yeterlidir.

Şimdi örneğimizde kullandığımız syslogs.org domaini için dkim/domainkey kayıtlarını oluşturalım.

Öncelikle, _domainkey.syslogs.org alt domaini için aşağıdaki txt kaydını dns sunucusuna ekliyoruz:

Çıktı

“t=y\;” “o=~”

Kullanılan switchlerin anlamları şu şekildedir:
t=y : Bu domain DKIM’i test mode’da kullandığını belirtir. Yani imzalı mailler ile imzasız mailler arasında teknik olarak ayırım yapılmaması söylenir.
o=~ : Buradaki tilda (~), bu domainden gönderilecek maillerin bazılarının imzalı bazılarının imzasız olabileceğini belirtir. Sonuç olarak imzasız mail göndermeniz durumunda sorun çıkmayacaktır.
Eğer (~) yerine (-) işareti kullanırsanız, bu domaine ait her mailin imzalı olması gerektiğini belirtmiş olursunuz.

Şimdi de genel._domainkey.syslogs.org için biraz önce not aldığımız txt kaydını giriyoruz:

Çıktı

 “v=DKIM1\; k=rsa\; t=y\; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDynTqLz+FyCuU4GM4h87Jg1tXd9AxDaK6Ix2HV9vByoCkY8uY0LRd/1XSZMSP2oyeABsdppAahts5whPayVjG83XDb80C3bGaJW8/XKYjUjfmtzwQ/5sivpTAjfsPCvt7LGaQnkAIO20FDCybksYWRobvit9aD8WJGvqOc9bpQCwIDAQAB”

Bu kayıt, bir önceki bölümde oluşturduğumuz public key’i barındırdığı için, gene aynı adımda oluşturulan private key ile imzalanan mailler için imza doğrulaması yapılabilmesine olanak sağlayacaktır. DNS kayıtlarınızı ekledikten sonra nslookup ile durumu doğrulayabilirsiniz:

Kod

# nslookup -q=txt genel._domainkey.syslogs.org

Çıktı şu şekilde olacaktır:

Çıktı

genel._domainkey.syslogs.org      text = “v=DKIM1\; k=rsa\; t=y\; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDynTqLz+FyCuU4GM4h87Jg1tXd9AxDaK6Ix2HV9vByoCkY8uY0LRd/1XSZMSP2oyeABsdppAahts5whPayVjG83XDb80C3bGaJW8/XKYjUjfmtzwQ/5sivpTAjfsPCvt7LGaQnkAIO20FDCybksYWRobvit9aD8WJGvqOc9bpQCwIDAQAB”

DNS kayıtlarınız sorunsuz olarak çalışıyorsa, bir sonraki bölüme geçebilirsiniz.

qmail`in Yapılandırılması


Şimdi ki adımda qmail-remote’u imzalama işlemini yapacak wrapper script ile değiştireceğiz.

Bunun için öncelikle qmail’i stop edelim.

Komut

# qmailctl stop

Daha sonra da /var/qmail/bin dizinine geçip qmail-remote’un adını qmail-remore.orig olarak değiştiriyoruz.

Komut

# cd /var/qmail/bin

# mv qmail-remote qmail-remote.orig

Şimdi de, yeni bir qmail-remote dosyası açıyoruz:

Komut

# vi /var/qmail/bin/qmail-remote

ve aşağdaki satırları bu dosyaya ekliyoruz :
FreeBSD kullanıyorsanız:

Çıktı

#!/usr/local/bin/bash

# version 7

PATH=/bin:/usr/bin:/usr/local/bin

DOMAIN=${2##*@}

[ “$DKREMOTE” ] || DKREMOTE=”/var/qmail/bin/qmail-remote.orig”

[ “$SELECTOR” ] || SELECTOR=$(cat “/etc/domainkeys/$DOMAIN/selector”)

[ “$DKSIGN” ] || DKSIGN=”/etc/domainkeys/$DOMAIN/rsa.private_$SELECTOR”

if [ -r “$DKSIGN” ] ; then

tmp=`mktemp -t dk.sign.XXXXXXXXXXXXXXXXXXX`

tmp2=`mktemp -t dk2.sign.XXXXXXXXXXXXXXXXXXX`

tmp3=`mktemp -t dk3.sign.XXXXXXXXXXXXXXXXXXX`

tmp4=`mktemp -t dk4.sign.XXXXXXXXXXXXXXXXXXX`

/bin/cat – >”$tmp”

/usr/local/bin/dktest -s “$DKSIGN” -c nofws d=”$DOMAIN” -h <“$tmp” >> “$tmp2” 2>&1

(/bin/cat “$tmp2” “$tmp” |tr -d “\15”) > “$tmp3″

/usr/local/bin/libdkimtest -d”$DOMAIN” -y”$SELECTOR” -z1 -s “$tmp3” “$DKSIGN” “$tmp4” 2>/dev/null

(/bin/cat “$tmp4” |tr -d “\15”) | “$DKREMOTE” “$@”

retval=$?

rm “$tmp” “$tmp2” “$tmp3” “$tmp4”

exit $retval

else

# No signature added

exec “$DKREMOTE” “$@”

fi

Linux kullanıyorsanız:

Çıktı

#!/bin/bash

# version 7

PATH=/bin:/usr/bin:/usr/local/bin

DOMAIN=${2##*@}

[ “$DKREMOTE” ] || DKREMOTE=”/var/qmail/bin/qmail-remote.orig”

[ “$SELECTOR” ] || SELECTOR=$(cat “/etc/domainkeys/$DOMAIN/selector”)

[ “$DKSIGN” ] || DKSIGN=”/etc/domainkeys/$DOMAIN/rsa.private_$SELECTOR”

if [ -r “$DKSIGN” ] ; then

tmp=`mktemp -t dk.sign.XXXXXXXXXXXXXXXXXXX`

tmp2=`mktemp -t dk2.sign.XXXXXXXXXXXXXXXXXXX`

tmp3=`mktemp -t dk3.sign.XXXXXXXXXXXXXXXXXXX`

tmp4=`mktemp -t dk4.sign.XXXXXXXXXXXXXXXXXXX`

/bin/cat – >”$tmp”

/usr/local/bin/dktest -s “$DKSIGN” -c nofws d=”$DOMAIN” -h <“$tmp” >> “$tmp2” 2>&1

(/bin/cat “$tmp2” “$tmp” |tr -d “\15”) > “$tmp3″

/usr/local/bin/libdkimtest -d”$DOMAIN” -y”$SELECTOR” -z1 -s “$tmp3” “$DKSIGN” “$tmp4” 2>/dev/null

(/bin/cat “$tmp4” |tr -d “\15”) | “$DKREMOTE” “$@”

retval=$?

rm “$tmp” “$tmp2” “$tmp3” “$tmp4”

exit $retval

else

# No signature added

exec “$DKREMOTE” “$@”

fi

Not: Script bash kullanmak üzere düzenlenmiştir, bu nedenle sisteminizde bash’ın kurulu olması gerekir.

Şimdi de qmail-remote dosyasına gerekli izinleri veriyoruz.

Komut

# chown root:qmail /var/qmail/bin/qmail-remote

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

Qmail’in yapılandırılması işlemi bundan ibaret. Şimdi qmail’i yeniden başlatalım.

Komut

# qmailctl start

Herşey yolunda gittiyse artık qmail giden mailler için hem dkim hem de domainkeys ile imzalama işlemi yapacaktır. Durumu test etmek için, sunucunuzdan herhangi bir yahaoo adresine gönderim yapabilirsiniz. Yahoo hem dkim hem de domainkeys doğrulaması yaptığı için imzalama işlemlerinin doğruluğunu net olarak kontrol edebilirsiniz.

Düzgün çalışan bir qmail sunucudan, yahoo’ya gönderilen bir mailin header’ında dkim ve domainkeys ile ilgili şu ibareler bulunacaktır.

Çıktı

Authentication-Results: mta1020.mail.sk1.yahoo.com  from=syslogs.org; domainkeys=pass (ok);  from=syslogs.org; dkim=pass (ok)

Görüldüğü üzere kimlik doğrulama hem domainkeys hem de dkim için pass etmiş durumda.

Konu ile ilgili daha fazla bilgi almak için aşağıdaki adresleri de inceleyebilirsiniz:

Kaynaklar


http://www.syslogs.org/qmail-giden-maillerin-dkim-ve-domainkeys-ile-imzalanmasi/