What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

Use WP fail2ban’s wordpress-hard and wordpress-soft filters in a local Fail2ban jail, point each jail at the log source your server actually uses, then verify matches with fail2ban-regex before relying on bans. The hard filter is designed for events that are almost certainly hostile, including XML-RPC authentication and system.multicall failures. The soft filter allows more retries for events that could be legitimate. If no integration needs XML-RPC, disabling or restricting xmlrpc.php removes the endpoint instead of merely reacting to attacks.

What this jail protects

WordPress exposes XML-RPC through /xmlrpc.php. The endpoint supports remote publishing and other integrations, but it is also a common brute-force target. The system.multicall method can bundle many authentication attempts into one request, making an unprotected endpoint attractive to attackers. A Fail2ban jail watches authentication failures recorded by WordPress, identifies the source address with a filter, and adds a temporary firewall block when that address exceeds your threshold.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Fail2ban is a response layer, not a replacement for WordPress updates, strong passwords, multifactor authentication, server patching, or web-server controls. It also does not stop the first requests that reach PHP. If an integration does not require XML-RPC, disabling or restricting the endpoint is a stronger reduction in exposure. If an integration does require it, logging plus Fail2ban and web-server or edge throttling can limit repeated abuse.

Requirements and decisions before editing Fail2ban

  • A supported Fail2ban package installed from your operating system’s package source.
  • Administrative shell access with permission to write under /etc/fail2ban and restart the service.
  • The WP fail2ban WordPress plugin installed and active when you intend to use its wordpress-hard or wordpress-soft filters.
  • A confirmed log source that contains WordPress failures and the original client IP address.
  • A decision about whether XML-RPC must remain available to Jetpack, mobile clients, remote publishing, or another integration.

Do not edit the packaged /etc/fail2ban/jail.conf. Distribution updates can overwrite it. Put local changes in /etc/fail2ban/jail.local or, preferably for a dedicated setup, a file such as /etc/fail2ban/jail.d/wordpress.conf.

#1 Best Overall
Sale
Compressed Air Duster,130000RPM Super Power Cordless Air Duster,Rechargeable Brushless Blower,3 Gear Adjustable Blower with LED Light,Dust Remover for Computer/House/Outdoor/Car
  • Powerful Turbo Fan:CAGIWIRU Electric Air Duster have reached speed up to 130000RPM,Can efficient remove dust and debris.With LED light and Three Adjustable Speed to meet with different cleaning tasks.
  • With Attached USB C Fasting Charging cable.Charing 3 hours,Enjoy up to 240 minutes of use on the lowest setting, For third speed can use for 25mins.with four charging options to meet with your needs.
  • Wide Application:Upgraded attached 5 different nozzles,making it suitable for a variety of scenes, such as car,pet, pc, keyboards, and other electronic devices. It also serves for office and home clean duster.
  • Handy Design & Portable:Cordless air duster electric nozzle is Light weight and small size, design and comfortable to hold and space saving, convenient to carry around. You can put it in your room or inside the car without taking up space.
  • Warranty & Support: Our Electric air duster comes with 5 years warranty and 24/7 customer service. During this period, if you have any questions,pls kindly feel free to contact us.

Choose the right XML-RPC protection

Approach What it does When it fits Main trade-off
Disable or restrict XML-RPC Removes the endpoint or limits access before WordPress handles it. No required integration uses XML-RPC, or access can be limited to known networks. Remote publishing and clients that depend on XML-RPC stop working.
wordpress-hard Matches events that are considered clearly malicious, including XML-RPC authentication and multicall failures. You have reliable WordPress logging and want rapid blocking. An aggressive threshold can catch a shared or legitimate address if logging or identity handling is wrong.
wordpress-soft Matches events where several retries may be legitimate, allowing more failures before a ban. Sites with administrators, mobile users, or integrations that can occasionally authenticate unsuccessfully. Attackers receive more attempts before the address is blocked.
Web-server or edge throttling Limits request rate before PHP and can reduce application workload. High request volume or a reverse proxy where early filtering is available. Directives depend on Apache, Nginx, the proxy, and correct real-IP configuration.

Using both WP fail2ban jails is the documented starting pattern: the hard jail handles events that should almost never be generated by a legitimate user, while the soft jail covers failed-login behavior that deserves a few chances.

