ELK加密(ES6.4.2配置x-pack)

跳步骤

配置完步骤3可以直接使用这里的jar包和json文件完成;直接步骤5。
es 6.4.2 的jar包 x-pack-core-6.4.2.jar(博客不知道怎么上传包)

关闭es服务

systemctl stop elasticsearch.service

备份默认的es的jar包

cd /data/elasticsearch/modules/x-pack-core
mv x-pack-core-6.4.2.jar x-pack-core-6.4.2.jar-old

#替换新jar包
mv x-pack-core-6.4.2.crack.jar x-pack-core-6.4.2.jar
chown -R elasticsearch:elasticsearch x-pack-core-6.4.2.jar
systemctl start elasticsearch.service

#替换es默认的jar包
cp x-pack-core-6.4.2.crack.jar /usr/share/elasticsearch/modules/x-pack-core/x-pack-core-6.4.2.jar

es 6.4.2 证书json文件(博客不知道怎么上传包)

上传这个json
在这里插入图片描述
千万别急着更新,先试用30天,完成服务器更改,在替换证书
在这里插入图片描述

1、说明:

es 6.8版本及以后的版本x-pack功能没有有效期限制;es6.4使用x-pack需要破解或者试用一个月。

2、前提:

elk完成

3、配置x-pack

3.1、开启试用

kibana请先点击试用再配置x-pack的相关证书。
证书管理
在这里插入图片描述

开启试用
在这里插入图片描述

显示一个月的试用期
在这里插入图片描述

不这样操作设置密码时会提示x-pack不可用;有其他设置密码不报错可以新加进来。

3.2、生成证书

