Рейтинг:1

tcpdump: отфильтровывая локальный хост, пакеты все равно появляются?

флаг in

Я пытаюсь использовать tcpdump для изучения того, что на моем компьютере с кем общается во всемирной паутине.

Я зашел так далеко:

lan_hosts="(хосты || для || исключения)"
local_hosts="(127.0.0.1 || ips_of_my_nics || localhost || local_hostname)"
извините_local_ports="(ssh || https || домен || $(netstat -ap | egrep -h '/(процессы|я_не хочу|хочу|to_see|traffic_of)' | tr -s ' ' | cut -d ' ' -f 4 | rev | cut -d ':' -sf 1 | rev | sort | sed ':a; N; $!ba; s/\n/ \|\| /g'))"
tcpdump -vi any "ip && ! icmp && ! arp && (src ! $local_hosts || dst ! $local_hosts) && (src ! $local_hosts || dst $local_hosts) && (src ! $local_hosts || порт src ! $excused_local_ports) && (dst ! $local_hosts || порт dst ! $excused_local_ports) && host ! $lan_hosts"

Теперь причина, по которой я публикую это здесь как вопрос: я не понимаю, почему/как эти пакеты все еще отображаются в выводе:

tcpdump: прослушивание на любом, тип ссылки LINUX_SLL (Linux Cooked v1), размер захвата 262144 байт
14:49:30.660109 IP (tos 0x0, ttl 64, id 23067, смещение 0, флаги [DF], proto UDP (17), длина 71)
    localhost.38976 > localhost.domain: 26002+ [1au] А? lan_host.lan. (43)
14:49:30.686174 IP (tos 0x0, ttl 64, id 23110, смещение 0, флаги [DF], proto UDP (17), длина 80)
    localhost.47181 > localhost.domain: 45895+ [1au] PTR? some_ip.in-addr.arpa. (52)
14:49:30.686219 IP (tos 0x0, ttl 64, id 2440, смещение 0, флаги [DF], proto UDP (17), длина 103)
    localhost.domain > localhost.47181: 45895 1/0/1 some_ip.in-addr.arpa. Локальный хост PTR. (75)

Я думал, что сегмент (источник ! $local_hosts || dst ! $local_hosts) моего объявления фильтра, которое только объединяется с логикой && с другими частями фильтра, должно исключать их? И даже если бы у меня не было той части в фильтре, их опять же надо исключить из-за включения домен в моем извините_local_ports переменная.

Давайте немного раскроем объявление фильтра и попытаемся объяснить, чего я хотел добиться с помощью каждой части:

  • IP -> смотреть только на пакеты ipv4, так как у этой машины нет пути ipv6 к Интернету, меня здесь не интересует ipv6.
  • ! ICMP -> не заботятся о запросах / ответах ping и других метаданных маршрутизации icmp.
  • ! арп -> фильтровать пакеты протокола разрешения адресов
  • (источник ! $local_hosts || dst ! $local_hosts) -> скрыть пакеты локального хоста, разговаривающего сам с собой
  • (источник $local_hosts || dst $local_hosts) -> скрыть трансляции от других хостов
  • (источник ! $local_hosts || исходный порт ! $excused_local_ports) -> скрыть пакеты, которые мой хост отправил с одного из портов программ, на которые я не хочу смотреть прямо сейчас.
  • (dst ! $local_hosts || dst порт ! $excused_local_ports) -> скрыть пакеты, которые мой хост получил на одном из портов программ, на которые я не хочу смотреть прямо сейчас.
  • (хост! $lan_hosts) -> скрыть связь с определенными хостами
флаг in
Какова фактическая командная строка для tcpdump? Лучший способ отфильтровать localhost — прослушивать только релевантные интерфейсы, а не lo — это также связано с производительностью.
xogoxec344 avatar
флаг in
Это 4-я строка моего первого кодового блока. Первые 3 строки — это извлеченные переменные bash, чтобы сделать их немного более читабельными. Да, я понимаю, но, к сожалению, кажется, что можно смотреть либо на один интерфейс, либо на все сразу.Если бы я мог, я бы просто послушал два, которые обеспечивают путь к Интернету. Но для этого потребуется запустить два отдельных процесса tcpdump.
флаг in
Дамп каждого интерфейса должен потреблять меньше ресурсов ЦП, но будет работать в неразборчивом режиме.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.