Como posso impedir que os usuários acessem serviços vinculados ao localhost por meio do encaminhamento de porta SSH?

7

Eu quero poder oferecer contas SSH no meu servidor Linux para que as pessoas possam usar o tunelamento SSH. Todas as contas serão bloqueadas sem shell interativo, somente para fins de encapsulamento / encaminhamento de porta. Meu problema é que eu não quero que eles consigam acessar os serviços que estão vinculados ao host local apenas fazendo o encaminhamento de porta como o seguinte:

ssh account@server -L 9999:127.0.0.1:3306 & telnet localhost 9999

Isso daria a eles acesso à porta padrão do banco de dados MySQL. Como posso parar isso?

Eu vejo opções no arquivo de configuração do OpenSSH para permitir portas / hosts específicos, mas não para bloqueá-los. Qualquer ajuda seria muito apreciada!

    
por Dave Davidson 17.12.2011 / 11:01

1 resposta

1

Eu não tentei eu mesmo, mas as opções --uid-owner e --gid-owner para as regras iptables parecem permitir que você restrinja as conexões com base no UID e no GID. Em outras palavras, usuários específicos podem ser impedidos de fazer conexões de saída em uma determinada interface.

Então, talvez algo assim (não testado), para bloquear todo o acesso ao loopback:

iptables -A OUTPUT -o lo -m owner --uid-owner {USERNAME} -j REJECT

... ou se suas contas bloqueadas estiverem no mesmo grupo:

iptables -A OUTPUT -o lo -m owner --gid-owner {GROUPNAME} -j REJECT

Se você precisar de algo mais granular, este artigo do nixCraft tem um exemplo de como permitir algumas portas, mas não outras.

    
por 08.01.2012 / 04:06

Tags