Zimbra’da Arşivleme ve Mesaj Saklama Politikaları

Kurumsal ortamlarda mail arşivleme meselesi, çoğu zaman “sonra hallederiz” listesinin en üstünde kalır. Ta ki bir hukuki süreç başlayana ya da denetçi geçmişe dönük mail kayıtları isteyene kadar. Zimbra kullanan ortamlarda bu işi düzgün yapılandırmak hem teknik hem de idari açıdan ciddi bir sorumluluk. Bu yazıda, Zimbra’nın arşivleme ve mesaj saklama mekanizmalarını, gerçek ortamlarda işe yarayan yapılandırmalarla birlikte ele alacağız.

Zimbra Arşivleme Mimarisini Anlamak

Zimbra’da arşivleme iki farklı katmanda ele alınabilir. Birincisi Zimbra’nın kendi bünyesinde sunduğu Zimbra Archiving & Discovery özelliği, ikincisi ise üçüncü taraf araçlarla entegre edilen harici arşivleme sistemleri.

Zimbra Network Edition kullananlar için dahili arşivleme lisans kapsamında gelir. Open Source Edition kullananlar ise genellikle harici çözümlere ya da özel betiklerle kurulmuş arşivleme altyapılarına yönelmek durumundadır. Bu ayrımı baştan netleştirmek önemli, çünkü yapılandırma adımları buna göre farklılaşıyor.

Dahili arşivleme yapısında her kullanıcıya ait bir “arşiv hesabı” oluşturulur. Bu hesap, kullanıcının gönderdiği ve aldığı tüm maillerin kör bir kopyasını saklar. Kullanıcı kendi orijinal mailini silse bile arşiv hesabı bağımsız bir yapıda çalışır ve içeriğe dokunamaz.

Arşivleme Özelliğinin Aktivasyonu

Network Edition kurulumunda arşivleme paketinin yüklü olduğunu doğrulayarak başlayın.

# Zimbra kullanıcısına geç
su - zimbra

# Arşivleme paketinin durumunu kontrol et
zmarchiveconfig -h

# Arşivleme servisini aktif et
zmprov ms $(zmhostname) zimbraArchiveEnabled TRUE

Eğer zmarchiveconfig komutu bulunamıyorsa paket kurulmamıştır. Network Edition için:

# Root kullanıcısıyla paket kurulumunu kontrol et
rpm -qa | grep zimbra-archiving
# veya Debian tabanlı sistemler için
dpkg -l | grep zimbra-archiving

Paket eksikse Zimbra Network Edition installer’ını tekrar çalıştırıp archiving bileşenini seçerek kurabilirsiniz.

Arşiv Hesabı Oluşturma ve Kullanıcıya Bağlama

Arşivleme için ayrı bir posta hesabı oluşturup bunu hedef kullanıcıyla ilişkilendirirsiniz. Pratikte bu hesabı kullanıcının kendi domain’inde ya da ayrı bir arşiv domain’inde açabilirsiniz. Büyük ortamlarda ayrı bir arşiv domain’i yönetimi çok daha temiz tutar.

# Önce arşiv domain'i oluştur (opsiyonel ama önerilen)
zmprov cd arsiv.sirketadi.com

# Arşiv hesabı oluştur
zmprov ca [email protected] 'GucluBirSifre123!'

# Kullanıcıyı arşiv hesabıyla ilişkilendir
zmprov ma [email protected] zimbraArchiveAccount [email protected]

# Arşivlemeyi bu kullanıcı için aktif et
zmprov ma [email protected] zimbraArchiveEnabled TRUE

Bu işlemi tek tek yapmak yerine toplu kullanıcı listeniz varsa bir döngüyle halledebilirsiniz:

#!/bin/bash
# Tüm aktif kullanıcılar için arşiv hesabı oluşturma betiği
DOMAIN="sirketadi.com"
ARSIV_DOMAIN="arsiv.sirketadi.com"
ARSIV_SIFRE="Arsiv@2024Sifre!"

# Kullanıcı listesini çek
KULLANICILAR=$(zmprov -l gaa $DOMAIN)

