Exchange Server Mail Flow Nedir?

Exchange Server üzerinde Posta Akışı (Mail Flow) yapılandırması, ortamınıza On-Premises Exchange Server 2013, 2016 veya 2019‘u yükledikten sonra istemcilere erişim izni vermeniz için yapılandırılması gereken önemli bir yapılandırmadır. Bu yapılandırma sayesinde, kullanıcılar e-posta hesaplarına erişebilir, mail gönderme/alma işlemleri yapabilir.

Kuruluşunuzda düzgün posta akışını sağlamak için kuralların, teslim raporlarının, receive connectors, send connectors ilkelerinin yapılandırılmış olması gerekmektedir.

Aslında bu yazımızda Exchange Server’ın iki temel bileşeninde bahsedeceğiz. Peki, bu iki temel bileşen nedir? İlk olarak, istemci erişim protokolleri ile birlikte aslında Exchange Server kullanan herkes tarafından bilinen posta kutusu bileşenidir. İkinci temel bileşen ise, e-posta iletilerinin alınması, işlenmesi ve gönderilmesi görevli olan posta akışı bileşenidir. (Mail Flow)

Aslında bu bileşenleri sürekli kullanmaktayız, bu bileşenler Exchange Server mimarisinde merkezi olarak konumlandırılmış olsa da bir o kadarda karmaşık gözükebilir.

Exchange Server Mimarisi (PA) ve Bileşenler

Exchange Server’ın posta akışına bakan herkes, Exchange Server’ın işlevsel yapısını ve Mimari’yi göz önüne getirmelidir. PA’da Exchange Server DAG olarak yapılandırılmış birden çok Exchane Server’dan oluşan bir küme yapılandırmasında çalışmaktadır. Oluşturulan DAG mimarisi highly available şekilde bir posta akışı sağlamaktadır.

Exchange Server bir front-end and ve back-end bileşeninden oluşmaktadır.

Aşağıdaki diyagramda bulunan bileşenler şu şekildedir;

Front End: Exchange Server kuruluşu için tüm gelen ve (isteğe bağlı yapılandırma) giden dış SMTP trafiği için durum bilgisi olmayan bir proxy görevi görmektedir. Front-End ileti içeriğini incelemez, Posta Kutusu Aktarım hizmetiyle iletişim kurmaz ve hiçbir iletiyi yerel olarak kuyruğa almamaktadır.

Transport Service: Transport Service, kuruluş için tüm SMTP posta akışını işlemekle görevlidir, ileti kategorisi oluşturma ve ileti içeriği denetimi gerçekleştirir. Aktarım hizmeti hiçbir zaman posta kutusu veritabanı ile doğrudan iletişim kurmamaktadır. Bu görev Mailbox Transport Service tarafından işlenmektedir. Transport Service, iletileri Mailbox Transport service, Transport service, Front End Service ve (yapılandırmayabağlı olarak) Edge Aktarım sunucularındaki Transport Service arasında yönlendirmektedir.

Mailbox Transport Service: İletileri almak için Exchange uzaktan yordam çağrısı (RPC) kullanarak yerel posta kutusu veritabanına bağlanmaktadır. (Transport Service anlatırken bahsetmiştik.) Hizmet, iletileri SMTP üzerinden yerel Posta Kutusu sunucusundaki veya diğer Posta Kutusu sunucularındaki Aktarım hizmetine gönderir.

Mailbox Transport Delivery Service: SMTP iletilerini yerel Posta Kutusu sunucusundaki veya diğer Posta Kutusu sunucularındaki Aktarım hizmetinden alır ve iletileri teslim etmek için RPC kullanarak yerel posta kutusu veritabanına bağlanır.

Client Frontend: 717 Portunu kullanır

Client Proxy: 465 Portunu kullanır

Default: 2525 portunu kullanır

Default Frontend: 25 Portunu kullanır

Outbound Proxy Frontend: 717 portunu kullanır

Dışarıdan bir mail isteği geldiği zaman, Firewall üzerinden geçen istek Default Frontend (25) tarafından karşılanır ve gönderici sunucunun connectorü ile iletişim haline geçer. Bu sebepten dolayı Default Frontend üzerindeki ayarları kontrol etmekte fayda var, aslında o connectorler üzerinde ayarlar artık Default kurulumda yapılandırılmış şekilde geliyor.

Default Frontend üzerinde “Anonymous User” seçeneğinin işaretli olması gerekiyor. Anonymous User ile birlikte dışarıdan gelen mail isteklerini karşılayabiliriz.

Aşağıdaki diyagramda, Exchange Server’ın highly available mimarisi ile, gelen bağlantılar için üç sunuculu bir DAG topolojisidir.

Exchange Server, posta aktarım ayarları kuruluş genelinde ve sunucuyla ilgili yapılandırmada farklılaştırmaktadır. Kuruluş genelindeki ayarlar, ortamda kaç Exchange sunucusu ve DAG çalıştırdığınıza bakmadan tüm Exchange ortamında geçerli olur. Exchange Server bu ayarları Active Directory üzerinde depolamaktadır.

Sunucu ile ilgili ayarlar ise yalnızca bir Exchange Server sistemine uygulanmaktadır. Bu ayarlara örnek vermek gerekirse eğer; message transport, receive connectors diyebiliriz.

Diğer önemli konumuz ise, tüm Exchange sunucularında TLS ayarlarının doğru ve kararlı bir şekilde yapılandırılmasıdır. Exchange Server, Windows işletim sisteminin SCHANNEL yapılandırmasına ve local olarak yüklenmiş TLS sertifikalarıyla bağlantılı çalışmaktadır.

Şimdi Mail Flow ve Mail Alma konusuna geçebiliriz.

Exchange Server Mail Flow ve Receiving E-Mail

Receiving Mail

Exchange Server gelen e-posta iletilerini farklı şekillerde kabul ederek çalışmaktadır. Bu seçeneklerden en iyi bilineni SMTP protokolüdür. Exchange Server front-end transport’a bağlanan kaynak türleri arasında ayrım yapabilir. Front-end transport, standart TCP bağlantı noktası olan “25” üzerinden bağlantı kabul etmektedir.

Exchange sunucuları gelen e-posta iletilerini farklı şekillerde kabul eder. En iyi bilinen seçenek, zaten aşina olabileceğiniz SMTP protokolüdür. Exchange Server, ön uç aktarımına bağlanan farklı kaynak türleri arasında ayrım yapar. Ön uçta aktarım, standart TCP bağlantı noktası 25 üzerinden bağlantıları kabul eder. Varsayılan olarak bu standart SMTP bağlantı noktası üzerinden bağlanan sunucular şunlardır:

– Exchange Server’ınıza Internet üzerinden posta iletileri gönderen diğer posta etki alanları ve External posta sunucuları

– İç ve dış alıcılara posta iletileri gönderen ve geçiş sunucusu olarak Exchange sunucusu kullanan iç uygulama sunucuları

Exchange Server, e-posta iletilerini transport bileşenine almak için iki ek yol sağlamaktadır: alma ve yeniden yürütme dizinleri. Her iki dizin de, önceki Exchange sürümlerinden Hub Aktarım Hizmeti olarak bildiğiniz Transport Hizmeti tarafından kalıcı olarak izlenmektedir.

Exchange Server, yetkisiz SMTP bağlantılarına karşı koruma sağlamak için farklı kimlik doğrulama biçimleri kullanır. Ayrıca, üstbilgi güvenlik duvarı e-posta iletilerindeki yetkisiz bilgileri filtreleyerek kötü amaçlı SMTP üstbilgilerine karşı koruma sağlamaktadır.

Front-end transport’un e-posta işleme için karmaşık bir mantığı bulunmamaktadır. Bu nedenle, front-end transport ile back-end transport arasındaki etkileşimi anlamak önem taşımaktadır. Front-end transport bağlantıyı kabul eder, kimliğini doğrular ve TCP bağlantı noktası 2525 üzerinden transport hizmetine bir proxy bağlantısı kurar. Tek bir sunucu kurulumunda, Front-end aynı sunucunun yerel Transport Hizmeti’ne proxy bağlantısı kurmaktadır.

Bir DAG yapılandırmasında, front-end transport, alıcının posta kutusuyla veritabanı kopyasının şu anda etkin olarak bağlandığı DAG üye sunucusunun Transport Hizmeti’ni seçmektedir.

Posta İletilerini İşleme

