E-posta Sunucusu Log'larından Silinen Mesajları Geri Getirmek

E-posta sunucusu log'larında silinen mesajların izleri kalır. Dovecot ve Postfix gibi yaygın sunucularda, mesajlar hemen silinmez; önce log dosyalarına kaydedilir, ardından dosya sisteminde işaretlenir. Bu izleri takip ederek mesajları geri getirebilirsin.

İlk adım log dosyalarını incelemektir. Dovecot, silinen mesajları /var/log/dovecot.log veya /var/log/mail.log dosyasında kaydeder. Postfix ise /var/log/mail.log dosyasında SMTP işlemlerini tutar.

grep -i "expunge\|delete" /var/log/mail.log | grep "username@domain.com"

Bu komut, belirli bir kullanıcının silme işlemlerini gösterir. Çıktı şöyle görünür:

Jan 15 14:32:10 mailserver dovecot: imap(user): Expunged message UID 1234 from INBOX

UID (Unique Identifier) numarası önemlidir. Maildir formatında mesajlar /home/user/Maildir/.INBOX/cur/ klasöründe saklanır. Silinen dosyayı bulmak için UID'yi dosya adıyla eşleştir.

ls -la /home/user/Maildir/.INBOX/cur/ | grep "1234"

Eğer dosya hala orada varsa, adını değiştirerek kurtarabilirsin:

Reklam · TEST
AdSense Test ReklamıYazı arası (gönderi içi) · Yazı arası
mv /home/user/Maildir/.INBOX/cur/1234.* /home/user/Maildir/.INBOX/cur/1234.recovered

Dosya tamamen silinmişse, extundelete veya photorec gibi dosya kurtarma araçlarını kullanman gerekir. Ancak bu yöntem disk yazma işlemlerinden sonra başarısız olabilir. Derhal sunucuyu oku-yaz modundan çıkar:

mount -o remount,ro /var/mail

Ardından kurtarma işlemini başlat:

extundelete --restore-all /dev/sda1

Kurtarılan dosyalar RECOVERED_FILES/ klasöründe bulunur. Mesaj formatı RFC 2822 standardında olduğundan, metin editörü ile açıp içeriğini doğrulayabilirsin.

Log dosyalarından silme zamanını öğrendikten sonra, o tarihte alınan yedeklerden geri yükleme yapmak da pratiktir. Sunucu yöneticisi olarak, silinen mesajlerin en az 30 gün tutulacağı bir politika belirlemek uzun vadede sorunları önler.

Reklam · TEST
AdSense Test ReklamıGönderi altı · Görüntülü
konu hakkında tepkinizi verebilirsiniz