Ιστολόγιο

Οδηγοί, εγχειρίδια και νέα προϊόντων.

Ασφάλεια και αντίγραφα ασφαλείας

Αντίγραφα ασφαλείας server: ο κανόνας 3-2-1 και πώς γίνεται η επαναφορά

3 Νοεμβρίου 2026 5 λεπ. ανάγνωσης
Κοινοποίηση ανάρτησης

Ο κανόνας 3-2-1 λέει: κρατήστε τρία αντίγραφα των σημαντικών δεδομένων σας (το πρωτότυπο και δύο αντίγραφα ασφαλείας), σε δύο διαφορετικά είδη αποθήκευσης, με τουλάχιστον ένα αντίγραφο να φυλάσσεται αλλού. Σε ένα VPS αυτό σημαίνει ότι έχετε τουλάχιστον ένα αντίγραφο εκτός του server, επιπλέον των δεδομένων στον ίδιο τον server.

Τον ίδιο κανόνα συνιστά το έγγραφο Data Backup Options, που ετοιμάστηκε για το US-CERT και δημοσιεύτηκε στον ιστότοπο της CISA. Σκοπός του είναι να μην μπορεί μία αστοχία, ένα λάθος ή μια επίθεση να καταστρέψει όλα τα αντίγραφα ταυτόχρονα.

Αντίγραφο ασφαλείας, snapshot και πλεονασμός δίσκων δεν είναι το ίδιο πράγμα

  • Αντίγραφο ασφαλείας: ένα ξεχωριστό αντίγραφο των δεδομένων σας, συνήθως με προηγούμενες εκδόσεις. Επαναφέρει ένα αρχείο που διαγράφηκε ή χαλάστηκε κατά λάθος.
  • Snapshot: καταγράφει την κατάσταση του server εκείνη τη στιγμή. Είναι καλό για γρήγορη επιστροφή πριν από μια μεγάλη ενημέρωση. Εξαρτάται όμως από τον αρχικό δίσκο, οπότε δεν αντικαθιστά το αντίγραφο ασφαλείας.
  • Πλεονασμός δίσκων: τα ίδια δεδομένα γράφονται ταυτόχρονα σε δύο δίσκους. Σας προστατεύει όταν χαλάσει ένας δίσκος. Ένα αρχείο που διαγράφετε διαγράφεται και από τους δύο δίσκους, και τα δεδομένα που κρυπτογραφεί ένα ransomware κρυπτογραφούνται και στους δύο. Άρα δεν είναι αντίγραφο ασφαλείας.

Πώς εφαρμόζετε το 3-2-1 σε VPS

ΑντίγραφοΠούΠώς
Τα αρχικά δεδομέναΟ δίσκος του serverΤο σύστημά σας εν λειτουργία
Αντίγραφο του πάνελΚαρτέλα Διαχείριση, Αντίγραφα ασφαλείαςΛαμβάνεται αυτόματα κάθε βράδυ και κρατούνται οι τελευταίες 7 ημέρες. Περιλαμβάνεται στην τιμή.
Αντίγραφο εκτός serverΟ δικός σας υπολογιστής, άλλος server ή object storageΤο ρυθμίζετε εσείς. Το παράδειγμα με restic βρίσκεται παρακάτω.

Μπορείτε να μετρήσετε το καθημερινό αντίγραφο του πάνελ ως ένα από τα αντίγραφά σας. Το αντίγραφο όμως που πληροί τη συνθήκη «αλλού» είναι αυτό που στήνετε και ελέγχετε εσείς. Οι όροι χρήσης του Seturack ζητούν επίσης να κρατάτε ξεχωριστά αντίγραφο των σημαντικών δεδομένων σας.

Τι να αντιγράφετε

Η αντιγραφή των αρχείων μιας βάσης δεδομένων που τρέχει μπορεί να δώσει ασυνεπές αντίγραφο. Πάρτε πρώτα ένα dump. Αυτές οι εντολές εκτελούνται ως root, όπως θα έτρεχαν σε ένα script cron:

mysqldump --single-transaction --all-databases | gzip > /var/backups/mysql-$(date +%F).sql.gz

sudo -u postgres pg_dumpall | gzip > /var/backups/pg-$(date +%F).sql.gz

Για τα αρχεία αρκούν: /etc, τα αρχεία του ιστότοπού σας, ο φάκελος δεδομένων της εφαρμογής σας, τα volumes του Docker αν χρησιμοποιείτε Docker, και τα αρχεία .env. Μην αντιγράφετε ό,τι μπορείτε να κατεβάσετε ξανά, όπως πακέτα και εικόνες Docker. Αν η εφαρμογή σας έχει κλειδί κρυπτογράφησης, αποθηκεύστε το κι αυτό ξεχωριστά. Σε ορισμένες εφαρμογές, ένα αντίγραφο χωρίς το κλειδί είναι άχρηστο.

Το πόσο συχνά παίρνετε αντίγραφο εξαρτάται από το πόσα δεδομένα μπορείτε να αντέξετε να χάσετε. Ένα αντίγραφο την ημέρα σημαίνει απώλεια έως και μίας ημέρας δεδομένων στη χειρότερη περίπτωση. Για μια εφαρμογή που καταγράφει παραγγελίες ή πληρωμές, είναι ασφαλέστερο να παίρνετε dump της βάσης κάθε ώρα και να το στέλνετε εκτός του server.

Αντίγραφο εκτός server με restic

Το restic είναι εργαλείο αντιγράφων ασφαλείας ανοιχτού κώδικα που κρυπτογραφεί τα αντίγραφά σας και αποθηκεύει μία φορά τα δεδομένα που επαναλαμβάνονται. Το παρακάτω παράδειγμα γράφει το αντίγραφο σε άλλον server στον οποίο φτάνετε μέσω SFTP. Ο προορισμός χρειάζεται σύνδεση SSH χωρίς κωδικό (με κλειδί), επειδή ένα αυτοματοποιημένο αντίγραφο δεν μπορεί να απαντήσει σε αίτημα κωδικού. Δημιουργήστε το αρχείο κωδικού (/root/.restic-password) σε έναν επεξεργαστή κειμένου και εκτελέστε chmod 600 σε αυτό.

sudo apt install -y restic

export RESTIC_REPOSITORY=sftp:[email protected]:/backups/vps

export RESTIC_PASSWORD_FILE=/root/.restic-password

restic init

restic backup /etc /var/www /var/backups

restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --prune

Η τεκμηρίωση του restic προειδοποιεί ότι αν χάσετε τον κωδικό, τα δεδομένα σας χάνονται για πάντα. Κρατήστε τον κωδικό και σε διαχειριστή κωδικών. Βάλτε τις δύο γραμμές export, τα dumps των βάσεων, το restic backup και το restic forget σε ένα script όπως το /usr/local/bin/backup.sh, με αυτή τη σειρά, και κάντε το εκτελέσιμο με chmod +x. Μην ξεχάσετε να προσθέσετε στο τέλος μια γραμμή που διαγράφει τα παλιά dumps, find /var/backups -name '*.sql.gz' -mtime +2 -delete, αλλιώς τα αρχεία dump θα γεμίσουν τον δίσκο. Μετά εκτελείτε το script κάθε βράδυ, για παράδειγμα από το /etc/cron.d/backup με αυτή τη γραμμή:

30 3 * * * root /usr/local/bin/backup.sh

Το borg είναι παρόμοιο εργαλείο. Για απλά αντίγραφα αρχείων μπορείτε να χρησιμοποιήσετε το rsync και για αποστολή δεδομένων σε object storage το rclone.

Η πραγματική δοκιμασία: η επαναφορά

Ένα αντίγραφο που δεν μπορείτε να επαναφέρετε δεν αξίζει τίποτα. Δοκιμάστε το αμέσως μετά τη ρύθμιση και ύστερα σε τακτά διαστήματα:

  • Με το restic, εξάγετε το τελευταίο αντίγραφο σε έναν κενό φάκελο και ελέγξτε τα αρχεία: restic restore latest --target /tmp/restore-test
  • Φορτώστε ένα dump βάσης σε μια προσωρινή βάση και δείτε τους πίνακες.
  • Στο πάνελ, κάντε κλικ στο εικονίδιο Ανάκτηση αρχείων από αυτό δίπλα σε ένα αντίγραφο, περιηγηθείτε μέσα και κατεβάστε ένα αρχείο. Η πλήρης επαναφορά αντικαθιστά ολόκληρο τον τρέχοντα δίσκο, οπότε η ανάκτηση ενός μεμονωμένου αρχείου είναι ο ασφαλέστερος τρόπος δοκιμής.

Διαλέξτε για πόσο θα κρατάτε τα αντίγραφα ανάλογα με το πόσο αργά μπορεί να καταλάβετε ένα πρόβλημα. Το αντίγραφο του πάνελ κρατά τις τελευταίες 7 ημέρες και δεν μπορείτε να γυρίσετε πιο πίσω. Αν μπορεί να χρειαστείτε παλαιότερες εκδόσεις, κρατήστε εβδομαδιαίες και μηνιαίες εκδόσεις στο δικό σας αντίγραφο. Για τις λεπτομέρειες του αντιγράφου του πάνελ, δείτε το άρθρο για τα καθημερινά αντίγραφα ασφαλείας.

Συνηθισμένα λάθη

  • Εγγραφή του αντιγράφου στον δίσκο του ίδιου server. Αν γεμίσει ο δίσκος ή χαθεί ο server, χάνεται μαζί και το αντίγραφο.
  • Φύλαξη του κωδικού ή του κλειδιού του αντιγράφου στο ίδιο μέρος με το αντίγραφο.
  • Να μην καταλαβαίνετε ότι το script αποτυγχάνει. Προσθέστε ειδοποίηση στο script ή ελέγχετε πού και πού την ημερομηνία του τελευταίου αντιγράφου με restic snapshots.
  • Να μην παρακολουθείτε πόσο γεμίζει ο προορισμός των αντιγράφων. Ένας γεμάτος προορισμός σημαίνει αντίγραφα που αποτυγχάνουν σιωπηλά.

Σχόλια0

Δεν υπάρχουν ακόμη σχόλια

Μοιραστείτε πρώτοι τις σκέψεις σας.

Συμμετοχή στη συζήτηση

Συνδεθείτε ή εγγραφείτε για να αφήσετε σχόλιο.

Μην χάνετε καμία ανάρτηση

Λάβετε το πιο πρόσφατο εκπαιδευτικό υλικό, οδηγούς και νέα προϊόντων στο email σας.

Εγγραφήκατε στο ενημερωτικό μας δελτίο.