Exchange Transport Hizmeti, e-posta iletilerinin tüm işlemlerini gerçekleştirmektedir. E-postaların işlenmesi, kuyruk tabanlı çalışmaktadır. Hizmet, alınan bir e-posta iletisini gönderme kuyruğunda depolar ve hizmet Categorizer adı verilen bir işlem için alana kadar burada depolanır. Transport Hizmetinin ana işi Categorizer Oluşturucu bileşeninde gerçekleşir. Kategorilere Ayırıcı görevleri şunları içerir:

– Alıcı adreslerini çözümleme

– Geçerli Exchange topolojisine göre iletinin nasıl yönlendirileceğine karar verme

– İleti içeriğini dönüştürme
– İletiyi ek kopyalara ayırma

a. İletinin birden çok alıcıya dağıtılması.

b.Hedeflenen dağıtım listesinin alıcılarını çözümlenmesi

– İletiyi veya iletileri teslim etmek

– Teslim durumu bildirimlerinin (DSN) oluşturulması

İşlemden sonra, ileti teslim edilmeye hazırdır ve Transport Hizmetleri iletileri bir veya daha fazla kuyrukta depolar. Transport Hizmeti, her teslimat hedefi için ayrı bir kuyruk oluşturur. Aslında Exchange sunucusunda her zaman farklı sayıda sıra görmenizin nedeni budur. Farklı kategoriler için kuyruklar vardır:

– Alıcının posta kutusunu içeren bir etkin veritabanı kopyasına yerel teslim

– Alıcının posta kutusunu içeren aynı DAG içindeki başka bir sunucudaki bağlı etkin veritabanı kopyasına teslim

– Yapılandırılmış bir akıllı ana bilgisayar aracılığıyla uzak etki alanlarına teslim

– Hedef etki alanı için DNS tabanlı MX çözümlemesi kullanılarak uzak etki alanlarına teslim

Transport Hizmeti, kuyrukları depolamak ve yönetmek için her Exchange sunucusunda ayrılmış bir veritabanı kullanır. Hizmet, tüm iletileri ilgili işleme ve teslim durumlarıyla birlikte bu veritabanında depolar. Transport Hizmeti, veritabanının işlevsel durumuyla bağımsız olarak ilgilenmektedir.

Posta İletisi Gönderme

SMTP-Send bileşeni, teslim sırasında bekleyen iletileri işler ve hedef sisteme ileti göndermek için bir Send Connector kullanır. Doğru DNS çözümlemesi, stabil çalışan bir Exchange Server’ın anahtarı konumundadır.

SMTP-Send bileşeni, teslim sıralarında bekleyen iletileri işler ve ilgili hedef sisteme ileti göndermek için bir Send Connector (Gönderme Bağlayıcısı) kullanır. Doğru DNS ad çözümlemesi, düzgün çalışan bir Exchange altyapısının anahtarıdır. Dış etki alanlarının DNS çözümlemesi tamamen farklı yapıda çalışmaktadır. Exchange sunucularınızın dış etki alanı adlarını verimli ve güvenli bir şekilde çözümleyebildiğinden emin olarak dış alıcılarla hatasız bir ileti akışı sağlamalısınız.

Bir e-posta iletisini teslim etmeye çalışırken bir hata oluşursa, Exchange Server son hatayı kuyrukta depolar. Teslim hatalarını bir veya daha fazla ileti kuyruğunun büyümesiyle tanırsınız. Kuyrukların izlenmesi, Exchange kuruluşunuzun kararlı çalışması için çok önemlidir.

Transport Hizmeti veritabanının konumunun Exchange Server’ın yükleme yolunda olduğunu lütfen unutmayın. Exchange Server, Posta Kuyruğu Konumu Değiştirme – ÇözümPark (cozumpark.com)

Exchange Server’ınızın çok sayıda iletiyi işlemesi gerekiyorsa, transport veritabanını ayrı ve yeterli büyüklükte bir sürücüye taşımanız gerekmektedir.

Makale içerisinde Mail Flow için temel bilgilerden bahsederken Receive connectors, send connectors vb. ilkelerinin yapılandırılmış olması gerektiğinden bahsetmiştim.

Şimdi ise Exchange sunucuma Send Connector ekleme işlemini yapacağız.

Send Connector Ekleme

