CDH6.3.2Hadoop默認配置下存在未授權漏洞,禁止匿名訪問


前言

公司在做安全漏洞掃描。發現CDH Hadoop默認配置下存在未授權漏洞,攻擊者可以在未授權的情況下遠程執行代碼。需立即修復加固。

1.Hadoop HTTP web-控制台認證

我們安裝完hadoop后,默認情況下我們訪問UI界面是沒有任何安全驗證的。現在我想要的是對Hadoop的Web控制台界面加入一些安全機制,最好是能設置用戶名和密碼,通過用戶名密碼的方式來訪問我們的Hadoop Web控制台。在做之前,我首先想看看官方有沒有類似的這樣的功能。下面的文檔是官方的 《Hadoop HTTP web-控制台認證》 的說明文檔:
https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/HttpAuthentication.html
從下面的截圖可以看到,有一種方法可以進行設置,那我們就先用這種方式來設置一下,看看效果如何。

 通過上面的文檔介紹,以及參考其他博客的方法,我們做下面的配置

1.1Hadoop web頁面的授權設定

1.1.1創建並配置密鑰文件

創建 secret 目錄,用於存放密鑰文件

mkdir /opt/hadoop/secret
vim /opt/hadoop/secret/hadoop-http-auth-signature-secret

在 hadoop-http-auth-signature-secret 文件當中寫入了 qazwsx$123

1.1.2CDH6.3.2修改HDFS NameNode core-site.xml文件,添加下面配置

<property>
        <name>hadoop.http.filter.initializers</name>
        <value>org.apache.hadoop.security.AuthenticationFilterInitializer</value>
    </property>
    
    <!-- 定義用於HTTP web控制台的身份驗證。支持的值是:simple | kerberos | #AUTHENTICATION_HANDLER_CLASSNAME# -->
    <property>
        <name>hadoop.http.authentication.type</name>
        <value>simple</value>
    </property>
    
    <!-- 
    簽名秘密文件,用於對身份驗證令牌進行簽名。
    對於集群中的每個服務,ResourceManager, NameNode, DataNode和NodeManager,應該使用不同的secret。
    這個文件應該只有運行守護進程的Unix用戶可以讀。 
    -->
    <property>
        <name>hadoop.http.authentication.signature.secret.file</name>
        <value>/opt/hadoop/secret/hadoop-http-auth-signature-secret</value>
    </property>
     
    <!-- 指示在使用“簡單”身份驗證時是否允許匿名請求。 -->
    <property>
        <name>hadoop.http.authentication.simple.anonymous.allowed</name>
        <value>false</value>
    </property>
    <!-- 多少秒沒有操作,token將過期。 -->
    <property>     
        <name>hadoop.http.authentication.token.max-inactive-interval</name>     
        <value>60</value>  
    </property>

參數說明:

參數 說明 默認值
hadoop.http.filter.initializers 認證的類 org.apache.hadoop.security.AuthenticationFilterInitializer
hadoop.http.authentication.type 認證類型,有Kerberos和simple simple
hadoop.http.authentication.signature.secret.file 授權用戶文件,只有存在於這里面的用戶才能訪問集群 $user.home/hadoop-http-auth-signature-secret
hadoop.http.authentication.simple.anonymous.allowed 是否允許匿名用戶訪問 true
hadoop.http.authentication.token.max-inactive-interval 多少秒沒有操作,token將過期 -1

1.1.3.CM控制台添加配置

 

 

 

 

 

 

 

 

保存更改;

重啟;

1.2效果驗證

訪問web界面,http://127.0.0.1:9870,出現了如下所示的頁面:

 看起來有效果,按照官方的描述,我們在訪問路徑后面加user.name參數,值為我們之前設置的值,如:http://127.0.0.1:9870?user.name=qazwsx$123

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM