Cách cài đặt và cấu hình Suricata IDS cùng với Elastic Stack trên Debian 12

theanh

Administrator
Nhân viên
Suricata là một công cụ giám sát mạng kiểm tra và xử lý mọi gói lưu lượng internet chảy qua máy chủ của bạn. Công cụ này có thể tạo sự kiện nhật ký, kích hoạt cảnh báo và loại bỏ lưu lượng khi phát hiện bất kỳ hoạt động đáng ngờ nào.

Bạn có thể cài đặt Suricata trên một máy duy nhất để giám sát lưu lượng của máy hoặc triển khai trên máy chủ cổng để quét tất cả lưu lượng đến và đi từ các máy chủ khác được kết nối với máy đó. Bạn có thể kết hợp Suricata với Elasticsearch, Kibana và Filebeat để tạo công cụ Quản lý sự kiện và thông tin bảo mật (SIEM).

Trong hướng dẫn này, bạn sẽ cài đặt Suricata IDS cùng với ElasticStack trên máy chủ Debian 12. Các thành phần khác nhau của ngăn xếp là:
  • Elasticsearch để lưu trữ, lập chỉ mục, liên kết và tìm kiếm các sự kiện bảo mật từ máy chủ.
  • Kibana để hiển thị các bản ghi được lưu trữ trong Elasticsearch.
  • Filebeat để phân tích cú pháp tệp nhật ký eve.json của Suricata và gửi từng sự kiện đến Elasticsearch để xử lý.
  • Suricata để quét lưu lượng mạng để tìm các sự kiện đáng ngờ và loại bỏ các gói không hợp lệ.
Hướng dẫn được chia thành hai phần, phần đầu tiên sẽ giải quyết vấn đề cài đặt và cấu hình Suricata, và phần thứ hai sẽ giải quyết vấn đề cài đặt và cấu hình Elastic Stack.

Chúng tôi sẽ cài đặt Suricata và Elastic stack trên các máy chủ khác nhau cho hướng dẫn của mình.

Điều kiện tiên quyết​


  • Các máy chủ lưu trữ Elastic Stack và Suricata phải có tối thiểu 4GB RAM và 2 lõi CPU.

  • Các máy chủ phải có thể giao tiếp với nhau bằng địa chỉ IP riêng.

  • Các máy chủ phải chạy Debian 12 với người dùng sudo không phải root.

  • Nếu bạn muốn truy cập bảng điều khiển Kibana từ mọi nơi, hãy thiết lập một tên miền (kibana.example.com) trỏ đến máy chủ nơi Elasticsearch sẽ đã cài đặt.

  • Cài đặt các gói cần thiết trên cả hai máy chủ. Một số trong số chúng có thể đã được cài đặt.
Mã:
$ sudo apt install wget curl nano ufw software-properties-common dirmngr apt-transport-https gnupg2 ca-certificates lsb-release debian-archive-keyring unzip -y
[*]
Đảm bảo mọi thứ được cập nhật trên cả hai máy chủ.
Mã:
$ sudo apt update

PHẦN 1​

Bước 1 - Cài đặt Suricata​

Suricata có sẵn trong kho lưu trữ chính thức của Debian. Cài đặt bằng lệnh sau.
Mã:
$ sudo apt install suricata
Dịch vụ Suricata được tự động bật và khởi động. Trước khi tiếp tục, hãy dừng dịch vụ Suricata vì chúng ta cần cấu hình dịch vụ này trước.
Mã:
$ sudo systemctl stop suricata

Bước 2 - Cấu hình Suricata​

Suricata lưu trữ cấu hình của mình trong tệp /etc/suricata/suricata.yaml. Chế độ mặc định của Suricata là Chế độ IDS (Hệ thống phát hiện xâm nhập), trong đó lưu lượng chỉ được ghi lại chứ không dừng lại. Nếu bạn mới sử dụng Suricata, bạn nên giữ nguyên chế độ. Sau khi đã định cấu hình và tìm hiểu thêm, bạn có thể bật chế độ IPS (Hệ thống phòng ngừa xâm nhập).

Bật ID cộng đồng​

Trường ID cộng đồng giúp dễ dàng liên kết dữ liệu giữa các bản ghi do các công cụ giám sát khác nhau tạo ra. Vì chúng ta sẽ sử dụng Suricata với Elasticsearch, việc bật Community ID có thể hữu ích.

Mở tệp /etc/suricata/suricata.yaml để chỉnh sửa.
Mã:
$ sudo nano /etc/suricata/suricata.yaml
Xác định vị trí dòng # Community Flow ID và đặt giá trị của biến community-id để true.
Mã:
. . . # Community Flow ID # Adds a 'community_id' field to EVE records. These are meant to give # records a predictable flow ID that can be used to match records to # output of other tools such as Zeek (Bro). # # Takes a 'seed' that needs to be same across sensors and tools # to make the id less predictable. # enable/disable the community id feature. community-id: true
. . .
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Bây giờ, các sự kiện của bạn sẽ mang một ID như 1:S+3BA2UmrHK0Pk+u3XH78GAFTtQ= mà bạn có thể sử dụng để khớp các tập dữ liệu trên nhiều công cụ giám sát khác nhau.

Chọn Giao diện Mạng​

Tệp cấu hình Suricata mặc định sẽ kiểm tra lưu lượng truy cập trên giao diện thiết bị/mạng eth0. Nếu máy chủ của bạn sử dụng giao diện mạng khác, bạn sẽ cần cập nhật giao diện đó trong cấu hình.

Kiểm tra tên thiết bị của giao diện mạng bằng lệnh sau.
Mã:
$ ip -p -j route show default
Bạn sẽ nhận được đầu ra như sau.
Mã:
[ { "dst": "default", "gateway": "159.223.208.1", "dev": "eth0", "protocol": "static", "flags": [ ] } ]
Biến dev tham chiếu đến thiết bị mạng. Trong đầu ra của chúng tôi, nó hiển thị eth0 là thiết bị mạng. Đầu ra của bạn có thể khác nhau tùy thuộc vào hệ thống của bạn.

