Windows Server im Internet absichern

NoConnection

Cadet 4th Year
Registriert
Okt. 2012
Beiträge
79
Hallo,

ich habe mir vor kurzem einen (stromspar-) Homeserver bestellt und mir nun Gedanken gemacht, wie ich das ganze sinnvoll absichern könnte. Da ich relativ neu in dem Servergebiet bin, hab ich davon aber noch nicht all zuviel Ahnung. Auf dem Server laufen sollen:
- Ein NAS, das erstmal nur aus dem internen Netz erreichbar ist, mit privaten und wichtigen Daten
- Eine Cloudanwendung (z.B. Owncloud)
- Ein VPN Server (OpenVPN)
- Ein Teamspeakserver und später evtl. ein ressourcensparender Gameserver
- Eine Möglichkeit für Remotedesktopzugriff aus dem Internet, sodass ich von überall aus theoretisch auch auf mein NAS zugreifen kann.

Auf dem Server soll Windows Server 2016 laufen, das bekomme ich als Student umsonst.

So, nun ist die Frage wie ich das sicher hinbekomme, ohne dass das Ding in 3 Tagen gehackt ist und meine Daten sonst wo sind ;)

Ich hab mir dazu schon Gedanken gemacht, hier mal meine Pläne:
- Alle Standardports nach außen hin ändern auf nicht-standardisierte Ports
- Standard-Usernames ändern und überall sichere Passwörter verwenden
- Einsatz der Windows-Firewall, im Router logischerweise nur die Ports freigeben, die zwingend benötigt werden.
- Einsatz eines Antivirenprogramms (Sophos oder Kaspersky)
- Alle "nicht so wichtigen" Dienste in eine VM, also Teamspeak, Owncloud, VPN Server, evtl. Gameserver, damit im Fall eines erfolgreichen Angriffs noch kein Zugriff auf das NAS und andere PCs im Netzwerk besteht (wegen Passwortschutz)
- Remotedesktopzugriff sollte möglichst auf den Hauptserver direkt möglich sein (auch ohne VPN)

Bin mir nicht sicher, inwiefern das jetzt gut oder schlecht ist, wollte mal eure Meinung dazu hören, evtl. andere Vorschläge, oder warum das alles so überhaupt nicht funktioniert. Hab mir auch überlegt, ob man die freigegebenen Festplatten (2x WD Red 3TB) verschlüsseln sollte, aber ich denke dass das keine weitere Sicherheit gegen Netzwerkangriffe bringt, oder liege ich da falsch?

Schon mal danke für die Antworten
 
Hi

Soweit hast du schon weit gedacht.
Festplatten verschlüsseln bringt dir in der Regel nichts in diesem Szenario.

Vorallem "normale" Virenscanner aller Kaspersky und co machen vorallem auf Servern eher Probleme. Es gibt dafür spezielle Versionen der Virenscanner aber der Windows Defender reicht vollkommen wenn du den Updatezyklus etwas verkürzt und ggf. noch die PUP (unerwünschte Software) Erkennung aktvierst.

Getrennte VMs für einzelne Funktionen -> Super!
Soweit auch gut gedacht. RemoteDesktop aber ohne VPN ist schon ein extremes Risiko.
Ich würde auch auch das hinter ein VPN setzen. Wenn das nicht geht:

Aktivierung bei Bedarf bzw. deaktivieren bei Nichtbedarf.
z.B. Mit Handy per VPN ins lokale Netz -> Portweiterleitung für RemoteDesktop aktivieren und wenn man fertig ist wieder deaktivieren.
 
Zuletzt bearbeitet:
Okay danke für die Antwort, hört sich ja ganz gut an.
Kurz noch zu dem VM's: Ich habe aus Performancegründen angedacht, VPN, Owncloud, Teamspeak etc. alles in eine VPN zu packen (also alles in die selbe), weiß nicht ob ich das so verständlich rüber gebracht habe. Aber da diese Dienste ja eher zweitrangig sind sollte das egal sein.

