VServer sichere Verbindung über RDP

fwrede

New Member
Hallo.

Aus gegebenem Anlass plane ich derzeit, in naher Zukunft einen Vserver anzumieten und auf diesen einige Scripte laufen zu lassen, die eine relativ hohe Verfügbarkeit voraussetzen.

Bislang habe ich diese auf einem Raspberry Pi zuhause gehostet. Leider erwiesen sich aber die Kühllüfter nicht für den Dauerbetrieb ausgelegt und für eine Nextcloud-Instanz war auch die Internetanbindung teilweise etwas träge.
Daher liegt nun der Gedanke nahe, dass ich mir einen ausreichend dimensionierten VServer im Rechenzentrum anmiete.
Nun war es allerdings so, dass ich auf den R-Pi immer über RDP zugegriffen habe. Hierbei gab es auch stets eine Warnmeldung, die ich weggeklickt habe.
Der zugreifenden PC und der R-Pi waren schließlich im gleichen Netz und für einen Zugriff von außen war der RDP-Port nicht freigeschaltet. Gleiches galt auch für den SSH-Port.

Wenn ich nun aber einen Server in einem entfernten Rechenzentrum anmiete, komme ich um einen Zugriff über das Internet nicht mehr herum. Aus diesem Grund bin ich nun etwas besorgt, dass die Verbindungen aufgrund der Warnmeldung nicht verschlüsselt sind. Immerhin ist über das Protokoll der Zugriff auf den Server möglich und auch das Passwort wird dann im Klartext übertragen.

Meine Idee war es, einen Vserver mit einem aktuellen Linux Betriebssystem (vermutlich Ubuntu oder Debian) zu mieten, auf diesem eine Virtualisierungssoftware zu installieren und dann darüber auch weitere Betriebssysteme nutzen zu können. Daher wäre mir der Zugriff über eine Shell nicht ausreichend und ich würde eigentlich schon schon gerne RDP (oder falls ihr etwas vergleichbares, aber sicheres kennt) nutzen, um auch über das GUI arbeiten zu können.

Daher nun meine Frage: Habt ihr Ideen oder gar eigene Systeme im Betrieb, die eine sichere Verwendung von RDP (oder vergleichbares) von Windows auf Linux ermöglichen?

Über Tipps und Hinweise würde ich mich freuen.

VG
 
Auf welches OS benötigst du denn den RDP Zugriff? Du erwähnst ja, dass auf dem entfernten Server weitere Betriebssysteme verwendet werden sollen. Welchen (unverschlüsselten?) Zugriff hast du denn im Heimnetzwerk zu deinem Raspberry Pi hergestellt?

Heißt RDP bei dir zwingend die Nutzung eines Desktops auf dem Zielsystem? Kann ich mir zur reinen Scriptausführung adhoc nicht vorstellen.
 
Wenn du auf einem vServer weiter virtualisieren willst (der vServer ist ja schon virtualisiert), dann solltest du einen Provider nehmen, der nested Virtualisation anbietet. Es gibt sogar Angebote (z.B. basierend auf Virtuozzo), bei denen weitere Virtualisierung nicht möglich ist. Sofern deine zusätzlichen virtuellen Systeme aus dem Internet erreichbar sein sollen, sind außerdem mehrere IP-Adressen vom Hoster sinvvoll.
Zum sicheren Zugriff auf Linux-Server für die Administration ist zum einen SSH das Mittel der Wahl, was aber erstmal nur Kommandozeilenzugriff bietet.
 
Auf welches OS benötigst du denn den RDP Zugriff? Du erwähnst ja, dass auf dem entfernten Server weitere Betriebssysteme verwendet werden sollen. Welchen (unverschlüsselten?) Zugriff hast du denn im Heimnetzwerk zu deinem Raspberry Pi hergestellt?

Heißt RDP bei dir zwingend die Nutzung eines Desktops auf dem Zielsystem? Kann ich mir zur reinen Scriptausführung adhoc nicht vorstellen.


Hallo und vielen Dank für die Rückmeldung.


Vielleicht kann ich meinen Einsatzplan noch etwas genauer beschreiben.

