Tag 7
1 Dokumentationsaufträge
1.1 Dokumentieren der Vorgehen bei Backups
1.1.1 Verschiedene Begriffe aufgelistet und erklärt
Cold: Daten stehen während Export und Import nicht zur Verfügung.
Warm: Daten stehen während Export und Import beschränkt (z.B. nur Lesen) zur Verfügung.
Hot: Daten stehen während Export und Import voll zur Verfügung.
logisch: Backup ist für Menschen lesbar (SQL-Skript, CSV-Datei).
physisch: Backup ist in binärer Form gespeichert (Snapshot).
full: Der gesamte Datenbestand wird gesichert.
incremental: Nur Differenzen zum vorherigen Backup werden gesichert. Für ein inkrementelles Backup muss als Basis immer ein Full Backup bestehen.
1.1.2 Übungen dokumentiert und umgesetzt
1.1.3 Recherche zu Percona XtraBackup
Percona XtraBackup erstellt eine inkrementelle Sicherung von MySQL-Datenbanken, indem es nur die Änderungen seit der letzten Sicherung erfasst. Dadurch können Benutzer schnell und effizient Backups erstellen, ohne die MySQL-Datenbanken während des Sicherungsvorgangs sperren zu müssen.
Percona XtraBackup ist ein MySQL-Datenbanksicherungs Tool, welches von Percona entwickelt wurde. Es ist eine Alternative zum integrierten mysqldump. Es hat eine höhere Leistung und schnellere Wiederherstellungszeit. Es ermöglicht in MySQL inkrementelle Backups zu erstellen.
Folgend die wichtigsten Funktionen:
- Volle und inkrementelle Sicherungen
- Möglichkeit Datenbanken während des Backups zu lesen und zu schreiben
- Kompression der Sicherungen
- Wiederherstellung von Sicherungen
- Unterstützung für parallele Backups und Wiederherstellung
1.2 Migrationen
1.2.1 Übungen dokumentiert und umgesetzt
1.3 Dokumentieren Sie Ihre Arbeiten für die Installation der Etherpad Applikation
- NodeJS (und npm) installieren:
curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
sudo apt install -y nodejs
- Git Repo klonen:
git clone --branch master https://github.com/ether/etherpad-lite.git
cd etherpad-lite
- MySQL vorbereiten:
create database `etherpad_lite_db`;
-- Create a new database user. Replace <etherpaduser> and <password> with your own values.
CREATE USER 'etherpaduser'@'localhost' identified by 'Etherpad_user#1234';
ALTER USER 'etherpaduser'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Etherpad_user#1234';
-- Grant permissions to that new database account. Replace <etherpaduser> with your own value from above step.
grant CREATE,ALTER,SELECT,INSERT,UPDATE,DELETE on `etherpad_lite_db`.* to 'etherpaduser'@'localhost';
- Settings für Applikation anpassen:
cp settings.json.template settings.json
"dbType" : "mysql",
"dbSettings" : {
"user" : "etherpaduser",
"port" : "/var/run/mysqld/mysqld.sock",
"password": "Etherpad_user#1234",
"database": "etherpad_lite_db",
"charset" : "utf8mb4"
}
- Plugins installieren:
npm install --no-save --legacy-peer-deps ep_headings2 ep_markdown ep_comments_page ep_align ep_font_color ep_webrtc ep_embedded_hyperlinks2
- Applikation starten:
src/bin/run.sh
http://localhost:9001
öffnen.
1.4 Testen Sie Ihre Etherpad-Applikation aus und dokumentieren Sie die neu erstellten Daten aus der Datenbank
Die Daten werden in die Tabelle store
als JSON geschrieben.
1.5 Diskutieren Sie die Security-Angriffsvektoren anhand der Applikation Etherpad
1.5.1 Beispiel : "Angriffsvektor auf die Datenbank" <- Wie müsste die Applikation für einen Produktiv-Betrieb genutzt werden
Nach offizieller Anleitung sollte der der Datenbanktreiber von dirtyDB
auf z.B. mysql
gewechselt werden, da dirtyDB
nur für Testing genutzt werden soll. Auch wird empfohlen die User-Authentication einzuschalten und die Passwörter davon als Hash zu speichern. Alle diese Einstellungen können in der settings.json
-Datei vorgenommen werden.
Quellen