aplicação de redirecionamento ouvindo em localhost para ouvir em interface externa / alternativa para bindp (libindp.so)

2
  • imagine um aplicativo de servidor que ouça apenas no host local,
  • que não tem configurações para ouvir em outras interfaces
  • alguém quer forçar que ele ouça em outras interfaces como eth0

bindp (libindp.so) pode fazer isso. No entanto, ele não está disponível nos repositórios da Debian, o que o torna inconveniente. Por isso estou perguntando, existem alternativas ao bindp para arquivar o mesmo objetivo?

    
por adrelanos 22.09.2016 / 06:22

2 respostas

1

Isso já foi feito uma dúzia de vezes e uma resposta aceitável é usar o iptables:

sysctl -w net.ipv4.conf.all.route_localnet=1 
iptables -t nat -I PREROUTING -p tcp --dport 80 -j DNAT --to 127.0.0.1:8080

O primeiro comando é permitir redirecionamentos da rede externa para a rede interna (que é desativada por razões de segurança) e o segundo é fazer o redirecionamento (claro, você tem que adaptar as portas ao seu caso específico que você não explicou o que quer que seja).

Outra solução poderia ser usar OpenSSH com o redirecionamento de porta local, que permite fazer basicamente a mesma coisa, mas sem desabilitar a proteção do kernel (não estou detalhando essa, pois a outra solução já funciona).

Dependendo do protocolo que seu serviço de limite local está usando, você também pode usar nginx como um proxy reverso ou sshl como um multiplexador.

Finalmente, socat , stunnel e amigos também podem ser usados para isso.

A vantagem da solução iptables é que ela é in-kernel e, portanto, mais rápida.

Aviso

Como o SE é um sistema em que responder com precisão é considerado melhor do que tentar realmente resolver problemas, tentei responder à pergunta. No entanto, dada a sua descrição, a qual falta detalhes, suspeito que você esteja em um desses dois casos:

  1. O serviço pode ser configurado para escutar uma interface que pode ser acessada pela palavra, mas você não sabe como, nesse caso, você deve ter descrito o serviço em si e perguntar como disponibilizá-lo de fora.
  2. Ou o serviço não deve ser acessado por motivos técnicos ou de segurança.

Mas não posso ser mais preciso se não souber qual serviço é.

    
por 02.10.2016 / 11:38
0

ferramenta socat ( Pacote Debian ) pode ajudar:

socat -d -d TCP4-LISTEN:80,bind=192.168.1.1,fork TCP4:localhost:80
    
por 02.10.2016 / 10:50