Takip et

Ubuntu 12.04 VPS Üzerinde Bacula ile Uzak Yedeklemelerin Yapılandırılması

Ubuntu 12.04 VPS Üzerinde Bacula ile Uzak Yedeklemelerin Yapılandırılması Giriş Dijital çağda veri, bir kurumun veya bireyin en değerli varl

Ubuntu 12.04 VPS Üzerinde Bacula ile Uzak Yedeklemelerin Yapılandırılması

Giriş

Dijital çağda veri, bir kurumun veya bireyin en değerli varlıklarından biridir. Sunucular, özellikle de bir VPS (Sanal Özel Sunucu) üzerinde çalışanlar, çeşitli risklere açıktır: donanım arızaları, yazılım hataları, siber saldırılar veya insan hataları. Bu tür olaylar veri kaybına yol açabilir ve iş sürekliliğini ciddi şekilde etkileyebilir. Bu nedenle, düzenli ve güvenilir yedekleme stratejileri uygulamak kritik öneme sahiptir. Uzak yedeklemeler, birincil sunucunuzun başına bir şey gelmesi durumunda verilerinizin fiziksel olarak farklı bir konumda güvende olmasını sağlayarak ekstra bir güvenlik katmanı sunar.

Bu makale, açık kaynaklı, güçlü ve esnek bir yedekleme çözümü olan Bacula’yı kullanarak Ubuntu 12.04 işletim sistemine sahip bir VPS üzerinde uzak yedeklemelerin nasıl yapılandırılacağını ayrıntılı olarak açıklamaktadır. Ubuntu 12.04’ün artık uzun süreli desteğinin (LTS) sona ermiş ve güncel olmayan bir sürüm olduğunu kabul etmekle birlikte, bu makale özel olarak bu ortamda çalışan sistemler için pratik bir rehber sunmaktadır. Bacula’nın modüler yapısı ve kapsamlı özellikleri, küçük ölçekli kişisel VPS’lerden büyük kurumsal altyapılara kadar geniş bir yelpazede yedekleme ihtiyaçlarını karşılamasını sağlar. Amacımız, Bacula’nın temel mimarisini anlamaktan, kurulumuna, yapılandırmasına ve yedekleme/geri yükleme işlemlerine kadar adım adım bir yol haritası sunmaktır.

Bacula Mimarisi ve Temel Bileşenleri

Bacula, dağıtık bir yedekleme sistemidir ve birden fazla bileşenin uyumlu bir şekilde çalışmasıyla işlev görür. Bu modüler yapı, Bacula’yı son derece esnek ve ölçeklenebilir kılar. Temel bileşenleri şunlardır:

Director (DIR)

Bacula Director, tüm yedekleme operasyonlarının beynidir. Yedekleme ve geri yükleme işlerini yönetir, zamanlamaları belirler, hangi istemcilerin yedekleneceğini, hangi dosyaların yedekleneceğini ve verilerin nereye depolanacağını kontrol eder. Director, aynı zamanda tüm Bacula bileşenleri arasındaki iletişimi koordine eder. Director’ın yapılandırma dosyası bacula-dir.conf‘tur.

Storage Daemon (SD)

Storage Daemon, yedekleme verilerini depolama aygıtlarına (disk, teyp, bulut depolama vb.) yazar ve geri yükleme sırasında bu verileri okur. Director’dan gelen komutları alır ve File Daemon’dan gelen verileri depolar. Bir Bacula ortamında birden fazla Storage Daemon bulunabilir, bu da depolama kapasitesi ve performansı açısından esneklik sağlar. Storage Daemon’ın yapılandırma dosyası bacula-sd.conf‘tur.

File Daemon (FD) / Client

File Daemon, yedeklenecek veya geri yüklenecek dosyaların bulunduğu istemci makine üzerinde çalışır. Director’dan gelen komutları alır, belirtilen dosyaları okur ve Storage Daemon’a gönderir veya Storage Daemon’dan gelen verileri alıp geri yükleme işlemini gerçekleştirir. Her yedeklenecek sunucu (bu durumda Ubuntu 12.04 VPS’iniz) bir File Daemon çalıştırır. File Daemon’ın yapılandırma dosyası bacula-fd.conf‘tur.

Console

Bacula Console, yöneticilerin Director ile etkileşim kurmasını sağlayan bir arayüzdür. Yedekleme işlerini başlatmak, durdurmak, izlemek, geri yükleme yapmak ve Bacula ortamının genel durumunu yönetmek için kullanılır. Hem komut satırı tabanlı (bconsole) hem de grafiksel kullanıcı arayüzü (Bacula Web GUI – Baculum veya BWeb) sürümleri mevcuttur.

Catalog (Veritabanı)

Catalog, Bacula’nın yedeklediği tüm veriler hakkında meta verileri depolayan bir veritabanıdır. Hangi dosyaların ne zaman, hangi iş kapsamında ve hangi depolama birimine yedeklendiği gibi bilgileri içerir. Geri yükleme işlemleri için kritik öneme sahiptir, çünkü Bacula’nın belirli bir dosyanın nerede bulunduğunu hızlıca bulmasını sağlar. PostgreSQL veya MySQL gibi ilişkisel veritabanları kullanılabilir.

Uzak yedekleme senaryosunda, genellikle Director, Storage Daemon ve Catalog aynı sunucuda (yedekleme sunucusu) bulunurken, File Daemon uzak VPS üzerinde çalışır.

Hazırlık Aşaması

Uzak yedekleme sistemini kurmaya başlamadan önce bazı ön hazırlıkların yapılması gerekmektedir. Bu adımlar, kurulumun sorunsuz ilerlemesini sağlayacaktır.

Sistem Gereksinimleri

Ubuntu 12.04 VPS’inizde Bacula File Daemon’ı çalıştırmak için çok yüksek sistem kaynaklarına ihtiyaç duyulmaz. Ancak, yedeklenecek veri miktarı ve yedekleme sıklığına bağlı olarak CPU ve RAM kullanımı artabilir. Minimum 512 MB RAM ve 1 CPU çekirdeği genellikle yeterlidir. Yedekleme sunucusu (Director, Storage Daemon, Catalog) için ise daha fazla kaynak (özellikle depolama ve RAM) önerilir.

Ağ Yapılandırması ve Güvenlik Duvarı

Bacula bileşenleri arasındaki iletişim belirli TCP portları üzerinden gerçekleşir. Bu portların güvenlik duvarında açık olması gerekmektedir.
* Director (DIR): Genellikle 9101 (istemciler ve depolama ile iletişim için)
* Storage Daemon (SD): Genellikle 9103 (istemcilerden veri almak için)
* File Daemon (FD): Genellikle 9102 (Director’dan komut almak için)

Ubuntu 12.04 üzerinde UFW (Uncomplicated Firewall) yüklü ise, bu portları açmanız gerekecektir.

Yedekleme Sunucusu (Director, Storage Daemon):

sudo ufw allow 9101/tcp
sudo ufw allow 9103/tcp
sudo ufw enable

Uzak VPS (File Daemon):

sudo ufw allow 9102/tcp
sudo ufw enable

Bu komutlar, ilgili portlara gelen bağlantılara izin verir. Güvenliği artırmak için, bu portlara yalnızca bilinen IP adreslerinden (yedekleme sunucunuzun IP’si gibi) erişime izin verebilirsiniz.

Sistem Güncellemesi

Kuruluma başlamadan önce sistemin güncel olduğundan emin olun:

sudo apt-get update
sudo apt-get upgrade

Gerekli Paketlerin Kurulumu

Bacula’yı iki farklı sunucuya kuracağız:
1. Yedekleme Sunucusu (Director, Storage Daemon, Console, Catalog): Bu sunucu, yedekleme işlerini yönetecek ve yedeklenen verileri depolayacaktır.
2. Uzak VPS (File Daemon): Bu sunucu, yedeklenecek dosyaların bulunduğu istemci makinedir.

Yedekleme Sunucusu Üzerinde Kurulum:

sudo apt-get install bacula-director bacula-sd bacula-console postgresql bacula-client

Bu komut, Bacula Director, Storage Daemon, Console, PostgreSQL veritabanı sunucusu ve istemci araçlarını (genellikle Director sunucusunda da bir File Daemon bulunur) kuracaktır. Kurulum sırasında size veritabanı seçimi ve yapılandırma ile ilgili sorular sorulacaktır. PostgreSQL’i seçmeniz önerilir ve Bacula’nın veritabanını otomatik olarak oluşturmasına izin verebilirsiniz.

Uzak VPS Üzerinde Kurulum:

sudo apt-get install bacula-client

Bu komut, uzak VPS üzerinde yalnızca Bacula File Daemon’ı (bacula-client paketi içerisinde gelir) kuracaktır.

Veritabanı Yapılandırması

Bacula’nın katalog verilerini depolamak için bir veritabanına ihtiyacı vardır. Kurulum sırasında PostgreSQL’i seçtiyseniz, Bacula kurulum betikleri genellikle veritabanını ve kullanıcıyı sizin için oluşturur. Ancak, manuel olarak kontrol etmek veya yeniden yapılandırmak isteyebilirsiniz.

PostgreSQL Kontrolü:
Bacula kurulumu sırasında otomatik oluşturulan veritabanı ve kullanıcı genellikle bacula adını taşır.
PostgreSQL’e bağlanarak kontrol edebilirsiniz:

sudo -u postgres psql

\l komutu ile veritabanlarını, \du komutu ile kullanıcıları listeleyebilirsiniz. bacula veritabanının ve kullanıcısının mevcut olduğunu görmelisiniz.
Eğer otomatik yapılandırma sırasında bir sorun oluşursa veya manuel yapılandırmak isterseniz:

# PostgreSQL kullanıcısı oluştur
sudo -u postgres createuser -P bacula

Şifre girmeniz istenecek (örn: mysecurepassword)

Veritabanı oluştur

sudo -u postgres createdb -O bacula bacula

Şimdi Bacula şemalarını oluşturmanız gerekecek. Bu şemalar, Bacula’nın katalog verilerini depolamak için ihtiyaç duyduğu tabloları içerir. Bacula paketleriyle birlikte gelen SQL betiklerini kullanın:

cd /usr/share/bacula-director
sudo -u postgres psql -U bacula -d bacula -f bacula.sql
sudo -u postgres psql -U bacula -d bacula -f grant_privileges.sql
sudo -u postgres psql -U bacula -d bacula -f make_bacula_tables.sql

Bu adımlar, Bacula’nın PostgreSQL veritabanını düzgün bir şekilde kullanabilmesi için gerekli tüm tabloları ve izinleri oluşturur.

Bacula Director (DIR) Yapılandırması

Bacula Director’ın ana yapılandırma dosyası /etc/bacula/bacula-dir.conf‘tur. Bu dosya, Bacula’nın nasıl çalışacağını tanımlayan bir dizi “kaynak” içerir. Temel kaynaklar şunlardır:

* Director: Director’ın kendisi için tanımlamalar.
* Catalog: Veritabanı bağlantı bilgileri.
* Client: Yedeklenecek her bir istemci (File Daemon) için tanımlamalar.
* Storage: Yedekleme verilerinin depolanacağı Storage Daemon’lar için tanımlamalar.
* Job: Yedekleme veya geri yükleme işlerinin tanımları.
* Schedule: İşlerin ne zaman çalışacağını belirten zamanlamalar.
* FileSet: Hangi dosyaların yedekleneceğini veya hariç tutulacağını belirten kurallar.
* Pool: Yedekleme ortamlarının (disk birimleri) yönetimi.
* Messages: Olay günlüklerinin nereye gönderileceğini belirten tanımlar.

bacula-dir.conf dosyasını düzenlemek için bir metin düzenleyici kullanın:

sudo nano /etc/bacula/bacula-dir.conf

Aşağıda önemli bölümlerin ve uzak yedekleme senaryosu için gerekli değişikliklerin bir özeti bulunmaktadır:

Director Kaynağı

Director {
  Name = bacula-dir
  DIRport = 9101
  QueryFile = "/etc/bacula/query.sql"
  Password = "your_director_password" # Güçlü bir şifre belirleyin
  Messages = Daemon
}

Password alanı, konsolun Director’a bağlanmak için kullanacağı şifredir.

Catalog Kaynağı

Veritabanı bağlantı bilgilerini içerir. PostgreSQL için:

