• 你遇到了吗用户吐槽升iOS 11.4后耗电过快用户吐槽升iOS11后耗电过快-行情资讯 2019-05-23
  • 13少年被逼参与盗窃遭烟头烫伤 21天撬130辆车 2019-05-23
  • 横断山脉,让我潜入了花香四溢的宁静文章中国国家地理网 2019-05-22
  • 社区 —频道 春城壹网 七彩云南 一网天下 2019-05-22
  • 三只央企结构调整ETF 及联接基金获批 2019-05-22
  • 中直机关优良“家风家训”格言【3】 2019-05-21
  • 十九大精神进校园:将年华汇进时代旋律 把青春融入祖国山河 2019-05-21
  • 警惕!中国人死亡的第一元凶不是癌症,而是它! 2019-05-21
  • 暖心!队友为萨拉赫送上巨型蛋糕庆生 2019-05-21
  • 紫光阁中共中央国家机关工作委员会 2019-05-20
  • 区域经济新格局显现 高质量均衡发展成重点 2019-05-20
  • 感触名家笔下的端午文化 吃香粽原来可以这样"文艺" 2019-05-20
  • Chinese crayfish train heads to Moscow as fans get ready to feast during World Cup 2019-05-19
  • 传媒每周热闻第362期:2018年全国两会新闻中心启用 内地2月电影票房突破100亿元创纪录 2019-05-19
  • 为山西公安“一网通一次办”点赞 2019-05-18
  • 欢迎来到魔据教育大数据学院,专注大数据工程师培养!
    当前位置:两肖两码中特资料网 > 学习资料 > 讲师博文 > hadoop2.6安全认证Kerberos配置

    三肖两码中特网: hadoop2.6安全认证Kerberos配置

    时间:2017-08-17 17:40:06作者:[!--zuozhe--]

    两肖两码中特资料网 www.mqptd.tw  

    配置环境
    系统:Centos6.5
    软件版本:Hadoop2.6(HA)
    Kerberos对应操作系统版本(取自iso镜像)
     
    Hadoop环境:环境使用三台机器zyx7,zyx8,zyx9,用户使用zhengyx。
     
    目的
    由于hadoop默认安全配置,用户可以私自接入节点,可用其他用户执行环境这对安全利,所以需要安全配置。
    Hadoop提供了两种安全配置simplekerberos。
    simple简单认证控制用户名和所属,很容易被冒充。
    Kerberos借助kerberos服务生成秘钥文件所机器公,有秘钥文件才是可信节点。本文主要介绍kerberos的配置。Kerberos存在问题,配置复杂,切更改麻烦,需从新生成秘钥切分发所有机器。
    、安装
    Kerberos分主服务(主)和认证机器(从)
    服务安装
    安装rpm包(版本对应操作系统iso镜像包)
    krb5-auth-dialog
    krb5-server
    keyutils-libs-devel
    libcom_err-devel
    libsepol-devel
    libselinux-devel
    krb5-devel
    krb5-libs(镜像已含,不用再安装)
    krb5-workstation(镜像已含,不用再安装)
    安装
    安装rpm包(版本对应操作系统iso镜像包
    keyutils-libs-devel
    libcom_err-devel
    libsepol-devel
    libselinux-devel
    krb5-devel
    krb5-libs(镜像已含,不用再安装)
    krb5-workstation(镜像已含,不用再安装)
     
    启动命令
    chkconfig --level 35 krb5kdc on
    chkconfig --level 35 kadmin on
    service krb5kdc start
    service kadmin start
     
    、配置
    Kerberos配置
    /etc/krb5.conf
    [logging]
     default = FILE:/var/log/krb5libs.log
     kdc = FILE:/var/log/krb5kdc.log
     admin_server = FILE:/var/log/kadmind.log
     
    [libdefaults]
     default_realm = ZHENGYX.COM
     dns_lookup_realm = false
     dns_lookup_kdc = false
     clockskew = 120
     ticket_lifetime = 24h
     renew_lifetime = 7d
     forwardable = true
     renewable = true
     udp_preference_limit = 1
     default_tgs_enctypes = arcfour-hmac
     default_tkt_enctypes = arcfour-hmac
     
    [realms]
     ZHENGYX.COM = {
      kdc = zyx7:88
      admin_server = zyx7:749
     }
     
    [domain_realm]
      .zhengyx.com = ZHENGYX.COM
      www.zhengyx.com = ZHENGYX.COM
     
    [kdc]
    profile=/var/kerberos/krb5kdc/kdc.conf
     
    安全域ZHENGYX.COM名称任意,配置一致即可
    Kdc为主服务机器
     
    注:Kerberos凭证(ticket)有两个属性,ticket_lifetime和renew_lifetime。其中ticket_lifetime表明凭证生效的时限,一般为24小时。在凭证失效前部分凭证可以延期失效时间(即Renewable),renew_lifetime表明凭证最长可以被延期的时限,一般为一个礼拜。当凭证过期之后,对安全认证的服务的后续访问则会失败。段服务可以用默认设置,如果是长期认证服务凭证时间需要调长。
    kdc.conf
    Kerberos默认安装目录/var/kerberos/krb5kdc
    [kdcdefaults]
     kdc_ports = 88
     kdc_tcp_ports = 88
     
    [realms]
     ZHENGYX.COM = {
      #master_key_type = aes256-cts
      acl_file = /var/kerberos/krb5kdc/kadm5.acl
      dict_file = /usr/share/dict/words
      admin_keytab = /var/kerberos/krb5kdc/kadm5.keytab
      supported_enctypes =  des3-hmac-sha1:normal arcfour-hmac:normal des-hmac-sha1:normal des-cbc-md5:normal des-cbc-crc:normal des-cbc-crc:v4 des-cbc-crc:afs3
      max_life = 24h
      max_renewable_life = 10d
      default_principal_flags = +renewable, +forwardable
     }
     
    kadm5.acl
    Kerberos默认安装目录/var/kerberos/krb5kdc
     
    */[email protected]     * 
     
    生成kerberos用户
    由于本人使用zhengyx用户安装hadoop(包含hdfs和yarn),使用此账户启动环境所以建立zhengyx的kerberos用户。另需建立HTTP的用户,用于环境内部使用默认名称。
     
    创建用户
    kadmin.local -q "addprinc -randkey zhengyx/[email protected]"
    kadmin.local -q "addprinc -randkey zhengyx/[email protected]"
    kadmin.local -q "addprinc -randkey zhengyx/[email protected]"
     
    kadmin.local -q "addprinc -randkey HTTP/[email protected]"
    kadmin.local -q "addprinc -randkey HTTP/[email protected]"
    kadmin.local -q "addprinc -randkey HTTP/[email protected]"
     
    生成keytab
    $ cd /var/kerberos/krb5kdc/
    kadmin.local -q "xst  -k zhengyx-unmerged.keytab  zhengyx/[email protected]"
    kadmin.local -q "xst  -k zhengyx-unmerged.keytab  zhengyx/[email protected]"
    kadmin.local -q "xst  -k zhengyx-unmerged.keytab  zhengyx/[email protected]"
     
    kadmin.local -q "xst  -k HTTP.keytab  HTTP/[email protected]"
    kadmin.local -q "xst  -k HTTP.keytab  HTTP/[email protected]"
    kadmin.local -q "xst  -k HTTP.keytab  HTTP/[email protected]"
     
    合并keytab
    $ ktutil
    ktutil: rkt zhengyx-unmerged.keytab
    ktutil: rkt HTTP.keytab
    ktutil: wkt zhengyx.keytab
    查看
    klist -ket  hadoop.keytab
    验证是否合并
    $ kinit -k -t zhengyx.keytab zhengyx/[email protected]
    $ kinit -k -t zhengyx.keytab HTTP/[email protected]
     
    分发keytab文件
    scp zhengyx.keytab zyx7:/data/hadoop/etc/hadoop
    scp zhengyx.keytab zyx8:/data/hadoop/etc/hadoop
    scp zhengyx.keytab zyx9:/data/hadoop/etc/hadoop
    修改所属用户组(hadoop安装用户和组)及权限(本用户只读,其他组无权限)
    ssh zyx7 "chown zhengyx:zhengyx /data/hadoop/etc/hadoop/zhengyx.keytab ;chmod 400 /data/hadoop/etc/hadoop/zhengyx.keytab"
    ssh zyx8 "chown zhengyx:zhengyx /data/hadoop/etc/hadoop/zhengyx.keytab ;chmod 400 /data/hadoop/etc/hadoop/zhengyx.keytab"
    ssh zyx9 "chown zhengyx:zhengyx /data/hadoop/etc/hadoop/zhengyx.keytab ;chmod 400 /data/hadoop/etc/hadoop/zhengyx.keytab"
     
    通过文件登录
    kinit -k -t /data/hadoop/etc/hadoop/zhengyx.keytab zhengyx/[email protected]
     
     
    Zookeeper配置
    由于hadoophdfs配置了ha所以zookeeper需要配置kerberos
    zoo.cfg
    增加
    authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider
    jaasLoginRenew=3600000
     
    zk配置文件目录下建 jaas.conf内容如下
    Server {
          com.sun.security.auth.module.Krb5LoginModule required
          useKeyTab=true
          keyTab="/data/hadoop/etc/hadoop/zhengyx.keytab"
          storeKey=true
          useTicketCache=true
          principal="zhengyx/[email protected]";
      };
     
    新建java.env
    export JVMFLAGS="-Djava.security.auth.login.config=/data/zookeeper/conf/jaas.conf"
     
    Hdfs配置
    core-site.xml
    <property>
      <name>hadoop.security.authentication</name>
      <value>kerberos</value>
    </property>
     
    <property>
      <name>hadoop.security.authorization</name>
      <value>true</value>
    </property>
     
    hdfs-site.xml
    <property>
    <name>dfs.datanode.max.xcievers</name>
    <value>4096</value>
    <description>max number of file which can be opened in a datanode</description>
    </property>
     
    <property>
      <name>dfs.block.access.token.enable</name>
      <value>true</value>
    </property>
    <property>
      <name>dfs.namenode.keytab.file</name>
      <value>/data/hadoop/etc/hadoop/zhengyx.keytab</value>
    </property>
    <property>
      <name>dfs.namenode.kerberos.principal</name>
      <value>zhengyx/[email protected]</value>
    </property>
    <property>
      <name>dfs.namenode.kerberos.https.principal</name>
      <value>HTTP/[email protected]</value>
    </property>
    <property>
      <name>dfs.datanode.address</name>
      <value>0.0.0.0:1034</value>
    </property>
    <property>
      <name>dfs.datanode.http.address</name>
      <value>0.0.0.0:1036</value>
    </property>
    <property>
      <name>dfs.datanode.keytab.file</name>
      <value>/data/hadoop/etc/hadoop/zhengyx.keytab</value>
    </property>
    <property>
      <name>dfs.datanode.kerberos.principal</name>
      <value>zhengyx/[email protected]</value>
    </property>
    <property>
      <name>dfs.datanode.kerberos.https.principal</name>
      <value>HTTP/[email protected]</value>
    </property>
     
     
    <!-- datanode SASL配置 -->
    <property>
      <name>dfs.http.policy</name>
      <value>HTTPS_ONLY</value>
    </property>
    <property>
      <name>dfs.data.transfer.protection</name>
      <value>integrity</value>
    </property>
     
    <!--journalnode 配置-->
    <property>
      <name>dfs.journalnode.keytab.file</name>
      <value>/data/hadoop/etc/hadoop/zhengyx.keytab</value>
    </property>
    <property>
      <name>dfs.journalnode.kerberos.principal</name>
      <value>zhengyx/[email protected]</value>
    </property>
    <property>
      <name>dfs.journalnode.kerberos.internal.spnego.principal</name>
      <value>HTTP/[email protected]</value>
    </property>
     
    <!--webhdfs-->
    <property>
      <name>dfs.webhdfs.enabled</name>
      <value>true</value>
    </property>
     
    <property>
      <name>dfs.web.authentication.kerberos.principal</name>
      <value>HTTP/[email protected]</value>
    </property>
     
    <property>
      <name>dfs.web.authentication.kerberos.keytab</name>
      <value>/data/hadoop/etc/hadoop/zhengyx.keytab</value>
    </property>
     
    <property>
      <name>dfs.datanode.data.dir.perm</name>
      <value>700</value>
    </property>
     
    SASL配置
    此处是用于datanode服务,与kerberos无关,通过此配置不需要jsvc
    一台机器(ca)生成key与cert
    ca机器相当于主机生成zyx_ca_key与zyx_ca_cert文件
    openssl req -new -x509 -keyout zyx_ca_key -out zyx_ca_cert -days 9999
    z123456789
    将key和cert文件传给所有机器
     
    zyx_ca_key与zyx_ca_cert文件传给其他机器,在其他机器执行生成z_keystore与z_truststore
    keytool -keystore z_keystore -alias localhost -validity 9999 -genkey
    keytool -keystore z_truststore -alias CARoot -import -file zyx_ca_cert
    keytool -keystore z_keystore -alias localhost -certreq -file z_cert
    openssl x509 -req -CA zyx_ca_cert -CAkey zyx_ca_key -in z_cert -out z_cert_signed -days 9999 -CAcreateserial -passin pass:z123456789
    keytool -keystore z_keystore -alias CARoot -import -file zyx_ca_cert
    keytool -keystore z_keystore -alias localhost -import -file z_cert_signed
     
    将z_keystore与z_truststore
    配置到ssl(ssl-server.xml,ssl-client.xml)文件中(hadoop/etc/hadoop)
    指定文件与密码即可,无特殊配置不做说明。
     
    Yarn配置
    Yarn-site.xml增加kerberos配置
    <!--YARN kerberos security-->
    <property>
      <name>yarn.resourcemanager.keytab</name>
      <value>/data/hadoop/etc/hadoop/zhengyx.keytab</value>
    </property>
    <property>
      <name>yarn.resourcemanager.principal</name>
      <value>zhengyx/[email protected]</value>
    </property>
    <property>
      <name>yarn.nodemanager.keytab</name>
      <value>/data/hadoop/etc/hadoop/zhengyx.keytab</value>
    </property>
    <property>
      <name>yarn.nodemanager.principal</name>
      <value>zhengyx/[email protected]</value>
    </property>
     
    三、使用
    新建环境使用用户:addprinc zhengyx/hadoop
    登录kinit zhengyx/hadoop
    登录后可正常使用hadoop命令

    5-1.png

    不登录kerberos使用hadoop命令会报错

    5-2.png

    、备注
    存在问题:kerberos主服务为节点,如果主服务异?;岬贾禄骷湮薹ㄈ现?/span>致使环境能正常工作。这可用环境不符,kerberos的高可后续研究。

    更多大数据相关资讯敬请关注魔据教育,为您分享最及时的大数据资讯。
    学习大数据敬请关注魔据教育微信二维码。
    魔据教育微信二维码

    【版权与免责声明】如发现内容存在版权问题,烦请提供相关信息发邮件至[email protected],我们将及时沟通与处理。本站内容除非来源注明魔据教育,否则均为网友转载,涉及言论、版权与本站无关。

    全国咨询热线:18501996998,值班手机:18501996998(7*24小时)

    在线咨询:张老师QQ 320169340

    企业合作服务专线:010-82340234-821, 院校合作洽谈专线:010-82340234

    Copyright 2001-2019 魔据教育 - 北京华育兴业科技有限公司 版权所有,京ICP备17018991号-2

    免费在线咨询两肖两码中特资料网

    免费索取技术资料立即索取

    大数据技术交流QQ:226594285

    电话咨询010-82340234

  • 你遇到了吗用户吐槽升iOS 11.4后耗电过快用户吐槽升iOS11后耗电过快-行情资讯 2019-05-23
  • 13少年被逼参与盗窃遭烟头烫伤 21天撬130辆车 2019-05-23
  • 横断山脉,让我潜入了花香四溢的宁静文章中国国家地理网 2019-05-22
  • 社区 —频道 春城壹网 七彩云南 一网天下 2019-05-22
  • 三只央企结构调整ETF 及联接基金获批 2019-05-22
  • 中直机关优良“家风家训”格言【3】 2019-05-21
  • 十九大精神进校园:将年华汇进时代旋律 把青春融入祖国山河 2019-05-21
  • 警惕!中国人死亡的第一元凶不是癌症,而是它! 2019-05-21
  • 暖心!队友为萨拉赫送上巨型蛋糕庆生 2019-05-21
  • 紫光阁中共中央国家机关工作委员会 2019-05-20
  • 区域经济新格局显现 高质量均衡发展成重点 2019-05-20
  • 感触名家笔下的端午文化 吃香粽原来可以这样"文艺" 2019-05-20
  • Chinese crayfish train heads to Moscow as fans get ready to feast during World Cup 2019-05-19
  • 传媒每周热闻第362期:2018年全国两会新闻中心启用 内地2月电影票房突破100亿元创纪录 2019-05-19
  • 为山西公安“一网通一次办”点赞 2019-05-18