一、网安学习成长路线图
网安所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、网安视频合集
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
三、精品网安学习书籍
当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
四、网络安全源码合集+工具包
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
五、网络安全面试题
最后就是大家最关心的网络安全面试题板块
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
1、进入到解压目录
2、编辑配置文件:vim kibana-8.1.0/config/kibana.yml
设置kibana的访问端口:server.port: 5601
主机所在的IP:server.host: ""
指定连接Elasticsearch的连接地址:elasticsearch.hosts: ["http://IP:端口"]
我配置如下:
3、启动kibana
root用户启动:kibana-8.1.0/bin/kibana --allow-root
启动成功的截图如下,会生成一个url,复制下来把0.0.0.0换成IP地址,在访问
4、输入elasticsearch的kibana令牌登陆
5、输入账号密码:内置超级用户elastic
6、添加或不添加都行,add或explore点哪个都行
7、在kibana里验证一下,可以看到es的节点信息
8、如果遇到这个信息,这个不是报错,可以看一下linux终端上的信息,kibana会输出6个数字,输入进去即可
4、同一台服务器的elastic集群配置
4.1、生成新的elastic
单点部署完毕后来生成一个新的elastic,把之前的单点部署先停掉
1、把原有的配置都复制过去:cp -R elastic-cluster1/* elastic-cluster2/
2、设置权限
3、删除原有集群生成的数据和logs日志,不删除会报错:rm -rf esdata/* eslogs/*
4、配置文件对比如下:
集群node-1
cluster.name: elasticsearch-cluster
node.name: node-1
path.data: /elasticsearch/elastic-cluster1/esdata
path.logs: /elasticsearch/elastic-cluster1/eslogs
network.host: 0.0.0.0
http.port: 9200
transport.port: 9300
discovery.seed_hosts: ["192.168.0.2:9300", "192.168.0.2:9301"]
cluster.initial_master_nodes: ["node-1", "node-2"]
xpack.security.enabled: true
xpack.security.enrollment.enabled: true
xpack.security.http.ssl:
enabled: true
keystore.path: certs/http.p12
xpack.security.transport.ssl:
enabled: true
verification_mode: certificate
keystore.path: certs/transport.p12
truststore.path: certs/transport.p12
集群node-2
cluster.name: elasticsearch-cluster
node.name: node-2
path.data: /elasticsearch/elastic-cluster2/esdata
path.logs: /elasticsearch/elastic-cluster2/eslogs
network.host: 0.0.0.0
http.port: 9201
transport.port: 9301
discovery.seed_hosts: ["192.168.0.2:9300", "192.168.0.2:9301"]
cluster.initial_master_nodes: ["node-1", "node-2"]
xpack.security.enabled: true
xpack.security.enrollment.enabled: true
xpack.security.http.ssl:
enabled: true
keystore.path: certs/http.p12
xpack.security.transport.ssl:
enabled: true
verification_mode: certificate
keystore.path: certs/transport.p12
truststore.path: certs/transport.p12
注:配置文件有两行:cluster.initial_master_nodes,把最后一行注释掉,保留前面的一行,设置es节点:: [“node-1”, “node-2”],仔细看文件差异,因为是同一台服务器部署多节点形成集群所以有部分设置是唯一性的
5、访问测试
把2个es都启动,不然无法访问
6、启动kibana:elastic-cluster1/kibana-8.1.0/bin/kibana --allow-root
查询结果如下
5、多服务器部署节点加入同一集群
因为生产环境的es是启动着安全设置的,使用TLS加密节点间进行通信,可以参考官网文档:https://www.elastic.co/guide/en/elasticsearch/reference/8.1/security-basic-setup.html#encrypt-internode-communication
5.1、方法论
注意事项:集群中的节点数量应该是奇数个,最少为3个,这样可以避免脑裂问题
就不放截图了,直接口述,跟上面配置没有太大出入,包括注意事项一样,当时这个问题卡了我几天后来把data目录下的数据删除后在启动就可以了
1、如果你是新集群,es内没有任何数据可以使用此方法,把es里面配置的的data和logs目录下的所有内容都删除
2、主机这两个内网主机是否能通信,首先保证通信正常,能ping就行
3、是否设置了node.roles:,如果默认不用管,如果设置了你要确保你设置的是否正确
4、确保你的ca证书,及tls设置是否正确,可以参考下面配置的生成证书然后分配到对应节点上在加入集群,或者用取巧的方法,直接把集群拷贝过去,然后修改一下启动即可
5、不用生成新的token node,新节点也不用指定token
- 我的操作步骤,复制已有集群到另外一台机器上,然后配置/etc/hosts文件把IP和主机名加入进去,然后,新节点下的data和logs目录内的文件全部删除,配置文件配置好集群信息,启动集群加入新节点即可
- 3个节点的配置文件:
主节点配置如下:
cluster.name: node-xiao
node.name: master
network.host: 0.0.0.0
http.port: 9200
transport.port: 9300
discovery.seed_hosts: ["192.168.0.160:9300", "192.168.0.160:9302", "192.168.0.183:9301"]
cluster.initial_master_nodes: ["master"]
xpack.security.enabled: true
xpack.security.enrollment.enabled: true
xpack.security.http.ssl:
enabled: true
keystore.path: certs/http.p12
xpack.security.transport.ssl:
enabled: true
verification_mode: certificate
keystore.path: certs/transport.p12
truststore.path: certs/transport.p12
node1节点配置如下:
cluster.name: node-xiao
node.name: node1
network.host: 0.0.0.0
http.port: 9202
transport.port: 9302
discovery.seed_hosts: ["192.168.0.160:9300", "192.168.0.160:9302", "192.168.0.183:9301"]
cluster.initial_master_nodes: ["master"]
xpack.security.enabled: true
xpack.security.enrollment.enabled: true
xpack.security.http.ssl:
enabled: true
keystore.path: certs/http.p12
xpack.security.transport.ssl:
enabled: true
verification_mode: certificate
keystore.path: certs/transport.p12
truststore.path: certs/transport.p12
node2节点配置如下:
cluster.name: node-xiao
node.name: node2
network.host: 0.0.0.0
http.port: 9201
transport.port: 9301
discovery.seed_hosts: ["192.168.0.183:9301", "192.168.0.160:9302", "192.168.0.160:9300"]
cluster.initial_master_nodes: ["master"]
xpack.security.enabled: true
xpack.security.enrollment.enabled: true
xpack.security.http.ssl:
enabled: true
keystore.path: certs/http.p12
xpack.security.transport.ssl:
enabled: true
verification_mode: certificate
keystore.path: certs/transport.p12
truststore.path: certs/transport.p12
- 我试了两种方法,第一种是集群全部是初始化新的状态,方法二是加入节点,没有太大的差异
跟方法1没有什么出入
5.3、生成设置证书
官网文档:https://www.elastic.co/guide/en/elasticsearch/reference/8.1/update-node-certs-same.html
我的报错如下:错误:跳过安全自动配置,因为此节点被配置为引导或加入不受支持的多节点群集
注:我生成的是两个节点的证书,你需要最少配置3个节点,多加入个IP即可
解决方案:
1、禁用群集中所有节点的安全性:xpack.security.enabled: false
2、禁止引导检查:discovery.type=single-node
3、配置集群通信密钥,让集群通信在加入
ERROR: Skipping security auto configuration because this node is configured to bootstrap or to join a multi-node cluster, which is not supported.
- 进入elastic的目录下,执行命令生成ca证书:elasticsearch-certutil ca,默认直接回车即可,第一个选项设置名称,第二个设置密码
- 为刚刚生成的ca证书生成一个密钥库:./bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12,(elastic-stack-ca.p12为刚刚生成ca的名字)
- 把生成的证书移动到certs目录下:mv elastic-certificates.p12 ./config/certs/,mv elastic-stack-ca.p12 ./config/certs/
- 生成http的证书:./bin/elasticsearch-certutil http
1、第一个选项询问你是否生成CSR选择:n
2、询问你是否使用现有CA选择是:y
3、输入ca证书的路径,我生成的ca证书名称是elastic-stack-ca.p12:certs/elastic-stack-ca.p12
4、输入ca证书的密码,没设置直接回车即可
5、设置证书的有效期,我输入的5y,等于5年
6、是否未每个节点生成证书输入:y
7、输入节点名称,我输入的xiao1,我的主机名,稍后把es的配置文件node.name和现在输入的节点名称一致,建议这样做
8、设置哪些节点可以连接,输入主机名,一行一个,输入完了回车即可
9、确认主机名是否正确,正确输入:y
10、输入2台服务器的内网IP,每行一个,输入完了回车即可
11、确认IP是否正确,正确输入:y
12、会生成密钥的名称和大小让你确认,输入n即可,不需要更改:n
13、会在咨询你是否要生成其它证书,n,不需要
14、设置密码,我设置的空白直接回车
15、让你设置将要输出的文件名称,并会给到你一个路径这就是我们刚刚生成的证书
- 我使用的默认名称,解压一下:unzip elasticsearch-ssl-http.zip,会生成一个elasticsearch目录,移动到certs目录下:mv elasticsearch/http.p12 kibana/elasticsearch-ca.pem config/certs/
- 把certs目录传输到新节点,我新节点是全新刚解压的环境:scp -r /elasticsearch/elastic-cluster1/elasticsearch-8.1.0/config/certs/ node-3:/elasticsearch/elasticsearch-8.1.0/config/
6、冷热温节点部署
1、创建3个目录:冷节点:es-cold 、热节点:es-hot、温节点:es-warm
注:配置前先参考第2目录的安装前提,部分设置跳过,直接上3个节点的配置文件,及查询结果
配置冷热温节点必要的一步配置就是设置角色,使用node.roles参数进行设置
- 热节点:es-hot:
cluster.name: node-xiaoming1
node.name: node-1
network.host: 192.168.0.160
node.roles: [data_hot, data_content, master, ingest]
http.port: 9200
transport.port: 9300
discovery.seed_hosts: ["192.168.0.160:9300"]
cluster.initial_master_nodes: ["node-1"]
xpack.security.enabled: true
xpack.security.enrollment.enabled: true
xpack.security.http.ssl:
enabled: true
keystore.path: certs/http.p12
xpack.security.transport.ssl:
enabled: true
verification_mode: certificate
keystore.path: certs/transport.p12
truststore.path: certs/transport.p12
- 温节点:es-warm
cluster.name: node-xiaoming1
node.name: node-2
network.host: 192.168.0.160
node.roles: [data_warm, data_content, master, ingest]
http.port: 9201
transport.port: 9301
discovery.seed_hosts: ["192.168.0.160:9300", "192.168.0.160:9301"]
cluster.initial_master_nodes: ["node-1"]
xpack.security.enabled: true
xpack.security.enrollment.enabled: true
xpack.security.http.ssl:
enabled: true
keystore.path: certs/http.p12
xpack.security.transport.ssl:
enabled: true
verification_mode: certificate
keystore.path: certs/transport.p12
truststore.path: certs/transport.p12
- 冷节点:es-cold:
cluster.name: node-xiaoming1
node.name: node-3
network.host: 192.168.0.160
node.roles: [data_cold, data_content, master, ingest]
http.port: 9202
transport.port: 9302
discovery.seed_hosts: ["192.168.0.160:9300", "192.168.0.160:9301", "192.168.0.160:9302"]
cluster.initial_master_nodes: ["node-1"]
xpack.security.enabled: true
xpack.security.enrollment.enabled: true
xpack.security.http.ssl:
enabled: true
keystore.path: certs/http.p12
xpack.security.transport.ssl:
enabled: true
verification_mode: certificate
keystore.path: certs/transport.p12
truststore.path: certs/transport.p12
先看一下集群节点是否正常:
6.1、使用索引验证
参考官网文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/ilm-shrink.html,https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-shrink-index.html
1、设置特定的索引,分片设置为5
PUT kibana_sample_data_logs_ext
{
"settings": {
"number_of_replicas": 0,
"number_of_shards": 5
}
}
2、准备索引数据,首先你得先确保您索引有:kibana_sample_data_logs
POST _reindex
{
"source": {
"index": "kibana_sample_data_logs"
},
"dest": {
"index": "kibana_sample_data_logs_ext"
}
}
这是拉取方法
这是现在的分片情况
3、设置索引分片信息,主要参数:index.routing.allocation.include._tier_preference,索引-路由-分配,分配到data_hot节点上,之前我们在配置文件内定义的节点
PUT kibana_sample_data_logs_ext/_settings
{
"settings": {
"index.number_of_replicas": 0,
"index.routing.allocation.include._tier_preference": "data_hot",
"index.blocks.write": true
}
}
在查询就能看到分片都在hot节点上了
7、报错信息合集
7.1、启动elasticsearch报错
1、报错:could not find java in bundled JDK at /root/elasticsearch-8.1.0/jdk/bin/java
因为目录权限的问题,赋予对应目录启动命令的权限,并使用非root用户启动,列如使用
es用户就用如下命令:chown -R es:es /目录
2、报错如下:该问题是因为你配置文件IP地址分配的问题,仔细看看配置文件的:network.host和http.port这两个是否有冲突
3、如果elasticsearch报错killed,可以尝试设置一下JVM堆内存大小,可能是系统没内存了
7.2、kibana启动报错
1、进入kibana报错如下:可以尝试以下步骤来进行解决
-
看一下kibana的配置文件,配置连接elasticsearch的是否正确,换成本地IP或者127.0.0.1,或localhost在试试
-
如果你是多节点部署的elasticsearch,是不是近期修改了配置文件,然后只重启了主节点或单一节点,可以尝试把所有节点都重启一遍然后在试试
-
看日志进一步分析吧
Kibana server is not ready yet.
8、后台启动
- es后台启动:/elasticsearch/elastic-cluster1/elasticsearch-8.1.0/bin/elasticsearch -d
- kibana后台启动:nohup /elasticsearch/elastic-cluster1/kibana-8.1.0/bin/kibana --allow-root & > /dev/null 2>&1
9、安装IK分词器
下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases?page=3
选择你对应版本的ES,我是8.1,wget直接下载,或者下载到本地在导入进去
使用ES在线安装:./elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v8.1.0/elasticsearch-analysis-ik-8.1.0.zip,github网络不稳建议用离线安装
一、网安学习成长路线图
网安所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、网安视频合集
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
三、精品网安学习书籍
当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
四、网络安全源码合集+工具包
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
五、网络安全面试题
最后就是大家最关心的网络安全面试题板块
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!