Bây giờ bạn đã biết tên thiết bị của mình, hãy mở tệp cấu hình.
Mã:
$ sudo nano /etc/suricata/suricata.yaml
Tìm dòng af-packet: xung quanh dòng số 580. Bên dưới, hãy đặt giá trị của biến interface vào tên thiết bị cho hệ thống của bạn.
Mã:
# Linux high speed capture support
af-packet: - interface: eth0 # Number of receive threads. "auto" uses the number of cores #threads: auto # Default clusterid. AF_PACKET will load balance packets based on flow. cluster-id: 99
. . .
Nếu bạn muốn thêm các giao diện bổ sung, bạn có thể thực hiện bằng cách thêm chúng vào cuối Phần af-packet ở khoảng dòng 650.

Để thêm giao diện mới, hãy chèn giao diện đó ngay phía trên phần - interface: default như minh họa bên dưới.
Mã:
# For eBPF and XDP setup including bypass, filter and load balancing, please # see doc/userguide/capture-hardware/ebpf-xdp.rst for more info. - interface: enp0s1 cluster-id: 98
... - interface: default #threads: auto #use-mmap: no #tpacket-v3: yes
Chúng tôi đã thêm một giao diện mới enp0s1 và một giá trị duy nhất cho Biến cluster-id trong ví dụ của chúng tôi. Bạn cần bao gồm một ID cụm duy nhất với mọi giao diện bạn thêm vào.

Tìm dòng pcap: và bên dưới dòng đó, đặt giá trị của biến interface thành tên thiết bị của bạn hệ thống.
Mã:
# Cross platform libpcap capture support
pcap: - interface: eth0 # On Linux, pcap will try to use mmap'ed capture and will use "buffer-size" # as total memory used by the ring. So set this to something bigger # than 1% of your bandwidth.
Để thêm giao diện mới giống như trước, hãy chèn giao diện đó ngay phía trên phần - interface: default như minh họa bên dưới.
Mã:
- interface: enp0s1
# Put default values here - interface: default #checksum-checks: auto
Sau khi hoàn tất, hãy lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Bước 3 - Cấu hình Quy tắc Suricata​

Theo mặc định, Suricata chỉ sử dụng một tập hợp quy tắc giới hạn để phát hiện lưu lượng mạng. Bạn có thể thêm nhiều bộ quy tắc hơn từ các nhà cung cấp bên ngoài bằng cách sử dụng công cụ có tên là suricata-update. Chạy lệnh sau để bao gồm các quy tắc bổ sung.
Mã:
$ sudo suricata-update -o /etc/suricata/rules
4/10/2023 -- 14:12:05 -  -- Using data-directory /var/lib/suricata.
4/10/2023 -- 14:12:05 -  -- Using Suricata configuration /etc/suricata/suricata.yaml
4/10/2023 -- 14:12:05 -  -- Using /etc/suricata/rules for Suricata provided rules.
.....
4/10/2023 -- 14:12:05 -  -- No sources configured, will use Emerging Threats Open
4/10/2023 -- 14:12:05 -  -- Fetching https://rules.emergingthreats.net/open/suricata-6.0.10/emerging.rules.tar.gz. 100% - 4073339/4073339
.....
4/10/2023 -- 14:12:09 -  -- Writing rules to /etc/suricata/rules/suricata.rules: total: 45058; enabled: 35175; added: 45058; removed 0; modified: 0
4/10/2023 -- 14:12:10 -  -- Writing /etc/suricata/rules/classification.config
4/10/2023 -- 14:12:10 -  -- Testing with suricata -T.
4/10/2023 -- 14:12:33 -  -- Done.
Phần -o /etc/suricata/rules của lệnh hướng dẫn công cụ cập nhật lưu các quy tắc vào /etc/suricata/rules thư mục. Tham số này rất quan trọng nếu không bạn sẽ nhận được lỗi sau trong quá trình xác thực.
Mã:
 - [ERRCODE: SC_ERR_NO_RULES(42)] - No rule files match the pattern /etc/suricata/rules/suricata.rules

Thêm Nhà cung cấp Bộ quy tắc​

Bạn có thể mở rộng các quy tắc của Suricata bằng cách thêm nhiều nhà cung cấp hơn. Nó có thể lấy các quy tắc từ nhiều nhà cung cấp miễn phí và thương mại.

Bạn có thể liệt kê danh sách nhà cung cấp mặc định bằng cách sử dụng lệnh sau.
Mã:
$ sudo suricata-update list-sources
Ví dụ, nếu bạn muốn bao gồm bộ quy tắc tgreen/hunting, bạn có thể bật nó bằng lệnh sau lệnh.
Mã:
$ sudo suricata-update enable-source tgreen/hunting
4/10/2023 -- 14:24:26 -  -- Using data-directory /var/lib/suricata.
4/10/2023 -- 14:24:26 -  -- Using Suricata configuration /etc/suricata/suricata.yaml
4/10/2023 -- 14:24:26 -  -- Using /etc/suricata/rules for Suricata provided rules.
4/10/2023 -- 14:24:26 -  -- Found Suricata version 6.0.10 at /usr/bin/suricata.
4/10/2023 -- 14:24:26 -  -- Creating directory /var/lib/suricata/update/sources
4/10/2023 -- 14:24:26 -  -- Enabling default source et/open
4/10/2023 -- 14:24:26 -  -- Source tgreen/hunting enabled
Chạy lại lệnh suricata-update để tải xuống và cập nhật các quy tắc mới. Theo mặc định, Suricata có thể xử lý mọi thay đổi quy tắc mà không cần khởi động lại.

Bước 4 - Xác thực cấu hình Suricata​

