maximus Posted December 14 Posted December 14 Hello ! π I'm excited to share WireWall, a comprehensive security firewall module I've been developing for ProcessWire. After months of real-world testing on production sites (including blocking 99.98% of malicious traffic on my e-commerce platform), I'm ready to release it to the community. What is WireWall? WireWall is a ProcessWire-native security module that provides enterprise-grade protection with granular geographic and network-level blocking. Unlike traditional firewalls that only block by country, WireWall lets you block by city, region (state/province), VPN/Proxy/Tor, ASN, and more. Key Features Geographic Blocking: City-level blocking - Block specific cities worldwide (e.g., "Philadelphia", "Beijing", "Tokyo") Region blocking - Block entire states/provinces (e.g., "Pennsylvania", "California", "Tokyo Prefecture") Country blocking - Traditional country-level controls with whitelist/blacklist modes Network Protection: VPN/Proxy/Tor detection - Multi-API detection system with intelligent fallback Datacentre detection - Block AWS, Google Cloud, DigitalOcean, and other hosting providers ASN blocking - Block entire autonomous systems by ASN number Rate limiting - Per-IP rate limits with automatic temporary bans AI bot blocking - Automatically block GPTBot, ClaudeBot, and other AI scrapers Performance & Scalability: File-based cache - Scales to 1M+ IPs with zero database overhead Lightning-fast lookups - 0.5-2ms with MaxMind databases HTTP fallback - Works without MaxMind databases (though less performant) Smart caching - GeoIP cached for 30 days, VPN checks for 7 days Developer-Friendly: Priority-based system - 14 security layers evaluated in order JavaScript challenge - Detect and block headless browsers Comprehensive logging - Debug mode with detailed request information Cache management UI - Built-in interface to view stats and clear cache Triple admin protection - Logged-in users, IP whitelist, admin area bypass Real-World Results On my e-commerce site (LQRS.com), WireWall has been running for several months with impressive results: 99.98% blocking rate - Nearly all malicious traffic blocked Zero false positives - Legitimate customers unaffected Significant reduction in AWS/cloud-based automated attacks Complete elimination of VPN/proxy fraud attempts Installation cd /site/modules/ git clone https://github.com/mxmsmnv/WireWall.git Then in ProcessWire admin: Modules β Refresh Install WireWall Configure your blocking rules You're protected! How It Works - Priority System WireWall processes every request through 14 prioritised security layers: Admin Area β ALLOW (ProcessWire admin always accessible) IP Whitelist β ALLOW (manual whitelist bypass) Rate Limiting β BLOCK (excessive requests) IP Blacklist β BLOCK (permanent blocks) JavaScript Challenge β CHALLENGE (suspicious requests) VPN/Proxy/Tor β BLOCK (anonymous services) Datacentre Detection β BLOCK (cloud hosting) ASN Blocking β BLOCK (autonomous systems) Global Rules β BLOCK (known patterns) Country Blocking β BLOCK (country rules) City Blocking β BLOCK (city rules) Region Blocking β BLOCK (region rules) Country-specific Rules β BLOCK (custom rules) Default β ALLOW β First match wins - once a rule triggers, evaluation stops. MaxMind Integration WireWall works best with MaxMind GeoLite2 databases (free): GeoLite2-Country.mmdb - Country detection GeoLite2-City.mmdb - City and region detection GeoLite2-ASN.mmdb - Network/ISP detection Without MaxMind, it falls back to ip-api.com HTTP API (slower, with rate limits). City and region blocking require the MaxMind City database. Download MaxMind databases from: https://dev.maxmind.com/geoip/geolite2-free-geolocation-data Technical Details ProcessWire: 3.0.200 or higher PHP: 8.1 or higher Optional: MaxMind GeoLite2 databases (Country, ASN, City) Optional: Composer (for MaxMind GeoIP2 library) Why Another Firewall Module? I needed something specifically for ProcessWire that: Scales efficiently - File-based cache handles millions of IPs without database bloat Provides granular control - City and region blocking isn't available in other solutions Works offline - MaxMind databases work without external API calls Integrates natively - Built specifically for ProcessWire's architecture Stays free - Open source, no premium tiers or upsells Other solutions like Wordfence (WordPress), Sucuri (paid service), and ModSecurity (server-level) either don't integrate well with ProcessWire or lack the geographic granularity needed for fraud prevention. Resources GitHub Repository: https://github.com/mxmsmnv/WireWall Documentation: Full README with installation, configuration, and troubleshooting Landing Page: https://wirewall.org Licence: MIT (free for commercial use) Quick Start TL;DR # Install cd site/modules && git clone https://github.com/mxmsmnv/WireWall.git # Activate in ProcessWire admin Modules β Install β WireWall # Configure - Enable module - Set blocking rules (cities/regions/countries) - Enable VPN detection - Configure rate limiting - Save # Monitor Setup β Logs β wirewall.txt I'm happy to answer any questions! Has anyone else been working on security solutions for ProcessWire? I'd love to hear about your approaches and challenges. Best regards, Maxim 14 6
maximus Posted December 14 Author Posted December 14 Check out more on website -Β https://wirewall.org 1
jacmaes Posted December 15 Posted December 15 Hi @maximus. Quick question: I use adguard on my iPhone, which basically acts as a VPN to block ads in apps and in Safari. When I visit wirewall.org, I'm blocked. Isn't it a bit too aggressive? I'm not a threat, I just want to browse ad-freeΒ π
matjazp Posted December 15 Posted December 15 I also can't reach it as I'm browsing with javascript off.
Tiberium Posted December 15 Posted December 15 1 hour ago, matjazp said: I also can't reach it as I'm browsing with javascript off. I assume because of the JavaScript challenge ^^. @maximus Can specific block steps be switched off?
Stefanowitsch Posted December 15 Posted December 15 @maximusΒ i really would like to give this module a try! I am having slight problems with spam bot form submissions from time to time. But: I am using custom ajax endpoints via the RockFrontend Module:Β https://www.baumrock.com/en/processwire/modules/rockfrontend/docs/ajax/ Although I enabled the "Allow AJAX from trusted module" checkbox in the module settings, the ajax requests are getting blocked (status 403) when WireWall is active. Is there a way to add "trusted modules" manually? 1
matjazp Posted December 15 Posted December 15 @maximus, a minor inconsistency. In your post: ProcessWire Version:Β 3.0+ PHP Version:Β 7.4+ (8.0+ recommended) But in the module: 'requires' => 'ProcessWire>=3.0.200,PHP>=8.1',
maximus Posted yesterday at 12:58 AM Author Posted yesterday at 12:58 AM On 12/15/2025 at 4:37 AM, jacmaes said: Hi @maximus. Quick question: I use adguard on my iPhone, which basically acts as a VPN to block ads in apps and in Safari. When I visit wirewall.org, I'm blocked. Isn't it a bit too aggressive? I'm not a threat, I just want to browse ad-freeΒ π I don't think you need a disguise to view your website, but you can always add exceptions. Also this week, I updated the module to version 1.1.9, where, in addition to prohibitions, exception fields have been added: for search robots (user agent), ASN and IP. On 12/15/2025 at 1:38 PM, matjazp said: @maximus, a minor inconsistency. In your post: ProcessWire Version:Β 3.0+ PHP Version:Β 7.4+ (8.0+ recommended) But in the module: 'requires' => 'ProcessWire>=3.0.200,PHP>=8.1', Thanks a lot, I've corrected it everywhere. On 12/15/2025 at 6:05 AM, matjazp said: I also can't reach it as I'm browsing with javascript off. Yes, I see that access to the site is blocked when javascript is disabled. I'll think about how to solve it.
maximus Posted yesterday at 01:02 AM Author Posted yesterday at 01:02 AM On 12/15/2025 at 11:41 AM, Stefanowitsch said: @maximusΒ i really would like to give this module a try! I am having slight problems with spam bot form submissions from time to time. But: I am using custom ajax endpoints via the RockFrontend Module:Β https://www.baumrock.com/en/processwire/modules/rockfrontend/docs/ajax/ Although I enabled the "Allow AJAX from trusted module" checkbox in the module settings, the ajax requests are getting blocked (status 403) when WireWall is active. Is there a way to add "trusted modules" manually? Please try manually making changes to the module code in the relevant lines and, if possible, let us know whether it works or not. Β 1
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now