Comment permettre à un utilisateur non root d'écouter sur un port privilégié?

11

Je veux que syslog s'exécute en tant qu'utilisateur non root sur ma boîte Linux. Cela rend impossible la liaison avec le port 514 - car c'est un port privilégié. Existe-t-il un moyen d'accorder à l'utilisateur non administrateur "foo" la possibilité d'écouter sur le port 514?

Dan Goldburt
la source

Réponses:

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

Nécessite un noyau Linux non ancien ( 2.6.24 ou version ultérieure)

Cian
la source
3

Vous pouvez configurer rinetd(disponible dans la plupart, sinon la totalité, des référentiels standard de distribution) pour écouter sur le port 514 et transférer les connexions vers un autre port (au-dessus de 1024, disons 1514). De cette façon, le processus utilisateur non privilégié peut écouter sur 1514 et rinetdtransférer les connexions de sorte qu'il semble écouter sur 514.

Cela ne fonctionnera cependant que pour les connexions TCP. Si vous devez prendre en charge UDP (ou toute autre chose) de cette manière ainsi que ou au lieu de TCP, vous pouvez utiliser des règles de traduction iptables pour obtenir le même effet.

David Spillett
la source
Oh, c'était si facile. Voici un guide sur la façon de le faire dans Ubuntu: ubuntugeek.com/…
Ivan
2

Écoutez sur un port non privilégié et utilisez iptables dnat pour rediriger les connexions.

korkman
la source