1. Cscli là gì?
Cscli
là một công cụ command-line tool được cung cấp bởi CrowdSec để quản lý và tương tác với các sự kiện và quy tắc của CrowdSec. Nó cho phép bạn thực hiện các tác vụ quan trọng như xem danh sách các sự kiện, tạo và quản lý quy tắc, và thực hiện các tác vụ quản lý hệ thống liên quan đến CrowdSec.
Dưới đây là một số tác vụ cơ bản mà bạn có thể thực hiện bằng cscli
:
- Liệt kê các sự kiện: Bạn có thể sử dụng
cscli
để xem danh sách các sự kiện đã được phát hiện và phân tích bởi CrowdSec. Ví dụ:sudo cscli alerts list
. - Quản lý quy tắc: Bạn có thể tạo, cập nhật và xóa quy tắc bảo mật bằng cách sử dụng
cscli
. Điều này cho phép bạn tùy chỉnh cách CrowdSec xử lý các sự kiện cụ thể. Ví dụ:sudo cscli scenarios list
,sudo cscli scenarios add
,sudo cscli scenarios delete
. - Cài đặt và cấu hình: Bạn có thể sử dụng
cscli
để cài đặt và cấu hình CrowdSec trên máy chủ của bạn. Ví dụ:sudo cscli install
,sudo cscli setup
. - Xem thông tin hệ thống:
cscli
cung cấp thông tin về phiên bản của CrowdSec và trạng thái hoạt động của nó. Ví dụ:sudo cscli version
,sudo cscli status
.
2. Các tham số trong cscli.
Cú pháp của cscli là cscli [command]
và dưới đây là một command ví dụ cscli --help
.
$ cscli --help
cscli is the main command to interact with your crowdsec service, scenarios & db.
It is meant to allow you to manage bans, parsers/scenarios/etc, api and generally manage you crowdsec setup.
Usage:
cscli [command]
Available Commands:
alerts Manage alerts
bouncers Manage bouncers [requires local API]
capi Manage interaction with Central API (CAPI)
collections Manage collections from hub
completion Generate completion script
config Allows to view current config
console Manage interaction with Crowdsec console (https://app.crowdsec.net)
dashboard Manage your metabase dashboard container [requires local API]
decisions Manage decisions
explain Explain log pipeline
help Help about any command
hub Manage Hub
hubtest Run functional tests on hub configurations
lapi Manage interaction with Local API (LAPI)
machines Manage local API machines [requires local API]
metrics Display crowdsec prometheus metrics.
notifications Helper for notification plugin configuration
parsers Install/Remove/Upgrade/Inspect parser(s) from hub
postoverflows Install/Remove/Upgrade/Inspect postoverflow(s) from hub
scenarios Install/Remove/Upgrade/Inspect scenario(s) from hub
simulation Manage simulation status of scenarios
support Provide commands to help during support
version Display version and exit.
Flags:
-c, --config string path to crowdsec config file (default "/etc/crowdsec/config.yaml")
-o, --output string Output format: human, json, raw.
--color string Output color: yes, no, auto. (default "auto")
--debug Set logging to debug.
--info Set logging to info.
--warning Set logging to warning.
--error Set logging to error.
--trace Set logging to trace.
-h, --help help for cscli
Use "cscli [command] --help" for more information about a command.
Dưới đây là giải thích từng lệnh con (subcommand) có sẵn trong cscli
và mục đích của từng lệnh:
alerts
: Quản lý các sự kiện và thông báo được phát hiện và ghi lại bởi CrowdSec. Bạn có thể liệt kê, xem chi tiết và thao tác với các sự kiện thông qua lệnh này.bouncers
: Quản lý các “bouncers,” là các công cụ hoặc dịch vụ được sử dụng để chặn hoặc đánh giá sự kiện. Điều này liên quan đến việc quản lý cách CrowdSec xử lý sự kiện bị cấm.capi
: Quản lý tương tác với Central API (CAPI), nếu bạn đang sử dụng nó. CAPI là một phần của CrowdSec mà bạn có thể sử dụng để tương tác với các máy chủ CrowdSec từ xa.collections
: Quản lý các bộ sưu tập (collections) từ CrowdSec Hub. Bộ sưu tập bao gồm parsers, scenarios và các tài nguyên bảo mật khác được chia sẻ bởi cộng đồng CrowdSec.completion
: Tạo script hoàn thành tự động cho các lệnhcscli
, giúp bạn dễ dàng tìm kiếm và hoàn thành lệnh trong môi trường cli.config
: Cho phép bạn xem cấu hình hiện tại của CrowdSec.console
: Quản lý tương tác với CrowdSec Console, nếu bạn đang sử dụng nó. CrowdSec Console là một giao diện web cho việc quản lý và theo dõi CrowdSec.dashboard
: Quản lý container của Metabase Dashboard, được sử dụng để trực quan hóa dữ liệu và sự kiện của CrowdSec.decisions
: Quản lý các quyết định (decisions) được đưa ra bởi CrowdSec. Điều này liên quan đến việc quản lý cách CrowdSec xử lý các sự kiện bị cấm.explain
: Giúp bạn hiểu cách CrowdSec xử lý và phân tích log thông qua “log pipeline.”help
: Hiển thị trợ giúp về một lệnh cụ thể hoặc toàn bộcscli
.hub
: Quản lý việc tương tác với CrowdSec Hub, nơi bạn có thể tìm kiếm và tải về các tài nguyên bảo mật từ cộng đồng CrowdSec.hubtest
: Chạy các kiểm tra chức năng trên cấu hình từ CrowdSec Hub để đảm bảo rằng chúng hoạt động đúng cách.lapi
: Quản lý tương tác với Local API (LAPI), nếu bạn đang sử dụng nó. LAPI là một phần của CrowdSec cho phép tương tác với CrowdSec từ các ứng dụng hoặc máy chủ cục bộ.machines
: Quản lý máy chủ Local API (LAPI) nếu bạn đang sử dụng chúng. Điều này liên quan đến việc quản lý máy chủ đã đăng ký với CrowdSec.metrics
: Hiển thị các chỉ số Prometheus của CrowdSec, cho phép bạn theo dõi hiệu suất của hệ thống.notifications
: Giúp bạn cấu hình cách thông báo (notifications) hoạt động trong CrowdSec.parsers
: Quản lý parsers, bao gồm cài đặt, xóa, nâng cấp và kiểm tra parser(s) từ CrowdSec Hub.postoverflows
: Quản lý postoverflows, bao gồm cài đặt, xóa, nâng cấp và kiểm tra postoverflow(s) từ CrowdSec Hub.scenarios
: Quản lý scenarios, bao gồm cài đặt, xóa, nâng cấp và kiểm tra scenario(s) từ CrowdSec Hub.simulation
: Quản lý tình huống mô phỏng của các scenarios để kiểm tra cách chúng hoạt động.support
: Cung cấp các lệnh hỗ trợ giúp bạn trong quá trình sử dụng và cấu hình CrowdSec.version
: Hiển thị phiên bản của CrowdSec.
Các flags được liệt kê dưới đây là các tùy chọn mà bạn có thể sử dụng khi chạy lệnh cscli
để tùy chỉnh cách lệnh hoạt động. Dưới đây là giải thích của từng cờ:
-c, --config string
: Cho phép bạn chỉ định đường dẫn đến tệp cấu hình CrowdSec. Nếu bạn không chỉ định, CrowdSec sẽ sử dụng tệp cấu hình mặc định (/etc/crowdsec/config.yaml
).-o, --output string
: Xác định định dạng đầu ra của lệnh. Bạn có thể chọn giữa các tùy chọn sau:human
: Định dạng đầu ra cho con người đọc (mặc định).json
: Định dạng đầu ra JSON, thích hợp cho việc tự động hóa hoặc tích hợp với các công cụ khác.raw
: Đầu ra gốc chưa qua định dạng.
--color string
: Xác định cách hiển thị màu sắc trong đầu ra. Bạn có các tùy chọn sau:yes
: Bật màu sắc (mặc định).no
: Tắt màu sắc.auto
: Tự động xác định cách hiển thị màu sắc dựa trên môi trường.
--debug
: Bật chế độ ghi log ở mức debug. Điều này hữu ích khi bạn cần theo dõi thông tin chi tiết về hoạt động củacscli
để xác định sự cố hoặc thực hiện gỡ lỗi.--info
: Bật chế độ ghi log ở mức info để theo dõi thông tin hoạt động củacscli
ở mức thông tin cơ bản.--warning
: Bật chế độ ghi log ở mức warning để theo dõi các cảnh báo và sự kiện quan trọng.--error
: Bật chế độ ghi log ở mức error để theo dõi các lỗi và vấn đề quan trọng.--trace
: Bật chế độ ghi log ở mức trace để ghi lại mọi hoạt động chi tiết, bao gồm cả gọi hệ thống và gỡ lỗi sâu hơn.-h, --help
: Hiển thị trợ giúp về cách sử dụngcscli
và các tùy chọn của nó.
Và đây là một ví dụ sử dụng cscli
để tìm kiếm và tải về các tài nguyên bảo mật từ cộng đồng CrowdSec.
$ cscli hub list
INFO[20-08-2023 10:01:36] Loaded 100 collecs, 109 parsers, 186 scenarios, 7 post-overflow parsers
COLLECTIONS
──────────────────────────────────────────────────────────────────────────────────
Name 📦 Status Version Local Path
──────────────────────────────────────────────────────────────────────────────────
crowdsecurity/linux ✔️ enabled 0.2 /etc/crowdsec/collections/linux.yaml
crowdsecurity/sshd ✔️ enabled 0.2 /etc/crowdsec/collections/sshd.yaml
──────────────────────────────────────────────────────────────────────────────────
PARSERS
───────────────────────────────────────────────────────────────────────────────────────────────────────────────
Name 📦 Status Version Local Path
───────────────────────────────────────────────────────────────────────────────────────────────────────────────
crowdsecurity/dateparse-enrich ✔️ enabled 0.2 /etc/crowdsec/parsers/s02-enrich/dateparse-enrich.yaml
crowdsecurity/geoip-enrich ✔️ enabled 0.2 /etc/crowdsec/parsers/s02-enrich/geoip-enrich.yaml
crowdsecurity/sshd-logs ✔️ enabled 2.2 /etc/crowdsec/parsers/s01-parse/sshd-logs.yaml
crowdsecurity/syslog-logs ✔️ enabled 0.8 /etc/crowdsec/parsers/s00-raw/syslog-logs.yaml
crowdsecurity/whitelists ✔️ enabled 0.2 /etc/crowdsec/parsers/s02-enrich/whitelists.yaml
───────────────────────────────────────────────────────────────────────────────────────────────────────────────
SCENARIOS
────────────────────────────────────────────────────────────────────────────────────────────
Name 📦 Status Version Local Path
────────────────────────────────────────────────────────────────────────────────────────────
crowdsecurity/ssh-bf ✔️ enabled 0.1 /etc/crowdsec/scenarios/ssh-bf.yaml
crowdsecurity/ssh-slow-bf ✔️ enabled 0.2 /etc/crowdsec/scenarios/ssh-slow-bf.yaml
────────────────────────────────────────────────────────────────────────────────────────────
POSTOVERFLOWS
─────────────────────────────────────────
Name 📦 Status Version Local Path
─────────────────────────────────────────
Bạn sẽ nhìn thấy các COLLECTIONS bao gồm các PARSERS, SCENARIOS và POSTOVERFLOWS, cùng với các tài nguyên bảo mật khác và chúng giúp bạn mở rộng và tùy chỉnh khả năng phát hiện và ứng phó với các sự kiện bảo mật trong CrowdSec.
Dưới đây là giải thích về mỗi khái niệm này:
- COLLECTIONS (Bộ Sưu Tập): là tập hợp các tài nguyên bảo mật mà bạn có thể tải về và cài đặt trên CrowdSec. Chúng bao gồm parsers, scenarios và các quy tắc khác được xác định bởi cộng đồng CrowdSec.
- PARSERS (Trình Phân Tích): là một phần quan trọng của CrowdSec. Chúng được sử dụng để phân tích các dòng log từ các nguồn khác nhau và trích xuất thông tin quan trọng như địa chỉ IP, tên người dùng, hoạt động đăng nhập và nhiều thông tin khác. Parsers biến các dòng logs không cấu trúc thành dữ liệu cấu trúc, giúp CrowdSec hiểu được các sự kiện.
- SCENARIOS (Kịch Bản): là tập hợp các quy tắc hoặc luật được sử dụng để xác định khi nào một hành vi cụ thể trong dòng log được coi là đe dọa hoặc bất thường. Khi một scenario phát hiện một sự kiện phù hợp với quy tắc của nó, nó sẽ thực hiện các hành động như cấm địa chỉ IP nguồn hoặc tạo thông báo.
- POSTOVERFLOWS (Xử lý các tình huống sau khi một cảnh báo đã được kích hoạt): Postoverflows là một loại scenario đặc biệt được sử dụng để xử lý các tình huống sau khi một cảnh báo đã được kích hoạt. Chúng cho phép bạn xác định hành vi cụ thể sau khi một cảnh báo đã xảy ra, ví dụ sau khi một địa chỉ IP bị cấm, quản lý thời gian cấm, sau đó giải phóng cấm.