munge 使用介绍

发布时间: 更新时间: 总字数:762 阅读时间:2m 作者: IP上海 分享 网址

本文介绍 munge 的工作作用、原理、安装和演示。munge 是一个用于创建和验证凭据的身份验证服务,为了在HPC集群环境中使用,它被设计为高度可伸缩的。

作用

解决高性能计算(HPC)控制节点和计算节点的通信认证,常见的认证方式有:

  • authd
  • munge:允许进程对一组具有相同 普通用户(UID)和组(GID)的主机对另一个本地远程的进程进行身份验证。这些主机组成了 共享密码密钥安全领域(security realm)。此安全领域中的客户端可以在不使用 root特权保留端口特定于平台 的创建和验证凭据。

简单的说是通过对数据(payload)的加解密(或者称编码),实现数据的安全传输。

安装

wget https://github.com/dun/munge/releases/download/munge-0.5.14/munge-0.5.14.tar.xz
yum install yum install -y bzip2-devel openssl-devel zlib-devel
rpmbuild -tb --without verify munge-0.5.14.tar.xz
cd /root/rpmbuild/RPMS/x86_64
rpm -ivh munge-0.5.14-1.el7.x86_64.rpm munge-devel-0.5.14-1.el7.x86_64.rpm munge-libs-0.5.14-1.el7.x86_64.rpm
  • rpm安装
yum install -y munge

使用

munge 安装完成后,会自动创建 munge 用户和组

创建密钥

$ sudo -u munge /usr/sbin/mungekey -v
mungekey: Info: Created "/etc/munge/munge.key" with 1024-bit key
$ ls -lh /etc/munge/munge.key
-rw------- 1 munge munge 128 Jul 25 03:16 /etc/munge/munge.key

# 或
dd if=/dev/urandom bs=1 count=1024 >/etc/munge/munge.key
chmod 0400 /etc/munge/munge.key
chown munge:munge /etc/munge/munge.key

说明:

  • /etc/munge/munge.key 也可以手动创建,必须保证其内容在32个字节以上,文件权限为600
  • 生成的 /etc/munge/munge.key 文件需要分发到其他需要使用的节点,该文件的用户和组均为 munge,文件权限为600

启动进程

systemctl enable munge
systemctl start munge

# 检查状态
systemctl status munge

测试

# 编码测试,-n 为 --no-input,即空字符串
$ munge -n
MUNGE:AwQFAAB0Pj/eUncugCTwVuIg7dPoLF0Cs5JJqahDNJa/dFAJCp+OItn2tulAiBns84Q1rmT273F15hSxM+ZTtw1mV7qUhEKcp5KlK5d0t5Ms1DSd0I8FvXXiCHyWOV4DiXs7so8=:

# 对字符串编码
$ munge -s "xiexianbin"
MUNGE:AwQFAAC7zLFmnfulEtFaSsUxB5sNcHJGVnXVUCUqSQN6h93/8OxCB+zrEu0dqmxX+TeONVy6gHZz3ZhgCeQpA6U1+fqvwXXyhmd/vcZfmRh0S+4OtYkrISkEyQsryHW862yg34WZvXHLNNk2YfcTV78Bk2vT:
  • 编码/解码测试
$ munge -s "xiexianbin" | unmunge
STATUS:          Success (0)
ENCODE_HOST:     munge-1 (172.20.0.100)
ENCODE_TIME:     2021-07-25 16:51:35 -0400 (1627458695)
DECODE_TIME:     2021-07-25 16:51:35 -0400 (1627458695)
TTL:             300
CIPHER:          aes128 (4)
MAC:             sha256 (5)
ZIP:             none (0)
UID:             root (0)
GID:             root (0)
LENGTH:           10

xiexianbin
  • 本地编码,远端解码
$ munge -s "xiexianbin" -t 10 | ssh 172.20.0.101 unmunge
STATUS:          Success (0)s
ENCODE_HOST:     munge-1 (172.20.0.100)
ENCODE_TIME:     2021-07-25 16:52:14 -0400 (1627458734)
DECODE_TIME:     2021-07-25 16:52:16 -0400 (1627458736)
TTL:             10
CIPHER:          aes128 (4)
MAC:             sha256 (5)
ZIP:             none (0)
UID:             root (0)
GID:             root (0)
LENGTH:           10

xiexianbin
  • 远端编码,本地解码
$ ssh 172.20.0.101 munge -s "xiexianbin" -t 10 | unmunge
root@172.20.0.101's password:
STATUS:          Success (0)
ENCODE_HOST:     munge-2 (172.20.0.101)
ENCODE_TIME:     2021-07-25 16:52:56 -0400 (1627458776)
DECODE_TIME:     2021-07-25 16:52:56 -0400 (1627458776)
TTL:             10
CIPHER:          aes128 (4)
MAC:             sha256 (5)
ZIP:             none (0)
UID:             root (0)
GID:             root (0)
LENGTH:           10

xiexianbin

使用

一般和 slum 一起使用,配置 /etc/slurm/slurm.conf

AuthType=auth/munge

FaQ

munge 在多网卡环境中,可能会存在 DNS 超时 10s 的问题,参考1参考2

可以通过禁用 dns 规避。

Home Archives Categories Tags Statistics
本文总阅读量 次 本站总访问量 次 本站总访客数