Enkriptovanje i kopiranje servera korišćenjem Duplisiti programa
Autor: Nenad Marjanović
Nekada je većina sistemskih administratora koristila FTP u svrhe čuvanja kopije podataka. Vremenom je utvrđeno da je ovaj način nesiguran i da je svakom ozbiljnom poslovanju zaštita podataka prioritet. Ako smo uspešno zaštitili svoju infrastrukturu, potrebno je zaštititi i čuvanje rezervne kopije podataka. Za to koristimo enkripciju, odnosno šifrovanje podataka.
U ovom procesu opisaćemo instalaciju programa Duplisiti (eng. Duplicity) na serverima sa Debijanom i Red Hetom. Za početak, instalirajmo Duplisiti:
yum update && yum install epel-release
Zatim,
yum install duplicity
Za Debijan i njegove derivate:
aptitude update && aptitude install duplicity
Za transfer između dva servera možemo koristiti nekoliko metoda, kao što su R-sink (eng. rsync), ranije pomenuti FTP, SCP, SSH, SFTP i druge. U ovom primeru koristimo SFTP.
Za potrebe ovog uputstva, CentOS 7 sistem se nalazi na glavnom serveru, a za čuvanje kopija datoteka, server sa Debijanom 8.
Za potrebe transfera i za komunikaciju između ove dve mašine, potrebno je kreirati SSH ključ na CentOS sistemu.
ssh-keygen -t rsa -b 2048
Zatim kopiramo dobijeni ključ na naš udaljeni (eng. backup) server, u ovom slučaju uređaj sa Debijanom.
ssh-copy-id -p xxxx root@1.2.3.4
Vrednosti xxxx zamenite portom koji je namenjen SSH komunikaciji, a 1.2.3.4 sa aj-pi (eng. IP) adresom servera sa Debijanom 8.
Za potrebe enkriptovanja datoteka kreiramo gpg ključ. Ponuđene opcije tokom ovog procesa su:
- tip ključa koji ćemo koristiti (biramo RSA),
- veličina ključa (unosimo 2048, ili samo „Enter”),
- dužina validnosti ključa (ne duže od tri godine — 3y),
- lozinka (ne kraća od osam karaktera).
Potrebno je u otvorenom terminalu pokrenuti „miš” u svrhu generisanja ključa. Na kraju proverimo da li smo uspešno izvršili prethodnu akciju.
gpg –list-keys
Javni ključ koji ćemo koristiti za enkripciju datoteke je F8DAA8FC.
U daljem procesu povežemo se na server sa Debijanom i kreiramo fasciklu u kojoj ćemo čuvati kopiju podataka. To radimo komandom:
mkdir -p /kopija/centos7
Ovo je ujedno i jedina komanda koju ćemo pokrenuti u čitavom procesu na serveru sa Debijanom, mada kasnije možemo proveriti veličinu rezervne kopije i slično.
Vreme je da napravimo našu prvu kopiju podataka. U ovom primeru kopiramo log datoteke, sa izuzetkom Apačijevih (eng. Apache) i Maj-es-kju-elovih (eng. MySQL) logova:
PASSPHRASE="LozinkaGPGKljuca" duplicity --encrypt-key javni-kljuc-ovde --exclude /var/log/apache --exclude /var/log/mysql /var/log scp://root@1.2.3.4:xxxx//kopija/centos7
Restauracija podataka korišćenjem Duplisitija
Ono što je karakteristično za Duplisiti je da u ovom slučaju na mašini sa CentOS-om moramo ukloniti fasciklu, dokument ili kompresovanu datoteku ukoliko oni već postoje. Ovo radimo u većini slučajeva kada su podaci korumpirani ili izbrisani i kada nam je potrebna njihova rekonstrukcija.
U ovom primeru radićemo sa Endžiniksovim (eng. nginx) logovima:
rm -f /var/log/nginx
Zatim pokrećemo Duplisiti:
PASSPHRASE="LozinkaGPGKljuca" duplicity --file-to-restore ime_fajla sftp://root@1.2.3.4:xxxx//kopija/centos7 /var/log/nginx
Duplisiti ima i druge integrisane funkcije.
Listanje arhiva:
duplicity list-current-files sftp://root@1.2.3.4:xxxx//kopija/centos7
Brisanje kopija starijih od nekog perioda (u ovom slučaju šest meseci — 6M):
duplicity remove-older-than 6M sftp://root@1.2.3.4:xxxx//kopija/centos7
Restauracija datoteke stare četiri dana i dva sata:
duplicity -t 4D2h --file-to-restore var/log/nekifajl sftp://root@1.2.3.4:xxxx//kopija/centos7 /var/log/nekifajl
U poslednjem primeru koristimo funkciju -t koja nam omogućava da preciziramo određene periode kao što su s, m, h, D, W, M, i Y (sekundu, minut, sat, dan, nedelju, mesec i godinu).
Na kraju ćemo napomenuti da više detalja o mogućnostima Duplisiti programa možete pronaći na sajtu autora http://duplicity.nongnu.org/index.html.