Standalone Server absichern
Gestern Abend habe ich mein LABOR neu installiert und dann war sie wieder die Frage: „Uff, was/wo muss ich jetzt überall konfigurieren, um den Server bestmöglich abzusichern?!“
Hier will ich einen kleinen Überblick geben, was ich in meinem Umfeld hier als sinnvoll & ausreichend erachte.
- Hostbased-Firewall
- Allgemein
- Inbound (eingehend)
- Outbound (ausgehend)
- Lokale Accounts
- Windows Security Center
- Per GPO Privilegien einschränken
- Windows Updates
1. Hostbased-Firewall
Allgemein
Noch bevor der Server ans Netzwerk geht, habe ich die Firewall eingestellt. Standardmäßig werden Inbound-Verbindungen großteils geblockt und Outbound-Verbindungen alle zugelassen. Hier habe ich das so eingestellt, dass auch Outbound-Verbindungen geblockt werden. Das kann man ganz einfach in der Übersicht machen, indem man auf „Windows Defender Firewall Properties“ klickt und dann für jedes Profil bei „Outbound connections“ auf „Block“ stellt.
Optional kann man noch im Bereich „Settings“ auf „Customize“ klicken und die Benachrichtigung aktivieren. Zudem kann man im Bereich „Logging“ noch für jedes Profil eine eigene Log-Datei einstellen, sowie deren maximale Größe (und damit Historisierung) festlegen, sowie dass abgewiesene Verbindungen ebenfalls protokolliert werden sollen.
Als nächstes folgen die einzelnen Firewall-Richtungen. Hier habe ich erstmal grob eingeschränkt, man kann das Ganze natürlich noch viel genauer einstellen.
Inbound (eingehend)
Die Inbound-Regeln habe ich auf die notwendigsten beschränkt:
Die unterste (blau markierte) Regel habe ich manuell angelegt; sie dient dazu, dass ich aus meinem lokalen Netzwerk per RDP auf dem Server anmelden kann. Das kann man natürlich bei Bedarf weiter einschränken (bspw. von welchem meiner Clients das gehen soll oder zu welcher IP-Adresse / Netzwerkadapter auf dem Server das gehen soll).
Optional kann man die „mDNS“-Regeln auch aktivieren. In meinem Netzwerk benötige ich sie erstmal nicht. Was mDNS ist, wird hier gut erklärt: mDNS – Wie funktioniert Multicast DNS? – IONOS
Outbound (ausgehend)
Die Outbound-Regeln habe ich auf die notwendigsten beschränkt:
Die unterste (blau markierte) Regel habe ich manuell angelegt; sie dient dazu, dass man auf Webseiten (Port 80 & 443) kommt. Das ist u.a. notwendig für Windows Update Service.
2. Lokale Accounts
Per Default sind die Accounts „Administrator“, „Guest“ (Deaktiviert), „DefaultAccount“ (Deaktiviert) und „WDAGUtilityAccount“ (Deaktiviert) vorhanden.
Im ersten Schritt habe ich mir drei separate Accounts angelegt:
Account | Verwendungszweck | Lokale Gruppe | Anmeldung |
---|---|---|---|
Voller Admin | Ersetzt den Standard-Administrator, dieser wird deaktiviert und & umbenannt | Administrators | Nur Lokal |
HyperV Admin | Dieser Account darf alle Tätigkeiten des HyperV-Dienstes steuern (VMs anlegen usw.) | Hyper-V Administrators | Nur Lokal |
RDP User | Mit diesem Account kann man sich nur per RDP auf den Server verbinden, Programme starten aber nichts ändern/installieren | Remote Desktop Users | Nur RDP |
3. Einstellungen im Windows Security Center
Hier gibt es ein paar Dinge, die standardmäßig deaktiviert sind, die man aber ggfs. aktivieren sollte:
- Im „Virus & thread protection“-Bereich auf „Manage Controlled folder access“ klicken und den Schalt auf „On“ stellen.
- Im „App & browser control“-Bereich von „Warn“ auf „Block“ stellen. Das ist ein Server, hier wollen wir eigentlich gar nicht rumsurfen und Dinge downloaden 😉
- Im „Device security“-Bereich bei der „Core isolation“ auf den blauen „… details“-Text klicken und dort dann den Schalter auf „On“ stellen. ⚠ Anschließend ist ein Neustart notwendig.
4. Per lokaler GPO Privilegien einschränken
Da es sich um einen Standalone-Server handelt, der nicht Mitglied in einer Domäne ist, müssen wir hier lokale Gruppenrichtlinien einstellen.
- In „Computer Configuration > Windows Settings > Security Settings > Account Policies > Password Policy“ die Passwortrichtlinien anpassen
- In „Computer Configuration > Windows Settings > Security Settings > Account Policies > Account Lockout Policy“ die Aussperrzeit bei X fehlerhaften Logins anpassen
- In „Computer Configuration > Windows Settings > Security Settings > Local Policies > Audit Policy“ die gewünschten Audit-Möglichkeiten aktivieren („Success“ & „Failure“). Ich habe bei mir alle aktiviert.
- In „Computer Configuration > Windows Settings > Security Settings > Local Policies > User Rights Assignment“ sehe ich folgende vier als notwendig an (rot = rausgenommen // grün = eingetragen):
- Allow logon locally: Administrators, Users, Backup Operators
- Allow logon through RDS: Administrators, Remote Desktop Users
- Deny logon locally: Remote Desktop Users
- Deny logon through RDS: Administrators, Hyper-V Administrators
- Force shutdown from a remote system: Administrators, Voller Admin
- Shutdown the system: Administrators, Backup Operators, Voller Admin
- In „Computer Configuration > Windows Settings > Security Settings > Local Policies > Security Options“ sehe ich folgende Optionen als wichtig an:
Policy | Standard-Wert | Neuer Wert |
---|---|---|
Accounts: Administrator account status | Enabled | Disabled |
Accounts: Block Microsoft accounts | Not defined | Users can’t add or log on with Microsoft accounts |
Accounts: Guest account status | Disabled | Disabled |
Accounts: Rename administrator account | „Administrator“ | „local.admin.block“ |
Accounts: Rename guest account | „Guest“ | „local.guest.block“ |
Interactive logon: Display user information when the session is locked | Not defined | „User display name, domain and user names“ oder „Do not display user information“ |
Interactive logon: Don’t display last signed-in | Disabled | Enabled |
Interactive logon: Don’t display username at sign-in | Not defined | Enabled |
Interactive logon: Machine inactivity limit. | Not defined | Enabled; 1800 Sekunden = 30 Minuten |
Interactive logon: Prompt user to change password before expiration | „5 days“ | „30 days“ |
User Account Control: Use Admin Approval Mode for the built-in Administrator account | Not defined | Enabled |
Optional: | ||
Interactive logon: Message title for users attempting to log on | „leer“ | „Titel deiner Wahl“ |
Interactive logon: Message text for users attempting to log on | „leer“ | „Text deiner Wahl“ |
5. Windows Updates
Auch LABOR-Systeme sollte man möglichst aktuell halten. Da ich hier keinen manuellen Aufwand haben möchte, stelle ich das so ein, dass die Updates recht häufig automatisch gesucht & installiert werden. Bei Bedarf dann eben auch inkl. des Neustarts.
In „Computer Configuration > Administrative Templates > Windows Components > Windows Updates“ sehe ich folgende Optionen als gut an:
Policy | Einstellung |
---|---|
Automatic Updates detection frequency | 2 Stunden |
Configure Automatic Updates | 4 – Auto download and schedule the install 0 – Every day 10:00 ✔ Every Week ✔ Install updates for other Microsoft products |
Display options for update notifications | Enabled 1 – Disable all notifications, excluding for restart warnings |
Remove access to „Pause updates“ feature | Enabled |
Reschedule Automatic Updates scheduled installations | Enabled; 15 Minuten |
Specifiy deadline before auto-restart for update-installation | Enabled Quality updates: 2 days Feature updates: 2 days |
Specify deadlines before automatic updates and restarts | Enabled Quality updates: 2 days Feature updates: 7 days (default) |
Hier die „Enabled“-Policies als Screenshot: