V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
DnC
V2EX  ›  Ubuntu

如果禁止用户使用 ssh 跳转登录?

  •  
  •   DnC · 2020-03-19 16:36:39 +08:00 · 3231 次点击
    这是一个创建于 1706 天前的主题,其中的信息可能已经有所发展或是发生改变。

    需求是这样的,我们雇佣了几个外包人力 (A)。
    他们需要 ssh 登录我们特定的一台 ubuntu server (B)。
    但是不想让他们通过(B)跳转登录到我们其他的 server。

    整理需求:
    在 ubuntu server 上创建一个 account,
    允许该 account 从其他机器上远程 ssh 登录;
    但不允许该 account 使用 ssh-client 登录到其他 server ;

    第 1 条附言  ·  2020-03-20 11:49:01 +08:00
    解释说明下:
    其他 Server 的登录,也都需要 key 或者密码才行; B Server 上的 account 不能直接登录到其他 Server。
    但 INFRA 觉得,B Server 和其他同网段的 Server 之间存在网络通路,就会存在风险。
    他们需要我们给出方案来彻底规避这种风险。
    类似于:
    - 从交换机中彻底杜绝了 B 和其他 server 互通的可能性,肯定好过于:保证其他所有 server 都必须密码登录。
    第 2 条附言  ·  2020-03-20 11:51:43 +08:00
    谢 @dorentus @lewis89 和所有人的建议,
    回头我试试看;

    To @dendi009
    [在 B 机器上执行, chmod 750 /usr/bin/ssh , 试试. 对一般菜, 这个就能实现了]
    我们目前的方案也是在 /etc/ssh/ssh_config 中加了 Deny <account> 的办法,来规避菜鸟的 ssh 跳转了。
    哈哈,肯定不是万全的方案;临时糊弄下,先。
    13 条回复    2020-03-20 16:54:55 +08:00
    harde
        1
    harde  
       2020-03-19 16:50:16 +08:00
    不是很明白,难道你们局域网其他 Servrer 账号密码都给外包了?
    cev2
        2
    cev2  
       2020-03-19 16:56:09 +08:00 via Android
    你们内网所有服务器都是相同的密码?
    密码不同的话为什么担心登录。
    DnC
        3
    DnC  
    OP
       2020-03-19 17:02:36 +08:00
    @harde #1 @cev2
    理论上来说,所有的 server 都设置有访问密码,是不存在风险的。
    但是公司的 INFRA 部门,给外包机器设置了特殊的网段,他们网段和我们的机器网段,在交换机中设置了访问阻断策略。
    从根本上规避了任何访问的可能性。
    PS,他们访问 Server B,是在交换机中设置了例外。
    DnC
        4
    DnC  
    OP
       2020-03-19 17:03:45 +08:00
    即,这个问题是为了说服 INFRA,允许给他们开通 22 端口的 ssh 访问权限。
    pmispig
        5
    pmispig  
       2020-03-19 17:52:56 +08:00
    只能从网络这边操作了,禁止这台服务器访问其他 IP 的 ssh 端口。
    dorentus
        6
    dorentus  
       2020-03-19 17:55:16 +08:00
    iptables 有 —uid-owner 和 --gid-owner 参数,可以匹配特定用户 /组,说不定能满足你的需求
    lewis89
        7
    lewis89  
       2020-03-19 18:58:34 +08:00
    @dorentus #6 老哥稳,我刚好想到这个,确实可以 ,我以前用过
    lewis89
        8
    lewis89  
       2020-03-19 18:59:21 +08:00
    @dorentus #6 另外这个要装模块吧,然后用户权限要限制好
    xingheng
        9
    xingheng  
       2020-03-20 02:25:46 +08:00
    请教:不是很理解“通过(B)跳转登录到我们其他的 server”要如何操作,是在 B 机器里直接存入了 ssh keys 还是担心别人通过 ssh 密码爆破?
    dendi009
        10
    dendi009  
       2020-03-20 02:34:59 +08:00
    在 B 机器上执行, chmod 750 /usr/bin/ssh , 试试. 对一般菜, 这个就能实现了.
    如果 account 是 root 属组, 换成 chmod 700 /usr/bin/ssh
    方法很多吧, 没有绝对的安全.
    doveyoung
        11
    doveyoung  
       2020-03-20 09:49:47 +08:00
    @xingheng #9 同样不理解,serverB 没有登陆其他 server 的 key,如何登陆。也可以用 jumpserver 之类的堡垒机控制
    DnC
        12
    DnC  
    OP
       2020-03-20 11:55:31 +08:00
    @doveyoung #11 源头上规避可能存在的风险。
    理论上,你没办法保证除了 B 之外的所有 server,都有健全的安全策略来防止 hijack 登录。

    就好比,个人丢了身份证,肯定第一时间去挂失和担心被人冒用的风险。
    而不会完全依赖于 身份证+人脸识别 这种机制保证安全。
    例子不太恰当,大概是这么个意思。
    BOYPT
        13
    BOYPT  
       2020-03-20 16:54:55 +08:00
    直接弄个 JumpServer 做账户权限控制吧
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3524 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 04:41 · PVG 12:41 · LAX 20:41 · JFK 23:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.