前言
装好了Hadoop,通过浏览器访问,发现竟然不需要鉴权就能访问,且暴露了很多服务器层文件路径信息,基于多年积累的安全意识,必须得配置些鉴权信息,就有了该文,仅做学习记录,下次自己再装时能提高效率。
生成密码
//hadoop 安装目录下创建 secret目录,存放密码
mkdir -p /home/test/hadoop-3.2.2/secret
//创建密码文件
touch hadoop-http-auth-signature-secret
//设置密码test, 内容必须带引号 例如: "test"
vi touch hadoop-http-auth-signature-secret
修改配置
编辑core-site.xml文件,增加如下配置:
<!-- Authentication for Hadoop HTTP web-consoles -->
<property>
<name>hadoop.http.filter.initializers</name>
<value>org.apache.hadoop.security.AuthenticationFilterInitializer</value>
</property>
<property>
<name>hadoop.http.authentication.type</name>
<value>simple</value>
</property>
<property>
<name>hadoop.http.authentication.token.validity</name>
<value>3600</value>
</property>
<property>
<name>hadoop.http.authentication.signature.secret.file</name>
<value>/home/test/hadoop-3.2.2/secret/hadoop-http-auth-signature-secret</value>
</property>
<property>
<name>hadoop.http.authentication.cookie.domain</name>
<value></value>
</property>
<property>
<name>hadoop.http.authentication.simple.anonymous.allowed</name>
<value>false</value>
</property>
重启dfs
//安装sbin目录下,执行停止、启动
stop-dfs.sh
start-dfs.sh
验证
输入 localhost:9870 ,出现401无权限页面
需要输入 localhost:9870?user.name=test访问
我还以为是那种账号密码登录形式的鉴权,没想到竟然是这种的,一个字符安全性还是比较低,但比啥都没得安全一些吧。