munge是認證服務,用於生成和驗證證書。應用於大規模的HPC集羣中。
它容許進程在【具備公用的用戶和組的】主機組中,對另一個【本地或者遠程的】進程的UID和GID進行身份驗證。
這些主機構成由共享密鑰定義的安全領域。在此領域中的客戶端可以在不使用root權限,不保留端口,或其餘特定平臺下進行建立憑據和驗證。
簡而言之,在集羣中,munge可以實現本地或者遠程主機進程的GID和UID驗證。node
munge下載地址:https://dun.github.io/munge/
本篇博客使用的版本是:munge-munge-0.5.12.zip。下載以後,執行命令unzip munge-munge-0.5.12.zip
解壓至當前目錄git
解壓源碼包以後,在源碼包下:github
依照QUICKSTART內容,或者在線用戶嚮導:https://github.com/dun/munge/wiki/Installation-Guide,便可安裝munge數據庫
注:munge提供了兩種安裝方式,即RPM包安裝和源碼安裝。本篇博客採用源碼安裝。vim
源碼編譯,基本上是3-4個步驟:configure,make,make test,make install。
在本篇博客中,對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 install
socket
至此,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/
,修改安裝目錄屬主
從上一部分中的工做中,已經完成了對munge的編譯安裝,這僅僅是第一步。
第二步就是配置munge。
在/usr/local/munge/0.5.12/etc/目錄下,有三個目錄:
編輯文件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"
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
如下方式,任選其一便可
ln -fs /usr/local/munge/0.5.12/etc/rc.d/init.d/munge /etc/init.d/munge
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進行啓動