V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
zhoudaiyu
V2EX  ›  问与答

如何在 web terminal 中限制用户的一些行为?

  •  
  •   zhoudaiyu · 2020-07-11 13:25:50 +08:00 via iPhone · 1930 次点击
    这是一个创建于 1357 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我们的容器平台有个在 web 端进入到 pod 里的功能,其实跟在阿里云 web 页面连虚拟机一个意思。现在想禁止一些危险的操作,比如 mv rm cp sh bash 等,我的思路是连 pod 时,直接 alias 禁止一些危险操作,后来发现可以通过使用绝对路径绕过去,比如 /use/bin/rm xxx 这样就可以绕过 alias rm=“echo denied”。最好这种限制对容器没有侵入,比如不要改 /etc/profile 或者.bash_profile 等,而且最好退出容器这个限制就消失,不要影响别的用户。大家有啥思路?
    14 条回复    2020-07-12 08:54:12 +08:00
    visitant
        1
    visitant  
       2020-07-11 13:48:13 +08:00
    为什么不每个用户起个新的容器
    ipwx
        2
    ipwx  
       2020-07-11 13:52:16 +08:00
    每个用户新的容器。。?
    zhoudaiyu
        3
    zhoudaiyu  
    OP
       2020-07-11 14:14:12 +08:00 via iPhone
    @visitant
    @ipwx 资源浪费啊 有时候就是去容器里看日志
    ipwx
        4
    ipwx  
       2020-07-11 14:32:52 +08:00
    setuid setgid? 好像这俩 posix 调用可以从 root 进程降权。
    aapeli
        5
    aapeli  
       2020-07-11 14:40:35 +08:00 via iPhone
    定制一个 shell
    zhoudaiyu
        6
    zhoudaiyu  
    OP
       2020-07-11 14:40:43 +08:00 via iPhone
    @ipwx 进去的时候是就是普通用户,但是还是能乱搞出一些问题,虽然说容器可以随时销毁重建吧,但是也是有可能搞事情
    zhoudaiyu
        7
    zhoudaiyu  
    OP
       2020-07-11 14:41:30 +08:00 via iPhone
    @aapeli 是有这样的想法,但是涉及到改造有些麻烦
    dingwen07
        8
    dingwen07  
       2020-07-11 15:13:08 +08:00 via iPhone
    破坏的骚操作可多了 比如限制了删除那就重定向覆盖
    所以可以试试看从保护文件入手 限制权限和配置 ACL 之类的 而不只是阻止用户
    zhoudaiyu
        9
    zhoudaiyu  
    OP
       2020-07-11 15:19:41 +08:00 via iPhone
    @dingwen07 确实要玩骚的太难防了 TAT,太灵活了主要是
    abowloflrf
        10
    abowloflrf  
       2020-07-11 15:39:10 +08:00 via iPhone
    一个思路,进入容器不直接在那个容器里启 shell 进程,而是在同一节点新启动一个容器然后指定要 attach 到目标容器的哪些 namespace,还可以另外指定运行 user 等,达到一些隔离或者权限限制的目的。当然还要看你具体需求,进入容器的需求和具体限制什么操作。
    tolerance
        11
    tolerance  
       2020-07-11 17:26:55 +08:00
    搞个不存在危险指令的容器(容器里把 mv 、rm 、cp 这些删除),用户登录启动这个容器
    rmb1222
        12
    rmb1222  
       2020-07-11 17:51:42 +08:00 via Android
    只要是正常的 shell 都无解 就算你把 bin 下的文件全删了 echo 一个 busybox 就能直接复活。。。
    zmxnv123
        13
    zmxnv123  
       2020-07-11 20:14:27 +08:00
    构建一个没有这些执行文件的镜像?
    melkor
        14
    melkor  
       2020-07-12 08:54:12 +08:00 via iPhone
    @zhoudaiyu 如果只是看日志,那就提供看日志的页面好了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   4935 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 09:42 · PVG 17:42 · LAX 02:42 · JFK 05:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.