docker+nginx+keepalived+openappsec+web ui+crowdsec部署安全代理

docker+nginx+keepalived+openappsec+web ui+crowdsec部署安全代理

  • 一、环境介绍
  • 二、基础环境安装
    • 1、优化系统参数
    • 2、安装docker
    • 3、创建容器网络
    • 4、安装测试容器(可选)
  • 三、安装nginx
    • 1、拉取镜像
    • 2、创建映射目录
    • 3、准备默认配置文件
    • 4、证书文件准备
    • 5、启动nginx容器
    • 6、创建加载配置脚本
  • 四、安装openappsec-agent
    • 1、拉取镜像
    • 2、创建映射目录
    • 3、创建默认配置文件
    • 4、启动openappsec-agent 容器(本地管理)
    • 5、常用命令
    • 6、测试拦截
      • (1)、创建acmeaudit 配置文件
      • (2)、登录测试
      • (3)、产看拦截日志
  • 五、使用openappsec webui 集中管理(可选)
    • 1、登陆webui
    • 2、创建配置文件
    • 3、获取token
      • (1)、配置文件中获取token
      • (2)、用一个脚本加载token(可选)
    • 4、重新创建容器
    • 5、创建资产
    • 6、查看拦截结果与日志
  • 六、openappsec更换高级机器学习模型
    • 1、下载高级机器学习模型
    • 2、创建映射目录
    • 3、重新创建容器
    • 4、查看状态
  • 七、安装keepalived
    • 1、构建keepalived 容器
      • (1)、dockerfile 文件
      • (2)、创建容器镜像
    • 2、keepalived 配置文件
      • (1)、主节点配置
      • (3)、备用节点配置
      • (3)、nginx检查脚本
    • 3、nginx健康页面配置
    • 4、启动keepalivede容器
    • 5、添加防火墙规则
  • 八、crowdsec配置
    • 1、创建相关目录
    • 2、更改优化nginx配置文件
    • 3、NFS配置
      • (1)、NFS服务器创建
      • (2)、/etc/exports 文件设置
      • (3)、映射NFS 共享目录
      • (4)、重新生成nginx日志
    • 4、crowdsec 服务端安装
      • (1)、创建compose文件
      • (2)、配置log读取
      • (3)、启动
      • (4)、查看状态
    • 5、日志轮切
    • 6、crowdsec 客户端安装
      • (1)、在crowdsec severe 端生成api key
      • (2)、安装客户端crowdsec-firewall-bouncer-iptables
      • (3)、更改配置文件
      • (4)、启动
      • (5)、黑名单测试
    • 7、将引擎注册到web ui
      • (1)、注册或登录web ui
      • (2)、新建引擎
    • 8、黑名单/白名单操作
      • (1)、临时设置
      • (2)、组织白名单
    • 9、设置crowdsec server防火墙规则
      • (1)、规则设置
      • (2)、永久生效
  • 九、nginx配置文件同步(可选)
    • 1、ansible 同步方法
    • 2、rsync同步方法

一、环境介绍

操作系统:龙蜥 os 8.10
docker : 26.1.3
keepalived:
nginx: open-appsec-nginx 1.25.4
openappsec:1.1.27
节点规划:

节点名称 CPU 内存 IP地址 主备 VIP
Proxy-01 8核心 8GB 10.99.50.128 master 10.99.50.130
Proxy-01 8核心 8GB 10.99.50.129 slave

说明:nginx keepalived openappsec 需在在两台机器上同时安装

二、基础环境安装

1、优化系统参数

#!/bin/bash# 龙蜥 OS 8 系统参数优化脚本
# 建议使用 root 用户执行set -eecho "开始优化系统参数..."# 1. 备份 sysctl.conf 和 limits.conf
cp /etc/sysctl.conf /etc/sysctl.conf.bak.$(date +%F)
cp /etc/security/limits.conf /etc/security/limits.conf.bak.$(date +%F)# 2. 优化内核参数
cat > /etc/sysctl.d/99-anolis-tuning.conf <<EOF
fs.file-max = 2097152
vm.swappiness = 10
vm.dirty_ratio = 20
vm.dirty_background_ratio = 5
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.ip_forward = 1
net.ipv4.tcp_fin_timeout = 10
net.ipv4.tcp_keepalive_time = 600
net.ipv4.tcp_max_syn_backlog = 4096
net.core.somaxconn = 65535
net.core.netdev_max_backlog = 65535
net.ipv4.tcp_max_tw_buckets = 5000
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 16384 16777216
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
EOFsysctl --system# 3. 设置最大文件句柄数
cat >> /etc/security/limits.conf <<EOF* soft nofile 1048576
* hard nofile 1048576
* soft nproc 65535
* hard nproc 65535
EOF# 4. 设置 PAM limits 模块
if ! grep -q pam_limits.so /etc/pam.d/common-session; thenecho "session required pam_limits.so" >> /etc/pam.d/common-session
fi# 5. 修改默认 ulimit
cat > /etc/profile.d/ulimit.sh <<EOF
ulimit -n 1048576
ulimit -u 65535
EOF
chmod +x /etc/profile.d/ulimit.sh# 6. 优化完成提示
echo "系统参数优化完成,建议重启生效。"

