Merhaba Arkadaşlar,
Bu yazımda ücretsiz çözüm olan Centos Sendmail kurulumunu anlatacağım, bunun yanında elbette spam çözümü "spamassassin" ve elbette Web mail "squirrelmail " , Pop3, imap"Dovecot" , antivirüs clamav anlatacağım. Linux dünyasında işler farklı yürüyor her bir özellik ayrı bir proje olarak gönüllüler tarafından yazılıyor. internet'te malesef tümünü içeren bir kaynak yok böyle bir kaynak açığını görünce bunu yazıya dökmek istedim. özellikle sendmail ile ilgili yazı malesef yok denecek kadar az ve özellikle "SMTP AUTH" konusu hiç yok gibi bişey.
Çok uzatmadan hemen kuruluma geçiyorum.
Ben Temiz Centos 6.6 x64 kurulumu yaptım ,

Sunucuma rahat çalışmak için Puty kullandım ip den ssh ile eriştim.
Yum update komutunu çalıştırarak sunucumu update başlattım.

Update yapayımmı diye soruyor "y" enter tuşuna basıp geçiyorum.

aynı şekilde burayıda "y" basıp geçiyorum. temiz bir şekilde son update'lerini yapıyor.

ve görüldüğü gibi update tamamlanmıştır.

Linux'de security policy vardır rahat çalışmak için ben bunu kapatıyorum.

vim /etc/selinux/config
not : ben çok başarılı bulduğum vim editörünü kullanıyourm. güzel kullanışlıdır tavsiye ederim.

not : vim editörü ile açtığımız "vim /etc/selinux/config" config dosyasını klavyede edit tuşuna basarak satırları değiştirebiliyoruz. sorna klavyede "esc" tuşuna basıp
sırayla klavyede :wq yazıp enter tuşuna basıp kaydediyoruz. :w yazıp enter yaparsak kaydeder. :q çıkar , :q! kaydetmeden çıkar editörden.
SELINUX=enforcing olan satırı
SELINUX=disabled yapıp
:wq enter yapıp çıkıyoruz config dosyasından.

bu işlem sunucuyu restart gerektirir bu yüzden
reboot yazıp "enter" tuşuna basıyorum.

tekrar sunucuma bağlanıp sendmail kurulumuna başlatıyorum.
yum install sendmail sendmail-cf dovecot
y enter yapıyoruz.

default'da postfix kurulu gelir bu yüzden hemen postfix'i ortamdan kaldıralıım.
rpm -e postfix

