VPOPMAIL  

 

Vpopmail bir sanal domain ve sanal kullanıcı yonetim  aracı olarak yazılmıştır, yazılmasında temel MTA (Mail Transfer Agent)olarak qmail ele alındığı için bu sadece bu MTA ile  çalışır. Son zamanlarda postfix ile birlikte de çalışabilmesi için gerekli düzenlemeler yapılmıştır. Postfix ile çalıştırabilmeniz için yine aynı sitede bulunan vpopmail-postfix dökümanına göz atabilirsiniz.

 

Vpomailin halihazırda  efektif ve esnek yapısı qmailin yönetiminin kolaylaşmasında önemli derecede rol oynamıştır ve göreceli olarak qmailin MTA lar arasındaki yükselişe katkısının büyük olduğunu söyleyebiliriz. Ken Jones tarafından  http://www.inter7.com/vpopmail adresinde yönetilen vpopmail sadece yazılımın bulucusu tarafından değil tüm dünyadaki açıkkaynak kod severler tarafından desteklenmektedir. Kaynak kodları isteyen herkese açıktır ve ücretsizdir (GPL lisanslı).  Vpopmaile ek program yazmak isteyen yazılımcılar için oldukca kaliteli  bir api sunar .Sanal domain yönetimindeki başarısı birkaç domainle kısıtlı değildir üzerinde binlerce sanal domain koşan mta’lari oldukça rahat bir şekilde kaldırabilmektedir.

 

Vpopmailin önemli bileşenleri

Vchkpw qmail-pop3d için bir onaylama aracı

Vdelivermail sanal kullanıcılara gelen mailleri yerlerine dağıtan araç(Mail Delivery Agent)

Vadduser

Vadddomain

Vmoduser

….

Normal qmail kurulumunda eklemek istediğimiz her mail hesabı için  bir sistem hesabı lazimdir. Vpopmail kullandığımız zaman  ise tüm mail hesapları için ortak kullanılabilecek bir sistem hesabı oluşturularak  tüm hesaplar bu sistem  kullanici hesabına atama yapılır. Böylece tüm kullanıcıların  ana ev dizini aynı olur (/home/vpopmail gibi), alt ev dizinleri ise /home/vpopmail/domains/bizimev.net/huzeyfe şeklinde olur.

 

 

Yeni Sanal Domain eklemek

 

Bunun icin vpopmail in bize sundugu vadddomain programını kullanabiliriz. Normalde vadddomain programı /home/vpopmail/bin/ dizinindedir ve bunu konsoldan direkt çalıştırmaya kalkarsanız aşağıdaki hatayı alırsınız.

# vadddomain deneme.com

-bash: vadddomain: command not found

 

Her seferinde bu pathi uzun uzun yazmak yerine bu programların bulunduğu dizini PATH değişkenimize ekleyerek  konsoldan sadece isimleri ile çağırabiliriz, bunun için;

 /home/vpopmail/bin  dizinini $PATH degişkenine eklemeliyiz

 

Bu işlem  aşağıdaki gibidir;

#vi  .bash_profile     (komutu ile dosyayi acip) (root kullanıcısı olarak düşünülmüştür)

 

$PATH=$PATH:$HOME/bin:/home/vpopmail/bin

şeklinde getirin. Kaydedip çıkın sonra değişikliklerin aktif olmasını sağlamak için

 

#source /root/.bash_profile

komutunu kullanin.

 

vadddomain ile kullanabilecegimiz bazi secenekler ve kullanimi

 

vadddomain [secenekler]  domain_ismi [postmaster passwd]

 

-e :  secenegi ile eklediğimiz domaindeki bulunmayan hesaplara gelen mailleri bir hesaba gonderebiliriz.

 

-d : ile bu domainin hangi dizinde dosyalari barindiracaği belirtilir.

 (default degeri(/home/vpomail/domains/…) uygundur.)

 

vadddomain komutu ile eklediğimiz domain /var/qmail/control/rcpthost dosyasina otomatik eklenir. Bizim  elle eklememize gerek yoktur. Bu dosya haricinde birkaç dosyada daha değişiklik gerçekleşir bu dosyalar aşağıdaki gibidir.

 

/var/qmail/control/rcpthosts

/var/qmail/control/morercpthosts ( rcpthosts dosyası 50 satırdan fazla ise)

/var/qmail/control/virtualdomains

/var/qmail/users/assign

 

 

Örnek olması amacı ile bizimev.com domainini sisteme ekleyelim,

# vadddomain bizimev.com

Please enter password for postmaster:  bir parola belirletin

enter password again:        aynisini yazin

 

Domainimizi ekledik fakat bu domainin işlevsel hale gelebilmesi için yani  dış dünya ile mail iletişimimizi saglayabilmek icin yapmamız gereken bir şey daha var, burada konunun dışında kaldığımız için değinmeyeceğim sadece hatırlatma açısından bahsediyorum eklediğimiz domain in dns kayitlarinin duzgun olması gerekiyor.

 

DNS kayıdından kastım MX kaydıdır bu domaine ait MX kaydının  mail sunucu olarak kullandığımız makineyi göstermesi gerekmektedir.

 

Standart dns dokumanlarinda MX kayitlarinin ip adresi degil de fqdn olmasi gerektiği belirtilmektedir. Bazi mail sunucular ornegin (spymac.com) mx kaydi ip olan sunuculardan mail kabul etmemektedir. Veya cesitli sorunlar cikabilmektedir.

 

Dns teki mx kaydi

 

Bizimev.net.            IN                MX               0        mail.bizimev.net.

Seklinde olmalıdır.

 

Domainimizi ekledik simdi sira bu domainimize kullanıcı mail hesaplarını oluşturmak.

Yeni mail hesabı oluşturmak icin vadduser komutu kullanmalıyız. Bu komutu hem root hem de vpopmail kullanıcısı olarak kullanabiliriz. Tavsiyem vpopmail kullanıcısı olarak olarak kullanmanız yönündedir. Vpopmail kullanıcısı  olmak için  komut satırından

#su –vpopmail

Yazmalıyız.

 

Vadduser Kullanımı

 

Vadduser [secenekler]  email [parola]

en basit hali ile kullanımı bu şekildedir, bunlar haricinde

-q ile kullanıcıya kota belirleyebiliriz.

-n parolasız hesap oluşturabiliriz

-r otomatik değişken parola oluşturmasını sağlayabiliriz.( yahoo veya benzeri bazi sistemlerde sizin icin otomatik hazirlanan parolalari hatirladiniz degilmi?)

 

# vadduser huzeyfe@domain.com

Please enter password for huzeyfe@domain.com:

enter password again:

 

Vpasswd

 

Eklediğimiz bir kullanıcının parolasını değiştirmek istersek vpasswd programının kullanabiliriz, vpasswd’nin alacağı 2 parametre vardır bunlardan ilki parolası değiştirilecek kullanıcı adı diğeride o hesaba atamak istediğimiz parola vpasswd kullanıp bir mail hesabına parola atarken aşağıdaki 2 yöntemide kullanabilirsiniz. Birinci şeklin dezavantajı yazdığınız parola bir başkası tarafından history komutu aracılığı ile okunabilir.

 

# vpasswd mail_adresi parola 

yada

# vpasswd mail_adresi (den sonra enter a basarak)

bizden iki defa defa sifre sormasini saglayabiliriz.

Örnek;

#vpasswd huzeyfe@bizimev.net

Please enter password for huzeyfe@bizimev.net:

enter password again:

 

Vpoppbull

 

Bir domaine ait tüm kullanıcılara mail yollamak için kullanılır, vpopbull komutu ile mail sistemimizdeki tüm domainlere yada her bir domaine ayrı ayrı toplu mailler yollayabiliriz, mesela xyz.com kullanıcıları için özel bir uyarı maili atmak istersek bunu aşağıdaki biçimde yapabiliriz.

 

#vpopbull  –f /tmp/uyari – v  -e /tmp/xyz-haric xyz.com

 

Örnekte verdiğimiz parametreleri açıklayalım.

 

-f dosya_ismi : Toplu mail göndermek istediğimiz metni ibr dosyay yazarak bunu –f parametresi ile kullanmalıyız.

-e dosya_ismi, bazen bir domainteki tüm kullanıcılara değilde bazı özellikleri barındıran kullanıcılara mail atmak isteyebiliriz, mesela sirketinizdeki tüm kullancıılara uyarı maili atmak istiyorsunuz fakat bu mailin yöneticilere gitmesini istemiyorsunuz, işte maili almasını istemdiğiniz mail adreslerini bu dosyaya her biri bir satıra gelecek şekilde yazabilirsiniz.

