首页 > 其他分享 >Cloudera集群运维手册-开启Kerberos认证篇(Active Directory)

Cloudera集群运维手册-开启Kerberos认证篇(Active Directory)

时间:2024-12-29 18:28:17浏览次数:3  
标签:cdp73 Cloudera 运维 com Kerberos root COM

[前]关于本文

大数据安全模块主要包含认证,授权,审计,加密四大子模块,其中认证是所有模块的基础。没有认证作为前提,其他三大模块都毫无意义。本文详细介绍了为Cloudera集群开启Kerberos认证的整个过程。

[〇]Kerberos协议入门

1-关于Kerberos

  1. 定义:Kerberos是一种网络认证协议,用于通过密钥加密的方式对客户端和服务器之间的通信进行身份验证,确保通信双方的身份安全和数据安全。
  2. 开发背景:Kerberos最早由麻省理工学院(MIT)在1980年代开发,旨在解决分布式网络环境中的身份验证问题。
  3. 名称来源:Kerberos的名称来源于希腊神话中的三头犬Kerberos,象征着其在网络安全中的守护角色。
  4. 工作原理:Kerberos协议通过票据交换来验证用户的身份,并允许用户安全地访问网络资源。用户首先向Kerberos密钥分发中心(KDC)请求票据,KDC验证用户身份后发放票据,用户凭票据访问网络资源时,服务器会验证票据的有效性。

2-Kerberos协议的优点

  1. 高安全性:Kerberos使用对称密钥加密和第三方信任模型,能够有效防止网络中的各种攻击方式,如中间人攻击、重放攻击等,为Cloudera CDP集群提供强大的安全保障。
  2. 单点登录支持:Kerberos支持单点登录(SSO),用户在Kerberos体系中只需登录一次,即可访问网络中所有授权的服务,无需重复输入密码,提升了用户体验,也减少了密码泄露的风险。
  3. 广泛兼容性:Kerberos协议被许多操作系统和应用程序支持,如Windows、Linux、Unix、Hadoop等,这使得Cloudera CDP集群能够在各种异构环境中广泛应用。
  4. 成熟的协议设计:Kerberos协议经过多年的发展和改进,已经非常成熟,并被多个行业标准采纳,如RFC 4120。其稳定的性能和广泛的应用基础为Cloudera CDP集群提供了可靠的保障。

3-Kerberos协议的实现

4-Kerberos协议中的重要概念

Kerberos Principals(Kerberos 主体)

每个需要向Kerberos进行身份验证的用户和服务都需要一个主体,这个主体在可能包含多个Kerberos服务器和相关子系统的环境中唯一标识该用户或服务。主体最多包含三个识别信息,首先是用户或服务名称(称为主键)。通常,主体的主键部分由操作系统中的用户帐户名称组成,例如用户的Unix帐户使用jcarlos,而与底层集群节点主机上的服务守护进程相关联的Linux帐户使用hdfs

用户主体的组成通常仅包括主键和Kerberos领域名称。领域是与同一个密钥分发中心(KDC)相关联的主体的逻辑分组,该KDC配置了许多相同的属性,如支持的加密算法。大型组织可能会使用领域作为向特定用户组或功能组的各个团队委派管理权限的手段,并在多个服务器之间分配身份验证处理任务。

标准做法是使用组织的域名作为Kerberos领域名称(全部使用大写字母),以便轻松地将其区分为主体的一部分,如以下用户主体模式所示:

username@REALM.EXAMPLE.COM

主键和领域名称的组合可以区分不同的用户。例如,jcarlos@SOME-REALM.EXAMPLE.COM 和 jcarlos@ANOTHER-REALM.EXAMPLE.COM 可能是同一组织内不同的个人。

对于服务角色实例主体,主键是Hadoop守护进程(如hdfs、mapred等)使用的Unix帐户名称,后面跟着一个实例名称,该名称用于标识运行服务的特定主机。例如,hdfs/hostname.fqdn.example.com@SOME-REALM.EXAMPLE.COM 是一个HDFS服务实例的主体的示例。正斜杠(/)使用以下基本模式将主键和实例名称分开:

service-name/hostname.fqdn.example.com@REALM.EXAMPLE.COM

Hadoop网络服务接口所需的HTTP主体没有Unix本地帐户作为主键,而是使用HTTP。

实例名称也可以标识具有特殊角色的用户,如管理员。例如,主体jcarlos@SOME-REALM.COM和主体jcarlos/admin@SOME-REALM.COM各自拥有不同的密码和权限,它们可能属于同一个用户,也可能不是。

例如,在一个为每个地理位置设有领域的组织中,运行在集群上的HDFS服务角色实例的主体可能如下所示:

hdfs/hostname.fqdn.example.com@OAKLAND.EXAMPLE.COM

