Meinung: Berechtigungen: Schreiben, aber aus Sicherheitsgründen nicht lesen?

Meinung: Berechtigungen: Schreiben, aber aus Sicherheitsgründen nicht lesen?

Ich habe mehrere verbundene Systeme und möchte einen separaten Server für inkrementelle und vollständige Backups einrichten.

Um außerdem den Verlust aller Systeme/Backups im Falle einer Kompromittierung zu verhindern, überlege ich, daraus eine Art Dropbox-Angelegenheit zu machen, mit einer schreibgeschützten Freigabe auf jedem System, auf die die Backups übertragen werden.

Ich beabsichtige, im Falle eines Angriffs das Backup über eine neu erstellte schreibgeschützte Freigabe dem betroffenen System zugänglich zu machen oder dorthin zu übertragen und von dort aus wiederherzustellen – auf das System selbst kann jedoch nicht zugegriffen werden.

Einer unserer Konkurrenten verlor kürzlich sein gesamtes Geschäft, weil sogar seine Backups verbunden waren – es gab also nichts, worauf er eine Wiederherstellung durchführen konnte.

Darüber hinaus werde ich in geeigneten Abständen auch komplette Backups herunterladen.

Bitte reißen Sie Löcher in meinen Plan.

Danke.

Antwort1

Bitte reißen Sie Löcher in meinen Plan.

Klar. Nur das Entfernen des Lesezugriffs schützt nicht vor Problemen. Jeder Änderungsversuch erfordert Schreibrechte. Ein Angreifer kann die Datei dann trotzdem leer schreiben (er muss nur wissen, wo die Datei liegt).

Warum wird auf dieser Festplatte hinsichtlich der Sicherungen nichts gesperrt, außer das Anhängen neuer Daten?

Mögliches Setup:

/backups/20160911/backup.tar.gz
/backups/20160912/backup.tar.gz
/backups/20160913/backup.tar.gz

Erstellen Sie ein Skript, das

chattr -R +a /backups/
chattr -R +i /backups/*.tar.gz

+ibedeutet „unveränderlich“; mit diesen Dateien oder Verzeichnissen kann nichts gemacht werden. Nicht einmal root kann sie ändern (das schließt das Entfernen, Bearbeiten, Schreiben, Hinzufügen neuer Dateien ein. Alles). Sogar root muss dies (mit -i) entfernen, bevor root etwas mit diesen Dateien machen kann.

+abedeutet "anhängen"; Gleiche Regeln wie -imit 1 Ausnahme. Niemand darf Änderungen an der Datei oder dem Verzeichnis vornehmenaußer es hinzuzufügenUnd nochmal: sogar root muss dies entfernen (mit einem -a), bevor die Datei oder das Verzeichnis geändert werden kann, ohne dass durch die Änderung etwas daran angehängt wird.

(oben muss möglicherweise etwas optimiert werden. 1 große Sicherungsdatei ist möglicherweise nicht der beste Ansatz. Etwas mit Unterverzeichnissen und Dateien könnte besser sein. Das würde also eine Anpassung dieser beiden Zeilen erfordern: Führen Sie dies beispielsweise NUR bei alten Verzeichnissen durch und führen Sie „heute“ manuell aus, wenn die Sicherung abgeschlossen ist. Dann wird dies zu

chattr -R +i /backups/{not_today}
chattr -R +a /backups/{today}

Lassen Sie dieses Skript in regelmäßigen Abständen ausführen, sodass, wenn jemand zu irgendeinem Zeitpunkt etwas darin ändert, /backups/die Berechtigungen für alle Sicherungen zurückgesetzt werden.

Verzeichnisse und Dateien können zu „heute“ hinzugefügt werden und nachdem Ihr Backup abgeschlossen ist, können Sie das +i manuell hinzufügen. Erstellen Sie ein gutes Administratorkennwort und niemand außer dem Administrator wird diese Dateien berühren. Niemals.

Übrigens: Denken Sie auch daran, Backups online zu speichern. Wir haben unsere Backups in mehreren Google-Instanzen (wir haben 3 Live-Systeme auf 3 Kontinenten, die die Daten teilen, wobei jedes eine Fallback-Instanz auf einem anderen Kontinent erstellt und diese wiederum jeweils ein Backup-System teilen).

Antwort2

Entfernen Sie die readBerechtigung für die Dateien oder Verzeichnisse, die Sie unlesbar machen möchten.

Die Berechtigungen sind:

u - Owner
g - group
o - others

Deaktivieren Sie das Lesen für alle und die Berechtigung für alle, denen Sie Schreibzugriff gewähren möchten.

$ chmod -R ugo-r [path]

Das Verzeichnis [Pfad] und alle darin enthaltenen Dateien und Unterverzeichnisse haben dieses Attribut. In diesem Fall -r(kein Lesezugriff).

Antwort3

Nichts ist so sicher wie getrennte Backups. Laden Sie Ihre Backups auf ein externes Laufwerk herunter und trennen Sie es vom Netzwerk, nachdem Sie das Backup darauf kopiert haben. Besorgen Sie sich mehrere Laufwerke und wechseln Sie sie ab.

Kaufen Sie beispielsweise fünf 1-TB-Laufwerke (Gesamtkosten < 300 $). Weisen Sie drei davon als tägliche Backups zu; schließen Sie jeden Tag eins an und kopieren Sie das Backup darauf, trennen Sie es dann wieder. Weisen Sie eins als wöchentliches Backup und eins als monatliches Backup zu und machen Sie dasselbe.

Bewahren Sie für den Fall eines Feuers oder Diebstahls einige der Laufwerke an einem zweiten Ort auf.

Dieser Ansatz schützt Sie vor vielen verschiedenen Bedrohungen durch Datenverlust.

Wenn Ihr System vollständig serverbasiert ist, verwenden Sie ein Cloud-Äquivalent. Richten Sie einige Server bei verschiedenen Anbietern (Amazon, Google, Azure) ein. Stellen Sie täglich eine Verbindung zu einem anderen Server her, übertragen Sie Ihr Backup per SFTP auf diesen Server und trennen Sie dann die Verbindung. Bewahren Sie mehrere Kopien auf, damit Sie beim Sichern keine gute Kopie überschreiben.

Aber nichts ist so sicher vor Hackern wie eine physische Kopie, die Sie von jedem Netzwerk trennen und an einem externen Ort aufbewahren.

verwandte Informationen