18 Ekim 2010 Pazartesi

Postfix Active Directory entegrasyonu.

Bu yazımda Active Directory ile Postfix ve Dovecot entegrasyonunun nasıl yapılacağından bahsedeceğim.

Kullancıların AD üzerinde tutulduğu, POP3/IMAP oturumların Dovecot kullanılarak açıldığı bir sistem kuracağız.

1. Postfix - AD Entegrasyonu

Kullanıcı hesapları AD üzerinde olacağından, bu hesaplara ait posta kutularının sahipliği için kullanılacak bir hesabı Linux üzerinde açmamız gerekiyor.

# useradd vmail -c 'Virtual Mail User' -s /bin/false

vmail kullanıcısı oturum açma amacıyla kullanılmasını engellemek için kullanıcının varsayılan kabuk yorumlayıcısını /bin /false olarak ayarladık.

vmail isimli kullanıcının UserID,GroupID ve home klasör bilgilerine ihityaç duyacağımızdan bu bilgileri not etmeliyiz.

[root@gw ~]# cat /etc/passwd|grep vmail
vmail:x:529:529:Virtual user:/home/vmail:/bin/false
[root@gw ~]# cat /etc/group|grep vmail
vmail:x:529:


User ID: 529, Group ID: 529, home: /home/vmail


Postfix'in kullanıcı hesabının kontrolü için AD'ye bağlanırken ihtiyaç duyacağı kullanıcı hesabını oluşturarak devam edelim. Ben bu iş için, postfix isimli bir kullanıcı hesabını AD üzerinde oluşturdum.

AD üzerinde kullandığım domain adı "test.com.tr" kullanıcı adıysa "postfix" bu bilgileri kullanarak
Postfix - AD entegrasyonu için kullanılacak /etc/postfix/ad_users.cf isimli bir dosya oluşturalım.

server_host = 192.168.2.1
search_base = dc=test,dc=com,dc=tr
version = 3
query_filter = (&(objectclass=person)(samaccountname=%u))
result_attribute = samaccountname
result_format = %s/Maildir/
bind = yes
bind_dn = test\postfıx
bind_pw = 12#as8192@KLM

AD entegrasyonu için kullandığımız dosya içindeki parametreleri kısaca açıklayım.

server_host = 192.168.2.1  AD sunucusunun adresini gösterir.

search_base = dc=test,dc=com,dc=tr kullanıcı hesaplarıın yer aldığı context' in adresini gösterir.

version = 3 kullanılacak ldap protokolünün versiyon numarasını gösterir.


query_filter = (&(objectclass=person)(samaccountname=%u)) arama işleminin hangi tür objelerde yapılacağı ve arama kriteri için  hangi alanın kullanılcağını gösterir.

result_attribute = samaccountname arama sonunda eşleşme bulunduğunda döndürelecek değeri gösterir.

result_format = %s/Maildir/ döndürülen değerin hangi formatta kullanılacağını belirler.

Aşağıdaki parametrelere AD üzerinde arama yapmadan önce oturum açmak için kullanılacak bilgileri, içerir sorgulama için oturum açmak gerekli değilse bubilgilerin kullanılmasına gerek yoktur.

bind = yes
bind_dn = test\postfıx
oturum açarken kullanılacak hesabının adı
bind_pw = 12#as8192@KLM oturum açarken kullanılacak hesabın parolası.

Dosyayı oluşturduktan sonra yapılandırmayı aşağıdaki komutu çalıştırarak kontrol edebiliriz.
[root@gw ~]# postmap -q ckalayci ldap:/etc/postfix/ad_users.cf
ckalayci/Maildir/

AD bağlantısı tamamlandıktan sonra Postfix'in yapılandırma dosyası üzerinde gerekli ayarlamaları yapalım.Bunun için /etc/postfix/main.cf dosyasını açıp mydestination parametresinin bulunduğu satırı aşağıdaki gibi düzenleyelim.

mydestination = $myhostname, localhost.$mydomain, localhost
ve aşağıdaki satırları main.cf dosyasına ekleyelim.

virtual_mailbox_domains = $mydomain
virtual_mailbox_base = /home/vmail/
virtual_mailbox_maps = ldap:/etc/postfix/ad_users.cf
virtual_uid_maps = static:529
virtual_gid_maps = static:529

Burada kullanılan virtual_mailbox_base, virtual_uids_maps ve virtual_gid_maps değerleri parametrelerine, posta kutularının sahipliği için açtığımız vmail kullanıcısına ait home dizini, uid ve guid değerlerini giriyoruz.

main.cf fosyasının kaydedip postfix'i yeniden başlattığımızda Postfix - AD entegrasyonu tamamlanacak ve AD üzerinde tanımlanmş kullanıcılara e-posta gönderdiğinizde Postfix gelen e-postaları kabul etmeye başlayacaktır.

[root@gw ~]# /etc/init.d/postfix reload
yada
 [root@gw ~]# /etc/init.d/postfix restart
2. Dovecot - AD entegrasyonu

Dovecot - AD entegrasyonu için kullanılacak ayarları içerecek /etc/dovecot_ad.conf isimli bir dosya oluşturup aşağıdaki satırları bu dosyaya ekleyelim.

hosts=192.168.2.1
base=dc=test,dc=com,dc=tr
ldap_version=3
auth_bind=yes
auth_bind_userdn=test\%n

İkinci olarak /etc/dovecot.conf dosyası içine, daha önce açtığımız vmail kullanıcısının user id, group id ve home dizini bilgilerini içeren aşağıdaki satırı ekleyelim.

auth_username_format = %Lu

passdb ldap {
  args = /etc/dovecot_ad.conf
}

userdb static {
args=uid=529 gid=529 home=/home/vmail/%Lu
}

Yukarıdaki satırlar Dovecot kullanılarak oturum açıldığında kullanıcının e-postalarının saklandığı dizinin yeri ve
bu dizinin sahiplik bilgilerini gösteriyor. home parametresinin son kısmında yer alan %Lu oturum açılırken belirtilen kullanıcı adının küçük harfe çevrilerek kullanılmasını sağlamaktadır.

dovecot.conf dosyasını kaydettikten sonra Dovecot servisini yeniden başlatarak Dovecot - AD entegrasyonunu tamamlıyoruz.

[root@gw ~]# /etc/init.d/dovecot reload
 yada

[root@gw ~]# /etc/init.d/dovecot restart

Hiç yorum yok:

Yorum Gönder