Bildiğiniz bir kaç gün önce Exchange sunucularda önemli bir güvenlik açığı tespit edildi. Bu açığın giderilmesi için Microsoft tarafından güvenlik yaması yayınlandı. Bu güvenlik update’ini yapabilmemiz için kullanmış olduğumuz Exchange sunucuların Cumlative Update seviyesinde en yüksek seviyelerde olması gerekmektedir.
Aşağıda bulunan listede güvenlik paketi ile birlikte kapatılacak olan zafiyetlerin linkleri ve bu linklerin içerisinde Security Update paketini indirebileceğiniz bağlantı bulunmaktadır.
| March 2, 2021 Security Update Release – Release Notes – Security Update Guide – Microsoft |
| CVE-2021-26412 |
| CVE-2021-26854 |
| CVE-2021-26855 |
| CVE-2021-26857 |
| CVE-2021-26858 |
| CVE-2021-27065 |
| CVE-2021-27078 |
Güncel Seviyede CU olan Exchange sunucularda problem yaşamadan bu güvenlik paketini yükleyebiliriz.
Bu yazımda güncel olmayan Exchange Sunucular üzerinde CU yükleme işlemerini anlatmaya çalışacağım.
Adım 1 Yedek
Exchange ve Domain Controller sunucuların full backup’ını almanız yaşayacağınız problemlerde geri dönüşleriniz için gerekli olacaktır.
Adım 2 Windows Update
Exchange sunucuların çalıştığı Windows işletim sistemlerinin Windows updatelerinin güncel ve yüklenmiş olduğunun emin olmamız gerekmektedir.
Adım 3 .Net kontrol
Yüklemek istediğiniz Cumlative Update hangi versiyon .Net gereksinimine ihtiyaç duymaktadır bunun kontrolünü sağlamamız gerekmekte.
Sunucular üzerinde çalışan .net versiyonu öğrenmek için aşağıdaki komutu kullanabilirsiniz.
dir /b /ad /o-n %systemroot%\Microsoft.NET\Framework\v?.*