#创建证书目录
mkdir  /etc/elasticsearch/certs/
cd /usr/share/elasticsearch/bin
#生成证书 -out指定生成路径
./elasticsearch-certutil ca -out /etc/elasticsearch/certs/elastic-certificates.p12 -pass ""
#证书文件授权
chmod 660 /etc/elasticsearch/certs/* 

3.3、配置证书

#es的主配置文件根据实际的es安装路径决定
vim /etc/elasticsearch/elasticsearch.yml  
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: certs/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: certs/elastic-certificates.p12

3.4、重启es

systemctl restart elasticsearch.service

3.5、验证

现在直接请求es或者登陆kiban就不行了

在这里插入图片描述
在这里插入图片描述

kibana界面提示
在这里插入图片描述

到此配置证书成功

3.6、设置密码

 ./bin/elasticsearch-setup-passwords auto
 #生成的密码记录下

3.7、配置Kibana

Kibana连接Elasticsearch的凭据,若使用kibana账户则无法链接

vim /etc/kibana/kibana.yml 
server.port: 5601
server.host: "xxxx"
server.name: "xxxx"

elasticsearch.url: "http://xxxx:9200"
elasticsearch.username: "elastic"
elasticsearch.password: "xxxx"

#重启Kibana应用以刷新配置
systemctl restart kibana.service

在这里插入图片描述

4、更新证书许可(上传不了包,所以就一步步来吧)

使用反编译工具打开x-pack-core-6.4.2.jar是.class文件

修改的jar包是
/usr/share/elasticsearch/modules/x-pack-core/x-pack-core-6.4.2.jar
jar里面的2个文件是
org.elasticsearch.license.LicenseVerifier.java
org.elasticsearch.xpack.core.XPackBuild.java

在这里插入图片描述

Java反编译工具luyten
luyten项目地址:
https://github.com/deathmarine/Luyten
下载反编译工具
https://github.com/deathmarine/Luyten/releases/tag/v0.5.4_Rebuilt_with_Latest_depenencies
Windows安装包:
https://github.com/deathmarine/Luyten/releases/download/v0.5.4_Rebuilt_with_Latest_depenencies/luyten-0.5.4.exe

4.1、修改文件 ./org/elasticsearch/xpack/core/XPackBuild.class

XPackBuild 中 最后一个静态代码块中 try的部分全部删除,这部分会验证jar包是否被修改

package org.elasticsearch.xpack.core;

import org.elasticsearch.common.io.*;
import java.net.*;
import org.elasticsearch.common.*;
import java.nio.file.*;
import java.io.*;
import java.util.jar.*;

public class XPackBuild
{
    public static final XPackBuild CURRENT;
    private String shortHash;
    private String date;
    
    @SuppressForbidden(reason = "looks up path of xpack.jar directly")
    static Path getElasticsearchCodebase() {
        final URL url = XPackBuild.class.getProtectionDomain().getCodeSource().getLocation();
        try {
            return PathUtils.get(url.toURI());
        }
        catch (URISyntaxException bogus) {
            throw new RuntimeException(bogus);
        }
    }
    
    XPackBuild(final String shortHash, final String date) {
        this.shortHash = shortHash;
        this.date = date;
    }
    
    public String shortHash() {
        return this.shortHash;
    }
    
    public String date() {
        return this.date;
    }
    
    static {
        final Path path = getElasticsearchCodebase();
        String shortHash = null;
        String date = null;
        Label_0157: {
            shortHash = "Unknown";
            date = "Unknown";
        }
        CURRENT = new XPackBuild(shortHash, date);
    }
}

              


4.2、修改文件jar/org/elasticsearch/license/LicenseVerifier.class

package org.elasticsearch.license;

import java.nio.*;

import java.util.*;

import java.security.*;

import org.elasticsearch.common.xcontent.*;

import org.apache.lucene.util.*;

import org.elasticsearch.common.io.*;

import java.io.*;

public class LicenseVerifier

{

    public static boolean verifyLicense(final License license, final byte[] encryptedPublicKeyData) {

        return true;

    }

    public static boolean verifyLicense(final License license) {

        return true;

    }

}

4.3、编译Java程序

把es源代码x-pack-core-6.4.2.jar解压,替换掉这2个文件 LicenseVerifier.java、XPackBuild.java

mkdir /mnt/jar/
cd /mnt/jar/
备份
cp /usr/share/elasticsearch/modules/x-pack-core/x-pack-core-6.4.2.jar  x-pack-core-6.4.2.jar-bak
解压:
jar -xvf x-pack-core-6.4.2.jar 该命令会解压到当前目录

编译Java程序,把2个.java文件编译为class文件

#编译LicenseVerifier.java es程序目录/usr/share/elasticsearch/modules/根据实际安装路径决定
javac -cp "/usr/share/elasticsearch/modules/x-pack-core/*:/usr/share/elasticsearch/lib/*" LicenseVerifier.java
#编译XPackBuild.java es程序目录/usr/share/elasticsearch/modules/根据实际安装路径决定
javac -cp "/usr/share/elasticsearch/modules/x-pack-core/*:/usr/share/elasticsearch/lib/*" XPackBuild.java

在这里插入图片描述

替换class文件

cp /mnt/LicenseVerifier.class /mnt/jar/org/elasticsearch/license/
cp /mnt/XPackBuild.class /mnt/jar/org/elasticsearch/xpack/core/

打成新的jar包

cd /mnt/
jar -cvf x-pack-core-6.4.2.crack.jar -C jar/ .   //把jar目录下所有打包成名为x-pack-core-6.4.2.crack.jar

#替换原始的jar包,将重新打包破解的jar替换到Elasticsearch对应的目录中
cp x-pack-core-6.4.2.crack.jar /usr/share/elasticsearch/modules/x-pack-core/x-pack-core-6.4.2.jar

重启es

logstash 配置

找到logstash所在服务器,修改其配置项

vim conf.d/zhuizhi_logstash.conf

举例说明output下面都要添加的,这里拿一个举例子
output {
    if[type] == "monitor"{
        elasticsearch{
            hosts => ['xxxxxxxx:9200']
            user => "elastic"
            password => xxxxxxxx
            index => "monitor-%{+YYYY.MM.dd}"
            timeout => 300
        }
             
#这里填写为elastic的密码

重启logstash
备份别备份在这个目录下,重启他会识别两个文件的,搞了一周就因为这个问题,坑死了!

6、更新普通版本为白金版

在官网上申请一个许可证:https://register.elastic.co/marvel_register
填写资料后会有一个送邮件,下载对应的es版本,是一个json格式的文件,修改完成后kibana上传。
在这里插入图片描述

修改type字段为platinum,表示铂金版
修改expiry_date_in_millis字段为2147482800000,表示时间尽头,时间戳格式必须和官方的一致不然上传不成功。

修改max_nodes字段为1000,表示集群数量
json

{
  "license": {
    "uid": "aa",
    "type": "platinum",
    "issue_date_in_millis": 1519689600000,
    "expiry_date_in_millis": 2524579200999,
    "max_nodes": 1000,
    "issued_to": "aa",
    "issuer": "Web Form",
    "signature": "AAAAAwAAAA019",
    "start_date_in_millis": 1519689600000
  }
}

验证证书
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值