postfix silindikten sonra.
sendmail config dosyasına giriyoruz. vim /etc/mail/sendmail.mc
ilk işimiz sunucunun hangi ip üzerinde çalışacağını belirtiyoruz.
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl default'da bu satır geliyor hemen altına aşağıdaki satırı ekliyoruz.
DAEMON_OPTIONS(`Port=smtp,Addr=192.168.6.12, Name=MTA')dnl
ekledikten sonra klavyede "esc" tuşuna basıyoruz sonra sırayla :wq yapıp kaydedip config dosyasından çıkıyoruz.
sendmail de 2 adet config dosya vardır senmail.mc dosyasında değişiklikleri yaparız sonra
/etc/mail/make
yapıyoruz ve sendmail.mc dosyası hazırlanıyor. çalışma dosyası sendmail.mc dosyasıdır. bu servis sendmail.mc üzerinde çalışır.

vim /etc/mail/local-host-names config dosyasına girelim.
burda hangi domainler çalıştırılacak onları yazıyoruz aslında kabul edilen alan adları "accepted domain" tabiri ile kabul edilecek domain yani benim 2 adet domainim var.
örn;
cemburakengin.com
cemburakengin.com.tr
bu iki alanıda burda eklemem lazım.

config dosyasını yazdıktan sorna yine kaydedip çıkıyoruz.
:wq
hemen ardından
service sendmail restart sendmail servisini restart ediyoruz.

netstat -punta | grep :25 ile 25 nolu port dinleniyormu görüyoruz, bir nevi kontrol ediyoruz.

şimdi sıra geldi RELAY bu config hakkında küçük bir bilgi vermek gerekirse
Relay izin vereceğin mail server'leri bu dosyaya yazarsın ve senin üzerinden mail atarlar, bunu yazarken dikatli olunuz. ben mesela bu networkte sürüsüne web server ve sürüsüne veritabanı sucunularım olduğu için bulunduğu networke izin verdim yani RELAY verdim. bu demek oluyorki user name ve parola kullanmadan bu sucunu üzerinden herhangibir hesap'dan veya domain'den mail atabilir.

ben 192.168.6. networküne relay verdim.
siz default'da bırakabilirsiniz.
değişiklik yaptıktan sonra :wq yazıp configten çıkınız.
hemen ardından
/etc/mail/make yazıp "enter" yapın config tekrar derlenmiş olsun.

tekrardan sendmail.mc config dosyasına girip bir kaç değişiklik yapmamız gerekicek.
vim /etc/mail/sendmail.mc

MASQUERADE_AS(`domain.com') burayı kendi alanınızı ekliceksiniz bu default olarak gönderici adresi ne olsun kısmı yani siz defaultda hangi domain olsun'u buraya ekliyorsunuz.
ardından hemen aşağıda görüldüğü gibi renkli satırlar kapalıdır "dnl" satırlarını silerseniz aşağıdaki gibi yaparsanız o satırlar aktif olacaktır.

satırlar arasında aşağıdaki satırıda bulup aktif hale getiriniz.("dnl" satırını silince aktif olacak "FEATURE("masquerade_envelope) dnl"

hemen ardından :wq kaydedip çıkın sonra aktif olması için
/etc/mail/make yazıp "enter" tuşlayıp çıkın.

ardından
service sendmail restart
"enter" basıp servisi restart ediyoruz.

şimdi ise spam yazılımı kuruyoruz.

y yazın "enter" tuşuna basıyoruz.

kurulum başlamaktadır.
kurulum bitince. vim /etc/procmailrc dosyasına girip (not: bu dosya normalde yoktur vim ile bu dosya açılmış oluyor.)
UMASK=077
LOGFILE="/var/log/procmail.log"
:0fw
| spamassassin
satırları ekliyip vim'de esc tuşuna basınca komut moduna geçiyor . hemen :wq yazıp "enter" basınca dosya oluşmuş ve içerisine satırlar eklenmiş oluyor.

clamav antivirüs kurulumu yapıcaz şimdi.
yum install clamav-milter komutunu çalıştırınca

görüldüğü gibi çalışmayacaktır. nedeni ise repo'su ekli değil bu yüzden şöyle bir yöntemle kuracağız.
rpm -ivh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm

yum install clamav-milter komutunu çalıştırınca

kurulduktan sonra servisi start ediyoruz.
service clamd start

kurulum yapıldıktan sonra .
vim /etcm/mail/sendmail.mc dosyasına ekliyelimki gelen maili taramaya başlasın.
INPUT_MAIL_FILTER(`clmilter',`S=local:/var/run/clamav/clamav-milter.sock, F=, T=S:4m;R:4m')

ekledikten sonra
hemen sırayla
/etc/mail/make "enter" basıyoruz.
service sendmail restart
aşağıda sırayla yaptım ve uyarı aldım diyorki clamav-milter.sock dosyası yok bende hemen
touch /var/run/clamav/clamav-milter.sock yazıp enter yapınca dosya oluştu.
service sendmail restart
yapınca düzgün bişekilde hata vermeden servisler stop oldu ve start oldu. tüm akış aşağıda görülmektedir.

pop3 ve imap aktif etmek için
vim /etc/dovecot/conf.d/10-auth.conf configurationa giriniz.

disable_plaintext_auıth = no şekilde yazınız. aşağıdaki şekilde olacaktır.

vim /etc/dovecot/conf.d/10-mail.conf

mail_location başlayan satırı bulunuz belirtilen kısmı aktif etmek için başında # yazısını silince aktif olmuş olacaktır.

netstat -punta | grep 143

anlıyoruzki imap servisi çalışyor aktif.
şimdi sırayla şu komutları çalıştırıyoruz.
chkconfig clamd
chkconfig sendmail on
chkconfig dovecot on
konu firewall konusu olduğu için ben kapatıyorum bu servisleri siz isterseniz açıp porta izin verme yapabilirsiniz.
chkconfig iptables off
chkconfig ip6tables off
tekrar sendmail ana config dosyamıza giriyoruz.
"Bu düzenleme smtp Authentication aktif etmek için yapılan işlemdir."
vim /etc/mail/sendmail.mc
conflog kısmını başındaki dnl satırını silip aktif edelip ve 9 olan level'i 14 yapalım debug moda alalım. loglar ayrıntılı olsunki bişey olduğunda /var/log/maillog dosyasında görelim.
işaretlediğim alanları düzenleyelim.

bu işlemden sonra /etc/mail/make yapıp config dosyasını derliyoruz.
ardından
vim /etc/sasl2/sendmail.conf (bu dosya yoktur yine vim editörü ile böyle bir dosya oluşturmuş oluyor içine girip )
pwcheck_method:saslauthd
satırı yazıp kaydedip çıkıyoruz.
:wq

service sendmail restart

herşey yolunda giderse hesap açalım.

outlook ile deniyorum "imap" ve "smtp auh" ve başarılı görüldüğü gibi.

buna birde Webmail eklesek daha güzel olmazmıydı. hadi yapalım o zmaan.
wget http://downloads.sourceforge.net/project/squirrelmail/stable/1.4.22/squirrelmail-webmail-1.4
rpm -ivh epel-release-6-8.noarch.rpm
yum install squirrelmail

kurulum yapıldıktan sonra servis start yapmamız gerekiyor.
service httpd start
chkconfig httpd on başlangıçta start olsun diye komutu çalıştırıyoruz.

vim /etc/httpd/conf/httpd.conf bu apache config dosyasıdır biz webmail için squirrelmail yükleyince apache serviside kurulmuş oldu.

config dosyasına girince satırın en sonuna
<Directory /usr/share/squirrelmail>
Options Indexes FollowSymLinks
RewriteEngine On
AllowOverride All
DirectoryIndex index.php
Order allow,deny
Allow from all
</Directory>
ekleme yapıyoruz.

"esc" :wq sırasıyla yapıp config dosyasından çıkıyoruz.
http://serverip/webmail
serverip = sunucu ip 'sidir.
girdiğinizde aşağıdaki hatayı alabiliriz.

vim /etc/dovecot/conf.d/10-mail.conf

mail_access_groups = mail bu satırı bulup aktif ediyoruz yok ise yazıyoruz bu satırı.

hemen ardından tekrar giriş yaptığpımda webmail'e bakalım aynı hatayı alacakmıyız.

hatasız webmail'e girmiş bulunmaktayım hemen test maili attığımda geldiğini gördüm.

linux Centos' ile ücretsiz ve aynı zamanda sağlam bir yapınız olmuş oldu. antispam, antivirüs, imap,pop3,webmail gibi bir sürü servisi bir arada barındıran ve çok yüksek donanım maliyetleri gerektirmeyen bir sistem kurmuş olduk.
bir yazımın daha sonuna geldik, umarım bu yazımla sizlere faydam olmuş olur.
sorularınız olduğun'da hiç çekinmeden burdan yazabilirsiniz.
selamlar,