Wie kann ich unter Linux eine dienstspezifische Firewall konfigurieren?

Wie kann ich unter Linux eine dienstspezifische Firewall konfigurieren?

Wie könnte ich eine Art Firewall konfigurieren, die nur bestimmten Programmen die Nutzung der offenen Ports im System erlaubt (vorzugsweise RHEL)?

Wenn ich beispielsweise yumnormal eine Verbindung herstellen und Updates durchführen möchte, aber ausgehende Webanforderungen, wie z. B. das Browsen, blockieren möchte, müssen die Ports 80, 443, 53 und UDP-53 trotzdem geöffnet sein.

Allerdings müsste die Firewall zwischen yumeinem Webbrowser unterscheiden können.

Antwort1

iptableshat die Möglichkeit, den Benutzer des Programms zu überprüfen.

Durch die Verwendung von --uid-owneroder --gid-ownerFlags haben Sie die Möglichkeit, das Netzwerk auf bestimmte Benutzer (Root?) zu beschränken, und www-datadie Pakete Ihres Webservers (kann als ausgeführt werden) werden gelöscht.

Natürlich handelt es sich hierbei um Beschränkungen pro Benutzer/Gruppe und nicht pro Programm, aber die meisten Dienste laufen heute mit ihren eigenen Benutzern und Gruppen.

Beispiel:

iptables -I OUTPUT -m owner --uid-owner www-data -jDROP

Beispiel, das ausgehende Netzwerke auf alle außer Root beschränken würde:

iptables -P OUTPUT DROP
iptables -I OUTPUT -m owner --uid-owner root -jALLOW

Ein anderer Ansatz wäre, Regeln einzurichten SELinux(normalerweise mit RedHat-Produkten gebündelt). Ich persönlich denke, dass dies schwieriger zu verwalten wäre.

verwandte Informationen