Real case · anonymised infrastructure
Protecting a Debian 12 VPS without interrupting administrative access.
A real deployment on an external application server: Sentinel was integrated alongside Fail2Ban, connected to the central service and verified through to the local firewall.
The context
A machine already protected, but with separate tools and responsibilities.
The goal was not to replace what worked: it was to add central visibility and shared indicators without introducing a new blocking point for administrators.
External application VPS
Debian 12 server with web application and SSH administration limited to a small group of authorised sources.
Fail2Ban already operating
Three active jails and firewall rules already present. Sentinel had to coexist with these defences while keeping rule ownership clearly separated.
No lockout
A false block on an administrative source could have made the machine unreachable. The allowlist was therefore a prerequisite, not a later addition.
The technical challenge
Debian 12 used journald, while the SSH watcher was waiting for an authentication file.
The preflight detected the absence of /var/log/auth.log: on this Debian installation, events were only available in journald. A running agent without a readable source would not have performed the expected SSH monitoring.
In parallel, the firewall already hosted the chains of Fail2Ban and several administrative sessions were open. Before applying any shared indicator it was necessary to protect the authorised sources.
Intervention
Five checks, ordered to reduce risk.
- 01
Preflight
Inventory, backup and verification of the channel
We checked the distribution, existing configuration, signed repository, TLS endpoint and dedicated credential. The local file was saved before the changes.
Outcome Verified package and recoverable previous configuration. - 02
Event source
Preparing the authentication log
We enabled the supported
authprivlog path and generated an initial event, so the watcher did not have to wait for a future login attempt before finding the file.Outcome SSH watcher started with a real, readable source. - 03
Anti-lockout
Alignment of allowlists
The nine authorised management sources were added to the allowlists in both Sentinel and Fail2Ban. Established SSH sessions were also checked before synchronised blocks were applied.
Outcome No authorised source in the Sentinel block chain. - 04
Firewall
Separate Sentinel chain
The agent created its own chain and address set. Fail2Ban remained active on its own chains, and no existing rules were overwritten.
Outcome Clear rule ownership and a scoped rollback path. - 05
Validation
Synchronisation, restart and log review
On the first connection, 183 active indicators were synchronised. After the final restart, we verified the service, watcher, firewall, SSH sessions and log entries after the new timestamp.
Outcome The agent remained stable and connected, with no new errors in the inspected journal window.
The result
More central visibility without removing local control.
Sentinel added telemetry and shared indicators while keeping firewall decisions local. Existing defences continued to work and authorised sessions were not interrupted.
- Agent service
- active (running)
- Central channel
- TLS verified
- SSH watcher
- Active
- Firewall
- Dedicated chain
- Fail2Ban
- Operational, not replaced
- Errors after restart
- 0 observed
What we learned
The checks that make the deployment repeatable.
Running is not enough
An active service can have an unusable watcher. Verification must reach the event source and confirm the resulting firewall action.
The allowlist comes first
Management networks should be collected and protected before block synchronisation, especially in automatic installations.
Each system maintains its own rules
Sentinel and Fail2Ban can coexist if chains, logs and ownership remain identifiable and the rollback does not remove unrelated rules.
Logs should be read in the appropriate time window
Errors prior to a correction do not describe the current state. The final check always starts from the timestamp of the last restart.
Transparency of the case study
Real data, identity removed and scope stated.
This case study is based on a technical validation performed on a single machine. For security we do not publish the customer identity, IP address, hostname, provider, API key, authorised networks or application content.
The numbers represent the state observed during that verification: they are not a benchmark, an average of the Sentinel network or a guarantee of identical results on other infrastructures.
Verification period: 29 August 2026 · Editorial review: 9 September 2026
Do you want to apply the same method to your infrastructure?
We start with existing access controls, logs, firewalls and tools, then define a verifiable, reversible deployment.