关于禁 Root 登录的一些疑问

2023-03-14 13:57:00 +08:00
 unt
配置没问题,我都配置好了,自己账户的私钥也配好了。

问题:
1. 由于是多用户操作,每个用户都是管理员,避免管理起来碍手碍脚,给了所有用户 root 权限,su 切换的时候也设成了免密码,这种情况下,我泄露个人账号和泄露 root 账号有啥区别?既然泄露了,那就不会只泄露一个密码吧,用户名也肯定泄露了。设成 su 免密切换会不会反而更不安全。

2. 公钥私钥怎么理解,公钥必须在用户根目录下吗,可不可以集中管理,放在同一个文件夹。 可不可以多个私钥对应一个公钥。客户端换设备怎么办,直接把原来的私钥拷贝过去还是重新生成一个,每次重新生成的话公钥是不是也要对应重新配置。

3. 禁 root 登了,云服务商登录检修时填授权账号的时候怎么填
1444 次点击
所在节点    Linux
5 条回复
msg7086
2023-03-14 14:12:20 +08:00
1. 以下为个人观点,不接受反驳,不承担责任,仅供参考。

如果服务器本来就是只会为了管理而登录,并且所有登录的账户都有提权权限,且不需要审计,每个人的公钥也都保证安全的情况下,直接用 root 没什么问题。

列举一些通常会提到的反例:
如果你日常有非管理的登录需求,且怕自己手滑用 root 账号炸鸡,请用个人账户+sudo 。
如果你需要审计每个人的登录记录,请用个人账户+sudo 。
如果你需要更方便地收回权限,请用个人账户+sudo 。

否则直接 root 登录操作即可。

2. 公钥是跟着账户走的,意思是如果某个账户下有公钥,你也有对应的私钥,你就可以登录到这个账户。所以不能放在同一个目录下,因为这样就无法确定公钥能登录哪个账户了。(如果所有人都用 root ,那就放在 /root/.ssh/authorized_keys 就行了。)
客户换设备可以重用私钥,也可以重新生成一个。理想情况是每设备一私钥,但是安全性和便利性每个人可以自己取舍。
adoal
2023-03-14 14:22:11 +08:00
1. 理想情况下是用 sudo 或 doas ,并且详细配置具体被授权的用户可用什么命令(然而很容易不小心配错,让用户有更大的权限),不提倡用 su ,因为 su 太粗放了
2. OpenSSH 的 sshd.conf 可以配置 AuthorizedKeysFile 参数来指定用户的可登录公钥文件位置,甚至可以用 AuthorizedKeysCommand 来指定运行一个外部程序来获取用户的可登录公钥文件,这样可以把可登录公钥放在 LDAP 等外部数据库里,集中管理并动态替换。一个私钥对应多个公钥是不可能的,但是可以一个用户配置多个可登录公钥。
3. 各云厂家的策略不同。印象里 GCP 是生成了一个维护专用的密钥对,你不要删掉它即可。
unt
2023-03-14 14:35:31 +08:00
@msg7086 谢谢
unt
2023-03-14 14:35:38 +08:00
@adoal 谢谢
libook
2023-03-14 18:38:55 +08:00
1. 安全是于效率相互矛盾的,安全多一些,效率也就多牺牲一些。以等保的安全要求为例,管理员、操作员、审计员得三权分立,管理员负责管理账号和分配权限,操作员负责进行实际操作,审计员负责审计前两者的行为。权限分配应当遵循最小原则,每个用户仅能执行自己权限范围内的操作。所以要么是仅少数的管理员角色可以使用 root 、其他用户仅能使用普通账号,要么是有额外的堡垒机记录每个用户的详细操作以供审计。

2. 密钥对指的是 SSH 密钥吧?私钥保存在每个用户的终端上,不向其他人公开;公钥发到服务器 SSHD 指定的目录下,通常是用户自己的 home 目录下。应该可以通过配置 SSHD 来实现集中管理,通过配置 sshd_config 中的 AuthorizedKeysFile 字段,指定某个统一的目录,然后使用 u%之类的指定每个用户的子目录。不能将所有 key 直接扔到同一个目录里,因为那会使得所有人都可以使用自己的私钥登陆任何用户。有需要也可以配置 AuthorizedKeysCommand 来使用如 LDAP 之类的机制来获得公钥。具体可以去看 sshd_config 的手册。

3. 我了解阿里云是让用户提供账号密码去登陆检修,不可能租户自己禁止自己用 root 吧,一般都是专人管理。

一般来讲,sudo 是使用用户自己的密码来提权,su 是使用对应账号(如 root 账号)的密码来切换账号;如果你在多人操作的服务器上使用 su 让大家切换到 root ,也就意味着每个用户都知道 root 的密码;如果使用 sudo ,也就意味着用户自己的账号密码泄漏了等同于 root 密码泄漏。各有优缺点。

通常建议的方案是,使用堡垒机来自动管理和使用每个用户在每台服务器上的 SSH 密钥对,仅一名超管拥有堡垒机的配置权限,1 个或多个审计员有堡垒机日志的读取权限,每个操作员按照指责范围被配置允许访问哪些服务器的哪些账号,每台服务器仅接受堡垒机 IP 的登录请求。具体到服务器上,可以为个别账号设定免密码切换至 root ,也可以在堡垒机直接使用 root 账户登陆服务器。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/923885

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX