Eine sehr schöne Frage! Vielen Dank. Altes, aber wird den Leuten hier helfen
A. Sie können cgroups mit tc verwenden. Ich habe noch nie davon gehört, aber nach dem googeln habe ich folgendes gefunden:
net_cls - Dieses Subsystem markiert Netzwerkpakete mit einer Klassenkennung (classid), mit der der Linux-Verkehrscontroller (tc) Pakete identifizieren kann, die von einer bestimmten cgroup-Task stammen.
Demnach sollten Sie mit tc arbeiten und Statistiken von dort erhalten (viele Tools verfügbar).
http://patchwork.ozlabs.org/patch/194809/
Kontaktiere Alexey, vielleicht kann er dir dabei helfen :)
B. Sie können SELinux und iptables für Statistiken verwenden, aber die Bandbreite bei cgroups begrenzen - ich mag diesen Ansatz mehr - tc sieht für mich in einigen Fällen hässlich aus und ist für die Integration nicht optimal.
SELinux verfügt über Hooks für das Netzwerk und kann jedem Paket zusätzliche Daten als Label gemäß den Prozess-Labels zuweisen. Es kann sogar an ein anderes System übertragen und Statistiken filtern / protokollieren / abrufen. Mit SECMARK können Sie mit iptables alles tun, was Sie können.
http://selinuxproject.org/page/NB_Networking
Wenn Sie noch nicht mit SELinux vertraut sind, empfehle ich Ihnen, die RedHat / Fedora-Anleitungen "Security-Enhanced Linux" und "SELinux FAQ" zu lesen. Außerdem gibt es sehr schöne Erklärungen und Anleitungen sowie Blog-Beiträge von Daniel J. Walsh (Dan Walsh). - google dafür.
Ein sehr guter (und besserer) Ausgangspunkt für Neulinge sind Videos auf YouTube. Ich bin sicher, dass Sie in etwa drei Stunden damit fertig werden können, um alles zu verstehen, was Sie brauchen:
- SELinux für alle - Paul Wayper
- SELinux für Sysadmins - Paul Wayper
SELINUX IST EINFACH, keine Angst