通常,服务名称是给定服务角色实例使用的Unix帐户名称,如上面所示的hdfs或mapred。用于确保对Hadoop服务Web接口进行Web身份验证的HTTP主体没有Unix帐户,因此该主体的主键是HTTP。

[一]安装Active Directory

1-安装前准备

#下载Window Server 2025 ISO
wget https://software-static.download.prss.microsoft.com/dbazure/888969d5-f34g-4e03-ac9d-1f9786c66749/26100.1742.240906-0331.ge_release_svc_refresh_SERVER_EVAL_x64FRE_zh-cn.iso

2-在vSphere中创建虚拟机

  1. 选择创建类型
  2. 选择名称和文件夹
  3. 选择计算资源
  4. 选择存储
  5. 选择兼容性
  6. 选择客户机操作系统
    【重要提示】在其他 VMware vSphere ESXi 虚拟机硬件版本中,如果 Microsoft Windows Server 2025(64位)不可用,请选择 Microsoft Windows Server 2022(64位)作为虚拟机的客户操作系统。

    参考:https://knowledge.broadcom.com/external/article?articleId=371344
  7. 自定义硬件
  8. 即将完成
  9. 启动AD-2025电源

3-初始化Window服务器

  1. 选择语言
  2. 选择键盘设置
  3. 选择安装选项
  4. 选择映像
  5. 接受声明条款
  6. 准备就绪,开始安装
  7. 等待安装完成
  8. 自定义用户密码
  9. 安装完成
  10. 关闭防火墙
  11. 运行远程桌面访问

4-安装AD DC

  1. 在仪表盘中选择添加角色和功能
  2. 开始开始之前
  3. 服务器选择
    ​​​​​​​
  4. 选择服务器角色(【重要提示】此处不要勾选证书服务器,否则AD DC将无法完成初始化,等初始话AD DC完成后再安装类似次步骤添加AD证书服务)
  5. 选择功能​​​​​​​
  6. 确认AD DS信息
  7. 确认
  8. 等待安装完成

    ​​​​​​​

5-初始化AD DC

  1. 开始配置(点击最上方黄色提醒)​​​​​​​
  2. 选择将此服务器提示为域控
  3. 选择添加新林并填写域名
  4. 键入密码
  5. 不选择DNS委派
  6. 确认NetBIos
    ​​​​​​​​​​​​​​
  7. 确认路径
  8. 检查选择
    ​​​​​​​
  9. 先决条件检查
  10. 等待安装完成后会重启

7-安装AD CS

  1. 使用向导开始添加服务
  2. 选择安装类型
  3. 选择目标服务器
  4. 选择服务器角色
  5. 选择功能
  6. 选择角色服务
  7. 确认所选内容
  8. 等待安装完成
    ​​​​​​​

8-初始化AD CS

  1. 开始配置(点击最上方黄色提醒)
  2. 选项部署后配置
  3. 确认凭据
  4. 选择证书颁发机构​​​​​​​
  5. 选择独立CA​​​​​​​
  6. 指定CA类型,选择根CA
  7. 指定私钥类型,选择创建新的私钥
  8. 选择加密算法
  9. 指定CA名称
  10. 指定有效期
  11. 指定数据库位置
  12. 确认选择
  13. 等待配置完成

[二]Linux服务器加入AD域

1-创建集群的专用OU

  1. 选择新建组织单位(OU)
  2. 键入OU名称
  3. 创建完成
  4. 同样的操作在Cloudera OU下新建子组织单位 OU=Cloudera Computers,OU=Cloudera Users,OU=Cloudera Groups,OU=Cloudera Services他们分别用来存放集群的主机,用户,组和服务​​​​​​​

2-创建集群的专用管理员

  1. 在OU Cloudera下新建用户
  2. 键入用户信息
  3. 输入用户密码
  4. 创建完成

3-为OU指派完全管理员

现在我们给先建的Cloudera OU指派完全管理员scm用户

  1. 选择委派控制
  2. 进入向导点击下一步
  3. 点击添加搜索scm用户
  4. 勾选全部选权限
  5. 完成委派
    ​​​​​​​

4-linux主机加入AD域