Confirm where WordPress writes failures

The jail must read the same source in which your WordPress integration records failures. A correct filter pointed at the wrong source produces zero bans, while a correct filter reading proxy or web-server addresses can ban the wrong machine.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Systemd journal logging

The WP fail2ban example uses the systemd backend and this journal selector:

backend = systemd
journalmatch = SYSLOG_IDENTIFIER=wordpress

Those settings are valid only if your deployment emits WordPress records with SYSLOG_IDENTIFIER=wordpress. Before enabling the jail, inspect the journal on the server and confirm that identifier and representative failed XML-RPC events are present. If the identifier differs, use the identifier your logging integration actually writes; do not copy the example unchanged.

Apache, Nginx, or PHP log files

Some installations send relevant entries to an Apache, Nginx, or PHP log file rather than the journal. In that case, use the real absolute path in logpath and a backend compatible with file monitoring. The systemd backend does not use logpath in the same way as file backends, so do not combine journal settings and a guessed file path. Check rotation, permissions, and whether the file contains WordPress authentication failures rather than only generic HTTP status codes.

Rank #2
EVEO® Screen Cleaner Spray Kit (Streak-Free) TV Screen Cleaner for Smart TV, Lcd, LEd, Oled | Computer Screen Cleaner Spray and Wipe Microfiber Cloth - TV, Monitor, Laptop, iPad, Car - 6.7oz 1 Pack
  • Screen Cleaner is Your Screen’s New Bestfriend! - EVEO is proud to present a screen cleaner that’s perfectly suited for your TV. Meet your new screen cleaner, computer screen cleaner, laptop cleaner, iPad cleaner, Macbook,tv cleaner or any other electronic device. Our screen cleaner spray and wipe along with the included plush microfiber cloth, easily removes dust, fingerprints & other smudges on the screen’s surface. Clean effectively for a streak-free screen
  • Gentle on your Screens - Our screen cleaner spray and wipes is compatible to be used even for the most sensitive LCD, LED, CRT, and OLED screens in proper use. Be at ease knowing that this product is compatible with all the major brands: LG, SONY, Samsung, Sharp, iPad, iPhone, Android screens, Kindle, PC monitors - we’ve got you covered! Can be used as LCD screen cleaner, tv cleaner, smart tv screen cleaner, and more
  • Premium Super Soft Plush Microfiber Cloth - Included in this efficient screen cleaning kit. This screen cleaner spray and wipe has our signature plush microfiber cloth specially designed to comply with screens and monitors and leave them streak-free. Has been shown to effectively absorbs stubborn stains, zero streaks, and no fiber shedding. Always use this together with our screen cleaner for the best results
  • Easy-to-Use Screen Cleaner Kit + microfiber cleaning cloth - The EVEO Screen Cleaning Kit will easily be your new favorite tool when it comes to taking care of the things you love most, quick and easy solution for a streak-free screen. Simply screw on the sprayer gun on the screen cleaner bottle. Spray the cleaning liquid onto the microfiber cloth, then wipe the screen until desired cleanliness & shine is achieved.
  • Quality Screen Care Kit Worth Purchasing - Enjoy a convenient Screen Cleaner anytime, anywhere you need it. Your satisfaction is our top priority. We stand behind the quality of our products and that’s why, you shouldn’t be worrying at all. We manufacture the Best Screen Cleaner. and can be used for laptop cleaning kit, laptop screen cleaner, tv screen cleaner for smart tv. MacBook screen cleaner, monitor cleaner or screen cleaner spray for electronic devices with microfiber cleaning cloth

Check the client address

With a reverse proxy, load balancer, CDN, or another intermediary, the web server may log the intermediary’s address. Configure trusted real-IP handling first, then confirm a log line contains the original client address. Otherwise Fail2ban can ban the proxy itself, affecting every visitor, or repeatedly ban one shared intermediary instead of the attacker. Treat a ban as an IP-reputation decision: shared NAT, VPNs, and automation can create false positives.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Create a journal-based WordPress jail

Create the local file:

sudo install -m 0644 /dev/null /etc/fail2ban/jail.d/wordpress.conf
sudo editor /etc/fail2ban/jail.d/wordpress.conf

Enter this starting configuration when your WordPress records use the stated journal identifier:

