Relay Nedir? Exchange Server Relay Yapısı

İçindekiler

  1. Relay Nedir?
    1. E-Mail Relay İşleminin Postane Benzetmesi
    2. Günlük Yaşantıda Relay Kullanımı
  2. Open Relay
  3. Authenticated Relay
  • Exchange Server 2019 Internal Relay Adımları
    1. Exchange Server Internal Relay Connectorü Telnet Adımları
  • Exchange Server 2019 External Relay Adımları
    1. Exchange Server’da Authentication Kullanarak External Relay Adımları
  • Exchange Server 2019’da Connector için Anonymous Yapılandırılması
  • Relay Güvenliği
  • Authentication
  • Merhaba, bu yazımızda Exchange Serverın Relay yapısını ele alacağız. E-posta servisleri, her kurum ve birey için vazgeçilmez bir iletişim aracıdır. E-posta göndermek kullanıcılar için basit bir işlem gibi görünse de, bu işlemin arka planında MTAMUA ve RELAY gibi önemli kavramlar bulunmaktadır.

    Relay Nedir?

    Relay, gönderilen iletilerin alıcılara ulaştırılmasını sağlayan araçtır. Bu süreçte, kullanıcılarımızın mail sunucularına bağlandığı yazılımlar MUA (Mail User Agent) olarak, mail sunucularımız ise MTA (Mail Transfer Agent) olarak adlandırılır. MUA, hedefe e-posta göndermek istediğinde bu talebi MTA‘ya iletir; MTA ise gelen bilgileri doğrular ve Relay işlemini gerçekleştirir.

    E-Mail Relay İşleminin Postane Benzetmesi

    E-mail Relay işlemini daha iyi anlamak için postane örneğini kullanabiliriz: Bir paket göndermek istediğimizde, paketin üzerine alıcı ve iade adresi yazılır ve yerel postaneye teslim edilir. Yerel postane, paketi alıcı adresinin bulunduğu bölgedeki postaneye yönlendirir. Alıcı postane ise paketi belirtilen adrese teslim eder. Eğer teslimat gerçekleşmezse, paket iade adresine geri gönderilir.(Burada adres benzetmesi, Relay işlemi de benzer şekilde, MUA’nın isteği MTA’ya iletilir ve ileti, alıcının MTA’sına teslim edilir. MTA, iletiyi alıcının e-posta adresine göre tanımlar ve MUA’ya iletir.

    Günlük Yaşantıda Relay Kullanımı

    Relaykavramı, günlük iş akışlarımızda birçok farklı serviste yer alır. Örneğin, backup, SIEM ve ERP sistemleri gibi çeşitli yazılım platformlarından alınan günlük raporlar ve alarmlar, şirket içi mail sunucularımız aracılığıyla bize ulaştırılır. Bu süreçte iki ana yöntemle authentication işlemi gerçekleştirilebilir:

    Open Relay

    Open relay, e-posta sunucusunun kimlik doğrulama gerektirmeden, herhangi bir kaynaktan gelen e-postaları kabul edip, herhangi bir hedefe yönlendirebilmesi durumudur. Bu tür sunucular, spam göndericileri tarafından istismar edilebilir çünkü kaynağı ne olursa olsun tüm e-posta iletilerini kabul edip yönlendirirler.

    Authenticated Relay

    Authenticated relay, e-posta sunucusunun yalnızca belirli kimlik doğrulama bilgilerine sahip kullanıcılar tarafından e-posta gönderimi yapmasına izin verdiği bir yapılandırmadır. Bu, kullanıcı adı ve şifre gibi kimlik bilgileri ile doğrulanmış kullanıcıların veya belirli IP adreslerinden gelen istemcilerin e-posta gönderimine izin verilmesini içerebilir. Authenticated relay, güvenli bir e-posta gönderimi sağlar ve kötü niyetli kullanımları önleyebilir.

    Özet:

    • Internal Relay ve External Relay, e-postaların iç veya dış ağlar arasında nasıl yönlendirildiğini tanımlar.
    • Open Relay geniş ve kontrolsüz erişim sağlar, bu da güvenlik riskleri yaratır.
    • Authenticated Relay, güvenliğin sağlanması için belirli kimlik doğrulama gereksinimleri koymaktadır.

    Exchange Server 2019 Internal Relay Adımları

    Yukarıda Internal Relay kavramında kısa bir şekilde bahsetmiştik, şimdi Exchange Server üzerinde Internal Relay kavramlarından bahsedeceğiz.

    Exchange Server 2016 veya 2019’u ortamınıza ilk eklediğinizde, kurulum süreci anonymous  göndericilerden dahili alıcılara e-posta teslim etmeye olanak tanımak için otomatik olarak önceden yapılandırılmış bir connectoroluşturur. Bu yapılandırma, gelen e-postaların sunucu tarafından kabul edilmesini sağlar ve aynı zamanda dahili e-posta iletimi (relay) için de kullanılır.

    Exchange Server kurulumu tamamlandığında, varsayılan olarak beş adet connector kurulmuş olur. Bu bağlayıcılardan biri örneğimde “EXCSERVERDefault Frontend EXCSERVER” olarak adlandırılan bağlayıcıdır.

    Bu bağlayıcıları, Exchange Kontrol Paneli (ECP) üzerinden görsel olarak inceleyebileceğiniz gibi, Exchange Management Shell (EMS) üzerinden de detaylı bilgilere ulaşabilirsiniz. Bu bağlayıcılar, kurulum sürecinde Exchange Server’ın e-posta alışverişini yönetmek için otomatik olarak ayarlanır ve sistem yöneticilerine esneklik sağlamaktadır.

    Get-ReceiveConnector
    
    Get-ReceiveConnector
    
    Identity                                    Bindings                  Enabled
    
    EXCSERVERDefault EXCSERVER                 {0.0.0.0:2525, [::]:2525} True
    
    EXCSERVERClient Proxy EXCSERVER            {[::]:465, 0.0.0.0:465}   True
    
    EXCSERVERDefault Frontend EXCSERVER        {[::]:25, 0.0.0.0:25}     True
    
    EXCSERVEROutbound Proxy Frontend EXCSERVER {[::]:717, 0.0.0.0:717}   True
    
    EXCSERVERClient Frontend EXCSERVER         {[::]:587, 0.0.0.0:587}   True
    

    Exchange Server Internal Relay Connectorü Telnet Adımları

    telnet EXCSERVER 25
    
    220 EXCSERVER.akkaya.local Microsoft ESMTP MAIL Service ready at Tue, 25 Apr 2022 22:14:29 +0300
    
    helo
    
    250 EXCSERVER.akkaya.local Hello [192.168.1.30]
    
    mail from: [email protected]
    
    250 2.1.0 Sender OK
    
    rcpt to: [email protected]
    
    250 2.1.5 Recipient OK
    
    Data
    
    354 Start mail input; end with .
    
    Subject: Test email
    
    Testing
    
    .
    
    250 2.6.0 <[email protected] > [
    
    InternalId=854698491929, Hostname=EXCSERVER.akkaya.local ] Queued mail for
    
     delivery
    

    Yukarıda bahsettiğim Internal Relay senaryosu için ek bir Connector ihtiyacınız bulunmamaktadır, güvenlik gereksinimleriniz doğrultusun da yeni bir Port ve yeni bir Connector oluşturabilirsiniz. Fakat, Connector yerine DNS kullanmanız daha sağlıklı olacaktır.

    Exchange Server 2019 External Relay Adımları

    Exchange Server ortamımıza dahil edilmiş bir Internal adress üzerinden, External bir ortamda bulunan bir email adresine mail göndermek için Telnet adımlarını kullanacağız ve Telnet gönderim sırasında nasıl cevap verecek kontrol edelim.

    220 EXCSERVER.akkaya.local Microsoft ESMTP MAIL Service ready at Tue, 25 Apr 2022 22:30:29 +0300
    
    helo
    
    250 EXCSERVER.akkaya.local Hello [192.168.1.30]
    
    mail from: [email protected]
    
    250 2.1.0 Sender OK
    
    rcpt to: [email protected].
    
    550 5.7.54 SMTP; Unable to relay recipient in non-accepted domain
    
    External E-posta adresini girdiğim zaman “550 5.7.54 SMTP; Unable to relay recipient in non-accepted domain” hata kodu dönmektedir.
    
    550 5.7.54 hata kodunu çözmemiz için kullanabileceğimiz iki yöntem bulunmaktadır.
    
    Kullanıcı Authentication yapılandırması
    Connector üzerinde Anonymous yetkilendirmesi
    

    Exchange Server’da Authentication Kullanarak External Relay Adımları

    Her zaman tercih edilen yöntem, kimlik doğrulaması gerektiren SMTP bağlantıları kullanmaktır. Exchange Server 2019 ortamınızda varsayılan olarak gelen ve TLS (Transport Layer Security) kullanarak güvenli bağlantıları kabul eden “Client Frontend” Connectorü, TCP Port 587 üzerinden çalışır.

    Bu bağlayıcının etkin şekilde çalışabilmesi için asgari düzeyde yapılandırma yeterlidir. Exchange Server 2019 ortamınızda SSLsertifikasını yapılandırmış olduğunuzu ve cihazlarınızın veya uygulamalarınızın erişimi için gerekli DNS ayarlarını yapmış olduğunuzu varsayalım (örneğin: mail.cozumpark.com, relay.cozumpark.com gibi). Şimdi, bağlayıcı üzerinde TLSsertifikası adını (TlsCertificateName) ayarlayarak işlemlere devam edeceğiz. Bu adımlar, güvenli e-posta iletişimi için kritik öneme sahiptir ve kimlik doğrulanmış bağlantılar aracılığıyla veri güvenliğini artırmaktadır.

    Öncelikle SSL Sertifikamızın thumprint kodunu bulmamız gerekmektedir, bunun için Exchange Management Shell üzerinden “Get-ExchangeCertificate” komutunu kullanmanız yeterli olacaktır.

    Get-ExchangeCertificate
    
    Thumbprint                                Services   Subject
    ----------                                --------   -------
    F3D0A4E2578B66E2BB427FAC4C9FD450B7AE34CF ...WS.. CN=mail.cozumpark.com, OU=IT, O=cozumpark Portal,...
    5D38258B1645D4A344B12EAB99D2CC25B3B4E5F3 ....S.. CN=Microsoft Exchange Server Auth Certificate
    C2B9A4D5E3F67B0CDF7F82ABC337D453F7A4C2E9 IP.WS.. CN=EXCSERVER
    8E57DA66CC25DBFAD2D3B5BBC5E4A5F534D5B60D ....... CN=WMSvc-EXCSERVER
    

    TlsCertificateName dizesi, SSL sertifikasının iki öz niteliğini içerir. Bu yüzden aşağıdaki PowerShell komutlarını kullanarak ayarları yapabilirsiniz:

    $cert = Get-ExchangeCertificate -Thumbprint F3D0A4E2578B66E2BB427FAC4C9FD450B7AE34CF
    
     $tlscertificatename = "<i>$($cert.Issuer)<s>$($cert.Subject)"
    
    Set-ReceiveConnector "EXCSERVERClient Frontend EXCSERVER" -Fqdn mail.cozumpark.com -TlsCertificateName $tlscertificatename
    

    Bu yapılandırmayı test etmek için PowerShell‘in Send-MailMessage cmdlet’ini kullanacağım.

    $credential = Get-Credential
    

    Sonra mail göndermek için gerekli bilgileri içeren cmdlet’i yazacağım:

    Send-MailMessage -SmtpServer mail.cozumpark.com -Credential $credential -From '[email protected]' -To '[email protected]' -Subject 'Test email' -Port 587 -UseSsl
    

    Bu yapılandırma ile Exchange Server 2019 sunucumuzda 587 numaralı port üzerinden dinleyen, kimliği doğrulanmış SMTPbağlantıları kabul eden connectorumuzu başarıyla test etmiş olduk.

    Exchange Server 2019’da Connector için Anonymous Yapılandırılması

    Belirli IP adreslerinden veya IP aralıklarından anonim olarak e-posta gönderimi yapılmasına olanak sağlayan bir connector oluşturmak için Exchange Server 2019’da Exchange Control Panel (ECP) kullanabiliriz:

    • Exchange Control Panel (ECP) Erişimi:
      • ECP’ye giriş yapın ve sol menüden “mail flow” seçeneğine tıklayın.
      • “receive connectors” sekmesine gidin ve yeni bir connector oluşturmak için “+” butonuna basın.

    • Connector İsimlendirme ve Rol Ayarı:
      • Connector için “IP_Relay” adını verin.
      • “Role” seçeneğini “Frontend Transport” olarak belirleyin.
      • “Type” olarak “Custom” seçeneğini işaretleyin.

    • Network Adapter Bindings:
      • “Network adapter bindings” kısmında, connectorun dinleyeceği IP adresi ve port numarası görülecektir. Varsayılan port “25” olarak geliyor, bu örneğimiz de değişiklik sağlamayacağız.

    • Remote Network Settings:
      • Bu kısımda, varsayılan olarak gelen IP aralığını kaldırın ve anonim SMTP relay için izin vermek istediğiniz özel IP adreslerini veya aralıklarını ekleyin.
      • Ortamdaki diğer Exchange sunucularının IP adreslerini eklemekten kaçının, çünkü bu, sunucular arası iletişimde problemlere yol açabilir.

    • Connector Yapılandırmasını Kaydedin:
      • Tüm ayarları tamamladıktan sonra yapılandırmayı kaydedin.

    Exchange Management Shell (EMS) Kullanarak Connector Ayarları:

    • EMS penceresini açın ve anonim kullanıcılar için izinleri ayarlamak üzere aşağıdaki komutları uygulayın:
    Set-ReceiveConnector "EXCSERVERIP_Relay" -PermissionGroups AnonymousUsers
    

    Exchange Server üzerinde ullanıcılara Relay izni vermek için aşağıdaki komutu çalıştırabilirsiniz.

    Get-ReceiveConnector “EXCSERVERIP_Relay” | Add-ADPermission -User ‘NT AUTHORITYAnonymous Logon’ -ExtendedRights MS-Exch-SMTP-Accept-Any-Recipient
    

    Makalemizde, bir connector için TLSsertifikası yapılandırmasını ele aldık ve TLS/SSL kullanarak Send-MailMessage ile gerçekleştirdiğim test sürecini inceledik.

    Relay Güvenliği

    Birçok kuruluş, anonim e-posta teslimi için çeşitli IP adreslerinden e-posta gönderebilen connector’lar oluşturur. Bu senaryoyu kendi ortamınıza uyarlarken dikkatli olunmalıdır çünkü göründüğünden daha fazla güvenlik riski içerebilir. İzin verdiğiniz IP adreslerinin güvenilir olduğundan emin olun. Özellikle, IP adresleri DHCP havuzundan otomatik olarak atanıyorsa, veya bir Uzak Masaüstü Hizmetleri (RDS) sunucusu olarak kullanılıyorsa, güvenlik açısından riskler taşıyabilir.

    Authentication

    Kimlik doğrulama yöntemi, işlemleri karmaşıklaştırabilir ancak bu, daha yüksek güvenlik seviyesi için kabul edilebilir bir zorluktur. Yönetilen cihazlar ve servisler için kullanılan hesap bilgilerini düzenli olarak gözden geçirmek yeterli olacaktır.

    Relay Nedir? Exchange Server Relay Yapısı
    Relay Nedir? Exchange Server Relay Yapısı