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.initializersname>
        <value>org.apache.hadoop.security.AuthenticationFilterInitializervalue>
    property>
    
    
    <property>
        <name>hadoop.http.authentication.typename>
        <value>simplevalue>
    property>
    
    
    <property>
        <name>hadoop.http.authentication.signature.secret.filename>
        <value>/opt/hadoop/secret/hadoop-http-auth-signature-secretvalue>
    property>
     
    
    <property>
        <name>hadoop.http.authentication.simple.anonymous.allowedname>
        <value>falsevalue>
    property>
    
    <property>     
        <name>hadoop.http.authentication.token.max-inactive-intervalname>     
        <value>60value>  
    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

cdh