Security Guard
Limit password attempts at the GLPI login and stop brute force
Security Guard protects GLPI against brute-force attacks on the web login, the REST API, API v2, CalDAV and password recovery. It counts failed password attempts and, when a rule goes over its limit, temporarily blocks new attempts (HTTP 429) from the user, the IP or the combination of both. It is free and works on GLPI 10, GLPI 11 and GLPI 12.
Features
Each rule has its own window, failure limit and lockout duration, and can apply only to certain networks or countries. Exemptions by user, group, profile, network or country, with a validity period, are never blocked. The Dashboard shows the attempts of the last 24 hours and the 10 IPs, users and countries with the most failures over the week; the Test tab simulates an attempt without saving anything.
Behind a reverse proxy or Cloudflare, the user's real IP is only read through the proxies you declare, and the "This request's IP" card shows the result before you turn protection on. Protection ships disabled and the sample rules inactive. The username is never stored in clear text: only an HMAC for correlation and a mask on screen. Each rule chooses the channels where it counts: on password recovery every request counts, by IP or by e-mail; on CalDAV only wrong passwords become events. The GLPI 11 and 12 MFA code shows up in the events and keeps GLPI's own limit; SSO is out of scope.
How it works
Set up the trusted proxies
Enter the network of the reverse proxy in front of GLPI and, if you use Cloudflare, add the CDN ranges in one click. In the "This request's IP" card, check that the resolved IP is the user's.
Turn on a rule
The module ships with two inactive sample rules: User + IP (5 failures in 15 minutes block for 15 minutes) and IP (30 failures in 15 minutes block for 30 minutes). Turn on the one that fits, choose the channels (web login, API, CalDAV, password recovery) and add the exemptions you need, such as the network of a system integrated through the API.
Switch protection on and follow up
Protection ships disabled: switch it on in the Settings tab. From then on, the Dashboard and the Events tab show the classified attempts, and anyone with permission can release a block before it ends.
See it in action
A quick tour of what the plugin does in practice.
Image gallery
Check GLPI's vulnerabilities too
Protecting the login is part of the job. CVE Scan shows whether your GLPI version has known CVEs and what to adjust on the server, with a score from 0 to 100.
Discover CVE ScanStart using Security Guard
View available plans or read the full article about this module.