Linux a sendmail kurulumu ve ayarları


Linux sendmail kurulumu,ayarları

.

Sendmail, dünya üzerinde en çok kullanılan mektup gönderme araçlarından biridir.

 

Ayarları:

/etc/sendmail.cf: Sendmail ana ayar dosyası. Bu dosya olmadan Sendmail calısmaz.

 

/etc/sendmail.cw: Makinanın hangi isimleri kabul edecegini belirleyen dosyadır. Eger birden fazla alan adını (hem web, hem de eposta servisini vermek icin) kontrol ediyorsanız, apache yanında sendmail’da da degisiklik yapmalısınız.

 

/etc/mail/relay-domains:Kullandıgınız makina üzerinden mektup gonderebilecek (relay)makinalarının IP adreslerinin, ya da isimlerinin tutuldugu dosyadır.

 

/etc/aliases: Alias dosyası. Herhangi bir kullanıcı adını başka bie ada yönlendirmek için kullanılır.

 

/etc/sysconfig/sendmail: Çalışan sendmail programının hangi parametreleri alacagı bu dosya yardımıyla belirlenir.

 

/etc/init.d/sendmail: Açılışta çalıştırılan dosya. Bu dosya bir bash betiğidir ve /usr/sbin/sendmail programını çeşitli ayarları yaptıktan sonra cagırır.

 

/etc/sendmail.cf Ayar Dosyası:

sendmail.cf, sendmail programı çalışırken okunur ve ertesindeki tüm ayarlar bu dosya kullanılarak yapılır. İlk başta karmalık gelen bu dosyada sadece birkaç notada değişiklik yapabiliriz. Diğer noktalara hiç dokunmamak gerekir, zira sendmail.cf dosyası oldukca naziktir, bir boşluk karakterinin bile önemi olabilir.

 

#file containing names of hosts for which we receive email

Fw/etc/sendmail.cw

 

Fw ile başlayan dosya yukarıda görüldügü gibi /etc/sendmail.cw. Daha ilerde de bahsedecegimiz bu dosya, makinaya hangi isimlerle (makine isimleriyle) mektup gelebilecegini belirtiyor.

 

# Hosts that will permit relaying ($=R)

FR –o /etc/mail/relay-domains

 

FR-o ile başlayan satır ise kullandıgınız makina üzerinden mektup gönderebilecek (daha yaygın adıyla röle olarak kullanılabilecek) makinaların IP adreslerinin, ya da isimlerinin tutuldugu dosyayı belirler. Öntanımlı olarak /etc/mail/relay-domains dosyası bu işlem için kullanılabilir. Biraz daha aşağıda örnek olarak bir /etc/mail/relay-domains dosyası anlatılacak.

 

/etc/sendmail.sw Ayar Dosyası:

sendmail.cw yukarıda da belirttigimiz gibi makinanın birden fazla adı varsa kullanılabilir. Ornek olarak elimizdeki makinanın adı (hostname) penguen, alan adı (domainname) ise sirketim.com olsun. Bu makinaya gelecek e-postalardan bir tanesi [email protected] , digeri de [email protected] olabilir. Eğer sendmail.c w dosyasında sirketim.com alan adını belirtmezsek bu alan adı kullanılarak gonderilen mektuplar alınmayacaktır. İlk başta garip g ve can sıkıcı gelse de sendmail in önemli bir ozelligidir.

 

Örnek:

$cat /etc/sendmail.cw

# sendmail.cw – include all aliases for your machine here.

Balik.sirketim.com

Penguen.sirketim.com

Sirketim.com

 

Yukarıdaki ornekte yer alan makinanın adı penguen.sirketim.com olsa da, gerekli DNS ayarları ile birlikte balik.sirketim.com adının da bu makinaya yonlendirilmis oldugunu anlıyoruz. Sendmail.cw dosyası da her üç makina adına (örnek olarak [email protected] , bilgi @ penguen.sirketim.com, [email protected] sirketim.com ) yollanacak olan mektuplarını kabul edecek şekilde ayarlanmıştır.

