subota, 20 aprila, 2024
Kako da...?

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.