Назад | Перейти на главную страницу

Tcpdump на ec2 не видит все пакеты

Я запускаю tcpdump на инстансе Amazon EC2 для мониторинга HTTP-трафика, идущего к Nginx (это всего лишь тестовое окно, единственный ресурс - это пример тестовой страницы).

Запуск tcpdump с командой

# tcpdump -vn -i any port 80

показывает пакеты из запроса браузера к сайту, но показывает ничего при доступе к странице с помощью скрипта Python (с использованием библиотеки запросов) или с помощью пакетов, созданных вручную (Scapy).

Вопросы:

  1. Что может быть причиной того, что tcpdump пропускает эти весьма специфические пакеты, определенно пройти через брандмауэр на Nginx и снова выйти?
  2. Почему пакеты из Firefox видны, а пакеты, отправленные из скриптов, проскальзывают?

Спасибо

После того, как был задан этот вопрос, была выпущена технология: Журналы потоков VPC. Это позволяет вам просматривать сетевой трафик в VPC, отфильтрованный по вашему желанию.

Журналы потоков VPC не будут отображать полное содержимое пакета, а только базовые данные, такие как источник, место назначения, порт, протокол, размер, время и действия, такие как принятие или отклонение, и некоторые другие. Он также не будет отображать трафик, который исходит и заканчивается внутри экземпляра EC2.

Это не прямой ответ на вопрос, так как он не решает проблему. Однако он может предоставить альтернативный способ сбора информации для решения аналогичной проблемы.

Попробуйте использовать определенный интерфейс вместо «любого». Это «устройство» нельзя использовать в неразборчивых отношениях. См. Справочную страницу tcpdump: http://www.tcpdump.org/manpages/tcpdump.1.html

Возможно snaplength?

  • -s снэплен
  • --snapshot-length = снимок

Обращайте внимание на байты snaplen данных из каждого пакета вместо 262144 байта по умолчанию. Пакеты, усеченные из-за ограниченного моментального снимка, указываются в выходных данных с помощью «[| proto]», где proto - это имя уровня протокола, на котором произошло усечение. Обратите внимание, что создание снимков большего размера увеличивает время, необходимое для обработки пакетов, и, по сути, уменьшает объем буферизации пакетов. Это может привести к потере пакетов. Вы должны ограничить snaplen наименьшим числом, которое будет захватывать интересующую вас информацию о протоколе. Установка snaplen в 0 устанавливает для него значение по умолчанию 262144, для обратной совместимости с последними более старыми версиями tcpdump.

Я обычно использую 65535.