Поиск по сайту:

Как установить инструмент анализа сетевого трафика Malcolm на Ubuntu 22.04


На этой странице

  1. Предпосылки
  2. Создание системного пользователя Malcolm
  3. Установите Malcolm Ubuntu 22.04
  4. Настроить Малькольма
  5. Создание учетной записи администратора Malcolm
  6. Извлечение изображений Malcolm Docker
  7. Запустить службу Malcolm
  8. Доступ к Малькольму

Malcolm — это простой, удобный и мощный инструмент для анализа сетевого трафика. Он способен захватывать артефакты (файлы PCAP) и журналы Zeek. Малькольм обеспечивает взаимосвязанную структуру, которая делает ее больше, чем сумма ее частей. Простое, гибкое развертывание Malcolms и надежное сочетание инструментов заполняют пробел в пространстве сетевой безопасности и делают расширенный анализ сетевого трафика доступным для многих как в государственном, так и в частном секторах.

В этом посте мы покажем вам, как установить инструмент анализа сетевого трафика Malcolm на Ubuntu 22.04.

Предпосылки

  • Сервер под управлением Ubuntu 22.04.
  • Минимум 16 ГБ ОЗУ и 4 ядра ЦП.
  • На сервере настроен пароль root.

Создайте системного пользователя Malcolm

Во-первых, вам нужно будет создать специальную учетную запись пользователя для запуска Malcolm. Вы можете создать его с помощью следующей команды:

useradd -m -d /opt/malcolm -s /bin/bash -G sudo malcolm

Затем установите пароль пользователя с помощью следующей команды:

passwd malcolm

Затем проверьте UID пользователя Malcolm с помощью следующей команды:

id malcolm

Вы должны увидеть следующий вывод:

uid=1000(malcolm) gid=1000(malcolm) groups=1000(malcolm),27(sudo)

Установите Малькольм Ubuntu 22.04

Сначала переключите пользователя на Malcolm и загрузите последнюю версию Malcolm с помощью следующей команды:

su - malcolm
git clone https://github.com/idaholab/Malcolm

После завершения загрузки измените каталог на загруженный каталог и начните установку Malcolm, используя следующую команду:

cd Malcolm
sudo ./scripts/install.py

Во время установки вам будет задано несколько вопросов, как показано ниже:

Installing required packages: ['apache2-utils', 'make', 'openssl', 'python3-dialog']

"docker info" failed, attempt to install Docker? (Y/n): Y

Attempt to install Docker using official repositories? (Y/n): Y
Installing required packages: ['apt-transport-https', 'ca-certificates', 'curl', 'gnupg-agent', 'software-properties-common']


Installing docker packages: ['docker-ce', 'docker-ce-cli', 'containerd.io']
Installation of docker packages apparently succeeded

Add a non-root user to the "docker" group?: Y

Enter user account: malcolm

Add another non-root user to the "docker" group?: n

"docker-compose version" failed, attempt to install docker-compose? (Y/n): Y

Install docker-compose directly from docker github? (Y/n): Y
Download and installation of docker-compose apparently succeeded


fs.file-max increases allowed maximum for file handles
fs.file-max= appears to be missing from /etc/sysctl.conf, append it? (Y/n): Y


fs.inotify.max_user_watches increases allowed maximum for monitored files
fs.inotify.max_user_watches= appears to be missing from /etc/sysctl.conf, append it? (Y/n): Y


fs.inotify.max_queued_events increases queue size for monitored files
fs.inotify.max_queued_events= appears to be missing from /etc/sysctl.conf, append it? (Y/n): Y


fs.inotify.max_user_instances increases allowed maximum monitor file watchers
fs.inotify.max_user_instances= appears to be missing from /etc/sysctl.conf, append it? (Y/n): Y

vm.max_map_count increases allowed maximum for memory segments
vm.max_map_count= appears to be missing from /etc/sysctl.conf, append it? (Y/n): Y


net.core.somaxconn increases allowed maximum for socket connections
net.core.somaxconn= appears to be missing from /etc/sysctl.conf, append it? (Y/n): Y

vm.dirty_background_ratio defines the percentage of system memory fillable with "dirty" pages before flushing
vm.dirty_background_ratio= appears to be missing from /etc/sysctl.conf, append it? (Y/n): Y

