“A9 Team 甲方攻防团队,成员来自某证券、微步、青藤、长亭、安全狗等公司。成员能力涉及安全运营、威胁情报、攻防对抗、渗透测试、数据安全、安全产品开发等领域,持续分享安全运营和攻防的思考和实践。”

01

简介

本文将介绍如何使用Suricata和ELK(Elasticsearch,Logstash,Kibana)服务搭建IPS系统。ELK是一个开源的日志分析平台,Suricata是一个高性能的、开源的IDS/IPS系统,它可以实时监控网络流量并检测恶意行为,防御网络攻击。将 Suricata 与 ELK结合起来,创建一个安全信息和事件管理 (SIEM) 工具,有效地保护网络安全。

首先,我们需要安装和配置ELK服务。我们需要安装Elasticsearch、Logstash和Kibana,并配置它们的输出以将日志发送到Elasticsearch。我们需要配置Logstash以接收Suricata生成的JSON格式日志,然后将它们发送到Elasticsearch。

linux 启动 was 命令_es启动命令_开机启动选命令

02

步骤1:安装Elasticsearch,Logstash和Kibana

我们可以使用官方文档提供的方式安装Elasticsearches启动命令,Logstash和Kibana。以下是Ubuntu 18.04上安装的步骤:

1、下载并安装Elasticsearch:

$ wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -$ sudo apt-get install apt-transport-https$ echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-7.x.list$ sudo apt-get update$ sudo apt-get install elasticsearch

2、安装Logstash:

sudo apt-get install logstash

3、安装Kibana:

sudo apt-get install kibana

03

步骤2:启动Elasticsearch,Logstash和Kibana

使用以下命令启动Elasticsearch,Logstash和Kibana:

sudo systemctl start elasticsearch.servicesudo systemctl start logstash.servicesudo systemctl start kibana.service

04

步骤3:配置Elasticsearch,Logstash和Kibana

在安装完成后,我们需要配置Elasticsearch,Logstash和Kibana以确保它们能够正常工作。以下是配置的步骤:

1、配置Elasticsearch:

检查Elasticsearch是否正在运行:使用以下命令向Elasticsearch主机发送curl请求:

curl -X GET “:9200”

如果您看到“Elasticsearch”字样,则Elasticsearch正在运行。

启用xpack.security:在elasticsearch.yml配置文件中,取消注释以下行:

xpack.security.enabled: true

生成elastic和kibana_system用户的密码:使用以下命令生成密码

sudo /usr/share/elasticsearch/bin/elasticsearch-setup-passwords auto

将生成的密码保存在安全的地方es启动命令,我们将在后面的步骤中使用它们。

2、配置Logstash:

配置Logstash以接收Suricata生成的JSON格式日志,然后将它们发送到Elasticsearch。在/etc/logstash/conf.d/suricata.conf文件中,添加以下内容:

input {    beats {        port => 5044    }}filter {    if [type] == "suricata" {        json {            source => "message"        }    }}output {    elasticsearch {        hosts => ["localhost:9200"]        index => "suricata-%{+YYYY.MM.dd}"        user => "elastic"        password => "password"    }}

替换user和password为您在步骤1中生成的密码。

3、配置Kibana:

在kibana.yml文件中,取消注释以下行:

elasticsearch.username: "elastic"elasticsearch.password: "password"

替换username和password为您在步骤1中生成的密码。

05

步骤4:安装Suricata

使用以下命令安装Suricata:

sudo apt-get updatesudo apt-get install suricata

06

步骤5:配置Suricata

配置Suricata的输入和输出。在/etc/suricata/suricata.yaml文件中,取消注释以下行:

# 定义接收数据的网络接口af-packet:  - interface: eth0# 定义输出到Logstash的配置outputs:  - logstash:      hosts: ["localhost:5044"]      user: "elastic"      password: "password"

替换user和password为您在步骤1中生成的密码。

下载Suricata规则。使用以下命令下载Emerging Threats规则:

sudo suricata-update

启动Suricata。使用以下命令启动Suricata:

sudo suricata -c /etc/suricata/suricata.yaml -i eth0

07

步骤6:测试 Suricata 规则

检查 Suricata 是否可以检测到可疑流量。在Suricata 指南建议使用以下命令去进行 测试 ET Open 规则编号2100498 。

$ curl http://testmynids.org/uid/index.html

响应内容为

uid=0(root) gid=0(root) groups=0(root)

上面的命令假装返回 id可以在受感染系统上运行的命令的输出。要测试 Suricata 是否检测到流量,需要使用指定的规则编号来检查日志文件。

$ grep 2100498 /var/log/suricata/fast.log

如果您的请求使用 IPv4,您将看到以下输出。

