Netsniff-ng

Netsniff-ng — бесплатный анализатор и набор сетевых инструментов для Linux, изначально созданный Даниэлем Боркманном. Повышение производительности достигается за счёт механизмов передачи пакетов без копирования (zero-copy) — RX_RING, TX_RING[1], благодаря чему ядро Linux не перемещает пакеты из пространства ядра в пользовательское пространство через системные вызовы (например, recvmsg())[2]. Начиная с версии 1.0.0, libpcap для Linux тоже поддерживает механизм zero-copy для захвата пакетов (RX_RING), поэтому программы, использующие libpcap в Linux, также используют этот механизм.

Общие сведения
Netsniff-ng
Тип инженерия сетей, управление сетью, безопасность компьютеров
Автор Daniel Borkmann
Разработчики Daniel Borkmann, Tobias Klauser, Herbert Haas, Emmanuel Roullit, Markus Amend и многие другие
Написана на C
Операционная система Linux
Языки интерфейса английский
Первый выпуск декабрь 2009
Последняя версия 0.6.8 (11 января 2021)
Репозиторий github.com/netsniff-ng/n…
Лицензия GPLv2
Сайт netsniff-ng.org

Возможности

Netsniff-ng изначально создавался как сетевой анализатор пакетов («сниффер») с поддержкой интерфейса пакетного обмена ядра Linux (mmap) для сетевых пакетов, позднее в него была добавлена и другая функциональность, что, по аналогии с iproute2, сделало его полноценным набором утилит. Благодаря zero-copy-интерфейсу ядра, netsniff-ng обеспечивает эффективную обработку пакетов даже на стандартном аппаратном обеспечении: например, утилита trafgen обеспечивает скорость передачи на уровне Gigabit Ethernet[3][4]. Netsniff-ng не зависит от libpcap. Для работы не требуется применение специальных патчей к операционной системе. Netsniff-ng распространяется как свободное программное обеспечение под лицензией GNU GPL версии 2[5].

В состав набора входят сетевой анализатор, средство захвата и воспроизведения пакетов, генератор трафика с линией пропускания, многопользовательский зашифрованный IP-туннель, компилятор фильтра пакетов Berkeley, инструменты для сетевой статистики, трассировка маршрутов автономных систем («AS») и другое[6]:

  • netsniff-ng — анализатор пакетов с поддержкой zero-copy, средство захвата и воспроизведения; поддерживает файловый формат pcap
  • trafgen — генератор сетевого трафика на основе zero-copy
  • mausezahn — генератор и анализатор пакетов для аппаратных и программных инструментов (CLI-интерфейс совместим с Cisco)
  • bpfc — компилятор фильтров пакетов Berkeley
  • ifpps — инструмент top-like для статистики сетевого трафика ядра Linux
  • flowtop — программа для отслеживания сетевых соединений с Geo-IP-информацией (на основе netfilter)
  • curvetun — легковесный многопользовательский IP-туннель с криптографией на эллиптических кривых
  • astraceroute — трассировщик маршрутов автономных систем с выводом Geo-IP

Пакеты netsniff-ng доступны во всех основных дистрибутивах Linux, включая Debian[7] и Fedora Linux. Входит в состав Xplico[8], дистрибутива GRML, SecurityOnion[9] и других сетевых форензик-наборов[10]. Netsniff-ng также используется в академических исследованиях[11][12].

Примеры команд netsniff-ng

В примерах предполагается, что используется сетевая карта eth0. Все программы в пакете netsniff-ng поддерживают длинные ключи командной строки, такие как—in (-i), --out (-o), --dev (-d).

  • Географическая трассировка маршрута TCP SYN для сайта:
 astraceroute -d eth0 -N -S -H <host, например netsniff-ng.org>
  • Получение сетевой статистики ядра Linux в промискуитетном режиме:
 ifpps -d eth0 -p
  • Генерация высокоскоростного сетевого трафика; конфиг trafgen.txf указывает параметры пакета:
 trafgen -d eth0 -c trafgen.txf
  • Компиляция фильтра пакетов Berkeley (например, fubar.bpf):
 bpfc fubar.bpf
  • Мониторинг активных TCP-соединений (выводит протокол, имя приложения, город и страну источника/получателя):
 flowtop
  • Выгрузка сетевого трафика в файл формата pcap:
 netsniff-ng -i eth0 -o dump.pcap -s -b 0

Платформы и совместимость

Netsniff-ng работает только под управлением Linux. Разработчики отказались от портирования для Microsoft Windows[13].

Примечания

Ссылки