Cách cài đặt Malcolm Network Traffic Analysis Tool trên Ubuntu 22.04

theanh

Administrator
Nhân viên
Malcolm là một công cụ phân tích lưu lượng mạng đơn giản, dễ sử dụng và mạnh mẽ. Công cụ này có khả năng ghi lại các hiện vật (tệp PCAP) và nhật ký Zeek. Malcolm cung cấp một khuôn khổ được kết nối khiến công cụ này trở nên tuyệt vời hơn tổng hợp các thành phần của nó. Việc triển khai dễ dàng, linh hoạt và sự kết hợp mạnh mẽ các công cụ của Malcolm lấp đầy khoảng trống trong không gian bảo mật mạng và giúp nhiều người trong cả khu vực công và tư nhân có thể tiếp cận được với phân tích lưu lượng mạng nâng cao.

Trong bài đăng này, chúng tôi sẽ chỉ cho bạn cách cài đặt công cụ phân tích lưu lượng mạng Malcolm trên Ubuntu 22.04.

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

  • Một máy chủ chạy Ubuntu 22.04.
  • Tối thiểu 16 GB RAM và 4 lõi CPU.
  • Một mật khẩu gốc được cấu hình trên máy chủ.

Tạo Người dùng Hệ thống Malcolm​

Trước tiên, bạn sẽ cần tạo một tài khoản người dùng chuyên dụng để chạy Malcolm. Bạn có thể tạo nó bằng lệnh sau:
Mã:
useradd -m -d /opt/malcolm -s /bin/bash -G sudo malcolm
Tiếp theo, đặt mật khẩu người dùng bằng lệnh sau:
Mã:
passwd malcolm
Tiếp theo, kiểm tra UID của người dùng Malcolm bằng lệnh sau:
Mã:
id malcolm
Bạn sẽ thấy đầu ra sau:
Mã:
uid=1000(malcolm) gid=1000(malcolm) groups=1000(malcolm),27(sudo)

Cài đặt Malcolm Ubuntu 22.04​

Trước tiên, chuyển người dùng sang Malcolm và tải xuống phiên bản Malcolm mới nhất bằng lệnh sau:
Mã:
su - malcolm
git clone https://github.com/idaholab/Malcolm
Sau khi tải xuống hoàn tất, hãy thay đổi thư mục thành thư mục đã tải xuống và bắt đầu cài đặt Malcolm bằng lệnh sau:
Mã:
cd Malcolm
sudo ./scripts/install.py
Trong quá trình cài đặt, bạn sẽ được hỏi một số câu hỏi như hiển thị bên dưới:
Mã:
Cài đặt các gói cần thiết: ['apache2-utils', 'make', 'openssl', 'python3-dialog']"docker info" không thành công, thử cài đặt Docker? (Y/n): YBạn có muốn cài đặt Docker bằng kho lưu trữ chính thức không? (Y/n): YĐang cài đặt các gói cần thiết: ['apt-transport-https', 'ca-certificates', 'curl', 'gnupg-agent', 'software-properties-common']Đang cài đặt các gói docker: ['docker-ce', 'docker-ce-cli', 'containerd.io']Việc cài đặt các gói docker dường như đã thành côngThêm một người dùng không phải root vào nhóm "docker"?: YNhập tài khoản người dùng: malcolmThêm một người dùng không phải root khác vào nhóm "docker"?: n"phiên bản docker-compose" không thành công, bạn có muốn cài đặt docker-compose không? (Y/n): YCài đặt docker-compose trực tiếp từ docker github không? (Y/n): YTải xuống và cài đặt docker-compose dường như đã thành côngfs.file-max tăng tối đa được phép cho các trình xử lý tệpfs.file-max= dường như bị thiếu trong /etc/sysctl.conf, thêm vào đó? (Y/n): Yfs.inotify.max_user_watches tăng tối đa được phép cho các tệp được giám sátfs.inotify.max_user_watches= dường như bị thiếu trong /etc/sysctl.conf, thêm vào đó? (Y/n): Yfs.inotify.max_queued_events tăng kích thước hàng đợi cho các tệp được giám sátfs.inotify.max_queued_events= dường như bị thiếu trong /etc/sysctl.conf, thêm vào đó? (Y/n): Yfs.inotify.max_user_instances tăng tối đa được phép cho các trình theo dõi tệp giám sátfs.inotify.max_user_instances= dường như bị thiếu trong /etc/sysctl.conf, thêm vào đó? (Y/n): Yvm.max_map_count tăng mức tối đa được phép cho các phân đoạn bộ nhớvm.max_map_count= dường như bị thiếu trong /etc/sysctl.conf, thêm vào đó? (Y/n): Ynet.core.somaxconn tăng mức tối đa được phép cho các kết nối ổ cắmnet.core.somaxconn= dường như bị thiếu trong /etc/sysctl.conf, thêm vào đó? (Y/n): Yvm.dirty_background_ratio định nghĩa phần trăm bộ nhớ hệ thống có thể điền bằng các trang "bẩn" trước khi xóavm.dirty_background_ratio= dường như bị thiếu trong /etc/sysctl.conf, thêm vào đó? (Y/n): Yvm.dirty_ratio định nghĩa phần trăm tối đa của bộ nhớ hệ thống bẩn trước khi cam kết mọi thứvm.dirty_ratio= dường như bị thiếu trong /etc/sysctl.conf, thêm vào đó? (Y/n): Y/etc/security/limits.d/limits.conf tăng mức tối đa được phép cho các xử lý tệp và các phân đoạn bị khóa mem/etc/security/limits.d/limits.conf không tồn tại, hãy tạo nó? (Y/n): Y
Sau khi Malcolm được cài đặt, bạn có thể tiến hành bước tiếp theo.

Cấu hình Malcolm​

Sau khi cài đặt Malcolm, bạn sẽ cần cấu hình nó bằng lệnh sau:
Mã:
sudo ./scripts/install.py --configure
Trong quá trình cấu hình Malcolm, bạn sẽ được hỏi một số câu hỏi. Trả lời tất cả các câu hỏi như được hiển thị bên dưới:
  • Các tiến trình Malcolm sẽ chạy dưới dạng UID 1000 và GID 1000. Như vậy có ổn không? (Y/n): Y
  • Đặt 10g cho OpenSearch và 3g cho Logstash. Như vậy có ổn không? có
  • Đặt 3 worker cho các pipeline Logstash. Như vậy có ổn không? (Y/n): có
  • Khởi động lại Malcolm khi hệ thống hoặc daemon Docker khởi động lại? Có Sau đó, chọn tùy chọn mặc định, except-stopped.
  • Chọn xem có thiết lập Malcolm với HTTPS không: Có
  • Chọn xem Malcolm có chạy sau bất kỳ proxy nào không: Không
  • Chọn mạng: Chỉ cần nhập để chấp nhận các giá trị mặc định. Chọn LDAP: Không
  • Lưu trữ snapshost chỉ mục OpenSearch cục bộ trong /opt/malcolm/Malcom/opensearch-backup? Có
  • Chọn Nén ảnh chụp nhanh chỉ mục OpenSearch: Có
  • Bạn có muốn xóa các chỉ mục cũ nhất khi cơ sở dữ liệu vượt quá một kích thước nhất định hay không: Không
  • Tra cứu DNS ngược cục bộ cho địa chỉ IP nguồn và đích trong nhật ký: Không
  • Tra cứu OUI của nhà cung cấp phần cứng cho địa chỉ MAC: Có
  • Thực hiện chấm điểm ngẫu nhiên chuỗi trên một số trường: có
  • Phơi bày cổng OpenSearch cho các máy chủ bên ngoài: không
  • Phơi bày cổng Logstash cho các máy chủ bên ngoài: không
  • Chuyển tiếp nhật ký Logstash đến phiên bản OpenSearch bên ngoài: không
  • Phơi bày cổng Filebeat TCP cho các máy chủ bên ngoài: không
  • Bật trích xuất tệp bằng Zeek: có
  • Chọn interesting làm hành vi trích xuất. Chọn phương pháp bảo quản tệp: cách ly
  • Quét các tệp đã trích xuất/tệp PE bằng ClamAV: có
  • Quét các tệp đã trích xuất/tệp PE bằng Yara: có
  • Quét các tệp đã trích xuất/tệp PE bằng Capa: có
  • Tra cứu các hàm băm của tệp đã trích xuất bằng VirusTotal: không
  • Tải xuống các chữ ký máy quét được cập nhật định kỳ: có
  • Malcolm có nên ghi lại lưu lượng mạng vào các tệp PCAP không: có
  • Chỉ định giao diện ghi lại (phân tách bằng dấu phẩy) mà Malcolm sẽ sử dụng để ghi lại lưu lượng mạng: eth0
  • Ghi lại các gói tin bằng netsniff-ng? (C/N): có
  • Ghi lại các gói tin bằng tcpdump? (y/N): không
  • Bộ lọc chụp (biểu thức bộ lọc giống tcpdump; để trống để chụp toàn bộ lưu lượng) (): Bạn có thể tắt lưu lượng liên quan đến Elasticsearch (cổng 9200), Logstash (5044), Arkime(8005): không phải cổng 9200 và không phải cổng 5044 và không phải cổng 8005
  • Tắt chức năng dỡ tải phần cứng giao diện chụp và điều chỉnh kích thước bộ đệm vòng? (y/N): n
