CrowdSec 防护软件安装与使用

news2024/11/18 21:40:17

1、环境介绍
操作系统版本:centos 7.9

2、存储库安装

curl -s https://install.crowdsec.net | sudo sh

在这里插入图片描述
3、安装安全引擎CrowdSec

yum install crowdsec

启动

systemctl start crowdsec
systemctl enable crowdsec

4、安装修正组件

yum install crowdsec-firewall-bouncer-iptables

启动

systemctl start crowdsec-firewall-bouncer
systemctl enable crowdsec-firewall-bouncer

5、添加到控制台
https://app.crowdsec.net/
注册后登录
在这里插入图片描述
在这里插入图片描述

sudo cscli console enroll xxxxx

刷新后,点接受就注册进来了
在这里插入图片描述
在这里插入图片描述
6、订阅黑名单
在这里插入图片描述
找到合适的黑名单订阅
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
返回安全引擎 已经可以看到订阅了和名单
在这里插入图片描述

**以下为额外补充:以crowdsec 为中央处理器,在需要防护的服务器部署修正组件(这里以nginx为例),存储在共享nfs中,然后crowdsec分析,通过filebeat、logstash等工具收集日志到ES用于分析

1、nginx 开启日志
主配置文件,设置如下

设置日志格式

  log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_log  logs/50-18-accesslog.log  main;

在这里插入图片描述
设置脚本和计划任务,按天分割日志,删除7天前日志

#!/bin/bash

# 配置部分
LOG_DIR="/usr/local/nginx/logs"
LOG_FILE="50-118-accesslog.log"
ARCHIVE_DIR="${LOG_DIR}/archive"
DAYS_TO_KEEP=7
NGINX_PID_FILE="/usr/local/nginx/nginx.pid"

# 确保归档目录存在
mkdir -p ${ARCHIVE_DIR}

# 获取当前日期
CURRENT_DATE=$(date +"%Y-%m-%d")

# 移动日志文件并创建新的日志文件
if [ -f "${LOG_DIR}/${LOG_FILE}" ]; then
    mv ${LOG_DIR}/${LOG_FILE} ${ARCHIVE_DIR}/${LOG_FILE}.${CURRENT_DATE}
    touch ${LOG_DIR}/${LOG_FILE}
    # 通知 Nginx 重新打开日志文件
    if [ -f "${NGINX_PID_FILE}" ]; then
        kill -USR1 $(cat ${NGINX_PID_FILE})
    else
        echo "Nginx PID file ${NGINX_PID_FILE} does not exist."
    fi
else
    echo "Log file ${LOG_DIR}/${LOG_FILE} does not exist."
fi

# 删除 7 天前的日志文件
find ${ARCHIVE_DIR} -type f -name "${LOG_FILE}.*" -mtime +${DAYS_TO_KEEP} -exec rm -f {} \;

# 压缩归档目录中的日志文件
find ${ARCHIVE_DIR} -type f -name "${LOG_FILE}.*" -exec gzip {} \;

在这里插入图片描述
创建计划任务

0 0 * * * /usr/local/nginx/logs/rotate_nginx_logs.sh

在这里插入图片描述
3、配置nfs服务器,用于共享日志
https://blog.csdn.net/zyj81092211/article/details/127300889
配置文件

4、安装nginx的修复组件,用于下发策略
配置server端api可以外部访问(/etc/corwdsec/config.yaml)
在这里插入图片描述
添加防火墙规则

 firewall-cmd --permanent --add-port=8080/tcp
 firewall-cmd --reload

客户端安装
首先在server端添加一个bouncers,添加后生成一个key 下面到客户端下配置文件

cscli bouncers add 10.99.50.119 #这个ip地址我用作name 这里填写的是name

在这里插入图片描述

curl -s https://install.crowdsec.net | sudo sh
yum install crowdsec-firewall-bouncer-iptables

更改配置(/etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yaml),这里key填写上面获取的

在这里插入图片描述

启动

systemctl start crowdsec-firewall-bouncer
systemctl enable crowdsec-firewall-bouncer

启动后返回server端是否添加成功

cscli bouncers list

在这里插入图片描述
在客户端上 查看黑名单

ipset list crowdsec-blacklists

在这里插入图片描述

5、配置corwdsec 检查nginx日志文件
修改解释器配置文件(/etc/crowdsec/acquis.yaml)

filename: /logs/12-101/12-101-accesslog.log
labels:
  type: nginx
poll_without_inotify: true
---
filename: /logs/50-118/50-118-accesslog.log
labels:
  type: nginx
poll_without_inotify: true
---
filename: /logs/50-119/50-119-accesslog.log
labels:
  type: nginx
poll_without_inotify: true

在这里插入图片描述

重启

systemctl restart crowdsec

6、白名单和黑名单

mkdir -p /usr/local/etc/crowdsec/postoverflows/s01-whitelist/

