|
# Bu erişim denetim listesi gelen bir SMTP aktarımında ileti verisi # tamamen alındıktan sonra kullanılır. Bu sınamalar alıcı adresi # kabul ya da red edilinceye kadar sırayla yapılır. acl_data: # Bazı başlık satırlarını günlüğe kaydedelim. warn logwrite = Subject: $h_Subject: # İleti kendi konaklarımızdan alınmış ve Message-ID başlığını # içermiyorsa, onu biz ekleyeceğiz. warn condition = ${if !def:h_Message-ID: {1}} hosts = +relay_from_hosts message = Message-ID: <E$message_id@$primary_hostname> # Posta yerel SMTP üzerinden alınmışsa (yani, TCP/IP bağlantısı # ile gelmiyorsa), kabul ediyoruz. Bunu boş bir konak alanını # sınayarak yapacağız. Ayrıca, postalarını rölelediğimiz # konaklardan gelen postaları da kabul edeceğiz. # accept hosts = : +relay_from_hosts # İleti, kimlik kanıtlaması yapılan bir bağlantı üzerinden # geliyorsa kabul ediyoruz. # accept authenticated = * # Eğer $acl_m0'da kayıtlı bir sebep varsa, göndericiyi 20 saniye # beklettikten sonra reddediyoruz. # deny message = $acl_m0 log_message = $acl_m1 condition = ${if and {{def:acl_m0}{def:acl_m1}} {true}{false}} delay = 20s # İleti uzunluğu sınırlamasını devreye sokalım. # deny message = Message size $message_size is larger than limit of \ MESSAGE_SIZE_LIMIT condition = ${if >{$message_size}{MESSAGE_SIZE_LIMIT}{yes}{no}} # Başlıktaki adreslerin sözdizimi hatalıysa reddediyoruz. # deny message = Your message does not conform to RFC2822 standard log_message = message header fail syntax check !verify = header_syntax # Message-ID:, Date: veya Subject: başlıklarından biri olmayan bir # ileti dışardan gelmişse reddetmek için aşağıdaki satırları devreye alın. # # Bazı özelleştirilmiş posta aktarımcılarının, örneğin posta listesi # sunucularının boş gönderici adresi ile gönderdikleri postalara # kendiliklerinden bir Message-ID üretmedikleri bilinmektedir; # böyle durumlar için boş bir gönderici adresin varlığına da bakacağız. # #deny # message = Your message does not conform to RFC2822 standard # log_message = missing header lines # !hosts = +relay_from_hosts # !senders = : postmaster@* # condition = ${if !eq {$acl_m0}{accept}{true}} # condition = ${if or {{!def:h_Message-ID:}\ # {!def:h_Date:}\ # {!def:h_Subject:}} {true}{false}} # "Sender:", "Reply-To:" veya "From:" satırlarından en azından birindeki # gönderici adres doğrulanabilir değilse, bir uyarı veriyoruz. # warn message = X-Sender-Verify-Failed: No valid sender in message header log_message = No valid sender in message header !verify = header_sender # -------------------------------------------------------------------- # Burada, zarf gönderici adresi olmayan iletilere grilisteleme # uygulayacağız. Bunları RCPT TO:'dan sonra grilistelemeye konu # etmeyeceğiz, çünkü gönderici varlık doğrulamaları yaparken # karşı konaklarla olumsuz etkileşime girilebilir. # # Bu deyimi devreye almadan önce "greylistd" kurmuş olmalısınız. # Bkz: http://packages.debian.org/unstable/main/greylistd # #defer # message = $sender_host_address is not yet authorized to send \ # delivery status reports to <$recipients>. \ # Please try later. # log_message = greylisted. # senders = : postmaster@* # condition = ${if !eq {$acl_m0}{accept}{true}} # set acl_m9 = $sender_host_address $recipients # set acl_m9 = ${readsocket{/var/run/greylistd/socket}{$acl_m9}{5s}{}{}} # condition = ${if eq {$acl_m9}{grey}{true}{false}} # delay = 20s # -------------------------------------------------------------------- # --- EXISCAN yapılandırmasının BAŞLANGICI --- # Birtakım MIME hataları olan iletileri reddedeceğiz. # deny message = Serious MIME defect detected ($demime_reason) demime = * condition = ${if >{$demime_errorlevel}{2}{1}{0}} # MIME taşıyıcıyı aç ve kurtlar tarafından kullanılan dosya uzantıları # varsa reddet. Bu çağrılar tekrar demime uygulayacaktır, ama sonuçlar # arabellekli olarak dönecektir. Uzantı listesinin eksik olabileceğini # unutmayın. # deny message = We do not accept ".$found_extension" attachments here. demime = bat:btm:cmd:com:cpl:dll:exe:lnk:msi:pif:prf:reg:scr:vbs:url # İletinin boyutu MESSAGE_SIZE_SPAM_MAX'dan büyükse spam veya virüs # taraması yapmaksızın kabul ediyoruz. accept condition = ${if >{$message_size}{MESSAGE_SIZE_SPAM_MAX} {true}} logwrite = :main: Not classified \ (message size larger than MESSAGE_SIZE_SPAM_MAX) # -------------------------------------------------------------------- # Antivirüs taraması # Ana bölümde bir 'av_scanner' tanımı yapmış olmanız gerekir. # #deny # message = This message contains a virus ($malware_name) # demime = * # malware_name = */defer_ok # -------------------------------------------------------------------- # $spam_score ve $spam_report'a veri sağlamak için SpamAssassin'i # çağıracağız. Tasnife bağlı olarak, $acl_m9 "ham" veya "spam" # değerini alacak. # # İleti spam olarak tasnif edilmişse ve evvelce $acl_m0'ı iletiyi ne # olursa olsun kabul edeceğimizi belirtecek şekilde ayarlamamışsak, # iletiyi reddetmiş gibi yapacağız. # warn set acl_m9 = ham # ------------------------------------------------------------------ # SpamAssassin için kullanıcı bazında ayarların kullanımını mümkün # kılmak için aşağıdaki satırı devreye alıp "spam = mail" satırını # iptal ediniz. # Alıcı adresinin kullanıcı adını SpamAssassin'e aktaralım. # Bunun için adresin '=' veya '@' karakterinden önceki kısmını # küçük harfe dönüştüreceğiz. Evvelce bir defadaki alıcı sayısını # önceden bir ile sınırladığımızdan çok sayıda alıcı olmayacak. # # spam = ${lc:${extract{1}{=@}{$recipients}{$value}{mail}}} # ------------------------------------------------------------------ spam = mail set acl_m9 = spam condition = ${if !eq {$acl_m0}{accept}{true}} control = fakereject logwrite = :reject: Rejected spam (score $spam_score): $spam_report # İletinin başlığına bir X-Spam-Status: satırı ekleyelim. # warn message = X-Spam-Status: \ ${if eq {$acl_m9}{spam}{Yes}{No}} (score $spam_score)\ ${if def:spam_report {: $spam_report}} logwrite = :main: Classified as $acl_m9 (score $spam_score) # --- EXISCAN yapılandırmasının SONU --- # İletiyi kabul ediyoruz. # accept
|