济南网站开发招聘,二级域名前缀大全,自助建站系统加盟,哈尔滨网络公司案例前言
以前就知道如果Linux服务以非root的方式运行会增强系统的安全性#xff0c;但如何去实践呢#xff1f;
Linux安全基础
安全设计原则
最小安全原则 一般应尽可能缩小权限的授予范围 技术手段
用户隔离rwx读写执行权限capability特权权限PAM体系pam_cap模块ACL等
简…前言
以前就知道如果Linux服务以非root的方式运行会增强系统的安全性但如何去实践呢
Linux安全基础
安全设计原则
最小安全原则 一般应尽可能缩小权限的授予范围 技术手段
用户隔离rwx读写执行权限capability特权权限PAM体系pam_cap模块ACL等
简单非root用户运行方案
一般的应用用非root用户做隔离对于文件仅所有者拥有读写、执行、权限同组内和其它组的用户可以根据场景设定合理的权限就可以完成原则就是最小安全原则不过多授予权限
涉及特权的的方案
粗浅介绍
对于某些需要添加和修改系统的IP和创建RAW套接字的应用那么在rwx和用户隔离的基础上需要通过setcap操作进行特权授权但整体上玄机并不多。
可以看到rwx为整个安全控制的基础与capability特权权限形成权限检查链条某一环节的卡壳就会可以造成服务不可用。
简单场景我们依然将这些需要特权的服务部署在以用户隔离的目录下并设定合理的rwx权限然后以root用户身份通过setcap操作授予特权用户目录下某(些)启动程序获得特权。
即使这些用户具有一些特权但是由于是非root用户对于其它用户的文件资源并不能偷窃这也实现了一定程度的安全性。
特权集介绍
这个概念纠缠的原因就在于实际上区分进程特权集和文件特权集特别在可继承特权集的设定上完全是南辕北辙。
进程可继承特权集是南向的面向下游进程树传播文件可继承特权集是北向会与上游进程的南向特权集进行相与判断。
进程/线程特权集
CapInh Inheritable capabilities 决定在进程树下如何进行特权继承注意此处需要区分是否capabilities aware后续进程启动二进制文件是否主动进行了setcap授权 CapPrm Permitted capabilities 允许的特权集 CapEff Effective capabilities 当前特权集 CapBnd Bounding set 系统可用特权集 CapAmb Ambient capabilities set 环境特权集并没有通过setcap授权的连带程序如何自动获得特权的机制 文件特权集
e 可以生效的特权集 p 允许的特权集 i 决定是否从上游继承某些权限 对于文件通过setcap能够借助root用户授予特权属性又可以看作Linux一切都可以看做文件的深入设计
优先级最高
相对于Ambient capabilities set的自动传播如果某文件特殊设定了特权集则以明确设定的为准见特权生效算法介绍
最佳实践
在服务中存在某个根启动程序从此启动程序可以创建出一颗进程树出来但仅需对此根启动程序在非root用户运行时通过setcap文件特权集进行授予权限其它涉及的程序并不进行主动设定,通过Inheritable capabilities和Ambient capabilities set进行进程树的特权权限的传递、传播。 与docker容器特权传递类似 弱点
相比较于对每个设计文件进行setcap授权通过Inheritable capabilities和Ambient capabilities set进行传播特权的方式相当于粗放管理但是部署会比较简便。
在恶意攻击的i情况下攻破这个进程树的某一个进程就可以获取到比较多的特权。
PAM的孱弱
通过pam_cap模块PAM aware程序例如su、sudo程序见/etc/pam.d/下对应的配置启动后的进程自动获得在/etc/security/capability.conf中根据用户配置/可继承权限Inheritable capabilities。
但是因为pam_cap模块版本的限制并不能设置Ambient capabilities set对于未经setcap授权二进制文件所启动的进程并不能形成很好的权限传递和传播 在libcap-2.58版本支持了Ambient capabilities set的设置 pam_cap失效的一种原因
按照man中的介绍在/etc/security/capability.conf中配置auth optional pam_cap.so并不能生效的原因是因为配置在PAM鉴权栈中如果遭遇requisite、sufficient很早就提前返回了并不能将配置生效
systemd.service机制
AmbientCapabilities 配置字段可以考虑 参考链接
整体介绍比较清楚特权生效算法介绍补充理解man pam_capman pam confman service.service