Ubuntu Server Sicherheit

Inkinobho

Cadet 1st Year
Registriert
März 2020
Beiträge
13
Schönen guten Tag,

ich habe heute einen Homeserver mit Ubuntu für Minecraft erstellt. Dieser Server funktioniert und ich kann auch mit Freunden spielen.

Ich habe folgende Ubuntu Version installiert:
Ubuntu Server 18.04.4 LTS
Und habe den Minecraft Port 25565 in meiner Fritzbox freigegeben.

Nun zu meinen Fragen:
Wie sicher ist so ein Ubuntu Server eigentlich und welche Risiken tun sich durch die Portfreigabe bei zum Beispiel Ausschalten des Servers auf und welche Allgemein?

Besteht überhaupt ein Sicherheitsrisiko, da der Port ja nur auf die Software des Minecraft Servers führt und Anfragen bei ausgeschaltetem Server ins Leere gehen?

Und selbst wenn schädliche Dateien auf dem Ubuntu kommen, werden sie ja nicht wie bei Windows ausgeführt, solange ich dies nicht manuell bewerkstellige, oder?

Ich freue mich über Verifizierung und Korrektur meines Wissens und über Tipps und Vorschläge für die Sicherung meines Servers!
 
Inkinobho schrieb:
Wie sicher ist so ein Ubuntu Server eigentlich
naja, rein pragmatisch gesagt liegt es weniger am Ubuntu Server, sondern eher an dem jeweiligen Admin, wie sicher ein Server, der im Netz haengt ist ...
File Auditing, Service Auditing, Firewall, Backup, Software Maintanance, Isolation, etc. - alles Dinge, mit denen man sich dann auch beschaeftigen sollte.
 
  • Gefällt mir
Reaktionen: Zerstoerer, Inkinobho, Autokiller677 und 5 andere
Das Risiko ist dass Angreifer direkt mit einem Prozess auf deinem Server kommunizieren können. Wenn der Minecraft Server nun eine Sicherheitslücke hat könnten Angreifer Schadcode an den Server schicken und beliebige Befehle auf deinem Server ausführen. Das trifft aber auf alle Server-Dienste zu, darum keine Panik, aber man kann einiges tun um die Sicherheit zu verbessern:
Sofern ihr nicht gezielt eine ältere MC Version spielen wollt immer aktuelle Versionen der Server-Software und -Plugins verwenden. Der Server sollte unbedingt als eigener Nutzer und nicht als root laufen, root kann backdoors im System verstecken; wenn ein Angreifer jedoch nur als irgendein normaler Nutzer Code ausführen kann bleibt der Schaden in Grenzen.
Darüber hinaus kann man die Software auch in einen Container verfrachten, so dass der Angreifer den Rest vom System nicht mehr sehen kann, sondern nur die Dateien, die der Minecraft Server selbst wirklich braucht. Dies muss nicht unbedingt ein Docker container sein, die security/namespace direktiven von systemd wie NoNewPrivleges, ProtectSystem und InaccessiblePaths sind auch schonmal ein guter Schritt.

Weiter gilt grundsätzlich zur Absicherung deines Servers: Nur Dienste laufen lassen die man wirklich braucht und SSH sicher einstellen; hierzu finden sich zahlreiche Anleitungen im Internet, am Besten eine aktuelle nehmen da sich über die Jahre auch mal was an den empfohlenen Schlüsseltausch/Verschlüsselungs-Algorithmen ändert.
 
  • Gefällt mir
Reaktionen: snaxilian, Sbibi, KillerCow und eine weitere Person
Marco01_809 schrieb:
Das Risiko ist dass Angreifer direkt mit einem Prozess auf deinem Server kommunizieren können. Wenn der Minecraft Server nun eine Sicherheitslücke hat könnten Angreifer Schadcode an den Server schicken und beliebige Befehle auf deinem Server ausführen. Das trifft aber auf alle Server-Dienste zu, darum keine Panik, aber man kann einiges tun um die Sicherheit zu verbessern:
Sofern ihr nicht gezielt eine ältere MC Version spielen wollt immer aktuelle Versionen der Server-Software und -Plugins verwenden. Der Server sollte unbedingt als eigener Nutzer und nicht als root laufen, root kann backdoors im System verstecken; wenn ein Angreifer jedoch nur als irgendein normaler Nutzer Code ausführen kann bleibt der Schaden in Grenzen.
Darüber hinaus kann man die Software auch in einen Container verfrachten, so dass der Angreifer den Rest vom System nicht mehr sehen kann, sondern nur die Dateien, die der Minecraft Server selbst wirklich braucht. Dies muss nicht unbedingt ein Docker container sein, die security/namespace direktiven von systemd wie NoNewPrivleges, ProtectSystem und InaccessiblePaths sind auch schonmal ein guter Schritt.

