Como permitir que usuário não root ouça em porta privilegiada?

11

Eu quero que o syslog seja executado como um usuário não-root na minha caixa linux. Isso impossibilita a conexão com a porta 514 - porque essa é uma porta privilegiada. Existe alguma maneira eu posso conceder ao usuário não administrador "foo" a capacidade de ouvir na porta 514?

    
por Dan Goldburt 17.04.2010 / 22:58

4 respostas

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

Requer um kernel Linux não antigo ( 2.6.24 ou mais tarde)

    
por 18.04.2010 / 00:45
3

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

Isso funcionará apenas para conexões TCP. Se você precisar suportar UDP (ou qualquer outra coisa) dessa forma, bem como ou em vez de TCP, você pode usar as regras de conversão do iptables para obter o mesmo efeito.

    
por 17.04.2010 / 23:57
2

Apenas encontrei uma discussão muito boa sobre isso aqui: link

Não parece fácil

    
por 17.04.2010 / 23:01
2

Ouça em uma porta não privilegiada e use o iptables dnat para redirecionar as conexões.

    
por 18.04.2010 / 00:22