当前位置: 首页 > article >正文

【Hadoop】Hadoop安全之Knox网关

目录

一、概述

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

解压

unzip  knox-2.0.0.zip
ll knox-2.0.0

bin目录说明

[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

conf 目录说明

[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服务启动的时候,会自动读取这个配置文件

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

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/

如下可以看到两个配置


三、验证Knox网关


3.1 Hdfs RESTFULL


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

3.2 HDFSUI


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

账号密码:admin/admin-password

可以正常访问HDFSUI

3.3 YARNUI


https://192.168.2.98:8443/gateway/my_hdfs/yarn/

提交测试任务

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

查看job日志

3.4 HBASEUI


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

master页面


参考文章链接:

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

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

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

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


http://www.kler.cn/a/465304.html

相关文章:

  • 【操作系统不挂科】操作系统期末考试题库<1>(单选题&简答题&计算与分析题&应用题)
  • 【项目开发】C#环境配置及VScode运行C#教程(学生管理系统)
  • 2025/1/1 路由期末复习作业二
  • 《Rust权威指南》学习笔记(三)
  • Kafka3.x KRaft 模式 (没有zookeeper) 常用命令
  • 项目优化之策略模式
  • 17.3、网络安全应急响应技术与常见的工具
  • PHP框架+gatewayworker实现在线1对1聊天--接收消息(7)
  • 基于SpringBoot的校园二手交易平台的设计与实现(源码+SQL+LW+部署讲解)
  • 【云计算】OpenStack单节点allinone部署
  • js 用2进制来表示权限
  • 关于Lombok中注解失效的问题
  • 【优选算法】三数之和
  • 聚合函数理解
  • 深入了解PINN:物理信息神经网络(Physics-Informed Neural Networks)
  • 电影院售票 - 策略模式(Strategy Pattern)
  • github提交不上去,网络超时问题解决
  • 【AIGC】ChatGPT 记忆功能揭秘:使用与管理的全方位指南
  • 计算帐户每月余额,补齐缺失日期:从 SQL 到 SPL
  • Luma AI 简单几步生成视频
  • SpringMVC(一)配置
  • 【OpenCV】使用Python和OpenCV实现火焰检测
  • Spring Boot 中 TypeExcludeFilter 的作用及使用示例
  • 数据挖掘——聚类
  • vue3基础,小白从入门到精通
  • 三维算法基础知识