LXC container SSH?
Hi!
Ich hatte eine ähnliche frage schonmal gestellt jedoch nur die antwort bekommen, ich müsse einen Reverse Proxy einrichten, wie genau mache ich das ? Hier die Frage:
Ich möchte mehrere Linux Container für freunde betreiben sodass jeder seinen eigenen hat. Nun möchte ich das alle per port 26 auf den jeweiligen zugreifen können.
Wie würde das gehen ? Ausführliche Erklärung / Anleitung (aus dem Netz geht auch, am liebsten auf deutsch) wäre super!
1 Antwort
Ich hatte eine ähnliche frage schonmal gestellt jedoch nur die antwort bekommen, ich müsse einen Reverse Proxy einrichten, wie genau mache ich das ? Hier die Frage:
Indem du dir einen Reverse Proxy aussuchst, diesen installierst und einrichtest
Ich möchte mehrere Linux Container für freunde betreiben sodass jeder seinen eigenen hat.
Hat es einen Grund, warum du an externe Menschen LXC statt echten VMs weitergeben willst? Ich hoffe zumindest, dass diese alle unpriviligiert laufen.
Nun möchte ich das alle per port 26 auf den jeweiligen zugreifen können
Port 26 ist kein belegter standardisierter Port. Was soll denn genau darauf laufen?
Damit ein Reverse Proxy - mit Domains und Subdomains - funktioniert, müsste in den Headern der Pakete auch das Ziel zu finden sein. Das Protokoll müsste das also unterstützen.
Einfacher wäre es, wenn du einfach mehrere Ports freigibst - einen für jeden Freund. Abweichende Ports müssen angegeben werden - aber das würdest du bei 26 sowieso haben. Eventuell kannst du auch entsprechende Subdomains anlegen, die dann jeweils über einen SRV-Record die jeweiligen Ports veröffentlichen.
Ich hab z.B. auch mehrere Minecraft-Server auf abweichenden Ports laufen - dank SRV-Eintrag muss diesen jedoch niemand eintragen
Also ssh einfach einer kann auf einen Container per 26 zugreifen und ich möchte nicht so viele Portfreigaben auf meinem Rother haben jedoch dass jeder auf seinen eigenen Container zugreifen kann
du könntest, wenn du nicht so viel freigeben willst, dir auch überlegen, SSH-Zugang einfach nur über eine VPN-Verbindung anzubieten - du könntest dafür Wireguard oder OpenVPN hosten. Deine Freunde müssten dann das VPN dafür nutzen - und optimalerweise richtest du das ganze mit Firewall-Regeln so ein, dass sie nur Zugriff auf die entsprechenden Server und nicht auf die anderen Server und so haben.
Wenn du SSH öffentlich im Internet anbietest, solltest du das auf jeden Fall abhärten - und dafür sorgen, dass deine Freunde dies nicht ändern. Das bedeutet nur Authentifizierung über PubKey, kein Passwort-Login erlauben, kein Root-Login erlauben, mit Fail2Ban verknüpfen usw ...
Hättest du für den Reverse Proxy ne Anleitung? Am besten wenn’s geht in Deutsch ?
Als Reverse Proxy - für HTTP und HTTPS wohlgemerkt - nutze ich selbst Nginx. Das kannst du natürlich direkt samt Konfigurationsdateien auf der Maschine installieren oder z.B. in Docker den Nginx Proxy Manager installieren - der macht die Konfiguration sehr einfach und bequem.
Anleitungen dazu findet man per Google schnell, wenn man "Setup Reverse Proxy nginx" eingibt.
Mit dem NPM muss man sich nicht mit Konfigurationen rumschlagen, sondern hat eine WebUI. Da ist es dann auch nicht mehr als
- Proxy Host anlegen
- Domain(s) angeben, auf die das zuteffen soll
- Protokoll, Ziel und Port angeben
- Wählen, ob man HTTPS, HSTS usw erzwingen will
- Entweder über let's encrypt ein neues Zertifikat erstellen oder ein schon eingepflegtes Zertifikat auswählen
SSH ist kein Protokoll, welches die Ziel-Adresse wie bei Http(s) in entsprechenden Headern verarbeitet - einen Reverse Proxy wirst du dafür nicht finden
Was kann ich dann tuen damit meine Leute auf ihre eigenen lxc vm s zugreifen können (JA es sind VMs denn ich hab sie erstellt mit dem Argument: —vm
Was kann ich dann tuen damit meine Leute auf ihre eigenen lxc vm s zugreifen können
Wie gesagt: entweder gibst du mehrere Ports frei oder nutzt einen VPN-Dienst.
Alternativ könntest du auch einen Jumphost für SSH aufsetzen, der im Netz steht und durch den sie auf die einzelnen Server zugreifen können
(JA es sind VMs denn ich hab sie erstellt mit dem Argument: —vm
Lxc-container sind keine VMs ...
doch sind sie, wenn du das --vm argument hinten dran gibst.
Gib mir doch Mal eine Quelle dazu, auf die schnelle finde ich nichts zu lxc --vm
LXC nutzen den Kernel des Hosts, sie sind keine VMs
Also ssh einfach einer kann auf einen Container per 26 zugreifen und ich möchte nicht so viele Portfreigaben auf meinem Rother haben jedoch dass jeder auf seinen eigenen Container zugreifen kann