🔐 Szyfrowanie logów i kopii zapasowych w Linuksie za pomocą GPG lub OpenSSL – krok po kroku
W dobie rosnącego znaczenia prywatności i zabezpieczeń danych, szyfrowanie logów oraz backupów staje się koniecznością – szczególnie jeśli:
- logi zawierają dane osobowe (RODO),
- backupy są przechowywane w chmurze lub na nośnikach offline,
- chcesz zabezpieczyć się przed nieautoryzowanym dostępem do danych.
Poniżej pokażę dwie sprawdzone metody:
✅ GPG (GNU Privacy Guard) – system oparty na kluczach publicznych i prywatnych,
✅ OpenSSL – szyfrowanie symetryczne (hasłem) lub asymetryczne (kluczem).
📦 Krok 1: Instalacja narzędzi
W większości dystrybucji GPG i OpenSSL są preinstalowane. W razie potrzeby:
sudo apt install gnupg openssl
🔐 CZĘŚĆ I: Szyfrowanie za pomocą GPG
🔑 Krok 1: Utwórz klucz GPG
gpg --full-generate-key
Wybierz:
- rodzaj klucza: RSA
- długość: min. 2048 bit (zalecane 4096)
- czas ważności: według potrzeb
- dane identyfikujące (imię, e-mail)
- hasło do klucza
Sprawdź:
gpg --list-keys
📁 Krok 2: Szyfrowanie pliku (np. backup, logi)
gpg -e -r you@example.com /var/log/auth.log
Efekt: powstanie plik auth.log.gpg
🔓 Krok 3: Odszyfrowanie
gpg -d auth.log.gpg > auth.log
🤝 Praca z kluczami publicznymi (np. backup dla innego użytkownika)
- Eksport klucza publicznego:
gpg --export -a you@example.com > pubkey.asc
- Import na innym serwerze:
gpg --import pubkey.asc
🧪 Automatyzacja z GPG
W skryptach można stosować flagi:
gpg --batch --yes -e -r you@example.com /backup/daily.tar.gz
🔐 Klucz musi być wcześniej zaimportowany i zaufany (--edit-key + trust).

🔐 CZĘŚĆ II: Szyfrowanie z OpenSSL
🔐 Krok 1: Symetryczne szyfrowanie pliku (hasło)
openssl enc -aes-256-cbc -salt -in backup.tar.gz -out backup.tar.gz.enc
Wprowadź hasło do szyfrowania.
🔓 Krok 2: Odszyfrowanie
openssl enc -d -aes-256-cbc -in backup.tar.gz.enc -out backup.tar.gz
🧠 Pro tip: Bezpieczne przechowywanie hasła
Możesz użyć openssl z plikiem hasła:
openssl enc -aes-256-cbc -salt -pass file:/etc/backup.pass -in ... -out ...
🛡️ Ustaw odpowiednie uprawnienia:
chmod 600 /etc/backup.pass
📦 Przykład w skrypcie backupu
#!/bin/bash
tar czf /tmp/daily.tar.gz /home/youruser
gpg -e -r you@example.com /tmp/daily.tar.gz
mv /tmp/daily.tar.gz.gpg /backup/encrypted/
🔄 Integracja z logrotate
Logi mogą być szyfrowane po rotacji:
/var/log/secure {
rotate 7
daily
postrotate
gpg -e -r you@example.com /var/log/secure.1
endscript
}
🔐 Bezpieczeństwo
- GPG: nie zapisuj prywatnego klucza na zdalnych serwerach, jeśli nie jest to konieczne,
- OpenSSL: nigdy nie przechowuj hasła jawnie w skryptach,
- Rozważ zastosowanie LUKS do szyfrowania całych katalogów/partycji.
✅ Podsumowanie
| Narzędzie | Zalety | Wady |
|---|---|---|
| GPG | wysoki poziom bezpieczeństwa, klucze publiczne | trudniejsze do zautomatyzowania |
| OpenSSL | łatwe w skryptach, proste hasło | niższy poziom ochrony (hasło) |
🧠 Co dalej?
- integracja z
rclone(szyfrowanie backupów do chmury), - szyfrowanie całych folderów za pomocą
encfslubgocryptfs, - zaszyfrowane kontenery LUKS,
- audyt bezpieczeństwa backupów.






