Jak zaszyfrować backupy w systemie Linux przy użyciu GPG i OpenSSL
🔐 Dlaczego warto szyfrować backupy?
Backup to kopia danych – czyli potencjalnie również kopia Twoich haseł, danych klientów, baz danych i innych wrażliwych informacji. Jeśli backup wpadnie w niepowołane ręce, wszystko może zostać odszyfrowane… chyba że zastosujesz silne szyfrowanie.
🔒 Metoda 1: Szyfrowanie backupu za pomocą GPG (asymetryczne)
✅ Zalety:
- Można używać klucza publicznego do szyfrowania, bez trzymania klucza prywatnego na serwerze.
- Obsługuje wiele kluczy i scenariuszy udostępniania.
📦 Przykład użycia:
1. Wygeneruj parę kluczy (na komputerze lokalnym):
gpg --full-generate-key
Wybierz:
- typ: RSA
- długość: 4096
- brak daty wygaśnięcia (lub ustaw ją)
- imię i email, np.
backup@firma.pl
2. Wyeksportuj klucz publiczny:
gpg --export -a 'backup@firma.pl' > public.key
3. Przenieś public.key na serwer i zaimportuj:
gpg --import public.key
4. Szyfruj backup:
tar czf - /backup/daily | gpg -e -r backup@firma.pl -o /secure-backups/backup.tar.gz.gpg
🔐 Metoda 2: Szyfrowanie backupu za pomocą OpenSSL (symetryczne)
✅ Zalety:
- Prosta metoda z jednorazowym hasłem
- Świetna do szybkich i lokalnych backupów
❗ Wada:
- Trzeba bezpiecznie przechowywać i automatycznie przekazywać hasło (uwaga na
cron!)
📦 Przykład użycia:
1. Skompresuj i zaszyfruj:
tar czf - /backup/daily | openssl enc -aes-256-cbc -salt -pbkdf2 -out /secure-backups/backup.tar.gz.enc
2. Odszyfrowanie:
openssl enc -d -aes-256-cbc -pbkdf2 -in backup.tar.gz.enc -out backup.tar.gz
Podczas szyfrowania/odszyfrowania system poprosi o hasło.

🔄 Automatyzacja szyfrowanych backupów
Możesz dodać szyfrowanie do skryptu backup.sh:
#!/bin/bash
BACKUP_DIR="/backup/daily"
ARCHIVE="/tmp/backup-$(date +%F).tar.gz"
SECURE="/secure-backups"
tar czf "$ARCHIVE" "$BACKUP_DIR"
gpg -e -r backup@firma.pl -o "$SECURE/$(basename "$ARCHIVE").gpg" "$ARCHIVE"
rm "$ARCHIVE"
Lub wersja z openssl:
tar czf - "$BACKUP_DIR" | openssl enc -aes-256-cbc -pbkdf2 -salt -out "$SECURE/backup-$(date +%F).tar.gz.enc" -pass file:/root/.backup_pass
📌 Wskazówki bezpieczeństwa
- Nigdy nie przechowuj klucza prywatnego i backupu w tym samym miejscu.
- Zabezpiecz hasła (
chmod 600 ~/.gnupg,chmod 600 /root/.backup_pass). - Monitoruj integralność backupów (
sha256sum,gpg --verify). - Przechowuj kopię klucza prywatnego offline (np. na pendrive).
✅ Podsumowanie
| Metoda | Typ szyfrowania | Zastosowanie | Plusy | Minusy |
|---|---|---|---|---|
GPG |
Asymetryczne | Wiele odbiorców, bezpieczeństwo | Klucz publiczny może być na serwerze | Wymaga obsługi GPG |
OpenSSL |
Symetryczne | Prosty lokalny backup | Szybka i lekka | Hasło musi być bezpieczne |