for kullanici in $KULLANICILAR; do
    kullanici_adi=$(echo $kullanici | cut -d'@' -f1)
    arsiv_hesap="${kullanici_adi}_arsiv@${ARSIV_DOMAIN}"
    
    echo "İşleniyor: $kullanici -> $arsiv_hesap"
    
    # Arşiv hesabı oluştur
    zmprov ca $arsiv_hesap "$ARSIV_SIFRE" displayName "Arşiv: $kullanici_adi"
    
    # Kullanıcıya bağla ve aktifleştir
    zmprov ma $kullanici zimbraArchiveAccount $arsiv_hesap
    zmprov ma $kullanici zimbraArchiveEnabled TRUE
    
    echo "Tamamlandı: $kullanici"
done

Mesaj Saklama Politikaları (Retention Policy)

Arşivleme ile mesaj saklama politikalarını birbirine karıştırmamak gerekiyor. Arşivleme bir kopyayı saklarken, saklama politikaları belirli kurallar çerçevesinde maillerin ne kadar süre tutulacağını yönetir. İkisi birbirini tamamlar.

Zimbra’da mesaj saklama politikaları iki seviyede tanımlanır:

  • Sistem geneli politikalar: Tüm kullanıcılara uygulanır, admin tarafından zorunlu kılınabilir
  • Kullanıcı bazlı politikalar: Kullanıcının kendi yönetebileceği politikalar (admin izin verirse)
# Mevcut saklama politikalarını listele
zmprov gac | grep zimbraMailPurgeUseChangeDateForReceive

# Sistem geneli varsayılan saklama süresi (saniye cinsinden)
# 0 = süresiz, 31536000 = 1 yıl
zmprov mcf zimbraMailMessageLifetime 63072000  # 2 yıl

# Çöp kutusu için ayrı politika
zmprov mcf zimbraMailTrashLifetime 2592000  # 30 gün

# Spam klasörü için politika
zmprov mcf zimbraMailSpamLifetime 604800  # 7 gün

Class of Service Üzerinden Saklama Politikası

Farklı departmanlar için farklı politikalar uygulamak gerektiğinde CoS (Class of Service) yapısını kullanmak en temiz yöntemdir. Muhasebe departmanı için 7 yıllık saklama, IT departmanı için 2 yıllık saklama gibi senaryoları bu şekilde yönetebilirsiniz.

# Muhasebe için özel CoS oluştur
zmprov cc muhasebe_cos

# Bu CoS'a mesaj saklama politikası ata (7 yıl = 220752000 saniye)
zmprov mc muhasebe_cos zimbraMailMessageLifetime 220752000

# Muhasebe kullanıcısına bu CoS'u ata
zmprov ma [email protected] zimbraCOSId $(zmprov gc muhasebe_cos | grep zimbraId | awk '{print $2}')

Gerçek hayatta bu tip bir yapılandırma genellikle denetim gerekliliklerinden doğar. Türkiye’de Vergi Usul Kanunu kapsamında mali kayıtların 5 yıl saklanması zorunluluğu var. Finans ve muhasebe departmanları için bu politikayı otomatik uygulatmak, “ben silmiştim” gibi bahanelerin önüne geçer.

Arşiv Hesaplarını Yönetmek ve İzlemek

Arşiv hesapları zamanla ciddi boyutlara ulaşır. Bunu baştan planlamak şart. 500 kullanıcılı bir ortamda, kullanıcı başına günlük ortalama 50 MB mail trafiği varsayıldığında, 3 yıllık bir arşiv yaklaşık 27 TB veri demektir.

# Arşiv hesabının boyutunu kontrol et
zmprov gmi [email protected] | grep zimbraMailboxSize

# Tüm arşiv hesaplarının toplam boyutunu öğren
for hesap in $(zmprov -l gaa arsiv.sirketadi.com); do
    boyut=$(zmprov gmi $hesap | grep zimbraMailboxSize | awk '{print $2}')
    echo "$hesap: $boyut bytes"
done

# Arşiv hesabı için yeterli quota tanımla (50 GB = 53687091200 byte)
zmprov ma [email protected] zimbraMailQuota 53687091200

Arşiv hesapları için quota tanımlamak kritik. Quota dolduktan sonra yeni arşivleme işlemi başarısız olur ve bu sessizce kaçabilir. Monitoring altyapınıza arşiv hesabı quota doluluk oranını eklemenizi kesinlikle öneririm.

HSM ile Arşiv Verilerini Farklı Depolama Katmanlarına Taşıma