E-Posta göndermek için Exchange Server’da bir Send Connector (Gönderme Bağlayıcısı) oluşturulması gerekmektedir. Bunun nedeni, Exchange üzerinde varsayılan olarak bir send connector olmamasıdır.

Exchange Server’daki CustomInternalInternet ve Partner Send Connector, kullanıcıların diğer Exchange dışı posta sunucularına e-posta göndermelerine, e-postaları Edge aktarım sunucusu (Yapılandırılmış ise) üzerinden yönlendirmelerine, sırasıyla TLS şifrelemesi ve SSL kimlik doğrulaması aracılığıyla üçüncü taraf sunuculara e-posta göndermelerine izin verecek şekilde yapılandırmanıza olanak sağlamaktadır.

Öncelikle ECP üzerinden Send Connector adımına geliyor. Benim şuan yapılandırılmış bir connectorum bulunmamakta. ECP – Mail Flow – Send Connector

Öncelikle oluşturacağım Connector’e bir isim vermem gerekiyor, bu örnekte kullanacağım isim “Internet email” isim verdikten sonra, Connector için bir tür belirlemem gerekiyor. Bu türleri açıklamak gerekirse;

Custom; Exchange dışındaki diğer posta sunucularına e-posta göndermenizi sağlar.

Internal; Edge sunucunuz varsa ve e-postaları Edge sunucusu üzerinden yönlendirmek istiyorsanız bu seçeneği kullanabilirsiniz.

Internet; Bu gönderme bağlayıcısı, Internet’te e-posta göndermek için kullanılır. Internet’te e-posta göndermek için gönderme bağlayıcısını yapılandırıyorsanız bu seçeneği kullanmanız gerekmektedir.

Partner; Bu gönderme bağlayıcısı, TLS şifrelemesi ve sertifika kimlik doğrulaması kullanarak üçüncü taraf sunuculara e-posta göndermek için kullanılır.

Tür olarak Internet seçimi yaptıktan sonra Next butonu ile devam ediyorum.

Burda MX kaydımızı DNS sunucumuzun mu çözeceğini yoksa Smart Host mu çözecek bunu soruyor. Ortamımızda kullanmış olduğumuz bir SmartHost yok ise MX Record associate with recipient domain adımı ile devam etmemiz gerekiyor.

MX teslimi, Exchange sunucunuzun DNS’de alıcının etki alanının MX kayıtlarını aramasını ve ardından e-posta iletisini teslim etmek için SMTP aracılığıyla doğrudan e-posta sunucusuna bağlanmasını içermektedir

Smarhost teslimi, Exchange sunucunuzun iletileri belirli bir IP adresine veya başka bir sistem için göndermesini içerir.

Bu örneğimde, iletiyi teslim etmek için MX kayıtlarını kullanacağım. Sunucumun TCP bağlantı noktası 25’te giden güvenlik duvarı erişimi zaten var ve DNS kullanarak internetteki MX kayıtlarını çözümleyebiliyor. Gerçek senaryolarda SPF ve IP reputation gibi sunucunuzdan e-posta iletilerinin teslimini etkileyebilecek başka hususlar da bulunmaktadır.

Address Space bölümüne geldiğimizde, Exchange Server yapımızı kullanarak gönderim yapacak domainleri seçmemiz gerekiyor.

“+” butonu ile Add Domain penceresi açılıyor. FQDN bölümüne tüm domainlere gönderim yapacağımız için “*” simgesi ekliyoruz ve Cost değerinde “1” değerini varsayılan olarak bırakıyoruz.

Source Server kısmında Exchange sunucunuzu seçerek send connector ekleme işlemini tamamlıyoruz.

Finish butonundan sonra ECP ekranında eklemiş olduğumuz send connectoru görebiliriz.

Eklemiş olduğunuz Send Connector’u TELNET yaparak test edebilirsiniz ve 220 yanıtını görmezseniz Firewall tarafındaki kurallarınızı kontrol edebilirsiniz. Yada Prokol LOGlarını aktif ederek, LOG incelemesi yapabilirsiniz.

LOG’lar varsayılan şu yolda tutulur; C:Program FilesMicrosoftExchange ServerV15TransportRolesLogsHubProtocolLogSmtpSend

Set-SendConnector "Internet email" -ProtocolLoggingLevel Verbose

Internal ve External URL Yapılandırma

