Homeserver von überall erreichbar machen?
Ich habe mir heute einen Homeserver mit Debian 11 eingerichtet den ich nur zum gelegentlichen gebrauch für z. B. einen Gameserver benötige.
Aus diesem Grund habe ich dann sofort probiert einen Minecraft Server aufzusetzen, hat auch alles wie immer funktioniert bist ich zu dem Punkt kam bei dem ich dem Server beitrete. In der Vergangenheit habe ich da einfach die IP des gemieteten Servers zu meiner Domain hinzugefügt und bin danach normal gejoint.
Jetzt ist es aber so, dass der Server nicht gefunden wird ("Can't connect to server.") egal ob per Domain oder blanker IP.
Ich habe bereits verschiedene Dinge versucht wie meinen Homeserver im Router als Exposed Host einzustellen oder die eigenständige Portfreigabe zu aktivieren, doch nichts hat geholfen (SSH Zugriff ist jedoch normal möglich).
Vll kann mir jemand weiterhelfen wie ich meinen Server so öffentlich mache wie man es von den gemieteten kennt oder wie ich zumindest den Minecraft Server freigeben kann, um kein zu hohes Sicherheitsrisiko einzugehen.
1 Antwort

Ich habe bereits verschiedene Dinge versucht wie meinen Homeserver im Router als Exposed Host einzustellen
Das solltest du nur tun, wenn du auf dem System selbst eine aktive Firewall nutzt wie z.B. ufw
oder die eigenständige Portfreigabe zu aktivieren, doch nichts hat geholfen
(SSH Zugriff ist jedoch normal möglich).
SSH ist möglich? Über die externe IP? Oder die interne? IPv4 oder IPv6?
Hast du auch tatsächlich die richtige IP gewählt und ganz wichtig, wenn du IPv4 nutzt: hast du überhaupt eine eigene öffentliche IPv4 oder nutzt dein Anbieter DSLite oder eine Form des CGNAT?
Ist denn ein Zugriff mit der lokalen IP aus dem lokalen Netzwerk möglich?
Hast du in der server.properties eine IP eingetragen? Wenn ja, entferne Mal den entsprechenden Wert wieder
oder wie ich zumindest den Minecraft Server freigeben kann, um kein zu hohes Sicherheitsrisiko einzugehen.
Mit einer Portfreigabe geht man immer ein gewisses Risiko ein. Bei Minecraft und generell gewisse Java-Anwendungen gab es z.B. Ende 21 ein kritisches Sicherheitsproblem mit Log4j, mit dem Angreifer Remote Code ausführen konnten.
Optimalerweise sind öffentliche Server in einem Subnetz, über welches kein Zugriff auf das Hauptnetz möglich ist - mit beschränkten Ein- und ausgehenden Verbindungen. Diese Beschränkung sollte aber nicht (nur) auf dem Server selbst passieren, sondern tatsächlich in einer unabhängigen Firewall
Das kann man in der Regel mit Consumer-Hardware nicht wirklich umsetzen. Dort für das Gastnetzwerk o.Ä. keine Freigabe möglich ist.
Man könnte zwei Router hintereinander schalten und sie beide als Router laufen lassen, hat dann aber eventuell Probleme mit Doppel-NAT beim Zocken.
Du könntest auch deinen Router mit einer OPNsense o.Ä. ersetzen, brauchst dann aber eventuell noch ein zusätzliches Modem und eventuell einen WLAN-AP, wenn du deinen aktuellen Router dann nicht als AP laufen lassen kannst

Ich habe auf dem Server ufw aktiv.
Muss ich evtl den Port erst bei ufw freigeben wie ich es für SSH machen musste?
ja.
In WinSCP verwende ich die normale IPv4 des Servers
Die IP hab ich ganz normal mit dem command ip a abgelesen und eingefügt.
also deine lokale IPv4 (im Format 192.168.x.x, 172.16.x.x - 172.31.x.x oder 10.x.x.x)? passt dann zumindest lokal. Richte erstmal den lokalen Zugriff, und anschließend erst die externe Verbindung
Die IP hab ich nicht in die server.properties eingetragen da hab ich alles so gelassen.
jup, passt
mit den standard root Zugangsdaten.
Sicherheitstipp: Nutze nicht den root-Nutzer. Du kannst und solltest ihn sogar komplett deaktivieren (nachdem du dich natürlich um eine Alternative gekümmert hast).
Erstelle hingegen einen "normalen" Nutzer und gib ihm sudo-Rechte für Administrative Zwecke und einen normalen Nutzer für Services
Zudem, wenn du SSH nutzt, solltest du nicht auf Passwort-Authentifizierung setzen, sondern auf Keyfiles

