BÀI VIẾT

Hướng dẫn cài đặt Suricata trên Ubuntu 20.04

8.1K
author Nguyễn Ngọc Đang - 2022-03-02 15:29:37 (GMT+7)

Giới thiệu

Suricata là một công cụ giám sát an ninh mạng (NSM) sử dụng tập hợp các chữ ký do cộng đồng tạo ra và do người dùng xác định (còn được gọi là các quy tắc) để kiểm tra và xử lý lưu lượng mạng. Suricata có thể tạo các sự kiện nhật ký, kích hoạt cảnh báo và giảm lưu lượng khi phát hiện các gói hoặc yêu cầu đáng ngờ đối với bất kỳ dịch vụ khác nhau đang chạy trên máy chủ.

Theo mặc định, Suricata hoạt động như một hệ thống phát hiện xâm nhập thụ động (IDS) để quét các lưu lượng đáng ngờ trên máy chủ hoặc mạng. Nó sẽ tạo ra và ghi lại các cảnh báo để điều tra thêm. Nó cũng có thể được định cấu hình như một hệ thống ngăn chặn xâm nhập đang hoạt động (IPS) để ghi nhật ký, cảnh báo và chặn hoàn toàn lưu lượng mạng phù hợp với các quy tắc cụ thể.

Bài viết này sẽ hướng dẫn bạn cài đặt Suricata trên Ubuntu 20.04.

Cài đặt Suricata trên Ubuntu

Điều kiện cần để cài đặt Suricata

Để cài đặt Suricata chúng ta cần có một máy chủ Ubuntu 20.04 với 2 CPU trở lên. Sau khi đã có đầu đủ cấu hình máy chủ như đã yêu cầu chúng ta sẽ tiến hành cài đặt suricata

Cập nhật hệ thống

Để đảm bảo rằng tất cả các phụ thuộc của Suricata đều được cập nhật, hãy thực thi lệnh bên dưới:

bash (root)
apt-get update && apt-get upgrade

Trong quá trình cập nhật hệ thống chúng ta chờ từ 5 phút đến 15 phút.

Cài đặt Suricata trên Ubuntu 20.04

Để bắt đầu cài đặt Suricata, chúng ta cần thêm repository của Open Information Security Foundation (OISF) vào hệ thống Ubuntu của mình. Bạn có thể sử dụng lệnh add-apt-repository để thực hiện việc này.

Thực thi lệnh sau để thêm repository vào hệ thống của chúng ta và cập nhật danh sách các packages có sẵn:

bash (root)
add-apt-repository ppa:oisf/suricata-stable

Trong quá trình cập nhật danh sách các packages chúng ta nhấn Enter khi chúng ta được nhắc xác nhận rằng chúng ta muốn thêm kho lưu trữ. Lệnh sẽ cập nhật danh sách các gói có sẵn cho chúng ta sau khi nó thêm kho lưu trữ mới.

Sau khi chúng ta đã thực hiện repository vào hệ thống của chúng ta và cập nhật danh sách các packages thì tiến hành cài đặt Suricata bằng cách sử dụng lệnh apt như sau:

bash (root)
apt install suricata -y

Sau khi đã cài đặt Suricata thành công chúng ta sẽ kích hoạt suricata.service để Suricata sẽ chạy khi hệ thống khi khởi động lại. Sử dụng lệnh systemctl để kích hoạt:

bash (root)
systemctl enable suricata.service

Kết quả sau khi thực thi lệnh trên sẽ như sau:

Kết quả
suricata.service is not a native service, redirecting to systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable suricata

Như vậy Suricata đã hoạt động trên hệ thống của bạn. Chúng ta có thể kiểm tra bằng lệnh sau:

bash (root)
systemctl status suricata.service
Kết quả
● suricata.service - LSB: Next Generation IDS/IPS
     Loaded: loaded (/etc/init.d/suricata; generated)
     Active: active (exited) since Fri 2022-02-25 15:33:40 +07; 14min ago
       Docs: man:systemd-sysv-generator(8)
      Tasks: 0 (limit: 4621)
     Memory: 0B
     CGroup: /system.slice/suricata.service

