Как установить инструмент анализа сетевого трафика Malcolm на Ubuntu 22.04
На этой странице
- Предпосылки
- Создание системного пользователя Malcolm
- Установите Malcolm Ubuntu 22.04
- Настроить Малькольма
- Создание учетной записи администратора Malcolm
- Извлечение изображений Malcolm Docker
- Запустить службу Malcolm
- Доступ к Малькольму
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.