22/04/2023-23:21:46.783476  [**] [1:2100498:7] GPL ATTACK_RESPONSE id check returned root [**] [Classification: Potentially Bad Traffic] [Priority: 2] {TCP} IP:80 -> IP:36364

Suricata /var/log/suricata/eve.log使用 JSON 格式将事件记录到文件中。

08

步骤7 设置访问 Kibana 仪表板

由于 KIbana 配置为仅通过其私有 IP 地址访问 Elasticsearch本案例是使用 SSH 隧道 PC 连接到 Elasticsearch 服务器。这会将端口 5601 从本地的 PC 转发到服务器的私有 IP 地址,将能够从本地 PC 访问 Kibana :5601。

使用 SSH 本地隧道

如果使用的是 Windows 10 或 Windows 11,则可以从 Windows Powershell 运行 SSH LocalTunnel。在 Linux 或 macOS 上,您可以使用终端。如果没有配置 SSH 访问,需要配置它。

在计算机的终端中运行以下命令以创建 SSH 隧道。

$ ssh -L 5601:your_private_IP:5601 navjot@your _public_IP -N

该-L标志指的是本地 SSH 隧道,它将本地PC 端口流量转发到服务器。

这private_IP:5601是流量在服务器上转发到的 IP 地址。在这种情况下,将其替换为Elasticsearch 服务器的私有 IP 地址。

这your_public_IP是 Elasticsearch 服务器的公共 IP 地址,用于打开 SSH 连接。

该-N标志告诉 OpenSSH 不要执行任何命令,只要隧道运行就保持连接。

现在隧道已打开,可以通过:5601在 PC 的浏览器上打开 URL 来访问 Kibana。

只要需要访问 Kibana,就需要保持命令运行。在终端中按Ctrl + C关闭隧道。

配置防火墙

在继续之前,您需要在防火墙中打开 HTTP 和 HTTPS 端口。

$ sudo firewall-cmd --permanent --add-service=http $ sudo firewall-cmd --permanent --add-service=https

重新加载防火墙以启用更改。

$ sudo firewall-cmd --reload

安装和配置 SSL

第一步是安装 Let’s Encrypt SSL 证书。由于我们已经设置了 EPEL 存储库,因此请安装 Certbot 工具。

$ sudo dnf install certbot

为域生成 SSL 证书kibana.example.com。

$ sudo certbot certonly --standalone --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m name@example.com -d kibana.example.com

上面的命令会将证书下载到/etc/letsencrypt/live/kibana.example.com服务器上的目录中。

生成Diffie-Hellman 组证书。

$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

为 Let’s Encrypt 自动更新创建一个网站根目录。

$ mkdir -p /var/lib/letsencrypt

创建 Cron 作业以更新 SSL。它将每天运行以检查证书并在需要时更新。为此,首先,创建文件/etc/cron.daily/certbot-renew并打开它进行编辑。

$ sudo nano /etc/cron.daily/certbot-renew

粘贴以下代码。

#!/bin/sh certbot renew --cert-name kibana.example.com --webroot -w /var/lib/letsencrypt/ --post-hook "systemctl reload nginx"

通过按Ctrl + X并在出现提示时输入Y来保存文件。

更改任务文件的权限以使其可执行。

$ sudo chmod +x /etc/cron.daily/certbot-renew

09

步骤7 管理 Kibana 仪表板

在进一步管理仪表板之前,您需要在 Kibana 的配置中添加基本 URL 字段。

打开 Kibana 的配置文件。

$ sudo nano /etc/kibana/kibana.yml

找到注释行#server.publicBaseUrl: “”并通过删除它前面的散列来如下更改它。

server.publicBaseUrl: "https://kibana.example.com"

通过按Ctrl + X并在出现提示时输入Y来保存文件。

重新启动 Kibana 服务。

$ sudo systemctl restart kibana

等待几分钟,然后在浏览器中加载 URL。elastic使用您之前生成的用户名和密码登录,将可以看到以下屏幕。

es启动命令_linux 启动 was 命令_开机启动选命令

type:data suricata在顶部的搜索框中键入以查找 Suricata 的信息 。

开机启动选命令_linux 启动 was 命令_es启动命令

单击第一个结果([Filebeat Suricata] Alert Overview),您将看到类似于以下的屏幕。默认情况下,它仅显示最近 15 分钟的条目,但我们在更大的时间跨度内显示它以显示教程的更多数据。

es启动命令_开机启动选命令_linux 启动 was 命令

单击“事件”按钮可查看所有记录的事件。

开机启动选命令_es启动命令_linux 启动 was 命令

限 时 特 惠: 本站每日持续更新海量各大内部创业教程,一年会员只需98元,全站资源免费下载 点击查看详情
站 长 微 信: muyang-0410