[wordpress-hard]
enabled = true
filter = wordpress-hard
backend = systemd
journalmatch = SYSLOG_IDENTIFIER=wordpress
maxretry = 1
port = http,https

[wordpress-soft]
enabled = true
filter = wordpress-soft
backend = systemd
journalmatch = SYSLOG_IDENTIFIER=wordpress
maxretry = 3
port = http,https

filter selects the WP fail2ban filter definition. backend = systemd tells Fail2ban to read the journal, and journalmatch narrows records to the WordPress identifier. The port value makes the firewall action cover HTTP and HTTPS. The hard jail bans after one matching event; the soft jail allows three. Those values are a starting point, not a universal policy.

Adapt the jail for file-based logs

If your records are in a web-server or PHP file, keep the appropriate WP fail2ban filter but replace the journal settings with the actual path and a file-compatible backend. A generic shape is:

[wordpress-hard]
enabled = true
filter = wordpress-hard
backend = auto
logpath = /absolute/path/to/the/wordpress-log
maxretry = 1
port = http,https

[wordpress-soft]
enabled = true
filter = wordpress-soft
backend = auto
logpath = /absolute/path/to/the/wordpress-log
maxretry = 3
port = http,https

Replace the example path; it is not a literal location. If your distribution or deployment requires a different backend, use that backend. Verify that the account running Fail2ban can read the file and that log rotation does not leave the jail watching an obsolete inode. Never add a guessed path simply to make the service start: an active jail with no matching input offers no protection.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #3
BladeHawks RGB Gaming Mouse Pad Extra Large Extended 31.5x12 Inch-Black
  • 【Large size】:Measuring 800 x 300 mm/ 31. 5×12 inches, which is wider and taller than others. Large mouse pad can perfectly fit your keyboard and mouse of any size, and there is also ample space for peripherals such as phones, tablets, etc.
  • 【LED backlight mouse pad】:Blade Hawks RGB mouse pad provides 7 static modes and 7 dynamic modes will give you the options you are looking for. Power-off memory function remembers the last lighting mode you selected. The super glow fiber Chroma will give you a colorful gaming setup that you want.
  • 【Anti-slip rubber base】:Made from Natural rubber, this gaming mousepad will firmly grip your desktop, allowing you to enjoy the ultimate precision in the games you are most passionate about. It also comes with a texture that enhances this ability even further.
  • 【Smooth and waterproof surface】: Micro-textured cloth surface, for extremely precise mouse control and a smooth movement. When liquid splashes on the gaming mouse pad, it forms water droplets and slides down. Will not delay your work or gameplay.
  • 【Plug and play】: This mouse and keyboard pad is powered by USB, plug and play, no driver required. One button control light modes. Press one time to change the lighting mode, press twice to change the brightness, press and hold about 3 seconds turn ON/OFF.

Understand and tune the thresholds

Three settings control the counting window:

Setting Meaning Stock Fail2ban default
bantime How long an address remains banned after the jail triggers. 10m
findtime How far back Fail2ban looks when counting matching failures. 10m
maxretry How many matching failures within findtime trigger the ban. 5

The values in the table are package defaults, not a recommendation for every WordPress site. The sample hard and soft jails override only maxretry; they inherit the other defaults unless you set them locally.

A cautious tuning method

  1. Start with a short bantime and a narrow findtime while you observe the site’s normal clients.
  2. Confirm that administrative logins, mobile clients, and any XML-RPC-dependent integration are not being matched unexpectedly.
  3. Increase bantime only after the filter and source have been validated and false positives are understood.
  4. Set a longer findtime or lower maxretry only when the resulting behavior matches the site’s traffic and risk tolerance.

Use ignoreip sparingly for known administrative or monitoring addresses. An address should be listed only when you can identify it reliably. DNS-based identity is risky because reverse and forward DNS can disagree; prefer the real IP addresses visible in application logs.

Reload Fail2ban and inspect the jails

After saving the file, reload the service and check for configuration errors:

sudo systemctl reload fail2ban
sudo fail2ban-client status
sudo fail2ban-client status wordpress-hard
sudo fail2ban-client status wordpress-soft

