中国红客联盟 首页 资讯 国内安全 查看内容

【Hadoop】Hadoop安全之Knox网关

2025-3-3 10:34| 发布者: Honkers| 查看: 102| 评论: 0

摘要: 目录 一、概述 2.1 knox介绍 2.2 版本信息 二、部署 三、验证Knox网关 3.1 Hdfs RESTFULL 3.2 HDFSUI 3.3 YARNUI 3.4 HBASEUI 一、概述 2.1 knox介绍 Apache Knox网关是一个用于与Apache Had

目录

一、概述

2.1 knox介绍

2.2 版本信息

二、部署

三、验证Knox网关

3.1 Hdfs RESTFULL

3.2 HDFSUI

3.3 YARNUI

3.4 HBASEUI


一、概述


2.1 knox介绍


Apache Knox网关是一个用于与Apache Hadoop部署的REST api和ui交互的应用程序网关。Knox网关为所有与Apache Hadoop集群的REST和HTTP交互提供了一个单一的访问点。

Apache Knox Gateway是一款用于保护Hadoop生态体系安全的代理网关系统,为Hadoop集群提供唯一的代理入口。Knox以类似反向代理的形式挡在集群前面,隐匿部署细节(例如端口号和机器名等),接管所有用户的HTTP请求(例如WEB UI 控制台访问和RESTful 服务调用),以此来保护集群安全。

Knox提供三组面向用户的服务:

代理服务

Apache Knox项目的主要目标是通过代理HTTP资源提供对Apache Hadoop的访问。

身份验证服务

REST API访问的身份验证以及ui的WebSSO流。LDAP/AD,基于报头的预认证,Kerberos,SAML、OAuth都是可用的选项。

客户服务

客户端开发可以通过DSL编写脚本或直接使用Knox Shell类作为SDK来完成。KnoxShell交互式脚本环境将groovy shell的交互式shell与Knox shell SDK类相结合,用于与部署的Hadoop集群中的数据进行交互。

Knox网关本质上是一款基于Jetty实现的高性能反向代理服务器,通过内置的过滤器链来处理URL请求,支持使用LDAP进行用户身份认证。Knox网关在架构设计上具有良好的可扩展性,这种扩展性主要通过Service和Provider这两个扩展性框架来实现。Server扩展性框架还提供了一种网关新增的HTTP或RESTful服务端点的途径,例如WebHDFS就是以新建的Service的形式加入Knox网关的。而Provider扩展性框架则是用来定义并实现相应Service所提供的功能,例如端点的用户认证或是WebHDFS中的文件上传等功能。当我们使用Knox作为代理网关之后,大数据平台中Hadoop系统的逻辑拓扑就会变成如下图所示:

2.2 版本信息


序号

名称

版本

描述

1

HDFS

3.3.3

分布式大数据存储

2

YARN

3.3.3

分布式资源调度与管理平台

3

Spark

3.1.3

分布式计算系统

4

Hbase

2.0.2

分布式列式存储数据库

二、部署


安装包下载地址:

Apache Download Mirrors

解压

[code]unzip knox-2.0.0.zip ll knox-2.0.0[/code]

bin目录说明

[code][root@ddp01 knox-2.0.0]# ll bin/ 总用量 140 -rw-r--r-- 1 root root 22425 1月 22 2020 gateway.jar -rwxr-xr-x 1 root root 4657 1月 22 2020 gateway.sh # 启动gateway的脚本 -rw-r--r-- 1 root root 1024 1月 22 2020 gateway.xml -rw-r--r-- 1 root root 22386 1月 22 2020 knoxcli.jar -rwxr-xr-x 1 root root 1987 1月 22 2020 knoxcli.sh # 内置的knox客户端脚本,一般用于密码、证书、别名、ldap服务、测试等 -rwxr-xr-x 1 root root 5599 1月 22 2020 knox-env.sh -rwxr-xr-x 1 root root 8580 1月 22 2020 knox-functions.sh # 一些预定的脚本函数,例如appStart等,在ldap.sh和gateway.sh加载使用 -rw-r--r-- 1 root root 22454 1月 22 2020 ldap.jar -rwxr-xr-x 1 root root 2862 1月 22 2020 ldap.sh # /启动ldap脚本,gateway的服务依赖于ldap服务,不启动会报错 -rw-r--r-- 1 root root 1059 1月 22 2020 ldap.xml -rw-r--r-- 1 root root 22421 1月 22 2020 shell.jar[/code]