Internal ve External URL yapılandırmak için EMS kullanmamız gerekmektedir, aşağıdaki komut satırlarını kendi ortamınıza göre düzenleyerek URL yapılandırmanızı yapabilirsiniz.

Dahili URL: İstemcilerin LOCAL ağınızdan sunucunuza bağlanabilmesi için, Posta Kutusu sunucusundaki İstemci Erişimi (front end) hizmetlerindeki sanal dizinlerdeki ve ardından iç DNS kayıtlarınızdaki iç etki alanlarını (veya URL’leri) yapılandırılması gerekmektedir.

Harici URL: İstemcilerin sunucunuza Internet’ten bağlanabilmesi için, Posta Kutusu sunucusundaki İstemci Erişimi (Front End) hizmetlerindeki sanal dizinlerdeki ve ardından ortak DNS kayıtlarınızdaki dış etki alanlarını (veya URL’leri) yapılandırmanız gerekir. Bir veya daha fazla sanal dizin dış URL’sinde farklı dış etki alanları yapılandırmak istiyorsanız, dış URL’leri el ile yapılandırmanız gerekmektedir.

Set-EcpVirtualDirectory “$İsimECP (Default Web Site)” -InternalUrl ((Get-EcpVirtualDirectory “$İsimECP (Default Web Site)”).ExternalUrl)

Set-WebServicesVirtualDirectory “$İsimEWS (Default Web Site)” -InternalUrl ((get-WebServicesVirtualDirectory “$İsimEWS (Default Web Site)”).ExternalUrl)

Set-ActiveSyncVirtualDirectory “$İsimMicrosoft-Server-ActiveSync (Default Web Site)” -InternalUrl ((Get-ActiveSyncVirtualDirectory “$İsimMicrosoft-Server-ActiveSync (Default Web Site)”).ExternalUrl)

Set-OabVirtualDirectory “$İsimOAB (Default Web Site)” -InternalUrl ((Get-OabVirtualDirectory “$İsimOAB (Default Web Site)”).ExternalUrl)

Set-OwaVirtualDirectory “$İsimOWA (Default Web Site)” -InternalUrl ((Get-OwaVirtualDirectory “$İsimOWA (Default Web Site)”).ExternalUrl)

Set-PowerShellVirtualDirectory “$İsimPowerShell (Default Web Site)” -InternalUrl ((Get-PowerShellVirtualDirectory “$İsimPowerShell (Default Web Site)”).ExternalUrl)

Accepted Domain Ekleme

Mail göndermek veya almak için bir domain ihtiyacımız bulunmakta, Exchange Server kurulumunda “Setup /PrepareAD” çalıştırdığımız zaman Active Directory domaini varsayılan olarak kullanılır. Fakat Domain adımız .local olarak kullanılıyorsa veya başka bir domain üzerinden gönderme/alma işlemi gerçekleşecekse Accepted Domain eklememiz gerekmektedir.

ECP – Mail Flow -Accepted Domains adımını kullanarak yönlendirilmesi mümkün bir domain eklemeniz gerekmektedir.

SSL Sertifikası

Exchange Server üzerinde ActiveSync gibi protokollerin çalışması için ve güvenilirlik için SSL yapılandırılması gerekmektedir. Bu sertifikanın varsayılan olarak oluşturulan sertifikalarından farkı bir CA üzerinden alınması gerekmektedir.

Öncelikle Exchange Server üzerinde bir CSR oluşturmamız gerekmekte, bu CSR’yi ECP üzerinden oluşturabildiğimiz gibi EMS üzerinden de oluşturabiliyoruz.

$txtrequest = New-ExchangeCertificate –Server “EXC-2019” –GenerateRequest –FriendlyName “Exchange Certificate 2022” –PrivateKeyExportable $true –SubjectName “c=TR, s=Turkey, l=, o=cozumpark ou=IT, cn=mail.cozumpark.com” –DomainName mail.cozumpark.com,autodiscover.cozumpark.com veya *.cozumpark.com

ECP – servers – certificates adımından CSR oluşturabilirsiniz.

CSR oluşturup CA üzerinden SSL sertifikamızı aldıktan sunucumuza import ederek SMTP protokolünü seçerek aktif hale getirmemiz gerekmektedir.

Exit mobile version