
Remote Desktop Protocol is also one of the most attacked services on the internet. CISA has flagged it as “one of the most common infection vectors for ransomware” [1], and an internet-facing RDP port gets found by scanning bots within hours of going live, not weeks. None of that means RDP is unsafe to run — it means it’s unsafe to run unconfigured. This guide covers the controls that actually matter, what current NIST guidance really says about password rotation (most checklists still get this wrong), and a section specifically for automation and botting workloads, since that’s a large share of what gets run on RDP servers day to day.
RDP Is a Target by Default
Port 3389 doesn’t need to be attacked on purpose to get hit — mass internet scanners find every open instance of it automatically and queue it for credential-stuffing and brute-force attempts. CISA’s advisory on routinely exploited weak security controls lists RDP among the services attackers scan for first, noting that “cyber actors use scanning tools to detect open ports and often use them as an initial attack vector” [1]. The fix isn’t to avoid RDP — it’s to stop treating an open port 3389 as an acceptable default.
Enable Network Level Authentication (NLA)
Network Level Authentication forces a user to authenticate before a full remote desktop session is established, rather than after. Microsoft’s own guidance is direct about why this matters: “With NLA enabled, users must authenticate themselves before a remote session is established, reducing the risk of unauthorized access and helping to protect your PC from malicious users and software” [2]. NLA is on by default on modern Windows, and the only reason to turn it off is to support a legacy RDP client that doesn’t speak the newer authentication handshake — a trade you should make rarely, and reverse as soon as that client is gone.
Put RDP Behind a Gateway or VPN, Not the Open Internet
CISA’s guidance on internet-exposed management interfaces is blunt: if RDP can’t be disabled outright, it should be “accessible to users via a secure virtual private network (VPN) connection after authenticating via multi-factor authentication (MFA), or through a zero-trust remote access gateway” [3]. Two practical ways to do that:
- Remote Desktop Gateway (RD Gateway): tunnels the connection over TLS on port 443 instead of exposing 3389 directly — the client connects to the gateway over an encrypted channel, and the gateway relays the session internally, applying its own authorization policy on who’s allowed through [4].
- VPN or IP allowlisting: the simpler option for a single server — restrict inbound 3389 to a VPN’s internal address range or a short list of known-good source IPs at the firewall, so the port is invisible to anyone scanning the open internet.
Either approach solves the same problem: a scanning bot that can’t reach port 3389 at all can’t brute-force it, no matter how strong the password behind it is.
Multi-Factor Authentication Is Not Optional
CISA’s advisory on routinely exploited controls states that MFA should be enforced for remote desktop access “with no exclusions for administrators” [1] — the accounts most worth protecting are exactly the ones most often left exempt for convenience. If your RDP setup supports it, require MFA at the gateway or VPN layer, not just at the Windows login prompt, so a stolen password alone still isn’t enough to get a session established.
What NIST Actually Says About Password Rotation Now
A lot of RDP security checklists still tell you to rotate passwords every 30 or 90 days. Current NIST guidance (SP 800-63B) says the opposite: verifiers “SHALL NOT require subscribers to change passwords periodically,” and should only force a reset when there’s actual evidence the credential has been compromised [5]. Forced periodic rotation mostly trains people to pick weaker, more predictable passwords (incrementing a digit, cycling between two favorites) — NIST’s newer position trades that for length and a blocklist instead:
- Minimum 15 characters for single-factor authentication (8 characters if it’s genuinely paired with a second factor) [5].
- No mandatory character-mixing rules — NIST explicitly says verifiers “SHALL NOT impose other composition rules (e.g., requiring mixtures of different character types)” [5].
- Check against a breach/common-password blocklist instead of relying on composition rules to produce a “strong-looking” password that’s actually predictable.
For an RDP server specifically, this means: a long, unique, randomly generated password beats a short one you’re forced to change every month — and if you’re not using MFA yet, length is doing all the work, so don’t shortcut it.
Patch, or It’s BlueKeep Again
CVE-2019-0708 (“BlueKeep”) is the reason “patch RDP promptly” belongs on every list like this one. It was a pre-authentication, wormable remote-code-execution flaw in Remote Desktop Services — no user interaction required — serious enough that Microsoft broke its own policy and shipped a fix for out-of-support Windows XP and Server 2003 to contain it [6]. Wormable means a single unpatched, internet-facing RDP host can get compromised and start spreading the exploit on its own, the same propagation pattern WannaCry used in 2017. Every RDP-specific CVE since has followed the same shape: the fix exists, and the only remaining question is how long an unpatched box stays exposed.
Securing RDP for Automation and Botting Workloads
A lot of what runs on a rented RDP server isn’t a person clicking around — it’s a bot, a scraper, an SEO tool, or a trading algorithm running unattended for days at a time. That changes the security picture in a few specific ways the general checklist above doesn’t cover:
- Don’t run the bot under the admin account. Create a dedicated, lower-privilege Windows account for the automation process itself, separate from the account you use to manage the server. If the bot process or a browser automation tool gets compromised, it shouldn’t hand over full admin rights automatically.
- One credential set per workload, not one shared login. If you’re running several bot instances or client accounts from the same provider, give each its own RDP login rather than reusing one admin password everywhere — a single leaked credential then only exposes one workload, not all of them.
- Keep an audit trail separate from your own sessions. Unattended processes should log their own activity distinctly from interactive admin logins, so if something behaves unexpectedly at 3 a.m., you can tell from the logs whether it was the bot or a session that shouldn’t have been there.
- Rotate credentials on a schedule tied to the campaign, not the calendar. NIST’s no-forced-rotation guidance above is about human-memorized passwords resisting predictable patterns — it doesn’t mean “never rotate.” For a generated credential tied to a specific bot deployment, rotating it when the deployment ends or changes hands is still good practice.
RDP Security Checklist
| Control | What it protects against | Effort to set up |
|---|---|---|
| Network Level Authentication | Unauthenticated session establishment | Toggle — on by default on modern Windows |
| RD Gateway or VPN in front of 3389 | Mass scanning and brute-force attempts | Moderate — one-time firewall/gateway setup |
| Multi-factor authentication | Stolen or guessed passwords | Moderate — depends on gateway/VPN support |
| 15+ character unique password, no forced rotation | Predictable, weak passwords | Low — generate once, store in a password manager |
| Prompt OS and RDP patching | Known, unpatched vulnerabilities (e.g. BlueKeep) | Low — enable automatic updates |
| Separate low-privilege account per automation workload | Lateral compromise from one bot to the whole server | Low — a few minutes per workload |
Where a Managed RDP Server Already Handles This
Some of this checklist is on you regardless of who hosts the server — your password hygiene and per-workload account separation don’t come from the hosting provider. But the infrastructure-level pieces (patch cadence on the base image, DDoS-resistant network placement, firewall access to the management port) are exactly what a managed provider should be handling before you ever log in. That’s the baseline on RDPExtra’s Admin RDP and USA RDP plans — full admin control on your end, without inheriting someone else’s unpatched image. If you’re specifically running automation, trading, or SEO tooling, see our dedicated SEO RDP and Forex RDP guides for workload-specific setup notes.
Frequently Asked Questions
Is RDP safe to use in 2026?
Yes, when it’s configured correctly — NLA on, MFA enabled, the port not directly exposed to the open internet, and patches applied promptly. Most RDP compromises trace back to one of those controls being skipped, not to a flaw in the protocol itself.
Should I change my RDP password every 30 days?
No — current NIST guidance explicitly recommends against forced periodic rotation. Use a long, unique, randomly generated password (15+ characters) and only rotate it if you have specific reason to believe it’s been exposed.
Is it safe to run automation or bots over RDP?
Yes, with the same baseline controls as any RDP session, plus one addition: run the automation under its own lower-privilege account rather than the admin login, so a compromised bot process doesn’t hand over full server control.
What’s the single highest-impact fix if I can only do one thing?
Get RDP off the open internet — behind a VPN, RD Gateway, or firewall IP allowlist. A strong password on a port every scanner on the internet can reach is still one credential leak away from a breach; a port nothing can reach doesn’t get brute-forced in the first place.
References
- CISA — “Weak Security Controls and Practices Routinely Exploited for Initial Access” (AA22-137A) — cisa.gov
- Microsoft Learn — “Enable Remote Desktop on your PC” — learn.microsoft.com
- CISA — “Disable Remote Desktop Protocol (RDP)” (CM0025) — cisa.gov
- Microsoft Learn — “Remote Desktop Services roles” — learn.microsoft.com
- NIST — “SP 800-63B: Authentication and Authenticator Management” — pages.nist.gov
- CISA — “Microsoft Operating Systems BlueKeep Vulnerability” (AA19-168A) — cisa.gov