Catalog {
  Name = MyCatalog
  dbdriver = "postgresql"
  dbaddress = 127.0.0.1
  dbport = 5432
  dbuser = bacula
  dbpassword = "mysecurepassword" # Veritabanı kullanıcısının şifresi
  dbname = bacula
}

dbaddress genellikle 127.0.0.1 (localhost) olur, çünkü Director ve veritabanı aynı sunucudadır.

Client Kaynağı (Uzak VPS için)

Bu, uzak Ubuntu 12.04 VPS’inizi temsil eder. Her bir uzak istemci için bir Client kaynağı tanımlamanız gerekir.

Client {
  Name = ubuntu-vps-fd
  Address = YOUR_VPS_IP_ADDRESS # Uzak VPS'inizin IP adresi
  FDPort = 9102
  Catalog = MyCatalog
  Password = "your_vps_fd_password" # Uzak VPS'teki File Daemon için güçlü bir şifre
  FileRetention = 30 days # Yedeklenen dosyaların katalogda ne kadar kalacağı
  JobRetention = 6 months # Yedekleme işlerinin katalogda ne kadar kalacağı
  AutoPrune = yes
}

Name benzersiz olmalıdır. Address alanına uzak VPS’inizin genel IP adresini girin. Password alanındaki şifre, uzak File Daemon’ın yapılandırma dosyasındaki şifre ile eşleşmelidir.

Storage Kaynağı

Bu, yedekleme verilerini depolayacak Storage Daemon’ı tanımlar. Eğer Director ve Storage Daemon aynı sunucudaysa Address 127.0.0.1 olabilir.

Storage {
  Name = FileStorage
  Address = 127.0.0.1 # Storage Daemon'ın çalıştığı sunucunun IP adresi
  SDPort = 9103
  Password = "your_sd_password" # Storage Daemon için güçlü bir şifre
  Device = FileStorageDevice
  MediaRetention = 30 days # Depolama birimlerinin ne kadar süreyle saklanacağı
}

Job Kaynağı

Yedekleme işlerinin nasıl çalışacağını tanımlar.

Job {
  Name = "BackupUbuntuVPS"
  Type = Backup
  Client = ubuntu-vps-fd
  FileSet = "FullSet"
  Schedule = "WeeklySchedule"
  Storage = FileStorage
  Pool = Default
  Messages = Standard
  WriteBootstrap = "/var/lib/bacula/%c%n.bsr"
  RunScript = "echo 'Yedekleme tamamlandı: %n' | mail -s 'Bacula Yedekleme' admin@example.com" on Success
}

* Name: İşin adı.
* Type: Yedekleme (Backup) veya geri yükleme (Restore).
* Client: Hangi istemcinin yedekleneceği (yukarıda tanımladığımız ubuntu-vps-fd).
* FileSet: Hangi dosyaların yedekleneceği (bir sonraki bölümde tanımlayacağız).
* Schedule: İşin ne zaman çalışacağı (bir sonraki bölümde tanımlayacağız).
* Storage: Hangi depolama birimine yedekleneceği.
* Pool: Hangi depolama havuzunun kullanılacağı.
* RunScript: Başarılı bir yedeklemeden sonra çalıştırılacak bir komut (isteğe bağlı, bildirim için).

FileSet Kaynağı

Yedeklenecek dosyaları ve dizinleri tanımlar.

FileSet {
  Name = "FullSet"
  Include {
    Options {
      signature = MD5 # Dosya bütünlüğünü kontrol etmek için
      compression = GZIP # Sıkıştırma kullan
    }
    File = /etc
    File = /home
    File = /var/www # Web siteleriniz varsa
  }
  Exclude {
    File = /var/lib/bacula
    File = /tmp
    File = /proc
    File = /sys
  }
}

File direktifi ile yedeklenecek yolları, Exclude ile hariç tutulacak yolları belirtin.

Schedule Kaynağı

Yedekleme işlerinin ne zaman çalışacağını tanımlar.

Schedule {
  Name = "WeeklySchedule"
  Run = Full 1st sun at 03:00
  Run = Incremental mon-sat at 03:00
}

Bu örnek, ayın ilk Pazar günü tam yedekleme, haftanın diğer günleri artımlı yedekleme yapar.

Pool Kaynağı

Depolama birimlerini (volumeler) yönetir.