-v    bu parametre ile yapılan işleri konsol ekranından izleyebilirsiniz.

 

xyz.com hangi sanal domaine toplu mail gönderimi yapılacağını belirler, burada herhangi bir domain ismi belirtmezseniz sistedem tanımlı tüm sanal domain kullanıcılarına göndermiş olursunuz.

 

 Bunların haricinde işinize yarayabilcek bir parametre(-n) daha  vardır ki o da genelde –v parametresi ile birlikte bir sanal domain yada tüm sanal domainlere ait kullanıcıları listelemeye yarar.

Bir domain ait tüm kullanıcıları listemele için

#vpopbull –v –n domain.ismi

 

Tüm tanımlı sanaldomain hesaplarını listelemek için

#vpopbull –v –n

 

Vaddaliasdomain

 

Abc.com diye bir domaininiz var ve bu domaine kayıtlı binlerce mail hesabını kullanan çalışanınız, gün geldi şirketiniz domain ismini değiştirmeye karar verdi yada şuanki halinden farklı bir domain kullanmak istedi(mail.abc.com gibi)bu durumda tüm kullanıcıları yeni domaine aynı hesap bilgileri ile eklemek zorundayız, işte vaddaliasdomain  burada yardımımıza koşarak bir domain adını başka bir domain adı olarak  tüm kullanıcı hesap bilgileri ile kullanabilmemize olanak sağlıyor.

 Yine verdiğimiz örnekten yola çıkarsak eskiden abc.com olan mail domainimiz mail.abc.com olarak değiştirildiyse tüm kullanıcıları herhangi bir değişiklik yapmaya zorlamadan

#vaddaliasdomain abc.com mail.abc.com

komutu ile yeni sisteme  aktarabiliriz.

 

Vdeluser

Basitce sistemde bulunan bir mail hesabını silmeye yarar.

#vdeluser huzeyfe@bizimev.net

 

Vdeldomain

sisteme eklediğimiz bir domain hesabını siler.

#vdeldomain bizimev.net

 

Vmoduser

Vmoduser ile kullanici yada domain uzerinde bircok degisiklik yapilabilir.

 

Vmoduser in genis  kullnimi icin komut satirina vmoduser yazmaniz yeterlidir. Vmoduser ile değişiklik yapabileceğiniz bazı özellikler

 

-q kota ile kota belirleyebiliriz

-u ile kullanıcının dial-up bağlantı ile maillerine erişememesini sağlayabiliriz

-p ile pop3 hizmeti kullanmasını engelleyebiliriz

-w ile webmail erisimini kısıtlayabiliriz

-i ile imap erisimi kısıtla

-a ile kullanıcıya qmailadmin arabirimini yönetici olarak kullanabilmesi hakkını atarız

 

Vuserinfo

Vuserinfo komutu ile kullanıcı hakkında geniş bilgi edinebilirsiniz. (sifreli parola ve acik parola dahil.)

Vuserinfo’nun en basit kullanımı

vuserinfo mail_adresi

şeklindedir, kullanabileceğiniz tüm seçenekleri görebilmek için

komut satırından

#vuserinfo yazmanız yeterlidir.

 

Örnek;

# vuserinfo huzeyfe@bizimev.net

name:   huzeyfe

passwd: $1$5A;mF$81hH5k56PFsDULWCJPWUG0

clear passwd: 098lkkjfguıyfgy878

uid:    0

gid:    0

        all services available

dir:       /home/vpopmail/domains/bizimev.net/huzeyfe

quota:     30000000S,50000C

usage:     0%

last auth: Sat Sep 25 23:52:11 2004

last auth ip: 192.168.0.3

 

Vdominfo

Bir domaine ait özellikleri öğrenmemize yarar

# vdominfo bizimev.net

domain: bizimev.net

uid:    520

gid:    522

dir:    /home/vpopmail/domains/bizimev.net

users:  60000

 

Kullanılabilecek parametreleri görmek için

#vdominfo -h komutunu kullanabilirisiniz.

 

Vpopmailin tanımında qmail’e bir eklenti olarak yazıldığıdan bahsetmiştik bu eklenti  qmail in çalışmasını az da olsa değiştirir. Yaptığı değişikliklerden en önemlisi Qmail’in standart onaylama mekanizmasini kendisininki ile değiştirmesidir.

 