Weiter gilt grundsätzlich zur Absicherung deines Servers: Nur Dienste laufen lassen die man wirklich braucht und SSH sicher einstellen; hierzu finden sich zahlreiche Anleitungen im Internet, am Besten eine aktuelle nehmen da sich über die Jahre auch mal was an den empfohlenen Schlüsseltausch/Verschlüsselungs-Algorithmen ändert.
Danke sehr!
 
Inkinobho schrieb:
welche Risiken tun sich durch die Portfreigabe bei zum Beispiel Ausschalten des Servers auf
Wenn auf dem Port kein Dienst läuft - in dem Fall also der Minecraft-Server - endet eine Verbindung, weil schlicht und ergreifend niemand rangeht. Das ist vergleichbar damit, dass du dein Telefon aussteckst - es klingelt nicht mehr, und der Anruf läuft ins Leere.



Inkinobho schrieb:
Und selbst wenn schädliche Dateien auf dem Ubuntu kommen, werden sie ja nicht wie bei Windows ausgeführt, solange ich dies nicht manuell bewerkstellige, oder?
Wie kommst du denn darauf?!? Wenn ein Angreifer einen Dienst wie zB den Minecraft-Server attackiert und es schafft, dem System Schadcode unterzujubeln, kann er auch unter Linux beliebigen Unsinn treiben - zumindest unter dem Benutzerkonto, das den Serverdienst gestartet hat. Deswegen wäre es fatal, wenn zB Minecraft als root läuft. Linux ist mitnichten per Definition sicherer als Windows. Wenn man einen Linux-Server nicht absichert, ist er ebenso verwundbar wie ein ungesichertes Windows.



Grundsätzlich kommt die Sicherheit eines Systems nicht durch die bloße Existenz von Schutzmaßnahmen, sondern durch deren fachgerechte Anwendung und Konfiguration. Auch unter Linux tut zB die Firewall "einen Scheiß", wenn sie nicht entsprechend konfiguriert ist. Es ist sogar so, dass die Firewall unter Linux nach der Installation je nach Distribution vollständig leer/offen ist, während Windows immerhin mit einer Standardkonfiguration installiert wird.

Das A und O der Serversicherheit ist und bleibt der Admin selbst.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: RalphS und Inkinobho
Raijin schrieb:
Es ist sogar so, dass die Firewall unter Linux nach der Installation je nach Distribution vollständig leer/offen ist, während Windows immerhin mit einer Standardkonfiguration installiert wird.
Ah okay danke. Habe bis jetzt nur sudo ufw enable eingegeben und das reicht wahrscheinlich noch nicht. Die Firewall verbessern werde ich und ein super Admin hoffentlich auch!
 
Raijin schrieb:
Deswegen wäre es fatal, wenn zB Minecraft als root läuft.
Also wenn ich es richtig verstanden habe, dann kann jemand sich über quasi Minecraft Sicherheitslücken in das Benutzerkonto, auf welchem der Server installiert ist reinhacken und dort zum Beispiel irgendwelche Programme installieren, solange das Benutzerkonto root Rechte hat bzw. die Minecraft Server.jar als root gestartet wurde.

Dazu noch ein paar fragen:
Wie kann ich herausfinden ob dies der Fall ist, also Rootrechte vergeben sind?
Ist sudo das gleiche wie root und reicht ein sicheres sudo passwort?
Erhöht die Minecraft whitelist Einstellung die Sicherheit?
Kann ein Angreifer nicht auch von dem einen Benutzeraccount über su auf dem anderen Account zugreifen?
Wie schütze ich den Rest meines Netzwerkes (isolation)?
 
Wenn du whoami eingibst, siehst du auf jeden Fall welcher User du bist. Da du bereits sudo getestet hast, wirst du sicherlich auch Root-Rechte haben. Ich glaube das war sogar die Standardkonfiguration.
Hier mal ein Link bezüglich Service-Units, damit kannst Services als einen anderen Benutzer starten:
https://wiki.ubuntuusers.de/systemd/Service_Units/
Ich glaube standardmäßig wird ein Service mit Root-Rechten gestartet.( bitte korrigiert mich, wenn ich falsch liege!)

Wenn du deinen Server wirklich absichern willst, musst du dich zwangsweise mit der Materie Linux auseinandersetzen.

Sudo ist ein Befehl. Root ist ein Benutzer. Standardmäßig ist Root das Adminkonto, welches sudo ausführen kann.

Das Whitelistening wird dir nicht viel bringen, da der Angriff bei einer Sicherheitslücke bereits eine eben drunter passieren würde.

Klar wenn er das Passwort für das Konto kennt, kann er darauf zugreifen.

Was Isolation betrifft, würde mir jetzt nur ein zweiter Router mit eigenem Netz einfallen, da wie viele schon erwähnt haben, die Fritzbox keine DMZ-Fähigkeit besitzt. An der Stelle noch die Frage, hast du wirklich einen Homeserver oder hostest du die Maschine auf einer VM?
 
  • Gefällt mir
