SSH tunneling e port forwarding

1

Peço que você me ajude a estabelecer túneis para atender às seguintes necessidades:

Existe o servidor LocalTest, no qual eu sou root, então eu posso fazer qualquer coisa (Debian SSH). Este servidor está habilitado para acessar (a filtragem de IP está presente na outra parte) a porta 443 de um servidor que podemos chamar de WebserviceServer. Quero habilitar a pessoa que não pode abrir o SSH para o localtest para acessar o WebserviceServer: 443. Portanto, preciso abrir uma porta do servidor no Localtest (por exemplo, 10000) e encaminhar todo o conteúdo para o WebserviceServer: 443. Esta é a primeira tarefa.

A segunda tarefa é que em uma porta específica LocalTest está escutando como servidor de serviços da Web (8099). Eu preciso encaminhá-lo tempo a tempo para a porta de diferentes estações de trabalho por motivos de teste. Portanto, todo o tráfego e conexão que chegam ao LocalTest: 8099 precisam ser encaminhados para o somestation (chame-o de John): someport (5000).

Você poderia me ajudar com os comandos ssh que eu preciso enviar no Localtest para atender às necessidades?

    
por Gábor Lipták 14.10.2010 / 11:21

3 respostas

1

Ambos os seus problemas não me parecem que o tunelamento ssh seria a melhor solução.

mas ainda aqui estão algumas das ideias que desenvolvi para alcançar estes objetivos:

Problema 1: usando LocalTest como um proxy reverso para WebserviceServer

localtest:~ $ ssh -L *:10000:webserviceserver:443 localhost

certifique-se de permitir "GatewayPorts" e "AllowTcpForwarding" em / etc / ssh / sshd_config em LocalTest e o sshd é reiniciado.

Explicação

isso abre uma conexão do localtest para ele mesmo e ao mesmo tempo cria um túnel escutando na porta 10000 em todas as interfaces do localtest redirecionando o tráfego para a porta 443 do webserviceserver

Problema 2: redirecionando o tráfego para testar estações de trabalho

com ssh, isso é na verdade o mesmo que o Problema 1

localtest:~ $ ssh -L *:8099:somestation1:5000 localhost

se você quiser se conectar a outra estação de trabalho de teste, simplesmente encerre a primeira conexão e use algo como

localtest:~ $ ssh -L *:8099:somestation2:5002 localhost

Explicação

como é basicamente a mesma solução do problema 1, ele também tem a mesma explicação (apenas diferentes hosts e portas :-))

algumas reflexões

Tenha em mente que ambas as soluções anteriores abrem os sistemas de destino (webserviceserver, somestationX) para qualquer pessoa com acesso ao LocalTest

E como mencionei no começo, não acho que o ssh seja a ferramenta certa para fazer isso por alguns motivos. Alguns deles sendo:

  • com ssh você só pode tunelar o tráfego tcp facilmente
  • ssh raramente é a melhor solução para túneis permanentes
  • O problema 1 soa mais como um caso para um proxy reverso para mim (ou iptables como mencionado por outros)
  • O problema 2 definitivamente soa como um caso para o iptables para mim

Eu pessoalmente configurei um script simples para o segundo problema que permite que você redefina as regras do iptables para cada sistema de teste que você quer usar, algo como

localtest:~ # reset_target somestation

esse script teria que excluir um redirecionamento antigo (para outra estação de trabalho de teste) no iptables e depois configurar o novo. Eu não sou muito fluente com a sintaxe do iptables no momento e então eu não posso fornecer tal script imediatamente, mas tenho certeza que alguém aqui poderia te ajudar com algo assim, se necessário.

    
por 15.10.2010 / 21:48
0

O que parece ser o seu pedido deve ser conseguido usando IPTables e encaminhamento de porta simples - pelo menos a primeira parte.

Quanto à segunda parte, você afirma que na porta 8099 existe um 'servidor de serviço web', cujo tráfego você gostaria de encaminhar para 'John'. Eu suponho que você ainda deseja permitir que o 'servidor de serviço da web' processe as informações. Nesse caso, uma ponte entre o 'servidor de serviços da Web' e o 'João' pode ser o que você está procurando. Para isso, você pode usar provavelmente o netcat.

Saiba mais sobre o encaminhamento de portas com o IPTables: link

Saiba mais sobre como usar o Netcat: link (os relés do Netcat são o que você quer, acredito) .

Espero que esta informação seja de alguma ajuda.

    
por 14.10.2010 / 11:39
0

T Você vai querer usar o sinalizador -L ou -R com o apropriado: IP: especificado, bem como habilitar as portas do Gateway na configuração do sshd

    
por 14.10.2010 / 13:11