我正在研究 SLURM 的安全性。没有一个文档非常清楚它是如何工作的。到目前为止我已经确定验证用户的使用完成蒙格。
据我所知,MUNGE 的工作方式如下:
- 集群中的所有机器都必须受信任
root
。换句话说,不受信任的用户可以使用它们,但他们不应该具有root
访问权限。 - 所有机器都有一个
munge
运行的用户munged
,以及一个预共享mungekey
的仅用户munge
可读。 - 所有机器必须为所有用户使用相同的 UID 和 GID。
然后,用户dave
只需通过sign this payload as being from me: ...
Unix 套接字向munged
.munged
显然有一种方法可以可靠地获取发送者的 UID(我没有查找如何实现),因此它将有效负载放入密码学家中mungekey
,uid=7
密码学家会输出凭证。
用户可以将该凭证与有效负载一起发送到集群中的任何其他节点,并且由于它具有相同的 UID 列表,因此mungekey
可以验证有效负载确实来自dave
.
看似合理,但又如何呢加密?节点之间的通信是否已加密?据我所知,事实并非如此,这似乎是这十年来的一个重大疏忽。