Windows Server hardening reduces the attack surface of a VPS before it becomes a production system. The goal is not to apply hundreds of settings blindly. It is to start with high-impact controls, preserve a recovery path, verify each change, and then move toward Microsoft’s supported security baseline for the server version and role you actually run.
For Windows Server 2025, Microsoft now provides a role-aware OSConfig security baseline with more than 300 settings. That baseline covers network exposure, credentials, auditing, Defender, SMB, log retention, and other controls that are broader than this SMB-focused checklist.
In short
Before production, audit administrator access, keep Windows Firewall enabled, reduce RDP exposure, require Network Level Authentication, keep Microsoft Defender active, remove SMBv1, review SMB signing, enable useful security auditing, patch on a controlled schedule, and document every change. On Windows Server 2025, use Microsoft’s official security baseline as the long-term reference instead of treating a manual checklist as a complete compliance standard.
The production hardening checklist starts with risk reduction
| Area | Production check |
|---|---|
| Recovery | Take a current backup or snapshot before high-risk changes |
| Accounts | Review local users and the local Administrators group |
| Authentication | Apply an intentional lockout/password policy and require NLA for RDP |
| RDP | Restrict administrative access to trusted sources where practical |
| Firewall | Keep all Windows Firewall profiles enabled and review inbound allow rules |
| Defender | Confirm real-time, behavior, and script scanning are active |
| SMB | Keep SMBv1 disabled; review SMB signing and guest access |
| Auditing | Record logons, lockouts, account changes, and process creation |
| PowerShell | Enable script block logging where appropriate and protect sensitive logs |
| Updates | Patch on a controlled schedule and prioritize actively exploited issues |
| Services | Remove or disable unnecessary roles and services only after validation |
| Documentation | Record changes, owner, reason, validation, and rollback plan |
Do not apply security changes in bulk to a remote server without a recovery path. Authentication, firewall, RDP, SMB, Defender, and service changes can lock out administrators or break production software.
Microsoft’s Windows Server 2025 baseline is the reference point
Windows Server 2025 has an official Microsoft security baseline delivered through OSConfig. Microsoft describes it as a role-aware baseline with more than 300 settings and recommends testing and customizing the baseline for the server role rather than manually configuring hundreds of controls one by one.
The current baseline includes controls that:
- keep Windows Firewall enabled with a default-deny inbound posture;
- disable SMBv1 and legacy name-resolution protocols such as LLMNR;
- strengthen SMB signing and authentication behavior;
- reduce anonymous and guest access;
- strengthen credential protections;
- enable broad advanced auditing;
- capture process creation with command-line data;
- increase Security log capacity;
- harden Defender and exploit protections.
For Windows Server 2022 and older supported releases, Microsoft’s Security Compliance Toolkit remains the practical source for Microsoft-recommended Group Policy baselines.
This Raff checklist focuses on the controls that are easiest to understand and validate on a standalone or small-business VPS. It is not a replacement for Microsoft’s complete baseline, CIS Benchmarks, DISA STIGs, or a formal security program.
The original Raff lab evidence remains useful
The existing screenshots in this article were captured during a Raff Windows Server 2025 Datacenter Evaluation lab on May 24, 2026.

| Item | Value |
|---|---|
| OS | Windows Server 2025 Datacenter Evaluation |
| Build | 26100 |
| CPU | 4 vCPU |
| RAM | Approximately 8 GB |
| Test date | 2026-05-24 |
| Engineer | Serdar Tekin |
That lab verified the inspection commands for local users, administrators, account policy, Windows Firewall, RDP rules, Microsoft Defender preferences, and audit policy. It did not apply every hardening control in this article, and this August update does not claim a fresh end-to-end hardening test.
Administrator access should be reviewed before anything else
Run PowerShell as Administrator and inventory local users:
Get-LocalUser | Select-Object Name, Enabled, LastLogon
Then inspect the local Administrators group:
Get-LocalGroupMember -Group "Administrators" | Select-Object Name, ObjectClass