Feb 25 15:33:40 ubuntu20 systemd[1]: Starting LSB: Next Generation IDS/IPS...
Feb 25 15:33:40 ubuntu20 suricata[1825]: Starting suricata in IDS (af-packet) mode... done.
Feb 25 15:33:40 ubuntu20 systemd[1]: Started LSB: Next Generation IDS/IPS.

Cấu hình Suricata trên Ubuntu

Suricata được cài đặt từ repository OISF sẽ đi kèm file cấu hình bao gồm nhiều trường hợp sử dụng khác nhau. Theo mặc định cho Suricata là chế độ IDS, vì vậy khi chúng ta sử dụng Suricata cần cấu hình và tích hợp Suricata vào môi trường và biết rõ về các loại lưu lượng mà nó sẽ cảnh báo, chúng ta có thể chọn bật chế độ IPS.

Tuy nhiên, cấu hình mặc định vẫn có một vài cài đặt mà chúng ta để có thể cần thay đổi tùy thuộc vào môi trường và nhu cầu.

Kích hoạt Community ID

Suricata có thể bao gồm Community ID trong đầu ra JSON để giúp dễ dàng khớp các bản ghi sự kiện riêng lẻ với các bản ghi trong tập dữ liệu được tạo bởi các công cụ khác.

Nếu chúng ta định sử dụng Suricata với các công cụ khác như Zeek hoặc Elasticsearch , thêm Community ID ngay bây giờ là một ý tưởng hay.

Để bật tùy chọn Community ID, hãy mở /etc/suricata/suricata.yaml bằng trình chỉnh sửa ưa thích của chúng ta:

/etc/suricata/suricata.yaml
vi /etc/suricata/suricata.yaml

Tìm đến dòng 120 # Community Flow ID. Theo mặc định thì giá trị Community ID sẽ được tắt có giá trị là false như vậy để bật giá trị Community ID chúng ta sẽ tiến hành chuyển false thành true như sau:

Kết quả
...
      # 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
      # Seed value for the ID output. Valid values are 0-65535.
      community-id-seed: 0
...

Xác định Network Interface sẽ sử dụng

Chúng ta có thể cần ghi đè Network Interface mặc định hoặc các Interface mà chúng ta muốn Suricata kiểm tra lưu lượng truy cập. File cấu hình đi kèm với gói OISF Suricata mặc định kiểm tra lưu lượng trên thiết bị được gọi eth0. Nếu hệ thống của chúng ta sử dụng giao diện mạng mặc định khác hoặc nếu chúng ta muốn kiểm tra lưu lượng truy cập trên nhiều giao diện, thì chúng ta sẽ cần thay đổi giá trị này.

Để xác định tên thiết bị của Network Interface mặc định, chúng ta có thể sử dụng lệnh như sau:

bash (root)
ip -p -j route show default

Trong đó các tuỳ chọn có ý nghĩa như sau:

  • -p: định dạng đầu ra để dễ đọc hơn.
  • -j: in đầu ra dưới dạng JSON.

Chúng ta sẽ nhận được đầu ra như sau:

Kết quả
[ {
        "dst": "default",
        "gateway": "103.97.125.129",
        "dev": "ens3",
        "protocol": "dhcp",
        "prefsrc": "103.97.125.151",
        "metric": 100,
        "flags": [ ]
    } ]

Từ kết quả chúng ta có được thông tin từ dòng dev cho biết thiết bị mặc định. Trong đầu ra ví dụ này, thì Network Interface sẽ là ens3. Đầu ra của chúng ta có thể hiển thị tên thiết bị như ens... hoặc eno....

Bây giờ chúng ta có thể chỉnh sửa cấu hình của Suricata và xác minh hoặc thay đổi tên Network Interface bằng cách mở file cấu hình /etc/suricata/suricata.yaml sử dụng trình chỉnh sửa ưa thích của bạn:

/etc/suricata/suricata.yaml
vi /etc/suricata/suricata.yaml

Thực hiện tìm đến dòng dòng có nội dung af-packet: ở dòng thứ 580. Bên dưới dòng đó là Interface mặc định mà Suricata sẽ sử dụng để kiểm tra lưu lượng. Chỉnh sửa dòng này để phù hợp với Interface của chúng ta như đã thực hiện kiểm tra ở trên:

Kết quả
...
# Linux high speed capture support
    af-packet:
  - interface: ens3
    # 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 như chúng ta cần kiểm tra thêm lưu lượng truy cập trên các Interface bổ sung, chúng ta có thể thêm nhiều - interface: eth... hơn. Ví dụ: để thêm một Interface được đặt tên ens4, chúng ta sẽ tìm đến cuối phần af-packet: đến dòng 650. Để thêm Interface mới, cần thực hiện chèn nó vào trước -interface: default như ở ví dụ sau:

Kết quả
...
    #  For eBPF and XDP setup including bypass, filter and load balancing, please
    #  see doc/userguide/capture-hardware/ebpf-xdp.rst for more info.

  - interface: ens4
    cluster-id: 98
  # Put default values here. These will be used for an interface that is not
  # in the list above.
  - interface: default
    #threads: auto
    #use-mmap: no
    #tpacket-v3: yes
...

Cần đảm bảo rằng chọn một cluster-id có giá trị duy nhất cho mỗi Interface.

Cấu hình Live Rule Reloading

Suricata hỗ trợ Live Rule Reloading, có nghĩa là chúng ta có thể thêm, xóa và chỉnh sửa quy tắc mà không cần khởi động lại tiến trình Suricata đang chạy. Để bật tùy chọn Live Rule Reloading, hãy thực hiện di chuyển xuống cuối file cấu hình /etc/suricata/suricata.yaml và thêm các dòng sau:

/etc/suricata/suricata.yaml
 vi /etc/suricata/suricata.yaml
Kết quả
...
detect-engine:
  - rule-reload: true

Với cài đặt này, chúng ta sẽ có thể gửi SIGUSR2 tín hiệu hệ thống đến quá trình đang chạy và Suricata sẽ tải lại mọi quy tắc đã thay đổi vào bộ nhớ.

Một lệnh như sau sẽ thông báo cho quá trình Suricata tải lại các bộ quy tắc của nó mà không cần khởi động lại quá trình:

bash (root)
kill -usr2 $(pidof suricata)

Trong đó $(pidof suricata) của lệnh tìm ID tiến trình của Suricata đang chạy. Phần đầu kill -usr2 của lệnh sử dụng kill tiện ích để gửi SIGUSR2 tín hiệu đến ID tiến trình.

Cập nhật Suricata Rulesets

Tại thời điểm này trong hướng dẫn, nếu chúng ta khởi động Suricata, chúng ta sẽ nhận được thông báo cảnh báo như sau trong nhật ký rằng không có quy tắc tải nào:

Kết quả
<Warning> - [ERRCODE: SC_ERR_NO_RULES(42)] - No rule files match the pattern /var/lib/suricata/rules/suricata.rules

Theo mặc định, Suricata bao gồm một bộ quy tắc phát hiện giới hạn (trong thư mục /etc/suricata/rules), vì vậy việc bật Suricata vào thời điểm này sẽ chỉ phát hiện một lượng hạn chế lưu lượng truy cập không hợp lệ.

Suricata bao gồm một công cụ được gọi là suricata-update có thể lấy các bộ quy tắc từ các nhà cung cấp bên ngoài. Chạy nó như sau để tải xuống bộ quy tắc cập nhật cho máy chủ Suricata:

bash (root)
suricata-update

Kết quả như sau:

Kết quả
27/2/2022 -- 10:42:56 - <Info> -- Using data-directory /var/lib/suricata.
27/2/2022 -- 10:42:56 - <Info> -- Using Suricata configuration /etc/suricata/suricata.yaml
27/2/2022 -- 10:42:56 - <Info> -- Using /etc/suricata/rules for Suricata provided rules.
27/2/2022 -- 10:42:56 - <Info> -- Found Suricata version 6.0.4 at /usr/bin/suricata.
27/2/2022 -- 10:42:56 - <Info> -- Loading /etc/suricata/suricata.yaml

27/2/2022 -- 10:42:56 - <Info> -- Disabling rules for protocol http2
27/2/2022 -- 10:42:56 - <Info> -- Disabling rules for protocol modbus
27/2/2022 -- 10:42:56 - <Info> -- Disabling rules for protocol dnp3
27/2/2022 -- 10:42:56 - <Info> -- Disabling rules for protocol enip
27/2/2022 -- 10:42:56 - <Info> -- No sources configured, will use Emerging Threats Open
27/2/2022 -- 10:42:56 - <Info> -- Fetching https://rules.emergingthreats.net/open/suricata-6.0.4/emerging.rules.tar.gz.
 100% - 3171658/3171658
...
27/2/2022 -- 10:43:04 - <Info> -- Writing rules to /var/lib/suricata/rules/suricata.rules: total: 32135; enabled: 24742; added: 32135; removed 0; modified: 0
27/2/2022 -- 10:43:05 - <Info> -- Writing /var/lib/suricata/rules/classification.config
27/2/2022 -- 10:43:05 - <Info> -- Testing with suricata -T.
27/2/2022 -- 10:43:05 - <Warning> -- [ERRCODE: SC_ERR_INVALID_ARGUMENT(13)] - Invalid logging method: interface, ignoring
27/2/2022 -- 10:43:05 - <Warning> -- [ERRCODE: SC_ERR_INVALID_ARGUMENT(13)] - Invalid logging method: interface, ignoring
27/2/2022 -- 10:44:01 - <Info> -- Done.

Các dòng được đánh dấu cho biết đã tìm nạp quy tắc mới bởi suricata-update và lưu chúng vào file cấu hình của Suricata. Nó cũng cho biết số lượng quy tắc đã được xử lý, trong ví dụ này, 32135 đã được thêm vào và 24742 đã được kích hoạt.

Thêm nhà cung cấp Ruleset

Công cụ suricata-update này có thể tìm nạp các Ruleset từ nhiều nhà cung cấp bộ quy tắc miễn phí và thương mại. Một số bộ quy tắc như bộ ET Open mà chúng ta đã thêm là miễn phí, trong khi những bộ khác yêu cầu đăng ký trả phí.

Chúng ta có thể liệt kê nhóm nhà cung cấp Ruleset mặc định bằng cách sử dụng lệnh sau:

bash (root)
suricata-update list-sources

Chúng ta sẽ thu được kết quả như sau:

Kết quả
27/2/2022 -- 10:51:21 - <Info> -- Using data-directory /var/lib/suricata.
27/2/2022 -- 10:51:21 - <Info> -- Using Suricata configuration /etc/suricata/suricata.yaml
27/2/2022 -- 10:51:21 - <Info> -- Using /etc/suricata/rules for Suricata provided rules.
27/2/2022 -- 10:51:21 - <Info> -- Found Suricata version 6.0.4 at /usr/bin/suricata.
27/2/2022 -- 10:51:21 - <Info> -- No source index found, running update-sources
27/2/2022 -- 10:51:21 - <Info> -- Downloading https://www.openinfosecfoundation.org/rules/index.yaml
27/2/2022 -- 10:51:22 - <Info> -- Adding all sources
27/2/2022 -- 10:51:22 - <Info> -- Saved /var/lib/suricata/update/cache/index.yaml
Name: et/open
  Vendor: Proofpoint
  Summary: Emerging Threats Open Ruleset
  License: MIT
Name: et/pro
  Vendor: Proofpoint
  Summary: Emerging Threats Pro Ruleset
  License: Commercial
  Replaces: et/open
  Parameters: secret-code
  Subscription: https://www.proofpoint.com/us/threat-insight/et-pro-ruleset
Name: oisf/trafficid
  Vendor: OISF
  Summary: Suricata Traffic ID ruleset
  License: MIT
Name: ptresearch/attackdetection
  Vendor: Positive Technologies
  Summary: Positive Technologies Attack Detection Team ruleset
  License: Custom
...

Ví dụ: Nếu chúng ta muốn thêm nhà cung cấp Ruleset tgreen/huntingquy, chúng ta có thể bật bộ Ruleset này bằng cách sử dụng lệnh sau:

bash (root)
suricata-update enable-source tgreen/hunting

Sau đó, chạy lệnh suricata-update và Ruleset mới sẽ được thêm vào, ngoài các quy tắc ET Open hiện có và bất kỳ quy tắc nào khác mà chúng ta đã tải xuống.

Xác thực cấu hình của Suricata

Bây giờ chúng ta đã chỉnh sửa file cấu hình của Suricata để bao gồm Community ID, network interface và bật live rule reloading, chúng ta nên kiểm tra cấu hình.

Suricata có chế độ kiểm tra tích hợp sẽ kiểm tra file cấu hình và mọi quy tắc bao gồm về tính hợp lệ. Thực thi lệnh sau:

bash (root)
suricata -T -c /etc/suricata/suricata.yaml -v

Trong đó:

  • -T: Chạy Suricata ở chế độ thử nghiệm.
  • -v: Sẽ in một số thông tin bổ sung.
  • -c: Cho Suricata biết nơi tìm tệp cấu hình của nó.

Quá trình kiểm tra có thể mất một chút thời gian tùy thuộc vào lượng CPU đã phân bổ cho Suricata và số lượng quy tắc đã thêm.

Với bộ quy tắc ET Open mặc định, chúng ta sẽ nhận được đầu ra như sau:

Kết quả
27/2/2022 -- 10:56:40 - <Info> - Running suricata under test mode
27/2/2022 -- 10:56:40 - <Warning> - [ERRCODE: SC_ERR_INVALID_ARGUMENT(13)] - Invalid logging method: interface, ignoring
27/2/2022 -- 10:56:40 - <Warning> - [ERRCODE: SC_ERR_INVALID_ARGUMENT(13)] - Invalid logging method: interface, ignoring
27/2/2022 -- 10:56:40 - <Notice> - This is Suricata version 6.0.4 RELEASE running in SYSTEM mode
27/2/2022 -- 10:56:40 - <Info> - CPUs/cores online: 2
27/2/2022 -- 10:56:40 - <Info> - fast output device (regular) initialized: fast.log
27/2/2022 -- 10:56:40 - <Info> - eve-log output device (regular) initialized: eve.json
27/2/2022 -- 10:56:40 - <Info> - stats output device (regular) initialized: stats.log
27/2/2022 -- 10:56:55 - <Info> - 1 rule files processed. 24742 rules successfully loaded, 0 rules failed
27/2/2022 -- 10:56:55 - <Info> - Threshold config parsed: 0 rule(s) found
27/2/2022 -- 10:56:55 - <Info> - 24745 signatures processed. 1249 are IP-only rules, 4127 are inspecting packet payload, 19165 inspect application layer, 108 are decoder event only
27/2/2022 -- 10:57:35 - <Notice> - Configuration provided was successfully loaded. Exiting.
27/2/2022 -- 10:57:36 - <Info> - cleaning up signature grouping structure... complete

Khi quá trình chạy chế độ kiểm tra Suricata của bạn hoàn tất thành công, chúng có thể chuyển sang bước tiếp theo, đó là khởi động Suricata ở chế độ daemon.

Chạy Suricata

Bây giờ chúng ta đã có cấu hình Suricata và bộ quy tắc hợp lệ, chúng ta có thể khởi động máy chủ Suricata.

bash (root)
systemctl start suricata.service

Như vậy Suricata đã hoạt động trên hệ thống của bạn. Chúng ta có thể kiểm tra bằng lệnh sau:

bash (root)
systemctl status suricata.service
Kết quả
● suricata.service - LSB: Next Generation IDS/IPS
     Loaded: loaded (/etc/init.d/suricata; generated)
     Active: active (exited) since Sun 2022-02-27 10:33:16 +07; 33min ago
       Docs: man:systemd-sysv-generator(8)
      Tasks: 0 (limit: 4621)
     Memory: 0B
     CGroup: /system.slice/suricata.service

Feb 27 10:33:16 ubuntu20 systemd[1]: Starting LSB: Next Generation IDS/IPS...
Feb 27 10:33:16 ubuntu20 suricata[106702]: Likely stale PID 105996 with /var/run/suricata.pid exists, but process is not running!
Feb 27 10:33:16 ubuntu20 suricata[106702]: Removing stale PID file /var/run/suricata.pid
Feb 27 10:33:16 ubuntu20 suricata[106702]: Starting suricata in IDS (af-packet) mode... done.
Feb 27 10:33:16 ubuntu20 systemd[1]: Started LSB: Next Generation IDS/IPS.

Như với lệnh chế độ kiểm tra, Suricata sẽ mất một hoặc hai phút để tải và phân tích cú pháp tất cả các quy tắc. Chúng ta có thể sử dụng lệnh tail để theo dõi một thông báo cụ thể trong nhật ký của Suricata cho biết nó đã hoàn tất khởi động:

bash (root)
tail -f /var/log/suricata/suricata.log

Chúng ta sẽ nhận được một số dòng đầu ra. Tiếp tục đợi đầu ra cho đến khi nhận được một dòng như sau:

bash (root)
27/2/2022 -- 10:57:36- <Info> - All AFP capture threads are running.

Dòng này cho biết Suricata đang chạy trên hệ thống của chúng ta.

Thử nghiệm Suricata Rules

Thử nghiệm dựa theo Quickstart

Bộ quy tắc ET Open mà chúng ta đã tải xuống chứa hơn 30000 quy tắc. Việc kiểm tra xem Suricata có đang phát hiện lưu lượng truy cập đáng ngờ với cấu hình mà chúng ta đã tạo hay không.

Thực thi lệnh sau tạo một yêu cầu HTTP, yêu cầu này sẽ trả về phản hồi phù hợp với quy tắc cảnh báo của Suricata:

bash (root)
curl http://testmynids.org/uid/index.html

Lệnh curl sẽ xuất ra một phản hồi như sau:

Kết quả
uid=0(root) gid=0(root) groups=0(root)

Dữ liệu phản hồi ví dụ này được thiết kế để kích hoạt cảnh báo, bằng cách trả lại kết quả đầu ra của một lệnh như id vậy có thể chạy trên hệ thống từ xa bị xâm nhập thông qua web shell.

Bây giờ chúng ta có thể kiểm tra nhật ký của Suricata để có cảnh báo tương ứng. Có hai nhật ký được bật với cấu hình Suricata mặc định. Đầu tiên là trong /var/log/suricata/fast.log/var/log/suricata/eve.json.

Đầu tiên chúng ta sẽ tiến hành check log tại file /var/log/suricata/fast.log để kiểm tra xem sau khi thực thi lệnh curl thì log Suricata sẽ tiến hành ghi những gì.

Chúng ta sẽ nhận thấy dòng thông báo như sau có chứa thông tin ATTACK_RESPONSE kết quả đầy đủ như sau:

Kết quả
03/02/2022-11:03:52.556150  [**] [1:2100498:7] GPL ATTACK_RESPONSE id check returned root [**] [Classification: Unknown Classtype] [Priority: 3] {TCP} 13.33.33.82:80 -> 103.97.125.151:42896

Tiếp theo chúng ta có thể kiểm tra log ghi tại file /var/log/suricata/eve.json . Với file /var/log/suricata/eve.json chúng ta cần sử dụng JSON để tiến hành phân tích file log này.

Suricata khuyến nghị sử dụng tiện ích jq để đọc và lọc các mục nhập trong file này. Cài đặt jq nếu jq không có nó trên hệ thống của chúng ta bằng lệnh sau:

bash (root)
apt install jq -y

Sau khi cài đặt jq thành công, chúng ta có thể lọc các eve.json bằng cách tìm kiếm ID 2100498 như lệnh sau:

bash (root)
jq 'select(.alert .signature_id==2100498)' /var/log/suricata/eve.json

Lệnh kiểm tra từng mục và in bất kỳ mục nhập nào có đối tượng, với signature_id khớp với giá trị 2100498 mà chúng ta đang tìm kiếm. Đầu ra sẽ giống như sau:

Kết quả
{
  "timestamp": "2022-03-02T10:40:25.224887+0700",
  "flow_id": 1154495382311550,
  "in_iface": "ens3",
  "event_type": "alert",
  "src_ip": "13.33.33.67",
  "src_port": 80,
  "dest_ip": "103.97.125.151",
  "dest_port": 56220,
  "proto": "TCP",
  "alert": {
    "action": "allowed",
    "gid": 1,
    "signature_id": 2100498,
    "rev": 7,
    "signature": "GPL ATTACK_RESPONSE id check returned root",
    "category": "Unknown Classtype",
    "severity": 3,
    "metadata": {
      "created_at": [
        "2010_09_23"
      ],
      "updated_at": [
        "2010_09_23"
      ]
    }
  },

Thử nghiệm Rule ICMP

Chúng ta sẽ tiến hành thử nghiệm Rule ICMP của Suricata như sau:

Thực hiện ping đến VPS hoặc Server đã thiết lập Suricata, trong ví dụ này chúng ta sẽ tiến hành ping đến IP 103.97.125.151:

bash (root)
ping 103.97.125.151
Kết quả
PING 103.97.125.151 (103.97.125.151) 56(84) bytes of data.
64 bytes from 103.97.125.151: icmp_seq=1 ttl=64 time=1.34 ms
64 bytes from 103.97.125.151: icmp_seq=2 ttl=64 time=0.549 ms
64 bytes from 103.97.125.151: icmp_seq=3 ttl=64 time=0.623 ms
64 bytes from 103.97.125.151: icmp_seq=4 ttl=64 time=0.612 ms
64 bytes from 103.97.125.151: icmp_seq=5 ttl=64 time=0.597 ms
^C
--- 103.97.125.151 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4005ms
rtt min/avg/max/mdev = 0.549/0.745/1.348/0.304 ms

Quay trở lại VPS hoặc Server đã cài đặt và cấu hình Suricata chúng ta thực hiện check log realtime tại file /var/log/suricata/fast.log bằng lệnh bên dưới:

bash (root)
tail -f /var/log/suricata/fast.log

Kết quả như sau:

Kết quả
03/02/2022-11:32:03.436838  [**] [1:2100366:8] GPL ICMP_INFO PING *NIX [**] [Classification: Unknown Classtype] [Priority: 3] {ICMP} 103.97.125.158:8 -> 103.97.125.151:0
03/02/2022-11:32:04.437708  [**] [1:2100366:8] GPL ICMP_INFO PING *NIX [**] [Classification: Unknown Classtype] [Priority: 3] {ICMP} 103.97.125.158:8 -> 103.97.125.151:0
03/02/2022-11:32:05.437519  [**] [1:2100366:8] GPL ICMP_INFO PING *NIX [**] [Classification: Unknown Classtype] [Priority: 3] {ICMP} 103.97.125.158:8 -> 103.97.125.151:0
03/02/2022-11:32:06.437572  [**] [1:2100366:8] GPL ICMP_INFO PING *NIX [**] [Classification: Unknown Classtype] [Priority: 3] {ICMP} 103.97.125.158:8 -> 103.97.125.151:0
03/02/2022-11:32:07.442024  [**] [1:2100366:8] GPL ICMP_INFO PING *NIX [**] [Classification: Unknown Classtype] [Priority: 3] {ICMP} 103.97.125.158:8 -> 103.97.125.151:0

Như vậy qua 2 thử nghiệm trên chúng ta nhận thấy Suricata đã kiểm tra thành công lưu lượng mạng, khớp với quy tắc phát hiện và tạo ra một cảnh báo để phân tích hoặc ghi nhật ký tiếp theo.

Tổng Kết.

Qua bài viết hướng dẫn trên chúng ta hoàn tất việc cài đặt và cấu hình Suricata trên Ubuntu 20.04. Hy vọng các bạn thành công trong việc cài đặt cũng như áp dụng được Suricata vào trong thực tế, công việc.


Bạn có làm được theo hướng dẫn này không?

Bài liên quan

Hướng dẫn thiết lập đồng bộ hóa thời gian trên Ubuntu 22.04
Hướng dẫn thiết lập đồng bộ hóa thời gian trên Ubuntu 22.04
Hướng dẫn cài đặt Docker trên Ubuntu 22.04
Hướng dẫn cài đặt Docker trên Ubuntu 22.04
Hướng dẫn cài đặt Object Storage Server dùng MinIO trên Ubuntu 22.04
Hướng dẫn cài đặt Object Storage Server dùng MinIO trên Ubuntu 22.04

Object Storage

Chuẩn S3, không giới hạn băng thông

Object Storage

Thuê Server Riêng

Chi phí thấp, cấu hình cao

Thuê Server Riêng
Thông tin tác giả
Bình luận

Tính năng đang được phát triển

Đang tải bình luận