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

如果 SSH 仅允许密钥登录,还有必要禁用 ROOT 登录吗?

  •  
  •   cnfzv · 2018-11-24 21:33:54 +08:00 · 7006 次点击
    这是一个创建于 1951 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如果 SSH 仅允许密钥登录,单从防止破解入侵方面的安全性来说,有必要禁用 ROOT 登录吗?

    请各位大佬解惑

    第 1 条附言  ·  2018-11-24 22:09:27 +08:00
    我的意思是只允许密钥登录,那么用 root+密钥 登录相对 禁用 ROOT+密钥 登录来说足够安全么?
    38 条回复    2018-11-26 09:36:17 +08:00
    honeycomb
        1
    honeycomb  
       2018-11-24 21:37:02 +08:00 via Android
    有需要的话就做,因为两者不是同一个方面的保护
    shangfabao
        2
    shangfabao  
       2018-11-24 21:38:53 +08:00 via Android
    不相干的,密钥用户权限一般都是 ROOT
    shangfabao
        3
    shangfabao  
       2018-11-24 21:43:24 +08:00
    @shangfabao 不相干的,密钥用户权限一般都不是 ROOT
    lfzyx
        4
    lfzyx  
       2018-11-24 21:46:32 +08:00
    没必要
    likuku
        5
    likuku  
       2018-11-24 21:54:04 +08:00
    你能保证 迷钥 绝对不会外泄么?世上没有绝对的安全。
    cnfzv
        6
    cnfzv  
    OP
       2018-11-24 22:06:32 +08:00
    @likuku 单从破解入侵方面说,如果说泄露那么禁用什么都不够安全啊
    cnfzv
        7
    cnfzv  
    OP
       2018-11-24 22:08:06 +08:00
    @shangfabao 我意思是说只允许密钥登录,那么用 ROOT 登录单从防止破解入侵方面来说足够安全么
    dot2017
        8
    dot2017  
       2018-11-24 22:11:58 +08:00
    我觉得没必要
    xiaqi
        9
    xiaqi  
       2018-11-24 22:15:17 +08:00 via Android   ❤️ 1
    之前有 v 友说来着,对于安全防护,从来都不要嫌多。因为,你如何确保 root 登录验证部分始终没有漏洞?也许是还有的没有被人发现?就想当年的 bash 漏洞,谁会想到,这玩意竟然有漏洞?
    另外,如果是 root 直接登录然后不切换普通用户就执行软件命令的更加需要禁止 root 登录了。
    shangfabao
        10
    shangfabao  
       2018-11-24 22:16:06 +08:00   ❤️ 1
    @cnfzv 没有完全的安全,但是允许 root 登录过不了安全检测这一关,另外禁用 root 就是你什么用户登录你自己的账户干自己的事,上去就是 ROOT 用户,万一 RM -RF 了呢?
    xpresslink
        11
    xpresslink  
       2018-11-24 22:16:43 +08:00   ❤️ 1
    理念上说就不应该直接用 root 账号来操作,应该建一个其它账号授给必要的 sudo 权限。
    把 root 登录禁用肯定会更安全一些,其它账号就很难猜出来。
    从我们生产的运维实践来说,通常为了安全要设置防火墙用 IP 白名单来限制访问。
    Tink
        12
    Tink  
       2018-11-24 22:26:59 +08:00 via iPhone
    从来不用 root 登陆
    likuku
        13
    likuku  
       2018-11-24 22:29:21 +08:00
    @cnfzv 你主题已经透露出是在“关注安全”了,那么最基本的安全准则就是“权限最小化”,只给必须的最小权限。

    看似多余的,一概不给。
    nosay
        14
    nosay  
       2018-11-24 22:32:15 +08:00
    一般来说,通过修改端口,禁 ROOT,强密码,在应对破解这方面就已经够用了。
    而通过密钥登陆,虽然安全性得到进一步提升,但是却失去了密码的便利。如果在讨论是否禁用 ROOT 带来更大的提升,就有些执念了。
    所以最终我选择了堡垒机....
    likuku
        15
    likuku  
       2018-11-24 22:33:41 +08:00
    @shangfabao 想起还有常见的状况:
    一些人开了终端登陆到服务器上,终端不关闭,也不锁屏,就离开工位作其它事,
    若你是 root 登陆的,此时任何人在电脑前都可以直接用终端以 root 身份作一切事情了。
    likuku
        16
    likuku  
       2018-11-24 22:37:33 +08:00
    再次感慨 aws 的 ec2 主机,假若用 AMI ( Amazon 自己作的系统镜像) 初始化的,
    只提供密钥登陆,只提供一个非 root 账户 (主机运行前根本不提供你开设其它账户的功能)
    rogwan
        17
    rogwan  
       2018-11-24 22:38:47 +08:00 via iPhone
    root + 16 位密码,和 4 为用户名 **** + 12 位密码。被破解的概率是一样的吗?
    rogwan
        18
    rogwan  
       2018-11-24 22:39:11 +08:00 via iPhone
    likuku
        19
    likuku  
       2018-11-24 22:46:51 +08:00
    @rogwan 所以,现在云端时代,更先进的理念:服务要设计成根本不需要 ssh,抛弃传统账密登陆管理的方式。

    你锁匠再厉害,我连门都不留给你,锁匠变废物了。
    liuxu
        20
    liuxu  
       2018-11-24 22:58:13 +08:00 via Android
    既然大家这么在意安全,是不是该把你们的 selinux 设置好

    我的服务器是 root 加秘钥,禁止密码登录
    bellchu
        21
    bellchu  
       2018-11-24 23:33:39 +08:00
    passwd root -l

    难道不是每次做好系统的第一步吗?
    brotherlegend
        22
    brotherlegend  
       2018-11-24 23:53:36 +08:00 via Android
    就怕你自己 rm /* -rf
    ETiV
        23
    ETiV  
       2018-11-25 00:23:06 +08:00
    redis 漏洞了解一下~

    如果没禁止 root 登录,可以通过这个漏洞加 key,进而完成登录
    hzwjz
        24
    hzwjz  
       2018-11-25 02:39:57 +08:00 via Android
    如无必要,完全不用 root 登录,实在不行,那就 sudo -i 切过去也行
    radc
        25
    radc  
       2018-11-25 02:52:48 +08:00
    root 的意义不单单是防止暴力破解, root 的意义在于, 任何一台服务器上, 都有一个叫做 root 的用户 不禁止的话 可以用这个 *已知的* 用户名暴力破解 诚然 key 登录基本没有可能暴力破解, 但是都设置 key 了, 改一下 sshd 配置不好吗?每天看着 log 里尝试登录的错误报告也不好吧....
    wwhc
        26
    wwhc  
       2018-11-25 03:13:11 +08:00
    一定要禁止 root 登录,即使使用密钥登录,也应许可普通帐号密码登录,而且也一定要改用非默认端口
    t6attack
        27
    t6attack  
       2018-11-25 03:46:57 +08:00
    按我自己的习惯,低权限操作碍手碍脚,不能忍。

    我的配置方法是:比如我想以 t6attack 为名登录.
    win 服务器:把 administrator 改名为 t6attack,另外新建个 administrator,给 guest 权限。远程桌面只允许 t6attack 登录。
    linux 服务器:新建个用户 t6attack,将其等同于 root 权限,相当于 root 的别名。ssh 只允许这个用户名登录。禁止 root 登录。centos 5/6 都能做到,7 还没研究过。

    这样登进去,既是最高权限,又不是用原名,有效防止暴破。
    jorneyr
        28
    jorneyr  
       2018-11-25 07:28:55 +08:00
    我们不管啥都是 root 登录, 运维给的, 嘎嘎
    msg7086
        29
    msg7086  
       2018-11-25 07:34:58 +08:00
    现在所有的服务器都是 root 登录,root 权限做所有的操作。
    我登录服务器本来就是上去管理的,所有的操作都是特权操作,用普通账号登录以后再 sudo 和直接 root 登录没有一毛钱的区别,就不多给自己添堵了。

    @radc 设置成禁止密码登录以后,暴力破解连输密码的机会都没有,根本无法尝试爆破,也不会留下密码错误的报告。
    msg7086
        30
    msg7086  
       2018-11-25 07:35:37 +08:00
    @msg7086 s/^/我 /
    lrh3321
        31
    lrh3321  
       2018-11-25 07:58:07 +08:00 via Android
    配置好以后就不使用 root 用户了。
    isCyan
        32
    isCyan  
       2018-11-25 08:02:24 +08:00 via Android
    一个人使用的话,root 也无妨,毕竟只有一个超级管理员。
    但是密钥登录一定要上
    julyclyde
        33
    julyclyde  
       2018-11-25 08:32:00 +08:00   ❤️ 1
    @t6attack 说明你不懂技术
    zealzz
        34
    zealzz  
       2018-11-25 08:36:32 +08:00 via Android
    直接禁用密码登陆,只允许公钥登陆。并且登陆的是非 root 用户,顺便把 22 端口也改了。暴力破解概率为 0。公钥就算公布给别人也没啥影响。
    BOYPT
        35
    BOYPT  
       2018-11-25 13:14:36 +08:00
    PermitRootLogin without-passwor
    能默写的配置
    realpg
        36
    realpg  
       2018-11-25 14:41:37 +08:00
    允许 root 和不允许 root 的安全风险不取决于密码泄露什么的

    主要是不允许 root 首先你获取用户名就有难度了……
    Dk2014
        37
    Dk2014  
       2018-11-25 17:59:18 +08:00
    取决于你服务器上东西的价值
    像我这种上面基本没啥重要的,最多改个只允许密钥登录
    wizardoz
        38
    wizardoz  
       2018-11-26 09:36:17 +08:00
    两回事!
    就算禁用了远程登录,你也不应该用 root 登录。
    很多软件发现是 root 用户,直接不予启动,IRC 发现用户名是 root 会直接把你踢掉。这就是在提醒大家不要直接使用 root 用户!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2015 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 16:18 · PVG 00:18 · LAX 09:18 · JFK 12:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.