Hadoop安全基线
访问控制
1.高危-限制匿名用户访问
描述:
系统默认允许匿名用户访问,大大增加了系统信息泄露和被攻击的风险。为提高系统安全性,应配置禁止匿名方式访问。
加固建议:
找到配置文件<hadoop_home>/etc/hadoop/core-site.xml,增加或修改配置项:
<property>
<name>hadoop.http.authentication.simple.anonymous.allowed</name>
<value>false</value>
</property>
配置完成后保存并重启服务。其中<hadoop_home>为hadoop的安装路径。
2.高危-修改DataNode默认端口
描述:
通过访问 DateNode 的 WebUI 管理界面,可以查看系统运行的关键数据信息,还能下载任意文件,需要修改默认端口,从而限制访问。
加固建议:
- 找到配置文件<hadoop_home>/etc/hadoop/hdfs-site.xml,增加或修改以下配置项,示例:
<property>
<name>dfs.datanode.address</name>
<value>9755</value>
</property>
<property>
<name>dfs.datanode.http.address</name>
<value>9753</value>
</property>
<property>
<name>dfs.datanode.https.address</name>
<value>9754</value>
</property>
配置完成后保存并重启服务。其中<hadoop_home>为hadoop的安装路径。value值为端口号,默认端口号在3.x版本分别为 “9866”, “9864”, “9865”,在2.x版本分别为 “50010”, “50075”, “50475”。只需配置端口号的值与默认值不同即可。
- 使用防火墙或者iptables等对访问源ip进行控制,避免将服务端口开放到公网。
- 开启kerberos认证,参考:http://hadoop.apache.org/docs/r2.7.3/hadoop-auth/Configuration.html
3.中危-限制Hadoop RPC服务端口的访问
描述:
Hadoop Yarn 默认对外开放了 RPC 服务,攻击者可在未经过身份验证的情况下通过该漏洞在受影响主机执行任意命令,控制服务器。
加固建议
- 根据官方文档开启和配置Kerberos认证,相关配置如下:在core-site.xml配置文件中配置:
<property> <name>hadoop.security.authentication</name> <value>kerberos</value> <final>false</final> <source>core-site.xml</source> </property> <property> <name>hadoop.rpc.protection</name> <value>authentication</value> <final>false</final> <source>core-default.xml</source> </property>
- 设置 Hadoop RPC服务所在端口仅对可信地址开放。
入侵防范
4.高危-禁用高危风险组件
描述:
Hdfs用户启用了该组件就可以执行任意命令,存在严重的被攻击风险,需要禁用该组件。
加固建议:
找到配置文件<hadoop_home>/etc/hadoop/core-site.xml,修改以下配置项,示例:
<property>
<name>hadoop.security.group.mapping</name>
<value>org.apache.hadoop.security.JniBasedUnixGroupsMappingWithFallback</value>
</property>
配置完成后保存并重启服务。其中<hadoop_home>为hadoop的安装路径。 或者找到配置文件<hadoop_home>/etc/hadoop/core-site.xml
,也可以直接删除上述hadoop.security.group.mapping这一项的配置。
5.高危-Hadoop未授权访问
描述:
Hadoop是一款分布式系统基础架构。默认配置下存在未授权漏洞,攻击者可以在未授权的情况下远程执行代码。需立即修复加固。
加固建议:
禁止匿名访问,在配置文件<bin_path>/etc/hadoop/core-site.xml中增加或修改配置项:
<property>
<name>hadoop.http.authentication.simple.anonymous.allowed</name>
<value>false</value>
</property>
配置完成后重启。其中<bin_path>为hadoop的安装路径。
数据保密性
6.高危-修改NameNode默认端口
描述:
通过访问 NameNode 的 WebUI 管理界面,可以查看系统运行的关键数据信息,还能下载任意文件,需要修改默认端口,从而限制访问。
加固建议:
- 找到配置文件<hadoop_home>/etc/hadoop/hdfs-site.xml,增加或修改以下配置项,示例:
<property>
<name>dfs.namenode.http-address</name>
<value>9759</value>
</property>
<property>
<name>dfs.namenode.https-address</name>
<value>9760</value>
</property>
配置完成后保存并重启服务。其中<hadoop_home>为hadoop的安装路径。value值为端口号,默认端口号在3.x版本分别为 “9870”, “9871”,在2.x版本分别为 “50070”, “50470”。只需配置端口号的值与默认值不同即可。
- 使用防火墙或者iptables等对访问源ip进行控制,避免将服务端口开放到公网。
- 开启kerberos认证,参考:http://hadoop.apache.org/docs/r2.7.3/hadoop-auth/Configuration.html
7.高危-修改Yarn默认端口
描述:
Hadoop Yarn ResourceManager默认开放,可以获取系统任意信息,存在未授权访问的风险,需要采取修改默认端口等方法限制访问。
加固建议:
- 找到配置文件<hadoop_home>/etc/hadoop/yarn-site.xml,增加或修改以下配置项,示例:
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>8177</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.https.address</name>
<value>8179</value>
</property>
配置完成后保存并重启服务。其中<hadoop_home>为hadoop的安装路径。value值为端口号,默认端口号分别为 “8088”, “8090”。只需配置端口号的值与默认值不同即可。
- 使用防火墙或者iptables等对访问源ip进行控制,避免将服务端口开放到公网。
- 开启kerberos认证,参考:http://hadoop.apache.org/docs/r2.7.3/hadoop-auth/Configuration.html
8.中危-修改Secondary NameNode默认端口
描述:
通过访问 Secondary NameNode 的 WebUI 管理界面,可以查看系统运行的关键数据信息,还能下载任意文件,需要修改默认端口,从而限制访问。
加固建议:
- 找到配置文件<hadoop_home>/etc/hadoop/hdfs-site.xml,增加或修改以下配置项,示例:
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>9757</value>
</property>
<property>
<name>dfs.namenode.secondary.https-address</name>
<value>9758</value>
</property>
<property>
配置完成后保存并重启服务。其中<hadoop_home>为hadoop的安装路径。value值为端口号,默认端口号在3.x版本分别为 “9868”, “9869”, 在2.x版本分别为 “50090”, “50091”。只需配置端口号的值与默认值不同即可。
- 使用防火墙或者iptables等对访问源ip进行控制,避免将服务端口开放到公网。
- 开启kerberos认证,参考:http://hadoop.apache.org/docs/r2.7.3/hadoop-auth/Configuration.html
9.中危-限制对 WebHDFS 的访问
描述:
WebHDFS提供REST API来给用户提供数据,如果 DataNode 的默认端口开放,攻击者可以通过 HDSF 提供的 restful API 对 HDFS 存储的数据进行操作,具有很高的风险。
加固建议:
- 找到配置文件<hadoop_home>/etc/hadoop/hdfs-site.xml,增加或修改以下配置项,示例:
<property>
<name>dfs.datanode.address</name>
<value>9755</value>
</property>
<property>
<name>dfs.datanode.http.address</name>
<value>9753</value>
</property>
<property>
<name>dfs.datanode.https.address</name>
<value>9754</value>
</property>
配置完成后保存并重启服务。其中<hadoop_home>为hadoop的安装路径。value值为端口号,默认端口号在3.x版本分别为 “9866”, “9864”, “9865”,在2.x版本分别为 “50010”, “50075”, “50475”。只需配置端口号的值与默认值不同即可。
- 使用防火墙或者iptables等对访问源ip进行控制,避免将服务端口开放到公网。
- 开启kerberos认证,参考:http://hadoop.apache.org/docs/r2.7.3/hadoop-auth/Configuration.html
10.中危-修改JobHistory的默认端口
描述:
JobHistory的WebUI默认对外开放,存在泄露服务器历史信息的风险,需要采取修改默认端口等的措施进行加固。
加固建议:
- 找到配置文件<hadoop_home>/etc/hadoop/mapred-site.xml,修改以下配置项,示例:
<property>
<name>mapreduce.jobhistory.address</name>
<value>12202</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>18999/value>
</property>
<property>
配置完成后保存并重启服务。其中<hadoop_home>为hadoop的安装路径。value值为端口号,默认端口号分别为 “10020”, “19888” 。只需配置端口号的值与默认值不同即可。
- 使用防火墙或者iptables等对访问源ip进行控制,避免将服务端口开放到公网。
- 开启kerberos认证,参考:http://hadoop.apache.org/docs/r2.7.3/hadoop-auth/Configuration.html
11.中危-修改Mapreduce中Jobtracker和Tasktracker的默认端口
描述:
Mapreduce的WebUI默认对外开放,会造成重要和敏感信息泄露,需要执行修改默认端口等操作限制访问。
加固建议:
- 找到配置文件<hadoop_home>/etc/hadoop/mapred-site.xml,增加或修改以下配置项,示例:
<property>
<name>mapreduce.jobtracker.http.address</name>
<value>50441</value>
</property>
<property>
<name>mapreduce.tasktracker.http.address</name>
<value>50661</value>
</property>
配置完成后保存并重启服务。其中<hadoop_home>为hadoop的安装路径。value值为端口号,默认端口号分别为 “50030”, “50060” 。只需配置端口号的值与默认值不同即可。若hadoop版本为3.0以上则忽略此项。
- 使用防火墙或者iptables等对访问源ip进行控制,避免将服务端口开放到公网。
- 开启kerberos认证,参考:http://hadoop.apache.org/docs/r2.7.3/hadoop-auth/Configuration.html