Tabi makinemiz sadece sirketim.com alanı uzerindeki epostaları almak yerine, bir sanal sunucu olarak da görev yapabilir. Bu durumda sendmail.cw dosyasında bu sanal sunucunun tamamını listelemek şart olur. Daha ileride sanal e-posta sunucusunun nasıl ayarlanacagını da detaylı olarak gosterecegim.

 

/etc/mail/relay-domains Ayar Dosyası:

Eger pop-3 ya da imap destegi verilecekse relay-domains dosyasına , bu servislerin alması gereken (beklenen) makina isimleri ya da IP numaraları yazılır. Böylece sadece onceden belirlenen IP adreslerindeki kullanıcıların pop3/imap servislerini kullanmaları garanti edilmiş olur. Buradaki liste sadece bizim makinamızı SMTP sunucusu olarak gostermek isterken gecerlidir. E-postaları sadece almak, ve yabancı bir makina üzerinden göndermek için relay-domains dosyasını düzenlemeye gerek yoktur.

Relay- domains dsyasına hem IP adresi, hem de alan isimleri yazılabilir. Asagıda bir kaç örnek satır yazdım, siz de bu orneği inceleyerek kandi agınızdaki yapınıza gore bir relay-domains dosyası olusturabilirsiniz.

 

#örnek /etc/mail/relay-domains dosyası

#pop ve imap servisinden yararlanabilerccek makinaların listesi

144.122.1.

212.5.34.0

sirketim.com.tr

sirketim.com

 

Yukarıdaki ornekte ilk satır. 144.122.1 IP numaraları ile baslayan, ikinci satır 212.5.34 ağı üzerinde bulunan, üçüncü ve dördüncü satırlar ise sırasıyla sirketim.com.tr ve sirketim.com ile biten alan isimlerine ait makianaların bu makina üzerinden mektup gonderebilecegini belirtir.

 

/etc/aliases Ayar Dosyası:

Diyelim ki bir şirkette bilgi işlem yöneticisisiniz. Patron size bir eposta hesabı açmanızı söyledi ve bu hesabın yönlendirilmesi gereken birden fazla kullanıcı olacagını belirtti. Hemen ornek verelim, siz muhasebe adında bir hesap acacaksınız ve bu adrese gelen mektuplar filiz, ahmet ve sezen adındaki kullanıcılara dagılacak. Yapılması gereken işlem oldukca basit. Muhasebe kullanıcının açılmasınıa gerek kalmadan, /etc/aliases dosyasının sonuna aşağıdaki satırı eklemek yeterli olacaktır.

 

Muhasebe:filiz, ahmet, mustafa

 

Diyelim ki bir takma isim (alias) daha tanımlayacaksınız ve fazladan muhasebe içindeki kullanıcıların bu tanım içerisinde bulunmasını istiyorsunuz.

Aşağıdaki ornek işinize yarayacaktırç

 

Satıs:muhasebe, osman, begum

 

Böylece satis hesabına gelen tm mektuplar filiz, ahmet, sezen, osman ve begum kullanıcılarına ayrı ayrı dagıtılacaktır. Ne satış, ne de muhasebe kullanıcılarının açılmasına gerek yoktur.

Herhangi bir takma isim yaratıldıgında mutlaka newaliases komutunu da çalıştırmalısınız. !!

 

#newaliases

/etc/aliases: 14 aliases, longest 10 bytes, 103 bytes total

 

Şimdi yeni ayarlar etkin durumdadır. /etc/aliases dosyası başka amaçlarla da kullanılabilir. Her açılan hesaba ait kullanıcıların adı ve soyadı, arasına bir nokta konularak yeniden e-posta hesabı yaratılacak şekilde tanımlanabilir:

 

Gorkem.cetin : gorkem

Filiz.cetin : filiz

 

Böylece daha kurumsal bir yapı olusturulmus olur. Normalde eger çok fazla (birkaçbin) kullanıcınız varsa her birisine bir numara atamak, daha az kullanıcının olması durumunda isim ve soyisim kombinasyonunun “ismin ilk harfi ile soyisminin tamamı” şeklinde kullanmak onerilir. (gorkem çetin için gcetin gibi)

 