Sau khi Malcolm đã được cấu hình, hãy khởi động lại hệ thống của bạn để áp dụng cấu hình.
Mã:
sudo reboot

Tạo Tài khoản Quản trị Malcolm​

Tiếp theo, bạn sẽ cần tạo một tài khoản quản trị để truy cập giao diện web Malcolm.

Đầu tiên, chuyển người dùng sang Malcolm và điều hướng đến thư mục Malcolm bằng lệnh sau:
Mã:
su - malcolm
cd ~/Malcolm
Tiếp theo, chạy lệnh sau để tạo tài khoản quản trị:
Mã:
./scripts/auth_setup
Trả lời tất cả các câu hỏi như được hiển thị bên dưới để tạo tài khoản quản trị:
  • Lưu trữ tên người dùng/mật khẩu của quản trị viên để truy cập Malcolm cục bộ? có
  • Đặt mật khẩu và tên người dùng của quản trị viên.
  • (Tái) tạo chứng chỉ SSL tự ký cho lưu lượng truy cập web HTTPS: có
  • (Tái) tạo chứng chỉ tự ký cho trình chuyển tiếp nhật ký từ xa: có
  • Lưu tên người dùng/mật khẩu để chuyển tiếp sự kiện Logstash đến một phiên bản OpenSearch thứ cấp, bên ngoài: không. Lưu tên người dùng/mật khẩu cho tài khoản người gửi cảnh báo qua email: không

Kéo hình ảnh Docker Malcolm​

Tiếp theo, bạn sẽ cần tải xuống tất cả hình ảnh Docker cần thiết từ sổ đăng ký Docker Hub. Bạn có thể tải xuống tất cả bằng lệnh sau:
Mã:
docker-compose pull
Sau khi tất cả hình ảnh đã được tải xuống, hãy xác minh tất cả hình ảnh bằng lệnh sau:
Mã:
docker images
Bạn sẽ nhận được kết quả sau:
Mã:
REPOSITORY TAG IMAGE ID CREATED SIZEmalcolmnetsec/filebeat-oss 6.2.0 5e9fa4c8ea2d 11 ngày trước 648MBmalcolmnetsec/arkime 6.2.0 4f4e6025c82d 11 ngày trước 793MBmalcolmnetsec/zeek 6.2.0 5b117ad2b4bb 11 ngày trước 1,4GBmalcolmnetsec/dashboards 6.2.0 9dcaff859eec 11 ngày trước 1,13 GBmalcolmnetsec/logstash-oss 6.2.0 cf4d75dcf4af 11 ngày trước 1,64 GBmalcolmnetsec/file-monitor 6.2.0 26227c3c7dc9 11 ngày trước 589 MBmalcolmnetsec/nginx-proxy 6.2.0 3b8b5413b52e 11 ngày trước 121 MBmalcolmnetsec/file-upload 6.2.0 2c704be24433 11 ngày trước 263 MBmalcolmnetsec/api 6.2.0 90f964b5d728 11 ngày trước 148 MBmalcolmnetsec/suricata 6.2.0 cbdb091d2df4 11 ngày trước 274MBmalcolmnetsec/htadmin 6.2.0 2b55630700d1 11 ngày trước 242MBmalcolmnetsec/opensearch 6.2.0 9ccb4665bd6c 11 ngày trước 1,25GBmalcolmnetsec/pcap-monitor 6.2.0 d957d803bdbb 11 ngày trước 214MBmalcolmnetsec/freq 6.2.0 3959a9daa952 11 ngày trước 131MBmalcolmnetsec/dashboards-helper 6.2.0 7da9699a72b3 11 ngày trước 168MBmalcolmnetsec/pcap-capture 6.2.0 df63e8daa369 11 ngày trước 121MBmalcolmnetsec/name-map-ui 6.2.0 6bd6c7c58d36 11 ngày trước 120MB

