6.5 KiB
Настройка
Packmate использует настройки из файла .env в той же папке, что и docker-compose.yml.
Создайте его из полного шаблона и измените значения под сервер:
cp .env.example .env
${EDITOR:-nano} .env
Основные настройки
# Локальный IP сервера, на который приходит игровой трафик
PACKMATE_LOCAL_IP=10.20.1.1
# Имя пользователя для web-авторизации
PACKMATE_WEB_LOGIN=SomeUser
# Пароль для web-авторизации
PACKMATE_WEB_PASSWORD=SomeSecurePassword
Режим работы
Packmate поддерживает три основных режима работы: LIVE, FILE и VIEW.
LIVE- это основной режим работы во время CTF. Packmate обрабатывает живой трафик и сразу выводит результаты.FILE- обрабатывает трафик из pcap файлов. Полезен для анализа трафика с прошедших CTF, где не был запущен Packmate, или тех, где невозможно запустить его на вулнбоксе.VIEW- Packmate не обрабатывает трафик, а только показывает уже обработанные стримы. Полезен для разборов после завершения CTF.
Настройка LIVE
Необходимо указать интерфейс, через который проходит игровой трафик.
На этом же интерфейсе должен располагаться ip, указанный в параметре PACKMATE_LOCAL_IP
# Режим работы - перехват
PACKMATE_MODE=LIVE
# Интерфейс, на котором производится перехват трафика
PACKMATE_INTERFACE=game
Для интенсивного трафика можно включить параллельную обработку захваченных пакетов. Оба направления
одного TCP/UDP потока всегда обрабатываются одним worker, поэтому порядок пакетов внутри потока
сохраняется. Начните с 1 worker как режима совместимости и увеличивайте значение только после
сетевого stress test на целевом сервере:
PACKMATE_CAPTURE_WORKERS=1
PACKMATE_CAPTURE_QUEUE_CAPACITY=250000
PACKMATE_CAPTURE_BUFFER_SIZE_BYTES=67108864
PACKMATE_CAPTURE_SHUTDOWN_TIMEOUT_SECONDS=30
# Должно быть больше shutdown timeout приложения.
PACKMATE_CONTAINER_STOP_GRACE_PERIOD=45s
Очередь ограничена: при её переполнении Packmate продолжает работать и увеличивает счётчик
applicationDroppedPackets в GET /api/pcap/metrics. Для production этот счётчик, а также
droppedPackets и interfaceDroppedPackets, должны оставаться равны нулю. maximumQueuedPackets
показывает максимальное число packet tasks, ожидавших обработки после запуска capture.
Настройка FILE
Необходимо указать название pcap файла, лежащего в папке pcaps. После запуска в веб-интерфейсе появится кнопка, активирующая чтение файла. Важно, чтобы к этому моменту уже были созданы сервисы и паттерны (см. раздел Использование).
# Режим работы - анализ файла
PACKMATE_MODE=FILE
# Название файла в папке pcaps
PACKMATE_PCAP_FILE=dump.pcap
Настройка VIEW
В этом режиме Packmate просто показывает уже имеющиеся данные.
# Режим работы - просмотр
PACKMATE_MODE=VIEW
Очистка БД
На крупных CTF через какое-то время накапливается большое количество трафика. Это замедляет работу Packmate и занимает много места на диске.
Для оптимизации работы, рекомендуется включить регулярную очистку БД от старых стримов. Это будет работать только в режиме LIVE.
PACKMATE_OLD_STREAMS_CLEANUP_ENABLED=true
# Пауза между запусками cleaner (в секундах).
PACKMATE_OLD_STREAMS_CLEANUP_INTERVAL_SECONDS=10
# Максимальное время активной очистки за один запуск (в секундах).
PACKMATE_OLD_STREAMS_CLEANUP_MAX_RUN_SECONDS=5
# Насколько старым стрим должен быть для удаления (в минутах от текущего времени)
PACKMATE_OLD_STREAMS_CLEANUP_THRESHOLD=15
Старую переменную PACKMATE_OLD_STREAMS_CLEANUP_INTERVAL замените на
PACKMATE_OLD_STREAMS_CLEANUP_INTERVAL_SECONDS; новая настройка задаётся в секундах.
Дополнительные настройки
# Пароль от БД. Из-за того, что БД принимает подключения только с localhost, менять его необязательно, но можно, для дополнительной безопасности.
PACKMATE_DB_PASSWORD=K604YnL3G1hp2RDkCZNjGpxbyNpNHTRb
# Версия Packmate. Можно изменить, если нужно использовать другой образ из docker registry.
BUILD_TAG=latest
Чтобы использовать расшифровку TLS (с RSA), нужно положить соответствующий приватный ключ, который
использовался для генерации сертификата, в папку rsa_keys.
Файлы БД сохраняются в ./data, поэтому для обнуления базы нужно удалить эту папку.