3-2-1 kuralı ve restic ile şifreli sunucu yedeği
Sunucunuzdaki verileri istemci tarafında şifreleyip S3 uyumlu bir depolamaya sürümlü olarak yedeklemenin adım adım kurulumu. Zamanlama, saklama politikası ve geri dönüş testi dahil.
3-2-1 kuralı: verinin en az üç kopyası, iki farklı ortamda, bir kopyası farklı bir konumda. Bu rehberde restic ile şifreli, sürümlü ve otomatik bir yedekleme kurup ikinci ortamı oluşturuyoruz.
Neden restic
- Veriyi istemci tarafında şifreler; depolama sağlayıcısı içeriği göremez.
- Tekrarlanan blokları bir kez saklar; günlük yedekler az yer kaplar.
- S3, SFTP ve yerel disk hedeflerini destekler.
- Tek bir çalıştırılabilir dosyadır.
Kurulum
apt install restic
restic version
Depoyu hazırlayın
Erişim bilgilerini yalnızca root'un okuyabileceği bir dosyaya yazın:
install -m 600 /dev/null /root/.restic-env
Dosyanın içeriği:
export AWS_ACCESS_KEY_ID="ERISIM_ANAHTARI"
export AWS_SECRET_ACCESS_KEY="GIZLI_ANAHTAR"
export RESTIC_REPOSITORY="s3:https://s3.ornek-depolama.com/sunucu-yedek"
export RESTIC_PASSWORD_FILE="/root/.restic-parola"
Şifreleme parolasını üretin ve bir kopyasını sunucu dışında, güvenli bir yerde saklayın. Bu parola olmadan yedeklerinizi kimse açamaz; siz dahil.
openssl rand -base64 32 > /root/.restic-parola
chmod 600 /root/.restic-parola
source /root/.restic-env
restic init
İlk yedek
restic backup /etc /var/www /home --exclude-caches --exclude "/var/www/*/cache"
Veritabanlarını dosya olarak kopyalamak tutarsız yedek üretir. Önce döküm alın:
mysqldump --single-transaction --all-databases | restic backup --stdin --stdin-filename tum-veritabanlari.sql
Zamanlama
/usr/local/sbin/yedekle.sh dosyası:
#!/bin/sh
set -eu
. /root/.restic-env
mysqldump --single-transaction --all-databases | restic backup --stdin --stdin-filename tum-veritabanlari.sql --tag db
restic backup /etc /var/www /home --exclude-caches --tag dosya
restic forget --keep-daily 14 --keep-weekly 8 --keep-monthly 6 --prune
chmod 700 /usr/local/sbin/yedekle.sh
crontab -e
Cron satırı:
30 3 * * * /usr/local/sbin/yedekle.sh >> /var/log/yedekle.log 2>&1
forget komutundaki saklama politikası 14 günlük, 8 haftalık ve 6 aylık kopya tutar.
Geri dönüş testi
Test edilmemiş yedek, yedek değildir. Ayda bir şu adımları uygulayın:
restic snapshots
restic restore latest --target /tmp/geri-donus-testi --include /etc/hostname
cat /tmp/geri-donus-testi/etc/hostname
restic check --read-data-subset=5%
restic check, depodaki verinin bütünlüğünü doğrular. --read-data-subset her seferinde verinin bir kısmını gerçekten okuyarak kontrol eder.
Üçüncü kopya
Bu kurulum sunucudaki veri ve S3'teki yedek ile iki kopya sağlar. Üçüncü kopya için aynı depoyu restic copy ile farklı bir sağlayıcıya veya ofisinizdeki bir depolama birimine kopyalayabilirsiniz. Böylece tek bir sağlayıcıdaki sorun tüm yedeklerinizi etkilemez.
Bu yazıyla ilgili hizmetler
- Yedekleme ve felaket kurtarma Sunuculardan bağımsız, şifreli ve sürümlü yedek depolama.
- Yönetilen sunucu Kurulum, izleme, güncelleme ve olay müdahalesini bize bırakın.
İlgili yazılar
SPF, DKIM ve DMARC: e-postalarınız neden spam klasörüne düşüyor
Alıcı sunucu bir e-postanın gerçekten sizden geldiğini nasıl anlar? Üç DNS kaydının ne işe yaradığını, nasıl yazıldığını ve en sık yapılan hataları anlatıyoruz.
VPS mi VDS mi? İşlemci paylaşımını ölçerek karar verin
Sanal sunucunuzun işlemci zamanının ne kadarını komşularınız kullanıyor? steal time değerini okumayı ve ne zaman ayrılmış çekirdeğe geçmeniz gerektiğini anlatıyoruz.
Yeni bir Linux sunucuda ilk 30 dakika
Sunucunuz teslim edildi. İnternete açık bir makinede ilk yarım saatte yapmanız gerekenler: SSH anahtarı, ayrı kullanıcı, güvenlik duvarı ve otomatik güvenlik güncellemeleri.