Khởi động Malcolm Service​

Tại thời điểm này, tất cả các thành phần cần thiết cho Malcolm đã sẵn sàng. Bây giờ bạn có thể khởi động dịch vụ Malcolm bằng lệnh sau:
Mã:
./scripts/start
Chờ một lúc để khởi động tất cả các dịch vụ. Sau khi tất cả các dịch vụ được khởi động, hãy xác minh tất cả các dịch vụ đang chạy bằng lệnh sau:
Mã:
docker ps -a
Bạn sẽ thấy tất cả các container đang chạy trong đầu ra sau:
Mã:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES840ea2b0e9ad malcolmnetsec/nginx-proxy:6.2.0 "/usr/local/bin/dock…" 17 phút trước Đã hoạt động 17 phút (không lành mạnh) 0.0.0.0:443->443/tcp, 127.0.0.1:5601->5601/tcp, 0.0.0.0:488->488/tcp, 127.0.0.1:9200->9200/tcp malcolm-nginx-proxy-1dd5c8c63816c malcolmnetsec/suricata:6.2.0 "/usr/local/bin/dock…" 17 phút trước Đã hoạt động 17 phút (không lành mạnh) malcolm-suricata-13112e1bd8f73 malcolmnetsec/filebeat-oss:6.2.0 "/usr/local/bin/dock…" 17 phút trước Đã hoạt động 17 phút (không lành mạnh) 127.0.0.1:5045->5045/tcp malcolm-filebeat-1c93cfe93ad7e malcolmnetsec/file-upload:6.2.0 "/usr/local/bin/dock…" 17 phút trước Đã hoạt động 17 phút (không lành mạnh) 80/tcp, 127.0.0.1:8022->22/tcp malcolm-upload-118ee20b46f3c malcolmnetsec/dashboards:6.2.0 "/usr/local/bin/dock…" 17 phút trước Đã hoạt động 17 phút (không lành mạnh) 5601/tcp malcolm-dashboards-12c34206c06e4 malcolmnetsec/zeek:6.2.0 "/usr/local/bin/dock…" 17 phút trước Đã hoạt động 17 phút (không lành mạnh) malcolm-zeek-141103ef99ce1 malcolmnetsec/logstash-oss:6.2.0 "/usr/local/bin/dock…" 17 phút trước Đã hoạt động 17 phút (không lành mạnh) 9001/tcp, 127.0.0.1:5044->5044/tcp, 9600/tcp malcolm-logstash-10408f42a76c3 malcolmnetsec/dashboards-helper:6.2.0 "/usr/local/bin/dock…" 17 phút trước Đã hoạt động 17 phút (không lành mạnh) 28991/tcp malcolm-dashboards-helper-13e78024620de malcolmnetsec/arkime:6.2.0 "/usr/local/bin/dock…" 17 phút trước Đã hoạt động 17 phút (không lành mạnh) 8000/tcp, 8005/tcp, 8081/tcp malcolm-arkime-158cd869beced malcolmnetsec/pcap-monitor:6.2.0 "/usr/local/bin/dock…" 17 phút trước Đã hoạt động 17 phút (không lành mạnh) 30441/tcp malcolm-pcap-monitor-11040fa8bd6df malcolmnetsec/file-monitor:6.2.0 "/usr/local/bin/dock…" 17 phút trước Đã hoạt động 17 phút (không lành mạnh) 3310/tcp, 8440/tcp malcolm-file-monitor-125c83f14413d malcolmnetsec/zeek:6.2.0 "/usr/local/bin/dock…" 17 phút trước Đã hoạt động 17 phút malcolm-zeek-live-1b321a96c0362 malcolmnetsec/api:6.2.0 "/usr/local/bin/dock…" 17 phút trước Đã lên 17 phút (không lành mạnh) 5000/tcp malcolm-api-10f1f4ac023f9 malcolmnetsec/name-map-ui:6.2.0 "/usr/local/bin/dock…" 17 phút trước Đã lên 17 phút (không lành mạnh) 8080/tcp malcolm-name-map-ui-1ba4d553cf6b5 malcolmnetsec/suricata:6.2.0 "/usr/local/bin/dock…" 17 phút trước Đã lên 17 phút malcolm-suricata-live-1e4637d0ec04d malcolmnetsec/opensearch:6.2.0 "/usr/local/bin/dock…" 17 phút trước Đã lên 13 phút (lành mạnh: bắt đầu) 9200/tcp, 9300/tcp, 9600/tcp, 9650/tcp malcolm-opensearch-1ac002e31d9be malcolmnetsec/htadmin:6.2.0 "/usr/local/bin/dock…" 17 phút trước Đã hoạt động 17 phút (không lành mạnh) 80/tcp malcolm-htadmin-17223d5244a7b malcolmnetsec/pcap-capture:6.2.0 "/usr/local/bin/dock…" 17 phút trước Đã hoạt động 17 phút malcolm-pcap-capture-1971931b21788 malcolmnetsec/freq:6.2.0 "/usr/local/bin/dock…" 17 phút trước Đã hoạt động 17 phút (không lành mạnh) 10004/tcp malcolm-freq-1
Bạn cũng có thể xác minh tất cả các cổng đang lắng nghe bằng lệnh sau:
Mã:
ss -atlnp | grep -i docker
Bạn sẽ thấy kết quả sau:
Mã:
LISTEN 0 65535 127.0.0.1:5601 0.0.0.0:* users:(("docker-proxy",pid=7480,fd=4))LISTEN 0 65535 0.0.0.0:488 0.0.0.0:* users:(("docker-proxy",pid=7519,fd=4))LISTEN 0 65535 127.0.0.1:9200 0.0.0.0:* users:(("docker-proxy",pid=7443,fd=4))LISTEN 0 65535 127.0.0.1:5044 0.0.0.0:* users:(("docker-proxy",pid=6247,fd=4))LISTEN 0 65535 127.0.0.1:5045 0.0.0.0:* users:(("docker-proxy",pid=7063,fd=4))LISTEN 0 65535 127.0.0.1:8022 0.0.0.0:* users:(("docker-proxy",pid=6826,fd=4))LISTEN 0 65535 0.0.0.0:443 0.0.0.0:* users:(("docker-proxy",pid=7567,fd=4))

Truy cập Malcolm​

Bây giờ bạn có thể truy cập bảng điều khiển Malcolm OpenSearch bằng URL Bạn sẽ được yêu cầu cung cấp tên người dùng và mật khẩu quản trị viên của mình:



Cung cấp tên người dùng, mật khẩu quản trị viên của bạn và nhấp vào nút Đăng nhập. Bạn sẽ thấy bảng điều khiển OpenSearch trên màn hình sau:



Để truy cập màn hình Tải lên tệp lưu trữ nhật ký và tệp Malcolm Capture, hãy nhập URL


Để truy cập trình chỉnh sửa ánh xạ tên máy chủ và mạng con, hãy nhập URL


Để truy cập màn hình Quản lý tài khoản, hãy sử dụng URL




Xin chúc mừng! Bạn đã cài đặt và định cấu hình thành công công cụ phân tích lưu lượng mạng Malcolm trên Ubuntu 22.04.
 
Back
Bên trên