注意:
开源不等于便宜,需要较多人工,需要维护人员有代码能力,解决问题的能力,实际有了AI大模型之后,降低了维护难度和代码能力要求
开源没有国内产品安全认证,过不了等保这类认证。
搭建开源安全系统需要硬件资源,需要服务器,并且服务器配置不能太低
本文主要介绍一些长期支持的防护类的开源系统/工具
开源防护架构
先来个拓扑
开源(免费)网络安全产品清单
设备名称 | 开源工具 | 工具介绍 | 官网 |
---|---|---|---|
防火墙 | pfSense | pfSense 是一款基于 FreeBSD 的开源防火墙和路由器软件,专为网络安全管理设计,具备企业级功能且免费使用。 | https://www.pfsense.org/ |
防火墙 | opnsense | OPNsense 是一款基于 FreeBSD 的开源防火墙和路由平台,专为网络安全设计,提供企业级功能且免费使用。 | https://opnsense.org/ |
入侵检测/NDR | SecurityOnion | Security Onion 是一个免费开源的平台,主要用于三大核心功能:威胁狩猎(threat hunting)、企业安全监控(enterprise security monitoring)和日志管理(log management)。 集成工具:包含 osquery(端点查询)、CyberChef(数据处理)、Elasticsearch(日志存储)、Logstash(日志处理)、Kibana(可视化)、Suricata(入侵检测)和 Zeek(网络流量分析)等主流安全工具,形成一站式安全监控解决方案。 | https://github.com/Security-Onion-Solutions/securityonion |
WAF | 雷池WAF | 长亭的WAF,免费版本的 | https://waf-ce.chaitin.cn/ https://github.com/chaitin/SafeLine |
SOAR | DFIR-IRIS | 安全事件处理和应急响应的平台 | https://www.dfir-iris.org/ |
XDR/SIEM | Wazuh | Wazuh 是一个免费、开源的企业级安全监控解决方案,用于威胁检测、完整性监控、事件响应和合规性管理。它由部署在受监控系统的端点安全代理和管理服务器组成,服务器负责收集并分析代理数据,并与 Elastic Stack 集成实现数据可视化和告警分析。 | https://wazuh.com/ |
终端管理/补丁管理 | ction1(200个免费节点) | Third-Party Patching(第三方补丁管理): Cross-OS Patching(跨系统补丁管理):支持对 Windows 和 macOS 系统的工作站及服务器进行统一、一致的更新操作。 Vulnerability Management(漏洞管理):核心目标是预防安全漏洞和勒索软件攻击,可实时检测操作系统和应用程序中的漏洞。集成了内置的漏洞修复功能,实现 “检测 - 修复” 一体化,为企业提供一站式的漏洞防护解决方案。 | https://www.action1.com/ |
IAM | keycloak | 面向现代应用与服务的开源解决方案,聚焦 “身份与访问管理”(Identity and Access Management,即 IAM)。 解决 “谁能访问”(身份认证)和 “能访问什么”(权限控制)的问题,帮助现代应用安全管理用户身份、验证用户合法性,并管控其对系统资源的访问权限。 | https://github.com/keycloak/keycloak |
IAM | FreeIPA | FreeIPA 是一款面向 Linux 环境的开源身份与访问管理工具,通过整合多种技术,实现集中化的身份管控、策略制定和跨系统信任,适用于企业级的安全管理场景。 | https://www.freeipa.org/ |
日志分析/取证 | Velociraptor | 一款高级的数字取证与事件响应工具,其核心功能是增强用户对终端(如计算机、服务器等设备)的可见性,帮助用户更清晰地掌握终端的状态和活动情况,为后续的取证调查和安全事件应对提供基础。 | https://github.com/Velocidex/velociraptor |
密码管理 | Vaultwarden | 一个用于本地搭建 Bitwarden 服务器的第三方 Docker 项目。仅在部署的时候使用 Vaultwarden 镜像,桌面端、移动端、浏览器扩展等客户端均使用官方 Bitwarden 客户端。 | https://rs.ppgg.in/ |
开源威胁情报 | OpenCTI | OpenCTI(Open Cyber Threat Intelligence Platform)是一个开源威胁情报管理平台,专为收集、分析、存储和共享网络威胁情报(CTI)设计。它基于 STIX 2.1标准构建,支持以结构化方式描述威胁行为体、攻击模式、恶意软件等实体及其关联关系。 | https://github.com/OpenCTI-Platform/opencti |
开源威胁情报 | MISP | MISP(Malware Information Sharing Platform and Threat Sharing)是一款开源威胁情报共享平台,专为收集、存储、分发和共享网络安全威胁指标(如恶意软件信息、攻击事件数据)而设计。 | https://github.com/MISP/MISP |
堡垒机 | JumpServer | 堡垒机 | https://jumpserver.org/ |
漏洞扫描器 | OpenVAS | OpenVAS 是一款功能齐全的漏洞扫描器。其功能包括无认证和有认证测试、各种高级和低级互联网及工业协议、针对大规模扫描的性能优化,以及一种强大的内部编程语言,可用于实施任何类型的漏洞测试。 | https://www.openvas.org/ |
数据库审计 | Archery | Archery是一个基于Python Flask开发的数据库管理平台,它支持多种数据库(如MySQL、PostgreSQL、MariaDB、Redis等),提供了包括数据库查询、管理、权限控制、SQL审核、数据备份与恢复等功能在内的全方位数据库管理解决方案。其设计初衷是为了简化数据库管理流程,提高运维效率,同时保证数据的安全性和可靠性。 | https://github.com/hhyo/Archery |
备份恢复 | bacula | Bacula是一个强大的客户机/服务器备份系统,支持跨平台,包括Linux、Windows、macOS等。 它提供全面的备份、恢复、验证和归档功能,并允许管理员管理网络中的计算机数据。 Bacula采用客户端-服务器架构,包括Director、File、Storage和Catalog服务,分别负责任务管理、数据备份、存储管理和数据目录。 | https://www.bacula.org/ |
配置建议
开源安全工具的硬件资源需求参考表,综合官方文档及生产环境实践建议:
开源安全工具硬件资源需求参考表
设备类型 | 开源工具 | 测试/小型环境 | 生产/中型环境 | 关键依赖与说明 |
---|---|---|---|---|
防火墙 | pfSense | 2核 CPU / 2GB RAM / 10GB SSD | 4核 CPU / 8GB RAM / 128GB SSD | 依赖:多核性能、SSD存储。 说明:规则数量、VPN并发量、带宽(建议1Gbps+)显著影响资源需求。 |
防火墙 | OPNsense | 2核 CPU / 4GB RAM / 20GB SSD | 4核 CPU / 8GB RAM / 128GB SSD | 依赖:SSD存储、多核处理。 说明:IDPS/代理功能开启时需增加50%内存和CPU。 |
入侵检测/NDR | Security Onion | 4核 CPU / 16GB RAM / 500GB SSD | 16核 CPU / 64GB RAM / 2TB SSD+ | 依赖:高性能存储(SSD/NVMe)、多核CPU。 说明:资源需求随流量(EPS)指数级增长,建议分布式部署。 |
WAF | 雷池WAF | 2核 CPU / 4GB RAM / 20GB SSD | 8核 CPU / 16GB RAM / 100GB SSD | 依赖:网络吞吐能力(建议10G网卡)。 说明:CPU性能直接影响HTTP请求处理能力,高并发需横向扩展。 |
SOAR | DFIR-IRIS | 4核 CPU / 8GB RAM / 100GB SSD | 8核 CPU / 32GB RAM / 500GB SSD | 依赖:Redis缓存、数据库(PostgreSQL)。 说明:任务并发量和插件复杂度决定资源需求。 |
XDR/SIEM | Wazuh | 4核 CPU / 8GB RAM / 100GB SSD | 16核 CPU / 32GB RAM / 1TB SSD(索引节点) | 依赖:Elasticsearch集群、SSD存储。 说明:日志量(EPS)是核心指标,生产环境需独立Elasticsearch集群。 |
终端管理 | Action1 | 2核 CPU / 4GB RAM / 40GB SSD | 4核 CPU / 8GB RAM / 100GB SSD | 依赖:数据库(SQLite/PostgreSQL)。 说明:资源按托管终端数线性增长,200节点内适用免费版。 |
IAM | Keycloak | 2核 CPU / 4GB RAM / 40GB SSD | 4核 CPU / 16GB RAM / 100GB SSD | 依赖:数据库(PostgreSQL/MySQL)、JVM堆内存。 说明:高并发认证需增加CPU和JVM堆(≥8GB)。 |
IAM | FreeIPA | 2核 CPU / 4GB RAM / 40GB SSD | 4核 CPU / 8GB RAM / 100GB SSD | 依赖:SSD存储、DNS服务。 说明:用户量>1,000时需增加内存至16GB+。 |
日志取证 | Velociraptor | 4核 CPU / 8GB RAM / 100GB SSD | 8核 CPU / 32GB RAM / 500GB SSD | 依赖:高性能存储(采集端IOPS)。 说明:大规模端点取证需分布式部署,服务器端依赖大内存缓存数据。 |
密码管理 | Vaultwarden | 1核 CPU / 2GB RAM / 20GB SSD | 2核 CPU / 4GB RAM / 100GB SSD | 依赖:数据库(SQLite/PostgreSQL)。 说明:用户量>100建议用PostgreSQL并增加内存至8GB。 |
威胁情报平台 | OpenCTI | 4核 CPU / 16GB RAM / 100GB SSD | 8核 CPU / 32GB RAM / 500GB SSD | 依赖:Elasticsearch、Redis、MinIO/S3。 说明:数据量>1千万条需独立Elasticsearch集群。 |
威胁情报平台 | MISP | 4核 CPU / 8GB RAM / 100GB SSD | 8核 CPU / 32GB RAM / 1TB SSD | 依赖:MySQL/MariaDB、Redis。 说明:事件(Event)数量>10万时需优化数据库配置及内存分配。 |
堡垒机 | JumpServer | 4核 CPU / 8GB RAM / 100GB SSD | 8核 CPU / 16GB RAM / 200GB SSD | 依赖:Redis、数据库(MySQL)。 说明:并发会话数决定资源需求,每100会话需增加1核CPU+2GB RAM。 |
漏洞扫描器 | OpenVAS (GVM) | 4核 CPU / 8GB RAM / 100GB SSD | 16核 CPU / 32GB RAM / 500GB SSD | 依赖:PostgreSQL、Redis。 说明:扫描任务并发量及插件数量(NVTs)显著影响CPU和内存占用。 |
数据库审计 | Archery | 2核 CPU / 4GB RAM / 100GB SSD | 4核 CPU / 16GB RAM / 500GB SSD | 依赖:MySQL/PostgreSQL、Redis。 说明:审计条目量>1亿时需分库分表或启用归档。 |
备份恢复 | Bacula | 2核 CPU / 4GB RAM / 存储按需 | 8核 CPU / 16GB RAM / 存储按需 | 依赖:大容量存储(HDD阵列)、高速网络。 说明:Director需SSD加速元数据库,存储空间按备份策略预留3-5倍。 |
关键补充说明
存储类型:
SSD必需:所有工具的生产环境均需SSD/NVMe,尤其是数据库、索引、缓存服务(如Elasticsearch, Redis, PostgreSQL)。
容量规划:日志/取证类工具(Wazuh, Velociraptor)需预留3-5倍原始数据的存储空间。
网络要求:
防火墙/WAF/NDR工具需万兆网卡(10Gbps+)以处理高吞吐流量。
跨节点工具(如Security Onion集群)需低延迟网络(≤1ms)。
生产环境建议:
高可用部署:关键服务(IAM、数据库审计、SIEM)应配置集群(如PostgreSQL流复制、Elasticsearch分片)。
独立部署:资源密集型工具(Elasticsearch, Redis, 数据库)需与主服务分离部署。
性能监控指标:
CPU:持续>70%需扩容。
内存:Swap使用>0%或可用内存<20%需扩容。
磁盘IO:读写延迟>10ms需优化存储或升级SSD。
跟等保三级要求的对应关系
依据《网络安全等级保护测评高风险判定指引》三级标准,结合开源工具能力,详细分析如下:
设备类型 | 开源工具 | 满足的等保要求 | 对应高风险项要求 | 优化建议 |
---|---|---|---|---|
防火墙 | pfSense/OPNsense | 8.1.4.1 边界访问控制8.1.4.2 入侵防范 | 5.3.3 抗DDoS能力不足 | 启用SuricataDDoS防护模式 部署pfBlockerNG实现GeoIP过滤 |
入侵检测/NDR | Security Onion | 8.1.4.2 安全事件监测8.1.4.5 攻击行为识别 | 6.2.3 自动阻断缺失 | 联动防火墙API自动封禁IP 集成MISP威胁情报实时更新 |
WAF | 雷池WAF | 8.1.4.3 Web应用防护8.1.4.9 SQL注入/XSS拦截 | 6.4.1.9 API防护缺失 | |
SOAR | DFIR-IRIS | 8.1.4.6 应急响应自动化 | 6.4.3.6 勒索响应剧本缺失 | 开发剧本:隔离主机→阻断C2→备份验证 集成TheHive联动响应 |
XDR/SIEM | Wazuh | 8.1.4.8 日志集中审计8.1.4.5 事件关联分析 | 6.9.2 UEBA缺失8.1.4.8 日志防篡改不足 | 集成Elastic UBA模块 启用AIDE文件完整性监控 |
终端管理 | Action1 | 8.1.3.4 终端准入控制8.1.4.4 补丁管理 | 6.4.1.7 EDR深度检测缺失 | 联动OSSEC监控恶意行为 部署Rkhunter检测rootkit |
IAM | Keycloak/FreeIPA | 8.1.3.1 身份鉴别8.1.3.3 权限分离 | 6.4.2.5 MFA覆盖率不足 | 强制管理员启用TOTP认证 高危操作增加WebAuthn生物验证 |
日志取证 | Velociraptor | 8.1.4.8 取证数据留存(≥6月) | 6.8.3 自动化取证缺失 | 集成TheHive响应闭环 日志存储加密(LUKS) |
密码管理 | Vaultwarden | 8.1.3.7 密码存储加密 | 6.4.3.10 密钥轮换缺失 | 编写自动轮换脚本(cron) 集成SoftHSM硬件模拟 |
威胁情报平台 | OpenCTI/MISP | 8.1.4.5 威胁情报应用 | 6.5.2 内部威胁生成弱 | 开发Sigma规则转换内部日志 与Wazuh联动自动阻断IoC |
堡垒机 | JumpServer | 8.1.4.7 运维审计8.1.4.7 会话录像 | 6.4.3.8 高危命令阻断缺失 | 配置rm -rf 等命令双人复核集成OpenBastion实时拦截 |
漏洞扫描器 | OpenVAS (GVM) | 8.1.4.4 漏洞定期扫描 | 6.3.4 0day检测弱 | 联动Wazuh监控暴露面 集成Trivy扫描容器漏洞 |
数据库审计 | Archery | 8.1.4.8 数据库操作记录 | 6.4.2.9 敏感数据监控缺失6.4.1.9 SQL注入阻断缺失 | 部署Apache ShardingSphere防火墙 启用pgAudit列级审计(PostgreSQL) |
备份恢复 | Bacula | 8.1.5.1 数据备份功能 | 8.1.5.2 异地验证缺失6.1.6 RTO/RPO无保障 | 采用Restic加密异地备份 每季度恢复演练并记录指标 |
集中日志
ELK + AI + Sigma的方案
核心组件实现
Sigma规则转换
ELK集成层
在Kibana中导入转换后的规则:
curl -X POST "kibana:5601/api/detection_engine/rules/_import" -H "kbn-xsrf: true" --form [email protected]
实现功能:
AI分析引擎
自动化运维闭环
响应机制:
配合opnsense防护墙做自动化拦截,https://docs.opnsense.org/development/api.html
防火墙规则管理(Python API调用),实现自动拦截,实际代码可以增加拦截周期
import requests
import json
def block_ip(ip_address):
"""阻断指定IP地址的流量[4]"""
api_url = "https://opnsense/api/firewall/filter/addRule"
headers = {"Content-Type": "application/json"}
payload = {
"rule": {
"enabled": "1",
"action": "block",
"interface": "wan",
"protocol": "any",
"source": ip_address,
"destination": "any",
"description": "Auto-blocked by AI engine"
}
}
response = requests.post(
api_url,
auth=("api_key", "api_secret"),
headers=headers,
data=json.dumps(payload),
verify=False
)
if response.status_code == 200:
apply_rules() # 应用规则变更
return True
return False
def apply_rules():
"""应用防火墙规则变更[1]"""
requests.post(
"https://opnsense/api/firewall/filter/apply",
auth=("api_key", "api_secret")
)
DNS重定向(自动化配置),跟威胁情报配合,拦截恶意域名请求
def redirect_dns_to_local():
"""重定向所有DNS请求到本地解析器[4]"""
payload = {
"rule": {
"enabled": "1",
"protocol": "tcp/udp",
"destination_port": "53",
"target": "127.0.0.1",
"target_port": "53",
"description": "DNS redirect to Unbound"
}
}
requests.post(
"https://opnsense/api/firewall/nat/portForward",
auth=("api_key", "api_secret"),
json=payload
)
说明:
API认证:需先在OPNsense Web界面生成API密钥(系统 > 设置 > API)
持久化配置:所有规则变更后需调用
apply_rules()
使配置生效1安全增强:建议使用VPN隧道或IP白名单保护API访问
错误处理:实际部署需添加异常处理(如连接超时、认证失败等)
其他
主动扫描的任务可以部署红队工具链,执行自动化扫描。持续的监控和处理漏洞。
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf
客服小蜜蜂(微信:freebee1024)