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
英文地址,請注明出處:http://en.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;正在重構建筑管理的全維度框架&…