V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
TossPig
V2EX  ›  Linux

Linux 系统中可以限制 root 的权限?

  •  
  •   TossPig · 163 天前 · 3599 次点击
    这是一个创建于 163 天前的主题,其中的信息可能已经有所发展或是发生改变。

    又到一年等保季,又是这种狗屁倒灶的事情,前年查我 HTTP 方法

    今年给了新课题,当前服务器仅有 root 账户,无安全管理员、审计管理员,未实现管理用户的权限分离。而且标记为高风险必须整改!

    最后给出的修改建议是,把 root 用户改名,再新建两个用户去权限分离

    ???

    root 改名了,还能改掉UID=0?这种脱了裤子放屁的事为什么要做?

    还是说这样有什么特别意义?感恩有懂得大佬指教一下啊

    36 条回复    2023-11-16 16:41:26 +08:00
    cheng6563
        1
    cheng6563  
       163 天前   ❤️ 1
    等保就是这样的啊,他说啥是啥就行了
    johnidy
        2
    johnidy  
       163 天前
    应试,让怎么改就怎么改,给 pass 就行。
    lambdaq
        3
    lambdaq  
       163 天前
    你新建一个 not_root 加入到 sudoer 禁止 root 登录不就整改完毕了?
    cheng6563
        4
    cheng6563  
       163 天前
    之前给出一堆运维电脑的整改要求,洋洋洒洒好几页,然而我们运维用的 mac ,就说 mac 已经够安全了什么都不用做。
    iminto
        5
    iminto  
       163 天前
    当前服务器仅有 root 账户,通常来说确实不合规,也不合理。

    root 的权限也可以限制啊,selinux 不就是嘛,不过是限制了后 root 可以自己解开。
    cheng6563
        6
    cheng6563  
       163 天前
    服务器也是全容器管理的,就在安装 k8s 时登录过一下,之后服务器就没登录过,还不是得把什么劳什子审计管理员用户建出来
    TossPig
        7
    TossPig  
    OP
       163 天前   ❤️ 1
    @cheng6563 说到 mac 让我想起了数据库也是,mysql 就需要这调整那修改的,pgsql 不会测就是安全。我们是私有部署,服务器是客户的,他们根本没 k8s

    @johnidy 就很讨厌这种无意义的行为

    @lambdaq 他们测试的时候都是要求 root 权限

    @iminto 实际情况是就一个很边缘的系统,两三年都不会进操作系统一次,

    还有一个讨厌的东西要求 90 天更换所有数据库密码,数据库端口都没外放。。。。

    现在直接用定时脚本改,需要密码的时候再去看配置文件中的密码
    defunct9
        8
    defunct9  
       163 天前
    真想抽死这帮人,满嘴胡说八道,把 root 改掉,系统还跑的起来么。
    NotFoundEgg
        9
    NotFoundEgg  
       163 天前
    root 用户改名这个操作真是秀到了
    ruanimal
        10
    ruanimal  
       163 天前
    SELinux ?
    liuliancao
        11
    liuliancao  
       163 天前
    搭建个 Jumpserver 吧 配置下用户看看
    euph
        12
    euph  
       163 天前 via Android
    上面本意是好的,只是下面的人执行歪了(狗头)
    julyclyde
        13
    julyclyde  
       163 天前
    仅有 root 肯定有问题啊
    后台服务不应该用 root 身份运行
    你应该单独建一个服务用户

    至于说把 root 改名……这建议过于业余
    dengshen
        14
    dengshen  
       163 天前 via iPhone
    你不能用 Ubuntu 啊我们要求使用 Linux 🐶
    x1aoYao
        15
    x1aoYao  
       163 天前
    @julyclyde 是的。而且登录也一般是普通账户登录,登录之后再切 root 都可以。
    error451
        16
    error451  
       163 天前   ❤️ 1
    无安全管理员、审计管理员,未实现管理用户的权限分离
    这个是等保的常见项目啊, 等保天天都在做这玩意。

    但是这个整改的方案都是新增审计用户,开启审计,新增安全管理员,新增普通用户, 然后禁止 root ssh 登录(用普通用户登录,然后 su root 这样是不违规的) 这个方案

    头一回听说要求改 root 用户的。

    请问这是哪一家逗 B 提供的方案?

    说出来好让大家以后避坑啊。
    julyclyde
        17
    julyclyde  
       163 天前
    @x1aoYao su 命令、sudo 命令、setuid 函数都是用 uid 来表示的,其实 root 用户叫啥名字是无所谓的
    大概能扛一些 login/sshd 的攻击?
    julyclyde
        18
    julyclyde  
       163 天前
    @error451 要求改 root 用户的审计供应商其实不少
    不知道这个行业怎么能,从行业刚兴起就这么烂
    TossPig
        19
    TossPig  
    OP
       163 天前
    @julyclyde 服务器上装了宝塔的,默认应用服务是 www 用户在跑,系统是 debian 12 怎么都不可能只有 root 用户

    中间还有个坑,要求 root 也要密码过期,但是我给的是密钥登录,测试的人不会制作密钥,临时开启了密码登录,然后把密码相关都列为非检测项🐶
    TossPig
        20
    TossPig  
    OP
       163 天前
    真的就我遇到的等保公司,没有一家的测试人员会制作 ssh 密钥🐶
    billlee
        21
    billlee  
       163 天前
    @iminto SELinux 只是默认策略不限制 root, 真要限制 root 也是解不开的。它的权限体系和基于用户那套是平行的
    IvanLi127
        22
    IvanLi127  
       163 天前 via Android
    众所周知,搞等保并不是为了安全。
    不过感觉找个有脑子的测评机构至少不会花钱买恶心,有些机构钱真特喵好赚
    lanlanye
        23
    lanlanye  
       163 天前
    我之前还遇到一个"使用高权限用户的 Token 可以访问高权限的接口"。
    怎么?难道要我给你做个生物识别?
    duzhuo
        24
    duzhuo  
       163 天前
    @TossPig 这样还能考别人的吗,还在上学的我大开眼界
    yanqiyu
        25
    yanqiyu  
       163 天前
    @billlee 倒不是默认不限制
    只是默认情况下用户的登录会话都不限制

    [root@karubook]~# id -Z
    unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

    但是对于作为服务启动的程序而言:
    [root@karubook]~# systemd-run --shell --collect --quiet
    [root@karubook]~# id -Z
    system_u:system_r:initrc_t:s0

    虽然还是 root ,但是就受到了 system_u:system_r:initrc_t 这一属性的约束

    要限制传统登录上来的要 semanage ,但是很容易翻车(把自己权限改没了改不回去了)
    yanqiyu
        26
    yanqiyu  
       163 天前
    毕竟要限制登录上来的 root 的权限,你就要把登录上来的 root 用户设置成不能修改 SELinux 状态...然后改错了就除非设置 kargs 重启不让恢复不了了;)
    ruanimal
        27
    ruanimal  
       163 天前
    提供一个想法,应该可以糊弄过去
    在 bashrc 里面做一些检测,当识别到 ssh 登陆 root 时,做一些特定的配置(比如屏蔽一些命令)。
    zzznow
        28
    zzznow  
       163 天前   ❤️ 1
    应该是禁止 root 用户直接登录或远程。平常使用普通用户
    inframe
        29
    inframe  
       163 天前
    合规而已,适当地糊弄一下算了。这看起来对面也不大专业啊
    SunZm
        30
    SunZm  
       163 天前
    走个形式而已, 不用太较真, 简单点, 建三个新用户, 然后说给他们权限分离了, 问 root 就说禁了, 他们检查的也是工作而已, 并不会特别较真...
    cwcc
        31
    cwcc  
       163 天前
    作业指导书的问题,这个问题是从 1.0 延续过来的,2.0 的作业指导书其实已经更新了,但是很多人就还是习惯性的老一套。你可以和他们谈,如果他们不懂,那就是他们不懂。另外,权限没有分离根本判不了高风险,瞎判。
    msg7086
        32
    msg7086  
       163 天前
    装宝塔搞等保,你在期待什么。
    DeWjjj
        33
    DeWjjj  
       163 天前
    创个新账户叫 administer=>删掉 root=>就行了吧。
    devopsdogdog
        34
    devopsdogdog  
       163 天前 via Android
    等保实施人员压根不动技术,都是照本宣科,讨论不了,就改吧,后面恢复就是了
    lyxxxh2
        35
    lyxxxh2  
       163 天前
    我也是这样做的

    1. 新建两个用户并设置密码
    2. 把用户 a 设置为 root 权限, 编辑 `/etc/passwd` `user_a:x:0:0::/home/user_a:/bin/bash`
    3. 禁用 root 密码, 编辑 `/etc/shadow`, `root:!!$6$JDiFFDS....`

    最后就是:
    root 不可能登录的了
    user_a 有 root 权限
    user_b 运行项目用的
    96368a
        36
    96368a  
       162 天前
    等保公司的安服仔来说一句,我公司的等保测评人员都是其他行业转过来的,例如会计和商务之类的,表示这种事情见怪不怪
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2760 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 05:44 · PVG 13:44 · LAX 22:44 · JFK 01:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.