É possível limitar quais hosts são acessíveis através do tunelamento SSH?

1

Eu tenho uma caixa que executa um servidor ssh e um servidor da Web.

  • Eu gostaria de impedir que pessoas com contas ssh usassem essa caixa como um proxy anônimo para o resto da Internet (por exemplo, criando um túnel e usando-o como um proxy SOCKS).
  • Eu gostaria de permitir que pessoas com contas ssh usem essa caixa como proxy para acessar o servidor da Web local.

Então, por exemplo:

  1. Abra um túnel: ssh -D1234 myhost.com
  2. Configure o navegador para usar localhost: 1234 como proxy
  3. Acessar myhost.com por meio desse proxy deve funcionar
  4. Acessar qualquer outro host por meio desse proxy deve falhar

Suponho que isso poderia ser feito de maneira bruta simplesmente fechando a porta de saída 80, mas isso (a) não impediria que as pessoas fizessem tunelamento de tráfego não-web e (b) impediria que qualquer usuário na caixa acessasse sites. É uma maneira mais refinada de fazer isso, idealmente, limitando o que o sshd concordará com o túnel, possível?

    
por Mala 15.03.2015 / 03:01

2 respostas

1

Você pode limitar os hosts que podem ser acessados via túnel com a opção PermitOpen no arquivo sshd_config.

PermitOpen <TheIPYourWebServerListensOn>:80

Se você usar localhost como TheIPYourWebServerListensOn , provavelmente precisará instruir seu cliente proxy para usá-lo mesmo para solicitações endereçadas a localhost . Algo que pode ser confuso.

Além disso, tenha em mente que, em relação ao SOCKS5, a resolução do DNS acontece / pode acontecer no lado do proxy, o que permite configurações muito convenientes, como definir aliases locais para o servidor no arquivo de hosts.

Esqueci de dizer que você pode adicionar várias combinações host: port. Você só precisa separá-los com espaço em branco. A página do manual sshd_config é a referência aqui. Espero que isso ajude!

    
por 15.03.2015 / 11:03
0

Com PermitOpen em sshd_config, você certamente pode obter esse tipo de configuração.

No entanto, lembre-se de que desabilitar o encaminhamento de porta não melhorará a segurança, se você ainda permitir o login do shell dos usuários: eles podem acessar a Internet diretamente do servidor e até mesmo instalar seus próprios encaminhadores. Você deve ter confiança em seus usuários do shell de qualquer maneira.

Se você precisar impedir que os usuários acessem determinados intervalos de portas ou até mesmo toda a Internet diretamente (permita somente o uso de serviços locais, por exemplo, enviar e receber e-mails), use os módulos de correspondência estendida iptables , precisamente o módulo proprietário , que permite filtrar os pacotes com base nos proprietários uid ou gid e até mesmo pelo nome do processo.

    
por 15.03.2015 / 11:29