Suricata đi kèm với một công cụ xác thực để kiểm tra tệp cấu hình và các quy tắc xem có lỗi không. Chạy lệnh sau để chạy công cụ xác thực.
Mã:
$ sudo suricata -T -c /etc/suricata/suricata.yaml -v
4/10/2023 -- 14:24:43 -  - Running suricata under test mode
4/10/2023 -- 14:24:43 -  - This is Suricata version 6.0.10 RELEASE running in SYSTEM mode
4/10/2023 -- 14:24:43 -  - CPUs/cores online: 2
4/10/2023 -- 14:24:43 -  - fast output device (regular) initialized: fast.log
4/10/2023 -- 14:24:43 -  - eve-log output device (regular) initialized: eve.json
4/10/2023 -- 14:24:43 -  - stats output device (regular) initialized: stats.log
4/10/2023 -- 14:24:53 -  - 1 rule files processed. 35175 rules successfully loaded, 0 rules failed
4/10/2023 -- 14:24:53 -  - Threshold config parsed: 0 rule(s) found
4/10/2023 -- 14:24:54 -  - 35178 signatures processed. 1255 are IP-only rules, 5282 are inspecting packet payload, 28436 inspect application layer, 108 are decoder event only
4/10/2023 -- 14:25:07 -  - Configuration provided was successfully loaded. Exiting.
4/10/2023 -- 14:25:07 -  - cleaning up signature grouping structure... complete
Cờ -T hướng dẫn Suricata chạy ở chế độ thử nghiệm, Cờ -c cấu hình vị trí của tệp cấu hình và cờ -v in ra đầu ra chi tiết của lệnh. Tùy thuộc vào cấu hình hệ thống của bạn và số lượng quy tắc được thêm vào, lệnh có thể mất vài phút để hoàn tất.

Bước 5 - Chạy Suricata​

Bây giờ Suricata đã được cấu hình và thiết lập, đã đến lúc chạy ứng dụng.
Mã:
$ sudo systemctl start suricata
Kiểm tra trạng thái của quá trình.
Mã:
$ sudo systemctl status suricata
Bạn sẽ thấy đầu ra sau nếu mọi thứ hoạt động bình thường.
Mã:
? suricata.service - Suricata IDS/IDP daemon Loaded: loaded (/lib/systemd/system/suricata.service; enabled; preset: enabled) Active: active (running) since Wed 2023-10-04 14:25:49 UTC; 6s ago Docs: man:suricata(8) man:suricatasc(8) https://suricata-ids.org/docs/ Process: 1283 ExecStart=/usr/bin/suricata -D --af-packet -c /etc/suricata/suricata.yaml --pidfile /run/suricata.pid (code=exited, status=0/SUCCESS) Main PID: 1284 (Suricata-Main) Tasks: 1 (limit: 4652) Memory: 211.7M CPU: 6.132s CGroup: /system.slice/suricata.service ??1284 /usr/bin/suricata -D --af-packet -c /etc/suricata/suricata.yaml --pidfile /run/suricata.pid
Oct 04 14:25:49 suricata systemd[1]: Starting suricata.service - Suricata IDS/IDP daemon...
Oct 04 14:25:49 suricata suricata[1283]: 4/10/2023 -- 14:25:49 -  - This is Suricata version 6.0.10 RELEASE running in SYSTEM mode
Oct 04 14:25:49 suricata systemd[1]: Started suricata.service - Suricata IDS/IDP daemon.
Quá trình này có thể mất vài phút để hoàn tất việc phân tích tất cả các quy tắc. Do đó, kiểm tra trạng thái ở trên không phải là dấu hiệu đầy đủ cho thấy Suricata đã sẵn sàng hay chưa. Bạn có thể theo dõi tệp nhật ký bằng lệnh sau.
Mã:
$ sudo tail -f /var/log/suricata/suricata.log
Nếu bạn thấy dòng sau trong tệp nhật ký, điều đó có nghĩa là Suricata đang chạy và sẵn sàng theo dõi lưu lượng mạng. Thoát khỏi lệnh tail bằng cách nhấn CTRL+C chìa khóa.
Mã:
4/10/2023 -- 14:26:12 -  - All AFP capture threads are running.

Bước 6 - Kiểm tra Quy tắc Suricata​

Chúng tôi sẽ kiểm tra xem Suricata có phát hiện bất kỳ lưu lượng đáng ngờ nào không. Hướng dẫn của Suricata khuyến nghị kiểm tra số quy tắc ET Open 2100498 bằng lệnh sau.
Mã:
$ curl http://testmynids.org/uid/index.html
Bạn sẽ nhận được phản hồi sau.
Mã:
uid=0(root) gid=0(root) groups=0(root)
Lệnh trên giả vờ trả về đầu ra của Lệnh id có thể chạy trên hệ thống bị xâm phạm. Để kiểm tra xem Suricata có phát hiện ra lưu lượng truy cập hay không, bạn cần kiểm tra tệp nhật ký bằng số quy tắc đã chỉ định.
Mã:
$ grep 2100498 /var/log/suricata/fast.log
Nếu yêu cầu của bạn sử dụng IPv6, bạn sẽ thấy đầu ra sau.
Mã:
10/04/2023-14:26:37.511168 [**] [1:2100498:7] GPL ATTACK_RESPONSE id check returned root [**] [Classification: Potentially Bad Traffic] [Priority: 2] {TCP} 2600:9000:23d0:a200:0018:30b3:e400:93a1:80 -> 2a03:b0c0:0002:00d0:0000:0000:0e1f:c001:53568
Nếu yêu cầu của bạn sử dụng IPv4, bạn sẽ thấy đầu ra sau đầu ra.
Mã:
10/04/2023-14:26:37.511168 [**] [1:2100498:7] GPL ATTACK_RESPONSE id check returned root [**] [Classification: Potentially Bad Traffic] [Priority: 2] {TCP} 108.158.221.5:80 -> 95.179.185.42:36364
Suricata cũng ghi nhật ký sự kiện vào tệp /var/log/suricata/eve.log bằng định dạng JSON. Để đọc và diễn giải các quy tắc đó, bạn cần cài đặt jq nằm ngoài phạm vi của hướng dẫn này.

PHẦN 2​

Chúng ta đã hoàn thành phần một của hướng dẫn, trong đó chúng ta đã cài đặt Suricata và thử nghiệm nó. Phần tiếp theo liên quan đến việc cài đặt ngăn xếp ELK và thiết lập nó để trực quan hóa Suricata và các bản ghi của nó. Phần hai của hướng dẫn được cho là sẽ được thực hiện trên máy chủ thứ hai trừ khi có chỉ định khác.

Bước 7 - Cài đặt Elasticsearch​

