VPS-varmuuskopiointi: varmista myös palautus
VPS-varmuuskopiointi on hyödyllistä vasta, kun tiedot voidaan palauttaa. Tässä harjoituksessa paketoidaan kaksi esimerkkitiedostoa, siirretään kopio toiselle tietokoneelle ja tarkistetaan palautettujen tiedostojen SHA-256-tiivisteet. Käynnissä olevaan sivustoon ei tehdä muutoksia.
VPSuntu · Päivitetty · Lukuaika noin 4 min
Tämän oppaan sisältö
Harjoituksen ympäristö ja rajaus
Tarvitset Ubuntu-palvelimen Bashin, GNU tarin, sha256sum-työkalun ja SSH:n sekä erillisen Linux- tai WSL-tietokoneen. Pidä palvelimen ja oman koneen terminaalit erillään ja saman ympäristön muuttujat samassa istunnossa. Keskeytä jokaisen virheen kohdalla.
Harjoitus koskee HTML-tiedostoa ja passiivista Nginx-asetustiedostoa. Se ei ole koko koneen, käynnissä olevan tietokannan tai tuotantosovelluksen varmuuskopio. Arkistoa ei pureta pääkäyttäjänä eikä juurihakemistoon.
Luo erillinen harjoitusaineisto palvelimella
Aja palvelimen tavallisen ylläpitokäyttäjän Bash-istunnossa. mktemp luo yksilöllisen hakemiston kotihakemiston alle, ja umask rajaa uusien tiedostojen oikeudet.
umask 077
backup_lab=$(mktemp -d "$HOME/ubuntu-vps-backup.XXXXXX")
mkdir -p "$backup_lab/payload/site" "$backup_lab/payload/nginx" "$backup_lab/export"
printf '%s\n' '<!doctype html><html lang="en"><title>Restore drill</title><h1>Recovered static page</h1></html>' > "$backup_lab/payload/site/index.html"
printf '%s\n' 'server {' ' listen 8080;' ' server_name example.test;' ' root /var/www/first-site;' '}' > "$backup_lab/payload/nginx/first-site.conf"
printf 'Practice directory: %s\n' "$backup_lab"Esimerkkisivun englanninkielinen Recovered static page -otsikko toimii myöhemmin sisällön tarkistuksessa. Nginx-tiedostoa ei aktivoida. Tallenna tulostettu harjoitushakemiston polku seuraavaa siirtovaihetta varten.
Laske tiivisteet ja paketoi suhteelliset polut
Aja samassa palvelinistunnossa, jossa harjoitushakemiston muuttuja on asetettu:
(
cd "$backup_lab/payload" &&
sha256sum site/index.html nginx/first-site.conf > SHA256SUMS
)
tar -czf "$backup_lab/export/static-site.tar.gz" -C "$backup_lab/payload" site nginx SHA256SUMS
(
cd "$backup_lab/export" &&
sha256sum static-site.tar.gz > static-site.tar.gz.sha256
)
tar -tzf "$backup_lab/export/static-site.tar.gz"
printf 'Server export directory: %s\n' "$backup_lab/export"Arkistossa tulee näkyä site- ja nginx-tiedostot sekä niiden SHA256SUMS-tiedosto. Älä muokkaa aineistoa tiivisteiden luonnin ja paketoinnin välissä. Arkiston ulkoinen tiiviste tarkistaa siirron, sisäinen lista palautettujen tiedostojen tavut.
Tiiviste ei todista aitoutta, jos hyökkääjä voi vaihtaa sekä arkiston että tarkistussumman. Säilytä kopio ja sen oikeudet suojattuina.
Siirrä kopio toiselle tietokoneelle
Avaa oman erillisen Linux- tai WSL-koneesi terminaali. Korvaa remote_backup-muuttujan REPLACE-polku palvelimella tulostetun harjoitushakemiston export-polulla. Vaihda deploy, IP-osoite ja SSH-avain oman ympäristön mukaisiksi.
umask 077
recovery_dir=$(mktemp -d "$HOME/ubuntu-vps-restore.XXXXXX")
remote_backup=/home/deploy/ubuntu-vps-backup.REPLACE/export
scp -i ~/.ssh/ubuntu_vps "deploy@203.0.113.10:$remote_backup/static-site.tar.gz" "$recovery_dir/"
scp -i ~/.ssh/ubuntu_vps "deploy@203.0.113.10:$remote_backup/static-site.tar.gz.sha256" "$recovery_dir/"Varmista SSH-palvelinavain luotetusta lähteestä, jos se ei vielä ole tallennettu. Siirto suojaa yhteyttä, mutta tar.gz ei ole levylle tallennettuna salattu. Suojaa paikallinen kopio käyttöoikeuksilla ja tarpeen mukaan tallennussalauksella. Kaksi tiedostoa samalla alkuperäisellä VPS:llä eivät ole riippumaton kopio.
Tarkista arkisto ennen purkamista
Aja samassa paikallisessa istunnossa. Tarkistuksen tulee antaa OK. Sen jälkeen tarkista arkiston sisältämät polut:
(
cd "$recovery_dir" &&
sha256sum -c static-site.tar.gz.sha256
)
tar -tzf "$recovery_dir/static-site.tar.gz"Jos tiiviste ei täsmää, selvitä siirtovirhe tai lähteen muuttuminen. Älä luo uutta tarkistussummaa vain virheen peittämiseksi. Epäluotettua tai odottamattomia polkuja sisältävää arkistoa ei pureta.
Palauta uuteen hakemistoon
Pura arkisto erilliseen uuteen hakemistoon ilman sudoa. --keep-old-files estää vanhojen tiedostojen korvaamista ja --no-same-owner välttää arkiston omistajuuksien palauttamista sellaisenaan.
restore_dir=$(mktemp -d "$recovery_dir/restored.XXXXXX")
tar -xzf "$recovery_dir/static-site.tar.gz" -C "$restore_dir" --keep-old-files --no-same-owner
(
cd "$restore_dir" &&
sha256sum -c SHA256SUMS
)
cat "$restore_dir/site/index.html"Sisäisen tarkistuksen pitää antaa kummallekin harjoitustiedostolle OK, ja tulostetussa HTML:ssä tulee näkyä Recovered static page. Tämä vahvistaa tiedostojen sisällön, ei alkuperäisiä ACL-oikeuksia, omistajia tai sovelluksen riippuvuuksia.
Mitä oikean sivuston palautus tarvitsee lisäksi?
Passiivinen Nginx-esimerkki ei käynnisty pelkällä purkamisella. Uudella korvaavalla palvelimella tarkistetaan polut, oikeudet, moduulit, include-tiedostot, varmenteet ja riippuvuudet, sitten Nginxin asetusten kelpoisuus ja ulkopuolinen HTTPS-vastaus. Älä käytä tätä harjoitusta nykyisen toimivan sivuston korvaamiseen.
TLS-yksityisavaimia ei sisälly näihin harjoitustiedostoihin: suunnittele suojattu kopio tai varmenteen uudelleenluonti. Käynnissä oleva tietokanta tarvitsee oman johdonmukaisen varmuuskopiointimenetelmän. Pelkkä tiedostohakemiston tar-paketti ei takaa palautuvaa tietokantaa.
Sovi tietohävikki ja palautusaika
RPO kuvaa hyväksyttävää menetettävän tiedon aikaväliä, RTO tavoitetta palvelun palautusajalle. Esimerkiksi 24 tunnin RPO ja 60 minuutin RTO ovat liiketoiminnan valintoja, eivät tämän ohjeen mitattuja tuloksia. Päivittäinen ajastus ei auta, jos viimeinen palautuskelpoinen kopio on vanhempi.
Pienellä näytöllä voit vierittää taulukkoa sivusuunnassa.
| Kirjattava asia | Miksi se tarvitaan |
|---|---|
| Kopion ajankohta ja sovellusversio | Tiedetään, mitä tilaa palautetaan |
| Erillinen säilytyspaikka ja säilytysaika | Kopio on saatavilla alkuperäisen koneen menetyksen jälkeen |
| Tiivisteet ja palautuksen tulos | Siirto ja tiedostosisältö voidaan todentaa |
| Testin alku, loppu ja puuttuvat riippuvuudet | Mitataan koko palautus, ei vain tar-purku |
| Ulkoinen HTTPS- ja sovellustesti | Todetaan, että korvaava palvelu toimii |
Laske palautusaikaan pääsyn järjestäminen, uuden koneen luonti, asetukset, sertifikaatit ja DNS. Palveluntarjoajan tilannekuva voi nopeuttaa palautusta, mutta sen säilytys, riippumattomuus ja käytettävyys on tarkistettava. Harjoittele myös SSH-pääsyn palauttamista.
Kysymyksiä ja vastauksia
Pitääkö alkuperäinen sivusto poistaa testiä varten?
Ei. Palauta erilliseen hakemistoon tai korvaavalle harjoituskoneelle. Säilytä toimiva tuotanto ennallaan.
Riittääkö OK-tiivistetulos?
Se todistaa listattujen tiedostojen tavujen täsmäävän. Se ei löydä varmuuskopiosta kokonaan puuttuvia tiedostoja tai sovellusriippuvuuksia.
Voiko snapshot korvata kaiken muun?
Arvioi sen säilytys ja palautus alkuperäisen koneen tai tilin ongelmissa. Tärkeille tiedoille tarvitaan suunnitelma ja testattu, riittävän riippumaton kopio.