【重要提示】以下操作在linux所有主机上执行

  1. 安装必要软件
    yum install krb5-workstation realmd sssd samba-common adcli oddjob oddjob-mkhomedir samba samba-common-tools -y
    
  2. 修改/etc/hosts,添加AD主机
    [root@cdp73-1 ~]$ cat   /etc/hosts
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    192.168.0.171	cdp73-1.test.com	cdp73-1
    192.168.0.172	cdp73-2.test.com	cdp73-2
    192.168.0.173	cdp73-3.test.com	cdp73-3
    192.168.0.174	cdp73-4.test.com	cdp73-4
    192.168.0.175	cdp73-5.test.com	cdp73-5
    192.168.0.176	cdp73-6.test.com	cdp73-6
    #AD host
    192.168.0.171	win2025ad.bigdatacdp.com	win2025ad
  3. 修改/etc/resolv.conf,添加AD主机
    [root@cdp73-1 ~]# cat /etc/resolv.conf
    # Generated by NetworkManager
    search test.com
    nameserver 192.168.0.170
    nameserver 8.8.8.8
  4. 确认linux主机是否能发现域
    ​​​​​​​
    [root@cdp73-1 ~]$ realm  discover -v bigdatacdp.com
     * Resolving: _ldap._tcp.bigdatacdp.com
     * Performing LDAP DSE lookup on: 192.168.0.170
     * Successfully discovered: bigdatacdp.com
    bigdatacdp.com
      type: kerberos
      realm-name: BIGDATACDP.COM
      domain-name: bigdatacdp.com
      configured: no
      server-software: active-directory
      client-software: sssd
      required-package: oddjob
      required-package: oddjob-mkhomedir
      required-package: sssd
      required-package: adcli
      required-package: samba-common-tools
    [root@cdp73-1 ~]$
  5. linux主机加入域
    [root@cdp73-1 ~]$ realm join --user administrator --membership-software=samba --computer-ou "OU=Cloudera Computers,OU=Cloudera,DC=bigdatacdp,DC=com"  bigdatacdp.com
    Password for administrator@BIGDATACDP.COM:
    Warning: Your password will expire in less than one hour on Mon 13 Sep 2100 10:48:05 PM EDT
     * Installing necessary packages: samba-common-tools
    [root@cdp73-1 ~]$
  6. 修改sssd文件并重启
    [root@cdp73-1 ~]$ cat /etc/sssd/sssd.conf
    
    [sssd]
    domains = bigdatacdp.com
    config_file_version = 2
    services = nss, pam
    
    [domain/bigdatacdp.com]
    ad_domain = bigdatacdp.com
    krb5_realm = BIGDATACDP.COM
    realmd_tags = manages-system joined-with-samba
    cache_credentials = True
    id_provider = ad
    krb5_store_password_if_offline = True
    default_shell = /bin/bash
    ldap_id_mapping = True
    use_fully_qualified_names = False  #改为False
    fallback_homedir = /home/%u        #改为/home/%u
    access_provider = ad
    [root@cdp73-1 ~]$ systemctl restart sssd
    [root@cdp73-1 ~]$ id scm
    uid=880201103(scm) gid=880200513(domain users) groups=880200513(domain users)
    [root@cdp73-1 ~]$
  7. 确认可以获取Ad域中的用户及组
    [root@cdp73-1 ~]$ id scm
    uid=880201103(scm) gid=880200513(domain users) groups=880200513(domain users)
    [root@cdp73-1 ~]$
  8. 修改/etc/krb5.conf文件
    [root@cdp73-1 ~]$ cat /etc/krb5.conf
    # To opt out of the system crypto-policies configuration of krb5, remove the
    # symlink at /etc/krb5.conf.d/crypto-policies which will not be recreated.
    includedir /etc/krb5.conf.d/
    
    [logging]
        default = FILE:/var/log/krb5libs.log
        kdc = FILE:/var/log/krb5kdc.log
        admin_server = FILE:/var/log/kadmind.log
    
    [libdefaults]
        dns_lookup_realm = false
        ticket_lifetime = 24h
        renew_lifetime = 7d
        forwardable = true
        rdns = false
        pkinit_anchors = FILE:/etc/pki/tls/certs/ca-bundle.crt
        spake_preauth_groups = edwards25519
        default_ccache_name = FILE:/tmp/krb5cc_%{uid}
        udp_preference_limit = 1
        default_realm = BIGDATACDP.COM
    
    [realms]
    # EXAMPLE.COM = {
    #     kdc = kerberos.example.com
    #     admin_server = kerberos.example.com
    # }
    
    [domain_realm]
    # .example.com = EXAMPLE.COM
    # example.com = EXAMPLE.COM
  9. 确认可以正常Kinit
    [root@cdp73-1 ~]$ kinit scm
    Password for scm@BIGDATACDP.COM:
    Warning: Your password will expire in less than one hour on Mon 13 Sep 2100 10:48:05 PM EDT
    [root@cdp73-1 ~]$ klist
    Ticket cache: KCM:0
    Default principal: scm@BIGDATACDP.COM
    
    Valid starting       Expires              Service principal
    12/24/2024 22:37:14  12/25/2024 08:37:14  krbtgt/BIGDATACDP.COM@BIGDATACDP.COM
    	renew until 12/31/2024 22:37:10
    [root@cdp73-1 ~]$

