[РЕШЕНО] Отследить процесс, инициирующий сетевое соединение.

При загрузке системы все нормально до того момента, пока не запускается gui. DE, как такового, нет, стоит compiz-standalone + pcmanfm, менеджер сессии slim. Как только запускается gui, в выводе netstat -nt видим следующее:
tcp        0      1 192.168.1.4:54596       88.191.250.18:80        TIME_WAIT
~ % host 212.85.158.13
13.158.85.212.in-addr.arpa domain name pointer armagnac.tuxfamily.net.
tcp        0      0 192.168.1.4:38502       88.191.250.171:80       TIME_WAIT
~ % host 88.191.250.171
171.250.191.88.in-addr.arpa domain name pointer malibu.tuxfamily.net.
tcp        0      0 192.168.1.4:60830       212.85.158.13:80        TIME_WAIT
~ % host 88.191.250.18
18.250.191.88.in-addr.arpa domain name pointer absinthe.tuxfamily.net.
Что-то куда-то ломится при старте gui (по крайней мере до входа в gui, в консоли тишина). Куда понятно, но вот как определить инициирующий процесс? Причем ломится не всегда (судя по выводу), но в большинстве случаев, каждый раз на один из трех адресов (пока только три удалось зафиксировать). Нашел случайно, решил посмотреть открытые порты.
# netstat -tnp
Ошибки в тексте-неповторимый стиль автора©
Спасибо. Процессом оказался cairo-dock. Самое интересное, что модули в нем все отключены, просто панель.
Добавлю к указанному indeviral, почти то же самое, но в разных вариациях - netstat -tvaep, netstat -A inet --program
Но, имхо, мне больше нравится lsof -i .... и можно еще использовать ss с разными фильтрами
Ошибки не исчезают с опытом - они просто умнеют
Немного добавлю. netstat -tnp позволяет увидеть наименование приложения только в момент активности. Если уже TIME_WAIT, то опция -p бесполезна. Это работает только в момент целевой активности. Задача конечно решена, но хотелось бы еще понять: есть ли варианты по типу логирования сетевой активности.
[email protected]
но хотелось бы еще понять: есть ли варианты по типу логирования сетевой активности
Смотря что нужно и в каких ситуациях, если просто сетевая активность и плюс к этому побольше узнать о процессе (можно это назвать и логированием), то можно и strace, но это требует знание конкретного процесса/приложения, которое лезет в сеть …. а поэтому нужно сначала выявить этот процесс, например, тем же netstat, lsof и др., а затем уже или приаттачиться к процессу или запустить приложение/процесс через strace.
Можно использовать и sysdig (полный временной дамп всех процессов в системе), но … хорошо, но сложно ...

PS - хотя тем же sysdig в упрощенном режиме в режиме реального времени очень очень удобно выявить эти приложения, например, запускаю
sudo sysdig -c topprocs_net
и вижу пустой вывод (сетевой активности нет)
Bytes               Process             PID
----------------------------------------------------
но стоит запустить обновление браузера и появляется строчка
Bytes               Process             PID
----------------------------------------------------
3.91KB              Socket              734
Смотрим что это за процесс PID=734
cat /proc/734/status | head -1 | awk '{print $2}'
palemoon
или проще
ls -l /proc/734/exe
lrwxrwxrwx 1 vasek users 0 сен 29 07:04 /proc/734/exe -> /usr/lib/palemoon/palemoon
и видим, что palemoon

PS - Используя те же strace, sysdig можно даже исследовать текстовые данные в формате ASCII, которыми обменивается этот процесс.

Есть и другие способы и утилиты, но ... это уже совсем другая тема ...
Ошибки не исчезают с опытом - они просто умнеют
vasek
PS - хотя тем же sysdig в упрощенном режиме в режиме реального времени очень очень удобно выявить эти приложения, например, запускаю
sudo sysdig -c topprocs_net
Я использовал для этой цели nethogs в отдельной консоли, но в нем не показывается цель (целевой адрес). Потом отрезал целевые сети (которые видел в выводе netsat -tnp) iptables'ом (в выводе netstat -tnp вместо TIME_WAIT стало SYN_SENT) и после этого удалось однозначно установить процесс при помощи netstat -tnp. А с strace идея хорошая, не додумался я что-то до этого.
Можно еще с помощью sudo sysdig -c topprocs_net или sudo nethogs выловить активные процессы и включая их по одному, с помощью tcpdump или wireshark, найти целевой.
P.s.: Просто думал что есть какое-нибудь готовое комплексное решение.
[email protected]
Просто думал что есть какое-нибудь готовое комплексное решение.
Все зависит от целей и задач. Но единого 100% комплексного решения быть не может в принципе, так как нет комплексных целей и задач ... хотя близкое к этому найти можно, например, если часто решаешь похожие задачи.

PS - имхо, иногда утилита ss, имеющая много разных опций, намного информативнее и полезнее netstat ... но опять же все относительно и зависит от задачи. Плюс к этому есть много и других утилит ...
Ошибки не исчезают с опытом - они просто умнеют
 
Зарегистрироваться или войдите чтобы оставить сообщение.