Aşağıda bulunan tablolarda Exchange Server versiyonlarının CU update .net support listesini görebilirsiniz.
Exchange 2019
| EXCHANGE 2019 | |||
| .NET Framework version | CU8 to CU4 | CU3, CU2 | CU1, RTM |
| 4.8 | Supported | Supported | Not supported |
| 4.7.2 | Not supported | Supported | Supported |
Exchange 2016
| EXCHANGE 2016 | |||||||||
| .NET Framework version | CU19 to CU15 | CU14, CU13 | CU12, CU11 | CU10 | CU9, CU8 | CU7, CU6, CU5 | CU4, CU3 | CU2 | CU1, RTM |
| 4.8 | Supported | Supported | Not supported | Not supported | Not supported | Not supported | Not supported | Not supported | Not supported |
| 4.7.2 | Not supported | Supported | Supported | Not supported | Not supported | Not supported | Not supported | Not supported | Not supported |
| 4.7.1 | Not supported | Not supported | Supported | Supported | Supported | Not supported | Not supported | Not supported | Not supported |
| 4.6.2 | Not supported | Not supported | Not supported | Not supported | Supported | Supported | Supported | Not supported | Not supported |
| 4.6.1* | Not supported | Not supported | Not supported | Not supported | Not supported | Not supported | Supported | Supported | Not supported |
| 4.5.2 | Not supported | Not supported | Not supported | Not supported | Not supported | Not supported | Supported | Supported | Supported |
Exchange 2013
| EXCHANGE 2013 | ||||||||
| .NET Framework version | CU23 | CU21, CU22 | CU19, CU20 | CU16, CU17, CU18 | CU15 | CU13, CU14 | CU12 to SP1 | CU3 to RTM |
| 4.8 | Supported | Not supported | Not supported | Not supported | Not supported | Not supported | Not supported | Not supported |
| 4.7.2 | Supported | Supported | Not supported | Not supported | Not supported | Not supported | Not supported | Not supported |
| 4.7.1 | Not supported | Supported | Supported | Not supported | Not supported | Not supported | Not supported | Not supported |
| 4.6.2 | Not supported | Not supported | Supported | Supported | Supported | Not supported | Not supported | Not supported |
| 4.6.1* | Not supported | Not supported | Not supported | Not supported | Supported | Supported | Not supported | Not supported |
| 4.5.2 | Not supported | Not supported | Not supported | Not supported | Supported | Supported | Supported | Not supported |
| 4.5.1 | Not supported | Not supported | Not supported | Not supported | Supported | Supported | Supported | Not supported |
| 4.5 | Not supported | Not supported | Not supported | Not supported | Not supported | Supported | Supported | Supported |
Adım 4 Active Directory Prep
Komut satırından yüklemek için indirdiğimiz CU dosyasının dizinine gidiyoruz ve aşağıdaki komutları sırası ile giriyoruz.
Setup.exe /IAcceptExchangeServerLicenseTerms /PrepareSchema
Setup.exe /IAcceptExchangeServerLicenseTerms /PrepareAD
Setup.exe /IAcceptExchangeServerLicenseTerms /PrepareAllDomains
Bu komutları çalıştıracak kullanıcının Enterprise Admin ve Schema Admin gruplarına üye olması gerekmektedir.
Hazırlık işlemlerinin başarılı şekilde tamamlandığının sağlamasını aşağıdaki komutlar ile sağlayabiliriz.
Komut setini PowerShell ISE üzerinde çalıştırmanız daha iyi olacaktır.
# Exchange Schema Version$sc = (Get-ADRootDSE).SchemaNamingContext$ob = “CN=ms-Exch-Schema-Version-Pt,” + $scWrite-Output “RangeUpper: $((Get-ADObject $ob -pr rangeUpper).rangeUpper)”# Exchange Object Version (domain)$dc = (Get-ADRootDSE).DefaultNamingContext$ob = “CN=Microsoft Exchange System Objects,” + $dcWrite-Output “ObjectVersion (Default): $((Get-ADObject $ob -pr objectVersion).objectVersion)”# Exchange Object Version (forest)$cc = (Get-ADRootDSE).ConfigurationNamingContext$fl = “(objectClass=msExchOrganizationContainer)”Write-Output “ObjectVersion (Configuration): $((Get-ADObject -LDAPFilter $fl -SearchBase $cc -pr objectVersion).objectVersion)”
Powershell üzerinde komutu çalıştırdığımızda Rangeupper,ObjectVersion(default) ve ObjectVersion(Configuration) değelerini verecektir. Bu değerlerin CU seviyelerine göre karşılıkları mevcuttur. Exchange 2016 için değer örnekleri aşağıdaki gibidir.
Exchange 2016 Active Directory versions
| Exchange 2016 version | rangeUpper | objectVersion (Default) | objectVersion (Configuration) |
|---|---|---|---|
| Exchange 2016 CU19 | 15333 | 13239 | 16219 |
| Exchange 2016 CU18 | 15332 | 13238 | 16218 |
| Exchange 2016 CU17 | 15332 | 13237 | 16217 |
| Exchange 2016 CU16 | 15332 | 13237 | 16217 |
| Exchange 2016 CU15 | 15332 | 13237 | 16217 |
| Exchange 2016 CU14 | 15332 | 13237 | 16217 |
| Exchange 2016 CU13 | 15332 | 13237 | 16217 |
| Exchange 2016 CU12 | 15332 | 13236 | 16215 |
| Exchange 2016 CU11 | 15332 | 13236 | 16214 |
| Exchange 2016 CU10 | 15332 | 13236 | 16213 |
| Exchange 2016 CU9 | 15332 | 13236 | 16213 |
| Exchange 2016 CU8 | 15332 | 13236 | 16213 |
| Exchange 2016 CU7 | 15332 | 13236 | 16213 |
| Exchange 2016 CU6 | 15330 | 13236 | 16213 |
| Exchange 2016 CU5 | 15326 | 13236 | 16213 |
| Exchange 2016 CU4 | 15326 | 13236 | 16213 |
| Exchange 2016 CU3 | 15326 | 13236 | 16212 |
| Exchange 2016 CU2 | 15325 | 13236 | 16212 |
| Exchange 2016 CU1 | 15323 | 13236 | 16211 |
| Exchange 2016 RTM | 15317 | 13236 | 16210 |
| Exchange 2016 Preview | 15317 | 13236 | 16041 |
Adım 5 Exchange Maintenance
Client Access görevi gören exc01 için HubTransport rolünü Draining mode’a alıyoruz.
Set-ServerComponentState -identity exc01 -Component HubTransport -State Draining -Requester Maintenance
Que üzerinde bulunan mailleri exc01 üzerinden exc02 üzerine yönlendiriyoruz.
Redirect-Message -Server exc01 -Target exc02
DAG üzerinde exc01’i askıya alıyoruz.
Suspend-ClusterNode exc01
DAG üzerinde bulunan aktif databaseleri exc02 üzerine taşıması ve DAG kopyalama işlemlerini devre dışı bırakıyoruz.
Set-MailboxServer exc01 -DatabaseCopyActivationDisabledAndMoveNow $true
DAG üzerinde bulunan Databaselerin exc01 üzerinde aktif olmaması için aşağıdaki komutu giriyoruz.
Set-MailboxServer exc01 -DatabaseCopyAutoActivationPolicy Blocked
DAG taşıma işlemlerinin bitmesini bekliyoruz. Taşıma işlemlerini kontrol etmek için aşağıdaki komutu girebilirsiniz.
Get-MailboxDatabaseCopyStatus -Server exc01 | Where{$_.Status -eq “Mounted”}
DAG database taşıma işlemleri bittikten sonra aşağıdaki komut ile exc01’i bakım moduna alıyoruz.
Set-ServerComponentState exc01 -Component ServerWideOffline -State Inactive -Requester Maintenance
exc01’in bakım moduna girip girmediğini aşağıdaki komut ile teyit edebiliriz.
Get-ServerComponentState exc01| Format-Table Component, State
Adım 6 Yüklemeler
.Net güncellememiz gerekiyor ise ilgili .net yüklenmelidir.
Cumlative update’i iki farklı şekilde başlatabiliriz.
Komut satırı ;
Komut satırını açıp CU klasörüne girerek aşağıdaki komutu ile CU yükleme işlemini başlatabiliriz.
Setup /m:upgrade /IAcceptExchangeServerLicenseTerms
GUI; CU içereren klasöre giriyoruz ve setup dosyasını çalıştırıyoruz. Karşımıza Update ekranı geliyor. Don’t check updates right now ile devam ediyoruz.

Lisans sözleşmesi sayfasını onaylayarak devam ediyoruz.

Ön gereksinimler kontrol ediliyor ve yüklemeyi başlatıyoruz.

Yükleme devam ediyor.

Yükleme başarılı bir şekilde tamamlandığında aşağıdaki ekran ile karşılacağız.

Yükleme sonrasında sunucuyu yeniden başlatıyoruz.
Adım 7 Bakım Modundan çıkarmak
Adım 4 de yaptığımız bakım moduna sokma adımlarının tam tesrini yapacağız.
Bakım modundan çıkarmak için aşağıdaki komutu giriyoruz.
Set-ServerComponentState exc01 -Component ServerWideOffline -State Active -Requester Maintenance
DAG clusterında node’u aktif ediyoruz.
Resume-ClusterNode -Name exc01
DAG üzerinde bulunan databaselerin aktif olarak bu sunucuda çalışabilmesi ve senkronizasyon işlemlerinin başlaması için aşağıdaki komutu giriyoruz.
Set-MailboxServer exc01 -DatabaseCopyActivationDisabledAndMoveNow $false
HubTransport rolunu Draining mode’dan aktif mode aşağıdaki komutu girerek yapıyoruz.
Set-ServerComponentState exc01 -Component HubTransport -State Active -Requester Maintenance
Adım 8 Kontroller
DAG durumunu kontrol etmek için
Get-ClusterNode exc01
Servis sağlık durumlarını kontrol etmek için
Test-ServiceHealth exc01
MAPI bağlantısını kontrol etmek için
Test-MAPIConnectivity -Server exc01
Get-MailboxDatabase | Test-MAPIConnectivity
DAG Database sağlık durumunu kontrol etmek için
Get-MailboxDatabaseCopyStatus -Server exc01 | Sort Name | Select Name, Status, Contentindexstate
Get-MailboxDatabaseCopyStatus * | Sort Name | Select Name, Status, Contentindexstate
Bu işlemler sonrasında Security Update’i basit bir şekilde geçebilirsiniz.
Yapınızdaki diğer exchange sunucular için Adım 4 haricindeki bütün adımları izleyerek devam edebilirsiniz. Adım 4 domain yapısında bir defa yapılması gereken bir adımdır.
Faydalı olması dileğiyle.
Leave a comment