/etc/sysconfig/sendmail Ayar Dosyası:

Bu dosyanın gorevi sadece sendmail programı calısırken verilecek olan parametreleri belirlemektir. Queue parametrei yes ise sendmail arkaplanda çalıştırılacak şekilde duzenlenir. Queue parametresi ise sendmailin kac saat (yada dakika) bir makinada tutulan ve gonderilmeyi bekleyen epostaları kuyruga yerleştireccegini soyler. Buradaki deger 1h’dir ve ornekte saat bası (h) postalar kuyruga girer. Genellikle sistem yoneticisisinin tanımladıgı deger 15 dakika ilse 1 saat arasındadır.

 

/etc/init.d/sendmail Ayar Dosyası

 

Bilgisayar açılırken bu bash dosyası betigi çalıştırılır ve sendmail programının çalıştırılmadan once gerekli kucuk ayarlar yaptırılır. Ayrıca sistem V standardına uyfun bir şekilde, sendmail programının o anki durumu gözlenebilir (status), programın çalıştırılması durdurulabilir (stop), program yeniden başlatılabilir (restart) ya da eğer sendmail çalışmıyorsa çalışması sağlanabilir. (start)

 

 

Sanal Postacı Ayarları

 

Nasıl ki apache ye sanal olarak bazı işlemleri yaptırıyorduk, istedigimiz kadar alan adını aynı makine üzerinde, hem de tek IP numarası üzerinde tutabiliyorduk, burada da aynı işlemleri sendmail için yapabiliyoruz. Sadece birkaç küçük işlem ile her sanal alan nıcı hesapları açabileceğiz

 

 

 

 

Diyelim ki elinizde gnulinux.com adresi var. Bu makina üzerinde hem pengueningucu.com, hem de benimlinuz.com adreslerini tutmak, ve adreslere karşılık gelen kişilerin mektuplarını da alabilmek istiyorsunuz. İsterseniz örneklerimiz bu üç örnek üzerinden yapalım.

 

Öncelikle DNSlerin düzgün bir şekilde ayarlanmış olması gereklidir. Bir başka deyişle, yukarıdaki üç alan adının MX kayıtları (Mail record) tanımlı ve üzerinde çalıştığımız sunucuya gönderilmesi şarttır. Aşağıdaki örnekte her alan için ayrı ayrı MX kayıtlarını inceliyorum.

 

$ nslookup

Default Server : gaga.sirketim.com.tr

Address : 212.45.76.93

 

ls -t MX gnulinux.org

[gaga.sirketim.com.tr]

$ORIGIN gnulinux.org.

@ 1D IN MX 0 gaga.sirketim.com.tr

 

ls –t MX pengueningucu.com

[gaga.sirketim.com.tr]

$ORIGIN pengueningucu.com

@ 1D IN MX 0 gaga.sirketim.com.tr

 

ls –t MX benimlinux.com

[gaga.sirketim.com.tr]

ORIGIN benimlinux.com

@ 1D IN MX 0 gaga.sirketim.com.tr

 

Her üç alanın da mektuplarını gaga.sirketim.com.tr adresi tutuyor. Burada bir sorun kalmadı.

İkinci olarak sendmaila daha önce acıkca belirttigimiz sekilde sendmail.cw dosyası üzerinden ne kadar sanal makina isteniyorsa tüm bu sanal makinaların bilgilerinin aktarılması gerekir. Mesela buornekte, /etc/sendmail.cw dosyasına aşağıdaki bilgileri yazmazsanız, sanal e-posta sunucularınız kesinlikle çalışmayacaktır.

 

#sendmail.cq – include all aliases for your machine here.

Pengueningucu.com

Gnulinux.com

Benimlinux.com

 

