Exchange 2010 öncesinde admin seviyesinde yapılan işlemlere karşı kim, ne zaman, ne yaptı sorularına cevap verecek bir fonksiyon bulunmuyordu (Admin seçiciliğini yapacak  bir yol mevcut değil ve ancak tabiki tüm konfigürasyon değişiklikleri ve mailbox erişimleri değişik yollarla izlenebilir). Halbuki yapılan bir değişilik veya oluşturulan bir nesne Exchange’in işleyişini beklenmedik bir şekilde olumsuz yönde etkileyebilir. Admin Auditing hissedilen bu eksikliğe karşı sunulan bir yenilik oldu.

Admin Auditing Exchange 2010 SP1 ve sonrasında varsayılan olarak etkin gelmektedir. Varsayılan ayarlarında Get- , Search- ve Test- ile başlayan komutlar dışında kullanılan tüm komutlar
loglanır. Bu şekilde başlayan komutlar object’lerin değiştirilmesi için değil, görüntülenmesi için kullanıldıkları için loglama dışında bırakılmışlardır.

Admin yaptığı yönetimsel işlemler sırasında, işlemlerin loglandığına dair hiçbir ibare görmez. Audit loglar search edildiğinde yapılan değişiklikler raporlanır. Loglama arka planda bir cmdlet extension agent tarafından yapılır ve tüm Exchange 2010 sunucularda çalışır. Exchange 2007’de bu agent bulunmadığı için mix bir ortamda 2007 management tools kullanılarak yapılan değişiklikler loglanmayacaktır.

Admin Auditing Log konfigürasyonu organizasyonel bir değişiklik olduğu için yapılan bir değişikliğin tüm sunucularda etkin olması replikasyon süresine bağlıdır.

Aşağıdaki ekran görüntüsünde varsayılan AdminAuditLogConfig ayarlarını görebilirsiniz.

Şirketiniz için önem arzeden işlemlerin loglanmasını öneririz. Şimdi birlikte varsayılan ayarları değiştirerek loglama alanını daraltalım.

AdminAuditLogCmdlets: Kullanılan hangi cmdlet’lerin loglanacağını belirleyebildiğiniz bir parametredir. Örneğin içerisinde “virtual directory” geçen tüm cmdlet’lerin loglanmasını istiyorsak ve aynı zamanda new-mailbox komutunun loglanmasını istiyorsak konfigürasyonu aşağıdaki gibi yapabiliriz.

AdminAuditLogParametres: AdminAuditLogCmdlets ile belirlediğiniz cmdlet’lerin hangi parametreler ile birlikte çalıştırıldığında loglama yapılacağını belirtir. Aşağıdaki örneğimizde New-Mailbox cmdlet’inin Database, FirstName, LastName parametrelerinin loglanacağını belirtmiş oluyoruz.

 

AdminAuditLogAgeLimit:  Varsayılan olarak loglar 90 gün saklandıktan sonra silinir. AdminAuditLogAgeLimit parametresi ile bu süreyi gün, saat, dakika ve hatta saniye belirterek değiştirebilirsiniz. Yazım format şu şekilde olmalıdır: dd.hh:mm:ss. Aşağıdaki komut ile süreyi 100 gün 12 saat 5 dakika ve 2 saniye olarak değiştirmiş olduk:

Set-AdminAuditLogConfig -AdminAuditLogAgeLimit 100.12:05:02

Bu parametre ile ilgili önemli bir uyarı AgeLimit’i varsayılan değerden daha düşük bir değere çektiğinizde belirttiğiniz değerden eski olan loglar silinecektir.
Örneğin bu değeri 0 yaptığınızda o zamana kadar loglanmış tüm girdiler silinir. Bu sebeple kime bu değeri değiştirme yetkisi verdiğinize dikkat etmelisiniz.

 

TestCmdletLoggingEnabled: Makalemizin başında Get-, Search- ve Test- ile başlayan cmdlet’lerin loglanmadığını belirtmiştik. Bu parametre ile Test- ile başlayan cmdlet’lerin loglanmasını sağlamış oluyoruz.

 

Set-AdminAuditLogConfig -TestCmdletLoggingEnabled $True

Audit loglarına nasıl ulaşabiliriz?

Farklı şekillerde erişmek mümkün. Bunlar Search-AdminAuditLog veya New-AdminAuditLogSearch cmdlet’lerini kullanmak veya logların tutulduğu mailbox’a erişmek olabilir.

SP1 sonrası yapılan değişiklikle administrator auditing loglarının tutulduğu gizli ve bu iş için atanmış bir mailbox mevcut. Bu mailbox’a erişim ise sadece ECP üzerinden sağlanabiliyor. Tüm organizasyona ait admin audit logları sadece bu mailboxda tutulur ve bu mailbox’ın yer aldığı database mount durumda değilken loglama mümkün olmaz.

Auditing’in ECP üzerindeki görüntüsü aşağıdaki gibidir. Buradan administrator audit loglarını xml formatında export edip, sonuçları belirlediğiniz bir user’a maille gönderebilirsiniz.

 

 

İkinci bir yöntem, Search-AdminAuditLog cmdlet’ini kullanarak kendi audit log analizlerinizi oluşturmak. Bu komutla belirleyebileceğiniz kriterler: Cmdlets, Parameters, EndDate, StartDate,
ObjectIDs, UserIDs
Bu kriterlerden ObjectIDs ile özellikle belirli bir nesne üzerindeki değişikliklerin raporunu isteyebilirsiniz. UserIDs ile ise belli bir admin’in yaptığı değişiklikleri raporlama şansımız da var.

 

Aşağıdaki örnekte Administrator’ın belirli tarihler arasında yaptığı işlemleri görebilirsiniz.

Aşağıdaki örnekte New-Mailbox komutunun kimler tarafından ve hangi nesneler için çalıştırıldığını görebilirsiniz.

Son yöntemimiz, New-AdminAuditLogSearch cmdlet’i ile search işleminin yapılması. Search-AdminAuditLog cmdlet’inde kullanılan kriterler bu cmdlet için de geçerlidir, tek farkı sonuçları shell’de
göstermek yerine belirlediğiniz kişiye mail olarak, XML formatında gönderebilir (çünkü ilgili komut bir JOB olarak arka planda çalıştırılır ve çıktısı işlem bittikten sonar teslim edilir).

Aşağıdaki örnekte ise belirli tarihler arasında çalıştırılan New-Mailbox komutuna ait raporun sevgi@exchange2010.net adresine gönderimini sağlayabilirsiniz.

 

Sevgi Sifyan