vm.dirty_ratio defines the maximum percentage of dirty system memory before committing everything
vm.dirty_ratio= appears to be missing from /etc/sysctl.conf, append it? (Y/n): Y

/etc/security/limits.d/limits.conf increases the allowed maximums for file handles and memlocked segments
/etc/security/limits.d/limits.conf does not exist, create it? (Y/n): Y

После установки Malcolm вы можете перейти к следующему шагу.

Настроить Малькольма

После установки Malcolm вам нужно будет настроить его с помощью следующей команды:

sudo ./scripts/install.py --configure

Во время настройки Malcolm вам будет задано несколько вопросов. Ответьте на все вопросы, как показано ниже:

  • Процессы Malcolm будут выполняться с идентификаторами UID 1000 и GID 1000. Это нормально? (Д/н): Д
  • Установка 10g для OpenSearch и 3g для Logstash. Это нормально? да
  • Настройка 3 воркеров для конвейеров Logstash. Это нормально? (Т/н): да
  • Перезапустить Malcolm при перезапуске системы или демона Docker? Да Затем выберите вариант по умолчанию, если не остановлено.
  • Выберите, следует ли настроить Malcolm с HTTPS: Да
  • Выберите, будет ли Малькольм работать через какой-либо прокси-сервер. Нет.
  • Выберите сеть: просто введите, чтобы принять значения по умолчанию. Выберите LDAP: Нет
  • Хранить моментальные хосты индекса OpenSearch локально в /opt/malcolm/Malcom/opensearch-backup? Да
  • Выберите сжатие моментальных снимков индекса OpenSearch: Да.
  • Хотите ли вы удалять самые старые индексы, когда база данных превышает определенный размер: нет.
  • Локальный обратный поиск DNS для исходного и целевого IP-адресов в журналах: нет.
  • Поиск OUI поставщика оборудования для MAC-адресов: Да
  • Выполнять оценку случайности строк в некоторых полях: да
  • Открывать порт OpenSearch для внешних хостов: нет
  • Открывать порт Logstash для внешних хостов: нет
  • Перенаправлять журналы Logstash во внешний экземпляр OpenSearch: нет
  • Предоставлять TCP-порт Filebeat внешним хостам: нет
  • Включить извлечение файлов с помощью Zeek: да
  • Выберите интересный способ извлечения. Выберите способ сохранения файла: карантин
  • Сканирование извлеченных файлов/PE-файлов с помощью ClamAV: да
  • Сканирование извлеченных файлов/PE-файлов с помощью Yara: да
  • Сканирование извлеченных файлов/PE-файлов с помощью Capa: да
  • Поиск хэшей извлеченных файлов с помощью VirusTotal: нет
  • Периодически загружать обновленные сигнатуры сканера: да
  • Должен ли Malcolm перехватывать сетевой трафик в файлы PCAP: да.
  • Укажите интерфейс(ы) захвата (через запятую), который Malcolm будет использовать для сетевого трафика: eth0
  • Захватывать пакеты с помощью netsniff-ng? (Т/н): да
  • Захватывать пакеты с помощью tcpdump? (д/н): нет
  • Capture filter (выражение фильтра, похожее на tcpdump; оставьте поле пустым, чтобы захватить весь трафик)(): вы можете отключить трафик, связанный с Elasticsearch (порт 9200), Logstash (5044), Arkime (8005): не порт 9200 и не порт 5044 а не порт 8005
  • Отключить аппаратную разгрузку интерфейса захвата и настроить размер кольцевого буфера? (д/н): н

После настройки Malcolm перезагрузите систему, чтобы применить настройки.

sudo reboot

Создать учетную запись администратора Malcolm

Далее вам нужно будет создать административную учетную запись для доступа к веб-интерфейсу Malcolm.

Сначала переключите пользователя на Malcolm и перейдите в каталог Malcolm с помощью следующей команды:

su - malcolm
cd ~/Malcolm

Затем выполните следующую команду, чтобы создать учетную запись администратора:

./scripts/auth_setup