Zu Remotedesktop: Dachte eigentlich, dass das von Haus aus ziemlich sicher ist. Das ganze über VPN leiten ist eher schlecht, dann müsste ich ja immer erstmal nen VPN Client installieren, wenn ich auf den Server zugreifen will. Das mit dem aktivieren per Handy ist aber eine super Idee, daran hab ich gar nicht gedacht.

Ein Bekannter hat es bei sich so geregelt, dass er von außen per Remotedesktop auf eine VM zugreifen kann, und dann von der VM aus wieder per Remotedesktop auf den richtigen Server. Das bringt mir aber auch kein plus an Sicherheit oder? Ist ja dann im Prinzip nur ein Schritt mehr.

Gruß
 
Je kompliziert es ist umso "besser". Aber darunter leidet die Performance und so viel sicherer ist das dann trotzdem nicht.

Smartphones habe eigentlich alle bereits einen VPN Client an Board.
Wenn du DirectAccess (also Microsofts VPN via IPSec) nutzt dann kann das auch jeder halbwegs aktuellen Client im Handy und PC Bereich.

RemoteDesktop wird meines Wissens bei vielen Firmen nur via VPN eingesetzt.
Problem ist das man hier nur eine Lücke im Remote Protokoll von Microsoft finden muss (die gab es schon!) und schon kann man loslegen. Keine weiteren Hürden, der RemoteDesktop läuft auf Systemebene noch über Adminrechten. Knackt man ein VPN muss man immer noch den Rechner selbst übernehmen.

Also OwnCloud würde ich auf jedenfall eine extra VM spendieren.
Teamspeak und GameServer können zusammen laufen, kein Problem.

Es sollte aber keine Freigabe oder ähnliches geben. Also von der TeamSpeak VM sollte man nicht ins lokale Netzwerk kommen oder man dichtet das LAN sauber ab (keine Datefreigaben etc. bzw. nur mit starken Passwörtern).
 
Zuletzt bearbeitet:
Owncloud bzw. Nextcloud bieten schon länger keinen Windows Support mehr. Würde dir stark zu Nextcloud raten, läuft deutlich stabiler, zumindest bei mir.
Kommt natürlich auch darauf an was in der Cloud lagern soll etc und wie potent der Homeserver ist. Habe so etwas ähnliches vor, allerdings hapert es bei mir zum einen noch an der Hardware und auch an der Zeit.
 
Mein Smartphone wäre kein Problem für VPN, es geht eher darum wenn ich mal an nem fremden PC bin, z.B. in der Uni oder so, dann kann ich da schlecht n VPN Client installieren. Das mit Remotedesktop muss ich dann also auf jeden Fall nochmal überdenken, hab auch schon gehört dass es da hier und da mal Sicherheitslücken gibt.

Das mit der Freigabe verstehe ich nicht so ganz: Von den VMs gehen keine Freigaben aus, und alle Netzwerkfreigaben sind auch passwortgeschützt, aber es lässt sich doch nicht verhindern, dass z.B. die Teamspeak VM aufs interne Netz zugreifen kann, oder? Schließlich braucht die VM auch Internetzugriff und muss ja dann Netzwerkzugriff haben.


@xexex Habe nur wegen Teamspeak und vor allem dem evtl angedachten Gameserver Angst, da gibt es schon öfter mal Sicherheitslücken etc., deswegen wollte ich es in eine VM auslagern. Das mit Docker hab ich so noch nicht gesehen, muss ich mir mal anschauen.

@Targa das mit Owncloud war mir gar nicht bewusst, danke für den Tipp. Der Server ist jetzt kein Leistungsmonster, aber für eine oder zwei VM's + ein paar Anwendungen sollte es auf jeden Fall reichen.
 
Zuletzt bearbeitet:
Stufe 1:
Hmm also ich würde zunächst den Server in eine DMZ stellen, also eigene Zone im Netzwerk.
Danach die Firewall für die Zone DMZ <-> Internet so streng einstellen dass nur die unbedingt notwendigen Ports offen sind.

