Existe alguma maneira de permitir a criação de porta privilegiada?

0

Eu quero permitir que o usuário simples crie 161 portas. Uma das maneiras é:

setcap 'cap_net_bind_service=+ep' /home/user/bin/my_program

Mas desta forma é inapropriado para mim, porque setcap quebra 'RPATH', então não consigo iniciar o 'my_program'.

Talvez haja alguma maneira de resolver o problema. É possível dar esse privilégio para os usuários do ala?

    
por Rikitikitavi 23.04.2018 / 11:14

1 resposta

1

Parece que o que você quer é authbind . Eu vinculei a página da Wikipedia aqui em vez da página inicial, já que a página inicial é apenas uma página do gitweb para o repositório oficial e, portanto, é algo inútil para os usuários finais. Em suma, o authbind usa LD_PRELOAD para indireta a chamada bind() através de um programa auxiliar SUID, permitindo assim que os programas vinculem as portas reservadas. Certifique-se de restringir o acesso ao authbind a contas nas quais você confia e lembre-se de que ele permitirá que qualquer usuário que possa acessá-lo se vincule a qualquer porta de privilégio.

Como alternativa, se você não se importa com a segurança, é possível adicionar esta linha à sua configuração de sysctl no sistema em questão:

net.ipv4.ip_unpriveleged_port_start = 0

Isso removerá todo o conceito de portas privilegiadas do sistema, iniciando na próxima vez que você reinicializar.

Verifique se você é extremamente cuidadoso ao fazer isso, no entanto. Muitas das portas de baixo número são usadas para infra-estrutura central de rede, e esse acesso a elas por usuários sem privilégios é uma maneira fácil de permitir abusos. Especialmente, tenha cuidado se você usar o método sysctl, já que isso permitirá que qualquer pessoa se vincule a qualquer porta

.     
por 23.04.2018 / 21:21

Tags