1. 概述

munge是认证服务,用于生成和验证证书。应用于大规模的HPC集群中。

它允许进程在【具有公用的用户和组的】主机组中,对另外一个【本地或者远程的】进程的UID和GID进行身份验证。

这些主机构成由共享密钥定义的安全领域。在此领域中的客户端能够在不使用root权限,不保留端口,或其他特定平台下进行创建凭据和验证。

简而言之,在集群中,munge能够实现本地或者远程主机进程的GID和UID验证。

2. 下载

munge下载地址:https://dun.github.io/munge/

本篇博客使用的版本是:munge-munge-0.5.12.zip。下载之后,执行命令unzip munge-munge-0.5.12.zip解压至当前目录

3. 安装

3.1 源码简要说明

解压源码包之后,在源码包下:

  • README,查看软件说明
  • HISTORY,查看历史版本和发布年份
  • INSTALL,查看简要的安装方法
  • PLATFORMS中,能够查到当前软件版本支持的平台类型
  • NEWS,查看不同版本的特性和bug修复
  • QUICKSTART,查看较为详细的安装过程和解释

依照QUICKSTART内容,或者在线用户向导:https://github.com/dun/munge/wiki/Installation-Guide,即可安装munge

注:munge提供了两种安装方式,即RPM包安装和源码安装。本篇博客采用源码安装。

3.2 编译安装

源码编译,基本上是3-4个步骤:configure,make,make test,make install。

在本篇博客中,对munge的部署有以下要求:

  • 采用munge用户运行进程
  • 静态文件位于全局文件系统
  • 动态文件位于本地
  • 采用命令行方式启动
  • 支持开启启动

全局认证munge用户,可以在LDAP中添加munge用户,参见《LDAP服务部署和测试.dm》。

本篇博客添加过程为:

useradd -s /sbin/nologin -u 601 munge

然后通过migrationtools更新passwd.ldif和group.ldif,并通过ldapadd添加到LDAP数据库中。

通过./configure --help查看帮助之后,确认执行方式如下:

./configure \
--prefix=/usr/local/globle/softs/munge/0.5.12/ \
--sysconfdir=/usr/local/globle/softs/munge/0.5.12/etc \
--localstatedir=/var

【错误提示】:configure: error: unable to locate cryptographic library

【解决方式】:yum -y install openssl-devel

这个问题在QUICKSTART文件中有说明,主要是因为缺少Libgcrypt或者OpenSSL cryptgraphic 库所致。

这里采用符合GPL许可的Open SSL加密库,如果是源码编译i的此库环境,编译时需要通过--with-crypto-lib选择指定。

上述问题解决之后,执行命令make,完成之后,执行命令make install

至此,munge已经安装在本地目录/usr/local/globle/softs/munge/0.5.12/中。

因为在configure的过程中,通过--localstatedir=/var,因此在当前安装目录/usr/local/globle/softs/munge/0.5.12/没有var目录

注:本篇博客后续会将/usr/local目录通过NFS共享出去,因此/usr/local会作为全局文件系统来使用。此时将munge的var目录安装至此会有问题

因此,我们需要创建三个目录,即:/var/run/munge,/var/lib/munge,/var/log/munge。执行命令mkdir -p /var/{run,lib,log}/munge即可创建。

按照安装说明,创建了上述三个目录之后:

执行命令:chown -R munge.munge /var/{run,lib,log}/munge修改目录属主

执行命令:chmod 711 /var/lib/munge; chmod 700 /var/log/munge; chmod 755 /var/run/munge修改目录模式

执行命令:chown -R munge.munge /usr/local/globle/softs/munge/,修改安装目录属主

3.3 配置

从上一部分中的工作中,已经完成了对munge的编译安装,这仅仅是第一步。

第二步就是配置munge。

在/usr/local/munge/0.5.12/etc/目录下,有三个目录:

  • munge 用于放置munge.key
  • rc.d 用于部署开机启动服务
  • sysconfig 用户配置开机启动服务

编辑文件vim /usr/local/globle/softs/munge/0.5.12/etc/sysconfig,修改部分如下:

DAEMON_ARGS="--key-file /usr/local/munge/0.5.12/etc/munge/munge.key --num-threads 1"

3.4 创建munge.key

munge.key的创建有四种方式,如下图



本篇博客采用第三种方式,

