Thursday, November 21, 2024

[CrowdSec] – Phần 5 – Tìm hiểu cscli và các tham số của nó

-

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ệnh cscli, 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ủa cscli để 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ủa cscli ở 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ụng cscli 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.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

4,956FansLike
256FollowersFollow
223SubscribersSubscribe
spot_img

Related Stories