vi /etc/crowdsec/postoverflows/s01-whitelist/mywhitelist.yaml
添加类似如下

name: crowdsecurity/whitelists
description: "Whitelist events from my ip addresses"
whitelist:
  reason: "my ip ranges"
  ip:
    - "80.x.x.x"
  cidr:
    - "80.x.x.x/24"

重新加载配置

systemctl reload crowdsec

在决策列表中操作黑白名单
白名单

cscli decisions add --ip 1.2.3.4 --type bypass --duration 24h
cscli decisions add --ip 192.168.1.100 --type bypass --duration forever
cscli decisions delete --ip 192.168.1.100 --type bypass

黑名单

cscli decisions add --ip 1.2.3.4 --type ban --duration 24h
cscli decisions add --ip 1.2.3.4 --type ban --duration forever
cscli decisions delete --ip 1.2.3.4 --type ban

6、将日志采集到es中(es集群前面文章的有介绍)
(1)安装filebeat(我的es是7.x)
安装软件源

rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch
vi /etc/yum.repos.d/elastic.repo

添加如下

[elastic-7.x]
name=Elastic repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

安装

yum install filebeat

编辑配置文件替换如下

vi /etc/filebeat/filebeat.yml

自行更换es服务器地址信息

filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /usr/local/nginx/logs/50-119-accesslog.log
  fields_under_root: true
  fields:
    log_type: nginx

filebeat.config.modules:
  path: ${path.config}/modules.d/*.yml
  reload.enabled: false

setup.template.settings:
  index.number_of_shards: 1

# 禁用 ILM
setup.ilm.enabled: false

setup.template.name: "nginx-accesslog"
setup.template.pattern: "50-119-accesslog-*"

output.elasticsearch:
  hosts: ["esmn01.wtown.com:9200"]
  protocol: "http"
  username: "xxxx"
  password: "xxxx"
  index: "50-119-accesslog-%{+yyyy.MM}"

processors:
  - add_host_metadata:
      when.not.contains.tags: forwarded
  - add_cloud_metadata: ~
  - add_docker_metadata: ~
  - add_kubernetes_metadata: ~

启动

systemctl restart filebeat
systemctl enable filebeat

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1811845.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

认证申报 | 中华环保联合会 “全国环境友好企业”认证服务

中华环保联合会水环境治理专业委员会秘书处 联系人:王小雅 电话 :010-51651268 13718793867 网址:www.acef-water.com.cn 01什么是“全国环境友好企业”认证 “全国环境友好企业”认证是经国家认证认可监督管理委员会审查监督并在全国认…

基于kdtree的三种搜索近邻点(python版本)

1、前言 点云中近邻点搜索查询是一种非常常见的数据处理操作步骤,近邻点搜索方式包括k近邻搜索、近距离搜索(球体近邻搜索)、圆柱体搜索三种方式,每一种搜索方式适用的场景各不相同。其中kdtree搜索是一种有效搜索近邻点方式&…

细说ARM MCU的串口接收数据的实现过程

目录 一、硬件及工程 1、硬件 2、软件目的 3、创建.ioc工程 二、 代码修改 1、串口初始化函数MX_USART2_UART_Init() (1)MX_USART2_UART_Init()串口参数初始化函数 (2)HAL_UART_MspInit()串口功能模块初始化函数 2、串口…

计划任务 之 一次性的计划任务

计划任务 作用:定时自动完成特定的工作 计划任务的分类: (1)一次性的计划任务 例如下周三对系统的重要文件备份一次 (2)周期性重复计划任务 例如每天晚上12:00备份一次 一次性的任务计划&#xff1a…

【java计算机毕设】图书管理系统javaweb java MySQL springboot vue html maven送文档+ppt 代码源码计算机项目

1项目功能 【java计算机专业学长毕业设计分享】 智慧图书管理系统 Java SpringBoot vue HTML MySQL 前后端分离 2项目介绍 系统功能: 智慧图书管理系统包括管理员和用户两种角色。 管理员的功能包括在个人中心修改个人信息和密码,管理员功能模块管理管理…

Spark学习——不同模式下执行脚本

举个简单的例子:使用spark官方用例"取pi值" 一、local模式 进入spark目录执行后台命令: bin/spark-submit \ --class org.apache.spark.examples.SparkPi \ --master local[*] \ ./examples/jars/spark-examples_2.12-3.2.1.jar \ 10运行结…

芯片级激光器研发取得新进展

欢迎关注GZH《光场视觉》 自 20 世纪 60 年代以来,激光给世界带来了革命性的变化,如今已成为从尖端手术和精密制造到光纤数据传输等现代应用中不可或缺的工具。 但是,随着激光应用需求的增长,挑战也随之而来。例如,光…

本周MoonBit新增Wasm1引用计数支持、语法即将添加错误恢复机制

MoonBit更新 【Wasm MVP】Wasm1 后端添加基于 Perceus 算法的引用计数支持 【语法】throw raise try catch 均被保留为关键字 为了即将添加的错误处理机制 【Core】List与sorted_map被移动至core/immut下 List被移动至core/immut/list包中,并被移除内置类型支持 …

重邮计算机网络803-(1)概述

目录 一.计算机网络向用户提供的最重要的功能 二.互联网概述 1.网络的网络 2.计算机网络的概念 3. 互联网发展的三个阶段 4.制订互联网的正式标准要经过以下的四个阶段 5.互联网的组成(功能) 6.互联网功能 7.互联网的组成(物理&…

为什么50etf期权涨幅这么大?

今天带你了解为什么50etf期权涨幅这么大?50ETF期权涨幅大是因为跟上证50指数,另外期权的特征自带杠杆效应在虚值合约上有特别高以小博大的效果。 为什么50etf期权涨幅这么大? 标的资产价格的大幅波动:50ETF期权的内在价值与50ETF…

坦白局考PMP真的能缓解职场焦虑吗?

我就是那个花了大几千去考了一张190个国家都认可的高含金量证书,每三年还要花150美金续证,但这个证书给我的生活带来前所未有的改变。我不知道其他人考了PMP证书如今怎么样了,我只说我自己,今天就来聊聊从我了解到拿证这一过程&am…

大规模胰腺癌检测通过非对比增强CT和深度学习| 文献速递-视觉通用模型与疾病诊断

Title 题目 Large-scale pancreatic cancer detection via non-contrast CT and deep learning 大规模胰腺癌检测通过非对比增强CT和深度学习 01 文献速递介绍 胰腺导管腺癌(PDAC)是最致命的实体恶性肿瘤,通常在晚期和不可手术的阶段被检…

HyperSnap软件最新版下载-HyperSnap官方最新版附加详细安装步骤

​HyperSnap是一个老牌优秀的屏幕截图工具,全新界面,不仅能抓取标准桌面程序,还能抓取 DirectX, 3Dfx Glide的 游戏视频或 DVD 屏幕图,能以 20 多种图形格式(包括:BMP, GIF,JPEG, TIFF, PCX等)保…

MS6001/2/4低功耗,低噪声 CMOS 轨到轨输入输出运算放大器

MS6001/2/4 运算放大器具有极低功耗,轨到轨输入输出,低 的输入电压和低的电流噪声。具体表现在可工作在幅度为 1.8V 到 5V 的单电源或者双电源条件,低功耗和低噪声使得 MS6001/2/4 能够用在可移动设备上,输入输出的轨到轨…

PyTorch 维度变换-Tensor基本操作

以如下 tensor a 为例,展示常用的维度变换操作 >>> a torch.rand(4,3,28,28) >>> a.shape torch.Size([4, 3, 28, 28])view / reshape 两者功能完全相同: a.view(shape) >>> a.view(4,3,28*28) ## a.view(4,3,28,28) 可恢复squeeze…

移动端浏览器的扫描二维码实现(vue-qrcode-reader与jsQR方式)

1. 实现功能 类似扫一扫的功能,自动识别到画面中的二维码并进行识别,也可以选择从相册中上传。 2. 涉及到的一些插件介绍 vue-qrcode-reader 一组用于检测和解码二维码的Vue.js组件 jsQR 一个纯粹的javascript二维码阅读库,该库接收原始…

基于asp.net大学生健康管理系统功能介绍

项目关键技术 开发工具:Visual Studio 编程语言: .net、JavaScript 数据库: SQL Server 框架:ASP.NET框架 关键技术:ASP.NET、SQL Server 数据库工具:Navicat 1、ASP.NET框架 ASP.NET技术框架是目前在程序开发中广泛应用的一种新…

存储协议入门-UPIU简介

写在前面:本文参考UFS jedec3.1,本文思维导图如下,详细内容关注微信:存储协议探索 ​ 1. UPIU架构 UPIU是UFS协议中的一种数据包格式,用于传输应用层的各种请求和命令,UFS采用的是客户-服务端架构,UFS主机(客户)主动发起请求,UFS设备(服务)执行后并返回相应状态。…

演出门票小程序开发

一、实时票务信息更新的重要性 在演出票务市场,票务信息的实时性对于消费者来说至关重要。一旦票务信息出现滞后或错误,不仅可能导致消费者错过心仪的演出,还可能引发一系列不必要的纠纷和投诉。因此,演出门票小程序通过引入实时…

IMU监测举重作

近日,来自加拿大的科研团队针对举重中因不当举重操作引发的普遍下背痛问题开展了一项开创性研究。团队利用穿戴式惯性测量单元(IMU)技术,在受控实验室环境中,实时监测并评估了举重动作过程中下背部肌肉与脊柱关节的受力…