Bước đầu tiên trong quá trình cài đặt Elasticsearch bao gồm việc thêm khóa Elastic GPG vào máy chủ của bạn.
Mã:
$ wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg
Tạo kho lưu trữ cho gói Elasticsearch bằng cách tạo tệp /etc/apt/sources.list.d/elastic-7.x.list.
Mã:
$ echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-8.x.list
Cập nhật kho lưu trữ của hệ thống danh sách.
Mã:
$ sudo apt update
Cài đặt Elasticsearch và Kibana.
Mã:
$ sudo apt install elasticsearch
Bạn sẽ nhận được kết quả sau trên Elasticsearch cài đặt.
Mã:
--------------------------- Security autoconfiguration information ------------------------------
Authentication and authorization are enabled.
TLS for the transport and HTTP layers is enabled and configured.
The generated password for the elastic built-in superuser is : IuRTjJr+=NqIClxZwKBn
If this node should join an existing cluster, you can reconfigure this with
'/usr/share/elasticsearch/bin/elasticsearch-reconfigure-node --enrollment-token '
after creating an enrollment token on your existing cluster.
You can complete the following actions at any time:
Reset the password of the elastic built-in superuser with
'/usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic'.
Generate an enrollment token for Kibana instances with '/usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana'.
Generate an enrollment token for Elasticsearch nodes with
'/usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s node'.
-------------------------------------------------------------------------------------------------
Chúng tôi sẽ sử dụng thông tin này sau.

Xác định địa chỉ IP riêng của máy chủ của bạn bằng lệnh sau.
Mã:
$ ip -brief address show
lo UNKNOWN 127.0.0.1/8 ::1/128
eth0 UP 159.223.220.228/20 10.18.0.5/16 2a03:b0c0:2:d0::e0e:c001/64 fe80::841e:feff:fee4:e653/64
eth1 UP 10.133.0.2/16 fe80::d865:d5ff:fe29:b50f/64
Ghi lại IP riêng của máy chủ của bạn (10.133.0.2 trong trường hợp này). Chúng tôi sẽ gọi nó là your_private_IP. Địa chỉ IP công khai của máy chủ (159.223.220.228) sẽ được gọi là your_public_IP trong phần hướng dẫn còn lại. Ngoài ra, hãy lưu ý tên giao diện mạng của máy chủ của bạn, eth1.

Bước 8 - Cấu hình Elasticsearch​

Elasticsearch lưu trữ cấu hình của nó trong tệp /etc/elasticsearch/elasticsearch.yml. Mở tệp để chỉnh sửa.
Mã:
$ sudo nano /etc/elasticsearch/elasticsearch.yml
Theo mặc định, Elasticsearch chỉ chấp nhận các kết nối cục bộ. Chúng ta cần thay đổi nó để Kibana có thể truy cập nó qua địa chỉ IP riêng tư.

Tìm dòng #network.host: 192.168.0.1 và thêm dòng sau ngay bên dưới dòng đó, như hiển thị bên dưới.
Mã:
# By default Elasticsearch is only accessible on localhost. Set a different
# address here to expose this node on the network:
#
#network.host: 192.168.0.1
network.bind_host: ["127.0.0.1", "your_private_IP"]
#
# By default Elasticsearch listens for HTTP traffic on the first free port it
# finds starting at 9200. Set a specific HTTP port here:
Điều này sẽ đảm bảo rằng Elastic vẫn có thể chấp nhận các kết nối cục bộ trong khi vẫn khả dụng với Kibana qua địa chỉ IP riêng tư.

Bước tiếp theo là bật một số bảo mật các tính năng và đảm bảo rằng Elastic được cấu hình để chạy trên một nút duy nhất. Nếu bạn định sử dụng nhiều nút tìm kiếm Elastic, hãy bỏ qua cả hai thay đổi bên dưới và lưu tệp.

