Uma pergunta muito legal! Obrigado. Antigo, mas vai ajudar as pessoas aqui
Você pode usar cgroups com tc. Eu nunca ouvi falar sobre isso, mas depois do googling foi encontrado:
net_cls — this subsystem tags network packets with a class identifier (classid) that allows the Linux traffic controller ( tc) to identify packets originating from a particular cgroup task.
De acordo com isso, você deve trabalhar com o tc e obter estatísticas de lá (muitas ferramentas disponíveis).
Entre em contato com Alexey, talvez ele possa ajudá-lo com isso:)
Você pode usar o SELinux e iptables para estatísticas, mas limitar a largura de banda com cgroups - eu gosto dessa abordagem mais - tc parece feio para mim em alguns casos e não é ideal para integração.
O SELinux tem ganchos para rede e pode atribuir dados adicionais como rótulo a cada pacote de acordo com as etiquetas do processo, até mesmo capaz de transmitir para outro sistema e filtrar / log / obter estatísticas, fazer tudo o que puder com iptables usando SECMARK.
Se você ainda não está familiarizado com o SELinux, eu recomendo que você leia os guias RedHat / Fedora "Security-Enhanced Linux" e "SELinux FAQ", além disso há explicações e guias muito bons, posts de Daniel J. Walsh ( Dan Walsh) - pesquise no Google.
Além disso, muito bom (e melhor) ponto de partida para os novatos acompanharem vídeos no YouTube, tenho certeza de que você pode lidar com isso em cerca de três horas para entender tudo de que precisa:
- SELinux para Todos - Paul Wayper
- SELinux para Sysadmins - Paul Wayper
SELINUX É FÁCIL, NÃO FICHE PREOCUPADO