Reaktionen: Inkinobho
IT-T0bi schrieb:
Wenn du whoami eingibst, siehst du auf jeden Fall welcher User du bist. Da du bereits sudo getestet hast, wirst du sicherlich auch Root-Rechte haben. Ich glaube das war sogar die Standardkonfiguration.
Hier mal ein Link bezüglich Service-Units, damit kannst Services als einen anderen Benutzer starten:
https://wiki.ubuntuusers.de/systemd/Service_Units/
Ich glaube standardmäßig wird ein Service mit Root-Rechten gestartet.( bitte korrigiert mich, wenn ich falsch liege!)

Wenn du deinen Server wirklich absichern willst, musst du dich zwangsweise mit der Materie Linux auseinandersetzen.

Sudo ist ein Befehl. Root ist ein Benutzer. Standardmäßig ist Root das Adminkonto, welches sudo ausführen kann.

Das Whitelistening wird dir nicht viel bringen, da der Angriff bei einer Sicherheitslücke bereits eine eben drunter passieren würde.

Klar wenn er das Passwort für das Konto kennt, kann er darauf zugreifen.

Was Isolation betrifft, würde mir jetzt nur ein zweiter Router mit eigenem Netz einfallen, da wie viele schon erwähnt haben, die Fritzbox keine DMZ-Fähigkeit besitzt. An der Stelle noch die Frage, hast du wirklich einen Homeserver oder hostest du die Maschine auf einer VM?
Ja. Ich bin super interessiert in Informatik und irgendwo muss man ja mal anfangen. Ich habe bereits ein bisschen programmier Erfahrung, aber noch nie mit Linux gearbeitet. Und ein Minecraft Server schien mir ein guter Anlass zu sein. Den Homeserver habe ich von einem Freund bekommen.
 
IT-T0bi schrieb:
Da du bereits sudo getestet hast, wirst du sicherlich auch Root-Rechte haben. Ich glaube das war sogar die Standardkonfiguration.
Der Begriff Root-Rechte ist hier nicht zielführend da mehrdeutig. "Root-Rechte" hat genau genommen nur ein Nutzer, nämlich root. Alles was der an Befehlen startet läuft auch als Nutzer root und darf daher erstmal alles auf dem System anstellen.
Den root-Nutzer sollte man im normalen Gebrauch nicht verwenden. Stattdessen hat man einen eigenen Nutzer und wenn man Befehle braucht die root vorbehalten sind, führt man sie mit sudo aus. Wenn ein Nutzer sudo-Rechte hat, dann kann er gezielt Befehle als root (oder als irgendein Nutzer) ausführen, er ist aber nicht automatisch immer root.

IT-T0bi schrieb:
Wenn du deinen Server wirklich absichern willst, musst du dich zwangsweise mit der Materie Linux auseinandersetzen.
Stimmt zwar, aber irgendwo muss man ja anfangen, und ein Homeserver mit einem unkritischen Dienst wie Minecraft ist da schon die beste Wahl um den Umgang mit Linux-Server zu lernen.

IT-T0bi schrieb:
Sudo ist ein Befehl. Root ist ein Benutzer. Standardmäßig ist Root das Adminkonto, welches sudo ausführen kann.
eh was. Klar könnte auch root den sudo-Befehl verwendet, bringt aber nix, da seine Befehle auch ohne sudo schon mit root-Rechten laufen.

IT-T0bi schrieb:
Hier mal ein Link bezüglich Service-Units, damit kannst Services als einen anderen Benutzer starten:
https://wiki.ubuntuusers.de/systemd/Service_Units/
Ich glaube standardmäßig wird ein Service mit Root-Rechten gestartet.
Jo, service units sind der gängige Weg für das Service-Management (z.B. für automatischen Start) auf Linux-Servern. Diese lösen die vorher gängigen SysVInit scripts (in /etc/init.d) ab und sind wesentlich einfacher einzurichten.
Da gibt es einiges an interessanten Direktiven um den Service zu konfigurieren. Wichtig ist die Angabe User= und Group=, denn ohne diese läuft der Prozess in der Tat als root und kann großen Schaden anrichten.
 
Marco01_809 schrieb:
eh was. Klar könnte auch root den sudo-Befehl verwendet, bringt aber nix, da seine Befehle auch ohne sudo schon mit root-Rechten laufen.
Dann Sorry für das Missverständnis. Ich hatte nur mehrfach bisher die Situation, dass trotz Root-Login beim Befehl updatedb die Meldung „Permission denied“ kam und mit einem sudo voran der Befehl ohne Probleme funktionierte.
 
IT-T0bi schrieb:
Dann Sorry für das Missverständnis. Ich hatte nur mehrfach bisher die Situation, dass trotz Root-Login beim Befehl updatedb die Meldung „Permission denied“ kam und mit einem sudo voran der Befehl ohne Probleme funktionierte.
Ja das hatte ich auch. also musste sudo eingeben vor manchen Befehlen. habe den Minecraft Account jetzt von der sudo Gruppe entfernt und der hat jetzt keine Rechte mehr. Funktioniert alles.
 
  • Gefällt mir
Reaktionen: IT-T0bi
Zurück
Oben