Habs jetzt gerade schon gelöst bekommen.
Habe ufw deaktiviert aber dafür auch Exposed Host und selbstständige Portfreigabe wieder deaktiviert, bedeutet ich muss zwar jedes mal manuell die Ports neu freigeben, bin aber auf der sicheren Seite.
Den root zu deaktivieren hatte ich auch vor musste nur wie du gesagt hast erstmal einen zweiten Nutzer erstellen.
Gibt es sonst sicherheitstechnisch noch Dinge die ich unbedingt beachten sollte oder passt das so?

Habs jetzt gerade schon gelöst bekommen.
Habe ufw deaktiviert aber dafür auch Exposed Host und selbstständige Portfreigabe wieder deaktiviert
Was auch sinnvoll ist
bedeutet ich muss zwar jedes mal manuell die Ports neu freigeben, bin aber auf der sicheren Seite.
Ist auch besser so. Du willst ja selbst Herr der Lage sein und bestimmen, wer über welchen Port von außen Verbindungen aufbauen kann.
Du kannst aber ufw auch wieder aktivieren und solltest dir zusätzlich die Mühe machen, die möglichen Verbindungen einzuschränken. Wenn du witzig bist, könntest du auch prinzipiell ausgehende Verbindungen beschränken und musst halt Dinge wie Update-Server manuell freigeben. Das sollte aber optimalerweise, wie gesagt, auf einer Firewall eingestellt werden, die NICHT auf dem System läuft.
Den root zu deaktivieren hatte ich auch vor musste nur wie du gesagt hast erstmal einen zweiten Nutzer erstellen.
Das sind wenige Befehle, da entsprechend aufzuräumen. Das schaffst du ;)
Gibt es sonst sicherheitstechnisch noch Dinge die ich unbedingt beachten sollte oder passt das so?
Bevor du Dinge online stellst, kannst du dir ja mal in Google diverse Guides zum Abhärten von Debian anschauen, z.B.
https://github.com/imthenachoman/How-To-Secure-A-Linux-Server

Ok also ich habe heute nochmal ausprobiert ob alles von außen erreichbar ist (SSH und MC Server) und anscheinend ist dies trotz Portfreigabe doch nicht der Fall :(
Habe ich irgendwas vergessen?

Habe ich irgendwas vergessen?
Also, intern funktioniert jetzt alles, wie es soll? Nur, um da Fehler auszuschließen
Nutzt du IPv4? Hast du denn überhaupt eine eigene öffentliche IPv4 oder nutzt dein Anbieter DSLite oder sonstiges GCNAT?

Intern klappt alles und ich benutze IPv4. DSLite oder so benutzt mein Anbieter nicht.


Hab jetzt nochmal bssl rumprobiert. Portchecker hat vorher schon immer angegeben dass der Server online is und tuts jetzt immernoch. Das einzige Problem das ich noch hab, ist das sobald ich meinen MC Server mit einer Domain verknüpfe in MC selber die Meldung auftritt „Cant resolve Hostname“. Nach bisschen Recherche hab ich rausgefunden dass das anscheinend was mit DNS zutun hat jedoch hab ich keinen Plan was ich da machen muss.

Das einzige Problem das ich noch hab, ist das sobald ich meinen MC Server mit einer Domain verknüpfe
WIE GENAU hast du Dinge verknüpft? Du kannst den Server selbst nicht "verknüpfen".
in MC selber die Meldung auftritt „Cant resolve Hostname“. Nach bisschen Recherche hab ich rausgefunden dass das anscheinend was mit DNS zutun hat jedoch hab ich keinen Plan was ich da machen muss.
Was hast du denn bisher getan?
Du benötigst für deine angegebene Domain einen Eintrag (A für IPv4, AAAA für IPv6, CNAME für andere Domains), die eben auf deine öffentliche IP zeigt.

Hab jetzt doch iwie hinbekommen weiß net ganz was falsch war aber iwie funktioniert’s jetzt.
Danke für die ganze Hilfe!
Ich habe auf dem Server ufw aktiv.
In WinSCP verwende ich die normale IPv4 des Servers mit den standard root Zugangsdaten. Die IP hab ich ganz normal mit dem command ip a abgelesen und eingefügt.
Die IP hab ich nicht in die server.properties eingetragen da hab ich alles so gelassen.
Muss ich evtl den Port erst bei ufw freigeben wie ich es für SSH machen musste?