Blockieren Sie ausgehende Verbindungen, um Uids zu zertifizieren (Root, Apache, Niemand).

8

Wie können Sie mit iptables unter CentOS 5 und 6 Linux verhindern, dass Prozesse, die als Root , Apache oder niemand ausgeführt werden , ausgehende Verbindungen initiieren?

Unter CentOS 5 Linux habe ich versucht, diese Zeilen in / etc / sysconfig / iptables einzufügen:

-A OUTPUT -m owner --uid-owner root -j DROP
-A OUTPUT -m owner --uid-owner apache -j DROP
-A OUTPUT -m owner --uid-owner nobody -j DROP

bekomme aber leider den fehler:

# sudo service iptables restart
iptables: Flushing firewall rules:                         [  OK  ]
iptables: Setting chains to policy ACCEPT: filter          [  OK  ]
iptables: Unloading modules:                               [  OK  ]
iptables: Applying firewall rules: iptables-restore v1.4.7: owner: Bad value for "--uid-owner" option: "apache"
Error occurred at line: 27
Try `iptables-restore -h' or 'iptables-restore --help' for more information.
                                                           [FAILED]
Alexander Farber
quelle
Sie können es nicht mit iptables tun. iptables überprüft nur die IP-Pakete und es gibt dort keine Informationen über die UID / GID. iptables können Pakete nur durch die Quell- / Zielfelder, Ports, ... blockieren
Goez
Ich weiß, dass OpenBSDs pf das kann. Und auch in Linux iptables scheint es den -m-Besitzer zu geben. Also liegst du vielleicht falsch?
Alexander Farber
Wenn ich meine Manpage überprüfe, steht -m für Übereinstimmung (Modul) und nicht für den Eigentümer. Vielleicht gibt es ein Modul für den Eigentümer des Prozesses, nicht sicher.
Goez
Nach meinem Verständnis sagt "-m Besitzer" zu iptables: "Bitte laden Sie das 'Besitzer'-Modul, damit wir Dinge tun können"
Alexander Farber
gerade überprüft, gibt es in der Tat ein Besitzermodul. Noch nie davon gehört. Aber es funktioniert mit numerischen IDs, so dass er seine Regel ändern muss
Goez

Antworten:

8

Versuchen Sie, die numerische UID anstelle des Namens zu verwenden. Zum Beispiel:

-A OUTPUT -m owner --uid-owner 400 -j DROP

anstatt

-A OUTPUT -m owner --uid-owner apache -j DROP

Sie finden die UID durch Eingabe

id user
Goez
quelle