没有selinux的linux使用自主访问控制,即自己给自己权限,如果某个具有root权限的程序被攻破,那么攻击者就可以为所欲为
有selinux的linux引入了强制访问控制,即使一个程序以root权限运行,它的行为也必须也必须遵守selinux策略规则,他只能访问策略明确允许他访问的文件、端口和资源
selinux是一个极其强大的安全层,虽然在初期可能因为其复杂性给管理员带来调整,但理解其概念和工作原理后,能极大提升系统的整体安全性,生产环境推荐在充分测试后,使其保持在enforcing模式
selinux介绍1234567891011121314151617181920212223...
firewalld 红帽防火墙firewalld是 红帽从rhel7开始提供的一种防火墙工具,是一种iptables的前端,但是层次更高,支持命令行或者图形化两种管理方式
从一开始firewalld使用iptables作为后端,后面将默认后端切换为了nftables
firewalld使用zone(区域)概念,和华为的防火墙差不多,相当于策略模板,不同的场景可以选择不同的策略模板,以实现策略之间的快速切换:比如一个网卡eth0绑定了A区域,A区域绑定了eth0 1 2网卡
注:如果想要使用iptables-nft,需要停止防火墙服务,否则可能导致防火墙规则冲突
firewall-cmd...
arptables介绍arptables是linux中用于管理arp包过滤规则的工具,也基于netfilter框架
arp协议本身非常简单,缺乏安全验证机制,因此容易遭受攻击
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647# arptables应用场景1.防御arp欺骗攻击者伪造arp应答包,导致受害者的arp缓存被污染,将本应发送给合法主机的流量发送给了攻击者arptables可以桂枝规则,只允许来自可信MAC地址的arp应答包2.防御arp泛洪攻击者发送大量伪造...
iptables防火墙语法表用以对功能进行分组,最常用的有:
filter表 默认表,负责过滤数据包(常用
nat表 负责网络地址转换
mangle表 用以修改数据包头(不常用
raw表 决定是否对数据包进行状态跟踪(不常用
security表 最不常用的表,与selinux相关,用于MAC(强制访问控制)网络规则
这几张表的处理顺序是:raw→mangle→nat→filter→security
链
规则的有序集合,数据包在经过netfilter时,会进入对应的链进行检查
input 处理入栈请求的包
output 处理出栈包
forward 处理转发数据包,实现不同网段间通信
...
Netfilter介绍Linux内核防火墙基于netfilter框架实现,通过在内核网络协议栈中嵌入钩子点(链),来允许内核模块在数据包处理的关键阶段对其进行检查、修改、拦截或转发
链
NF_IP_PRE_ROUTING 数据包进入网络层后,路由决策前DNAT
NF_IP_LOCAL_IN 数据包被路由到本地主机
NF_IP_FORWARD 数据包要转发到其他主机
NF_IP_LOCAL_OUT 本地主机生成的数据包SNAT
NF_IP_POST_ROUTING 路由后,数据包即将离开本机SNAT
表
为了阻止复杂的过滤逻辑,netfilter定义了不同表:
filter表:用于数...
Prometheus-client模块自定义metrics指标
特征维度
SDK(直接暴露)
Exporter(转换代理)
Pushgateway(推送中转)
数据流向
拉取 (Pull)
拉取 (Pull)
推送 → 暂存 → 拉取 (Push → Pull)
侵入性
高(需改代码)
无(独立进程)
低(调用推送API即可)
适用对象
可控的、自研的服务
不可控的、第三方的服务
生命周期短、无法被拉取的任务
模型契合度
完全契合 Prometheus 拉模型
完美契合,是拉模型的延伸
妥协方案,破坏了部分语义(如实例状态)
123456789101112131...
环境准备123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354# 使用kind部署k8s集群,版本v1.31,有代理curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.31.0/kind-linux-amd64chmod +x ./kindsudo mv ./kind /usr/local/bin/kindcat > kind-config.yaml <<EOFkind: Cluster...
在大规模监控场景下如果只用一个Prometheus server采集数据,可能跨数据中心,延迟大,配置复杂,同时单个Prometheus压力大,容易性能瓶颈
分布式采集:每个数据中心独立 Prometheus 负责本地采集
集中聚合:中心 Prometheus 通过 /federate 拉取部分指标
降低压力:避免单个 Prometheus 采集全网数据。
标签保真:honor_labels: true 保留原始标签,方便分析来源
灵活选择:match[] 决定上游拉哪些数据,不浪费带宽。
部署下级Prometheus123456789101112131415161718...
概述之前学习普罗米修斯的时候还是个初学者,现在工作了几年,因为接触了很多其他领域的知识,对Prometheus有更深的理解了,
所以我就以现在的角度重新整理一遍Prometheus相关的知识点
exporter官网:Exporters and integrations | Prometheus
特点数据特点
数据 = 指标(metric)+标签(labels)+时间序列(time series)
指标:要监控的具体项,比如CPU用户态使用率、CPU等待时间、可用内存等 标签:要为指标附加的维度信息,用来区分不同业务、环境等,同k8s的labels 时间序列:指标随时间变化的数值...
本文基于上一篇《Zabbix7使用docker-compose部署》
集成deepseek
准备zabbix如果需要执行一个脚本,而我们的zabbix-server使用的是docker-compose的方式部署的,所以就需要在容器中/usr/lib/zabbix/alertscripts/目录中存放脚本文件。所以我们可以在docker-compose文件中修改,让本地某一目录挂载到脚本目录中
那么先在本地创建一个目录用以存放脚本文件的123456mkdir -p /root/zabbix-docker-compose/zabbix-scr...