If reload fails, inspect the service journal for the exact section, option, filter, or permission error. A jail listed in the overall status but showing no monitored files or journal events usually indicates a source mismatch rather than a regex problem.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The jail status should show the filter name, currently failed count, total failures, and currently banned addresses. An empty banned list immediately after startup is normal. Do not generate attack traffic against a production site just to force a ban; use representative log fixtures for regex testing and controlled administrative checks for the service state.

Rank #4
Sale
Vaydeer Wrist Rest for Keyboard and Mouse, Computer Ergonomic Wrist Support Pad, Soft Memory Foam Arm Cushion for Desk, Palm Hand Office Laptop Typing
  • 【Softer and More Comfortable】Vaydeer wrist rest has unique diamond pattern, which is the combination of softness and aesthetics. The materials of wrist rest are improved into higher quality memory foam and covered with silky smooth lycra. The computer wrist rest makes you as comfortable and cushiony as like rest your wrists on clouds.
  • 【Ergonomic Wrist Saver】The wrist rests for keyboard and mouse comes with a 17.32×3.15×0.83 inch keyboard wrist pad and a 5.94×3.15×0.83 inch mouse wrist support. Based on ergonomic design, the unique concave shape is the perfect fit for your wrist joints. The wrist rest pad fits most computer keyboards and laptops, improve hand and wrist posture, release your wrist and arm stress.
  • 【Non-Slip Rubber Bottom】Featuring an anti-skid silicone base on the bottom, this wrist keyboard support stays firmly in place on your desk, preventing the padding from sliding around, ensuring stable and consistent wrist support during extended computer sessions.
  • 【Better Experience & Pain Relief】Our keyboard arm rest is beneficial to alleviate the soreness caused by direct contact and friction between your arm and a hard desk surface, reducing the risk of wrist fatigue or carpal tunnel. The soft texture of memory foam can evenly distribute the pressure around your wrists and provide good support with just enough give.
  • 【Helpful in Multiple Scenarios】Whether you're working, studying, writing, typing, gaming, this keyboard and mouse rest combo is an essential accessory to add comfort and support to your hands and wrists. It’s also a great gift for men, women, family, friend, coworker, gamer, teacher, etc.

Validate the filter before trusting a ban

fail2ban-regex tests whether a filter matches real log lines. Use a representative log file from your server and the installed filter definition:

sudo fail2ban-regex /path/to/representative-wordpress.log /etc/fail2ban/filter.d/wordpress-hard.conf

For the soft jail, substitute wordpress-soft.conf. The report should show the number of lines read, the number matched, and which regular expressions matched. A zero-match result means you must reconcile the filter, the log format, the timestamp, and the source path before enabling aggressive thresholds.

For journal-based deployments, first export a bounded sample of the relevant journal entries to a file, then run fail2ban-regex against that fixture. Use entries that include the same identifier and message format the live jail receives. Testing an unrelated Apache access log against a journal-oriented filter can produce a misleading failure.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Use fail2ban-client for live diagnostics and recovery

The client can inspect and change jail parameters and bans. Useful checks include:

sudo fail2ban-client get wordpress-hard maxretry
sudo fail2ban-client get wordpress-hard findtime
sudo fail2ban-client get wordpress-hard bantime
sudo fail2ban-client get wordpress-hard failregex
sudo fail2ban-client status wordpress-hard

If a legitimate address is banned, remove it after confirming the source and fixing the cause:

Best Value
Sale
Under Desk Cable Management Tray No Drill, Metal Mesh Cable Management Under Desk with Clamp Mount, 2 Hole Cable Tray with Wire Management and Cord Organizer for Home Office Standing Desk
  • 【No Drill Mounted】Cable management tray can be assembled in as little as 3 minutes or less-simply. Side clips easily clampe the edge of desk, pass through the holes on the sides, and secure excess cables with baskets. Desk cable management supports inward or outward installation to meet your needs in different scenarios, and provides you with great convenience when collecting and organizing wires.
  • 【Rubber Pad Protects Desk】Wire organizer under desk built-in soft rubber pads on the clamp protect your desk from scratches, so you will not damage your furniture or office.
  • 【Sturdy and Beautiful】Cord management under desk is made of high-quality carbon steel and holds about 15 lbs. The wire basket has 2 holes on each side of the tray to enable your cables to pass freely. Cable baskets are suitable for desk thickness use from 0.4" to 2.4".
  • 【Space Saving & Keep Organized】Desk cable management tray holds all your power cords, outlet strips, USB hubs and computer transformers hidden from your feet, and the data cables will not enter the vacuum cleaner to keep your desk clean and tidy. Desk wire organizer is also suitable for use in the kitchen and outdoors.
  • 【Reduce Safety Risks】Cable tray under desk keeps all plugs away from your kids, no more worry about tripping. Using 2 holes wire tray saves extra space, helps you easily cabling and wire protection. The mesh design is not easy to accumulate dust, but avoids safety accidents caused by messy wires.
