Elastic EDR測試環境搭建
NO.1 安裝elasticsearch
apt-get install curl apt-transport-httpscurl -s https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | tee /etc/apt/sources.list.d/elastic-7.x.listapt-get updateapt-get install elasticsearch
修改配置文件/etc/elasticsearch/elasticsearch.yml
network.host: node.name: cluster.initial_master_nodes: [""]service elasticsearch startservice elasticsearch status
訪問http://ip:9200 檢查elasticsearch是否正常啟動
NO.2 安裝kibana
apt-get install kibanaserver.host: "ip"service elasticsearch start
訪問http://ip:5601查看kibana是否正常啟動
NO.3 配置SSL
不配置啟用SSL無法配置身份驗證,無法使用fleet
新建instance.yml
instances: - name: "elasticsearch" ip: - "ip" - name: "kibana" ip: - "ip"
生成證書
/usr/share/elasticsearch/bin/elasticsearch-certutil cert ca --pem --in instances.yml --out certs.zip
解壓之后配置證書
配置Elasticsearch SSL
mkdir /etc/elasticsearch/certs/ca -pcp ca/ca.crt /etc/elasticsearch/certs/cacp elasticsearch/elasticsearch.crt /etc/elasticsearch/certscp elasticsearch/elasticsearch.key /etc/elasticsearch/certschown -R elasticsearch: /etc/elasticsearch/certschmod -R 770 /etc/elasticsearch/certs
修改配置文件
# Transport layerxpack.security.transport.ssl.enabled: truexpack.security.transport.ssl.verification_mode: certificatexpack.security.transport.ssl.key: /etc/elasticsearch/certs/elasticsearch.keyxpack.security.transport.ssl.certificate: /etc/elasticsearch/certs/elasticsearch.crtxpack.security.transport.ssl.certificate_authorities: [ "/etc/elasticsearch/certs/ca/ca.crt" ] # HTTP layerxpack.security.http.ssl.enabled: truexpack.security.http.ssl.verification_mode: certificatexpack.security.http.ssl.key: /etc/elasticsearch/certs/elasticsearch.keyxpack.security.http.ssl.certificate: /etc/elasticsearch/certs/elasticsearch.crtxpack.security.http.ssl.certificate_authorities: [ "/etc/elasticsearch/certs/ca/ca.crt" ]
重啟Elasticsearch
配置kibana SSL
mkdir /etc/kibana/certs/ca -pcp ca/ca.crt /etc/kibana/certs/cacp kibana/kibana.crt /etc/kibana/certscp kibana/kibana.key /etc/kibana/certschown -R kibana: /etc/kibana/certschmod -R 770 /etc/kibana/certs
修改配置文件
elasticsearch.hosts: ["https://192.168.2.200:9200"]elasticsearch.ssl.certificateAuthorities: ["/etc/kibana/certs/ca/ca.crt"]elasticsearch.ssl.certificate: "/etc/kibana/certs/kibana.crt"elasticsearch.ssl.key: "/etc/kibana/certs/kibana.key"server.ssl.enabled: trueserver.ssl.certificate: "/etc/kibana/certs/kibana.crt"server.ssl.key: "/etc/kibana/certs/kibana.key"
添加身份驗證
修改elasticsearch配置,添加
xpack.security.enabled: true
生成密碼
/usr/share/elasticsearch/bin/elasticsearch-setup-passwords auto
修改kibana配置文件,添加
xpack.security.enabled: trueelasticsearch.username: "kibana_system"elasticsearch.password: "kibana_system_password"
kibana還需要添加的其他配置
xpack.fleet.enabled: true //啟用fleetxpack.fleet.agents.tlsCheckDisabled: true //關閉fleet tls檢測 可不設置這項xpack.security.encryptionKey:"32位字符" //需要配置才可以查看和創建檢測規則xpack.encryptedSavedObjects.encryptionKey:"32位字符" //不知道干嘛的 猜測是為了重啟之后維持狀態的,不設置可能會重啟失敗
配置kibana語言為中文
i18n.locale: "zh-CN"
重啟kibana
NO.4 安裝Elastic Agent
使用生成的elastic賬號和密碼登錄elastic,在manaement選項欄里打開Fleet。打開fleet需要聯網。在代理策略欄打開修改Fleet的默認策略,添加edr的策略集成。


搜索 security,將EDR的策略集成進來

回到fleet,右上角點擊fleet設置,設置elasticsearch主機

回到Fleet 代理欄,點擊 添加代理,打開代理設置


Fleet服務主機填寫kibana主機的ip,端口號為8220,https。生成服務令牌。最后,fleet會給出安裝agent的命令。

在https://www.elastic.co/downloads/past-releases/elastic-agent-7-15-1 下載對應平臺的Agent。安裝前需要系統信任elastic的證書。
- windows
本地安全策略-安全設置-公鑰策略-證書路徑驗證設置-勾選 允許用戶信任的根 CA 用于驗證證書/允許用戶信任對等信任證書/第三方根CA和企業根CA-確定。
復制配置SSL時生成的ca.crt到windows,雙擊將證書安裝到本地計算機 受信任的頒發機構,為了不出錯我還安裝到了第三方根證書頒發機構。
- linux
證書放到/usr/local/share/ca-certificates路徑,執行命令sudo update-ca-certificates。
根據fleet給出的命令安裝agent即可。安裝成功可在fleet看到在線的agent。

點擊數據流,有數據說明agent已經正常工作

NO.5 查看告警,搜索日志
kibana側欄點擊security-告警 可以看到當前的告警,分析告警事件,告警的檢測規則,告警映射的ATT&CK。



點擊告警頁面的管理規則,可以自行添加自定義的規則
kibana側欄打開Analytics的Discover,可以根據需要搜索日志。

NO.6 坑點
· kibana啟動時需要用 -C 參數指定配置文件的路徑
· agent安裝時提示證書問題,則需要安裝時添加參數指定證書路徑 --fleet-server-es-ca=C:\Users\Administrator\Desktop\ca.crt
· fleet添加代理時無法選擇策略。management-開發工具-控制臺
POST .kibana/_delete_by_query?q=ingest-agent-policies.is_default_fleet_server:true
發送請求
· 無法啟動kibana服務 手動啟動 /usr/share/kibana/bin/kibana -C 配置文件路徑
· root身份啟動kibana ./kibana --allow-root