Jak zezwolić użytkownikom innym niż root na słuchanie na uprzywilejowanym porcie?

11

Chcę, aby syslog działał jako użytkownik inny niż root na moim Linux-ie. Uniemożliwia to powiązanie z portem 514 - ponieważ jest to port uprzywilejowany. Czy jest jakiś sposób, aby przyznać użytkownikowi niebędącemu administratorowi „foo” możliwość nasłuchiwania na porcie 514?

Dan Goldburt
źródło

Odpowiedzi:

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

Wymaga nie starożytnego jądra Linuxa ( 2.6.24 lub nowszego)

Cian
źródło
3

Możesz skonfigurować rinetd(dostępne w większości, jeśli nie wszystkie, standardowe repozytoria dystrybucji), aby nasłuchiwał na porcie 514 i przekazywał połączenia do innego portu (powyżej 1024, powiedzmy 1514). W ten sposób nieuprzywilejowany proces użytkownika może nasłuchiwać w 1514 i rinetdprzekierowywać połączenia, więc wydaje się, że nasłuchuje w 514.

Działa to jednak tylko w przypadku połączeń TCP. Jeśli potrzebujesz obsługiwać UDP (lub cokolwiek innego) w ten sposób, jak również zamiast TCP, możesz użyć reguł translacji iptables, aby osiągnąć ten sam efekt.

David Spillett
źródło
Och, to było takie proste. Oto przewodnik, jak to zrobić w Ubuntu: ubuntugeek.com/…
Ivan
2

Nasłuchuj na nieuprzywilejowanym porcie i używaj iptables dnat do przekierowywania połączeń.

Korkman
źródło