执行命令:echo -n "Hello.LiwanLiang.This is your munge key." | sha1sum | cut -d' ' -f1 > /usr/local/munge/0.5.12/etc/munge/munge.key

修改权限为400,执行命令:chmod 400 /usr/local/munge/0.5.12/etc/munge/munge.key

3.5 启动方式

以下方式,任选其一即可

  • 创建脚本链接(或者直接拷贝文件),通过'service munge start'启动服务,如下图:

    ln -fs /usr/local/munge/0.5.12/etc/rc.d/init.d/munge /etc/init.d/munge
  • 创建命令链接(或者直接拷贝文件),通过'munged'启动服务,如下图:

    ln -fs /usr/local/munge/0.5.12/sbin/munged /usr/sbin/munged

启动了munged之后,通过执行命令:lsof -p $(pgrep -f munged),能够查看munged服务打开的文件,内容如下:

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
munged 11693 root cwd DIR 253,2 4096 2 /
munged 11693 root rtd DIR 253,2 4096 2 /
munged 11693 root txt REG 253,2 362662 15266 /usr/local/munge/0.5.12/sbin/munged
munged 11693 root mem REG 253,2 65928 2801 /lib64/libnss_files-2.12.so
munged 11693 root mem REG 253,2 19536 2791 /lib64/libdl-2.12.so
munged 11693 root mem REG 253,2 1921216 2785 /lib64/libc-2.12.so
munged 11693 root mem REG 253,2 1946880 5035 /usr/lib64/libcrypto.so.1.0.1e
munged 11693 root mem REG 253,2 88600 3208 /lib64/libz.so.1.2.3
munged 11693 root mem REG 253,2 142640 2809 /lib64/libpthread-2.12.so
munged 11693 root mem REG 253,2 115135 15234 /usr/local/munge/0.5.12/lib/libmunge.so.2.0.0
munged 11693 root mem REG 253,2 154520 2778 /lib64/ld-2.12.so
munged 11693 root 0u CHR 1,3 0t0 3800 /dev/null
munged 11693 root 1u CHR 1,3 0t0 3800 /dev/null
munged 11693 root 2u CHR 1,3 0t0 3800 /dev/null
munged 11693 root 3w REG 253,2 572 262284 /var/log/munge/munged.log
munged 11693 root 5wW REG 253,2 0 262286 /var/run/munge/munge.socket.2.lock
munged 11693 root 6u unix 0xffff88003d2f19c0 0t0 28142 /var/run/munge/munge.socket.2

查看日志内容,如下:

2018-06-16 07:17:37 +0800 Notice: Running on "node12" (71.0.0.92)
2018-06-16 07:17:37 +0800 Info: PRNG seeded with 1024 bytes from "/dev/urandom"
2018-06-16 07:17:37 +0800 Info: Updating supplementary group mapping every 3600 seconds
2018-06-16 07:17:37 +0800 Info: Enabled supplementary group mtime check of "/etc/group"
2018-06-16 07:17:37 +0800 Info: Found 5 users with supplementary groups in 0.000 seconds
2018-06-16 07:17:37 +0800 Notice: Starting munge-0.5.12 daemon (pid 11693)
2018-06-16 07:17:37 +0800 Info: Created 2 work threads

至此,单节点启动munged的过程已经配置完成。

多节点的munge服务启动,需要在同步各个节点的时间之后,通过pdsh进行启动

