SSH através do roteador para o servidor de arquivos interno

3

Esta é uma verdadeira pergunta para iniciantes, eu sei. Mas eu realmente não consigo entender minha terminologia para conseguir o que eu quero trabalhando.

E como eu quero fazer isso em um roteador no qual 40 a 50 pessoas confiam na Internet, minha abordagem usual de quebra de coisas até que funcione também não vai funcionar.

Então aqui está o que eu quero fazer. Eu tenho um roteador (uma caixa Debian com shorewall ) com um IP estático cable.example.com . Eu tenho um servidor de arquivos interno atribuído 192.168.0.3 . Eu posso atualmente ssh no roteador, e de lá ssh no filesever. No entanto, quero disponibilizar o servidor de arquivos externamente para mim e para os outros com um cliente sftp típico.

Alguém poderia pelo menos me dar uma ideia do que estou procurando? Tunneling, tunneling in, encaminhamento de portas, iptables - todos eles parecem descrever o que eu quero fazer, mas não consigo ter uma ideia de como fazê-lo funcionar.

    
por Will Haynes 02.12.2013 / 17:56

2 respostas

3

Você pode fazer isso através do recurso ProxyCommand do ssh. Adicione o seguinte ao seu arquivo $HOME/.ssh/config . Crie-o se não existir apenas com este conteúdo:

Host remoteserverX
    User userint
    ProxyCommand ssh userext@externalserver nc remoteserverX %p
Host remoteserverY
    User userint
    ProxyCommand ssh userext@externalserver nc remoteserverY %p

Você se conecta aos diferentes servidores remotos internos assim:

$ ssh remoteserverX

-or-

$ ssh remoteserverY

Esta é a ponta do iceberg no que diz respeito a esse recurso. Veja este P & D de Perguntas e Respostas intitulado: , para mais detalhes.

NOTA: O método acima está fazendo uso de uma ferramenta chamada nc (netcat), que deve estar nos repositórios de qualquer das principais distribuições.

Isso não é exatamente o mesmo que o redirecionamento do Nginx, você está tunelando pelo sistema externo para acessar o sistema interno, mas tem um efeito semelhante.

Exemplos complexos

  1. Uma estrofe Host , muitos hosts.

    Host *.mydom.com *
        ProxyCommand ssh externalserver nc %h %p
    
  2. Uma estrofe "Hosts" para muitos usuários.

    Adicione a sub-rotina Hosts ao arquivo /etc/ssh/ssh_config do sistema para que qualquer pessoa que faça login na caixa possa utilizá-lo.

por 02.12.2013 / 18:47
0

Haverá várias abordagens dependendo de como você deseja se conectar ao servidor de arquivos.
Uma opção é transportar o tráfego FTP para frente para que, quando você fizer o FTP para o "roteador", ele passe para o servidor de arquivos. Os documentos do shorewall podem ser úteis aqui.
link
O único problema com isso é que expõe seu servidor de arquivos ao tráfego externo. Nesse caso, você pode alterar a porta usada no roteador para conectar-se, por exemplo, Use a porta 2121 no roteador e envie-a para a porta 21 do servidor de arquivos e altere a porta no seu cliente FTP para refletir isso.

    
por 02.12.2013 / 18:23