Bacula Sunucusunu Ubuntu 14.04 Üzerine Kurulumu ve Yapılandırması
Bacula, açık kaynaklı, kurumsal düzeyde bir ağ yedekleme çözümüdür. Sunucuların, iş istasyonlarının veya ağa bağlı bilgisayarların yedeklenmesini, doğrulanmasını ve geri yüklenmesini sağlayan bir dizi programdan oluşur. Bu makale, Bacula yedekleme sunucusunu (Director, Storage Daemon ve Console) eski ancak hala bazı ortamlarda karşılaşılabilecek olan Ubuntu 14.04 LTS işletim sistemi üzerine nasıl kuracağınızı ve temel düzeyde nasıl yapılandıracağınızı adım adım açıklamaktadır. Ubuntu 14.04, uzun süreli destek (LTS) sürümü olmasına rağmen artık resmi olarak desteklenmemektedir, ancak bu kılavuz Bacula’nın temel bileşenlerinin işleyişini anlamak ve eski sistemler üzerinde çalışmak zorunda kalanlar için değerli bir kaynak olacaktır.
Bacula’ya Giriş ve Temel Bileşenleri
Bacula, modüler bir yapıya sahiptir ve farklı işlevleri yerine getiren çeşitli bileşenlerden oluşur. Bu modüler yapı, Bacula’yı esnek ve ölçeklenebilir kılar. Kurulum sürecine başlamadan önce bu bileşenleri anlamak, sistemin genel işleyişini kavramanıza yardımcı olacaktır.
Bacula’nın Temel Bileşenleri
* Director (bacula-dir): Bacula yedekleme sisteminin beyni ve kalbidir. Tüm yedekleme, geri yükleme, doğrulama ve arşivleme operasyonlarını yönetir. Hangi dosyaların yedekleneceğini, ne zaman yedekleneceğini, nereye yedekleneceğini ve hangi istemcilerin yedekleneceğini belirleyen işleri (Jobs) planlar. Director, tüm yapılandırma bilgilerini ve yedekleme kataloğunu (Catalog) yönetir.
* Storage Daemon (bacula-sd): Yedekleme verilerinin fiziksel olarak depolandığı ve yönetildiği bileşendir. Disklere, teyplere veya bulut depolama alanlarına veri yazmaktan ve okumaktan sorumludur. Director’dan gelen komutları alır ve yedekleme işlemlerini Storage ortamında gerçekleştirir.
* File Daemon (bacula-fd): Yedeklenecek veya geri yüklenecek dosyaların bulunduğu istemci makine üzerinde çalışan yazılımdır. Director’dan gelen komutları alır, belirtilen dosyaları okur ve Storage Daemon’a gönderir veya geri yükleme sırasında dosyaları Storage Daemon’dan alıp istemciye yazar. Bu makalede, Bacula sunucusunun kendisini de bir istemci olarak yedekleyebilmek için File Daemon’ı da kuracağız.
* Catalog: Yedeklenen tüm dosyalar, dizinler ve işler hakkında bilgiler içeren bir veritabanıdır. Bacula, bu kataloğu kullanarak belirli bir dosyayı hızlıca bulabilir ve geri yükleyebilir. MySQL, PostgreSQL veya SQLite gibi veritabanları kullanılabilir. Bu kılavuzda MySQL kullanacağız.
* Console: Bacula Director ile iletişim kurarak yedekleme işlerini yönetmek, durumu izlemek ve geri yükleme işlemlerini başlatmak için kullanılan komut satırı veya grafik arayüzüdür. bconsole komut satırı arayüzünü kullanacağız.
Neden Ubuntu 14.04?
Ubuntu 14.04 (Trusty Tahr), Nisan 2014’te piyasaya sürülen ve Nisan 2019’a kadar resmi olarak desteklenen bir Uzun Süreli Destek (LTS) sürümüdür. Güncel sistemler için Ubuntu’nun daha yeni sürümleri tercih edilmelidir. Ancak, bazı eski altyapılarda veya belirli uygulama bağımlılıkları nedeniyle hala 14.04 kullanan sistemler bulunabilir. Bu makale, bu tür senaryolar için veya Bacula’nın temel kurulum prensiplerini eski bir ortamda öğrenmek isteyenler için hazırlanmıştır.
Ön Koşullar ve Sistem Güncellemesi
Kuruluma başlamadan önce, Ubuntu 14.04 sunucunuzun temel gereksinimleri karşıladığından ve güncel olduğundan emin olmalısınız. Root ayrıcalıklarına sahip bir kullanıcı olarak çalışmanız gerekecektir.
Sistem Gereksinimleri
* İşletim Sistemi: Ubuntu 14.04 LTS (64-bit önerilir)
* RAM: En az 1 GB (yedeklenecek veri miktarına ve istemci sayısına göre artırılabilir)
* CPU: Tek çekirdekli işlemci yeterli olabilir, ancak daha iyi performans için çok çekirdekli işlemci önerilir.
* Disk Alanı: İşletim sistemi ve Bacula için en az 10 GB, yedekleme verileri için ise ayrı ve yeterli bir disk alanı.
Sistemi Güncelleme
Kuruluma başlamadan önce sistem paket listesini güncellemeli ve mevcut paketleri yükseltmelisiniz. Bu, olası bağımlılık sorunlarını önlemeye yardımcı olacaktır.
sudo apt-get update
sudo apt-get upgrade -y
Veritabanı Kurulumu: MySQL
Bacula, yedekleme katalog bilgileri için bir veritabanına ihtiyaç duyar. Bu makalede, popüler ve yaygın olarak kullanılan MySQL veritabanını kuracak ve yapılandıracağız.
MySQL Sunucusunun Kurulumu
MySQL sunucusunu ve ilgili istemci araçlarını aşağıdaki komutla kurun:
sudo apt-get install mysql-server mysql-client -y
Kurulum sırasında MySQL root kullanıcısı için bir şifre belirlemeniz istenecektir. Güçlü bir şifre seçtiğinizden ve bu şifreyi güvende tuttuğunuzdan emin olun.
MySQL Veritabanının Güvenliğini Sağlama
Kurulumdan sonra, MySQL’in varsayılan güvenlik ayarlarını yapılandırmak iyi bir uygulamadır. Bu, test amaçlı kullanıcıları ve veritabanlarını kaldırmayı, anonim erişimi engellemeyi ve uzaktan root erişimini devre dışı bırakmayı içerir.
sudo mysql_secure_installation
Bu komut size birkaç soru soracaktır:
* Enter current password for root (enter for none): Kurulum sırasında belirlediğiniz root şifresini girin.
* Change the root password? (Y/n): Hayır diyebilirsiniz, zaten belirlediniz.
* Remove anonymous users? (Y/n): Y
* Disallow root login remotely? (Y/n): Y (Güvenlik için uzaktan root erişimini kapatmak iyi bir fikirdir.)
* Remove test database and access to it? (Y/n): Y
* Reload privilege tables now? (Y/n): Y
Bacula İçin MySQL Veritabanı ve Kullanıcı Oluşturma
Bacula’nın MySQL’e bağlanabilmesi için özel bir veritabanı ve kullanıcı oluşturmamız gerekir. Bu, Bacula’nın kendi veritabanı ayrıcalıklarıyla çalışmasını sağlar ve güvenlik açısından daha iyidir.
MySQL konsoluna root olarak giriş yapın:
mysql -u root -p
Şifrenizi girin. Ardından aşağıdaki SQL komutlarını çalıştırın. bacula_password yerine güçlü bir şifre belirlediğinizden emin olun.
CREATE DATABASE bacula;
CREATE USER 'bacula'@'localhost' IDENTIFIED BY 'bacula_password';
GRANT ALL PRIVILEGES ON bacula.* TO 'bacula'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Bu komutlar, bacula adında bir veritabanı, bacula adında bir kullanıcı oluşturur ve bu kullanıcıya bacula veritabanı üzerinde tüm ayrıcalıkları verir. localhost ile sınırlamak, kullanıcının yalnızca yerel makineden bağlanabileceği anlamına gelir.
Bacula Sunucusunun Kurulumu
Ubuntu 14.04 depolarında Bacula’nın hazır paketleri bulunmaktadır. Bu paketler, Director, Storage Daemon, File Daemon ve Console bileşenlerini içerir.
Bacula Paketlerini Kurma
Aşağıdaki komutla gerekli Bacula bileşenlerini kurun:
sudo apt-get install bacula-director-mysql bacula-sd bacula-client bacula-console -y
* bacula-director-mysql: MySQL desteği ile Director bileşenini kurar.
* bacula-sd: Storage Daemon bileşenini kurar.
* bacula-client: Bu, File Daemon (bacula-fd) paketidir. Sunucunun kendisini yedeklemek için gereklidir.
* bacula-console: Yönetim konsolu (bconsole) paketini kurar.
Kurulum sırasında, Bacula’nın veritabanı yapılandırması hakkında sorular sorulacaktır:
1. “Configure database for bacula-director-mysql with dbconfig-common?”: Yes seçeneğini seçin. Bu, Bacula’nın veritabanı şemasını otomatik olarak oluşturmasına yardımcı olacaktır.
2. “Database type to be used by bacula-director:”: mysql seçeneğini seçin.
3. “Password of the database administrator:”: MySQL root kullanıcısının şifresini girin.
4. “Password for bacula-director-mysql to register with the database:”: Bacula için daha önce oluşturduğumuz bacula kullanıcısının şifresini (bacula_password) girin.
Bu adımlar tamamlandığında, Bacula bileşenleri kurulmuş ve veritabanı şeması oluşturulmuş olacaktır.
Bacula Yapılandırması
Bacula’nın gücü, esnek ve kapsamlı yapılandırma yeteneklerinden gelir. Ana yapılandırma dosyaları /etc/bacula/ dizininde bulunur. Bu dizinde bacula-dir.conf (Director), bacula-sd.conf (Storage Daemon) ve bacula-fd.conf (File Daemon) gibi dosyalar bulunur.
ÖNEMLİ: Yapılandırma dosyalarında değişiklik yapmadan önce daima orijinal dosyaların bir yedeğini alın.
sudo cp /etc/bacula/bacula-dir.conf /etc/bacula/bacula-dir.conf.orig
sudo cp /etc/bacula/bacula-sd.conf /etc/bacula/bacula-sd.conf.orig
sudo cp /etc/bacula/bacula-fd.conf /etc/bacula/bacula-fd.conf.orig
Director Yapılandırması (bacula-dir.conf)
Director yapılandırma dosyası, Bacula sisteminin en karmaşık ve merkezi parçasıdır. Yedekleme işlerini, istemcileri, depolama birimlerini, zamanlamaları ve diğer birçok parametreyi tanımlar.
sudo nano /etc/bacula/bacula-dir.conf
Varsayılan yapılandırma dosyası genellikle iyi bir başlangıç noktasıdır. Aşağıda, temel bileşenlerin yapılandırmasını ve eklemeniz gerekebilecek önemli kısımları açıklayacağız.
1. Director Tanımı:
Bu kısım, Director’ın adını ve şifresini tanımlar. Bu şifre, Console ve File Daemon gibi diğer bileşenlerin Director’a bağlanması için kullanılır.
Director {
Name = bacula-dir
DIRport = 9101
QueryFile = "/etc/bacula/query.sql"
WorkingDirectory = "/var/lib/bacula"
PidDirectory = "/var/run/bacula"
MaximumConcurrentJobs = 1
Password = "your_director_password" # Güçlü bir şifre belirleyin
Messages = Daemon
}
2. Catalog Tanımı:
Bacula’nın veritabanı bağlantı bilgilerini içerir.
Catalog {
Name = MyCatalog
dbdriver = "mysql" # PostgreSQL kullanıyorsanız "postgresql"
dbaddress = localhost
dbport = 3306
dbuser = bacula
dbpassword = "bacula_password" # MySQL kurulumunda belirlediğiniz şifre
dbname = bacula
}
3. Storage Tanımı:
Director’ın hangi Storage Daemon ile iletişim kuracağını belirtir.
Storage {
Name = FileStorage
Address = localhost # Storage Daemon'ın çalıştığı IP adresi veya hostname
SDPort = 9103
Password = "your_sd_password" # Storage Daemon için güçlü bir şifre belirleyin
Device = FileChgr0
MediaRetention = 30 days # Yedeklerin ne kadar süre saklanacağını belirler
WriteBootstrap = "/var/lib/bacula/bacula.bsr"
}
your_sd_password kısmını not alın, Storage Daemon yapılandırmasında da aynı şifreyi kullanacağız.
4. Client Tanımı:
Yedeklenecek her istemci (File Daemon çalıştıran her makine) burada tanımlanmalıdır. Kendi Bacula sunucumuzu da yedeklemek için bir Client tanımı ekleyeceğiz.
Client {
Name = bacula-fd
Address = localhost # İstemcinin IP adresi veya hostname
FDPort = 9102
Catalog = MyCatalog
Password = "your_fd_password" # File Daemon için güçlü bir şifre belirleyin
FileRetention = 60 days
JobRetention = 6 months
AutoPrune = yes
}
your_fd_password kısmını not alın, File Daemon yapılandırmasında da aynı şifreyi kullanacağız.
5. FileSet Tanımı:
Yedeklenecek dosyaların ve dizinlerin bir listesidir. Örnek olarak /etc dizinini yedekleyecek bir FileSet oluşturalım.
FileSet {
Name = "FullSet"
Include {
Options {
signature = MD5 # Dosya bütünlüğünü kontrol etmek için MD5 kullanır
compression = GZIP # Yedekleme sırasında sıkıştırma uygular
}
File = /etc
}
Exclude {
File = /etc/bacula/bacula-dir.conf.orig
File = /etc/bacula/bacula-sd.conf.orig
File = /etc/bacula/bacula-fd.conf.orig
}
}
6. Schedule Tanımı:
Yedekleme işlerinin ne zaman çalışacağını belirler.
Schedule {
Name = "WeeklyCycle"
Run = Full 1st sun at 01:00
Run = Differential 2nd-5th sun at 01:00
Run = Incremental mon-sat at 01:00
}
Bu örnek, ayın ilk Pazar günü tam (Full) yedekleme, sonraki Pazar günleri fark yedekleme (Differential) ve haftanın diğer günleri artımlı (Incremental) yedekleme yapar.
7. Pool Tanımı:
Yedekleme ortamlarını (Volume’ları) yönetir.
Pool {
Name = Default
Pool Type = Backup
Recycle = yes # Eski Volume'ları yeniden kullan
AutoPrune = yes # Volume'ları otomatik olarak buda
VolumeRetention = 30 days # Volume'ların ne kadar süre saklanacağını belirler
Maximum Volume Bytes = 5G # Bir Volume'un maksimum boyutu
Label Format = "Default-" # Volume etiket formatı
}
Pool {
Name = File
Pool Type = Backup
Recycle = yes
AutoPrune = yes
VolumeRetention = 30 days
Maximum Volume Bytes = 5G
Label Format = "File-"
}
8. Job Tanımı:
Bir yedekleme işini tanımlar. Hangi istemcinin, hangi FileSet’in, hangi Schedule’ın ve hangi Pool’un kullanılacağını belirtir.
Job {
Name = "BackupClient1"
Client = bacula-fd # Yedeklenecek istemcinin adı
FileSet = "FullSet" # Kullanılacak FileSet
Schedule = "WeeklyCycle" # Kullanılacak Schedule
Type = Backup
Level = Incremental # Varsayılan yedekleme seviyesi
Storage = FileStorage # Kullanılacak Storage Daemon
Pool = Default # Kullanılacak Pool
Messages = Standard
WriteBootstrap = "/var/lib/bacula/%c.bsr"
}
Job {
Name = "RestoreClient1"
Client = bacula-fd
Type = Restore
Messages = Standard
FileSet = "FullSet" # Geri yükleme için aynı FileSet'i kullan
Storage = FileStorage
Pool = Default
}
Yapılandırma dosyasını kaydedin ve kapatın (Ctrl+O, Enter, Ctrl+X).
Storage Daemon Yapılandırması (bacula-sd.conf)
Storage Daemon, yedekleme verilerini depolayan bileşendir. bacula-sd.conf dosyasını düzenleyin:
sudo nano /etc/bacula/bacula-sd.conf
1. Storage Daemon Tanımı:
Storage {
Name = bacula-sd
SDPort = 9103
WorkingDirectory = "/var/lib/bacula"
PidDirectory = "/var/run/bacula"
PluginDirectory = "/usr/lib/bacula/plugins"
Messages = Daemon
}
2. Director Tanımı:
Storage Daemon’ın hangi Director’dan komut alacağını belirtir. Buradaki şifre, bacula-dir.conf dosyasındaki Storage tanımında belirlediğiniz şifre ile aynı olmalıdır (your_sd_password).
Director {
Name = bacula-dir
Password = "your_sd_password" # bacula-dir.conf'taki Storage Password ile aynı
}
3. Device Tanımı:
Yedekleme verilerinin fiziksel olarak nereye yazılacağını tanımlar. Varsayılan olarak bir disk dizini kullanılır.
Device {
Name = FileChgr0
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 olarak belirtilen dizinin mevcut olduğundan ve Bacula kullanıcısının yazma izinlerine sahip olduğundan emin olun:
sudo mkdir -p /var/lib/bacula/storage
sudo chown -R bacula:bacula /var/lib/bacula
sudo chmod -R 770 /var/lib/bacula/storage
Yapılandırma dosyasını kaydedin ve kapatın.
File Daemon Yapılandırması (bacula-fd.conf)
File Daemon, istemci makinede çalışır ve yedeklenecek dosyaları Director’a sağlar. Kendi sunucumuzu bir istemci olarak yedeklemek için bu dosyayı yapılandırmalıyız.
sudo nano /etc/bacula/bacula-fd.conf
1. File Daemon Tanımı:
FileDaemon {
Name = bacula-fd
FDport = 9102
WorkingDirectory = "/var/lib/bacula"
PidDirectory = "/var/run/bacula"
PluginDirectory = "/usr/lib/bacula/plugins"
Messages = Daemon
}
2. Director Tanımı:
File Daemon’ın hangi Director’a rapor vereceğini belirtir. Buradaki şifre, bacula-dir.conf dosyasındaki Client tanımında belirlediğiniz şifre ile aynı olmalıdır (your_fd_password).
Director {
Name = bacula-dir
Password = "your_fd_password" # bacula-dir.conf'taki Client Password ile aynı
}
Yapılandırma dosyasını kaydedin ve kapatın.
Konsol Yapılandırması (bconsole.conf)
bconsole komut satırı arayüzünün Director’a bağlanabilmesi için de bir yapılandırma dosyası vardır.
sudo nano /etc/bacula/bconsole.conf
Director bölümündeki Password değerini, bacula-dir.conf dosyasındaki Director şifrenizle (your_director_password) aynı olacak şekilde ayarlayın.
Director {
Name = bacula-dir
DIRport = 9101
Address = localhost
Password = "your_director_password" # bacula-dir.conf'taki Director Password ile aynı
}
Kaydedin ve kapatın.
Bacula Servislerinin Başlatılması ve Kontrolü
Tüm yapılandırmaları tamamladıktan sonra, Bacula servislerini başlatabilir ve durumlarını kontrol edebilirsiniz.
Yapılandırma Dosyalarını Test Etme
Servisleri başlatmadan önce yapılandırma dosyalarında herhangi bir hata olup olmadığını kontrol etmek iyi bir uygulamadır:
sudo bacula-dir -t -c /etc/bacula/bacula-dir.conf
sudo bacula-sd -t -c /etc/bacula/bacula-sd.conf
sudo bacula-fd -t -c /etc/bacula/bacula-fd.conf
Herhangi bir hata mesajı almazsanız, yapılandırma dosyalarınızın sözdizimsel olarak doğru olduğu anlamına gelir.
Servisleri Başlatma
sudo service bacula-director start
sudo service bacula-sd start
sudo service bacula-client start # Bu, bacula-fd servisini başlatır
Servis Durumlarını Kontrol Etme
sudo service bacula-director status
sudo service bacula-sd status
sudo service bacula-client status
Tüm servislerin running durumunda olduğunu görmelisiniz.
Servislerin Otomatik Başlatılmasını Sağlama
Ubuntu 14.04, SysVinit tabanlı olduğu için servislerin başlangıçta otomatik olarak başlatılması için update-rc.d kullanırız:
sudo update-rc.d bacula-director defaults
sudo update-rc.d bacula-sd defaults
sudo update-rc.d bacula-client defaults
Bacula Konsolu (bconsole) Kullanımı ve İlk Yedekleme
Bacula Director ile etkileşim kurmak için bconsole komut satırı arayüzünü kullanacağız.
bconsole’a Bağlanma
bconsole
Başarılı bir şekilde bağlanırsanız, *: ile biten bir istem (prompt) göreceksiniz.
Temel bconsole Komutları
* status director: Director’ın durumunu gösterir.
* status storage: Storage Daemon’ın durumunu gösterir.
* status client: İstemcilerin durumunu gösterir.
* list clients: Tanımlanmış istemcileri listeler.
* list jobs: Tanımlanmış işleri listeler.
list fileset: Tanımlanmış FileSet’leri listeler.
* help: Tüm komutları listeler.
* quit: Konsoldan çıkar.
İlk olarak, Director ve Storage Daemon’ın doğru bir şekilde çalıştığını kontrol edin:
*status director
*status storage
Her ikisinin de “Running” veya benzeri bir durumda olduğunu görmelisiniz.
Volume Oluşturma ve Etiketleme
Bacula, yedekleme verilerini Volume’lara yazar. Bir yedekleme işini çalıştırmadan önce, Storage Daemon’ın kullanabileceği bir Volume oluşturmanız ve etiketlemeniz gerekir.
*label
Bu komut size aşağıdaki gibi sorular soracaktır:
* The defined Storage resources are:
1: FileStorage
Select Storage resource (1-1): 1
* Enter new Volume name: Default-0001 (veya istediğiniz başka bir isim, Pool tanımındaki Label Format ile uyumlu olmalı)
* The defined Pool resources are:
1: Default
2: File
Select Pool (1-2): 1
* Do you want to mount the storage? (yes/no): yes
* Creating new Volume "Default-0001" on device "FileChgr0" (/var/lib/bacula/storage).
Enter yes to accept the Volume and close the device. : yes
Bu adımlarla Default-0001 adında bir Volume oluşturulmuş ve Default Pool’una atanmıştır.
İlk Yedekleme İşini Çalıştırma
Şimdi tanımladığımız BackupClient1 işini çalıştırabiliriz.
*run
Bu komut size mevcut işleri listeleyecek ve çalıştırmak istediğiniz işi seçmenizi isteyecektir:
* A job name must be specified.
The defined Job resources are:
1: BackupClient1
2: RestoreClient1
Select Job resource (1-2): 1
* Run Backup job
Job: BackupClient1
Storage: FileStorage
Pool: Default (From Job resource)
Fileset: FullSet (From Job resource)
Client: bacula-fd (From Job resource)
When: 2023-10-27 10:00:00
Level: Incremental
Continue? (yes/no): yes
Yedekleme işi arka planda başlayacaktır. İşin durumunu kontrol etmek için messages veya status director komutlarını kullanabilirsiniz.
*messages
*status director
Yedekleme işlemi tamamlandığında, status director çıktısında işin Terminated normally olduğunu görmelisiniz. Yedeklenen dosyalar /var/lib/bacula/storage dizininde Default-0001 Volume’u içinde saklanacaktır.
Yedeklenen Verileri Geri Yükleme (Restore)
Yedeklemenin amacı, ihtiyaç duyulduğunda verileri geri yükleyebilmektir. Bacula ile geri yükleme işlemi oldukça basittir.
*restore
Bu komut size geri yükleme seçeneklerini sunacaktır:
1. Restore last backup for a Client
2. Restore backup for a Client before a specified time
3. Restore any backup for a Client
4. Restore from a specified JobId
5. Restore the most recent backup for a Client
6. Select Client
Genellikle 5 seçeneği (en son yedeği geri yükle) veya 1 seçeneği (bir istemcinin son yedeğini geri yükle) tercih edilir.
Örneğin, 5 seçeneğini seçin:
* Select Client (1-1): 1 (bacula-fd)
* You have selected the following JobId: (Burada en son yedekleme işinin ID’si listelenir)
* To where should the files be restored? (Varsayılan olarak /tmp/bacula-restore dizinine geri yüklenecektir. Başka bir dizine geri yüklemek isterseniz buraya yazabilirsiniz. Örneğin: /tmp/restore_test)
* OK to restore? (yes/no): yes
Geri yükleme işlemi başladığında, Bacula, seçilen dosyaları belirtilen dizine geri yükleyecektir. İşlem tamamlandığında, messages komutuyla veya belirtilen dizini kontrol ederek dosyaların geri yüklendiğini doğrulayabilirsiniz.
Güvenlik Hususları
Bacula sunucusunun güvenliği, yedekleme altyapınızın genel güvenliği için kritik öneme sahiptir.
* Firewall Kurulumu: Bacula bileşenleri belirli portlar üzerinden iletişim kurar. Bu portlara yalnızca yetkili makinelerden erişime izin veren bir güvenlik duvarı (ufw) yapılandırmalısınız.
* Director: 9101/TCP
* File Daemon: 9102/TCP
* Storage Daemon: 9103/TCP
sudo ufw allow 9101/tcp
sudo ufw allow 9102/tcp
sudo ufw allow 9103/tcp
sudo ufw enable
sudo ufw status
* Şifre Güvenliği: Bacula yapılandırma dosyalarında kullanılan tüm şifrelerin (Director, Storage, Client, MySQL) güçlü ve tahmin edilemez olduğundan emin olun. Bu şifreleri düzenli olarak değiştirmeyi düşünün.
* Veritabanı Güvenliği: MySQL veritabanı kullanıcıları için en az ayrıcalık ilkesini uygulayın. Bacula kullanıcısının yalnızca Bacula veritabanına erişimi olmalıdır.
* Yedekleme Verisi Bütünlüğü: Bacula, yedekleme sırasında MD5 gibi imza algoritmalarını kullanarak veri bütünlüğünü kontrol etme yeteneğine sahiptir. Bu özelliği FileSet tanımında etkinleştirin.
* Fiziksel Güvenlik: Yedekleme verilerinin depolandığı fiziksel ortamın (diskler, sunucu) fiziksel güvenliğini sağlayın.
Sorun Giderme (Troubleshooting)
Bacula karmaşık bir sistem olabilir ve kurulum veya yapılandırma sırasında sorunlarla karşılaşmak olasıdır.
* Log Dosyalarını Kontrol Etme: Bacula, tüm işlemlerini /var/log/bacula/bacula.log dosyasına kaydeder. Sorun gidermeye başlarken bu dosyayı kontrol etmek ilk adımdır.
sudo tail -f /var/log/bacula/bacula.log
* Servis Durumlarını Kontrol Etme: Her zaman service bacula-director status, service bacula-sd status ve service bacula-client status komutlarıyla servislerin çalışıp çalışmadığını kontrol edin.
* Yapılandırma Dosyalarını Doğrulama: bacula-dir -t, bacula-sd -t, bacula-fd -t komutlarıyla yapılandırma dosyalarınızın sözdizimsel olarak doğru olduğundan emin olun.
* Ağ Bağlantısını Kontrol Etme: telnet localhost 9101 (Director), telnet localhost 9102 (File Daemon), telnet localhost 9103 (Storage Daemon) komutlarıyla ilgili portların açık ve erişilebilir olduğunu kontrol edin. Eğer uzaktaki bir istemci veya depolama ile sorun yaşıyorsanız, istemci veya depolama sunucusundan ilgili Bacula portlarına ping ve telnet ile erişimi test edin. Firewall ayarlarını kontrol edin.
* Şifreleri Kontrol Etme: Yapılandırma dosyalarındaki şifrelerin doğru ve eşleştiğinden emin olun. Director, Storage ve Client bileşenleri arasındaki şifrelerin tutarlı olması gerekir.
* Veritabanı Bağlantısı: bacula-dir.conf dosyasındaki Catalog bölümündeki MySQL bağlantı bilgilerini (kullanıcı adı, şifre, veritabanı adı) kontrol edin. MySQL sunucusunun çalıştığından emin olun.
Sonuç
Bu makale, Bacula yedekleme sunucusunu Ubuntu 14.04 LTS üzerine kurma ve temel düzeyde yapılandırma sürecini adım adım açıklamıştır. Bacula’nın modüler mimarisi, MySQL veritabanı kurulumu, Director, Storage Daemon ve File Daemon bileşenlerinin yapılandırılması, ilk yedekleme işinin çalıştırılması ve geri yükleme işlemleri ayrıntılı olarak ele alınmıştır. Güvenlik hususları ve sorun giderme ipuçları da sunulmuştur.
Bacula, güçlü ve esnek bir yedekleme çözümüdür. Bu temel kurulum, Bacula dünyasına adım atmanız için iyi bir başlangıç noktasıdır. Daha karmaşık senaryolar için farklı depolama aygıtları (teypler, bulut depolama), gelişmiş zamanlama seçenekleri, otomatik Volume yönetimi ve web tabanlı yönetim arayüzleri (örneğin, Baculum) gibi Bacula’nın diğer özelliklerini araştırmanız önerilir. Eski bir sistem üzerinde çalışmak zorunda kalan veya Bacula’nın temel işleyişini öğrenmek isteyen herkes için bu kılavuz değerli bir referans olacaktır. Unutmayın, güncel ve desteklenen işletim sistemlerini kullanmak her zaman en iyi güvenlik ve performans uygulamasıdır.