【VMware vCenter】阻止或移除 VMware 增強型身份驗證外掛(EAP)的URL下載連結。

JUNIOR_MU發表於2024-03-01

VMware最近釋出了一個新的安全公告(VMSA-2024-0003),它影響了已棄用(vCenter Server 7.0 U2版本)的VMware 增強身份驗證外掛(EAP)。

根據官方說明,可根據VMware KB 96442刪除安裝在桌面系統中的EAP外掛,其中EAP外掛包含瀏覽器內外掛/客戶端和Windows服務外掛。

不過,除了刪除桌面系統中已安裝的EAP外掛以外,有人提出如何禁用EAP外掛下載本身的問題,該EAP外掛預設作為vSphere UI登入頁面中的超連結提供,如下圖所示(位於底部):

【VMware vCenter】阻止或移除 VMware 增強型身份驗證外掛(EAP)的URL下載連結。

我知道有幾種方法可以同時阻止和/或刪除這個URL下載連結,因此,我將這幾種方法列出來,使用者可以根據習慣自行選擇哪種方式進行使用。

一、禁用vSphere UI上的“使用 Windows 會話身份驗證”

EAP外掛與vSphere UI中提供的“使用 Windows 會話身份驗證”核取方塊結合使用。如果您希望同時禁用該功能,感謝Reddit 使用者 r/always_salty,他早些時候透過使用 sso-config.sh 實用程式在vCenter Server Appliance (VCSA)上SHELL執行以下命令來完全禁用 Windows 身份驗證:

sso-config.sh -set_authn_policy -winAuthn false -t vsphere.local

【VMware vCenter】阻止或移除 VMware 增強型身份驗證外掛(EAP)的URL下載連結。

執行後,重新重新整理vSphere UI登入介面,“使用 Windows 會話身份驗證”核取方塊已經不存在。

【VMware vCenter】阻止或移除 VMware 增強型身份驗證外掛(EAP)的URL下載連結。

二、將EAP的URL下載連結重定向到localhost

雖然您可以解除安裝EAP外掛並完全禁用 Windows 身份驗證,但透過Windows桌面訪問vSphere UI的任何人仍可以看到下載 URL連結(如果您使用的是Linux或macOS系統,則在開啟vSphere UI時不會顯示)。

如果您仔細檢視,您會發現EAP外掛的URL實際上並不託管在VCSA上,而是託管在VMware的網站上。您可以使用一個簡單的技巧,更新VCSA上的/etc/hosts檔案,將主機名vsphereclient.vmware.com重定向到localhost (127.0.0.1),這樣當使用者單擊連結時,它就不會跳轉去任何地方。為此,請登入VCSA並將以下條目新增到/etc/hosts檔案中:

127.0.0.1 vsphereclient.vmware.com

【VMware vCenter】阻止或移除 VMware 增強型身份驗證外掛(EAP)的URL下載連結。

新增到hosts檔案後,您再點選“下載增強型身份驗證外掛”將不會跳轉到任何地方。

注意:如果您組織內能夠有辦法阻止特定 URL,比如透過網路防火牆進行訪問控制,這是一個可擴充套件性選項,而不侷限於對單個VCSA進行更改。

三、修改EAP的URL下載連結

將EAP下載URL重定向到localhost是一個很好的技巧,但它實際上並不會更改 URL 字串本身,當您懸停或右鍵單擊連結時,該字串依然可見。

如果您想要更改URL連結,則需要修改VCSA中/usr/lib/vmware-sso/vmware-sts/webapps/ROOT/resources/js/websso.js的以下部分:

   // builds a complete url for the CIP plugin
   var createCompleteUrl = function createCompleteUrl() {
      var url = 'http://vsphereclient.vmware.com/vsphereclient/' +
            'VMware-EnhancedAuthenticationPlugin-' +
            cipBuildVersion +
            '.exe';
      return url ;
   };

   var isVCLogin =   function isVCLogin() {
      if (tenant_brandname == null || tenant_brandname == '') {
         return true;
      } else {
         return false;
      }
   };

修改成你想要的URL連結:

// builds a complete url for the CIP plugin
   var createCompleteUrl = function createCompleteUrl() {
      var url = 'http://no.eap.download.for.you';
      return url ;
   };

   var isVCLogin =   function isVCLogin() {
      if (tenant_brandname == null || tenant_brandname == '') {
         return true;
      } else {
         return false;
      }
   };

登入vSphere UI,重新整理一下網頁,將滑鼠懸停或右鍵單擊連結時,該URL下載連結已經改變。

【VMware vCenter】阻止或移除 VMware 增強型身份驗證外掛(EAP)的URL下載連結。

如果環境是vCenter 8.0版本,VCSA路徑沒有/usr/lib/vmware-sso/vmware-sts/webapps/ROOT/resources/js/websso.js檔案,只有/usr/lib/vmware-sso/vmware-sts/webapps/ROOT.war檔案,下面是vCenter 8.0版本的修改過程,僅供參考:

