hbase_kerberos 权限认证配置
Kafka权限认证(SASLPLAIN和SASLSCRAM)---转载

Kafka权限认证(SASLPLAIN和SASLSCRAM)---转载⼀、概述1、Kafka的权限分类1)、⾝份认证(Authentication):对client 与服务器的连接进⾏⾝份认证,brokers和zookeeper之间的连接进⾏Authentication(producer 和 consumer)、其他 brokers、tools 与 brokers 之间连接的认证。
2)、权限控制(Authorization):实现对于消息级别的权限控制,clients的读写操作进⾏Authorization:(⽣产/消费/group)数据权限。
2、实现⽅式⾃0.9.0.0版本开始Kafka社区添加了许多功能⽤于提⾼Kafka群集的安全性,Kafka提供SSL或者SASL两种安全策略。
SSL⽅式主要是通过CA令牌实现,此⽂主要介绍SASL⽅式。
1)SASL验证:验证⽅式Kafka版本特点SASL/PLAIN0.10.0.0不能动态增加⽤户SASL/SCRAM0.10.2.0可以动态增加⽤户SASL/Kerberos0.9.0.0需要独⽴部署验证服务SASL/OAUTHBEARER2.0.0需⾃⼰实现接⼝实现token的创建和验证,需要额外Oauth服务2)SSL加密: 使⽤SSL加密在代理和客户端之间,代理之间或代理和⼯具之间传输的数据。
⼆、使⽤SASL进⾏⾝份验证1、SASL/PLAIN验证1.1 版本相关包版本下载地址Kafka0.11.0.0Zookeeper3.4.81.2 Zookeeper配置1)修改zoo.cfg增加两⾏配置:authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProviderrequireClientAuthScheme=sasl2)配置JAAS⽂件:Server {mon.security.plain.PlainLoginModule requiredusername="admin"password="admin-sec"};说明:定义了需要链接到Zookeeper服务器的⽤户名和密码3)加⼊需要的包:kafka-clients-0.10.0.1.jarlz4-1.3.0.jarslf4j-api-1.7.21.jarslf4j-log4j12-1.7.21.jarsnappy-java-1.1.2.6.jar如果没有引⼊对应的kafka包,启动kafka时会报找不到mon.security.plain.PlainLoginModule包的错误。
Kerberos协议

(0)名词解析1、Authentication:身份鉴别2、TGT:票据(ticket-granting ticket)3、SSO:Single Sign On 单点4、KDC:密钥分发中心5、PKI:Public Key Infrastructure 即"公钥基础设施"6、Kerberors: Network Authentication Protocol7、DES:数据加密标准8、TGS:门票分配服务器(1)Kerberors协议Kerberors协议:Kerberors协议主要用于计算机网络的身份鉴别(Authentication),其特点是用户只需输入一次身份验证信息就可以凭借此验证获得的票据(ticket-granting ticket)访问多个服务,即SSO(Single Sign On)。
由于在每个Client和Service之间建立了共享密钥,使得该协议具有相当的安全性。
条件先来看看Kerberors协议的前提条件:如下图所示,Client与KDC,KDC与Service在协议工作前已经有了各自的共享密钥,并且由于协议中的消息无法穿透防火墙,这些条件就限制了Kerberors协议往往用于一个组织的内部,使其应用场景不同于X.509 PKI。
过程Kerberors协议分为两个部分:1 . Client向KDC发送自己的身份信息,KDC从Ticket Granting Service得到TGT(ticket-granting ticket),并用协议开始前Client与KDC之间的密钥将TGT加密回复给Client。
此时只有真正的Client才能利用它与KDC之间的密钥将加密后的TGT解密,从而获得TGT。
(此过程避免了Client直接向KDC发送密码,以求通过验证的不安全方式)2. Client利用之前获得的TGT向KDC请求其他Service的Ticket,从而通过其他Service的身份鉴别。
gateway实现权限认证的流程

gateway实现权限认证的流程Gateway网关是在微服务系统中起到转发和路由请求的作用,它负责将来自客户端的请求转发给相应的微服务,同时还可以实现权限认证的功能。
权限认证是指对请求中的身份信息进行验证,以确定请求的发送者是否具备访问所请求资源的权限。
下面将详细介绍Gateway实现权限认证的流程。
一、请求流程1. 客户端发送请求到Gateway网关。
2. Gateway网关接收到请求并解析请求头,获取身份信息。
3. Gateway网关根据请求路径匹配到相应的路由规则。
4.网关根据路由规则将请求转发给相应的微服务。
5.微服务接收到请求后进行相应的业务处理。
6.微服务返回响应结果给网关。
7.网关将响应结果返回给客户端。
二、权限认证流程1.设置验证过滤器在Gateway的配置中,配置一个验证过滤器。
验证过滤器是一个拦截器,它可以在请求被路由时进行身份认证和权限验证的操作。
2.解析请求头中的身份信息验证过滤器在拦截请求之后,首先会从请求头中获取身份信息。
身份信息可以是JWT令牌、用户名密码或者其他认证凭证。
3.调用认证服务进行身份认证网关将身份信息传递给认证服务,认证服务根据身份信息判断其是否合法。
认证服务可以是独立的认证服务器,也可以是微服务系统中的一个微服务。
4.验证通过后进行权限验证如果身份认证通过,那么网关将调用权限服务进行权限验证。
权限服务可以是独立的权限服务器,也可以是微服务系统中的一个微服务。
权限服务会根据用户的角色和权限配置来判断该用户是否有权限访问该资源。
5.返回验证结果验证过滤器根据权限验证的结果,决定是否给予请求通过的权限。
如果验证通过,请求将继续被路由到相应的微服务进行处理;如果验证不通过,网关会返回相应的错误信息给客户端。
6.缓存验证结果为了提高性能,可以将验证结果进行缓存。
缓存可以是分布式缓存,比如Redis或者Memcached。
7.客户端访问如果请求通过了权限认证,网关会将请求转发给相应的微服务进行处理。
hiveserver2和ldap认证机制

hiveserver2和ldap认证机制HiveServer2和LDAP认证机制引言:在现代大数据生态系统中,Hadoop生态系统是一个重要的组成部分。
Hadoop生态系统包括多个关键组件,比如HDFS、MapReduce、Hive等。
Hive是一个常用的数据仓库工具,用于处理大规模数据集。
Hive的核心是HiveServer2,它允许用户通过各种方式访问Hive。
本文将探讨HiveServer2和LDAP认证机制。
1. HiveServer2概述HiveServer2是Apache Hive的一个重要组件,用于提供对Hive的远程访问。
HiveServer2允许多个客户端同时连接,并提供了对Hive数据库和数据仓库的全面访问。
HiveServer2是一个多用户服务,可以通过各种方式进行身份认证,包括Kerberos和LDAP。
2. LDAP认证机制的概念LDAP(轻量目录访问协议)是一种用于访问分布式目录服务的协议。
它允许用户在网络上查找和跟踪信息资源。
在Hadoop生态系统中,LDAP通常被用作用户身份认证和授权的一种方式。
LDAP认证机制基于一个集中化的目录服务,用于存储用户、组织和权限等信息。
用户可以使用LDAP凭据进行身份验证,并在Hadoop组件中访问受保护的资源。
3. HiveServer2中的LDAP认证配置要启用HiveServer2中的LDAP认证,需要进行以下配置步骤:第一步:安装和配置LDAP服务器。
LDAP服务器将用户和组织信息存储在目录中,并提供用户身份认证和授权。
第二步:在Hive配置文件中启用LDAP认证。
可以通过设置以下属性来启用LDAP 认证:hive.server2.authentication = LDAP此属性指示HiveServer2使用LDAP进行身份验证。
hive.server2.authentication.ldap.url = ldap:ldapserverhost:389此属性指示HiveServer2连接到LDAP服务器的URL。
pyhive krbcontext 参数