Ответьте на все вопросы, как показано ниже, чтобы создать учетную запись администратора:

  • Сохранить имя пользователя/пароль администратора для локального доступа Malcolm? да
  • Установите пароль администратора и имя пользователя.
  • (Повторно) генерировать самозаверяющие сертификаты SSL для веб-трафика HTTPS: да
  • (Повторно) генерировать самозаверяющие сертификаты для удаленной пересылки журналов: да
  • Хранить имя пользователя/пароль для пересылки событий Logstash во вторичный внешний экземпляр OpenSearch: нет. Сохранить имя пользователя/пароль для учетной записи отправителя уведомлений по электронной почте: нет

Извлечь образы Малкольма Докера

Затем вам нужно будет загрузить все необходимые образы Docker из реестра Docker Hub. Вы можете скачать все с помощью следующей команды:

docker-compose pull

После загрузки всех изображений проверьте все изображения с помощью следующей команды:

docker images

Вы должны получить следующий результат:

REPOSITORY                        TAG       IMAGE ID       CREATED       SIZE
malcolmnetsec/filebeat-oss        6.2.0     5e9fa4c8ea2d   11 days ago   648MB
malcolmnetsec/arkime              6.2.0     4f4e6025c82d   11 days ago   793MB
malcolmnetsec/zeek                6.2.0     5b117ad2b4bb   11 days ago   1.4GB
malcolmnetsec/dashboards          6.2.0     9dcaff859eec   11 days ago   1.13GB
malcolmnetsec/logstash-oss        6.2.0     cf4d75dcf4af   11 days ago   1.64GB
malcolmnetsec/file-monitor        6.2.0     26227c3c7dc9   11 days ago   589MB
malcolmnetsec/nginx-proxy         6.2.0     3b8b5413b52e   11 days ago   121MB
malcolmnetsec/file-upload         6.2.0     2c704be24433   11 days ago   263MB
malcolmnetsec/api                 6.2.0     90f964b5d728   11 days ago   148MB
malcolmnetsec/suricata            6.2.0     cbdb091d2df4   11 days ago   274MB
malcolmnetsec/htadmin             6.2.0     2b55630700d1   11 days ago   242MB
malcolmnetsec/opensearch          6.2.0     9ccb4665bd6c   11 days ago   1.25GB
malcolmnetsec/pcap-monitor        6.2.0     d957d803bdbb   11 days ago   214MB
malcolmnetsec/freq                6.2.0     3959a9daa952   11 days ago   131MB
malcolmnetsec/dashboards-helper   6.2.0     7da9699a72b3   11 days ago   168MB
malcolmnetsec/pcap-capture        6.2.0     df63e8daa369   11 days ago   121MB
malcolmnetsec/name-map-ui         6.2.0     6bd6c7c58d36   11 days ago   120MB

Запустить службу Малькольма

На данный момент все необходимые компоненты для Малькольма готовы. Теперь вы можете запустить службу Malcolm с помощью следующей команды:

./scripts/start

Подождите некоторое время, чтобы запустить все службы. После запуска всех служб проверьте все запущенные службы с помощью следующей команды:

docker ps -a

Вы должны увидеть все запущенные контейнеры в следующем выводе:

