了解更多银河麒麟操作系统全新产品,请点击访问
麒麟软件产品专区:https://product.kylinos.cn
开发者专区:https://developer.kylinos.cn
文档中心:https://documentkylinos.cn
服务器环境以及配置
【机型】物理机或虚机
【内核版本】
4.19.90-23.8.v2101.ky10.x86_64
【OS镜像版本】
银河麒麟高级服务器操作系统-Kylin Linux Advanced Server
release V10 (SP1) /(Tercel)-x86_64-Build20/20210518
现象描述
发现银河麒麟高级服务器操作系统V10 sp2和V10 sp3服务器系统版本设置如下,安全基线操作可正常生效,命令如下:
vim /etc/pam.d/su
auth sufficient pam_rootok.so
auth required pam_wheel.so group=wheel
但是在银河麒麟高级服务器操作系统V10 sp1-0518系统版本上添加如上内容未生效,本地测试可把group=wheel更改为use_uid后测试成功,但是表示加固文档是固定内容,不可修改,现需要协助排查sp1-0518系统版本pam_wheel.so 模块加group=wheel不生效问题。安全配置基线,如图1:
图1
现象分析
自测环境,分别使用银河麒麟高级服务器操作系统V10-SP1-0518-x86和V10-SP2-0524-arm系统进行测试验证,发现/etc/pam.d/su配置文件里,调用pam_wheel.so模块加group=wheel参数,都不生效,替换成use_id,测试验证生效,验证效果如图2和图3:
图2 银河麒麟高级服务器操作系统V10 sp1-0518-x86
图2 银河麒麟高级服务器操作系统V10 SP2-0524-ARM
从上面的测试验证情况,可知,银河麒麟高级服务器操作系统限制wheel组成员,可su到root用户使用,非wheel组成员,不可su到root用户这个功能。需要调用pam_wheel.so模块,后面加上use_uid来实现。
已知pam_wheel.so模块是Pluggable Authentication Modules (PAM)的一部分,它用于控制对su命令的访问。并查询到pam_wheel.so模块相关配置说明如下:
auth:这是PAM模块类型,定义了模块在认证过程中的角色。
required:这表示如果此模块失败,那么整个认证过程都将失败,除非有一个[success=ok default=ignore]的模块成功。它必须在该类型的所有其他模块之前。
pam_wheel.so:这是模块的名称,它控制对su命令的访问。
use_uid:这是给pam_wheel.so模块的参数。当设置了use_uid参数时,pam_wheel.so将会检查当前有效的用户ID,而不是初始的用户ID,以确定该用户是否为wheel组的成员。
分析结果
综上,系统测试分析情况,可知,在银河麒麟高级服务器操作系统V10系统中,限制实现只有属于wheel组的用户才被允许使用su命令来切换到root用户这个安全基线功能,是需要在/etc/pam.d/su配置文件的pam_wheel.so模块后面,通过追加use_uid这个模块配置参数实现的。
pam_wheel.so模块后面,追加group=wheel模块配置,为什么没有实现相关功能,可能是做了相关功能裁剪,所以没有实现。
解决方案
/etc/pam.d/su配置,如下:
[root@localhost ~]# cat /etc/pam.d/su
auth required pam_kysec.so
#%PAM-1.0
auth sufficient pam_rootok.so --追加配置
# Uncomment the following line to implicitly trust users in the "wheel" group.
#auth sufficient pam_wheel.so trust use_uid
# Uncomment the following line to require a user to be in the "wheel" group.
#auth required pam_wheel.so use_uid
auth required pam_wheel.so use_uid --追加配置
auth substack system-auth
auth include postlogin
account sufficient pam_succeed_if.so uid = 0 use_uid quiet
account include system-auth
password include system-auth
session include system-auth
session include postlogin
session optional pam_xauth.so