Şimdi bir dosya olusturacagız ve icine, sonradan degistirebilecegini de goze alarak sanal kullanıcıya gore ayarlanıp ayarlanamadıgını kontrol edelim. Aşağıdaki satırlar /etc/sendmail.cf’de mutlaka olmalıdır. Suse, mandrake ve red hat de bu satırlar bulunur.

 

#virtual user table (maps incoming users)

Kvirtuser hash –o /etc/mail/virtusertable

 

Yukarıdaki satırlar, sanal eposta hesaplarının /etc/mail/virtusertable dosyası içinde tutuldugunu belirtiyor. Şimdi bizim yapacagımız işlem onceliklebu dosyayı, yoksa bile açmak ve içöine sanal postalarımızı yerleştirmek. Hemen örnek birkaç eposta acalım.

 

# Örnek bir /etc/mail/virtusertable dosyası.

# Birinci kolon sanal e-posta adresin ikinci is sistemde bulunan kullanıcıyı işaret eder.

[email protected] gorkem

[email protected] mustafa

[email protected] deniz

 

Yukarıda yaklasık olarak ne tanımladıgmımızı anlamışsınızdır. Bu makinaya [email protected] olarak gelen hesapların yerel gorkem kullanıcısıza aktarılırken, [email protected] hesabı mustafaya, [email protected] adresine gelen mektuplar da deniz kullanıcısına gidecektir.

Son bir işlem daha yapmamız gerekiyor. Bunu ilkj sanal sunucu tanımı sırasında yapıyoruz, daha sonra kullanıcı ekledigimizde gerek duymuyoruz.

 

#cd /etc/mail

#makemap hash virtusertable virtusertable

 

Bu aşamadan sonra eklenecek her sanal kullanıcı (yerel kullanıcı degil!) virtusertablede tanımlanıyor ve sendmail yeniden calıstırııyor. Yerelkullanıcılara gelen hesap uzaktan imap ve/veya pop3 servisi üzerinden de denetlenebilir. Hepsi bu kadar.

 

POP3 ve IMAP Ayarları

 

Pop 3 ve imap servisi verebilmek için mutlaka sendmail’deki “relay” tanımlarını yapmış olmanız gerekiyor, böylece farklı Iplerdeki makinalar ana sunucunuz üzerinden e-posta gönderebileceklerdir.

 

Pop3 ve imap programlarının ikisi de imap paketi ile birlikte gelirle. Eger custom kurulum yapmışsanız, bu paketin kurulmaması ihtimali vardır, (rpm –aq) komutu ile yardımıyla sistemde kurulu dosyaların bir listesini alın ve imap paketinin kurulu oldugundan emin olun. Bir diger secenek ise dogrudan (rpm –qi imap ) komutu ile imap paketinin (varsa) tüm paket bilgilerini dogrudan ekrana cıkarmak. Eğer imap paketi sistemde bulunmuyorsa rpm –i imap-surumno.rpm komutu yardımıyla ya da fiziksel arayuzden cıkaracagınız kpackage (KDE) veya gnorpm (GNOME) ile kurun.

Imap ve pop3 servisini çalıştırmak için, setup komutunu kullanın. Setup komutunu verince ekrana gelen System services secenegi, sizi dogrudan dogruya açılışta çalıştırılacak olan sistem servislerinin listesine yönlendiri.

Bu pencerede vermek istediginiz servise göre imap ya da pop3 , veya her ikisini birden etkin duruma geçirebilirsiniz.

Xinetd’nin pop3 ve imap servislerini tekrar verebilmesi için yapılandırma dosyasını yeniden okuması şarttır. Bunun için her zaman başvurdugumuz service komutunu yeniden yazalım:

 

#service xinetd restart

stopping XINET services: [OK]

Starting XINET services: [OK]

 

Yapılan işlem xinetd’yi öldürmek ve tekrar başlatmak. Artık tüm ayarlar tamamdır, tek yapılması gereken sistemde kullanıcı acıp baska bir makinadan (yeniden uyarı: bu makinanın tanımı /etc/mail/relay-domains’de bulunmalıdır.) iletilerini denetlemektir.

Daha fazla..

Yorumlar