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