Pool {
  Name = Default
  PoolType = Backup
  Recycle = yes # Eski volumeleri yeniden kullan
  AutoPrune = yes # Eski volumeleri otomatik sil
  LabelFormat = "Default-" # Volumeler için etiket formatı
  VolumeRetention = 30 days # Volumelerin ne kadar süreyle saklanacağı
  MaximumVolumeBytes = 5G # Bir volume'ün maksimum boyutu
}

Bu ayarlar, disk alanınızın verimli kullanılmasını sağlar.

Tüm bu değişiklikleri yaptıktan sonra bacula-dir.conf dosyasını kaydedin ve Director servisini yeniden başlatın:

sudo service bacula-director restart

Konfigürasyonunuzu test etmek için sudo bacula-dir -t komutunu kullanabilirsiniz.

Bacula Storage Daemon (SD) Yapılandırması

Storage Daemon’ın ana yapılandırma dosyası /etc/bacula/bacula-sd.conf‘tur. Bu dosya, Storage Daemon’ın kendisini, kullanacağı depolama aygıtlarını ve hangi Director’dan komut alacağını tanımlar.

sudo nano /etc/bacula/bacula-sd.conf

Aşağıda önemli bölümlerin ve uzak yedekleme senaryosu için gerekli değişikliklerin bir özeti bulunmaktadır:

Storage Kaynağı

Storage Daemon’ın kendisi için tanımlamalar.

Storage {
  Name = bacula-sd
  SDPort = 9103
  WorkingDirectory = "/var/lib/bacula"
  Pid Directory = "/var/run/bacula"
  Maximum Concurrent Jobs = 20
}

Device Kaynağı

Yedekleme verilerinin fiziksel olarak nereye yazılacağını tanımlar. Disk tabanlı depolama için:

Device {
  Name = FileStorageDevice
  Media Type = File
  Archive Device = /var/lib/bacula/storage # Yedekleme verilerinin depolanacağı dizin
  LabelMedia = yes
  Random Access = yes
  AutomaticMount = yes
  RemovableMedia = no
  AlwaysOpen = no
}

Archive Device alanına yedekleme verilerinin depolanacağı bir dizin yolu belirtin. Bu dizini oluşturmanız ve Bacula kullanıcısına yazma izinleri vermeniz gerekmektedir:

sudo mkdir -p /var/lib/bacula/storage
sudo chown -R bacula:bacula /var/lib/bacula/storage
sudo chmod -R 770 /var/lib/bacula/storage

Director Kaynağı (SD için)

Storage Daemon’ın hangi Director ile iletişim kuracağını tanımlar.

Director {
  Name = bacula-dir
  Password = "your_sd_password" # Director'ın Storage kaynağında tanımlanan şifre ile aynı olmalı
}

Bu şifrenin, Director yapılandırmasındaki Storage kaynağında tanımlanan şifre ile aynı olması gerektiğini unutmayın.

Değişiklikleri kaydettikten sonra Storage Daemon servisini yeniden başlatın:

sudo service bacula-sd restart

Konfigürasyonunuzu test etmek için sudo bacula-sd -t komutunu kullanabilirsiniz.

Bacula File Daemon (FD) Yapılandırması (Uzak VPS)

Uzak Ubuntu 12.04 VPS’inizdeki File Daemon’ın ana yapılandırma dosyası /etc/bacula/bacula-fd.conf‘tur. Bu dosya, File Daemon’ın kendisini ve hangi Director’dan komut alacağını tanımlar.

sudo nano /etc/bacula/bacula-fd.conf

Aşağıda önemli bölümlerin ve uzak yedekleme senaryosu için gerekli değişikliklerin bir özeti bulunmaktadır:

FileDaemon Kaynağı

File Daemon’ın kendisi için tanımlamalar.

FileDaemon {
  Name = ubuntu-vps-fd
  FDPort = 9102
  WorkingDirectory = "/var/lib/bacula"
  Pid Directory = "/var/run/bacula"
  Maximum Concurrent Jobs = 20
}

Name alanının Director yapılandırmasındaki Client kaynağının Name alanı ile eşleşmesi gerektiğini unutmayın.

Director Kaynağı (FD için)