2、安装docker

#!/bin/bashset -eecho "👉 添加 Docker 官方源(使用清华镜像加速)..."
sudo dnf -y install dnf-plugins-core
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo sed -i 's+https://download.docker.com+https://mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repoecho "👉 安装 Docker 组件..."
sudo dnf -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginecho "👉 配置 Docker 镜像加速与私有仓库..."
sudo mkdir -p /etc/docker
cat <<EOF | sudo tee /etc/docker/daemon.json
{"insecure-registries": ["10.90.101.1:5000"],"registry-mirrors": ["http://10.90.101.1:5000"]
}
EOFecho "👉 启动并设置开机启动 Docker..."
sudo systemctl daemon-reexec
sudo systemctl daemon-reload
sudo systemctl enable --now dockerecho "👉 测试 Docker 安装..."
sudo docker run --rm hello-worldecho "✅ Docker 安装与配置完成!"

3、创建容器网络

docker network create nginx-network

4、安装测试容器(可选)

注意测试后,删除此容器,以避免不必要的安全事件

docker run -d   --name acmeaudit  --network nginx-network  -p 8080:3000   public.ecr.aws/f4q1i2m2/acmeaudit:latest

访问8080 端口,输入’ or 1=1–,密码随便写,可以直接sql注入登陆
在这里插入图片描述
显示这里就说明成功了
在这里插入图片描述

三、安装nginx

1、拉取镜像

docker pull ghcr.io/openappsec/nginx-attachment:latest

2、创建映射目录

mkdir -p /opt/work/nginx-docker/{cert,conf.d,logs}

在这里插入图片描述

3、准备默认配置文件

cat > /opt/work/nginx-docker/conf.d/default.conf <<EOF
server {listen 80 default_server;server_name _; # 匹配所有域名location / {# 返回 403 错误,禁止 IP 地址访问return 403;}
}server {listen 443 ssl default_server;server_name _;ssl_certificate    /etc/nginx/cert/xxx.pem;ssl_certificate_key      /etc/nginx/cert/xxx.key;# 其他 SSL 配置location / {return 403;}
}
EOF

4、证书文件准备

可以使用企业证书或者使用免费证书:参考
放到/opt/work/nginx-docker/cert目录下
在这里插入图片描述

5、启动nginx容器

docker run --name open-appsec-nginx \
--network=nginx-network \
--ipc=host \
--restart=always \
-p 80:80 \
-p 443:443 \
-v /opt/work/nginx-docker/nginx.conf:/etc/nginx/nginx.conf \
-v /opt/work/nginx-docker/conf.d:/etc/nginx/conf.d \
-v /opt/work/nginx-docker/cert:/etc/nginx/cert \
-v /opt/work/nginx-docker/logs:/var/log/nginx \
-e TZ=Asia/Shanghai \
-d ghcr.io/openappsec/nginx-attachment:latest

6、创建加载配置脚本

cat > /opt/work/nginx-docker/nginx.sh <<'EOF'
#!/bin/bash
docker exec open-appsec-nginx nginx "$@"
EOF
chmod +x /opt/work/nginx-docker/nginx.sh
ln -s /opt/work/nginx-docker/nginx.sh /usr/local/bin/nginx-docker

在这里插入图片描述

四、安装openappsec-agent

1、拉取镜像

docker pull ghcr.io/openappsec/agent:latest

2、创建映射目录

mkdir -p /opt/work/openappsec/local_policy

3、创建默认配置文件

cat >/opt/work/openappsec/local_policy/local_policy.yaml <<'EOF'
policies:default:triggers:- appsec-default-log-triggermode: prevent-learnpractices:- webapp-default-practicecustom-response: appsec-default-web-user-responsespecific-rules: []practices:- name: webapp-default-practiceopenapi-schema-validation:configmap: []override-mode: prevent-learnsnort-signatures:configmap: []override-mode: prevent-learnweb-attacks:max-body-size-kb: 1000000max-header-size-bytes: 102400max-object-depth: 40max-url-size-bytes: 32768minimum-confidence: highoverride-mode: prevent-learnprotections:csrf-protection: inactiveerror-disclosure: inactivenon-valid-http-methods: falseopen-redirect: inactiveanti-bot:injected-URIs: []validated-URIs: []override-mode: prevent-learnlog-triggers:- name: appsec-default-log-triggeraccess-control-logging:allow-events: falsedrop-events: trueadditional-suspicious-events-logging:enabled: trueminimum-severity: highresponse-body: falseappsec-logging:all-web-requests: falsedetect-events: trueprevent-events: trueextended-logging:http-headers: falserequest-body: falseurl-path: falseurl-query: falselog-destination:cloud: truestdout:format: jsoncustom-responses:- name: appsec-default-web-user-responsemode: response-code-onlyhttp-response-code: 403
EOF