Investigate unknown accounts before removing them. Disable obsolete test users, keep the Guest account disabled, and avoid shared administrator credentials.
Check the Guest account:
Get-LocalUser Guest | Select-Object Name, Enabled
If it is enabled and no legacy application explicitly requires it:
Disable-LocalUser -Name "Guest"
For routine work inside the server, use a non-administrator account and elevate only when administrative rights are required.
Renaming the built-in Administrator account can be part of a managed security baseline, but it is not a substitute for strong credentials, restricted RDP exposure, monitoring, and least privilege. If you rename it, document the new identity and recovery process first.
Account lockout should follow a deliberate baseline
Check the current local account policy:
net accounts

Do not treat one lockout threshold as universally correct. Microsoft’s current Windows Server 2025 OSConfig baseline uses a three-attempt threshold with a 15-minute duration and reset window, while other Microsoft baseline guidance can use different values depending on the product and management model.
A stricter threshold slows password guessing but also increases the risk of denial-of-service through deliberate lockouts. For domain environments, configure the policy centrally. For standalone VPS deployments, document the chosen threshold and test administrative recovery before enforcing it.
The important production checks are:
- lockout is intentionally configured rather than left to chance;
- recovery access exists if the primary admin is locked out;
- failed logons are monitored;
- local administrator passwords are unique;
- shared admin accounts are avoided.
Windows Firewall and RDP should reduce public exposure
Keep Windows Firewall enabled on all profiles:
Get-NetFirewallProfile | Select-Object Name, Enabled, DefaultInboundAction, DefaultOutboundAction
Inspect the current Remote Desktop rule group:
Get-NetFirewallRule -DisplayGroup "Remote Desktop" | Select-Object DisplayName, Enabled, Direction, Action, Profile | Format-Table -AutoSize

Microsoft recommends keeping Windows Firewall enabled and using explicit allow rules for required traffic. For a VPS, start from the rule that inbound access should exist only when the workload needs it.
For RDP administration:
- restrict source IPs where operationally possible;
- prefer a VPN or private administrative path when available;
- keep RDP limited to named administrators or intended RDS users;
- do not expose SMB, SQL Server, WinRM, or management ports broadly to the internet;
- keep a recovery path available before changing remote-access rules.
For the detailed firewall workflow, see Configure Windows Firewall on a Windows VPS.
Network Level Authentication should remain enabled for RDP
Network Level Authentication requires the user to authenticate before Windows creates a full remote desktop session. Microsoft recommends NLA for most environments because it reduces the resources exposed to unauthenticated connections.
Check the RDP NLA policy value:
Get-ItemProperty ` 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' ` -Name UserAuthentication
A UserAuthentication value of 1 means NLA is required.
Do not disable NLA simply to make an old RDP client connect. Upgrade the client or document the compatibility exception and its risk.
SMBv1 should stay removed and SMB signing should be reviewed
SMBv1 has significant security weaknesses and is not installed by default on Windows Server 2019 and later. Verify that the server is not relying on it:
Get-SmbServerConfiguration | Select-Object EnableSMB1Protocol
If an old application requires SMBv1, upgrading or replacing that dependency is safer than re-enabling the protocol.
Windows Server 2025 also strengthens SMB signing defaults, and Microsoft’s Server 2025 security baseline requires signing on the client and server sides. Review the effective settings:
Get-SmbClientConfiguration | Select-Object RequireSecuritySignature Get-SmbServerConfiguration | Select-Object RequireSecuritySignature
If you enforce SMB signing on an environment that uses old NAS devices or third-party SMB servers, test compatibility first. Do not disable signing merely to make unauthenticated guest access work.
Keep TCP 445 off the public internet. If users need file access across locations, use a private network, VPN, or another controlled access design.
Microsoft Defender should remain an active security layer
Verify Defender’s main protection settings:
Get-MpPreference | Select-Object DisableRealtimeMonitoring, DisableBehaviorMonitoring, DisableScriptScanning

For a normal protected baseline, these values should not show Defender’s real-time, behavior, or script scanning as disabled.
Update signatures with:
Update-MpSignature -Verbose
Attack Surface Reduction rules and Controlled Folder Access can add meaningful protection, but they can also interfere with ERP clients, Office automation, scripts, installers, and legacy applications. Test them in audit or controlled rollout modes before enforcing them on a production workload.
Do not disable antivirus globally to solve an application problem. Use vendor-documented exclusions only when they are necessary and narrowly scoped.