File Daemon’ın hangi Director ile iletişim kuracağını tanımlar.

Director {
  Name = bacula-dir
  Password = "your_vps_fd_password" # Director'ın Client kaynağında tanımlanan şifre ile aynı olmalı
}

Name alanı, Director’ın Director kaynağındaki Name alanı ile eşleşmelidir. Password alanı ise Director’ın Client kaynağında tanımlanan şifre ile aynı olmalıdır.

Değişiklikleri kaydettikten sonra File Daemon servisini yeniden başlatın:

sudo service bacula-client restart

Konfigürasyonunuzu test etmek için sudo bacula-fd -t komutunu kullanabilirsiniz.

Yedekleme ve Geri Yükleme İşlemleri

Tüm bileşenler yapılandırılıp servisler yeniden başlatıldıktan sonra, Bacula konsolu (bconsole) aracılığıyla yedekleme işlerini yönetebilir ve geri yükleme işlemleri yapabilirsiniz.

Bacula Konsoluna Bağlanma:
Yedekleme sunucunuzda, komut satırına bconsole yazarak konsola bağlanın:

bconsole

Şifre sorulursa, Director yapılandırmasındaki Director kaynağının Password alanını girin.

Yedekleme İşlemini Başlatma:
Bir yedekleme işini manuel olarak başlatmak için run komutunu kullanın:

*run

Bacula size tanımlanmış işlerin bir listesini sunacaktır. Yedeklemek istediğiniz işin numarasını seçin (örneğin, BackupUbuntuVPS işiniz).

A job name must be specified.
The defined Job resources are:
     1: BackupClient1
     2: BackupUbuntuVPS
Select Job resource (1-2): 2

Seçimden sonra, Bacula size işin ayarlarını gösterecek ve onay isteyecektir. yes yazarak onaylayın.

Run Backup job
Job:          BackupUbuntuVPS
Level:        Full
Client:       ubuntu-vps-fd
...
Run Job? [yes/no]: yes

İş başlatıldıktan sonra, konsolda işin durumunu görebilirsiniz. status dir komutu ile Director’ın, status client ile istemcilerin ve status storage ile depolamanın durumunu kontrol edebilirsiniz.

Yedekleme Durumunu Kontrol Etme:

*status dir
*status client
*status storage

Bu komutlar, çalışan işleri, bağlı istemcileri ve depolama birimlerini gösterir. İşin tamamlandığını veya bir hata oluştuğunu görmek için bu komutları kullanabilirsiniz. Ayrıca /var/log/bacula/bacula.log dosyasını da kontrol edebilirsiniz.

Dosya Geri Yükleme İşlemi:
Geri yükleme işlemi de bconsole üzerinden yapılır ve oldukça esnektir. Belirli bir işten, belirli bir tarihten veya belirli bir istemciden dosya geri yükleyebilirsiniz.

*restore

Bu komut sizi interaktif bir menüye götürecektir.
1. Client Seçimi: Hangi istemciden geri yükleme yapacağınızı seçin.

You have selected the following restore job:
       Client: ubuntu-vps-fd

2. Yedekleme İşini Seçme: Geri yüklemek istediğiniz dosyaların hangi yedekleme işinde olduğunu seçin. Genellikle en son yedeklemeden geri yüklenir, ancak belirli bir tarihteki yedeklemeyi de seçebilirsiniz.

Enter a period or date to restore from: (e.g. "today", "yesterday", "lastweek", "lastmonth", "lastyear", or "yyyy-mm-dd hh:mm:ss")

done yazarak sonraki adıma geçin.
3. Dosyaları İşaretleme: Bir dosya tarayıcı arayüzü açılacaktır. Burada geri yüklemek istediğiniz dosya ve dizinleri mark komutu ile işaretleyebilirsiniz. ls ile dizinleri listeleyebilir, cd ile dizin değiştirebilirsiniz. İşaretlemeyi bitirdikten sonra done yazın.

To select the files, use the "mark " command, or click on the file in the GUI.
    To unselect, use the "unmark " command.
    To mark all files, use the "mark *" command.
    To unmark all files, use the "unmark *" command.
    Files marked: 0