Mein Ziel ist es in erster Linie, einen VServer anzumieten, der meine Scripte ausführen kann und dann Daten in eine MariaDB speichern kann. Diese Daten sollen dann via Internet u.a. über phpmyadmin für mich einsehbar sein, zudem sollen Nachrichten über Telegram versendet werden können. Dafür benötigte ich natürlich keinen RDP-Zugang, da ich die nötigen Schritte dafür ohnehin über eine Shell aufsetzten müsste.


Da ich aber auch gerne etwas herumspiele und mich an neue IT-Systeme heranwage, wollte ich den VServer dafür auch nutzten. Bei den Hostern, die ich mir bislang herausgesucht hatte, ist die Leistung (VCores und RAM) sehr hoch (6 VCores & 20 GB RAM), wenn ich mindesten 300 GB Plattenspeicher möchte. Daher war meine Idee geboren, diese Spielereien in virtualisierten weiteren Betriebssystemen auf dem VServer auszuprobieren, damit ich damit mein Produktivsystem (also das Basissystem) nicht zerschieße. Wenn die Systeme dann genug getestet sind und ich z.B. auch Update-Prozesse zunächst einmal ausprobiert habe, bevor ich das System auf das Produktivsytem umziehe. Die Scriptausführung ist also nur die Basisaufgabe des Servers, da ich im RZ eine höhere Verfügbarkeit garantiert bekomme und die API-Abfragen nur in dem speziellen Moment möglich ist und danach schon wieder andere Daten auf eine Anfrage geliefert werden.


Die RDP-Verbindung hätte ich gerne auf das Produktivsystem, also den Basisserver. Ich würde gerne den Rechner steuern können, als säße ich davor. Daher ist für mich eine RDP-Verbindung eigentlich das einzige Mittel, was ich derzeit sehe.

Viele Grüße
 
Wenn du auf einem vServer weiter virtualisieren willst (der vServer ist ja schon virtualisiert), dann solltest du einen Provider nehmen, der nested Virtualisation anbietet. Es gibt sogar Angebote (z.B. basierend auf Virtuozzo), bei denen weitere Virtualisierung nicht möglich ist. Sofern deine zusätzlichen virtuellen Systeme aus dem Internet erreichbar sein sollen, sind außerdem mehrere IP-Adressen vom Hoster sinvvoll.
Zum sicheren Zugriff auf Linux-Server für die Administration ist zum einen SSH das Mittel der Wahl, was aber erstmal nur Kommandozeilenzugriff bietet.

Hallo.

Vielen Dank auch für diesen Hinweis. Gewählt wird von dem Hoster entweder eine LXC oder KVM Virtualisierung verwendet. Soweit ich mich im Internet belesen habe, sollte auf diesen Virtualisierungstechnologien möglich sein, weitere Virtualisierungen zu betreiben. Wenn du da andere Informationen hast, kannst du mich aber gerne infomieren. :D
Weitere IP-Adressen gibt es allerdings nicht dabei und kann ich mir jetzt auch nicht wirklich leisten :D. Aber die weiteren VM sollen eigentlich auch nur eine Testumgebung sein, das Produktivsystem befindet sich ja im "Basissystem".

Ja genau, das SSH das einzig wirklich sichere Verfahren ist, ist mir bewusst. Leider reicht bei mir aber nur der Kommandozeilen nicht aus. Für einige Anwendungen in den virtualisierten Servern benötige ich einen GUI-Zugriff, daher auch meine Anfrage hier im Forum. :)

Viele Grüße
 
KVM kann nested Virtualisation, aber es muss auch aktiviert sein - wenn dein Hoster es nicht explizit als Feature erwähnt, frag nach.
 
KVM kann nested Virtualisation, aber es muss auch aktiviert sein - wenn dein Hoster es nicht explizit als Feature erwähnt, frag nach.

Danke für den Hinweis, habe nicht so weit gedacht, dass die Hoster das ggf. gar nicht aktivieren. Auch wenn ich nicht weiß, warum ein Hoster das nicht aktivieren sollte, wende ich mich an die beiden Kandidaten, die ich momentan in der näheren Auswahl habe.

Vielen Dank!
 
Braucht dein Script wirklich 300 GB zur Verfügung stehenden Speicherplatz? Wie kommen die von dir genannten Werte ( 6 vCores, 20 GB vRAM) zustande? Klingt für mich danach, als suchtest du eine (sinnvolle?) Verwertungsmöglichkeit der überschüssigen Ressourcen.
 
Braucht dein Script wirklich 300 GB zur Verfügung stehenden Speicherplatz? Wie kommen die von dir genannten Werte ( 6 vCores, 20 GB vRAM) zustande? Klingt für mich danach, als suchtest du eine (sinnvolle?) Verwertungsmöglichkeit der überschüssigen Ressourcen.

Nein die Scripts brauchen sicher nicht so viel Leistung, ich glaube da würde ein vCore und 2 GB Ram ausreichend sein. Die Scripts fragen im Kern nur regelmäßig APIs ab, nehmen die Werte auseinander und schieben sie dann in eine Datenbank. Aus dieser Datenbank wird dann ein Durchschnittswert ermittelt und ein mal in der Stunde per Telegram versendet.

Die 300 GB habe ich zukunftsgerichtet geplant, da ich auch ein Nextcloud oder Owncloud System aufsetzten wollte, da ich den Speicherplatz in kommerziellen Clouds bereits ausgeschöpft habe und häufig Dateien auch online verfügbar brauche. Bei ca. 3 Nutzern der Cloud mit je 95 GB hätte ich dann 15 GB noch frei für das/die OS und die Datenbank. Daher habe ich die 300 GB als untere Grenze gewählt und dann bei zwei (mir bekannten) Hostern nach den Preisen geschaut. Dort wird dann auchz 6 vCores mit 16 bzw 24 GB RAM angeboten. So kommt es dann auch zu den beiden Werten.
 
Dann würde ich das ganze trennen. Ich weiß nicht, wie deine Erfahrungen beim Betrieb eigener Server im Internet gediehen sind; diesen Punkt sollte man aber nicht unterschätzen. Insbesondere wenn es um die Beherbergung fremder Daten geht, steht man da schnell vor einem nicht unerheblichen Problem. Ich möchte mich von Bekannten nicht fragen lassen, warum ihre persönlichen Backups plötzlich für jederfrau im Netz stehen.

Für den Betrieb deines Scripts gibt es andere Möglichkeiten. Ich IONOS hat derzeit einen VPS für dauerhaft €1,00 / mtl. im Angebot. Weitere Provider bieten ähnliche Angebote an.

Mit einem solchen Setup würde ich beginnen, Erfahrungen sammeln und dann entscheiden, ob ich bereit bin, mich dauerhaft mit dem Betrieb eines eigenen Server zu beschäftigen.
 
Dann würde ich das ganze trennen. Ich weiß nicht, wie deine Erfahrungen beim Betrieb eigener Server im Internet gediehen sind; diesen Punkt sollte man aber nicht unterschätzen. Insbesondere wenn es um die Beherbergung fremder Daten geht, steht man da schnell vor einem nicht unerheblichen Problem. Ich möchte mich von Bekannten nicht fragen lassen, warum ihre persönlichen Backups plötzlich für jederfrau im Netz stehen.

Für den Betrieb deines Scripts gibt es andere Möglichkeiten. Ich IONOS hat derzeit einen VPS für dauerhaft €1,00 / mtl. im Angebot. Weitere Provider bieten ähnliche Angebote an.

Mit einem solchen Setup würde ich beginnen, Erfahrungen sammeln und dann entscheiden, ob ich bereit bin, mich dauerhaft mit dem Betrieb eines eigenen Server zu beschäftigen.

Hallo.

Bitte entschuldige meine späte Rückmeldung.

Interessanter Ansatz mit dem VPS, allerdings bin ich mir schon ziemlich sicher, dass ich auf der einen Seite meine Scripte betreiben möchte, so wie ich es bis vor wenigen Wochen auf einem Raspberry-Pi gemacht habe. Dort habe ich auch einen Webserver betrieben. Aufgrund der begrenzten Leistung habe ich nur keine weiteren VMs oder gar eine Nextcloud hosten können. Daher will ich mich in diesem Bereich weiterentwickeln und auch mal ausprobieren. Damit ich dabei möglichst wenig kaputt machen kann, möchte ich die Testereien erst in einer VM ausprobieren und dann erst bei nötigem Kenntnissstand in das Produktivsystem überführen.
In einer (vollschulischen) Ausbildung habe ich bereits gelernt, wie ein Nexctloud System aufgesetzt wird, auch Typo3 und weitere haben wir uns angesehen. Dort allerdings immer auf einem lokalen System.