4、启动openappsec-agent 容器(本地管理)

注意:如果不适用web ui 集中管理 ,这里使用standalone 模式就可以了

docker run --name=open-appsec-agent \
--ipc=host \
--restart=always \
-e registered_server='NGINX Server' \
-v /opt/work/openappsec/local_policy:/ext/appsec \
-it -d ghcr.io/openappsec/agent:latest /cp-nano-agent --standalone
docker exec -it open-appsec-agent open-appsec-ctl --status

在这里插入图片描述

5、常用命令

docker exec -it open-appsec-agent open-appsec-ctl --status
docker exec -it open-appsec-agent open-appsec-ctl --list-policies
docker exec -it open-appsec-agent open-appsec-ctl --view-policy
docker exec -it open-apps

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

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

相关文章

自动驾驶中安全相关机器学习功能的可靠性定义方法

摘要当前标准无法涵盖高自动化驾驶中基于机器学习功能的安全需求。由于神经网络的不透明性&#xff0c;一些自动驾驶功能无法按照 V 模型进行开发。这些功能需要对标准进行扩展。本文聚焦这一空白&#xff0c;为这类功能定义了功能可靠性&#xff0c;以帮助未来的标准控制基于机…

css实现圆角+边框渐变+背景半透明

ui小姐姐经常搞一些花里胡哨的东西&#xff0c;圆角边框渐变背景半透明&#xff0c;虽然每个都可以弄&#xff0c;但是合在一起真的不好弄&#xff0c;主要是因为通过border–image设置的边框渐变&#xff0c;无法使用圆角&#xff0c;下面是自己搜索整理的一些可以的方案。 方…

tree组件(几种不同分叉树Vue3)

效果图&#xff1a; 基础树组件&#xff08;本人博客里面有&#xff09; https://blog.csdn.net/xfy991127/article/details/140346861?spm1001.2014.3001.5501 下面是工作需求改造后 父组件 <template><div class"go-JJTree" id"tree-scroll&quo…

百度智能云x中科大脑:「城市智能体」如何让城市更会思考

近日&#xff0c;2025中关村论坛系列活动——中关村人工智能与未来城市论坛在中关村国家自主创新示范区展示中心举办。论坛上&#xff0c;发布了应用范式创新升级成果、智能体产品、可信数据空间成果等。 中科大脑联合百度智能云等伙伴共同打造并发布21个智能体产品&#xff0c…

在职老D渗透日记day16:sqli-labs靶场通关(第24关)二次注入 sqlmap自动注入没跑出来。。。

5.24.2.sqlmap自动注入第一个&#xff1a;登录页面&#xff08;1&#xff09;pb抓取http头POST /sqli-labs/Less-24/login.php HTTP/1.1 Host: 192.168.10.106 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:141.0) Gecko/20100101 Firefox/141.0 Accept: text/ht…

Fanuc机器人EtherCAT通讯配置详解

1、EtherCAT简介EtherCAT&#xff0c;这一基于以太网的现场总线系统&#xff0c;以其开放架构和高速性能著称。CAT代表的是控制自动化技术&#xff08;Control Automation Technology&#xff09;的缩写&#xff0c;彰显了其在工业自动化领域的核心地位。作为确定性的工业以太网…

超酷炫的Three.js示例

今天写一个超级酷炫的Three.js示例&#xff0c;以下是文件源代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-sca…

从零开始大模型之实现GPT模型

从零开始大模型之从头实现GPT模型1.大语言模型整体架构2 大语言的Transformer模块2.1 层归一化2.2 GELU激活函数2.3 前馈神经网络2.4 快捷连接3 附录3.1 anacondapython环境搭建1.数据预处理&#xff1a;原始数据进行词元化&#xff0c;以及通过&#xff0c;依据词汇表生成ID编…

[1Prompt1Story] 滑动窗口机制 | 图像生成管线 | VAE变分自编码器 | UNet去噪神经网络

链接&#xff1a;https://github.com/byliutao/1Prompt1Story 这个项目是一个基于单个提示生成一致文本到图像的模型。它在ICLR 2025会议上获得了聚焦论文的地位。该项目提供了生成一致图像的代码、Gradio演示代码以及基准测试代码。 主要功能点: 使用单个提示生成一致的文本…

【GitHub开源AI精选】Sitcom-Crafter:北航联合港中文等高校打造的剧情驱动3D动作生成系统

系列篇章&#x1f4a5; No.文章1【GitHub开源AI精选】LLM 驱动的影视解说工具&#xff1a;Narrato AI 一站式高效创作实践2【GitHub开源AI精选】德国比勒费尔德大学TryOffDiff——高保真服装重建的虚拟试穿技术新突破3【GitHub开源AI精选】哈工大&#xff08;深圳&#xff09;…

智和信通全栈式运维平台落地深圳某学院,赋能运维管理提质提效

深圳某学院校园内信息化设备众多&#xff0c;网络环境复杂&#xff0c;使得网络管理工作面临着诸多难题与挑战。为保障校园网络能够稳定、高效地运行&#xff0c;学院亟须构建一套集高效、智能、协同于一体的网络运维平台。 对运维平台的期望包括&#xff1a; 实现校园内教学…

开疆智能Ethernet转ModbusTCP网关连接测联无纸记录仪配置案例

本案例是通过Ethernet转ModbusTCP网关将记录仪数据传送到欧姆龙PLC&#xff0c;具体操作过程如下。欧姆龙PLC配置首先打开主站组态软件“Sysmac Studio”并新建项目。设置PLC的IP地址点击工具-Ethernet/IP连接设置&#xff0c;在弹出的选个框内选择显示EDS库添加网关eds文件开始…

Eureka故障处理大汇总

#作者&#xff1a;Unstopabler 文章目录1. Eureka 服务启动故障处理1.1 端口占用导致启动失败1.2 配置文件错误导致启动失败1.3 依赖冲突与类加载错误2. 服务注册与发现异常2.1 服务无法注册到 Eureka2.2 Eureka 控制台看不到注册的服务2.3 服务注册后立即被剔除3. Eureka 集群…

基于Transformer的机器翻译——模型篇

1.模型结构 本案例整体采用transformer论文中提出的结构&#xff0c;部分设置做了调整。transformer网络结构介绍可参考博客——入门级别的Transformer模型介绍&#xff0c;这里着重介绍其代码实现。 模型的整体结构&#xff0c;包括词嵌入层&#xff0c;位置编码&#xff0c;…

上位机TCP/IP通信协议层常见问题汇总

以太网 TCP 通信是上位机开发中常用的通信方式&#xff0c;西门子 S7 通信、三菱 MC 通信以及 MQTT、OPC UA、Modbus TCP 等都是其典型应用。为帮助大家更好地理解 TCP 通信&#xff0c;我整理了一套常见问题汇总。一、OSI参考模型与TCP/IP参考模型基于TCP/IP的参考模型将协议分…

搭建ktg-mes

项目地址 该安装事项&#xff0c;基于当前最新版 2025年8月16日 之前的版本 下载地址&#xff1a; 后端JAVA 前端VUE 后端安装&#xff1a; 还原数据表 路径&#xff1a;根目录/sql/ry_20210908.sql、根目录/sql/quartz.sql、根目录/doc/实施文档/ktgmes-202505180846.sql.g…

uniapp纯前端绘制商品分享图

效果如图// useMpCustomShareImage.ts interface MpCustomShareImageData {canvasId: stringprice: stringlinePrice: stringgoodsSpecFirmName: stringimage: string }const CANVAS_WIDTH 500 const CANVAS_HEIGHT 400 const BG_IMAGE https://public-scjuchuang.oss-cn-ch…

醋酸镧:看不见的科技助力

虽然我们每天都在使用各种科技产品&#xff0c;但有些关键的化学物质却鲜为人知。醋酸镧&#xff0c;就是这样一种默默为科技进步贡献力量的“幕后英雄”。它不仅是稀土元素镧的一种化合物&#xff0c;还在许多高科技领域中发挥着重要作用。今天&#xff0c;让我们一起来了解这…

苍穹外卖日记

day 1 windows系统启动nginx报错: The system cannot find the path specified 在启动nginx的时候报错&#xff1a; /temp/client_body_temp" failed (3: The system cannot find the path specified) 解决办法&#xff1a; 1.检查nginx的目录是否存在中文 &#xff0c;路…

楼宇自控系统赋能建筑全维度管理,实现环境、安全与能耗全面监管

随着城市化进程加速和绿色建筑理念普及&#xff0c;现代楼宇管理正经历从粗放式运营向精细化管控的转型。楼宇自控系统&#xff08;BAS&#xff09;作为建筑智能化的核心载体&#xff0c;通过物联网、大数据和人工智能技术的深度融合&#xff0c;正在重构建筑管理的全维度框架&…