Stufe 2 (wenns echt ein Windows Server sein soll):
Auf dem Windows Server natürlich sichere Passwörter verwenden, die Sharing-Einstellungen im Netzwerk und Freigabecenter noch mal gut anschauen (z.B Discovery aus, Verschlüsselung für SMB auf die höhere Stufe usw.).

Ach ja und den Account mit lokalen Admin-Rechten nicht Administrator nennen :)

Stufe 3 (ist auch nicht zu vernachlässigen - mach dich drüber schlau):
Wenn du ganz auf Nummer sicher gehen willst, sollte dein Router eine sinnvolle Firewall haben, also z.B mit Deep/Stateful Packet Inspection.

Oder ganz toll, aber für die meisten Overkill, wäre wohl eine Lösung wie Forefront TMG, Sophos UTM (sehr beliebt), pfsense etc. als Router/Firewall/Gateway zu verwenden. So kannst du auch gezielt und aufwendig das Netzwerk überwachen und kontrollieren.

Allgemein würde ich die Server-Dienste welche vom World Wide Web aus zugänglich sind grundsätzlich in virtuellen Maschinen (VM's) betreiben. Dazu Stufe 4.

Stufe 4 (und die macht so meine ich, sehr viel Sinn, Ist aber etwas komplexer):
Und um ehrlich zu sein auch kein Windows Server sondern einen Hyper-V, ESXi, Proxmox what ever Bare-Metal Virtualisierungs-Host auf dem Blech selber laufen lassen.

Alles andere dann in VM's oder halt Docker Container. Das hat den Vorteil dass du die Systeme komplett trennen kannst.
Kommt einer irgendwie auf deinen Datenserver für die Cloud (Owncloud what ever), so ist er in den anderen Systemen noch längst nicht drinn, geschweige denn wüsste davon.

Und übrigens, unter Linux gibts ein paar wirklich lustige Tools wie Fail2Ban welche die IP von "Angreifern" auf deinen Server nach x-mal falschen Login-Versuchen für eine beliebig definierte Zeit blocken können. Für Webserver oder so die gerne auf dem SSH Port attackiert werden mittels Bruteforce, eine echt gute Sache.

So hält man sich Bot-Netzte schnell mal fern
 
Zuletzt bearbeitet:
Das was Ghost sagt und zusätzlich noch:

- RDP nicht direkt nach außen freigeben. Was eine Option wäre: ein SSL-VPN und damit meine ich nicht openVPN was ja auf SSL-Basis läuft, sondern ein Browser-basiertes VPN. Dann brauchst als "Client" nur einen idR HTML 5 fähigen Browser. Eine Opensource Variante wäre z.B. Guacamole. Aber auch da musst du dich dann um das Hardening der Anwendung und des Webservers kümmern.
 
Okay, jetzt wirds kompliziert :D
Erst mal danke für die ganzen Tipps.

Das System einer DMZ kenne ich so schon, allerdings fehlt mir dazu das nötige Netzwerk-Equipment, dazu bräuchte ich ja noch eine extra Netzwerkfirewall (oder sogar 2). Oder kann man das irgendwie virtuell einrichten? Einen Router mit Deep Packet Inspection Firewall hab ich jetzt auch nicht rumstehen^^ Das würde also einen ziemlichen Mehraufwand bedeuten, auch was die Kosten angeht.

Und das mit Fail2Ban hört sich ja ziemlich gut an, danke für den Tipp!

@snaxilian Ist auch eine gute Idee, davon hab ich auch noch nicht gehört. Sieht auf jeden Fall ganz gut aus, aber hat halt auch wieder den Nachteil mit dem Webserver
 
Firewalls kann man virtualisieren ob das eine gute Idee ist, steht auf einem anderen Blatt. Eine gute Möglichkeit wäre z.B. von PC Engines das APU2C2 oder C4, gibts als Bundle inkl. 16 GB mSATA SSD und Gehäuse für ca 170 €. Da drauf dann z.B. ipcop/ipfire oder pfsense. Weitere Alternative wäre von Ubiquiti der EdgeRouter-X, kostet um die 60 € oder so. Der sollte auch drei NICs besitzen (WAN, LAN, DMZ). Vermutlich nicht nur preislich sondern auch für deine Vorkenntnisse die bessere Wahl.

Bei Deep/Stateful Packet Inspection werden hier leider wieder zwei unabhängige Themen zusammen gewürfelt. Stateful PI beschreibt die Funktionsweise der meisten modernen Firewalls wohingegen bei Deep es weniger um die Packete, deren Quelle und Ziel geht sondern mehr bzw auch um den Inhalt. Auch hier verweise ich mal auf die Wikipedia.
Fail2ban ist btw eine Software unter Linux/Unix, die wirst nicht einfach auf Windows installieren können. Aber die Idee wird schon mal jmd gehabt haben, meine mich zu erinnern, da mal was bei serverfault oder stackoverflow gesehen zu haben wo einer die Eventlogs auf fehlgeschlagene Versuche prüft und bei zu vielen Treffern pro IP diese entsprechend blockt und damit hast dein fail2ban unter Windows...
 
Okay dachte nicht, dass man sowas schon so billig kriegt.
Aber hab mir grad nochmal Gedanken dazu gemacht: Geplant ist ja, dass auch ein Fileserver auf dem Server läuft, mit privaten Daten drauf. Wenn ich den Server jetzt in ne DMZ stelle, bringt mir das doch auch nicht wirklich viel, wenn dann die Daten auch da drin stehen, oder seh ich das falsch? Die Daten werden zwar in einer anderen VM gelagert, aber trotzdem hätte ein Angreifer ja dann Zugang zu diesem internen Netz.
 
Mehr oder weniger. Prinzipiell kann ich als Angreifer, wenn ich einen Fuß in einem Netz habe, mich weiter ausbreiten z.B. durch ARP-Spoofing und MITM oder ich versuche aus der VM auszubrechen.
Daher packt man idR auch jede VM/Dienst/Container/Whatever in ein eigenes Netz, z.B. per VLAN realisierbar. Sofern Hyper-V und die dann von dir genutzte Firewall dies beherrscht kannst auch erstmal ohne VLAN-fähigen Switch arbeiten indem du direkt verbindest.
Ein Großteil der "Lücken" entsteht aber sowieso durch die Admins & Nutzer wie z.B. zu schwache Kennwörter, Mehrfachverwendung von Kennwörtern, Dienste/Programme laufen nicht getrennt unter einem anderen Benutzer, Minimales-Rechte-Prinzip wurde nicht eingehalten usw.

Deshalb wurde dir ja auch geraten nach außen hin am besten nur und ausschließlich ein korrekt konfiguriertes VPN zu nutzen. Jeder (weitere) von außen erreichbare Dienst erhöht die Wahrscheinlichkeit, dass es eine Lücke gibt oder du in sonst irgendeiner Art kompromittiert wirst. Letzten Endes musst du für dich selbst entscheiden wie viel Sicherheit du für Bequemlichkeit bzw Benutzbarkeit opferst.

Zu guter letzt sei gesagt: Mit einmal einrichten ist es leider nicht getan. Kontinuierlich mindestens Updates einspielen, Konfiguration an ggf neue Umstände anpassen, z.B. Deaktivierung von unsicheren/geknackten Cipher-Suiten, etc
 
Okay, danke für die Hilfe, hat mir wirklich weiter geholfen! Werde das mit RemoteDesktop ohne VPN dann wohl doch lieber sein lassen, per Handy und Laptop kann ich so ohnehin leicht darauf zugreifen. Die Sicherheit ist mir da schon wichtiger
 
Habe noch eine abschließende Frage, rein zum RDP Zugriff vom Internet aus.
Orientiert sich an dem Tipp von Nero FX in diesem Beitrag.

Ich habe nun vor, den RDP Port auf einen nicht-standard Port zu ändern, und den Port im Router mit Port-Triggering freizugeben. D.h. der Port wird nur weitergeleitet, wenn vorher eine Anfrage vom Server auf einen bestimmten Aktivierungsport kommt. Dann wäre der Port von außen eigentlich immer geschlossen, ich kann aber, wenn benötigt, mich mit dem Handy per VPN einwählen und den Server dazu veranlassen, ein Paket über den Aktivierungsport zu schicken. Dann gibt der Router automatisch für ein gewisses Zeitfenster (ca. 30min denke ich) den nicht-standard RDP Port frei und ich kann ganz normal darauf zugreifen. Der RDP Service wäre dann im Normalfall nur 30min von außen erreichbar.

Gibt es daran etwas auszusetzen bzw. hab ich was übersehen? Ich denke, das wäre eine doch ziemlich sichere Möglichkeit, und trotzdem kann ich komfortabel darauf Zugreifen.
 
Weil ich dann das Problem habe, dass ich nur darauf zugreifen kann, wenn ich am zugreifenden PC vorher einen VPN Client installiere. Das kann ich aber nicht machen, deswegen brauche ich eine Möglichkeit, möglichst ohne irgendeinen Konfigurationsaufwand von einen fremden PC Zugriff zu haben.
 
@NoConnection: Windows PCs (und vermutlich auch die meisten LinuxPCs) können auch ohne extra installierten Client eine VPN-Verbindung aufbauen. Hängt natürlich etwas davon ab, welches Protokoll genutzt wird.
 
Für jeden Dienst würde ich einen eigenen Benutzer anlegen.
Wird dein Server "übernommen", dann kommt's ja erstmal drauf an mit welchem Benutzer.
Ist es ein Benutzer der keine Adminrechte hat, dann kann ja nicht viel passieren.
Der Benutzer hat ggf. ja nur die Möglichkeit einen Dienst zu beeinflussen.

Für die Absicherung von Remotedesktop:
https://www.itmz.uni-rostock.de/anw...rheit/absicherung-von-remotedesktopzugaengen/
Kommt natürlich immer darauf an wieviel Zeit man investieren möchte bzw. wie wichtig einem das Ganze ist.
 
Oli-nux schrieb:
Kommt natürlich immer darauf an wieviel Zeit man investieren möchte bzw. wie wichtig einem das Ganze ist.
Das ist mMn. einer der wichtigsten Kommentare hier. Es geht ja nicht darum ein Firmennetzwerk abzusichern.

Die Isolation einzelner dienste via VM oder Container mit mehrstufiger Firewall etc. macht das Setup letztendlich deutlich komplizierter und erhöht damit auch die Wahrscheinlichkeit, dass man irgendwo nen Fehler macht. VMs nutze ich zwar gerne, weil es die Administration vereinfacht (zurücksetzen / upgraden / Neu aufsetzen / migrieren geht alles remote und ohne andere Teile zu beeinflussen) aber ich gebe mich keiner Illusion hin, dass meine Konfiguration die Sicherheit erhöht. Dazu fehlt mir einfach das Wissen und die Zeit und ich denke, vielen Hobbyserverbetreibern geht's da ähnlich.

Ich denke die wichtigsten Regeln sind (bin aber wie schon gesagt kein Experte):
- Immer eine Offline Kopie der Daten vorhalten
- Restriktive Firewall Settings
- Software aktuell halten
- Gute Passwörter (lieber weniger, die öfter gewechselt werden als viele verschiedene, die ewig gleich bleiben)

Alles darüber hinaus ist zwar nice to have, aber das Kosten/Nutzenverhältnis in den meisten privaten Nutzungsszenarien verschlechtert sich mMn. rapide.
 
Zuletzt bearbeitet:
Zurück
Oben