LINUX.ORG.RU
ФорумAdmin

Мониторинг траффика


0

0

Нужно следить за всеми прикладными программами и сервисами которые устанавливают сетевые соединения. К сожалению я не видел утилит с такой функциональностью. Все мониторят трафик безотносительно его создателя 8)

Решил написать свое решение, но слегка обломался - в линуксе эту информацию можно получить через файлы /proc/net/tcp|udp|raw, а еще и в каждом /proc/<pid>/fd, но парзинг их каждый раз при получении пакета (даже если использовать кеш и обновлять данные только для новых соединений) создает огромный оверхед (около 30 раз).. 8((

Есть ли программы которые это реализуют, или может есть более быстрый способ получить эти данные? Сейчас смотрю на модуль ip_queue и NETLINK сокеты. Но что-то помоему это не совсем то.

★★★★
Ответ на: комментарий от anonymous

Хм.. а как netflow поможет узнать что 10 мегабайт было передано именно через /usr/bin/pureftpd а не через что-то другое?

Можно подробнее пожалуйста?

OxiD ★★★★
() автор топика

http://fireflier.sourceforge.net/features.html

Filtering by application:
FireFlier is also capable of filtering by application. So you are for example able to simply allow your ICQ Client to do anything it wants.

http://fireflier.sourceforge.net/requirements.html
ip_queue
FireFlier needs the userspace queuing facility of the kernel to do its work. This module is part of the official kernel release, though you will have to activate the experimental code options (Code maturity level options --> Prompt for development and/or incomplete code/drivers)
Afterwards you will find the userspace queueing option available (Network options --> IP: netfilter configuration --> Userspace queueing via NETLINK)
Although this code is marked as experimental I never had any problems with it. (which is of course no guarantee).

sdio ★★★★★
()
Ответ на: комментарий от sdio

Ну да, именно эту технологиюи хочу заюзать. Но проблема что я не вижу вменяемых док по ip_queue. Т.е их вообщев гугле нет 8(

Можно ковырять тот же fireflier, но что-то без доков все равно не охото. А смотреть сорцы netfilter лень. Хотя видимо придется.

OxiD ★★★★
() автор топика
Ответ на: комментарий от andyS1976

Насколько я понял нет такой возможности и у ip_queue.Тот же fireflier ищет название программы "вручную" через /proc.

Да, и видимо это на уровне ядра достсточно сложно сделать, т.к пакеты приходят на опредленный файловый дескриптор (грубо говоря), который может быть открыт одновременно в нескольких программах, передан через unix-socket например.

OxiD ★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.