Để thực hiện việc đó, hãy thêm dòng sau vào cuối tệp.
Mã:
. . .
discovery.type: single-node
Ngoài ra, hãy bình luận dòng sau bằng cách thêm dấu thăng (#) vào trước dòng đó.
Mã:
#cluster.initial_master_nodes: ["kibana"]
Sau khi hoàn tất, hãy lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Cấu hình Tường lửa​

Thêm các quy tắc tường lửa phù hợp cho Elasticsearch để có thể truy cập qua mạng riêng.
Mã:
$ sudo ufw allow in on eth1
$ sudo ufw allow out on eth1
Đảm bảo bạn chọn tên giao diện trong lệnh đầu tiên giống như tên bạn nhận được từ bước 7.

Khởi động Elasticsearch​

Tải lại dịch vụ daemon.
Mã:
$ sudo systemctl daemon-reload
Kích hoạt dịch vụ Elasticsearch.
Mã:
$ sudo systemctl enable elasticsearch
Bây giờ bạn đã cấu hình Elasticsearch, đã đến lúc bắt đầu dịch vụ.
Mã:
$ sudo systemctl start elasticsearch
Kiểm tra trạng thái của dịch vụ.
Mã:
$ sudo systemctl status elasticsearch
? elasticsearch.service - Elasticsearch Loaded: loaded (/lib/systemd/system/elasticsearch.service; enabled; preset: enabled) Active: active (running) since Wed 2023-10-04 14:30:55 UTC; 8s ago Docs: https://www.elastic.co Main PID: 1731 (java) Tasks: 71 (limit: 4652) Memory: 2.3G CPU: 44.355s CGroup: /system.slice/elasticsearch.service

Tạo mật khẩu Elasticsearch​

Sau khi bật cài đặt bảo mật của Elasticsearch, bước tiếp theo là tạo mật khẩu cho siêu người dùng Elasticsearch. Mật khẩu mặc định đã được cung cấp trong quá trình cài đặt mà bạn có thể sử dụng nhưng bạn nên sửa đổi nó.

Chạy lệnh sau để đặt lại mật khẩu Elasticsearch. Chọn một mật khẩu mạnh.
Mã:
$ sudo /usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic -i
This tool will reset the password of the [elastic] user.
You will be prompted to enter the password.
Please confirm that you would like to continue [y/N]y
Enter password for [elastic]: 
Re-enter password for [elastic]: 
Password for the [elastic] user successfully reset.
Bây giờ, chúng ta hãy kiểm tra xem Elasticsearch có phản hồi các truy vấn không.
Mã:
$ sudo curl --cacert /etc/elasticsearch/certs/http_ca.crt -u elastic https://localhost:9200
Enter host password for user 'elastic':
{ "name" : "kibana", "cluster_name" : "elasticsearch", "cluster_uuid" : "KGYx4poLSxKhPyOlYrMq1g", "version" : { "number" : "8.10.2", "build_flavor" : "default", "build_type" : "deb", "build_hash" : "6d20dd8ce62365be9b1aca96427de4622e970e9e", "build_date" : "2023-09-19T08:16:24.564900370Z", "build_snapshot" : false, "lucene_version" : "9.7.0", "minimum_wire_compatibility_version" : "7.17.0", "minimum_index_compatibility_version" : "7.0.0" }, "tagline" : "You Know, for Search"
}
Điều này xác nhận rằng Elasticsearch hoạt động đầy đủ và chạy trơn tru.

Bước 9 - Cài đặt và cấu hình Kibana​

Cài đặt Kibana.
Mã:
$ sudo apt install kibana
Bước đầu tiên trong quá trình cấu hình Kibana là bật chức năng bảo mật xpack bằng cách tạo khóa bí mật. Kibana sử dụng các khóa bí mật này để lưu trữ dữ liệu trong Elasticsearch. Tiện ích tạo khóa bí mật có thể được truy cập từ thư mục /usr/share/kibana/bin.
Mã:
$ sudo /usr/share/kibana/bin/kibana-encryption-keys generate -q --force
Cờ -q sẽ chặn các lệnh hướng dẫn và cờ --force sẽ đảm bảo các bí mật mới được tạo ra. Bạn sẽ nhận được kết quả như sau.
Mã:
xpack.encryptedSavedObjects.encryptionKey: 248eb61d444215a6e710f6d1d53cd803
xpack.reporting.encryptionKey: aecd17bf4f82953739a9e2a9fcad1891
xpack.security.encryptionKey: 2d733ae5f8ed5f15efd75c6d08373f36
Sao chép kết quả. Mở tệp cấu hình Kibana tại /etc/kibana/kibana.yml để chỉnh sửa.
Mã:
$ sudo nano /etc/kibana/kibana.yml
Dán mã từ lệnh trước đó vào cuối tập tin.
Mã:
. . .
# Maximum number of documents loaded by each shard to generate autocomplete suggestions.
# This value must be a whole number greater than zero. Defaults to 100_000
#unifiedSearch.autocomplete.valueSuggestions.terminateAfter: 100000
xpack.encryptedSavedObjects.encryptionKey: 3ff21c6daf52ab73e932576c2e981711
xpack.reporting.encryptionKey: edf9c3863ae339bfbd48c713efebcfe9
xpack.security.encryptionKey: 7841fd0c4097987a16c215d9429daec1
Sao chép tệp chứng chỉ CA /etc/elasticsearch/certs/http_ca.crt vào /etc/kibana thư mục.
Mã:
$ sudo cp /etc/elasticsearch/certs/http_ca.crt /etc/kibana/

Cấu hình máy chủ Kibana​

Cần cấu hình Kibana để có thể truy cập được trên địa chỉ IP riêng của máy chủ. Tìm dòng #server.host: "localhost" trong tệp và thêm dòng sau ngay bên dưới dòng đó như minh họa.
Mã:
# Kibana is served by a back end server. This setting specifies the port to use.
#server.port: 5601
# Specifies the address to which the Kibana server will bind. IP addresses and host names are both valid values.
# The default is 'localhost', which usually means remote machines will not be able to connect.
# To allow connections from remote users, set this parameter to a non-loopback address.
#server.host: "localhost"
server.host: "your_private_IP"

Tắt Telemetry​

Theo mặc định, Kibana sẽ gửi dữ liệu trở lại máy chủ của họ. Điều này có thể ảnh hưởng đến hiệu suất và cũng là rủi ro về quyền riêng tư. Do đó, bạn nên tắt Telemetry. Thêm mã sau vào cuối tệp để tắt Telemetry. Cài đặt đầu tiên tắt Telemetry và cài đặt thứ hai không cho phép ghi đè cài đặt đầu tiên từ phần Cài đặt nâng cao trong Kibana.
Mã:
telemetry.optIn: false
telemetry.allowChangingOptInStatus: false
Sau khi hoàn tất, hãy lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Cấu hình SSL​

Tìm biến elasticsearch.ssl.certificateAuthorities và bỏ chú thích và thay đổi giá trị của nó như hiển thị bên dưới.
Mã:
elasticsearch.ssl.certificateAuthorities: [ "/etc/kibana/http_ca.crt" ]

Cấu hình Kibana Access​

Bước tiếp theo là tạo mã thông báo đăng ký mà chúng ta sẽ sử dụng sau này để đăng nhập vào trang web Kibana giao diện.
Mã:
$ sudo /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana
eyJ2ZXIiOiI4LjEwLjIiLCJhZHIiOlsiMTU5LjIyMy4yMjAuMjI4OjkyMDAiXSwiZmdyIjoiOGMyYTcyYmUwMDg5NTJlOGMxMWUwNDgzYjE2OTcwOTMxZWZlNzYyMDAwNzhhOGMwNTNmNWU0NGJiY2U4NzcwMSIsImtleSI6IlQ5eE0tNG9CUWZDaGdaakUwbFAzOk9QTU5uWVRnUWppU3lvU0huOUoyMHcifQ==

Khởi động Kibana​

Bây giờ bạn đã cấu hình quyền truy cập an toàn và mạng cho Kibana, hãy khởi động và kích hoạt quy trình.
Mã:
$ sudo systemctl enable kibana --now
Kiểm tra trạng thái để xem có đang chạy.
Mã:
$ sudo systemctl status kibana
? kibana.service - Kibana Loaded: loaded (/lib/systemd/system/kibana.service; enabled; preset: enabled) Active: active (running) since Wed 2023-10-04 15:27:28 UTC; 9s ago Docs: https://www.elastic.co Main PID: 2686 (node) Tasks: 11 (limit: 4652) Memory: 241.5M CPU: 9.902s CGroup: /system.slice/kibana.service ??2686 /usr/share/kibana/bin/../node/bin/node /usr/share/kibana/bin/../src/cli/dist
Oct 04 15:27:28 kibana systemd[1]: Started kibana.service - Kibana.

Bước 10 - Cài đặt và cấu hình Filebeat​

Điều quan trọng cần lưu ý là chúng ta sẽ cài đặt Filebeat trên máy chủ Suricata. Vì vậy, hãy chuyển lại và thêm khóa Elastic GPG để bắt đầu.
Mã:
$ wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg
Tạo kho lưu trữ elastic.
Mã:
$ echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-8.x.list
Cập nhật danh sách kho lưu trữ hệ thống.
Mã:
$ sudo apt update
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Cài đặt Filebeat.
Mã:
$ sudo apt install filebeat
Trước khi cấu hình Filebeat, chúng ta cần sao chép tệp http_ca.crt từ máy chủ Elasticsearch sang máy chủ Filebeat. Chạy lệnh sau trên máy chủ Filebeat.
Mã:
$ scp username@your_public_ip:/etc/elasticsearch/certs/http_ca.crt /etc/filebeat
Filebeat lưu trữ cấu hình của nó trong tệp /etc/filebeat/filebeat.yml. Mở nó để chỉnh sửa.
Mã:
$ sudo nano /etc/filebeat/filebeat.yml
Điều đầu tiên bạn cần làm là kết nối nó với bảng điều khiển của Kibana. Tìm dòng #host: "localhost:5601" trong phần Kibana và thêm các dòng sau ngay bên dưới như minh họa.
Mã:
. . .
# Starting with Beats version 6.0.0, the dashboards are loaded via the Kibana API.
# This requires a Kibana endpoint configuration.
setup.kibana: # Kibana Host # Scheme and port can be left out and will be set to the default (http and 5601) # In case you specify and additional path, the scheme is required: http://localhost:5601/path # IPv6 addresses should always be defined as: https://[2001:db8::1]:5601 #host: "localhost:5601" host: "your_private_IP:5601" protocol: "http" ssl.enabled: true ssl.certificate_authorities: ["/etc/filebeat/http_ca.crt"]
. . .
Tiếp theo, tìm phần Elasticsearch Output của tệp và chỉnh sửa các giá trị của hosts, protocol, username, và password như hiển thị bên dưới. Đối với tên người dùng, hãy chọn elastic làm giá trị và đối với mật khẩu, hãy sử dụng giá trị được tạo ở bước 8 của hướng dẫn này.
Mã:
output.elasticsearch: # Array of hosts to connect to. hosts: ["your_private_IP:9200"] # Protocol - either `http` (default) or `https`. protocol: "https" # Authentication credentials - either API key or username/password. #api_key: "id:api_key" username: "elastic" password: "bd1YJfhSa8RC8SMvTIwg" ssl.certificate_authorities: ["/etc/filebeat/http_ca.crt"] ssl.verification_mode: full
. . .
Thêm dòng sau vào cuối file.
Mã:
setup.ilm.overwrite: true
Sau khi hoàn tất, hãy lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc. Có thêm một bước nữa để đảm bảo Filebeat kết nối với Elasticsearch. Chúng ta cần truyền thông tin SSL của Elasticsearch cho Filebeat để nó có thể kết nối.

Kiểm tra kết nối từ Filebeat đến máy chủ Elasticsearch. Bạn sẽ được yêu cầu nhập mật khẩu Elasticsearch.
Mã:
$ curl -v --cacert /etc/filebeat/http_ca.crt https://your_private_ip:9200 -u elastic
Bạn sẽ nhận được kết quả đầu ra sau.
Mã:
Enter host password for user 'elastic':
* Trying 10.133.0.2:9200...
* Connected to 10.133.0.2 (10.133.0.2) port 9200 (#0)
* ALPN: offers h2,http/1.1
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* CAfile: /etc/filebeat/http_ca.crt
* CApath: /etc/ssl/certs
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
* TLSv1.3 (IN), TLS handshake, Finished (20):
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.3 (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
* ALPN: server did not agree on a protocol. Uses default.
* Server certificate:
* subject: CN=kibana
* start date: Oct 4 14:28:33 2023 GMT
* expire date: Oct 3 14:28:33 2025 GMT
* subjectAltName: host "10.133.0.2" matched cert's IP address!
* issuer: CN=Elasticsearch security auto-configuration HTTP CA
* SSL certificate verify ok.
* using HTTP/1.x
* Server auth using Basic with user 'elastic'
> GET / HTTP/1.1
> Host: 10.133.0.2:9200
> Authorization: Basic ZWxhc3RpYzpsaWZlc3Vja3M2NjIwMDI=
> User-Agent: curl/7.88.1
> Accept: */*
>
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
< HTTP/1.1 200 OK
< X-elastic-product: Elasticsearch
< content-type: application/json
< content-length: 530
<
{ "name" : "kibana", "cluster_name" : "elasticsearch", "cluster_uuid" : "KGYx4poLSxKhPyOlYrMq1g", "version" : { "number" : "8.10.2", "build_flavor" : "default", "build_type" : "deb", "build_hash" : "6d20dd8ce62365be9b1aca96427de4622e970e9e", "build_date" : "2023-09-19T08:16:24.564900370Z", "build_snapshot" : false, "lucene_version" : "9.7.0", "minimum_wire_compatibility_version" : "7.17.0", "minimum_index_compatibility_version" : "7.0.0" }, "tagline" : "You Know, for Search"
}
* Connection #0 to host 10.133.0.2 left intact
Tiếp theo, kích hoạt mô-đun Suricata tích hợp của Filebeat.
Mã:
$ sudo filebeat modules enable suricata
Mở Tệp /etc/filebeat/modules.d/suricata.yml để chỉnh sửa.
Mã:
$ sudo nano /etc/filebeat/modules.d/suricata.yml
Chỉnh sửa tệp như hiển thị bên dưới. Bạn cần thay đổi giá trị của biến enabled thành true. Ngoài ra, hãy bỏ chú thích cho biến var.paths và đặt giá trị của biến như hiển thị.
Mã:
# Module: suricata
# Docs: https://www.elastic.co/guide/en/beats/filebeat/8.10/filebeat-module-suricata.html
- module: suricata # All logs eve: enabled: true # Set custom paths for the log files. If left empty, # Filebeat will choose the paths depending on your OS. var.paths: ["/var/log/suricata/eve.json"]
Sau khi hoàn tất, hãy lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Bước cuối cùng trong quá trình định cấu hình Filebeat là tải bảng điều khiển và đường ống SIEM vào Elasticsearch sử dụng lệnh filebeat setup.
Mã:
$ sudo filebeat setup
Có thể mất vài phút để lệnh hoàn tất. Sau khi hoàn tất, bạn sẽ nhận được kết quả sau.
Mã:
Overwriting ILM policy is disabled. Set `setup.ilm.overwrite: true` for enabling.
Index setup finished.
Loading dashboards (Kibana must be running and reachable)
Loaded dashboards
Loaded Ingest pipelines
Khởi động dịch vụ Filebeat.
Mã:
$ sudo systemctl start filebeat
Kiểm tra trạng thái của service.
Mã:
$ sudo systemctl status filebeat

Bước 11 - Truy cập Bảng điều khiển Kibana​

Vì KIbana được cấu hình để chỉ truy cập Elasticsearch thông qua địa chỉ IP riêng của nó, nên bạn có hai tùy chọn để truy cập vào nó. Phương pháp đầu tiên là sử dụng Đường hầm SSH đến máy chủ tìm kiếm Elastic từ PC của bạn. Điều này sẽ chuyển tiếp cổng 5601 từ PC của bạn đến địa chỉ IP riêng của máy chủ và bạn sẽ có thể truy cập Kibana từ PC của mình tại http://localhost:5601. Nhưng phương pháp này có nghĩa là bạn sẽ không thể truy cập nó từ bất kỳ nơi nào khác.

Tùy chọn khác là cài đặt Nginx trên máy chủ Suricata của bạn và sử dụng nó như một proxy ngược để truy cập máy chủ Elasticsearch thông qua địa chỉ IP riêng của nó. Chúng ta sẽ thảo luận về cả hai cách. Bạn có thể chọn một trong hai cách dựa trên yêu cầu của mình.

Sử dụng SSH Local Tunnel​

Nếu bạn đang sử dụng Windows 10 hoặc Windows 11, bạn có thể chạy SSH LocalTunnel từ Windows Powershell của mình. Trên Linux hoặc macOS, bạn có thể sử dụng terminal. Bạn có thể sẽ cần cấu hình quyền truy cập SSH nếu bạn chưa cấu hình.

Chạy lệnh sau trong terminal của máy tính để tạo SSH Tunnel.
Mã:
$ ssh -L 5601:your_private_IP:5601 navjot@your_public_IP -N
  • Cờ -L đề cập đến Đường hầm SSH cục bộ, chuyển tiếp lưu lượng từ cổng PC của bạn đến máy chủ.
  • Cờ private_IP:5601 là địa chỉ IP mà lưu lượng của bạn được chuyển tiếp đến trên máy chủ. Trong trường hợp này, hãy thay thế nó bằng địa chỉ IP riêng của máy chủ Elasticsearch của bạn.
  • Cờ your_public_IP là địa chỉ IP công khai của máy chủ Elasticsearch, được sử dụng để mở kết nối SSH.
  • Cờ -N yêu cầu OpenSSH không thực thi bất kỳ lệnh nào mà giữ kết nối hoạt động miễn là đường hầm chạy.
Bây giờ đường hầm đã mở, bạn có thể truy cập Kibana bằng cách mở URL http://localhost:5601 trên trình duyệt của PC. Bạn sẽ nhận được màn hình sau.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22523%22%3E%3C/svg%3E


Bạn sẽ cần phải giữ lệnh chạy trong thời gian bạn cần truy cập Kibana. Nhấn Ctrl + C trong thiết bị đầu cuối của bạn để đóng đường hầm.

Sử dụng Nginx Reverse-proxy​

Phương pháp này phù hợp nhất nếu bạn muốn truy cập bảng điều khiển từ bất kỳ đâu trên thế giới.

Cấu hình Tường lửa​

Trước khi tiến hành tiếp, bạn cần mở các cổng HTTP và HTTPS trong tường lửa.
Mã:
$ sudo ufw allow http
$ sudo ufw allow https

Cài đặt Nginx​

Debian 12 đi kèm với phiên bản Nginx cũ hơn. Để cài đặt phiên bản mới nhất, bạn cần tải xuống kho lưu trữ Nginx chính thức.

Nhập khóa ký của Nginx.
Mã:
$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
Thêm kho lưu trữ cho phiên bản ổn định của Nginx.
Mã:
$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
http://nginx.org/packages/debian `lsb_release -cs` nginx" \ | sudo tee /etc/apt/sources.list.d/nginx.list
Cập nhật hệ thống kho lưu trữ.
Mã:
$ sudo apt update
Cài đặt Nginx.
Mã:
$ sudo apt install nginx
Xác minh cài đặt. Vì chúng ta đang sử dụng Debian, nên sudo trong lệnh là cần thiết.
Mã:
$ sudo nginx -v
nginx version: nginx/1.24.0
Khởi động Nginx server.
Mã:
$ sudo systemctl start nginx

Cài đặt và cấu hình SSL​

Bước đầu tiên là cài đặt Chứng chỉ SSL Let's Encrypt. Chúng ta cần cài đặt Certbot để tạo chứng chỉ SSL. Bạn có thể cài đặt Certbot bằng kho lưu trữ của Debian hoặc tải phiên bản mới nhất bằng công cụ Snapd. Chúng ta sẽ sử dụng phiên bản Snapd.

Debian 12 không đi kèm với Snapd đã cài đặt. Cài đặt gói Snapd.
Mã:
$ sudo apt install snapd
Chạy các lệnh sau để đảm bảo phiên bản Snapd của bạn được cập nhật.
Mã:
$ sudo snap install core && sudo snap refresh core
Cài đặt Certbot.
Mã:
$ sudo snap install --classic certbot
Sử dụng lệnh sau để đảm bảo lệnh Certbot có thể chạy được bằng cách tạo liên kết tượng trưng đến /usr/bin thư mục.
Mã:
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
Xác nhận cài đặt Certbot.
Mã:
$ certbot --version
certbot 2.7.0
Tạo chứng chỉ SSL cho tên miền kibana.example.com.
Mã:
$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [emailprotected] -d kibana.example.com
Lệnh trên sẽ tải xuống chứng chỉ vào /etc/letsencrypt/live/kibana.example.com thư mục trên máy chủ của bạn.

Tạo chứng chỉ nhóm Diffie-Hellman.
Mã:
$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096
Để kiểm tra xem việc gia hạn SSL có hoạt động tốt không, hãy chạy thử quá trình.
Mã:
$ sudo certbot renew --dry-run
Nếu bạn không thấy lỗi nào, bạn đã hoàn tất. Chứng chỉ của bạn sẽ tự động gia hạn.

Cấu hình Nginx​

Tạo và mở tệp cấu hình Nginx cho Kibana.
Mã:
$ sudo nano /etc/nginx/conf.d/kibana.conf
Dán mã sau vào đó. Thay thế địa chỉ IP bằng địa chỉ IP riêng của máy chủ Elasticsearch của bạn.
Mã:
server { listen 80; listen [::]:80; server_name kibana.example.com; return 301 https://$host$request_uri;
}
server { server_name kibana.example.com; charset utf-8; listen 443 ssl http2; listen [::]:443 ssl http2; access_log /var/log/nginx/kibana.access.log; error_log /var/log/nginx/kibana.error.log; ssl_certificate /etc/letsencrypt/live/kibana.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/kibana.example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/kibana.example.com/chain.pem; ssl_session_timeout 1d; ssl_session_cache shared:MozSSL:10m; ssl_session_tickets off; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;	resolver 8.8.8.8; ssl_stapling on; ssl_stapling_verify on; ssl_dhparam /etc/ssl/certs/dhparam.pem; location / { proxy_pass http://your_private_IP:5601; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; }
}
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Mở tệp /etc/nginx/nginx.conf để chỉnh sửa.
Mã:
$ sudo nano /etc/nginx/nginx.conf
Thêm dòng sau vào trước dòng include /etc/nginx/conf.d/*.conf;.
Mã:
server_names_hash_bucket_size 64;
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Xác minh cấu hình.
Mã:
$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Khởi động lại dịch vụ Nginx.
Mã:
$ sudo systemctl restart nginx
Bảng điều khiển Kibana của bạn có thể truy cập được thông qua URL https://kibana.example.com từ bất kỳ nơi nào bạn muốn.

Bước 12 - Quản lý Bảng điều khiển Kibana​

Trước khi tiếp tục quản lý bảng điều khiển, bạn cần thêm trường URL cơ sở vào cấu hình Kibana.

Mở cấu hình Kibana tập tin.
Mã:
$ sudo nano /etc/kibana/kibana.yml
Tìm dòng được chú thích #server.publicBaseUrl: "" và thay đổi như sau bằng cách xóa dấu thăng ở phía trước nó.
Mã:
server.publicBaseUrl: "https://kibana.example.com"
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Khởi động lại dịch vụ Kibana.
Mã:
$ sudo systemctl restart kibana
Chờ vài phút và tải URL https://kibana.example.com trong trình duyệt của bạn. Bạn sẽ nhận được trường mã thông báo đăng ký. Điền mã thông báo đăng ký mà bạn đã tạo ở bước 9.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22523%22%3E%3C/svg%3E


Nhấp vào nút Cấu hình Elastic để tiếp tục. Tiếp theo, bạn sẽ được yêu cầu nhập mã xác minh.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22523%22%3E%3C/svg%3E


Quay lại thiết bị đầu cuối Elasticsearch và chạy lệnh sau để tạo mã. Nhập mã này vào trang và nhấp vào nút Xác minh để tiếp tục.
Mã:
$ sudo /usr/local/share/kibana/bin/kibana-verification-code
Tiếp theo, đợi quá trình thiết lập Elastic hoàn tất. Sẽ mất vài phút.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22523%22%3E%3C/svg%3E


Tiếp theo, bạn sẽ được chuyển hướng đến màn hình đăng nhập.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22503%22%20height=%22602%22%3E%3C/svg%3E


Đăng nhập bằng tên người dùng elastic và mật khẩu bạn đã tạo trước đó, bạn sẽ nhận được màn hình sau.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22538%22%3E%3C/svg%3E


Loại type:data suricata trong hộp tìm kiếm ở trên cùng để tìm thông tin của Suricata.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22283%22%3E%3C/svg%3E


Nhấp vào kết quả đầu tiên ([Filebeat Suricata] Tổng quan về cảnh báo), và bạn sẽ nhận được màn hình tương tự như sau. Theo mặc định, nó chỉ hiển thị các mục nhập trong 15 phút gần nhất, nhưng chúng tôi đang hiển thị nó trong khoảng thời gian dài hơn để hiển thị nhiều dữ liệu hơn cho hướng dẫn.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22593%22%3E%3C/svg%3E


Nhấp vào nút Sự kiện để xem tất cả các sự kiện đã ghi nhật ký.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22593%22%3E%3C/svg%3E


Khi cuộn xuống các trang sự kiện và cảnh báo, bạn có thể xác định từng sự kiện và cảnh báo theo loại giao thức, cổng nguồn và đích, và địa chỉ IP của nguồn. Bạn cũng có thể xem các quốc gia mà lưu lượng truy cập bắt nguồn.

Bạn có thể sử dụng Kibana và Filebeat để truy cập và tạo các loại bảng điều khiển khác. Một trong những bảng điều khiển tích hợp hữu ích mà bạn có thể sử dụng ngay là bảng điều khiển Bảo mật. Nhấp vào Bảo mật >> Khám phá menu từ menu hamburger bên trái.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22234%22%20height=%22602%22%3E%3C/svg%3E


Trên trang tiếp theo, chọn tùy chọn Mạng để mở bảng điều khiển liên quan.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22516%22%3E%3C/svg%3E


Nhấp vào Tùy chọn Mạng sẽ đưa bạn đến màn hình sau.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22538%22%3E%3C/svg%3E


Bạn có thể thêm nhiều bảng điều khiển như Nginx bằng cách bật và cấu hình các mô-đun Filebeat tích hợp.

Kết luận​

Như vậy là kết thúc hướng dẫn cài đặt và cấu hình Suricata IDS với Elastic Stack trên máy chủ Debian 12. Bạn cũng đã cấu hình Nginx làm proxy ngược để truy cập bảng điều khiển Kibana bên ngoài. Nếu bạn có bất kỳ câu hỏi nào, hãy đăng chúng trong phần bình luận bên dưới.
 
Back
Bên trên