4. Geri Yükleme Hedefi: Dosyaları orijinal konumlarına mı yoksa farklı bir dizine mi geri yükleyeceğinizi seçin. Genellikle test amaçlı olarak farklı bir dizine (/tmp/bacula-restore) geri yüklemek daha güvenlidir.

Restore where?
       1: Restore to original location
       2: Restore to different client
       3: Restore to a different directory
    Select option (1-3): 3
    Enter the full path to the restore directory: /tmp/bacula-restore

5. Geri Yüklemeyi Başlatma: Onay ekranından sonra yes yazarak geri yükleme işlemini başlatın.

Geri yükleme işlemi tamamlandığında, belirtilen dizinde dosyalarınızın geri yüklendiğini kontrol edebilirsiniz.

Güvenlik ve Performans İpuçları

Uzak yedekleme sistemi kurarken güvenlik ve performans göz önünde bulundurulması gereken önemli faktörlerdir.

Firewall Ayarları

Daha önce bahsettiğimiz gibi, Bacula bileşenleri arasındaki portları yalnızca gerekli IP adreslerine açmak güvenlik açısından kritik öneme sahiptir.

# Yedekleme Sunucusu üzerinde (Director/Storage)
sudo ufw allow from YOUR_VPS_IP_ADDRESS to any port 9101 proto tcp # Sadece VPS'ten gelen Director bağlantılarına izin ver
sudo ufw allow from YOUR_VPS_IP_ADDRESS to any port 9103 proto tcp # Sadece VPS'ten gelen Storage bağlantılarına izin ver

Uzak VPS üzerinde (File Daemon)

sudo ufw allow from YOUR_BACKUP_SERVER_IP_ADDRESS to any port 9102 proto tcp # Sadece Yedekleme Sunucusundan gelen FD bağlantılarına izin ver

Şifreler ve TLS/SSL Kullanımı

Bacula, bileşenler arası iletişimi şifrelemek için TLS (Transport Layer Security) kullanabilir. Ubuntu 12.04’te bu özellik mevcuttur. TLS, özellikle uzak yedeklemelerde, hassas verilerin ağ üzerinden güvenli bir şekilde aktarılmasını sağlar. TLS yapılandırması, her bir Bacula bileşeninin yapılandırma dosyasına (Director, Storage Daemon, File Daemon) sertifika ve anahtar yollarını eklemeyi gerektirir. Bu, makalenin kapsamının ötesine geçebilir ancak ciddi bir güvenlik önlemidir. En azından, tüm Bacula şifrelerinizin güçlü ve benzersiz olduğundan emin olun.

Yedekleme Stratejileri

* Tam (Full) Yedekleme: Her seferinde tüm verilerin yedeklenmesidir. En güvenli ancak en yavaş ve en çok yer kaplayan yöntemdir.
Artımlı (Incremental) Yedekleme: En son herhangi bir* yedeklemeden (tam veya artımlı) sonra değişen verileri yedekler. En hızlı ve en az yer kaplayan yöntemdir ancak geri yükleme karmaşıktır (bir tam yedek ve tüm sonraki artımlı yedekler gereklidir).
Farklı (Differential) Yedekleme: En son tam* yedeklemeden sonra değişen verileri yedekler. Artımlıdan daha hızlı geri yüklenir (bir tam yedek ve en son farklı yedek yeterlidir) ancak artımlıdan daha fazla yer kaplar.

Genellikle “Full” ve “Incremental” veya “Full” ve “Differential” bir kombinasyon kullanılır. Örneğin, haftalık tam yedekleme ve günlük artımlı yedeklemeler.

Performans için Disk Seçimi

Yedekleme sunucusunda, yedekleme verilerinin depolandığı disklerin performansı önemlidir. SSD’ler veya RAID yapılandırmaları, hem yedekleme hem de geri yükleme sürelerini önemli ölçüde hızlandırabilir.

Log Takibi

Bacula’nın log dosyalarını düzenli olarak kontrol edin (/var/log/bacula/bacula.log). Olası sorunları veya uyarıları erkenden tespit etmenizi sağlar. Logları merkezi bir loglama sistemine (syslog, ELK stack vb.) göndermek de faydalı olabilir.

Sorun Giderme

Bacula kurulumu ve yapılandırması sırasında bazı yaygın sorunlarla karşılaşabilirsiniz.

