У меня есть несколько пользователей на компьютере под управлением Linux (точнее, Ubuntu Lucid).
Мне нужно увидеть, какой сетевой трафик они генерируют на конкретном интерфейсе.
Iptables может соответствовать исходящим пакетам, поэтому я мог создавать цепочки для каждого пользователя, чтобы иметь возможность подсчитывать исходящий сетевой трафик. Однако входящий трафик тоже значителен.
У меня есть несколько вариантов: - Написание нового соответствия iptables для входящих пакетов - Написание нового модуля iptables, который сочетает в себе сопоставление исходящих пакетов с пользователем и отслеживание соединений - Написание драйвера TUN / TAP, который каким-то образом может идентифицировать процесс отправителя / получателя и пользователя, и написать лог -...
Как лучше всего это сделать? Есть ли какие-нибудь решения для этого?
Заранее спасибо.
Мне удалось в этом разобраться.
Я написал библиотеку LD_PRELOAD, которая переопределяет семейства функций send, recv, read, write и регистрирует эти операции в сокетах.
Исходный код очень экспериментальный и небезопасный, но все же я выложил его на SourceForge: