1. 程式人生 > 實用技巧 >Munge服務部署和測試

Munge服務部署和測試

1. 概述
2. 下載
3. 安裝
3.1 原始碼簡要說明
3.2 編譯安裝
3.3 配置
3.4 建立munge.key
3.5 啟動方式

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進行啟動

原連結:https://www.cnblogs.com/liwanliangblog/p/9194032.html