Skip to main content

CNSL

Correlated Network Security Layer

CI PyPI Python 3.10+ MIT License

A self-hosted SIEM for Linux.
Detects attacks that span SSH, web, database, and cloud logs simultaneously -- then blocks them automatically.


What it does

Most tools watch one log and count failures. CNSL watches everything at once.

When an attacker scans your web server, probes your database, then tries SSH with stolen credentials -- CNSL sees all three as one coordinated attack and responds before the breach completes.

Web scan      from 45.33.32.1  --+
SSH brute     from 45.33.32.1  --+--->  HIGH alert + auto-block
DB auth fail  from 45.33.32.1  --+

It also tracks how far each attacker has progressed through the kill chain, learns new attack patterns automatically, and shares threat intelligence across multiple servers in real time.


Quick start

pip install cnsl[full]
sudo python -m cnsl --dashboard --no-tcpdump
# Open http://127.0.0.1:8765
# Default login: admin / cnsl-change-me

Or from source:

git clone https://github.com/rahadbhuiya/cnsl.git
cd cnsl
python3 -m venv venv && source venv/bin/activate
pip install -e ".[full]"
sudo venv/bin/python -m cnsl --dashboard --no-tcpdump

Start in dry-run mode (default) -- no real blocks until you add --execute.


Dashboard

Enable with --dashboard. Runs at http://127.0.0.1:8765.

Tabs: Overview, Incidents, Blocks, Live Feed, Kill Chain, Graph, Cases, UEBA, ML, Honeypot, FIM, Rules, Rate Limit, Settings.

For remote access use an SSH tunnel:

ssh -L 8765:127.0.0.1:8765 user@yourserver

Configuration

Copy and edit the example config:

cp config/config.example.json /etc/cnsl/config.json

All options are documented in docs/configuration.md.
Key sections: thresholds, actions, dashboard, notifications, redis, cloud_identity, zero_trust, siem, federation.


Documentation

Document What it covers
docs/installation.md Full install, systemd, Docker
docs/configuration.md Every config option explained
docs/features.md Complete feature list
docs/architecture.md Module structure and design
docs/kill-chain.md Kill chain tracker
docs/federation.md Multi-node setup
docs/cloud-identity.md AWS + Azure AD integration
docs/zero-trust.md Trust score engine
docs/siem-connectors.md Splunk, Sentinel, Webhook push
docs/pattern-learning.md Automated rule discovery
docs/api.md Full REST API reference
docs/ot-iot.md OT/ICS protocol support (Modbus, DNP3, SCADA)
docs/changelog.md Version history
docs/ All documentation (26 guides)

Requirements

  • Linux (Ubuntu 20.04+ / Debian 11+ / RHEL 8+)
  • Python 3.10+
  • Root or CAP_NET_ADMIN for iptables blocking

Optional: Redis (distributed blocklist + federation), MaxMind GeoIP database.


License

MIT. See LICENSE.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cnsl-3.4.8.tar.gz (288.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cnsl-3.4.8-py3-none-any.whl (263.8 kB view details)

Uploaded Python 3

File details

Details for the file cnsl-3.4.8.tar.gz.

File metadata

  • Download URL: cnsl-3.4.8.tar.gz
  • Upload date:
  • Size: 288.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for cnsl-3.4.8.tar.gz
Algorithm Hash digest
SHA256 cd1070d22bfb2aeef7db43c3ec5321f71f50ea0fb4256e8d821a204026a8f5ac
MD5 6036b7457c9cb39dcfa0ca045045267d
BLAKE2b-256 37e22613ba11c0bfeebb8b9239427685d7a997fdc7f0abb69ec79097f0595dda

See more details on using hashes here.

Provenance

The following attestation bundles were made for cnsl-3.4.8.tar.gz:

Publisher: ci.yml on rahadbhuiya/cnsl

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cnsl-3.4.8-py3-none-any.whl.

File metadata

  • Download URL: cnsl-3.4.8-py3-none-any.whl
  • Upload date:
  • Size: 263.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for cnsl-3.4.8-py3-none-any.whl
Algorithm Hash digest
SHA256 1a1797a66a4eef0f00a1d4ffdbe56bc52b8b8696100a5b121d2b1b453c4cb3c4
MD5 0e304b4a9a086144e57c263240b3b863
BLAKE2b-256 851f78c513466f8375753d2215e0e125509696d1f8fd27d5c8ca72100bb40bf0

See more details on using hashes here.

Provenance

The following attestation bundles were made for cnsl-3.4.8-py3-none-any.whl:

Publisher: ci.yml on rahadbhuiya/cnsl

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

3.4.16

2 files

3.4.15

2 files

3.4.14

2 files

3.4.13

2 files

3.4.11

2 files

3.4.10

2 files

3.4.9

2 files

This release

3.4.8 This release

2 files

3.4.7

2 files

3.4.5

2 files

3.4.4

2 files

3.4.3

2 files

3.4.2

2 files

3.4.1

2 files

3.4.0

2 files

3.3.0

2 files

3.2.0

2 files

3.1.0

2 files

3.0.0

2 files

2.9.0

2 files

2.7.0

2 files

2.6.0

2 files

2.5.0

2 files

2.4.0

2 files

2.2.0

2 files

2.1.1

2 files

2.1.0

2 files

2.0.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page