[三]使用Cloudera Manager开启Kerberos

1-启用Kerberos

2-入门

3-填写KDC信息

4-选择Krb5配置

5-生产KDC Account Manager凭据

6-命令详细信息

7-确认配置

8-等待命令完成

9-启动集群
​​​​​​​

标签:cdp73,Cloudera,运维,com,Kerberos,root,COM
From: https://blog.csdn.net/LUOHU11/article/details/144689282

相关文章

  • Cloudera集群运维-关于kerberos加密算法的配置梳理
    [0]关于本文在为集群配置Kerberos时,很容易被加密算法相关的错误搞得头晕目眩,这里有必要梳理一下有关配置。直接先总结ClouderaManager中的Kerberos加密类型:影响客户端Cloudera Manager生产Keytab时使用的加密算法/etc/krb5.conf中的permitted_enctypes,default_tkt_encty......
  • Cloudera集群运维手册-开启Ranger授权篇
    [一]安装Solr&Ranger1-安装solr服务添加服务选择依赖分配角色审核更改命令详情汇总2-安装Ranger服务添加服务选择依赖分配角色数据库设置CREATEDATABASErangerDEFAULTCHARACTERSETutf8DEFAULTCOLLATEutf8_general_ci;CREATEUSER'ranger'@'%'IDENTIFIEDWITH......
  • Cloudera集群运维-如何优化Hbase Regionserver GC
    [前]RegionServerGC调优【警告】为HBase配置JVM垃圾回收是一项高级操作。配置不当可能对集群的性能产生重大影响。请仔细测试任何配置更改。【警告】 使用OpenJDK11时,ClouderaManager和大多数ClouderaRuntime服务使用G1GC作为默认的垃圾回收方法。(Java8......
  • 解锁风电运维新密码:深度学习神经网络助力设备寿命精准预估
    摘要:当下,风电产业蓬勃发展,可恶劣运行环境使设备故障频发,精准预估剩余寿命迫在眉睫。深度学习中的神经网络为此带来曙光,其基础源于对大数据处理需求的回应,借由神经元、层架构自动提取特征。在风电应用里,CNN、LSTM深挖多源异构数据特征,MLP等架构构建预测模型,配合优化算法训......
  • 【安全运维】如何安全部署和升级服务?
    在服务升级中,采用安全和可控的策略是关键,以最小化停机时间、降低风险并确保平稳过渡。一、多服务部署该策略同时为多个服务部署新的变更。这种方法很容易实现。但由于所有服务都是同时升级的,因此很难管理和测试依赖关系。也很难安全地回滚。二、蓝绿部署蓝绿部署专注于运行两......
  • KingbaseES V8R6数据库运维案例之---sys_resetwal案例
    案例说明:如下图所示,KingbaseESR6数据库启动失败,通过sys_resetwal重建checkpoint启动数据库。适用版本:KingbaseESV8R6一、问题现象二、问题分析1、查看reset前的控制文件的信息[kingbase@node1bin]$./sys_controldata-D/data/kingbase/v8r6_021/datasys_controlve......
  • GaussDB轻量化运维管理工具介绍
    ​前言本期课程将从管理平台的架构出发,结合平台的实例管理、实例升级、容灾管理和监控告警的功能和操作介绍,全面覆盖日常运维操作,带您理解并熟练运用GaussDB运维平台完成运维工作。一、GaussDB运维管理平台简介开放生态层友好Web界面,多云皮肤个性化定制丰富的原子API公有......
  • GaussDB OM运维管理关键技术方案
    GaussDBKernelV5OM运维管理关键模块如下。OM运维主要功能有:安装升级节点替换扩容、缩容自动告警巡检备份恢复、容灾日志分析系统在华为云的部署模式下,OM相关组件部署示意图如下:图7华为云OM运维管理用户登录华为云Console,访问GaussDBKernelV5的管控页面,输入想要的运维操......
  • 【岗位招聘】网络空间安全及运维高级工程师
    参考:中石化岗位职责负责协助制定集团网络安全战略,并提供安全技术指导,组织集团网络攻防演练工作。负责组织开展集团安全风险评估工作,识别集团核心业务系统安全风险,并提供解决方案。负责组织开展集团信息系统的安全审计和漏洞检测工作。负责组织集团信息系统运维体系的优化......
  • WatchAlert - 一款轻量级云原生多数据源监控告警引擎(运维研发必备能力)
    概述在现代IT环境中,监控和告警是确保系统稳定性和可靠性的关键环节。然而,随着业务规模的扩大和数据源的多样化,传统的单一数据源告警系统已经无法满足复杂的需求。为了解决这一问题,我开发了一个开源的多数据源告警引擎——WatchAlert,它能够集成多种数据源,提供灵活的告警策略配置......