Mir ging es in diesem Thread auch nur darum, wie eine sichere Desktop-Verbindung zu dem Server aufgebaut werden kann. Dass der Webserver, genauso wie SSH u.a. mit Fail2ban abgesichert werden muss, ist mir klar, darum soll es aber auch gar nicht gehen.

In der Cloud sollen jetzt auch nicht super safe Daten gelagert wird. Viel mehr soll es dort einen Speicherplatz für Fotos/Videos geben, die zwischen PCs transferiert werden sollen, bzw. die ich temporär mit mehreren Personen teilen möchte. In der Schule lernten wir damals, dass Nextcloud eigentlich sehr sicher sein soll, wenn man die stable-Version regelmäßig updatet.
 
Mir ging es in diesem Thread auch nur darum, wie eine sichere Desktop-Verbindung zu dem Server aufgebaut werden kann.
In aller Regel ist die Antwort: gar nicht. Warum auch?
Der Server selber wird über die Konsole verwaltet (die du ja mit fail2ban bereits angesprochen hast) und Nextcloud wird über seine grafische Oberfläche angesteuert. Für den Zugriff auf das Nextcloud AIO Interface (sofern AIO verwendet wurde) richtet man bei Bedarf im SSH Client einen Portforwarding ein welcher den 127.0.0.1:8080 auf dem heimischen Rechner erreichbar macht.

In einigen exotischen Fällen (*hust* IBM *hust* ) sind Softwareinstaller nur über eine grafische Oberfläche bedienbar auch wenn dahinter die Serversoftware CLI-only ist. Für diesen Bedarfsfall installiert man die X11-Umgebung OHNE Server und benutzt einen X11-fähigen Client (zB MobaXterm) um die Applikation dann visuell zu steuern. Die einfachste Lösung dazu ist generell die Pakete für "xclock" und "xorg-x11-xauth" zu installieren.

In der Schule lernten wir damals, dass Nextcloud eigentlich sehr sicher sein soll, wenn man die stable-Version regelmäßig updatet.
In der Regel stimmt das für viele Applikationen und Umgebungen. Problem für Privat und Firmen ist aber sowohl das regelmässige aktualisieren von System und Software als auch eine sichere _und_ benutzbare Konfiguration. Generell würde ich aus Vorsicht empfehlen Nextcloud exklusiv hinter einer Web-Firewall (bspw. Cloudflare) ohne direkte Zugriffsmethode zu betreiben.
Um es zu veranschaulichen; jemand findet eine Sicherheitslücke in <Applikation deiner Wahl> und schreibt ein Missbrauchsprogramm. Über Suchmachinen wie Shodan hat er eine saubere Liste der meisten öffentlich sichtbarer <Programm> Instanzen und muss das Programm nur über diese Liste iterieren lassen. Auf diesem Weg sind binnen Stunden und weit bevor es Patches gibt tausende Installationen kompromittiert.

PS: Ich will hier keineswegs negativ klingen. Nur anmerken dass sowohl Lehrer als auch Industrieexperten mangels eigener schlechter Erfahrungen das Thema oft zu naiv erläutern. Die meisten hier im Forum haben eigene Horrorgeschichten die durchaus das Gegenteil aufzeigen.
Es ist ein unangenehmes Gespräch wenn Europol wegen des Freundschaftshosting der Wordpress-Seite des Dorf-Musikvereins anruft...
 
Nested Virtualisation (Virtualisierung in Virtualisierung) ist performancetechnisch nicht wünschenswert, davon abgesehen bin ich mir sehr sicher, dass es bei der überwiegenden Zahl von Angeboten nicht aktiviert ist.

Wenn Du wirklich mehrere Betriebssysteme virtualisieren und parallel betreiben willst, wäre ein dedizierter Server (echtes Blech) sinnvoller. Dort geht Virtualisierung (die nicht nested ist) auf jeden Fall. Ich würde hierfür jedoch nicht Windows als Host OS wählen, sondern Proxmox als eigenes ISO. Wenn wirklich Windows zum Einsatz kommen soll: Desktopversionen (z.B. "Windows 10/11") sind nicht für den Betrieb im Internet geeignet und auch nicht für den reinen Betrieb über RDP lizensiert/lizensierbar. Hier würde man Windows Server benötigen.

