Merhaba, ortamınız da bulunan Exchange Server üzerinden iletilen maillerin hangi transport rule üzerinden aktarıldığını veya hangi transport rule yüzünden engellendiğini zaman zaman bulmak isteyebilirsiniz.
Bir tane rule yüzünden ortamınızda ki tüm rule‘leri Disable etmek istemezsiniz. Asıl konumuza girmeden önce transport rule nedir? Ne işe yarar? bunlara göz atalım.
Transport Rule Nedir?
Teknolojinin gelişme ile beraber E-Mail kullanımı oldukça arttı, aslında artmak ile kalmadı günümüz de neredeyse her bireyin bir e-mail adresi bulunmakta. Bununla beraber e-mail güvenliği de ön plana çıkmaktadır. Güvenlik denilince akla gelen ilk maddelerden birisi “Kural”dır. Peki, Exchange Server üzerinde bu kuralları nasıl oluşturabiliyoruz, ECP üzerinden Transport Rule oluşturarak. Transport Rule üzerinden oluşturulan tüm politikaları biz belirtiyoruz ve bizim oluşturduğumuz senaryoya göre çalışıyorlar, tabi bu kuralları tetikleyecek abi politikalar bulunuyor. Bunun için her kuralı en ince detayına göre düşünmeniz gerekiyor.
Bu arada Exchange Server üzerinde Transport rule oluşturma işlemi 3.ayrı madde olarak sınıflandırabiliriz.
Yeni Transport Rule Oluşturma:
Yeni kural sihirbazı, Exchange Server üzerinde, yalnızca + düğmesini tıklarsınız, Yeni Kural sihirbazı başlar ve açılır listelerdeki kullanılabilir koşulların ve eylemlerin sınırlı bir alt kümesini ortaya çıkarır.
Şablonlara Dayalı Yeni Transport Rule Oluşturma: Yeni Kural sihirbazı davranışına ek olarak, bir tür şablonu temel alan yeni bir kural da oluşturabilirsiniz. + simgesinin yanındaki küçük oka tıklandığında, başlamanıza yardımcı olmak için yaygın kural türlerinden oluşan bir menü sunmaktadır.
Zamana Dayalı Taşıma Kuralları:
Exchange server transport role özelliğinin bir diğer kullanışlı özelliği, kuralın etkinleştirilmesi ve devre dışı bırakılması için belirli tarihler ayarlama seçeneğinin olmasıdır.
Not: Exchange Online için Transport Rule limiti 300’dür. 301. kuralı oluşturmak istediğiniz portal size hata verecektir.
Mail flow rules in Exchange Server | Microsoft Docs
Journal, transport, and inbox rule limits
FEATURE | MİCROSOFT 365 BUSİNESS BASİC | MİCROSOFT 365 BUSİNESS STANDARD | MİCROSOFT 365 BUSİNESS PREMİUM | OFFİCE 365 ENTERPRİSE E1 | OFFİCE 365 ENTERPRİSE E3 | OFFİCE 365 ENTERPRİSE E5 | OFFİCE 365 ENTERPRİSE F3 |
---|---|---|---|---|---|---|---|
Maximum number of journal rules | 300 rules | 300 rules | 300 rules | 300 rules | 300 rules | 300 rules | 300 rules |
Maximum number of transport rules | 300 rules | 300 rules | 300 rules | 300 rules | 300 rules | 300 rules | 300 rules |
Maximum size of an individual transport rule | 8 KB | 8 KB | 8 KB | 8 KB | 8 KB | 8 KB | 8 KB |
Character limit for all regular expressions used in all transport rules | 20 KB | 20 KB | 20 KB | 20 KB | 20 KB | 20 KB | 20 KB |
Scanning limits for content of attachments | 1 MB | 1 MB | 1 MB | 1 MB | 1 MB | 1 MB | 1 MB |
Maximum number of recipients added to a message by all transport rules | 100 recipients | 100 recipients | 100 recipients | 100 recipients | 100 recipients | 100 recipients | 100 recipients |
Forwardee limit | 10 recipients | 10 recipients | 10 recipients | 10 recipients | 10 recipients | 10 recipients | 10 recipients |
Number of times a message is redirected | 1 redirection | 1 redirection | 1 redirection | 1 redirection | 1 redirection | 1 redirection | 1 redirection |
Number of times a message is redirected by transport rules | 1 redirection | 1 redirection | 1 redirection | 1 redirection | 1 redirection | 1 redirection | 1 redirection |
Number of times a message is redirected | 1 redirection | 1 redirection | 1 redirection | 1 redirection | 1 redirection | 1 redirection | 1 redirection |
Inbox rule | 256kb1 | 256kb1 | 256kb1 | 256kb1 | 256kb1 | 256kb1 | 256kb1 |
Exchange Server üzerinde iletilen bir e-mail’in hangi Transport Rule üzerinden geçtiğini nasıl bulabiliriz?
Oluşturmuş olduğunuz bir transport rule, size iletilen bir e-postayı red edebilir ya yada iletiyi önemsiz klasörüne gitmesine sebebiyet verebilir. Bu durumda iletinin hızlıca hangi transport rule üzerinden geçtiğini bulmamız gerekiyor.
Senaryomuz şu şekilde: Cengiz, Ahmet kullanıcısına “Deneme Mail’i Cengiz” konulu bir eposta gönderiyor. Bu e-posta Ahmet kullanıcısının önemsiz klasörüne düşüyor ve konu başlığı değişmiş bir şekilde düşüyor.
EMS üzerinden TrackingLog ile MessageID’yi buluyoruz. (Konumuz bu olmadığı için TrackingLog detayına girmiyorum.)
TrackingLog ile öğrenmiş olduğum MessageID değerimi aşağıdaki komutla beraber çalıştırıyorum.
$logs = Get-TransportServer | Get-MessageTrackingLog -MessageId "<a10d8434b47f4caea4afb3c9bc41b861@EXC2019.cozumpark.com.tr>" -Start (Get-Date).AddDays(-1) -ResultSize Unlimited
Sonrasın da ise EVENT’leri zamana göre sıralıyorum ve EventId, Source ve MessageSubject alanlarına bakıyorum (çünkü mailin konusu değiştiğini biliyoruz)
$logs | Sort timestamp | Select eventid,source,messagesubject
EventId Source MessageSubject
------- ------ --------------
RECEIVE STOREDRIVER Deneme Mail'i Cengiz
HAREDIRECT SMTP Deneme Mail'i Cengiz
RECEIVE SMTP Deneme Mail'i Cengiz
SUBMIT STOREDRIVER Deneme Mail'i Cengiz
AGENTINFO AGENT CozumPark Deneme Mail'i Cengiz
DELIVER STOREDRIVER CozumPark Deneme Mail'i Cengiz
SEND SMTP CozumPark Deneme Mail'i Cengiz
HADISCARD SMTP Deneme Mail'i Cengiz
AGENTINFO sırasında mail konu başlığının değiştiğini görmekteyiz. Şimdiki komutumuzu “AGENTINFO” üzerinden çalıştırabiliriz.
[PS] C:\>$logs | where {$_.eventid -eq "AGENTINFO"} | fl
RunspaceId : 328245b3-31a5-4c0c-ac83-4f225b3c7be7
Timestamp : 25.05.2022 8:45:50 AM
ClientIp :
ClientHostname : EX2019
ServerIp :
ServerHostname :
SourceContext : CatContentConversion
ConnectorId :
Source : AGENT
EventId : AGENTINFO
InternalMessageId : 9680856285253
MessageId : <a10d8434b47f4caea4afb3c9bc41b861@EXC2019.cozumpark.com.tr>
Recipients : {ahmet@cozumpark.com.tr}
RecipientStatus : {}
TotalBytes : 7765
RecipientCount : 1
RelatedRecipientAddress :
Reference :
MessageSubject : CozumPark Deneme Mail'i Cengiz
Sender : cengiz@cozumpark.com.tr
ReturnPath : cengiz@cozumpark.com.tr
Directionality : Originating
TenantId :
OriginalClientIp : 192.168.3.200
MessageInfo :
MessageLatency :
MessageLatencyType : None
EventData : {[AMA, SUM|v=0|action=|error=|atch=0], [AMA, EV|engine=M|v=0|sig=1.213.5104.0|name=|file=],
[AMA, DT|ST=10|PT=0|TT=21.2478], [TRA, ETRI|MsgType=Undefined|Ex=|IsKnown=], [TRA,
ETR|ruleId=1f23tt44-1cb9-4293-c77d-5e333a12fc9v|st=25.05.2022 8:45:50
AM|action=PrependSubject|sev=1|mode=Enforce], [TRA,
ETRP|ruleId=1f23tt44-1cb9-4293-c77d-5e333a12fc9v|ExecW=38|ExecC=31], [CompCost,
|AMA=0|ETR=0], [DeliveryPriority, Normal], [AccountForest, cozumpark.com.tr]}
EventData alanında bulunan action=PrependSubject ve ruleId=1f23tt44-1cb9-4293-c77d-5e333a12fc9v kısımlarına dikkat ediyoruz. Bir sonraki komutumuzda RuleID değerini kullanarak ilgili TransportRule’yi öğreneceğiz.
[PS] C:\>Get-TransportRule -Identity 1f23tt44-1cb9-4293-c77d-5e333a12fc9v
Name State Mode Priority Comments
---- ----- ---- -------- --------
Cengiz - Ahmet Enabled Enforce 0 ...
İlgili kural ile daha detaylı bilgiye bakalım
[PS] C:\>Get-TransportRule -Identity 1f23tt44-1cb9-4293-c77d-5e333a12fc9v | select description | fl
Description : If the message:
Is sent to 'ahmet@cozumpark.com.tr'
and Is received from 'cengiz@cozumpark.com.tr'
Take the following actions:
Prepend the subject with 'CozumPark'
Ortamınız da bulunan kuralları bulmak istediğiniz de bu yöntemi uygulayabilirsiniz.