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

 

posted @   民宿  阅读(2048)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示