BÀI VIẾT

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

3.1K
author Nguyễn Ngọc Đang - 2022-07-01 10:26:18 (GMT+7)

Giới thiệu

Zeek, trước đây là Bro, là một công cụ giám sát an ninh mạng cho Linux. Nó là một công cụ miễn phí, mã nguồn mở và linh hoạt, nền tảng đám mây và quan sát lưu lượng mạng. Zeek giám sát và ghi lại các kết nối, gói được gửi và nhận, các thuộc tính về TCP và các dữ liệu hữu ích cho việc phân tích mạng. Zeek giúp chúng ta theo dõi các sự kiện phức tạp và giao thức một cách dễ dàng.

Trong bài hướng dẫn này, chúng ta sẽ hướng dẫn cách cài đặt công cụ giám sát an ninh mạng Zeek trên Ubuntu 20.04.

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

Để cài đặt Zeek chúng ta cần có một máy chủ Ubuntu 20.04 với 2GB RAM 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 Zeek.

Cập nhật hệ thống

Để đảm bảo rằng tất cả các phụ thuộc của Zeek đề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 Zeek

Theo mặc định, Zeek không có trong kho lưu trữ mặc định của Ubuntu, vì vậy trước tiên chúng ta sẽ thêm kho lưu trữ Zeek vào hệ thống. Cài đặt tất cả các gói phụ thuộc bằng lệnh sau:

bash (root)
apt-get install curl gnupg2 wget -y

Tiếp theo, tải xuống và thêm khóa Zeek GPG bằng lệnh sau:

bash (root)
curl -fsSL https://download.opensuse.org/repositories/security:zeek/xUbuntu_20.04/Release.key | gpg --dearmor | tee /etc/apt/trusted.gpg.d/security_zeek.gpg

Tiếp theo, thêm kho lưu trữ Zeek vào APT bằng lệnh sau:

bash (root)
echo 'deb http://download.opensuse.org/repositories/security:/zeek/xUbuntu_20.04/ /' | tee /etc/apt/sources.list.d/security:zeek.list

Cuối cùng, cập nhật bộ nhớ cache của kho lưu trữ và cài đặt Zeek bằng lệnh sau:

bash (root)
apt-get update && apt-get install zeek -y

Trong quá trình cài đặt, chúng ta sẽ được yêu cầu cung cấp một số cài đặt postfix như hình dưới đây:

Sau khi cài đặt Zeek, chúng ta sẽ cần thêm Zeek vào đường dẫn hệ thống.

bash (root)
echo "export PATH=$PATH:/opt/zeek/bin" >> ~/.bashrc

Tiếp theo, kích hoạt ~/.bashrc bằng lệnh sau:

bash (root)
source ~/.bashrc

Kiểm tra version của Zeek đã được cài đặt:

bash (root)
zeek --version

Kết quả trả về như sau:

Kết quả
zeek version 4.2.0

Xác định mạng cần monitor

Tiếp theo, sẽ cần xác định mạng cần giám sát. Chúng ta có thể xác định nó bằng cách chỉnh sửa file /opt/zeek/etc/networks.cfg.

bash (root)
vi /opt/zeek/etc/networks.cfg

Đây là các giá trị mặc định. Chúng ta có thể thêm các mạng cần monitor vào cuối file:

/opt/zeek/etc/networks.cfg
# List of local networks in CIDR notation, optionally followed by a
# descriptive tag.
# For example, "10.0.0.0/8" or "fe80::/64" are valid prefixes.

10.0.0.0/8          Private IP space
172.16.0.0/12       Private IP space
192.168.0.0/16      Private IP space
103.97.125.0/25

Lưu và đóng file khi hoàn tất.

Định cấu hình Zeek Cluster

Theo mặc định, Zeek được định cấu hình để chạy ở chế độ độc lập. Trong phần này, chúng ta sẽ cấu hình Zeek ở chế độ cluster.

Đầu tiên, hãy chỉnh sửa file cấu hình chính của Zeek:

bash (root)
vi /opt/zeek/etc/node.cfg

Thực hiện comment những dòng sau:

/opt/zeek/etc/node.cfg
#[zeek]
#type=standalone
#host=localhost
#interface=eth0

Sau đó thêm các dòng:

/opt/zeek/etc/node.cfg
[zeek-logger]
type=logger
host=103.97.125.151
#
[zeek-manager]
type=manager
host=103.97.125.151
#
[zeek-proxy]
type=proxy
host=103.97.125.151
#
[zeek-worker]
type=worker
host=103.97.125.151
interface=ens3
#
[zeek-worker-lo]
type=worker
host=localhost
interface=lo

Cần thay đồi host sang IP và interface phù hợp với hệ thống của bạn.

Lưu và đóng file khi hoàn tất, sau đó kiểm tra file cấu hình xem có lỗi nào không bằng lệnh sau:

bash (root)
zeekctl check

Kết quả trả về sẽ như sau:

Kết quả
Hint: Run the zeekctl "deploy" command to get started.
zeek-logger scripts are ok.
zeek-manager scripts are ok.
zeek-proxy scripts are ok.
zeek-worker scripts are ok.
zeek-worker-lo scripts are ok.

Tiếp theo, triển khai cấu hình Zeek bằng lệnh sau:

bash (root)
zeekctl deploy

Kết quả trả về sẽ như sau:

Kết quả
checking configurations ...
installing ...
creating policy directories ...
installing site policies ...
generating cluster-layout.zeek ...
generating local-networks.zeek ...
generating zeekctl-config.zeek ...
generating zeekctl-config.sh ...
stopping ...
stopping workers ...
stopping proxy ...
stopping manager ...
stopping logger ...
starting ...
starting logger ...
starting manager ...
starting proxy ...
starting workers ...

Xác minh trạng thái của Zeek

Bây giờ chúng ta có thể kiểm tra trạng thái của cá thể Zeek bằng lệnh sau:

bash (root)
zeekctl status

Kết quả trả về sẽ như sau:

Kết quả
Name         Type    Host             Status    Pid    Started
zeek-logger  logger  103.97.125.151   running   125102 12 Apr 09:40:48
zeek-manager manager 103.97.125.151   running   125153 12 Apr 09:40:50
zeek-proxy   proxy   103.97.125.151   running   125202 12 Apr 09:40:51
zeek-worker  worker  103.97.125.151   running   125261 12 Apr 09:40:53
zeek-worker-lo worker  localhost        running   125273 12 Apr 09:40:53

Tại thời điểm này, Zeek sẽ bắt đầu phân tích lưu lượng truy cập theo file cấu hình và ghi nhật ký vào thư mục /opt/zeek/logs/current.

Chúng ta có thể kiểm tra tất cả các file log đã tạo bằng lệnh sau:

bash (root)
 ls -l /opt/zeek/logs/current/

Kết quả trả về sẽ như sau:

Kết quả
total 104
-rw-r--r-- 1 root zeek  1816 Apr 12 09:40 broker.log
-rw-r--r-- 1 root zeek   308 Apr 12 09:41 capture_loss.log
-rw-r--r-- 1 root zeek  2364 Apr 12 09:40 cluster.log
-rw-r--r-- 1 root zeek 32002 Apr 12 09:43 conn.log
-rw-r--r-- 1 root zeek  1048 Apr 12 09:43 dhcp.log
-rw-r--r-- 1 root zeek 30473 Apr 12 09:40 loaded_scripts.log
-rw-r--r-- 1 root zeek   960 Apr 12 09:41 notice.log
-rw-r--r-- 1 root zeek   187 Apr 12 09:40 packet_filter.log
-rw-r--r-- 1 root zeek   666 Apr 12 09:41 reporter.log
-rw-r--r-- 1 root zeek   601 Apr 12 09:40 stats.log
-rw-r--r-- 1 root zeek     0 Apr 12 09:40 stderr.log
-rw-r--r-- 1 root zeek   188 Apr 12 09:40 stdout.log
-rw-r--r-- 1 root zeek  1100 Apr 12 09:42 weird.log

Chạy lệnh sau để kiểm tra log kết nối.

bash (root)
tail /opt/zeek/logs/current/conn.log

Kết quả như bên dưới:

Kết quả
1649731429.335768   CHPuIw4jbnb9M9mOi5  103.97.125.151  47761   103.97.125.151  38542   tcp --- -   OTH F   F   0   Cc  0   0   0   0   -
1649731429.336244   ChrHEdZctqQIdFFg8   103.97.125.151  47761   103.97.125.151  38544   tcp --- -   OTH F   F   0   Cc  0   0   0   0   -
1649731430.261454   CUOceJ1j2oSsk55g26  103.97.125.151  38548   103.97.125.151  47761   tcp --- -   OTH F   F   0   Cc  0   0   0   0   -
1649731429.222246   CDX9cR1ORLKt7mFr3g  185.156.73.91   48065   103.97.125.151  21389   tcp -0.250801   0   0   REJ F   F   0   SrR 2   80  1   40  -
1649731430.295095   CJQKVl4fgvYpcvEnI5  103.97.125.151  38554   103.97.125.151  47761   tcp --- -   OTH F   F   0   Cc  0   0   0   0   -
1649731431.114801   CeZqm54gJdukkaTb7f  103.97.125.151  47762   103.97.125.151  35398   tcp --- -   OTH F   F   0   Cc  0   0   0   0   -
1649731431.114952   CKqb031MyLoOXLsDZg  103.97.125.151  47762   103.97.125.151  35404   tcp --- -   OTH F   F   0   Cc  0   0   0   0   -
1649731431.115165   Cr82ZDkH9Ceby86Q8   103.97.125.151  47762   103.97.125.151  35410   tcp --- -   OTH F   F   0   Cc  0   0   0   0   -
1649731432.788689   CJrTVCD9nq3Sk4kf6   103.97.125.151  47763   103.97.125.151  58984   tcp --- -   OTH F   F   0   Cc  0   0   0   0   -
    C5yVZI3QnLCarhMDW1  103.97.125.151  47763   103.97.125.151  58990   tcp --- -   OTH F   F   0   Cc  0   0   0   0   -

Chạy lệnh sau để kiểm tra log cluster:

bash (root)
tail /opt/zeek/logs/current/cluster.log

Kết quả như bên dưới:

Kết quả
1649731255.240471   zeek-proxy  got hello from zeek-worker-lo (F81BD00CA3C8D664C688493344D751AFD8E08154#125273)
1649731255.374832   zeek-proxy  got hello from zeek-worker (8F18393BE452ACFB5A8A5B6CA78CD410D0B2079F#125261)
1649731255.265338   zeek-manager    got hello from zeek-worker-lo (F81BD00CA3C8D664C688493344D751AFD8E08154#125273)
1649731255.377897   zeek-manager    got hello from zeek-worker (8F18393BE452ACFB5A8A5B6CA78CD410D0B2079F#125261)
1649731255.236848   zeek-worker-lo  got hello from zeek-proxy (9CFB55CFC5F00FAB595E2554D52135DE941BE129#125202)
1649731255.250790   zeek-worker-lo  got hello from zeek-manager (5D8C9BFE1A42EEDB1D3C7DDE131E2EB42D5574C8#125153)
1649731255.235028   zeek-worker-lo  got hello from zeek-logger (CBA9E8DE17301A5C86CFFF78731D2D714F9FC079#125102)
1649731255.373488   zeek-worker got hello from zeek-proxy (9CFB55CFC5F00FAB595E2554D52135DE941BE129#125202)
1649731255.370456   zeek-worker got hello from zeek-logger (CBA9E8DE17301A5C86CFFF78731D2D714F9FC079#125102)
1649731255.370456   zeek-worker got hello from zeek-manager (5D8C9BFE1A42EEDB1D3C7DDE131E2EB42D5574C8#125153)

Kiểm tra Zeek Node Processes

Chúng ta cũng có thể kiểm tra các tiến trình đang chạy trên mỗi node.

Để kiểm tra các tiến trình đang chạy của node zeek-manager, hãy chạy lệnh sau:

bash (root)
zeekctl ps.zeek zeek-manager

Kết quả như bên dưới:

Kết quả
        USER         PID    PPID %CPU %MEM    VSZ   RSS TT       S  STARTED     TIME COMMAND
>>> 103.97.125.151
   (-) root      125102  125096  0.5  2.5 1279716 103232 ?      S 09:40:48 00:00:01 zeek
   (+) root      125153  125147  0.4  2.5 725000 104748 ?       S 09:40:50 00:00:01 zeek
   (-) root      125202  125196  0.3  2.5 722600 101720 ?       S 09:40:51 00:00:01 zeek
   (-) root      125261  125253  0.9  5.8 854564 234300 ?       S 09:40:53 00:00:03 zeek
   (-) root      125273  125267  0.7  5.7 853788 233056 ?       S 09:40:53 00:00:02 zeek

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 Zeek 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
Liên hệ chúng tôi