coolwolf / 01/12/2010

Centos ile Spam+Antivirüs içeren Exchange için Mail Gateway

Bu yazıda Centos ile antispam gateway kurulumunu tamamlayacağız. Bu gateway’i exchange, lotus notes, mailenable, hmailserver, qmail gibi tüm eposta sunucularıyla kullanabilirsiniz.
Öncelikle sendmail’i durdurmalıyız.

service sendmail stop

ile sendmaili durduruyoruz

chkconfig sendmail off

komutu da sendmail’in açılışta çalışmasını engelliyor

yum install postfix

komutu ile postfix’i kuruyoruz.
Ardından /etc/psotfix/main.cf dosyasında aşağıdaki değişiklikleri yapıyoruz:

myhostname = altalan.alanadi.com.tr
mydomain = altalan.alanadi.com.tr
myorigin = $mydomain
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain $mydomain
mynetworks_style = host
relay_domains = alanadi.com.tr
transport_maps = hash:/etc/postfix/transport
append_at_myorigin = no

/etc/postfix/transport dosyasına şu satırı ekliyoruz

alalanadi.com.tr                smtp:[exchange server ip'si]

postmap /etc/postfix/transport koumutu ile postfix’in transport dosyasını indekslemesini sağlıyoruz.

service postfix stop
service postfix start

komutlarıyla da yaptığımız değşiklikleri aktif hale getiriyoruz.
Lütfen bu aşamada maillerin exchange’e ulaştığından emin olun. Hataları sonra düzeltmek daha zor olacaktır.
NOT: Ayrıca altalan.alanadi.com.tr ismine dikkat edin. Exchange sunucusu da kendisini aynı şekilde tanıtırsa postfix mailleri exchange’e teslim etmeyecektir.
Örn: Linux makinanın adını mail.egeonline.com yazmşsam ve exchange sunucusu da kendisini mail.egeonline.com olarak tanıtırsa, linux üzerinde kurulu postfix mailleri teslim etmeyecektir. Bu sorunun çözümü için şöyle yapabiliriz:
Eğer exchange sunucumuzun adı mail.egeonline.com ise, linux sunucunun adını linux.egeonline.com şeklinde ayarlayın. Alan adımız yani $mydomain egeonline.com oalcağı için sorun çıkmaz.
Eğer
Recipient address rejected: User unknown in local recipient table;
şeklinde bir hata alırsanız mydomain değişkenini myhostname ile aynı yapmayı deneyin.
MailScanner kurulumu
http://mailscanner.info adresinden sisteminize ait dosyayı indiriniz.

tar zxvf MailScanner-versiyon.tar.gz

komutuyla mailscanner’ı açıyoruz.
sonra da

cd  MailScanner-versiyon

komutuyla bu dizine giriyoruz.

./install

komutu sizin için gerekli kurulumları yapacaktır. Eğer eksik bir bileşen varsa bunu kurmanız için sizi uyaracaktır.
Bende rpm-build paketi eksikti. yum install rpm-build komutuyla bu paketi kurdum.

chkconfig --list | grep MailScanner

komutuyla kurulumun durumunu kontrol edelim. Çıktı şu şekilde olmalıdır :

MailScanner
0:kapalı       1:kapalı       2:açık        3:açık       4:açık 5:açık        6:kapalı
chkconfig postfix off

komutuyla postfixi devreden çıkarıyoruz. MailScanner postfix’i kendisi çalıştıracaktır.
/etc/postfix/main.cf dosyasına

header_checks = regexp:/etc/postfix/header_checks

satırını ekliyoruz.
/etc/postfix/header_checks dosyasına:

/^Received:/ HOLD

satırını ekliyoruz.
/etc/MailScanner/MailScanner.conf dosyasında aşağıdaki değişikikleri yapıyoruz

Run As User = postfix
Run As Group = postfix
Incoming Queue Dir = /var/spool/postfix/hold
Outgoing Queue Dir = /var/spool/postfix/incoming
MTA = postfix

Sonra da MailScanner çalışma dizinlerinin sahipliklerini değiştiriyoruz:

chown postfix.postfix /var/spool/MailScanner/incoming
chown postfix.postfix /var/spool/MailScanner/quarantine
service MailScanner restart

komutuyla mailscanner’i yeniden çalıştırıyoruz.
Bu aşamada tekrar mail alıp gödnermeyi deneyiniz. Bir hata var ise büyümeden düzeltmek zamanımızı kurtaracaktır.
Spamassassin
http://dag.wieers.com/rpm/packages/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
dosyasını indirerek rpmforge repo’sunu repo lsitemize ekliyoruz

yum install perl-Digest-SHA1 perl-HTML-Parser perl-MIME-Base64 perl-Net-DNS perl-Mail-SPF-Query perl-Time-HiRes perl-DB_File

komutuyla gerekli perl modüllerini kuruyoruz

yum install spamassassin

komutu da spamassassin kurulumunu bizim için yapacaktır.
Kurulum tamamlandıktan sonra /etc/MailScanner/MailScanner.conf dosyasına:

SpamAssassin User State Dir = /var/spool/MailScanner/spamassassin

komutunu ekliyoruz. Yada zaten vasrsa bu şekle gelmesini sağlıyoruz.
Ardından şu komutları çalıştırıyoruz:

mkdir /var/spool/MailScanner/spamassassin
chown postfix.postfix /var/spool/MailScanner/spamassassin
service MailScanner restart

komutuyla mailscanner’ı yeniden başlatıyoruz.
ClamAV
Sıra geldi clamav kurulumuna

groupadd clamav
useradd -g clamav -s /bin/false -c "Clam AntiVirus" clamav
wget http://dag.wieers.com/rpm/packages/clamav/clamav-0.92.1-1.el5.rf.i386.rpm
wget http://dag.wieers.com/rpm/packages/clamav/clamav-db-0.92.1-1.el5.rf.i386.rpm
wget http://dag.wieers.com/rpm/packages/clamav/clamd-0.92.1-1.el5.rf.i386.rpm

clamav’ın centos 5 rpm’leri yukarıdaki adreste verilmiştir.
ardından gerekli perl modüllerini sistemimize yüklüyoruz

yum install perl-Parse-RecDescent perl-Inline perl-Mail-ClamAV
service clamd start

komutuyla clamavı başlatıyoruz.

freshclam

komutuyla clamav veritabanını güncelliyoruz.
/etc/MailScanner/MailScanner.conf dosyasına clamav’ı kullanmasını söylüyoruz:

'Virus Scanners = clamav'

ve

Monitors for ClamAV Updates = /var/clamav/*.inc/* /var/clamav/*.cvd

ile güncellenmiş dosyaların yerşni bildiriyoruz.
Artık Exchange’inizin önünde bir spam ve antivirüs tarayıcısı var.
Güle Güle Kullanın