sudo fail2ban-client set wordpress-hard unbanip 203.0.113.45

The address above is an example documentation address; replace it with the actual address shown by your jail. Unbanning without correcting the real-IP configuration, threshold, or client behavior only postpones the next ban.

Common failures and their fixes

The jail starts but never bans

  • Confirm the WordPress plugin is active when using WP fail2ban filters.
  • Check that the journal identifier exactly matches journalmatch.
  • For file backends, confirm logpath is absolute, readable, and points to the current log after rotation.
  • Run fail2ban-regex on real entries and verify that the installed filter matches them.
  • Check that the event is actually logged as a WordPress authentication or XML-RPC failure; a generic web access line may not contain the data the filter requires.

Fail2ban bans the proxy or every visitor

Inspect the source address in the log line. Configure the web server or proxy’s trusted real-IP mechanism so the application and security logs preserve the original client address. Do not solve this by adding the proxy to ignoreip while continuing to count proxy addresses; that hides the symptom and leaves the endpoint exposed.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Legitimate users are blocked

  • Check whether a mobile client, remote publisher, or Jetpack connection is repeatedly failing authentication.
  • Use the soft filter for events that reasonably need several attempts.
  • Increase maxretry or shorten the initial bantime while you investigate.
  • Add a stable administrative address to ignoreip only when it is genuinely controlled and will not be shared or reassigned.
  • Review whether shared NAT or a VPN causes many people to appear as one address.

Reload reports an unknown filter

The filter files come from WP fail2ban, not from a bare Fail2ban installation. Install and activate the plugin, then verify that /etc/fail2ban/filter.d/wordpress-hard.conf and wordpress-soft.conf exist on the server. Keep the jail syntax compatible with the installed Fail2ban and plugin versions.

The firewall action does not block traffic

Confirm the jail’s action and the firewall framework used by your operating system. A successful regex match does not guarantee that the selected firewall action is installed or that another firewall manager will honor it. Check the Fail2ban service log and the host firewall’s rule set, then test with a controlled, authorized address rather than a real attacker.

Decide whether to disable XML-RPC

WordPress’s administrator guidance identifies xmlrpc.php as a frequent brute-force target, especially the system.multicall method. If your site has no XML-RPC-dependent integration, disable the endpoint or restrict it at the server or WordPress layer. This removes the endpoint instead of waiting for repeated failures to trigger a ban.

If Jetpack, mobile applications, remote publishing, or another required integration uses XML-RPC, keep it available and combine reliable logging with Fail2ban. Add web-server or edge rate controls when request volume consumes significant PHP resources. The exact Apache, Nginx, proxy, and real-IP directives vary by deployment, so apply controls in the layer you operate and test that legitimate clients still function.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Operational checklist

  • XML-RPC is disabled or its required integrations are documented.
  • WP fail2ban is installed and active when its filters are used.
  • Local changes are in jail.local or jail.d/*.conf, not the packaged jail.conf.
  • The jail reads the actual systemd journal identifier or current Apache, Nginx, or PHP log.
  • Logs contain original client IPs, not only a proxy address.
  • bantime, findtime, and maxretry match the site’s traffic and risk tolerance.
  • Both hard and soft behavior has been considered, with thresholds chosen to limit false positives.
  • fail2ban-regex reports matches on representative entries.
  • fail2ban-client status shows the expected jails and monitored source.
  • An unban procedure and a way to reach the server outside the protected address are available before testing.

What success looks like

A correctly configured setup shows WordPress XML-RPC failures in the expected journal or file, the selected WP fail2ban filter matches those entries, and the jail records failures against the original client IP. When the configured number of failures occurs within findtime, Fail2ban applies the firewall action for bantime. Legitimate integrations continue to work, and you can identify and unban an address without editing the packaged configuration.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.