Munge服務部署和測試

1. 概述

munge是認證服務,用於生成和驗證證書。應用於大規模的HPC集羣中。
它容許進程在【具備公用的用戶和組的】主機組中,對另一個【本地或者遠程的】進程的UID和GID進行身份驗證。
這些主機構成由共享密鑰定義的安全領域。在此領域中的客戶端可以在不使用root權限,不保留端口,或其餘特定平臺下進行建立憑據和驗證。
簡而言之,在集羣中,munge可以實現本地或者遠程主機進程的GID和UID驗證。node

2. 下載

munge下載地址:https://dun.github.io/munge/
本篇博客使用的版本是:munge-munge-0.5.12.zip。下載以後,執行命令unzip munge-munge-0.5.12.zip解壓至當前目錄git

3. 安裝

3.1 源碼簡要說明

解壓源碼包以後,在源碼包下:github

  • README,查看軟件說明
  • HISTORY,查看歷史版本和發佈年份
  • INSTALL,查看簡要的安裝方法
  • PLATFORMS中,可以查到當前軟件版本支持的平臺類型
  • NEWS,查看不一樣版本的特性和bug修復
  • QUICKSTART,查看較爲詳細的安裝過程和解釋

依照QUICKSTART內容,或者在線用戶嚮導:https://github.com/dun/munge/wiki/Installation-Guide,便可安裝munge數據庫

注:munge提供了兩種安裝方式,即RPM包安裝和源碼安裝。本篇博客採用源碼安裝。vim

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數據庫中。app

經過./configure --help查看幫助以後,確認執行方式以下:dom

./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 installsocket

至此,munge已經安裝在本地目錄/usr/local/globle/softs/munge/0.5.12/中。
由於在configure的過程當中,經過--localstatedir=/var,所以在當前安裝目錄/usr/local/globle/softs/munge/0.5.12/沒有var目錄ide

注:本篇博客後續會將/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進行啓動

相關文章
相關標籤/搜索