Munge服务部署和测试的更多相关文章

  1. LDAP-openldap服务部署和测试(YUM安装)

    1. 概述2. 服务端部署过程2.1 软件包说明2.2 部署过程2.3 配置过程3. 测试4. 生成LDIF格式文件4.1 安装migrationtools工具4.2 用migrationtools生 ...

  2. NTP服务部署和测试

    1. 概述2. 部署3. 配置4. 客户端配置4.1 客户端安装ntpdate4.2 同步设置 1. 概述 本篇博客主要记录如何部署一台NTP服务器,用于内网时间同步. 时间服务器对于集群内部节点之间 ...

  3. Slurm任务调度系统部署和测试(源码)(1)

    1. 概述1.1 节点信息2. 节点准备3. 部署NTP服务器4. 部署LDAP服务器5. 部署Munge认证服务6. 部署Mysql数据库服务7. 部署slurm7.1 创建slurm用户7.2 挂 ...

  4. OpenStack入门篇(九)之nova服务(控制节点)的部署与测试

    1.Nova介绍 Nova是openstack最早的两块模块之一,另一个是对象存储swift.在openstack体系中一个叫做计算节点,一个叫做控制节点.这个主要和nova相关,我们把安装为计算节点 ...

  5. Openstack入门篇(十一)之neutron服务(控制节点)的部署与测试

    1.Neutron的介绍 Neutron 为整个 OpenStack 环境提供网络支持,包括二层交换,三层路由,负载均衡,防火墙和 *** 等.Neutron 提供了一个灵活的框架,通过配置,无论是开 ...

  6. 工程师技术(三):独立Web站点的快速部署、虚拟Web主机的部署、配置网页内容访问、使用自定Web根目录、配置安全Web服务、部署并测试WSGI站点

    一.独立Web站点的快速部署 目标: 本例要求为 http://server0.example.com 配置Web站点,要求如下: 1> 从http://classroom/pub/materi ...

  7. slurm任务调度系统部署和测试(一)

    1.概述 本博客通过VMware workstation创建了虚拟机console,然后在console内部创建了8台kvm虚拟机,使用这8台虚拟机作为集群,来部署配置和测试slurm任务调度系统. ...

  8. NFS网络共享服务部署

    10.3 NFS服务端部署环境准备 10.3.1 NFS服务部署服务器准备 服务器系统 角色 IP Centos6.7 x86_64 NFS服务器端(NFS-server) 192.168.1.14 ...

  9. WCF服务部署到IIS7.5

    下面介绍如何把WCF服务部署到IIS: 为WCF服务创建.svc文件 我们知道,每一个ASP.NET Web服务都具有一个.asmx文本文件,客户端通过访问.asmx文件实现对相应Web服务的调用.与 ...

随机推荐

  1. 05-sudo权限配置

    阅读目录 基础环境准备 服务端配置 客户端配置 客户端验证 附:sudo常见属性介绍 常见错误分析 1. 基础环境准备 本文接文章openldap服务端安装配置 2. 服务端配置 导入sudo sch ...

  2. layer层、modal模拟窗 单独测试页面

    layer_test.jsp <%@ page language="java" import="java.util.*" pageEncoding=&qu ...

  3. 使用虚拟环境virtualenv/Virtualenvwrapper隔离多个python

    virtualenv 系统中的多个python混用会导致$PYTHONPATH混乱,或者各个工程对于package的版本要求不同等等情况.有一个简单的解决方案就是用virtualenv来隔离多个pyt ...

  4. [HDFS_add_3] HDFS 机架感知

    0. 说明  HDFS 副本存放策略 && 配置机架感知 1. HDFS 的副本存放策略 HDFS 的副本存放策略是将一个副本存放在本地机架节点上,另外两个副本放在不同机架的不同节点上 ...

  5. PLSQL无法粘贴复制

    有2个原因会导致这个问题发生: 一:快捷键设置不正确,按照网上的设置方法把复制粘贴的快捷键重新设置一下,然后重启plsql 二:远程桌面连接开着,关闭后试下(亲测有效)

  6. 【PAT】B1075 链表元素分类(25 分)

    这道题算有点难,心目中理想的难度. 不能前怕狼后怕虎,一会担心超时,一会又担心内存过大,直接撸 将三部分分别保存到vector 有意思的在于输出 分别输出第一个的add和num 中间输出nextadd ...

  7. window下上传文件至linux(windows下如何访问linux)

    ========相信我,按照步骤来一定能成功====== 我将从三个方面来说明:为什么要搭建访问服务器.如何搭建访问服务器.windows如下访问 为什么要搭建访问Linux服务器 我们都知道,服务器 ...

  8. Reachability

    一.Reachability中介绍了取得/检测网络状态的方法. 二.使用 1.添加源文件:Reachability.h和Reachability.m 2.添加framework———SystemCon ...

  9. 西安80投影坐标系转WGS84地理坐标系如何求七参数

    需求:西安80投影坐标系(平面坐标)转为WGS84地理坐标系(球面坐标) 这其中涉及的问题主要有以下两点: 1.一个是投影坐标系,一个是地理坐标系,而七参数指的是两个地理坐标系之间的转换,因此需要把投 ...

  10. python流程控制语句-if语句

    一个if语句 if语句用来检验一个条件, 如果 条件为真,我们运行一块语句(称为 if-块 ),也就是只有一个if判断,当为真的时候就运行一块语句,否则就不运行 下面代码中的if语句控制者缩进的pri ...