Я побежал tcpdump
на узле, который я могу видеть множество исходящих TCP-соединений с определенным хостом (внутри моей сети) на определенном порту (8086). Я хотел бы знать, какой процесс устанавливает эти связи.
Я использовал:
while true; do ss -ntap '{ dport :8086 }'; sleep 0.1; done
однако я ничего не вижу, даже когда tcpdump перехватывает исходящие запросы к этому порту.
Я пробовал использовать auditd для захвата их на уровне ядра, как я думал ss
может не захватывать эти маленький Запросы.
Я использовал: auditctl -A exit,always -F arch=x86_64 -S connect -S sendmsg -S sendto -k send
и использовал ausearch -k send -i
искать эти запросы, но опять же безрезультатно.
Мне интересно, как могло случиться так, что TCP-соединения выполнялись с внешним хостом, не захваченные auditd?
Заранее спасибо!
Исходный адрес назначения и порт назначения могут быть другими, а не tcp/8086
, но с DNAT
правило iptables в nat/OUTPUT
переписан на другой адрес и другой порт. в tcpdump
capture вы видите пакеты после трансляции iptables.
Это может быть модуль ядра, а не приложение пользовательского пространства. В этом случае я не уверен, что auditd
может показать что угодно.
Это также может быть необработанный сокет, когда пакеты создаются в приложении. Я думаю, что в этом случае вы можете перечислить сырые сокеты с помощью ss --raw
команда.
Это может быть другое сетевое пространство имен, но не основное.
Этот трафик может быть перенаправленным, а не локальным. В таком случае ss
и auditd
ничего не показывать.