Ведение журнала сетевого трафика определенного приложения в Linux внутри Docker, блокировка его доступа в Интернет и подделка ответов

Ведение журнала сетевого трафика определенного приложения в Linux внутри Docker, блокировка его доступа в Интернет и подделка ответов

У меня есть приложение (эмулятор Android от Google, работающий через QEMU), работающее на Ubuntu внутри экземпляра Docker. Я хочу:

  • Захват всего сетевого трафика (пакетов), поступающего от виртуальной машины, работающей внутри QEMU.
  • Предотвратить выход трафика с этой виртуальной машины в Интернет, оставив остальную часть экземпляра подключенной
  • Подделывает ответы на запросы, отправленные с этой виртуальной машины на другие серверы, выдавая себя за эти серверы.
  • Делайте все это автоматизированным способом без участия пользователя (без ввода данных пользователем, только скрипты)

Исследуя этот вопрос, я обнаружил,https://github.com/mandiant/flare-fakenet-ng, что как раз то, что мне нужно. Проблема в том, что это, похоже, не работает в моей настройке (всякий раз, когда загружается сетевой драйвер Fakenet, он отключает весь сетевой трафик независимо от любых конфигураций, и я теряю контроль над экземпляром docker). Я задал вопрос об этом здесь (Включение переадресации в fakenet-ng на Ubuntu Linux отключает весь сетевой трафик), но не получил ответа.

Поскольку мне пока не удалось решить эту проблему, я ищу другой способ ее решения. Какие инструменты и методы мне следует использовать? Каковы их плюсы и минусы?

решение1

Сам Android Emulator содержит реализацию tcpdump и возможность выгрузки пакетов в файл. Используйте его так emulator -tcpdump {path_to_dump}.pcap {other_options}.

Что касается предотвращения доступа к интернету и поддельных ответов, то можно запустить эмулятор в отдельной группе пользователей и выполнить фильтрацию iptables на основе GID процессов, перенаправляя весь трафик, исходящий от определенного GID, на локальный сервер, где будут реализованы поддельные ответы. Что-то вродеhttps://pypi.org/project/spoof/илиhttps://pypi.org/project/fake-server/может подойти для этого варианта использования.

Связанный контент