* Bağlantı Sorunları:
* Firewall: En yaygın sorundur. İlgili portların (9101, 9102, 9103) hem yedekleme sunucusunda hem de uzak VPS’te açık olduğundan emin olun.
* IP Adresleri: Yapılandırma dosyalarındaki IP adreslerinin doğru olduğundan emin olun. Özellikle Client kaynağındaki Address ve Storage kaynağındaki Address.
* Servislerin Çalıştığından Emin Olun: sudo service bacula-director status, sudo service bacula-sd status, sudo service bacula-client status komutlarıyla servislerin çalışıp çalışmadığını kontrol edin.
* Veritabanı Hataları:
* bacula-dir.conf dosyasındaki Catalog kaynağındaki dbuser, dbpassword, dbname ve dbaddress bilgilerinin doğru olduğundan emin olun.
* Veritabanı kullanıcısının Bacula veritabanına erişim izinleri olduğundan emin olun.
* PostgreSQL veya MySQL servisinin çalıştığından emin olun.
* Şifre Uyuşmazlıkları:
* Director’daki Client kaynağının Password‘u ile File Daemon’daki Director kaynağının Password‘u aynı olmalı.
* Director’daki Storage kaynağının Password‘u ile Storage Daemon’daki Director kaynağının Password‘u aynı olmalı.
* bconsole‘a bağlanırken kullanılan şifre, Director’daki Director kaynağının Password‘u ile aynı olmalı.
* İzin Sorunları:
* Archive Device (Storage Daemon’da) dizininin bacula kullanıcısı tarafından yazılabilir olduğundan emin olun (chown, chmod).
* Bacula’nın WorkingDirectory ve Pid Directory dizinlerinin doğru izinlere sahip olduğundan emin olun.
* Log Dosyalarını İnceleme:
* /var/log/bacula/bacula.log ve /var/log/syslog dosyaları, sorunları teşhis etmek için çok değerli bilgiler içerir. Hata mesajlarını dikkatlice okuyun.
* Bacula servislerini hata ayıklama modunda başlatarak daha ayrıntılı bilgi alabilirsiniz (örn. sudo bacula-dir -d 100 -f).

Sonuç

Bu makalede, Ubuntu 12.04 işletim sistemine sahip bir VPS üzerinde Bacula kullanarak uzak yedekleme sisteminin nasıl kurulacağını ve yapılandırılacağını ayrıntılı bir şekilde ele aldık. Bacula’nın modüler mimarisi, güçlü yapılandırma seçenekleri ve esnekliği sayesinde, sunucularınızın verilerini güvenli bir şekilde yedekleyebilir ve olası felaket durumlarında veri kaybını en aza indirebilirsiniz.

Kurulum ve yapılandırma adımları, Bacula’nın temel bileşenlerinden başlayarak Director, Storage Daemon ve File Daemon’ın ayarlanmasını, veritabanı entegrasyonunu ve yedekleme/geri yükleme işlerinin oluşturulmasını kapsadı. Ayrıca, güvenlik duvarı ayarları, şifre yönetimi, TLS kullanımı, yedekleme stratejileri ve sorun giderme ipuçları gibi önemli konulara da değindik.

Unutulmamalıdır ki, Ubuntu 12.04 LTS’nin uzun süreli desteği (EOL) sona ermiştir. Bu, sistemin artık güvenlik güncellemeleri almadığı anlamına gelir ve üretim ortamlarında kullanılması önerilmez. Ancak, bu makale belirtilen spesifik ortamda Bacula’nın nasıl yapılandırılacağına dair teknik bir rehber sunmaktadır. Modern sistemlerde Bacula’nın kurulum ve yapılandırma adımları benzer olsa da, paket isimleri, varsayılan yollar ve bazı özellikler farklılık gösterebilir.

Bacula, bir kez doğru şekilde yapılandırıldığında, veri güvenliğiniz için sağlam bir temel oluşturur. Düzenli test yedeklemeleri ve geri yüklemeleri yaparak sisteminizin çalıştığından emin olmak, herhangi bir felaket anında kritik öneme sahiptir. Verilerinizin güvende olması, dijital varlıklarınızın korunması için atılacak en önemli adımlardan biridir.

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

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

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.