Exchange Server Üzerinde E-Postalar Hangi Transport Rule Üzerinden İletildiğini Bulma

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

FEATUREMİCROSOFT 365 BUSİNESS BASİCMİCROSOFT 365 BUSİNESS STANDARDMİCROSOFT 365 BUSİNESS PREMİUMOFFİCE 365 ENTERPRİSE E1OFFİCE 365 ENTERPRİSE E3OFFİCE 365 ENTERPRİSE E5OFFİCE 365 ENTERPRİSE F3
Maximum number of journal rules300 rules300 rules300 rules300 rules300 rules300 rules300 rules
Maximum number of transport rules300 rules300 rules300 rules300 rules300 rules300 rules300 rules
Maximum size of an individual transport rule8 KB8 KB8 KB8 KB8 KB8 KB8 KB
Character limit for all regular expressions used in all transport rules20 KB20 KB20 KB20 KB20 KB20 KB20 KB
Scanning limits for content of attachments1 MB1 MB1 MB1 MB1 MB1 MB1 MB
Maximum number of recipients added to a message by all transport rules100 recipients100 recipients100 recipients100 recipients100 recipients100 recipients100 recipients
Forwardee limit10 recipients10 recipients10 recipients10 recipients10 recipients10 recipients10 recipients
Number of times a message is redirected1 redirection1 redirection1 redirection1 redirection1 redirection1 redirection1 redirection
Number of times a message is redirected by transport rules1 redirection1 redirection1 redirection1 redirection1 redirection1 redirection1 redirection
Number of times a message is redirected1 redirection1 redirection1 redirection1 redirection1 redirection1 redirection1 redirection
Inbox rule256kb1256kb1256kb1256kb1256kb1256kb1256kb1

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.

Exit mobile version