Como permitir que usuários não raiz escutem na porta privilegiada?

11

Quero que o syslog seja executado como um usuário não root na minha caixa do linux. Isso impossibilita a ligação à porta 514 - porque é uma porta privilegiada. Existe alguma maneira de conceder ao usuário não administrador "foo" a capacidade de escutar na porta 514?

Dan Goldburt
fonte

Respostas:

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

Requer um kernel linux não antigo ( 2.6.24 ou posterior)

Cian
fonte
3

Você pode configurar rinetd(disponível na maioria, senão em todos os repositórios padrão da distribuição) para escutar na porta 514 e encaminhar conexões para outra porta (acima de 1024, por exemplo, 1514). Dessa forma, o processo do usuário não privilegiado pode escutar no 1514 e rinetdencaminhar as conexões para que ele pareça estar escutando no 514.

Isso funcionará apenas para conexões TCP. Se você precisar oferecer suporte ao UDP (ou qualquer outra coisa) dessa maneira, ou ao invés do TCP, poderá usar as regras de conversão do iptables para obter o mesmo efeito.

David Spillett
fonte
Oh, isso foi tão fácil. Aqui está um guia sobre como fazê-lo no Ubuntu: ubuntugeek.com/…
Ivan
2

Ouça em uma porta sem privilégios e use iptables dnat para redirecionar conexões.

korkman
fonte