Vpopmail de roaming user ozelligi ne işe yarar?

 

Eğer vpopmaili kurarken –roaming-user=y seçeneği ile derlediyseniz sisteminizde bu özelliği kullanabilirsiniz demektir, öntanımlı olarak vpopmail bu özellikten yoksun bir şekilde derlenmektedir. Roaming user ile mobile kullanıcılarımıza (farkli mekanlardan Outlook vb gibi mail istemcileri  ile baglanan )  kendilerini pop3 ile tanıttıktan(pop3 için istenen kullanıcı adı ve parolayı doğru girmek) sonra sonra belirledigimiz bir müddet  boyunca kullanıcının bağlandığı o IP adresine RELAY hakkı tanımaktan ibarettir

 

Böylece kullanıcı herhangi bir kısıtlama olmaksızın mail gönderebilir, böylece hem mail sunucumuzu SPAM aracı olmaktan çıkarmış oluruz hem de farklı yerlerden bağlanmak isteyen kullanıcılarımızı kendi üzerimizden mail haberleşmelerini sağlamış oluruz.

 

Bazı kaynaklarda bu özelliğe  pop-before-smtp denildiğini görebilirsiniz. Adından da anlaşılacağı üzere önce POP bağlantısı gerekir sonra smtp mekanizmasının kullanmasına izin verilir.

 

Pop-before-smtp(roaming-user ) olayı aşağıdaki gibi gerçekleşir

 

 

 

 

 

1- kullanici mail sunucuya pop3 erisimi icin girisimde bulunur. Username passwd onaylamasini gecer.

 

2 –vchkpw programi kullanicinin baglandigi ip adresini/home/vpopmail/etc/tcp.smtp dosyasina yazar. Burada tcp.smtp.cdb dosyasini bu adresini icerecek sekilde yeniden olusturun

 

3 boylece kullanici istedigi adrese rahatlikla mail gonderebilir duruma geliyor.

 

4 clearopensmtp  adindaki bir programi crontab a yazarak istedigimiz zaman aralıklarında çalıştırabiliriz. Bunun amacı belirlediğimiz süre  dolduğunda kullanıcının ip adresinin tcp.smtp dosyasından silinmesidir.

 

Crontab a asagidaki gibi girdi eklenebilir.

 

0  *  *   *  *   /home/vpopmail/bin/clearopensmtp

 

Bu girdi ile her saat başı clearopensmtp programının çalışmasını sağlıyoruz, yani mobile kullanıcılarımıza kendilerini pop3 ile onaylattıklarında bir saatlik bir relay izni vermiş oluyoruz.

 

Sistemimizi roaming-user   ozelliği ile derlediysek /home/vpopmail/etc/tcp.smtp adında bir dosya oluşmuş olmalıdır bu dosyanın içerisinde aşağıdaki gibi tanımlar yapabiliriz.

 

127.    :        allow   RELAYCLIENT =””

bu satir ile 127 ile baslayan tum ip adreslerine relay izni verdik.

10.1.0.17 ip adresine relay izni vermek icin yine bu dosyaya asagidaki satirlari eklememiz yeterlidir.

10.1.0.17     : allow , RELAYCLIENT =“”

 

NOT:vpopmail kullanici olarak huzeyfe@mail.net

yerine huzeyfe%mail.net veya huzeyfe-mail.net kullanabilir.

 

 

vpopmail’in sağladığı tüm programları görebilmek için /home/vpomail/bin dizinini inceleyebilirsiniz

 

# cd /home/vpopmail/bin/       

 

# ls

clearopensmtp    valias      vdelivermail  vipmap     vpasswd        vuserinfo

vaddaliasdomain  vchkpw      vdeloldusers  vkill      vpopbull

vadddomain       vconvert    vdeluser      vmkpasswd  vqmaillocal

vadduser         vdeldomain  vdominfo      vmoduser   vsetuserquota

Vpopmaili kurarken hangi özellikler ile kurabileceğinizi öğrenmek istiyosanız, vpopmailin kaynak dosyalarınmın bulunduğu dizinde ./configure --help komutunu vermeniz yeterlidir

 

Huzeyfe ÖNAL  huzeyfe[at]cc.kou.edu.tr   06/10/2004