Files
Charon/docs/security.md

3.0 KiB

Security Services

CaddyProxyManager+ (CPM+) includes optional, high-value security integrations to protect your services. These features are disabled by default to keep the application lightweight but can be easily enabled via environment variables.

Available Services

1. CrowdSec (Intrusion Prevention)

CrowdSec is a collaborative security automation tool that analyzes logs to detect and block malicious behavior.

Modes:

  • Local: Installs the CrowdSec agent inside the CPM+ container. Useful for single-container setups.
    • Note: Increases container startup time and resource usage.
  • External: Connects to an existing CrowdSec agent running elsewhere (e.g., on the host or another container).
    • Recommended for production or multi-server setups.

2. WAF (Web Application Firewall)

Uses Coraza, a Go-native WAF, with the OWASP Core Rule Set (CRS) to protect against common web attacks (SQL Injection, XSS, etc.).

3. Access Control Lists (ACL)

Allows you to define IP allow/block lists to restrict access to your services.

4. Rate Limiting

Protects your services from abuse by limiting the number of requests a client can make within a specific time frame.


Configuration

All security services are controlled via environment variables in your docker-compose.yml.

CrowdSec Configuration

Variable Value Description
CPM_SECURITY_CROWDSEC_MODE disabled (Default) CrowdSec is turned off.
local Installs and runs CrowdSec agent inside the container.
external Connects to an external CrowdSec agent.
CPM_SECURITY_CROWDSEC_API_URL URL (Required for external) e.g., http://crowdsec:8080
CPM_SECURITY_CROWDSEC_API_KEY String (Required for external) Your CrowdSec bouncer API key.

Example (Local Mode):

environment:
  - CPM_SECURITY_CROWDSEC_MODE=local

Example (External Mode):

environment:
  - CPM_SECURITY_CROWDSEC_MODE=external
  - CPM_SECURITY_CROWDSEC_API_URL=http://192.168.1.50:8080
  - CPM_SECURITY_CROWDSEC_API_KEY=your-bouncer-key-here

WAF Configuration

Variable Value Description
CPM_SECURITY_WAF_MODE disabled (Default) WAF is turned off.
enabled Enables Coraza WAF with OWASP CRS.

Example:

environment:
  - CPM_SECURITY_WAF_MODE=enabled

Rate Limiting & ACLs

Variable Value Description
CPM_SECURITY_RATELIMIT_MODE enabled / disabled Enable global rate limiting.
CPM_SECURITY_ACL_MODE enabled / disabled Enable IP-based Access Control Lists.

Dashboard

You can view the status of these services in the CPM+ web interface under the Security tab.

  • CrowdSec: Shows connection status and mode.
  • WAF: Indicates if the Core Rule Set is loaded.
  • ACLs: Manage your Block/Allow lists.
  • Rate Limits: Configure global request limits.