Wenn Du RDP im Internet offen hast, wirst Du vom ersten Moment an permanent angegriffen. Wenn RDP wirklich ohne VPN offen bleiben soll, MÜSSEN m.E. zwei Sachen unbedingt gemacht werden: 1. einen anderen Nutzer als Admin einrichten und den Standardbenutzer "Administrator" deaktivieren (!!!!!!!! ESSENTIELL !!!!!!!!) und dann noch 2. einen Brute Force Schutz einrichten. Das könnte https://github.com/DigitalRuby/IPBan sein, oder auch dessen noch bessere kostenpflichtige Version https://ipban.com/upgrade-to-ipban-pro/ .

Hetzner ist sicherlich ein Anbieter, der hier preistechnisch vorne steht. Die Absicherung des Hosts bei gleichzeitiger einfacher Zugänglichkeit wäre hier so zu lösen, dass man die enthaltene, separate stateless Firewall nutzen kann und die Verwaltungsports von außen verbietet. Dann installiert man sich Tailscale, Zerotier, Netbird oder Netmaker als VPN Lösung darauf (und auf seinem eigenen Rechner) und kann den Host ganz einfach und jederzeit erreichen, obwohl das Admininterface für andere aus dem Internet zu ist.

Ansonsten solltest Du imho, um Ressourcen zu sparen, nicht unbedingt auf Virtualisierung setzen, das ist eher "altmodisch", sondern Dich in Docker einarbeiten und Deine Anwendungen via docker compose aufsetzen. Dann sind sie auch voneinander getrennt (ein bisschen wie bei VMs), aber belegen keine reservierten Ressourcen sondern nehmen was da ist.
 
Ich habe gerade auch gelesen, dass man RDP über SSH tunneln kann
Meine Frage bleibt noch immer - warum? Da du SSH ansprichst und davor RPI, gehe ich davon aus dass es ein Linux OS ist. Damit ist RDP sehr exotisch und für Server (ausserhalb der Microsoft Welt) ist eine GUI noch exotischer. I
ch gehe also davon aus dass man sowohl die nicht irrelevanten Ressourcen als auch die Ports und Sicherheitsrisiken für RDP-Server (oder VNC, X2GO, Spice, X11 Server, ...) generell wird weglassen können.

Ansonsten solltest Du imho, um Ressourcen zu sparen, nicht unbedingt auf Virtualisierung setzen, das ist eher "altmodisch", sondern Dich in Docker einarbeiten und Deine Anwendungen via docker compose aufsetzen. Dann sind sie auch voneinander getrennt (ein bisschen wie bei VMs), aber belegen keine reservierten Ressourcen sondern nehmen was da ist.
Alternativ für klassische Anwendungen welche nicht der Docker-Ideologie entsprechen, LXC/LXD.
Dass Virtualisierung altmodisch ist würde ich aber nicht unterschreiben, es hat gegenüber vielen Containerumgebungen auch mehrere Vorteile (besseres Resource shaping, bessere Ressourcendedizierung auf Projekte, Live-Migration zwischen hosts, ...) und man kann beides prima kombinieren. Oder halt stacken.... KVM kann in Container laufen, Kubevirt lässt grüssen.

In jedem Fall packe ich meine privaten Coding-Projekte aber (fast) ausschliesslich in Docker-Umgebungen, einfacher damit zu entwickeln und einfacher zu deployen ohne jedesmal die Host-VM für die jeweiligen Voraussetzungen um zu bauen. Wenn bei der Entwicklung VSCode dann auch noch in einem Container im Docker-Compose Stack läuft ist das für kleine Projekte als schnelle Entwicklungsumgebung sehr angenehm ohne ganze Pipelines aufbauen zu müssen/brauchen.

aber belegen keine reservierten Ressourcen sondern nehmen was da ist.
Hier gehen wir in ein deutlich tieferes Niveau, aber Container (zumal Kubernetes) sind inflexibler zur Ressourcenverteilung als VMs, "dank" resource.requests und resource.limits reserviert man sich mal gerne ganze CPU-Kerne für Projekte welche diese nie benutzen werden. Um dies zu umgehen geht man bei entsprechend grossen Umgebungen dann auf Virtualisierungsebene overcommitten und nutzt live-migration als Balancing.
 
Last edited:
Back
Top