Wie kann ein Benutzer ohne Rootberechtigung den privilegierten Port abhören?

11

Ich möchte, dass Syslog als Nicht-Root-Benutzer auf meiner Linux-Box ausgeführt wird. Das macht es unmöglich, sich an Port 514 zu binden - denn das ist ein privilegierter Port. Gibt es eine Möglichkeit, Nicht-Administrator-Benutzern "foo" die Möglichkeit zu geben, Port 514 abzuhören?

Dan Goldburt
quelle

Antworten:

10
setcap 'cap_net_bind_service=+ep' /path/to/syslogd

Benötigt einen nicht alten Linux-Kernel ( 2.6.24 oder höher)

Cian
quelle
3

Sie können konfigurieren rinetd(verfügbar in den meisten, wenn nicht allen Standard-Repositorys der Distribution), Port 514 abzuhören und Verbindungen an einen anderen Port weiterzuleiten (über 1024, z. B. 1514). Auf diese Weise kann der nicht privilegierte Benutzerprozess 1514 abhören und rinetdleitet Verbindungen weiter, sodass er anscheinend 514 abhört.

Dies funktioniert jedoch nur für TCP-Verbindungen. Wenn Sie UDP (oder etwas anderes) auf diese Weise sowie oder anstelle von TCP unterstützen müssen, können Sie die Übersetzungsregeln von iptables verwenden, um den gleichen Effekt zu erzielen.

David Spillett
quelle
Oh das war so einfach. Hier ist eine Anleitung, wie es in Ubuntu geht: ubuntugeek.com/…
Ivan
2

Lauschen Sie einem nicht privilegierten Port und verwenden Sie iptables dnat, um Verbindungen umzuleiten.

Korkman
quelle