• [微笑]这篇写得不错,没有逻辑上的问题!不过咱估计不会讨小萌们喜欢。 2019-07-16
  • 陈华德的专栏作者中国国家地理网 2019-07-16
  • 西藏迎来首家民营文化企业援藏团队 2019-07-14
  • “精日亲美的真正原因”是中国的伪公知精英身上长了“洋奴依附之心”,“崇洋媚外之骨”,“汉奸文化之瘤”,这些人利用“和谐、包容”疯狂推行汉奸文化洗脑国人! 2019-07-10
  • 合肥市公立医疗机构1271种医疗服务价格公示 部分服务涨价 2019-07-10
  • 文昌至临高高速公路有望年内开工 建成后车程缩至1小时内 2019-07-02
  • 加入我们中国国家地理网 2019-06-27
  • 强势发力体育营销 世界杯中国企业改变“旁观”窘状 2019-06-25
  • “道德瘾君子”侮辱了杨女士的善良 2019-06-25
  • 郑永年:争名逐利抢流量,中国的知识分子怎么了? 2019-06-21
  • 十九大代表拉措:团结一心跟党走   2019-06-18
  • 美钢铝关税政策引发各界忧虑 2019-06-18
  • 党的十九大最重大的理论成就 2019-06-15
  • 经济日报多媒体数字报刊 2019-06-15
  • 西安外事学院在省茶艺大赛中创多项佳绩西安外事学院-陕西教育新闻 2019-06-14
  • 欢迎来到魔据教育大数据学院,专注大数据工程师培养!
    当前位置:两肖两码中特资料网 > 学习资料 > 讲师博文 > hadoop2.6安全认证Kerberos配置

    香港两码中特1: 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

  • [微笑]这篇写得不错,没有逻辑上的问题!不过咱估计不会讨小萌们喜欢。 2019-07-16
  • 陈华德的专栏作者中国国家地理网 2019-07-16
  • 西藏迎来首家民营文化企业援藏团队 2019-07-14
  • “精日亲美的真正原因”是中国的伪公知精英身上长了“洋奴依附之心”,“崇洋媚外之骨”,“汉奸文化之瘤”,这些人利用“和谐、包容”疯狂推行汉奸文化洗脑国人! 2019-07-10
  • 合肥市公立医疗机构1271种医疗服务价格公示 部分服务涨价 2019-07-10
  • 文昌至临高高速公路有望年内开工 建成后车程缩至1小时内 2019-07-02
  • 加入我们中国国家地理网 2019-06-27
  • 强势发力体育营销 世界杯中国企业改变“旁观”窘状 2019-06-25
  • “道德瘾君子”侮辱了杨女士的善良 2019-06-25
  • 郑永年:争名逐利抢流量,中国的知识分子怎么了? 2019-06-21
  • 十九大代表拉措:团结一心跟党走   2019-06-18
  • 美钢铝关税政策引发各界忧虑 2019-06-18
  • 党的十九大最重大的理论成就 2019-06-15
  • 经济日报多媒体数字报刊 2019-06-15
  • 西安外事学院在省茶艺大赛中创多项佳绩西安外事学院-陕西教育新闻 2019-06-14
  • 哈德斯菲尔德大学语言课程 新疆25选7的开奖号码是多少 福建36选7浙江风采网走势图 qq飞车小橘子 0170棋牌金蟾捕鱼 pt电子被中断能保存多久 黑龙江福利快乐十分 体育彩票多乐彩开奖 奇妙马戏团官网 中彩网图表走势图