0x00 硬件配置
固态硬盘,16GB内存以上
本次部署中使用的命令、安装包适用于Windows,Linux请注意变化语句
0x01 软件准备
- Elasticsearch
- kibana
- Elastic Agent 8.7.0 x86 64位(同时也是Fleet)Windows Liunx
在日志服务器上下载完毕后分别解压,前两者解压即用,后者是其实是安装包
注:由于下载源在国外,所以建议先手工下载,而不是用官方命令一键安装
- NSSM(用来设置kibana自启的),解压后将里面的nssm.exe放入kibana文件夹bin文件夹内备用
0x02 Elasticsearch部署
先运行bin/elasticesearch.bat
完成安装,显示token
后将token
、password
分别复制(建议将所有输出内容做下备份),出现started
即为成功,可以访问http://localhost:9200/进行测试。
token
有效期30分钟,如果需要生成新的token们可以在此目录下命令行执行elasticsearch-create-enrollment-token -s kibana --url "https://127.0.0.1:9200"
如果需要安装为自启服务,则运行在此目录下命令行执行elasticsearch-service.bat install
如果出现error downloading geoip database
报错,可以先在config/elasticsearch.yml
底部添加一行ingest.geoip.downloader.enabled: false
0x03 kibana部署
运行bin/kibana.bat
,出现类似Go to http://localhost:5601/?code=368039 to get started.
即为成功,访问该网址,将Elasticsearch部署
输出结果中token
填入,kibana
的默认用户名为elastic
,密码见Elasticsearch部署
输出结果中的password
。
如需设置中文,进入到config
文件夹,编辑kibana.yml
,将#i18n.locale
一行改为i18n.locale: "zh-CN"
,如需外网访问,将server.host
一行改为为server.host: "0.0.0.0"
。
警告:yml文件类似ini配置文件,一行代表一项配置,如果打开后发现所有配置项都在一行请用其他软件编辑,否则配置文件将无法使用。
如果需要安装为自启服务,则运行在此目录下命令行执行nssm install kibana
,在弹出窗口中path
输入kibana.bat
,在Startup directory
输入kibana.bat
的所在文件夹,点击右下角 install service
按钮即可。
0x04 Fleet部署
进入kibana
后,在左侧菜单,最下方找到Fleet
,点击“添加Fleet服务器
”,输入自定义的名称,URL
处输入服务器地址https://本机IP:9200
,点击“生成Fleet服务器
”按钮,等待第二步“将 Fleet 服务器安装到集中式主机
”出现代码,在代码中找到服务器地址、服务器token、服务器CA证书部分并复制。
在命令行进入Elastic Agent文件夹,将对应位置替换成复制的内容,执行:
.\elastic-agent.exe install --fleet-server-es=服务器地址 --fleet-server-service-token=服务器TOKEN --fleet-server-policy=fleet-server-policy --fleet-server-es-ca-trusted-fingerprint=服务器CA证书
根据提示输入y并回车,然后回到网页版中,等到第三步“确认链接”显示“Fleet 服务器已连接”即可。
0x05 客户端采集
服务器端-部署集成策略(integration Policy
):
对于 7.11版本以上,安全
、应用程序
和系统事件
日志收集由ELK自带的 System
集成插件(integration
)处理,并默认新建了一个名为system-1
(建议自行改为服务器端
)集成策略(系统日志集成
策略
integration Policy
),这个集成策略被一个名称为Fleet Sever Policy
(建议自行改为服务器端组
)的客户端组(Agent pollcy
)采用(一个客户端组可以采用多个策略),这个客户端组包含上一章节部署的Fleet服务器。未来我们可能需要对Fleet Sever Policy
追加其他服务器需要的策略,所以我们为其他仅采集日志的客户端(Agent
)新建一个集成策略:
- 进入
kibana
; - 在左侧菜单最下方找到并进入
集成
(integration
); - 右侧搜索并进入
System
; - 点击右上角
add
;System
- 在新界面
Integration name
处为集成策略起名(这里我叫客户端系统日志集成
);策略
- 建议开启下方的
Preserve original event
功能; - 在第二部分
要将此集成添加到什么位置
?中选择New hosts
选项卡; - 为新建的
客户端组
(Agent pollcy
)设置名称(我这里名称为
*),;客户端
组 - 点击右下角“保存并继续”。
*注:如果还想为刚刚建立的客户端组
(Agent pollcy
)继续添加集成插件,不要新建集成策略(
,选择刚刚建立的integration Policy)
即可客户端组
(Agent pollcy
)
如果需要收集Windows的forwarded(转发)
、PowerShell
和 Sysmon
日志请安装Custom Windows Event Logs
集成(详情),操作如下:
- 进入
kibana
; - 在左侧菜单最下方找到并进入
集成
(integration
); - 右侧搜索并进入
Custom Windows Event Logs
; - 点击右上角
添加Custom Windows Event Logs
; - 在新界面
Channel Name
处为集成策略(可以叫Windows客户端指定日志
);集成
策略
- 建议开启下方的
Preserve original event
功能; - 在第二部分
要将此集成添加到什么位置
?中新建或使用已有客户端组(Agent pollcy
) - 点击右下角“保存并继续”。
客户端-部署Elastic Agent:
- 进入
kibana
后; - 在左侧菜单最下方找到并进入
Fleet
; - 点击右上角
添加代理
(Add agent
)按钮; - 在
您正在添加什么类型的主机?
中选择刚刚创建的
;客户端组(
Agent pollcy
) - 复制第三步-部署代码中的
enrollment-token
已备使用; - 将提前下载好的
Elastic Agent
拷贝到要采集的计算机上并解压(后台提供的命令需要在外网下载,速度极慢,建议复制或部署镜像),
Windows系统需要在解压后的目录下运行管理员powershell,执行以下代码(可以存为ps1文件备用哦):
.\elastic-agent.exe install --url=https://日志服务器IP:9200 --enrollment-token=复制的token --insecure
LINUX系统需要在解压后的目录下执行以下代码:
sudo ./elastic-agent install --url=https://日志服务器IP:9200 --enrollment-token=复制的enrollment-token --insecure
注:--insecure代表忽略证书校验,如已配置证书可忽略
然后回到网页版中,等到第三步“确认传入数据”显示“已连接”即可。
0x06 SysLogs采集
服务器端部署集成策略:
- 进入
kibana
; - 在左侧菜单最下方找到并进入
集成
(integration
); - 右侧搜索并进入
Custom TCP Logs
; - 点击右上角
添加Custom TCP Logs
; - 在新界面
Channel Name
处为集成策略起名(可以叫514日志协议
)日志集成
策略
- 在新界面
Listen Address
填入0.0.0.0
; Listen port
填入514
(大部分设备默认都是这个端口传输);- 开启下方的
Syslog Parsing
功能(以支持RFC3164
和RFC5424
格式); - 在第二部分
要将此集成添加到什么位置
?中选择Existing hosts
选项卡;
选择客户端组(
Agent pollcy
)服务器端组
(原先的Fleet Server Policy
);- 点击右下角“保存并继续”。
再按照上述操作,添加Custom UDP Logs
集成即可。
客户端配置:
在设备的后台(如上网控制、防火墙等)或控制界面(如交换机命令行)将日志服务器地址指向刚刚部署的服务器即可,端口如可以配置则填写514
,否则应该默认为514
,如果有其他端口存在可以考虑再次部署集成策略(原策略不动),Listen port
处不同即可。