基于Kerberos的NIFI集群安全登陆模式
2017-08-03 18:09
246 查看
本文档旨在说明如何在NIFI集群模式下中配置kerberos安全登陆模式。
JDK : 1.8.0_65
NIFI : 1.3.0
ZooKeeper: 3.4.6
2.2 配置每个节点的主机名
2.3配置每个节点的IP映射文件
配置好Kerberos server端以后(可单独配置一台机器,也可配置在一台nifi节点上),在其他节点安装Kerberos的client端,并能连通(参考Kerberos主从架构设计)
配置Kerberos的client端--在每个client端执行
1.通过在线安装的方式安装KDC客户端
配置成kerberos服务端一样的内容就可以,为了方便可直接拷贝kerberos服务端的文件直接覆盖就可以。
3.验证kerberos客户端是否联通,利用kinit命令验证kerberos客户端是否可以通信服务端。
下载地址:http://nifi.apache.org/download.html
下载后解压安装nifi-toolkit-1.3.0-bin.zip (或tar.gz格式),配置好环境变量方便使用.
生成相关证书
为node[1-3]节点生成密钥库,truststore,nifi.properties以及具有给定DN的客户端证书。
-n,-hostnames要生成证书的主机名列表(以逗号分隔),可指定多次,支持范围和实例模式。
-c, -certificateAuthorityHostname 为Hostname of NiFi Certificate Authority。
-o, -outputDirectory 指定生成证书的路径
分发证书
把node1目录下的文件拷贝到node1节点下nifi的安装目录的conf文件下,重复的文件选择覆盖,同样把node2目录下的文件拷贝到node2节点下nifi的安装目录的conf文件下,把node3目录下的文件拷贝到node3节点下nifi的安装目录的conf文件下。
采用nifi-toolkit工具生成的证书,在生成证书的过程中已经生了一个nifi.properties配置文件,把不同目录下的证书文件拷贝到不同节点nifi的conf目录下,重复的文件选择覆盖
然后修改nifi.properties中的一些参数
修改配置了zookeeper节点的nifi安装目录下的/conf/state-management.xml
在此文件夹下(没有则创建)不同节点分别执行
vi nifi.properties
vi login-identity-providers.xml
4. 配置用于登陆的用户信息
vi authorizers.xml
5. 启动服务,登陆web页面
配置完成后,每个节点启动nifi:nifi.sh start,启动完成后用jps查看相关进程,或用curl命令来验证nifi是否启动:curl --insecure https://node1:9443/nifi
每个节点都能登陆访问web页面
Hosts:设置的ip
Port: 9443(默认,或者你修改的端口)
User: login/server
Password: ****(前面kerberos配置的用户名和密码)
一、版本信息
OS:CentOS7.2JDK : 1.8.0_65
NIFI : 1.3.0
ZooKeeper: 3.4.6
二、操作系统配置
2.1 配置每个节点各自的网络静态IP地址vi /etc/sysconfig/network-scripts/ifcfg-enoXXX(该文件可能会因环境而异)
2.2 配置每个节点的主机名
方法一 hostnamectl set-hostname *** 方法二 vi /etc/hostname 把原来的主机名修改为需要设置的主机名,例如:node1
2.3配置每个节点的IP映射文件
vi /etc/hosts 192.168.1.1 node1 192.168.1.2 node2 192.168.1.3 node32.4 关闭每个节点的防火墙
>setenforce 0 >vi /etc/selinux/config SELINUX=disabled #修改内容为disabled >systemctl stop firewalld.service >systemctl disable firewalld.service >firewall-cmd --state #查看防火墙状态(关闭显示not running,开启显示running)2.5 同步每个节点的时间
ntpdate 0.centos.pool.ntp.org 同步时间
三、配置kerberos server
参考 上一篇文章 nifi基于Kerberos的单节点安全登陆配置配置好Kerberos server端以后(可单独配置一台机器,也可配置在一台nifi节点上),在其他节点安装Kerberos的client端,并能连通(参考Kerberos主从架构设计)
配置Kerberos的client端--在每个client端执行
1.通过在线安装的方式安装KDC客户端
yum -y install krb5-libs krb5-workstation krb5-auth-dialog2.配置kerberos客户端的/etc/krb5.conf文件
配置成kerberos服务端一样的内容就可以,为了方便可直接拷贝kerberos服务端的文件直接覆盖就可以。
3.验证kerberos客户端是否联通,利用kinit命令验证kerberos客户端是否可以通信服务端。
kinit login/server@NIFI.COM
四、证书生成以及配置
利用Toolkit工具生成证书,Nifi官方提供了一个工具用户生成相关的证书,参考文档 Apache NiFi Admin Guide 的 TLS Generation Toolkit模块:下载地址:http://nifi.apache.org/download.html
下载后解压安装nifi-toolkit-1.3.0-bin.zip (或tar.gz格式),配置好环境变量方便使用.
生成相关证书
为node[1-3]节点生成密钥库,truststore,nifi.properties以及具有给定DN的客户端证书。
tls-toolkit.sh standalone -c ca.nifi.com -n 'node[1-3]' -o './target'其中
-n,-hostnames要生成证书的主机名列表(以逗号分隔),可指定多次,支持范围和实例模式。
-c, -certificateAuthorityHostname 为Hostname of NiFi Certificate Authority。
-o, -outputDirectory 指定生成证书的路径
分发证书
把node1目录下的文件拷贝到node1节点下nifi的安装目录的conf文件下,重复的文件选择覆盖,同样把node2目录下的文件拷贝到node2节点下nifi的安装目录的conf文件下,把node3目录下的文件拷贝到node3节点下nifi的安装目录的conf文件下。
scp ./node1/* /opt/nifi-1.3.0/conf/ scp ./node2/* root@node2:/opt/nifi-1.3.0/conf/ scp ./node3/* root@node3:/opt/nifi-1.3.0/conf/
五、NIF配置-Kerberos认证
1. 配置nifi常用参数采用nifi-toolkit工具生成的证书,在生成证书的过程中已经生了一个nifi.properties配置文件,把不同目录下的证书文件拷贝到不同节点nifi的conf目录下,重复的文件选择覆盖
然后修改nifi.properties中的一些参数
nifi.state.management.embedded.zookeeper.start=true nifi.cluster.protocol.is.secure=true nifi.cluster.is.node=true nifi.zookeeper.connect.string=node1:2181,node2:2181,node3:2181采用了nifi中的自带zookeeper,设置三个节点的zookeeper.
修改配置了zookeeper节点的nifi安装目录下的/conf/state-management.xml
<property name="Connect String">node1:2181,node2:2181,node3:2181</property>修改每个节点的/conf/zookeeper.properties
server.1=node1:2888:3888 server.2=node2:2888:3888 server.3=node3:2888:3888创建myid文件,主要根据zookeeper.properties文件的的dataDir=./state/zookeeper参数确定位置
在此文件夹下(没有则创建)不同节点分别执行
echo 1 > ./state/zookeeper/myid echo 2 > ./state/zookeeper/myid echo 3 > ./state/zookeeper/myid2. 配置kerberos参数
vi nifi.properties
nifi.remote.input.secure=true nifi.security.user.login.identity.provider=kerberos-provider # kerberos # nifi.kerberos.krb5.file=/etc/krb5.conf nifi.kerberos.service.principal=test/NIFI@NIFI.COM #配置的服务主体 nifi.kerberos.keytab.location=/opt/test-NIFI.keytab #配置服务主体的keytab把配置服务主体的/opt/test-NIFI.keytab拷贝到每个节点的/opt目录下
scp test-NIFI.keytab root@node2:/opt/ scp test-NIFI.keytab root@node3:/opt/3. 配置nifi登陆信息
vi login-identity-providers.xml
<provider> <identifier>kerberos-provider</identifier> <class>org.apache.nifi.kerberos.KerberosProvider</class> <property name="Default Realm">NIFI.COM</property> <property name="Authentication Expiration">12 hours</property> </provider>放开kerberos-provide的配置,把相关注释部分取消,然后配置成你前面设置的Realm。
4. 配置用于登陆的用户信息
vi authorizers.xml
<authorizer> <identifier>file-provider</identifier> <class>org.apache.nifi.authorization.FileAuthorizer</class> <property name="Authorizations File">./conf/authorizations.xml</property> <property name="Users File">./conf/users.xml</property> <!--这里配置的是用于页面登陆的用户--> <property name="Initial Admin Identity">login/server@NIFI.COM</property> <property name="Legacy Authorized Users File"></property> <!-- Provide the identity (typically a DN) of each node when clustered. 注意空格--> <property name="Node Identity 1">CN=node1, OU=NIFI</property> <property name="Node Identity 2">CN=node2, OU=NIFI</property> <property name="Node Identity 3">CN=node3, OU=NIFI</property> </authorizer>
5. 启动服务,登陆web页面
配置完成后,每个节点启动nifi:nifi.sh start,启动完成后用jps查看相关进程,或用curl命令来验证nifi是否启动:curl --insecure https://node1:9443/nifi
每个节点都能登陆访问web页面
Hosts:设置的ip
Port: 9443(默认,或者你修改的端口)
User: login/server
Password: ****(前面kerberos配置的用户名和密码)
相关文章推荐
- 基于Kerberos的NIFI集群安全登陆模式
- 基于Kerberos的NIFI单节点安全登陆配置
- 基于Kerberos的NIFI单节点安全登陆配置
- hadoop集群的安全模式
- WCF开发-使用证书文件配置基于自定义X509证书验证的消息安全模式
- 第127讲:Hadoop集群管理之安全模式解析及动手实战学习笔记
- Hadoop的安全模式——hadoop2.2.0的Kerberos的配置
- 【大数据安全】基于Kerberos的大数据安全验证方案
- [hadoop][会装]HBase集群安装--基于hadoop ha模式
- Win7下基于消息安全模式的WCF托管(IIS与WinForm)
- Docker笔记三:基于LVS DR模式构建WEB服务集群
- 配置基于DR模式Lvs集群
- 大数据_Storm_Storm的集群模式与本地模式 (基于Storm 1.0.1)
- 云上基于Kerberos的大数据安全实践
- 配置基于DR模式Lvs集群
- kubernetes学习记录(9)——集群基于CA签名的安全设置
- 配置基于DR模式和NAT模式Lvs集群
- 【RHCE学习笔记】基于安全的NFS认证(kerberos)
- 基于kerberos的分布式计算平台安全
- windows 7进入登陆界面以后,一闪一闪,怎么都启动不了。安全模式也一样