Строка device eth0 entered promiscuous mode в выводе dmesg или журнале /var/log/syslog означает, что сетевой интерфейс eth0 переведён в неразборчивый (promiscuous) режим — сетевая карта начала принимать все кадры из сегмента сети, а не только адресованные её MAC-адресу. Чаще всего это штатная реакция на запуск анализатора трафика вроде tcpdump, Wireshark или системы обнаружения вторжений, но если вы ничего подобного не запускали, сообщение может указывать на посторонний процесс.
Запись сама по себе не является ошибкой — это информационное сообщение ядра Linux. Однако появление его без видимой причины на сервере — повод для проверки: неразборчивый режим используется инструментами перехвата трафика, и его активация может быть следствием компрометации системы. Разберём, откуда берётся эта запись, как найти процесс-виновник и как выключить режим.
Что такое promiscuous mode и зачем он нужен
В обычном состоянии сетевая карта отбрасывает на аппаратном уровне все кадры, MAC-адрес назначения которых не совпадает с её собственным (за исключением broadcast и multicast). Неразборчивый режим отключает эту фильтрацию: адаптер передаёт в операционную систему вообще весь трафик, который до него доходит.
Это штатный механизм, без которого невозможна работа целого класса легитимного ПО:
- 🔍 Анализаторы трафика — tcpdump, Wireshark, tshark захватывают пакеты для диагностики сети;
- 🛡️ Системы IDS/IPS — Snort, Suricata, Zeek слушают трафик для обнаружения атак;
- 🌉 Мосты и виртуализация — интерфейсы, входящие в bridge (например, для KVM, Docker, Open vSwitch), часто работают в promiscuous mode;
- 📡 Мониторинг — некоторые системы сбора сетевой статистики и зеркалирования трафика.
Обратное сообщение — device eth0 left promiscuous mode — появляется, когда программа завершает захват и интерфейс возвращается в нормальное состояние. Пара таких строк в логе с понятным источником — нормальная картина.
Какие программы включают неразборчивый режим
Чтобы понять причину записи, вспомните, что работает на машине. Наиболее частые виновники перечислены ниже — проверка начинается именно с них.
| Программа / сервис | Зачем включает режим | Как проверить |
|---|---|---|
| tcpdump, dumpcap | Захват пакетов для анализа | ps aux | grep tcpdump |
| Wireshark / tshark | Графический анализ трафика | ps aux | grep -i wireshark |
| Snort, Suricata, Zeek | Обнаружение вторжений | systemctl status suricata |
| Bridge (br0 и др.) | Прозрачная пересылка кадров | ip link show master br0 |
| DHCP-клиенты (некоторые) | Приём ответов до настройки адреса | Просмотр логов dhclient |
Если сервер используется как гипервизор или на нём поднят Docker, появление таких сообщений при старте контейнеров и виртуальных машин — ожидаемое поведение. Интерфейсы, добавляемые в мост, нередко переводятся в неразборчивый режим автоматически.
Как проверить состояние интерфейса и найти процесс
Текущее состояние интерфейса видно в выводе ip. Выполните команду:
ip link show eth0
Если в строке флагов присутствует PROMISC — интерфейс прямо сейчас работает в неразборчивом режиме. Отсутствие флага означает, что режим уже выключен, а сообщение в логе относится к прошедшему событию.
Найти конкретный процесс, который держит сокет захвата, сложнее — штатной команды «кто включил promisc» нет. Рабочие подходы:
- 🔎 Поиск по списку процессов:
ps aux | grep -E 'tcpdump|wireshark|tshark|snort|suricata|zeek'; - 🧾 Анализ журнала аудита, если настроен auditd — можно отследить вызовы, изменяющие флаги интерфейса;
- 🕒 Сопоставление времени сообщения в
dmesg -Tс записями в/var/log/syslog,journalctlи историей команд пользователей.
☑️ Диагностика promiscuous mode
Как вручную отключить и включить режим
Если вы убедились, что режим активирован не нужным вам процессом, а сам процесс завершён, но флаг остался, интерфейс можно вернуть в обычное состояние командой:
sudo ip link set eth0 promisc off
Обратное действие — включение режима для ручного захвата без tcpdump — выполняется так:
sudo ip link set eth0 promisc on
Учтите: если режим удерживает работающая программа (например, запущенный Suricata), ручное снятие флага может нарушить её работу или быть немедленно возвращено обратно. Сначала корректно остановите сервис: sudo systemctl stop suricata (имя службы зависит от установленного ПО).
⚠️ Внимание: не отключайте неразборчивый режим на интерфейсах, входящих в bridge или используемых системой виртуализации, — это может разорвать сетевую связность виртуальных машин и контейнеров. Сначала проверьте роль интерфейса командой ip link show eth0 и наличие мостов.
Когда сообщение должно насторожить: признаки компрометации
Перехват трафика — классический приём при взломе: злоумышленник запускает скрытый сниффер, чтобы собирать пароли и сессии, передаваемые в сегменте сети. Поэтому необъяснимое включение promiscuous mode на сервере — один из индикаторов компрометации, который проверяют при расследовании инцидентов.
Тревожные сопутствующие признаки: неизвестные процессы в выводе ps, странные исходящие соединения в ss -tup, новые учётные записи, следы подмены бинарных файлов. Отдельно стоит отметить, что rootkit может скрывать и процесс сниффера, и сам флаг PROMISC в выводе стандартных утилит — поэтому при серьёзных подозрениях анализ проводят с внешнего доверенного носителя.
⚠️ Внимание: если вы обнаружили неразборчивый режим на production-сервере и не нашли легитимного источника, не ограничивайтесь отключением флага. Зафиксируйте состояние системы (список процессов, соединений, логи) и проведите проверку на компрометацию — простое снятие флага не устраняет возможную угрозу.
Почему злоумышленнику нужен promiscuous mode
В коммутируемой сети обычный хост видит только свой трафик и broadcast. Если атакующий получил доступ к серверу, который сам по себе является транзитной точкой (шлюз, прокси, гипервизор), неразборчивый режим позволяет перехватывать чужие данные, проходящие через этот узел. На обычной конечной машине за коммутатором выгода меньше, но сниффер всё равно может собирать broadcast-трафик, ARP-запросы и данные при атаках типа ARP-spoofing.
Можно ли отключить такие сообщения в логах
Сообщения о переходе интерфейса в promiscuous mode генерирует ядро, и полностью «запретить» их штатной настройкой нельзя — это часть стандартного логирования сетевой подсистемы. Однако можно снизить шум: настроить фильтрацию в rsyslog или journald, чтобы информационные записи ядра не попадали в общий syslog, либо настроить правила мониторинга, которые игнорируют известные легитимные источники.
Идти по пути подавления сообщений стоит осторожно. Эти записи — ценный источник информации для аудита безопасности: по ним видно, кто и когда запускал захват трафика. Разумный компромисс — не удалять записи, а настроить алерты только на неожиданные события.
Часто задаваемые вопросы
Опасно ли сообщение «device eth0 entered promiscuous mode»?
Само по себе — нет, это информационная запись ядра. Она становится поводом для проверки, только если вы не запускали анализаторы трафика, IDS, мосты или виртуализацию, то есть источник перехода неизвестен.
Как узнать, какой процесс включил promiscuous mode?
Прямой команды нет. Проверьте список процессов на предмет tcpdump, Wireshark, Snort, Suricata, сопоставьте время события из dmesg -T с системными логами и историей команд. Если настроен auditd, поиск по журналу аудита даст наиболее точный ответ.
Почему сообщение появляется при старте Docker или виртуальных машин?
Интерфейсы, добавляемые в сетевой мост (bridge), часто переводятся в неразборчивый режим, чтобы мост мог пересылать кадры с любыми MAC-адресами. Это штатное поведение, и пары сообщений «entered/left promiscuous mode» при пересоздании контейнеров — норма.
Как отключить неразборчивый режим на eth0?
Командой sudo ip link set eth0 promisc off. Но сначала убедитесь, что режим не удерживает работающий сервис (IDS, мост, гипервизор) — иначе он будет включён снова или работа сервиса нарушится.
Может ли это быть признаком взлома сервера?
Да, скрытый сниффер — типичный инструмент при компрометации. Если легитимный источник не найден, зафиксируйте состояние системы, проверьте процессы, сетевые соединения и логи авторизации, а при подтверждённых подозрениях привлеките специалиста по информационной безопасности.