FusionInsight安全元件FAQ
FusionInsight安全元件FAQ
這裡彙總了FusionInsight安全元件相關的問題,包含kerberos,ldapserver,cas,spring安全框架相關問題分析
1 Ldapserver相關問題
1.1 安裝oms的時候,提示失敗,資訊:ERROR:Failed to install Ldap.
解決辦法:check日誌。/var/log/Bigdata/oldapserver/ldapserver_install.log
檢視是否提示有rpm包沒找到。如果是的話,請在安裝過叢集的節點和本節點(作業系統要一致)同時執行rpm -qa | grep ldap 補充缺失的rpm包即可。
1.2 安裝ldaperver,webui提示initialize服務的時候,ldaperver失敗
解決辦法:去對應的ldapserver節點,cd到/var/log/Bigdata/ldapserver。開啟日誌ldapserver_install.log。
提示:ldap server rpm is not installed。
則是ldapserver對應的rpm包沒有安裝,去os的安裝盤裡面,找到對應openldap包,補充到叢集各節點即可。
1.3 叢集安裝成功後,ldapserver的服務狀態為BAD,導致多個元件的服務狀態也是BAD。
原因分析:出現該問題的可能性有兩個,首先看一下ldapserver的instance裡面是否兩個例項都是STANDBY狀態。如果是,請修改服務的配置裡面的LDAP_PROVIDER_IP,該值應該填寫為ldapserver的兩個例項中的某個IP。
另一個可能性是ldapserver的ACTIVE例項所在的節點故障,看一下告警中是否有對應的AGENT故障告警,如果有,請修改服務的配置裡面的LDAP_PROVIDER_IP為另一個例項的IP,儲存配置重啟ldapserver即可。
1.4 停止叢集,對叢集中所有節點下電,上電之後,沒有啟動叢集的情況下oms一直在主備倒換
原因分析:出現該問題的是由於,OMS的acs程序連線的是元件的主ldapserver,OMS啟動時ACS會嘗試連線主ldapserver,查詢和新增預設使用者組,而此時叢集還沒有起來,會拋連線不到ldap的錯誤,此時檢視OMS所有程序狀態,會發現aos異常,HA在檢測到有程序異常之後,而且嘗試拉不起來就會觸發OMS主備倒換
解決辦法:首先登陸FI manager管理頁面,啟動ldapserver服務,主備倒換期間有可能登陸FI失敗,稍後重試即可
1.5 停止叢集,對叢集中所有節點下電,上電之後,沒有啟動叢集的情況下oms一直在主備倒換
原因分析:出現該問題的是由於,OMS的acs程序連線的是元件的主ldapserver,OMS啟動時ACS會嘗試連線主ldapserver,查詢和新增預設使用者組,而此時叢集還沒有起來,會拋連線不到ldap的錯誤,此時檢視OMS所有程序狀態,會發現aos異常,HA在檢測到有程序異常之後,而且嘗試拉不起來就會觸發OMS主備倒換
解決辦法:首先登陸FI manager管理頁面,啟動ldapserver服務,主備倒換期間有可能登陸FI失敗,稍後重試即可
1.6 啟動ldapserver例項失敗
原因分析:從ldapserver中可以看到啟動日誌中執行sudo命令時,報visiblepw相關錯誤,一般SUSE環境,會出現這個問題
解決辦法:在/etc/sudoers檔案底部增加Defaults visiblepw,重新啟動即可恢復
2 ldapclient相關問題
2.1 安裝叢集過程中,在initialize步驟中,提示ldapclient安裝失敗
解決辦法:去對應的ldapclient節點,cd到/var/log/Bigdata/ldapclient。開啟日誌ldapclient_install.log。
提示:excute sysctl failed。
則是ldapclient安裝過程中,需要重啟系統的sysctl,確保配置生效的時候,sysctl重啟失敗,這個時候,看一下日誌上下文,是否有提示/proc/sys/xxxx找不到的錯誤,然後去/etc/sysctl.conf,將該配置項遮蔽掉,然後retry叢集即可。
2.2 安裝叢集(擴容叢集)過程中,提示slapclient安裝失敗
解決辦法:去對應的失敗節點,cd到/var/log/Bigdata/ldapclient目錄,開啟日誌ldapclient_install.log
觀察其中最後的error日誌,提示rpm包找不到,或者未安裝。請補充pam和nss包即可。具體可以參考已經安裝成功的叢集節點,同時執行rpm -qa | grep ldap比對一下對應的rpm包差異,補充差異包即可。
2.3 安裝叢集過程中,提示slapclient安裝失敗
檢視ldapclient_install.,log 有如下錯誤:
SlapdClient ERROR can not find key [pam_unix2.so]
需要盤查如下三個檔案
這個問題的時候 需要盤查
/etc/pam.d/common-account"
/etc/pam.d/common-auth"
/etc/pam.d/common-password"
裡面是不是把account required pam_unix2.so 註釋了
如果註釋了請取消註釋 一般suse11.3有這個問題
2.4 OMS與叢集單獨部署,新新增的使用者無法登陸manager,出現403錯誤
原因分析:OMS單獨部署,OMS節點不會安裝ldapclient,此時id –Gn命令用不了,無法查詢使用者所屬的使用者組,R2C30SPC300之後的版本已解決該問題
解決辦法:將oms節點擴容到叢集中可以不擴容任何服務和例項
2.5 nscd服務異常導致元件業務不能正常使用
原因分析:因為元件是用用id –Gn命令查詢用用所屬的使用者組,單這兩個服務異常時,執行該命令是查詢不到該使用者所屬的使用者組的,就會拋沒許可權的異常
解決辦法:執行service nscd status檢視nscd服務的狀態,如果是stop的,則執行service nscd restart命令重新拉起來即可
3 kerberosserver相關問題
3.1 java api執行kerberos認證提示clockskew is great的錯誤資訊
解決方法:該問題是由於客戶端的機器和kdc服務端的機器時差超過當前配置的允許時差(預設5分鐘)。
修改客戶端機器的時間,確保和KDC的時差在配置的時差範圍內即可。也可以修改kerberos服務的clock_skew配置,預設為300秒,提高該值即可。
3.2 kinit 某個賬戶,提示 Principal information error while getting initial credentials
原因分析:該問題是由於提供的密碼非服務端儲存的使用者密碼,請查詢正確的密碼後,再執行kinit。
還有一種場景就是該賬戶不存在
3.3 kinit 某個賬戶,提示 Clients credentials have been revoked
解決方法:該問題是由於5分鐘內連續輸入錯誤密碼次數超過5次,導致該使用者在KDC服務端被鎖定。
首先檢查是否有某個客戶端程序在使用舊密碼頻繁的登陸KDC,停止掉該客戶端程序,再等待五分鐘。再次執行kinit。
3.4 客戶端應用提交任務到hadoop叢集,客戶端拋異常,提示Failed to find any Kerberos tgt 或者No valid credentials provided
解決方法:該問題出現的可能性有兩個,一個是客戶端應用在提交任務的時候,沒有執行KDC登陸操作,導致記憶體無TGT,提交任務的時候,無法找到TGT,因此出現該錯誤。
另一個是客戶端任務使用hadoop提供的KDC認證的介面不當導致,曾經出現某個產品的客戶端任務在多執行緒裡面直接呼叫loginfromkeytab函式獲取TGT,導致一個程序的記憶體中存在多個TGT,後面再reloginFromKeytab 重新整理TGT的時候,無法保證所有TGT都被重新整理。
這兩種場景,程序的一開始呼叫hadoop提供的loginfromkeytab函式,登陸KDC,得到TGT。後續再提交任務的前面,呼叫hadoop提供的reloginFromKeytab 函式重新整理該TGT即可。
3.5 元件啟動過程中,呼叫auth-config.sh導keytab失敗
問題分析:出現該問題的現象比較多,分別列舉:
場景一:提示export and check keytab file failed。但是實際上元件的etc目錄下面已經生成可用的keytab。此時出現該問題的原因為kinit該keytab失敗。可以切換到omm使用者(su - omm),執行kinit –k –t xxx.keytab xxx(xxx為使用者名稱)此時提示:a)無法連線KDC伺服器的話,則是該節點無法ping通kerberos伺服器節點。b)xxxxx is revoked。則賬戶被鎖定,很可能是有某個應用程式(客戶端)在定時執行,多數是重灌叢集的時候,沒有將客戶端應用程式及時停止,導致客戶端還在使用老的keytab登陸叢集,導致該賬號被鎖定,元件無法啟動。
場景二:提示export and check keytab file failed。元件對應的etc目錄也沒有keytab,這種情況很可能是本節點無法連線到主用ldapserver。請使用ping檢查網路連通性。
4 kerberosclient相關問題
4.1 擴容叢集過程中,提示kerberosclient安裝失敗
解決辦法:到對應失敗的節點上,cd到/var/log/Bigdata/nodeagent/agentlog目錄,開啟
agent.log日誌,找到對應的失敗日誌時間點,提示:download krb5失敗。則是因為在oms主節點上面,位於下面位置的目錄被人人為刪除:/opt/huawei/Bigdata/om-0.0.1/packaged-distributables/home/keytabs/
請重新在omm使用者下面建立該目錄,同時從備份的oms包中抽取該目錄下面的檔案恢復即可。
4.2 安裝叢集過程中,提示kerberosclient安裝失敗
解決辦法:到對應失敗的節點上,cd到/var/log/Bigdata/nodeagent/agentlog目錄,開啟
agent.log日誌,找到對應的失敗日誌時間點,提示:download krb5失敗,搜尋上下文,觀察是否有kerberosserver被安裝skipped的列印,如果有,則是安裝過程中,kerberosserver被跳過,導致該目錄無法建立,opt/huawei/Bigdata/om-0.0.1/packaged-distributables/home/keytabs/
因此安裝客戶端失敗。解決辦法是解除安裝叢集,重新安裝。
5 cas相關問題
5.1 cas首頁輸入使用者名稱和密碼後,提示The credentials you provided cannot be determined to be authentic.
原因分析:該問題出現有多種可能性,
(1).輸入的密碼不對,請check對應的使用者密碼。
(2).輸入的使用者(非admin使用者)不存在,請check使用者是是否存在。
可以參考ldapserver的命令手冊,使用ldapsearch命令檢視伺服器ldapserver內是否有對應使用者資訊。
(3).ldapserver程序故障,請使用/opt/huawei/Bigdata/om-0.0.1/sbin/status-oms.sh 命令檢視oldap資源是否正常,如果不正常,請check日誌,/var/log/Bigdata/oldapserver/ldapserver_start.log觀察內容中是否有No such object列印,如果是,則是因為資料庫遭到破壞,請嘗試使用備份包修復,具體參考CPI手冊。
5.2 登陸元件webui,比較慢,最終在瀏覽器上顯示ST-XXXX無法識別
問題分析:該問題原因是因為元件所在的服務節點與cas所在服務節點訪問存在時延,且時延大於10秒鐘,因為ST的存活有效期僅為10秒鐘,一旦網路時延較大,導致ST從元件服務端傳輸到cas服務端的時候,時間距離ST生成的時間大於10秒鐘,CAS認為該ST為偽造,會自動丟棄,並返回錯誤。
解決方案:先分析為啥元件服務端和cas服務端訪問有時延,可能原因:虛擬機器效能較差,網路時延較大等,解決這些問題即可
5.3 Webui的使用者管理介面無法顯示叢集使用者
問題分析:這種原因多數是acs程序連結ldap服務失敗,請檢視日誌/var/log/Bigdata/controller/acs.log,觀察其中是否有can not bind,can not connect, can not reach ldap伺服器的異常丟擲,需要看一下叢集中的中的ldapserver是否正常即可。這種一般是由於ldapServer異常了
問題解決:重啟ldapserver服務,如果還是不能解決請在ldapserver的configuration頁面修改privaed ip地址為ldap備的ip,儲存配置重啟該服務即可
6 Web相關問題
6.1 外部應用程式呼叫FI的REST介面的時候,返回403錯誤,無法操作
原因之一:安全加固,外部應用程式沒有再連續的rest介面呼叫中帶有效不變的IP和USERAGENT訊息,
FI會在logincheck的介面中將使用方的IP和USERAGENT訊息補充到session中,並且發給使用方,後續使用方需要在以後的訊息中都攜帶該IP和USERAGENT訊息。否則會導致安全check失敗。
定位方法:check的日誌是oms節點的/var/log/Bigdata/tomcat/web.log,觀察呼叫REST介面過程中,是否有IP_AND_USER_AGENT is {} and message is這個列印,如果存在,則是改問題導致。
解決方法:修改REST呼叫程式,在訊息頭上新增不變的RemoteIP和Useragnet內容即可。
6.2 通過瀏覽器,訪問8080埠無法跳轉,提示404錯誤,但是使用28443可以跳轉,登陸成功。
定位方法:請在oms主用節點,執行 netstat –anp | grep 8080 抓取當前在8080埠監聽的應用程式程序ID。
tcp 0 0 160.172.0.218:8080 :::* LISTEN 28329/java
再執行ps –ef | grep 28329 觀察該應用程式是否是oms的tomcat程序,這種問題,基本都是有其他應用程式在8080埠監聽,導致佔用了oms的tomcat的埠,導致無法訪問tomcat的8080埠。
解決方法:將該應用程式殺掉,在重啟oms的tomcat,tomcat在啟動之後會重新監聽8080埠
6.3 通過瀏覽器,訪問8080和28443埠都訪問不了FI Manager
原因分析:一般是由於tomcat沒有起來
定位方法:檢視/var/log/Bigdata/tomcat/catalina.out日誌,看報什麼錯誤日誌
解決方法:重啟tomcat即可,
/opt/huawei/Bigdata/apache-tomcat-7.0.57/bin/shutdown.sh
/opt/huawei/Bigdata/apache-tomcat-7.0.57/bin/startup.sh
原文連結:https://forum.huawei.com/enterprise/zh/thread-321725.html