conf 目录说明

[code][root@ddp01 knox-2.0.0]# ll conf/ 总用量 36 drwxr--r-- 2 root root 20 1月 22 2020 descriptors -rw-r--r-- 1 root root 4714 1月 22 2020 gateway-log4j2.xml -rw-r--r-- 1 root root 8052 1月 22 2020 gateway-site.xml # gateway总配置,主要配置例如ldap服务url、网关的port、网关的名字(访问路径)、黑白名单等 -rw-r--r-- 1 root root 1684 1月 22 2020 knoxcli-log4j2.xml -rw-r--r-- 1 root root 1765 1月 22 2020 ldap-log4j2.xml -rw-r--r-- 1 root root 91 1月 22 2020 README drwxr--r-- 2 root root 50 1月 22 2020 shared-providers -rw-r--r-- 1 root root 1621 1月 22 2020 shell-log4j2.xml drwxr--r-- 2 root root 134 1月 22 2020 topologies # 主要用户配置服务,所有的服务,不管是hdfsui、yarnui、sparkui都从这里配置 -rw-r--r-- 1 root root 2987 1月 22 2020 users.ldif # 内置的ldap的配置文件,在ldap服务启动的时候,会自动读取这个配置文件[/code]

gateway-site.xml 重要参数如下:

param

default

description

gateway.port

8443

knox默认端口

gateway.path

gateway

默认url中的路径

gateway.hadoop.kerberos.secured

FALSE

集群是否开启kerberos

java.security.krb5.conf

/etc/knox/conf/krb5.conf

krb5.conf的完整路径

java.security.auth.login.config

/etc/knox/conf/krb5JAASLogin.conf

JAAS登陆配置的完整路径

gateway.dispatch.whitelist

default

一个以分号分隔的正则表达式列表,用于控制允许Knox将调度和重定向到哪些端点。

gateway.dispatch.whitelist.services

localhost

将应用白名单服务角色列表以逗号分隔

topologies 放置所有的网络拓扑xml文件,用于部署集群代理:

添加 knox用户并启动 ldap和gateway 服务

使用knox 用户启动,然后使用 jps 可以看到两个进程

使用 jps 可以看到两个进程

https://192.168.2.98:8443/gateway/homepage/home/, 账号: admin/admin-password

[code]https://192.168.2.98:8443/gateway/knoxsso/knoxauth/lgin.html?originalUrl=https://192.168.2.98:8443/gateway/homepage/home/ https://192.168.2.98:8443/gateway/homepage/home/[/code]

如下可以看到两个配置


三、验证Knox网关


3.1 Hdfs RESTFULL


[code]curl -i -ku admin:admin-password -X GET "https://localhost:8443/gateway/my_hdfs/webhdfs/v1/?op=LISTSTATUS"[/code]

3.2 HDFSUI


[code]https://192.168.2.98:8443/gateway/my_hdfs/hdfs https://192.168.2.98:8443/gateway/my_hdfs/hdfs/?host=http://192.168.2.100:9870[/code]

账号密码:admin/admin-password

可以正常访问HDFSUI

3.3 YARNUI


[code]https://192.168.2.98:8443/gateway/my_hdfs/yarn/[/code]

提交测试任务

[code]spark-submit \ --class org.apache.spark.examples.SparkPi \ --master yarn \ --executor-memory 1G \ --num-executors 1 \ /opt/datasophon/spark3/examples/jars/spark-examples_2.12-3.1.3.jar \ 2[/code]

查看job日志

3.4 HBASEUI


[code]https://192.168.2.98:8443/gateway/my_hdfs/hbase/webui/master?&host=192.168.2.100&port=16010[/code]

master页面


参考文章链接:

2020全网最全Apache Knox实战总结_apache knox 实践-CSDN博客

LDAP:LDAP介绍及使用-CSDN博客

Apache Knox安装测试_knox 安装-CSDN博客

Ambari 使用 Knox 进行 LDAP 身份认证:https://zhuanlan.zhihu.com/p/679909497


免责声明:本内容来源于网络,如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

路过

雷人

握手

鲜花

鸡蛋

发表评论

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2025 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行