CONTAINER ID   IMAGE                                   COMMAND                  CREATED          STATUS                             PORTS                                                                                            NAMES
840ea2b0e9ad   malcolmnetsec/nginx-proxy:6.2.0         "/usr/local/bin/dock…"   17 minutes ago   Up 17 minutes (unhealthy)          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-1
dd5c8c63816c   malcolmnetsec/suricata:6.2.0            "/usr/local/bin/dock…"   17 minutes ago   Up 17 minutes (unhealthy)                                                                                                           malcolm-suricata-1
3112e1bd8f73   malcolmnetsec/filebeat-oss:6.2.0        "/usr/local/bin/dock…"   17 minutes ago   Up 17 minutes (unhealthy)          127.0.0.1:5045->5045/tcp                                                                         malcolm-filebeat-1
c93cfe93ad7e   malcolmnetsec/file-upload:6.2.0         "/usr/local/bin/dock…"   17 minutes ago   Up 17 minutes (unhealthy)          80/tcp, 127.0.0.1:8022->22/tcp                                                                   malcolm-upload-1
18ee20b46f3c   malcolmnetsec/dashboards:6.2.0          "/usr/local/bin/dock…"   17 minutes ago   Up 17 minutes (unhealthy)          5601/tcp                                                                                         malcolm-dashboards-1
2c34206c06e4   malcolmnetsec/zeek:6.2.0                "/usr/local/bin/dock…"   17 minutes ago   Up 17 minutes (unhealthy)                                                                                                           malcolm-zeek-1
41103ef99ce1   malcolmnetsec/logstash-oss:6.2.0        "/usr/local/bin/dock…"   17 minutes ago   Up 17 minutes (unhealthy)          9001/tcp, 127.0.0.1:5044->5044/tcp, 9600/tcp                                                     malcolm-logstash-1
0408f42a76c3   malcolmnetsec/dashboards-helper:6.2.0   "/usr/local/bin/dock…"   17 minutes ago   Up 17 minutes (unhealthy)          28991/tcp                                                                                        malcolm-dashboards-helper-1
3e78024620de   malcolmnetsec/arkime:6.2.0              "/usr/local/bin/dock…"   17 minutes ago   Up 17 minutes (unhealthy)          8000/tcp, 8005/tcp, 8081/tcp                                                                     malcolm-arkime-1
58cd869beced   malcolmnetsec/pcap-monitor:6.2.0        "/usr/local/bin/dock…"   17 minutes ago   Up 17 minutes (unhealthy)          30441/tcp                                                                                        malcolm-pcap-monitor-1
1040fa8bd6df   malcolmnetsec/file-monitor:6.2.0        "/usr/local/bin/dock…"   17 minutes ago   Up 17 minutes (unhealthy)          3310/tcp, 8440/tcp                                                                               malcolm-file-monitor-1
25c83f14413d   malcolmnetsec/zeek:6.2.0                "/usr/local/bin/dock…"   17 minutes ago   Up 17 minutes                                                                                                                       malcolm-zeek-live-1
b321a96c0362   malcolmnetsec/api:6.2.0                 "/usr/local/bin/dock…"   17 minutes ago   Up 17 minutes (unhealthy)          5000/tcp                                                                                         malcolm-api-1
0f1f4ac023f9   malcolmnetsec/name-map-ui:6.2.0         "/usr/local/bin/dock…"   17 minutes ago   Up 17 minutes (unhealthy)          8080/tcp                                                                                         malcolm-name-map-ui-1
ba4d553cf6b5   malcolmnetsec/suricata:6.2.0            "/usr/local/bin/dock…"   17 minutes ago   Up 17 minutes                                                                                                                       malcolm-suricata-live-1
e4637d0ec04d   malcolmnetsec/opensearch:6.2.0          "/usr/local/bin/dock…"   17 minutes ago   Up 13 minutes (health: starting)   9200/tcp, 9300/tcp, 9600/tcp, 9650/tcp                                                           malcolm-opensearch-1
ac002e31d9be   malcolmnetsec/htadmin:6.2.0             "/usr/local/bin/dock…"   17 minutes ago   Up 17 minutes (unhealthy)          80/tcp                                                                                           malcolm-htadmin-1
7223d5244a7b   malcolmnetsec/pcap-capture:6.2.0        "/usr/local/bin/dock…"   17 minutes ago   Up 17 minutes                                                                                                                       malcolm-pcap-capture-1
971931b21788   malcolmnetsec/freq:6.2.0                "/usr/local/bin/dock…"   17 minutes ago   Up 17 minutes (unhealthy)          10004/tcp                                                                                        malcolm-freq-1

Вы также можете проверить все прослушиваемые порты, используя следующую команду:

ss -atlnp | grep -i docker

Вы должны увидеть следующий вывод:

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))

Доступ к Малькольму

Теперь вы можете получить доступ к информационной панели Malcolm OpenSearch, используя URL-адрес https://your-server-ip/dashboards/. Вам будет предложено ввести имя пользователя и пароль администратора:

Укажите имя пользователя и пароль администратора и нажмите кнопку «Войти». Вы должны увидеть панель инструментов OpenSearch на следующем экране:

Чтобы получить доступ к экрану загрузки файла Malcolm Capture и архива журнала, введите URL-адрес https://your-server-ip/upload/.

Чтобы получить доступ к редактору сопоставления имен хостов и подсетей, введите URL-адрес https://your-server-ip/name-map-ui/.

Чтобы получить доступ к экрану управления учетной записью, используйте URL-адрес https://your-server-ip:488/.

Поздравляем! вы успешно установили и настроили инструмент анализа сетевого трафика Malcolm в Ubuntu 22.04.