在使用 PyHive 进行数据查询时,有时会涉及到使用 krbcontext 参数。
krbcontext 参数是用于与 Kerberos 认证系统进行交互的参数,通过设置 krbcontext 参数可以实现基于 Kerberos 认证的数据访问。
本文将详细介绍 PyHive 中 krbcontext 参数的使用方法和相关注意事项。
二、PyHive 简介PyHive 是一个 Python 库,它提供了与大数据存储和处理系统(如Apache Hive、Presto等)进行交互的功能。
通过 PyHive,用户可以方便地使用 Python 进行数据查询、分析和处理。
在与 Hive 等系统进行交互时,有时需要使用 krbcontext 参数来进行 Kerberos 认证。
三、krbcontext 参数的作用krbcontext 参数是用于 PyHive 进行 Kerberos 认证的关键参数。
在使用 PyHive 连接到需要 Kerberos 认证的 Hive 服务器时,需要通过krbcontext 参数进行身份验证,以确保数据访问的安全性和合法性。
四、使用 krbcontext 参数的方法使用 krbcontext 参数进行 Kerberos 认证的方法如下所示:1. 需要确保系统中已经正确配置了 Kerberos 认证信息,包括krb5.conf 文件和keytab文件等。
2. 在使用 PyHive 连接 Hive 服务器时,需要通过传入 krbcontext 参数来进行 Kerberos 认证,示例代码如下:from pyhive import hivefrom thrift_sasl import saslconn = hive.Connection(host='your_hive_server', port=xxx, auth='KERBEROS', kerberos_service_name='hive',krb_host='your_kdc', krb_realm='your_realm',sasl_mech='GSSAPI', krb_context='your_krb_context')```在以上示例中,连接 Hive 服务器的过程中传入了 krbcontext 参数,包括了 Kerberos 认证相关的信息。
kerbrute用法

kerbrute用法Kerbrute是一个网络渗透测试工具,旨在通过暴力破解攻击来尝试获取远程主机上使用Kerberos协议的用户账户的凭据。
Kerberos是一种在计算机网络上验证用户身份的协议。
它使用加密令牌来确保在网络中的各个节点之间进行安全的验证和通信。
对于Kerbrute的使用,以下是一般步骤:1.安装Kerbrute:首先,你需要从Kerbrute的代码存储库(如GitHub)下载Kerbrute并安装它。
2.收集信息:在进行Kerbrute攻击之前,你需要收集有关目标网络和用户的信息。
这可能包括目标域的名称、有效的用户名列表和用户账户的密码策略。
3.执行Kerbrute攻击:一旦你获得了必要的信息,你可以使用Kerbrute进行暴力破解攻击。
命令通常形如"kerbrute userenum --dc <DomainController_IP> <UserList.txt> -d <Target_Domain>",其中<DomainController_IP>是域控制器的IP地址,<UserList.txt>包含有效用户名的列表,-d选项指定目标域的名称。
4.解析结果: Kerbrute将尝试破解给定用户账户的凭据。
成功的尝试将会输出到命令行或保存在一个文件中。
你可以检查这些结果,以了解哪些账户的凭据已成功破解。
值得注意的是,Kerbrute是一种尝试性工具,应该仅在授权和合法的渗透测试目的下使用。
*拓展:除了使用Kerbrute之外,还有其他用于破解kerberos凭据的工具,如Mimikatz。
Mimikatz是一款功能强大的渗透测试工具,它可以获取系统和服务的认证凭据,包括通过Kerberos进行身份验证的用户的凭据。
与Kerbrute不同,Mimikatz是一种植入式攻击工具,通常用于提取系统中存储的口令哈希和明文凭据。
kerberos机制工作原理

kerberos机制工作原理1. 引言嘿,你有没有想过,当你登录各种网络服务的时候,你的账号信息是如何安全地在网络中传输的呢?要是这些信息被窃取了,那可就麻烦大了。
今天呀,咱们就来一起深入了解一下Kerberos机制,这个保障网络安全的神奇存在。
在这篇文章里,我们会从它的基本概念、工作过程,到实际应用、常见问题,全方位地搞清楚Kerberos机制的工作原理。
2. 核心原理2.1基本概念与理论背景Kerberos这个名字来源于希腊神话中的三头犬,它守卫着地狱的大门,就像Kerberos机制守护着网络安全一样。
Kerberos机制是一种网络认证协议,它起源于麻省理工学院(MIT)。
在网络发展的过程中,人们越来越需要一种安全可靠的方式来认证用户身份,于是Kerberos就应运而生了。
简单来说,Kerberos的核心概念就是通过一个可信赖的第三方来验证用户和服务的身份,这个第三方就是密钥分发中心(KDC)。
KDC就像是网络世界里的超级管理员,它知道每个用户和服务的秘密。
2.2运行机制与过程分析Kerberos的工作过程就像是一场精心编排的舞蹈。
首先,用户向KDC请求一个票据(Ticket),这就好比你去看电影,先得去售票窗口买票。
用户发送的请求里包含自己的身份信息,KDC收到请求后,会用用户的密钥(这个密钥是事先就和用户约定好的,只有用户和KDC知道)对一个包含用户身份信息和其他相关信息的票据进行加密,这个票据就是TicketGranting Ticket(TGT),可以把TGT想象成一张进入电影院的通票。
然后KDC把加密后的TGT发给用户。
接下来,用户想要访问某个服务(比如邮件服务)的时候,就会把TGT 和一个包含要访问服务名称的请求一起发给KDC。
KDC收到后,会验证TGT的有效性,如果有效,KDC就会给用户一个针对该服务的票据(Service Ticket),这个Service Ticket就像是专门用于看某一场电影的票。
HBase 官方文档

HBase 官方文档中文版Copyright © 2012 Apache Software Foundation.Revision HistoryRevision 0.95-SNAPSHOT2012-05-23T20:32中文版翻译整理 周海汉译者:周海汉 基于 颜开翻译 整理更新。
HBase新版 0.95 文档和0.90版相比,变化较大,补充更新了很多内容,章节调整较大。
感谢盛大公司颜开的辛勤劳动! 英文原文地址在此处。
汉化最后更新请到此处浏览。
还有很多没有翻译全的,以及链接错误,请愿意翻译的到此处报名并下载修改上传。
贡献者将在此文档署名。
谢谢! 最终版将生成pdf供下载。
贡献者:周海汉邮箱:ablozhou@, 网址:/颜开邮箱: yankaycom@, 网址:/摘要这是 Apache HBase的官方文档, Hbase是一个分布式,版本化(versioned),构建在 Apache Hadoop和 Apache ZooKeeper上的列数据库.目录序1. 入门1.1. 介绍1.2. 快速开始2. 配置2.1. Java2.2. 操作系统2.3. Hadoop2.4. HBase运行模式:单机和分布式2.5. ZooKeeper2.6. 配置文件2.7. 配置示例2.8. 重要配置2.9. Bloom Filter3. 升级3.1. 从HBase 0.20.x or 0.89.x 升级到 HBase 0.90.x3.2. 从 0.90.x 到 0.92.x4. The HBase Shell4.1. 使用脚本4.2. Shell 技巧5. 数据模型5.1. 概念视图5.2. 物理视图5.3. 表5.4. 行5.5. 列族5.6. Cells5.7. Data Model Operations5.8. 版本5.9. 排序5.10. 列元数据5.11. Joins6. HBase 和 Schema 设计6.1. Schema 创建6.2. column families的数量6.3. Rowkey 设计6.4. Number 数量6.5. 支持的数据类型6.6. Joins6.7. 生存时间 (TTL)6.8. Keeping Deleted Cells6.9. Secondary Indexes and Alternate Query Paths6.10. Schema Design Smackdown6.11. Operational and Performance Configuration Options6.12. 限制7. HBase 和 MapReduce7.1. Map-Task Spitting7.2. HBase MapReduce Examples7.3. Accessing Other HBase Tables in a MapReduce Job7.4. Speculative Execution8. HBase安全8.1. 安全客户端访问 HBase8.2. 访问控制9. 架构9.1. 概述9.2. Catalog Tables9.3. 客户端9.4. Client Request Filters9.5. Master9.6. RegionServer9.7. Regions9.8. Bulk Loading9.9. HDFS10. 外部 APIs10.1. 非Java语言和 JVM交互10.2. REST10.3. Thrift11. 性能调优11.1. 操作系统11.2. 网络11.3. Java11.4. HBase 配置11.5. ZooKeeper11.6. Schema 设计11.7. 写到 HBase11.8. 从 HBase读取11.9. 从 HBase删除11.10. HDFS11.11. Amazon EC211.12. 案例12. 故障排除和调试 HBase12.1. 通用指引12.2. Logs12.3. 资源12.4. 工具12.5. 客户端12.6. MapReduce12.7. NameNode12.8. 网络12.9. RegionServer12.10. Master12.11. ZooKeeper12.12. Amazon EC212.13. HBase 和 Hadoop 版本相关12.14. 案例13. 案例研究13.1. 概要13.2. Schema 设计13.3. 性能/故障排除14. HBase Operational Management14.1. HBase Tools and Utilities14.2. Region Management14.3. Node Management14.4. HBase Metrics14.5. HBase Monitoring14.6. Cluster Replication14.7. HBase Backup14.8. Capacity Planning15. 创建和开发 HBase15.1. HBase 仓库15.2. IDEs15.3. 创建 HBase15.4. Publishing a new version of 15.5. 测试15.6. Maven Build Commands15.7. Getting Involved15.8. 开发15.9. 提交补丁A. FAQB. hbck In DepthB.1. Running hbck to identify inconsistenciesB.2. InconsistenciesB.3. Localized repairsB.4. Region Overlap RepairsC. Compression In HBaseC.1. CompressionTest ToolC.2. hbase.regionserver.codecsC.3. LZOC.4. GZIPC.5. SNAPPYC.6. Changing Compression SchemesD. YCSB: The Yahoo! Cloud Serving Benchmark and HBaseE. HFile format version 2E.1. MotivationE.2. HFile format version 1 overviewE.3. HBase file format with inline blocks (version 2)F. Other Information About HBaseF.1. HBase VideosF.2. HBase Presentations (Slides)F.3. HBase PapersF.4. HBase SitesF.5. HBase BooksF.6. Hadoop BooksG. HBase HistoryH. HBase and the Apache Software FoundationH.1. ASF Development ProcessH.2. ASF Board ReportingIndex表列表5.1. Table webtable5.2. ColumnFamily anchor5.3. ColumnFamily contents8.1. Operation To Permission Mapping序这本书是 HBase 的官方指南。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Hbase 结合Kerberos 认证配置
(一)环境:
Hadoop hadoop-0.20.2-cdh3u3
Hbase hbase-0.90.4-cdh3u3
Kerberos krb5-1.6.1(rpm 包安装)
CentOS CentOS release 5.4 (Final)
硬件环境:
用途 IP 主机名 说明
Kerberos 192.168.116.129 kerberos Kerberos服务启动
Hadoop 192.168.116.131 node1 已配置好kerberos认证
Hbase 192.168.116.133 node2
(二)配置
1)在Hadoop的hdfs文件系统上生成hbase的目录
#创建目录
[hdfs@node1 bin]$ ./hadoop fs –mkdir /hbase
#授权hbase用户可以读写
[hdfs@node1 bin]$ ./hadoop fs –chown hbase:hbase /hbase
#确认目录权限
[hdfs@node1 bin]$ ./hadoop fs –ls /hbase
备注:如果提示没有权限,可以如下操作
#查看当前的ticket
[hdfs@node1 bin]$ klist
#导入ticket
[hdfs@node1 bin]$ kinit -k -t hdfs.keytab hdfs/node1@EXAMPLE.COM
[hdfs@node1 bin]$ klist
2)配置hbase
HBASE_HOME=/usr/local/hbase-0.90.4-cdh3u3/
hbase-site.xml
regionservers
node2
3)生成kerberos的principal的keytab文件
[root@kerberos ~]# kadmin.local
kadmin.local: addprinc -randkey hbase/node2@EXAMPLE.COM
kadmin.local: xst –k hbase-unmerged.keytab hbase/node2@EXAMPLE.COM
kadmin.local:exit
[root@kerberos ~]# ktutil
Ktutil:krt hbase-unmerged.keytab
Ktutil:wkt hbase.keytab
4)将生成的hbase.keytab 拷贝到
node2的目录:/usr/local/hbase-0.90.4-cdh3u3/conf/ 下
5)启动hbase,确认kerberos是否授权成功
[hbase@node2 bin]$ ./hbase-daemon.sh start zookeeper
[hbase@node2 bin]$ ./hbase-daemon.sh start master
[hbase@node2 bin]$ ./hbase-daemon.sh start regionserver