linux的通用四道权限:1.防火墙 - 网络层和传输层的访问控制2.服务权限 - 应用层面的访问控制3.selinux - 强制访问控制4.系统权限 - 文件的基础权限的访问控制
1.防火墙控制进出系统的网络流量工作在网络层和传输层iptables/nftablesfirewalld(管理工具)
2.服务权限控制谁可以访问运行在本机的具体应用程序工作在应用层如ssh 有白名单、黑名单等如数据库 通过GRANT语句定义用户和来源主机如web服务器 基于IP、用户认证等进行访问控制
3.强制访问控制为核心进程和文件同第二套更严格的标签化权限体系工作在内核层,在DAC基础上,实施M...
PAM是Sun公司在1995年开发的,目前是linux/unix的核心认证框架,全称为可插拔认证模块,一般是开发比较关心
PAM已经提前整合了各类认证库,比如本地密码库,ssh密钥库。核心目的是将认证功能和应用程序解耦,无需内置复杂的认证逻辑,只需要调用PAM接口就可以实现多样化的身份验证需求
12345678# pam认证原理应用程序(sshd) → PAM核心库(libpam.so) → PAM配置文件/etc/pam.d/应用名 → PAM模块(pam_unix.so)工作层次:应用程序层:发起认证请求,如用户登录、sudo,执行PAM提供的标准apiPAM核心库层:解析...
没有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...