.github | ||
cmd | ||
config | ||
docker | ||
docs | ||
pkg | ||
platform | ||
scripts | ||
.gitignore | ||
Dockerfile | ||
go.mod | ||
go.sum | ||
LICENSE | ||
Makefile | ||
mkdocs.yml | ||
README.md | ||
RELEASE.json | ||
wizard.sh |
📚 Documentation 💠 Configuration Hub 💬 Discourse (Forum) 💬 Gitter (Live chat)
💃 This is a community driven project, we need your feedback.
<TL;DR>
CrowdSec is a free, modern & collaborative behavior detection engine, coupled with a global IP reputation network. It stacks on fail2ban's philosophy but is IPV6 compatible and 60x faster (Go vs Python), uses Grok patterns to parse logs and YAML scenario to identify behaviors. CrowdSec is engineered for modern Cloud / Containers / VM based infrastructures (by decoupling detection and remediation). Once detected you can remedy threats with various bouncers (firewall block, nginx http 403, Captchas, etc.) while the aggressive IP can be sent to CrowdSec for curation before being shared among all users to further improve everyone's security. See FAQ or read bellow for more.
2 mins install
Installing it through the Package system of your OS is the easiest way to proceed. Otherwise, you can install it from source.
From package (Debian)
wget -qO - https://s3-eu-west-1.amazonaws.com/crowdsec.debian.pragmatic/crowdsec.asc |sudo apt-key add - && echo "deb https://s3-eu-west-1.amazonaws.com/crowdsec.debian.pragmatic/$(lsb_release -cs) $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/crowdsec.list > /dev/null
sudo apt-get update
sudo apt-get install crowdsec
From source
wget https://github.com/crowdsecurity/crowdsec/releases/latest/download/crowdsec-release.tgz
tar xzvf crowdsec-release.tgz
cd crowdsec-v* && sudo ./wizard.sh -i
ℹ️ About the CrowdSec project
Crowdsec is an open-source, lightweight software, detecting peers with aggressive behaviors to prevent them from accessing your systems. Its user friendly design and assistance offers a low technical barrier of entry and nevertheless a high security gain.
Processing is done in 4 steps:
Once an unwanted behavior is detected, deal with it through a bouncer. The aggressive IP, scenario triggered and timestamp are sent for curation, to avoid poisoning & false positives. (This can be disabled). If verified, this IP is then redistributed to all CrowdSec users running the same scenario.
Outnumbering hackers all together
By sharing the threat they faced, all users are protecting each-others (hence the name Crowd-Security). Crowdsec is designed for modern infrastructures, with its "Detect Here, Remedy There" approach, letting you analyse logs coming from several sources in one place and block threats at various levels (applicative, system, infrastructural) of your stack.
CrowdSec ships by default with scenarios (brute force, port scan, web scan, etc.) adapted for most context, but you can easily extend it by picking more of them from the HUB. It is also easy to adapt an existing one or create one yourself.
👉 What it is not
CrowdSec is not a SIEM, storing your logs (neither locally nor remotely). Your data are analyzed locally and forgotten.
Signals sent to the curation platform are limited to the very strict minimum: IP, Scenario, Timestamp. They are only used to allow the system to spot new rogue IPs, rule out false positives or poisoning attempts.
⬇️ Install it !
Crowdsec is available for various platforms :
- Use our debian repositories or the official debian packages
- An image is available for docker
- Prebuilt release packages are also available (suitable for
amd64
) - You can as well build it from source
- FreeBSD support is wip
Or look directly at installation documentation for other methods.
🎉 Key benefits
Fast assisted installation, no technical barrier
Initial configuration is automated, providing functional out-of-the-box setup
![](/beenull/crowdsec/media/commit/bf6b79142026875dd28bc37865283474351c8927/docs/assets/images/crowdsec_install.gif)
Out of the box detection
Baseline detection is effective out-of-the-box, no fine-tuning required (click to expand)
![](/beenull/crowdsec/media/commit/bf6b79142026875dd28bc37865283474351c8927/docs/assets/images/out-of-the-box-protection.gif)
Easy bouncer deployment
It's trivial to add bouncers to enforce decisions of crowdsec (click to expand)
![](/beenull/crowdsec/media/commit/bf6b79142026875dd28bc37865283474351c8927/docs/assets/images/blocker-installation.gif)
Easy dashboard access
It's easy to deploy a metabase interface to view your data simply with cscli (click to expand)
![](/beenull/crowdsec/media/commit/bf6b79142026875dd28bc37865283474351c8927/docs/assets/images/cscli-metabase.gif)
Hot & Cold logs
Process cold logs, for forensic, tests and chasing false-positives & false negatives (click to expand)
![](/beenull/crowdsec/media/commit/bf6b79142026875dd28bc37865283474351c8927/docs/assets/images/forensic-mode.gif)
📦 About this repository
This repository contains the code for the two main components of crowdsec :
crowdsec
: the daemon a-la-fail2ban that can read, parse, enrich and apply heuristics to logs. This is the component in charge of "detecting" the attackscscli
: the cli tool mainly used to interact with crowdsec : ban/unban/view current bans, enable/disable parsers and scenarios.