cp /usr/lib/vmware-sso/vmware-sts/webapps/ROOT.war /usr/lib/vmware-sso/vmware-sts/webapps/ROOT.war.bak
mkdir /root/ROOT
cp /usr/lib/vmware-sso/vmware-sts/webapps/ROOT.war /root/ROOT/
cd /root/ROOT
unzip ROOT.war
rm ROOT.war
vim resources/js/websso.js  //第321-324行,同上述中的修改方式一樣
zip -r /root/ROOT.war index.jsp META-INF resources WEB-INF
cp /root/ROOT.war /usr/lib/vmware-sso/vmware-sts/webapps/ROOT.war
cd /root/
rm /root/ROOT -rf
rm /root/ROOT.war
reboot

注意:更新或者升級VCSA時不會保留對預設websso.js條目的修改,如果更新VCSA後,則需要重新修改此項。

四、刪除EAP的URL下載連結

如果我們還想更進一步,阻止EAP的URL下載連結顯示,那麼我們同樣可以基於現有的程式碼,在當它檢測到您使用的是Linux或macOS系統時阻止URL顯示的這個地方,對/usr/lib/vmware-sso/vmware-sts/webapps/ROOT/resources/js/websso.js進行小小的調整:

   // if CIP is installed, writes to browser localStorage to set var "vmwCIPInstalled" to "true"
   // if CIP is not installed, set var to "false"
   var setCSDInstalled = function setCSDInstalled(){
      var sspiCheckboxEle = document.getElementById('sspiCheckbox');
      if (this._VersionStr != null || !isVCLogin()) {
         if (sspiCheckboxEle != null && windows_auth == "true" && !isMac && !isLinux) {
             sspiCheckboxEle.disabled = false;
             checkboxDisableChange(sspiCheckboxEle);
         }   
         $('#footer').html('');
         $('#footer').css('display', 'none');
      } else {
         if (!isMac && !isLinux) {
             if (sspiCheckboxEle != null) {
                 sspiCheckboxEle.disabled = true;
                 checkboxDisableChange(sspiCheckboxEle);
             }   
             var cspDownloadLink = createCompleteUrl();
             $('#footer').css('display', 'block');
             $('#downloadCIPlink').attr('href', cspDownloadLink);
             $('#downloadCIPlinkBox').show();
         }   
      }   
   };

將if (!isMac && !isLinux)這行程式碼中的感嘆號"!"去掉

// if CIP is installed, writes to browser localStorage to set var "vmwCIPInstalled" to "true"
   // if CIP is not installed, set var to "false"
   var setCSDInstalled = function setCSDInstalled(){
      var sspiCheckboxEle = document.getElementById('sspiCheckbox');
      if (this._VersionStr != null || !isVCLogin()) {
         if (sspiCheckboxEle != null && windows_auth == "true" && !isMac && !isLinux) {
             sspiCheckboxEle.disabled = false;
             checkboxDisableChange(sspiCheckboxEle);
         }   
         $('#footer').html('');
         $('#footer').css('display', 'none');
      } else {
         if (isMac && isLinux) {
             if (sspiCheckboxEle != null) {
                 sspiCheckboxEle.disabled = true;
                 checkboxDisableChange(sspiCheckboxEle);
             }   
             var cspDownloadLink = createCompleteUrl();
             $('#footer').css('display', 'block');
             $('#downloadCIPlink').attr('href', cspDownloadLink);
             $('#downloadCIPlinkBox').show();
         }   
      }   
   };

登入vSphere UI,重新整理一下網頁,可以發現“下載增強型身份驗證外掛”已經不顯示了,無論客戶端的作業系統是哪種。

【VMware vCenter】阻止或移除 VMware 增強型身份驗證外掛(EAP)的URL下載連結。

如果環境是vCenter 8.0版本,VCSA路徑沒有/usr/lib/vmware-sso/vmware-sts/webapps/ROOT/resources/js/websso.js檔案,只有/usr/lib/vmware-sso/vmware-sts/webapps/ROOT.war檔案,下面是vCenter 8.0版本的修改過程,僅供參考:

cp /usr/lib/vmware-sso/vmware-sts/webapps/ROOT.war /usr/lib/vmware-sso/vmware-sts/webapps/ROOT.war.bak
mkdir /root/ROOT
cp /usr/lib/vmware-sso/vmware-sts/webapps/ROOT.war /root/ROOT/
cd /root/ROOT
unzip ROOT.war
rm ROOT.war
vim resources/js/websso.js  //第306行,同上述中的修改方式一樣
zip -r /root/ROOT.war index.jsp META-INF resources WEB-INF
cp /root/ROOT.war /usr/lib/vmware-sso/vmware-sts/webapps/ROOT.war
cd /root/
rm /root/ROOT -rf
rm /root/ROOT.war
reboot

注意:更新或者升級VCSA時不會保留對預設websso.js條目的修改,如果更新VCSA後,則需要重新修改此項。

參考:Quick Tip - Block or remove download URL for VMware Enhanced Authentication Plug-in (EAP)

相關文章