Es ist unter Open Source lizenziert. Ceph ist hoch skalierbar. Es gibt eine hohe Ausfallsicherheit durch verteilte Ablage der Daten.Er wird aber als zusammenhängender Speicher dargestellt. Ceph benötigt mehrere miteinander vernetzte Computer. Diese werden als Cluster zusammengeschlossen. Jeder einzelne Computer wird dabei als Node (Knoten) bezeichnet. Unter den einzelnen Nodes müssen verschiedene Aufgaben verteilt werden:
Manager Verwalten den Status der Speichernutzung, der Systemlast und Auslastung der Knoten.
Monitor Verwalten den Status der einzelnen Nodes um für Ausfallsicherheit zu sorgen. Es werden mindestens 3 Monitor Nodes empfohlen.
Ceph OSDs [Object Storage Devices] Die Dienste für die eigentliche Dateiverwaltung. Sie sind für die Speicherung, Duplizierung und Wiederherstellung von Daten zuständig. Pro Cluster sollte es 3 Ceph OSDs geben.
Metadaten-Server (MDSs) Speichert die Metadaten( Speicherpfade, Dateinamen und Zeitstempel) sie sind POSIX-konform und können mittels Unix-Kommandozeilen-Programmen wie ls, find und like ausgelesen werden.
Der Algorithmus mit der Bezeichnung CRUSH (Controlled Replication Under Scalable Hashing). ermöglicht mit Hilfe einer Zuordnungstabelle der CRUSH Map, einem OSD [Object Storage Devices] mit der angeforderten Datei zu finden. Klingt kompliziert, ist aber so 😛
Die Basis der Datenablage unter Ceph wird als RADOS bezeichnet.
RADOS steht für (a reliable, distributed object store comprised of self-healing, self-mapping, intelligent storage nodes) frei übersetzt: zuverlässiger, verteilter Objektspeicher, bestehend aus selbstheilenden, selbstabbildenden, intelligenten Speicherknoten.
Möglichkeiten des Datenzugriffs :
librados – eine Bibliothek für Anwendungsentwickler
CephFS – eigenes Dateisystem; ein Kernel-Modul für zugreifende Rechner (Fuse)
radosgw – ein Gateway der via HTTP gelesen oder geschrieben werden kann
RADOS Block Device – Einbindung durch Kernel-Module oder virtuelle Systeme wie QEMU/KVM.
Vor- und Nachteile von Ceph
Vorteil:
Ceph ist kostenfrei
Es gibt viele Tutorials zur Einrichtung und Wartung
Gute Dokumentation vom Hersteller
integrierte Redundanz sorgen für Datensicherheit
Nachteile:
Einrichtung ist relativ kompliziert
Es ist ein umfangreiches Netzwerk notwendig
Es ist physisch nicht ganz klar wo die Daten abgelegt werden man muss quasi dem Algorithmus vertrauen
Bei den meisten Providern für vServer aller Art, gibt es die Möglichkeit den Server automatisch installieren zu lassen. Daher zeige ich jetzt nicht die komplette Installation von Debian 12. Das werde ich in einem anderen Tutorial noch nachholen. Wir gehen nun bei dieser Anleitung davon aus, das wir einen frisch installierten Debian Server vor uns haben. Am besten noch haben wir uns mit dem Root-User angemeldet.
Non-Root User anlegen und mit sudo Rechten ausstatten
Nun kannst du erstmal einen non-Root-User anlegen und diesem sudo Rechte übertragen. Dazu nutzen wir folgenden Befehl
adduser bernd
Dort wird nach einem Passwort gefragt und noch ein paar Andere Daten. Das Passwort ist wichtig die anderen Daten kannst du auch ohne Eingabe mit Enter bestätigen. Zum Schluss noch die Eingabe eines Y und der User „bernd“ ist angelegt. Du kannst natürlich einen selbst gewählten Namen nutzen.
Dann installierst du das Paket sudo
apt install sudo
Im Anschluss kannst du dem Nutzer „bernd“ die sudo Rechte zuweisen. Das sind im Prinzip Admin Rechte für das System. So brauchst du dann nicht mehr mit Root anmelden und hast trotzdem die Möglichkeit Updates einzuspielen und Pakete zu installieren. Nun die Gruppenzuweisung von sudo an User „bernd“
usermod -aG sudo bernd
Nun kannst du dich mit dem Command „exit“ mit dem User Root abmelden.
exit
Dann melden wir uns mit dem User bernd an
ssh nonroot@deineip
Dann kannst du es gleich mal ausprobieren, ob sudo Rechte vorhanden sind. Wir aktualisieren einfach mal unsere Paketliste. Dort werdet ihr nach dem User-Passwort von „bernd“ gefragt.
sudo apt update
SSH Public Key Authentifizierung
Dieser Part ist für Linux Systeme beschrieben für Windows findet ihr hier eine Anleitung. Der Schritt findet auf deinem Computer und nicht auf dem Server statt. Für euren persönlichen PC Account habe ich den Namen user genommen. Also ist euer Home Verzeichnis: /home/user
Nun öffnest du deinen Terminal und wechselst in das versteckte Verzeichnis „.ssh“ – Dieses liegt in deinem /home Verzeichnis.
cd /home/user/.ssh
Wenn es dieses noch nicht gibt dann leg es einfach mit „mkdir .ssh“ an. Nun legst du in diesem Ordner unser Schlüsselpaar bestehend aus Public und Private Key .
ssh-keygen -b 4096
Dort wirst du gefragt wie du die Schlüsseldatei nennen möchtest, ich hab sie im Screenshot key01 genannt. Dann noch eine Passphrase und nochmal bestätigen. Dann Enter und zack ist das Schlüsselpaar erstellt und kann verwendet werden.
Nun musst du noch den Public Schlüssel auf das Zielsystem übertragen, dafür nutzt du den Befehl ssh-copy-id
Dann wirst du wie bei der SSH Verbindung nach deinem Passwort vom Server User gefragt. Dieses gibst du ein und dann wird der Public Schlüssel auf den Server geschoben. Wenn das alles geklappt hat, kannst du dich ohne Passwort nur mit Passphrase und Schlüssel anmelden.
ssh -i /home/user/.ssh/key01 bernd@ipvomserver
Konfiguration SSH
Nun widmen wir uns dem SSH-Dienst und konfigurieren diesen so das er die nötigsten Einstellungen bekommt. Dazu musst du die Konfigurations-Datei des SSH-Dienstes bearbeiten. Diese öffnest du mit folgendem Befehl:
sudo nano /etc/ssh/sshd_config
So etwa sollte die Konfigurations-Datei aussehen nun musst du einige Werte anpassen. Wenn du die Datei runter scrollt kommen noch einige weitere Werte die angepasst werden müssen.
Der Wert Port steht am Anfang auf 22. Aus Sicherheitsgründen sollten wir diesen ändern. Dazu kannst du dir eine Zahl ab 10240 aussuchen
LoginGraceTime 2m
vor diesem Wert das „#“ löschen um die Funktion zu aktivieren
PermitRootLogin no
Root soll sich weder mit Password noch Pubkey anmelden können
StrictModes yes
vor diesem Wert das „#“ löschen um die Funktion zu aktivieren
MaxAuthTries 6
vor diesem Wert das „#“ löschen um die Funktion zu aktivieren
PubkeyAuthentication yes
Pubkey Schlüssel Authentifizierung
PasswordAuthentication no
Dieser Wert wird auf No gesetzt weil wir das verbieten wollen
Wenn diese Werte angepasst sind, kannst du die Konfigurationsdatei speichern [Strg]+[O] + [ENTER] und mit [Strg]+ [X] verlassen.
Nun startest du den SSH-Dienst neu:
sudo service ssh restart
Fail2Ban installieren
Nun installierst du ein Tool, das Bots und Hacker davon abhalten soll unseren SSH Zugang zu übernehmen. Dabei bemerkt das Tool, wie von bestimmten IP Adressen Anmelde-Versuche kommen. Wenn diese eine bestimmte Anzahl von malen nicht funktioniert hat, sperrt Fail2Ban diese IP für einen bestimmten Zeitraum. Installation:
sudo apt install fail2ban
Firewall UFW
Ohne eine Firewall geht es nicht. Die bekannteste Firewall ist IPTables. Aber diese ist in der Konfiguration ziemlich schwierig. Daher nutzen wir für unseren Server UFW. Also gleich mal installieren:
sudo apt install ufw
Nun müssen wir die Firewall „UFW“ noch konfigurieren. Die Firewall blockiert per Anfangseinstellung alle Ports, d.h. das erst einmal kein Dienst von Außen aufgerufen werden kann. Aber wir brauchen ein paar offene Ports, damit wir unserer Server nutzen können. Da fällt mir gleich der erste ein, der SSH Port, sonst kannst du dich nicht an der Konsole anmelden. Also stellst du diesen eine. Diesen Port solltest du von 22 auf einen Wunschport ändern im Kapitel „Konfiguration SSH“. Bei mir nehme ich jetzt Port 10240
sudo ufw allow 10240/tcp
Dann öffnen wir gleich mal noch die Ports HTTP und HTTPS diese werden in der Regel benötigt. Wenn du keinen Webserver betreiben möchtest, kannst du diesen Schritt überspringen.
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
Jetzt hast du die ersten Ports geöffnet aber müssen noch die Firewall einschalten. Daher ist es wichtig das du den richtigen SSH Port angegeben haben, sonst sperrst du dich selbst aus dem System aus. Firewall einschalten:
sudo ufw enable
Diese Info musst du mit einem „y“ bestätigen. Es kommt noch die Meldung: „Firewall is active and enabled on system startup“ Im Anschluss ist nun auch die Firewall aktiv. Und sollte einige Angriffe abhalten. Wenn du einen neuen Dienst installierst, musst du dann in Zukunft die dazugehörigen Ports öffnen.
In diesem Artikel zeigen ich Dir, auf welche Dinge es bei der Absicherung Deines vServers ankommt. Und wieso das überhaupt nötig ist. Dein VPS kann von Hackern & Bots übernommen werden, wenn der Server nicht genug abgesichert ist. Schon kleine Schritte genügen, um es Bots schwerer zu machen. Ist der Server erstmal infiziert bleibt meist nur eine Neuinstallation um Malware Bots und Viren wieder loszuwerden. Das kann dann ziemlich zeitaufwändig werden. Für die Wiederherstellung ist es wichtig, dass ein Backup zur Verfügung steht. Aber nun zu den Tipps & Tricks
Sicheres Passwort nutzen Es ist wichtig ein sehr sicheres Passwort zu nutzen. Oder noch besser nutze die Public Key Authentication (Key-Authentifizierung). Folgende Kriterien sollte eine Passwort erfüllen:
Verwende Buchstaben, Zahlen und Sonderzeichen
Groß-/Kleinschreibung
Verwende mehr als acht Zeichen
Keine Wörter aus dem Wörterbuch, Geburtstage,Namen usw.
Sei vorsichtig bei der Aufbewahrung Deiner Passwörter(Password-Datenbank)
Das bringt aber immer noch keine absolute Sicherheit. Wird per Zufall oder durch das Berechnen eines Bots das Passwort herausgefunden ist der Server infiziert. Daher ist es am Besten die Key-Authentifizierung zu nutzen.
Wie kann ein Hackerangriff aussehen und wo findet man Inforamtionen dazu? Es gibt immer ein ähnliches Muster, dass in den Log Datein vom Server auftaucht. Die wichtigste Log Datei ist dafür „/var/log/auth.log“. Diese lässt sich ganz einfach via „cat /var/log/auth.log“ aufrufen. Dort findest du dann soetwas:
sshd[805272]: Failed password for invalid user pi from 193.233.x.x port 22296 ssh2 sshd[805272]: Received disconnect from 193.233.x.x port 22296:11: Client disconnecting normally [preauth]
Hier wollte sich ein Computer mit der IP: 193.233.x.x an Port 22296 anmelden. Ohne Absicherung deines VPS ist es also nur eine Frage der Zeit bis es zu Infizierung des Systems kommt.Um ein Passwort herauszufinden, nutzen die Bots und Hacker Passwortlisten und probieren automatisiert alles durch bis sie das System geknackt haben.
Passwort-Authentifizierung für root-user abschalten Im besten Fall schaltet ihr die Passwort- Authentifizierung ab und meldet euch nur noch per Key-Authentifizierung am Server an. Der Root-Zugriff über SSH sollte komplett abgeschaltet werden. Ein non-root-User sollte angelegt werden, der sich dann nur mit Key-Authentifizierung anmelden kann. Durch diesen Nutzer kann man sich dann als root anmelden.
SSH Port ändern Der Standard Port für SSH ist 22. Um es einem Bot oder Hacker etwas schwerer zu machen lässt sich dieser Port ganz einfach in der OpenSSH Konfiguration ändern. Dort sollte der Port über 1024 sein. Port 22 ist der weltweit meist angegriffene Port. Damit wird die Gefahr des Hackerangriffs zwar nicht komplett verhindert, aber erschwert. Bot-Systeme prüfen lediglich den Port 22 auf Vorhandensein eines SSH-Servers, wird dort nichts gefunden wird der Server meist verschont.
Updates regelmäßig einspielen Regelmäßige Updates auf deinem Server sind unerlässlich. Je neuer / aktueller die Software, desto weniger Sicherheitslücken tauchen auf und können ausgenutzt werden. Mindestens 2 mal die Woche sollte dein System auf den neuesten Stand gebracht werden. Dieser Prozess lässt sich auch automatisieren. Allerdings empfehle ich die Updates von Hand einzuspielen um zu sehen welche Software neue Updates bekommen hat.
Fail2Ban installieren & konfigurieren Ein Tool wie Fail2Ban kann bei der Einschränkung von Hacker-Versuchen helfen. Es kann so eingerichtet werden, das es IP-Adressen, die versucht haben in das System einzudringen nach einer bestimmten Anzahl von Fehlversuchen für eine bestimmte Zeit zu blockieren. Das gilt je nach Konfiguration dann auch für den Mail-Server oder Chat-Server etc. Fail2Ban sollte auf jeden Fall installiert werden und reicht in der Einfachen Konfiguration für die meisten Einsatzzwecke aus.
Cookie-Zustimmung verwalten
Um dir ein optimales Erlebnis zu bieten, verwenden wir Technologien wie Cookies, um Geräteinformationen zu speichern und/oder darauf zuzugreifen. Wenn du diesen Technologien zustimmst, können wir Daten wie das Surfverhalten oder eindeutige IDs auf dieser Website verarbeiten. Wenn du deine Zustimmung nicht erteilst oder zurückziehst, können bestimmte Merkmale und Funktionen beeinträchtigt werden.
Funktional
Immer aktiv
Die technische Speicherung oder der Zugang ist unbedingt erforderlich für den rechtmäßigen Zweck, die Nutzung eines bestimmten Dienstes zu ermöglichen, der vom Teilnehmer oder Nutzer ausdrücklich gewünscht wird, oder für den alleinigen Zweck, die Übertragung einer Nachricht über ein elektronisches Kommunikationsnetz durchzuführen.
Vorlieben
Die technische Speicherung oder der Zugriff ist für den rechtmäßigen Zweck der Speicherung von Präferenzen erforderlich, die nicht vom Abonnenten oder Benutzer angefordert wurden.
Statistiken
Die technische Speicherung oder der Zugriff, der ausschließlich zu statistischen Zwecken erfolgt.Die technische Speicherung oder der Zugriff, der ausschließlich zu anonymen statistischen Zwecken verwendet wird. Ohne eine Vorladung, die freiwillige Zustimmung deines Internetdienstanbieters oder zusätzliche Aufzeichnungen von Dritten können die zu diesem Zweck gespeicherten oder abgerufenen Informationen allein in der Regel nicht dazu verwendet werden, dich zu identifizieren.
Marketing
Die technische Speicherung oder der Zugriff ist erforderlich, um Nutzerprofile zu erstellen, um Werbung zu versenden oder um den Nutzer auf einer Website oder über mehrere Websites hinweg zu ähnlichen Marketingzwecken zu verfolgen.