Report this

What is the reason for this report?

What’s the best way to secure a DigitalOcean Droplet running WordPress against brute-force attacks?

Posted on August 29, 2025
Ayan Ali

By Ayan Ali

Content Writer at 247FresherzJobz

I have a WordPress site hosted on a DigitalOcean Droplet (Ubuntu 22.04, Nginx, PHP 8.2, MySQL). Lately I’ve been noticing a lot of failed login attempts in the logs, which look like brute-force attacks on wp-login.php.

So far, I’ve:

  • Enabled fail2ban

  • Installed a basic security plugin on WordPress

  • Changed the default admin username

But the attempts keep coming.

My questions:

  • Are there additional steps I should take on the server level (firewall rules, SSH configs, rate limiting)?

  • Is it better to block these at Nginx/iptables level or just rely on plugins?

  • Any recommended best practices specific to WordPress on DigitalOcean?



This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

Heya, @ayanaliwhale

What you’ve done already (fail2ban, security plugin, non-default admin) is a good start, but you can harden the droplet further so those bots don’t even reach PHP.

You can also do the following:

  • Consider restricting wp-login.php by IP or location.
  • Add two-factor authentication in WordPress
  • Change the default wp-login page, plugins like WPS Hide Login let you change the login path, which removes a lot of bot traffic. Still, don’t rely on obscurity alone.

Hope that this helps!

Hey Ayan,

On the server level you can use UFW or DigitalOcean Cloud Firewalls to only allow the ports you actually need, like 80 and 443 for web and 22 for SSH. At the Nginx layer you can add simple rate limiting to wp-login.php so that repeated requests from the same IP get blocked or slowed down. That way bots don’t get unlimited attempts.

Another useful step is to hide the default login page with a plugin like WPS Hide Login, since most automated attacks only try the standard wp-login.php path. Adding two-factor authentication for your admin account gives you a strong last line of defense if someone does manage to guess a password.

If you want to go further, putting your site behind Cloudflare or another CDN can help filter bots before they even hit your Droplet. Between firewall rules, rate limiting, and Cloudflare, most of the noise will be blocked at a low level, and then the plugin and 2FA cover the application side.

The developer cloud

Scale up as you grow — whether you're running one virtual machine or ten thousand.

Get started for free

Sign up and get $200 in credit for your first 60 days with DigitalOcean.*

*This promotional offer applies to new accounts only.