MySQL-Replikation, verhindert, dass Hacker die Hauptdatenbank löschen und die Löschungen repliziert werden

MySQL-Replikation, verhindert, dass Hacker die Hauptdatenbank löschen und die Löschungen repliziert werden

Ich habe ein Setup aus einem Master/Slave-MySQL-Server. Meine Sorge ist, dass, wenn die Master-Datenbank gehackt wird und die Hacker Tabellen löschen oder Datenbanken ganz löschen, alle Änderungen auf den Slave übertragen werden und die Datenbanken auch dort gelöscht werden.

Wie kann ich ohne Verzögerungen verhindern, dass ein Hacker auch meine Slave-Datenbank zerstört?

Antwort1

Eine MySQL Master/Slave-Konfiguration eignet sich gut, wenn Sie eine fehlertolerante Backend-Datenbank für Ihre Webanwendung oder Website erstellen möchten.

Wenn die Master-Datenbank ausfällt, können Sie die Anwendung auf die Slave-Datenbank umstellen. Daher kann dieser Ansatz nur als Notfallwiederherstellungslösung funktionieren, wenn auf dem Server, auf dem die Master-Datenbank gehostet wird, ein Hardware- oder Softwarefehler auftritt.

Wenn ein Hacker jedoch, wie Sie erwähnt haben, Daten aus der Master-Datenbank löscht, werden die Änderungen schnell vom Slave übernommen.

Um sicher zu gehen, empfehle ich Ihnen, ein automatisches Backup der Datenbank auf dem Slave zu erstellen. Sie können ein Tool wieautomysqlbackup.

Wenn die Sicherung vorhanden ist, können Sie Ihre Datenbank anhand der Slave-Protokolle in ihren ursprünglichen Zustand wiederherstellen.

Wenn Sie Ihr eigenes benutzerdefiniertes Sicherungstool entwickeln möchten, achten Sie darauf, den Zeitstempel der gesicherten Datenbank einzuschließen, damit Sie die aktuellste Sicherung identifizieren können.

Wenn Sie außerdem das Gefühl haben, dass Sie keine Zeit haben, einen sicheren und fehlertoleranten Datenbankcluster für Ihre Anwendung zu erstellen, würde ich Ihnen empfehlen, selbst gehostete MySQL-Lösungen wie ApsaraDB zu verwenden. Mit dieser Art von Lösung ist Ihre Datenbank vor DDoS-, SQL-Injection- und Brute-Force-Angriffen geschützt.

Ich hoffe das hilft.

Antwort2

Entfernen Sie überflüssige Berechtigungen aus Ihren Anwendungen. Dies schützt wahrscheinlich nicht vor einem 'DELETE FROM table', es sei denn, Sie können diese Berechtigung sicher entfernen.

Erstellen Sie also Backups als Snapshots zu einem bestimmten Zeitpunkt (mysqldump --single-transaction / lvm / xtrabackup) und speichern Sie die Position des Binärprotokolls. Speichern Sie die Binärprotokolldateien (ordnen Sie sie der Aufzeichnung zu, und beachten Sie dabei, dass Master-/Relay-Protokolle unterschiedlich sind) und stellen Sie sicher, dass das Binärprotokoll nicht gelöscht wird.

Testen Sie das Wiederherstellungsverfahren beim Anwenden eines Binärprotokolls bis zu einem angegebenen Punkt, um sicherzustellen, dass Sie über die richtigen Informationen und das richtige Verfahren verfügen, wenn Sie es verwenden müssen.

verwandte Informationen