Pro Prozess Firewall?

18

Ich habe herumgelesen, kann aber anscheinend keine Möglichkeit finden, prozessspezifische Firewall-Regeln zu erstellen. Ich weiß, iptables --uid-owneraber das funktioniert nur für ausgehenden Verkehr. Ich habe Scripting betrachtet netstatund iptablesdies scheint aber schrecklich ineffizient , da , wenn ein Prozess nur dann aktiv für eine kleine Zeitrahmen ist das Skript könnte es verpassen. Grundsätzlich möchte ich bestimmte Einschränkungen in Bezug auf Port und DST für einen Prozess durchsetzen, während andere Prozesse davon unberührt bleiben. Irgendwelche Ideen?


Als Referenz kann Selinux genau das und es funktioniert ziemlich gut. Setup ist allerdings ein bisschen mühsam.

s3c
quelle
1
Vielleicht wird LXC (Linux Containers) den Trick machen? lxc.sourceforge.net
nsg
Was ist so schwierig an Selinux? Sicher, es gibt eine gewisse Lernkurve, aber es gibt großartige Tools, sowohl grafische als auch Befehlszeilen-Tools, die bei der Konfiguration helfen. Support ist im IRC unter #selinux sowie #fedora
Panther
Haben Sie versucht, stattdessen Douane zu verwenden? askubuntu.com/a/330259/46437
Aquarius Power
Die Firewall-GUI für iptables ermöglicht es Ihnen, genau das zu tun, und es ist ziemlich einfach zu bedienen.
BKilpat01

Antworten:

10

Ihre Frage ist sehr ähnlich zu /programming/5451206/linux-per-program-firewall-similar-to-windows-and-mac-counterparts

Es gab das --cmd-ownerEignermodul von for iptables, das jedoch entfernt wurde, da es nicht ordnungsgemäß funktionierte. Jetzt ist eine erste Beta-Version von Leopard Flower verfügbar, die das Problem durch einen User Space Daemon löst.

Im Allgemeinen ist eine prozessbasierte Firewall nur dann sehr nützlich, wenn Sie die Programme wirklich isolieren und einschränken. Hierfür sollten Sie sich Sicherheitslösungen wie TOMOYO Linux, SELinux, AppArmor, grsecurity, SMACK, ... ansehen.

Jofel
quelle
1

Einfach, starte deinen Prozess unter einem anderen Benutzer und benutze '--uid-owner' :)

jirib
quelle
1
Das war auch mein erster Gedanke, aber wie ich bemerkt habe, funktioniert es nicht für Hörprozesse.
S3C
Was ist genau deine Absicht? Um sicherzugehen, dass ein bestimmter Eigentümer / Prozess seine eigenen offenen Ports für eingehende / ausgehende Verbindungen hat?
Jirib