Zimbra Network Edition’da HSM (Hierarchical Storage Management) özelliği, eski verileri daha ucuz depolama katmanlarına otomatik olarak taşımanızı sağlar. Arşiv verilerini NFS mount veya daha yavaş ama kapasiteli disklere taşıyarak maliyet kontrolü yapabilirsiniz.

# İkinci depolama katmanını tanımla
zmprov ms $(zmhostname) zimbraHsmPolicy "message:before:-180days:secondary"

# HSM servisini başlat
zmprov ms $(zmhostname) +zimbraServiceEnabled hsm

# HSM'i manuel tetikle (test için)
zmmailboxdctl hsm start

# HSM durumunu kontrol et
zmmailboxdctl hsm status

180 günden eski arşiv mesajları bu yapılandırmayla otomatik olarak ikincil depolama alanına taşınır. Birincil depolama alanındaki yük azalır.

IMAP ile Arşive Erişim ve eDiscovery

Hukuki süreçlerde ya da iç denetimlerde belirli kullanıcılara ait mailleri sorgulamak gerekebilir. Zimbra’nın eDiscovery arayüzü Admin Console üzerinden erişilebilir, ancak komut satırından da çalışabilirsiniz.

# Belirli bir kullanıcının maillerinde arama yap
zmmailbox -z -m [email protected] search -t message "from:[email protected]"

# Tarih aralığıyla arama
zmmailbox -z -m [email protected] search -t message "after:2023/01/01 before:2023/12/31"

# Arşiv hesabında arama
zmmailbox -z -m [email protected] search -t message "subject:"sözleşme""

Bir hukuk müşavirinden “2022 yılı boyunca X firmasıyla yapılan tüm yazışmaları ver” talebi geldiğinde bu komutlar oldukça işinize yarar. Arşiv hesabı doğru kurgulanmışsa bu sorguyu dakikalar içinde yanıtlayabilirsiniz.

Mesaj Saklama Politikası Kilitleme

Kullanıcıların kendi mesaj saklama politikalarını değiştirip arşivlemeyi atlatmasını engellemek için politikaları admin seviyesinde kilitleyebilirsiniz.

# Kullanıcının saklama politikasını değiştirmesini engelle
zmprov ma [email protected] zimbraFeatureMailPriorityEnabled FALSE

# CoS seviyesinde politika değişikliğini kısıtla
zmprov mc muhasebe_cos zimbraMailMessageLifetime 220752000
zmprov mc muhasebe_cos +zimbraLockedAttribute zimbraMailMessageLifetime

# Admin dışında kimsenin bu özelliği değiştiremeyeceğinden emin ol
zmprov gac | grep zimbraLockedAttribute

zimbraLockedAttribute ile kilitlenen özellikler kullanıcı tarafından değiştirilemez. Bu, politika uyumluluğunu (compliance) garanti altına almak için kritik bir adımdır.

Loglardan Arşivleme Durumunu İzleme

Arşivleme işlemi sessizce devam eder, sorunlar da sessizce oluşabilir. Mail log’larını düzenli olarak gözden geçirmek şart.

# Arşivlemeyle ilgili log kayıtlarını filtrele
grep -i "archive" /var/log/zimbra.log | tail -100

# Arşivleme hatalarını bul
grep -i "archive.*error|archive.*failed" /var/log/zimbra.log

# Belirli bir kullanıcı için arşivleme loglarını kontrol et
grep "ahmet.yilmaz" /var/log/zimbra.log | grep -i archive

# Son 24 saatteki arşivleme aktivitesini özetle
awk '/$(date +"%b %e")/,0' /var/log/zimbra.log | grep -c "archive"

Haftalık bazda bu log kontrolünü otomatize etmek ve bir rapora dönüştürmek, “arşivleme çalışıyor mu acaba” kaygısını ortadan kaldırır.

Backup ile Arşivlemenin Farkı ve Birlikte Çalışması

Bu noktada önemli bir ayrıma değinmek istiyorum çünkü kurumların çoğu bu ikisini birbiriyle karıştırıyor. Backup sistemi bir felaket kurtarma aracıdır, arşivleme ise yasal ve kurumsal gereklilikler için mesajların değiştirilemez biçimde saklanmasıdır.

Zimbra’nın kendi backup mekanizması ile arşiv hesaplarını birlikte kullanmak en sağlıklı yaklaşımdır.

# Arşiv domain'ini backup kapsamına dahil et
# /opt/zimbra/conf/localconfig.xml içinde kontrol et
zmlocalconfig zimbra_backup_exclude_paths

# Arşiv hesaplarını içeren tam backup al
zmbackup -f -a arsiv.sirketadi.com

# Backup durumunu kontrol et
zmbackup -s

# Belirli bir arşiv hesabını restore et
zmrestore -a [email protected] -restoreToTime "2024/01/15 00:00:00"

Arşiv hesaplarını backup’ın dışında tutmak büyük bir hata olur. Arşivleme altyapısı çöktüğünde veri kaybı hem teknik hem hukuki sorun yaratır.

Dış Arşivleme Sistemleriyle Entegrasyon

Open Source Edition kullanan ya da mevcut kurumsal arşivleme çözümü bulunan ortamlar için Zimbra’yı harici sistemlere entegre etmek mümkün. Postfix seviyesinde BCC yönlendirmesi en yaygın yöntemdir.

# Postfix always_bcc ayarıyla tüm mailleri harici arşive yönlendir
# /opt/zimbra/conf/postfix_header_checks dosyasını düzenle

# Zimbra'nın Postfix config'ine ekle
zmprov ms $(zmhostname) zimbraMtaAlwaysBccOff FALSE

# always_bcc için postfix konfigürasyonu
postconf -e "always_bcc = [email protected]"

# Postfix'i yeniden yükle
postfix reload

Bu yaklaşım, mevcut ticari arşivleme çözümlerinizle (Mimecast, Barracuda, Proofpoint gibi) Zimbra’yı entegre etmenin en az müdahale gerektiren yoludur.

Politika Testleri ve Doğrulama

Yaptığınız yapılandırmanın gerçekten çalışıp çalışmadığını test etmeden production’a almayın. Bu kuralı biz zor yoldan öğrendik.

# Test kullanıcısı oluştur ve arşivlemeyi aktifleştir
zmprov ca [email protected] 'Test1234!'
zmprov ca [email protected] 'Test1234!'
zmprov ma [email protected] zimbraArchiveAccount [email protected]
zmprov ma [email protected] zimbraArchiveEnabled TRUE

# Test maili gönder
echo "Arşivleme testi" | mail -s "Test Maili" [email protected]

# 5 dakika bekle, ardından arşiv hesabını kontrol et
sleep 300
zmmailbox -z -m [email protected] search -t message "subject:Test"

Bu test başarılıysa arşivleme altyapısı beklendiği gibi çalışıyor demektir. Test hesaplarını daha sonra temizlemeyi unutmayın.

Yasal Uyumluluk ve KVKK Değerlendirmesi

Türkiye’deki ortamlarda KVKK kapsamında kişisel veri saklama konusu arşivlemeyi doğrudan etkiliyor. Arşivlenen maillerde kişisel veri bulunabileceğinden, saklama sürelerinin hukuki gerekliliklerle uyumlu olması ve gereksiz verinin zamanında imha edilmesi gerekiyor.

Bu açıdan bakıldığında sonsuz süreyle arşivleme yapmak aslında bir risk oluşturabilir. Saklama politikalarınızı hem teknik hem hukuki ekiple birlikte belirlemenizi öneririm.

Arşiv hesaplarına erişim loglarını da tutmak kritik. Kim, ne zaman, hangi arşiv hesabına eriştiyse bunun kaydı olmalı. Zimbra Admin Console audit logları bu konuda yardımcı olur ama ek bir SIEM entegrasyonu güvenlik açısından daha güçlü bir altyapı sağlar.

Sonuç

Zimbra’da arşivleme ve mesaj saklama politikaları, kurulduktan sonra “halloldu” diyebileceğiniz bir yapı değil. Büyüyen veri hacimleri, değişen yasal gereklilikler ve kurumun dinamikleri bu altyapıyı canlı tutmayı gerektiriyor.

Özetlemek gerekirse kritik adımlar şunlar: Arşiv hesaplarını kullanıcılardan izole tutun, CoS yapısını kullanarak departmana özgü politikalar tanımlayın, arşivleme loglarını düzenli izleyin, backup kapsamında arşiv verilerini unutmayın ve her yapılandırma değişikliğinden sonra test edin.

Uygulamadan önce mutlaka bir staging ortamında deneme yapın. Arşivleme yapılandırmasındaki bir hata genellikle anında değil, aylar sonra ihtiyaç duyulduğunda ortaya çıkar. O noktada geri dönmek çok daha maliyetli olur.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir