Autor Tópico: "redir" duas portas para duas portas  (Lida 3705 vezes)

Offline bred81

  • Usuário Ubuntu
  • *
  • Mensagens: 971
  • HAN?!
    • Ver perfil
"redir" duas portas para duas portas
« Online: 31 de Maio de 2013, 15:12 »
Então, pessoal, eu to com a seguinte necessidade:
Preciso redirecionar o tráfego da porta 8081 para 8080 e da 1522 pra 1521 (sim, é o oracle xe).
Com o comando redir (sudo apt-get install redir), é só:
Código: [Selecionar]
redir --syslog --lport=x --cport=y
No caso, se eu fizer o comando duas vezes, ele diz que o bind já está sendo usado.
Para contornar isso, poderia fazer:
Código: [Selecionar]
redir --syslog --lport=8081,1522 --cport=8080,1521???
O redirecionamento da porta 8081 está funcionando, mas, não tenho como testar, hoje, o da prota 1522. Talvez só no final da semana que vem.
« Última modificação: 04 de Junho de 2013, 17:27 por bred81 »
O que o Mario foi fazer no pscicólogo?
- Ele estava passando por uma fase difícil...

Offline zekkerj

  • Usuário Ubuntu
  • *
  • Mensagens: 19.735
  • Gratidão gera gratidão, lamúria atrai lamúria...
    • Ver perfil
    • Blog do Zekke
Re: "redir" duas portas para duas portas
« Resposta #1 Online: 31 de Maio de 2013, 16:09 »
Desculpe, vc quer direcionar de onde pra onde?
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

Offline bred81

  • Usuário Ubuntu
  • *
  • Mensagens: 971
  • HAN?!
    • Ver perfil
Re: "redir" duas portas para duas portas
« Resposta #2 Online: 01 de Junho de 2013, 08:45 »
8081 pra 8080 e 1522 pra 1521
O que o Mario foi fazer no pscicólogo?
- Ele estava passando por uma fase difícil...

Offline zekkerj

  • Usuário Ubuntu
  • *
  • Mensagens: 19.735
  • Gratidão gera gratidão, lamúria atrai lamúria...
    • Ver perfil
    • Blog do Zekke
Re: "redir" duas portas para duas portas
« Resposta #3 Online: 01 de Junho de 2013, 12:21 »
Mas de onde pra onde? É na própria máquina? Dá pra fazer redirecionamentos com o iptables (é uma linha, no máximo 2) mas antes é preciso saber qual máquina é o destino do redirecionamento. Além disso, é preciso saber em que condições deve ser redirecionado, p.ex. se vem da rede local, deve redirecionar ou não?
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

Offline bred81

  • Usuário Ubuntu
  • *
  • Mensagens: 971
  • HAN?!
    • Ver perfil
Re: "redir" duas portas para duas portas
« Resposta #4 Online: 01 de Junho de 2013, 16:35 »
Mas de onde pra onde? É na própria máquina? Dá pra fazer redirecionamentos com o iptables (é uma linha, no máximo 2) mas antes é preciso saber qual máquina é o destino do redirecionamento. Além disso, é preciso saber em que condições deve ser redirecionado, p.ex. se vem da rede local, deve redirecionar ou não?
Perdão, está certíssimo. Eu achei que dizer "oracle-xe" ia responder porque era só isso que estava pensando. Vou explicar um pouco mais:
Eu estou instalando o Oracle-XE 10 (último com 32b) numa máquina virtual (virtual-box) gerenciada pelo Vagrant. Sua configuração padrão é fazer NAT. Por causa disso, preciso abrir algumas portas.
O APEX do Oracle roda na porta 8080 e o listener na porta 1521. Infelizmente, devido a sei-lá-o-que (não entendo nem porque alguém vai querer usar Oracle, mas, tudo bem), ele só aceita conexões loocalhost para estes serviços. Por causa disso, liberei o tráfego pelas portas 8081 e 1522, dentro dessa máquina, para ela mesma, devo redirecionar para a 8080 e 1521, para ser ele acessando ele mesmo.
Quando usei o comando acima, a porta 8081 estava sendo redirecionada para a 8080 e estava funcionando, mas, não estava podendo testar o listener, pois, a aplicação que usa ela ainda não está configurada.
Poder ser por iptables, até pode, desde que ele acesse como "localhost" OU alguém saiba como retirar essa restrição do Oracle...
(Sim, to fazendo um workaround)
O que o Mario foi fazer no pscicólogo?
- Ele estava passando por uma fase difícil...

Offline zekkerj

  • Usuário Ubuntu
  • *
  • Mensagens: 19.735
  • Gratidão gera gratidão, lamúria atrai lamúria...
    • Ver perfil
    • Blog do Zekke
Re: "redir" duas portas para duas portas
« Resposta #5 Online: 01 de Junho de 2013, 20:55 »
Citar
não entendo nem porque alguém vai querer usar Oracle, mas, tudo bem
Pq é de longe o melhor banco de dados do mercado. também é o mais caro, mas...

Citar
Infelizmente, devido a sei-lá-o-que (...), ele só aceita conexões loocalhost para estes serviços.
Isso pode ser algum problema na configuração do processo listener.

O problema que vc tem aí é que o Ubuntu não é homologado pra rodar o Oracle. Uma pena; do contrário, poderia jogar essa questão na OTN e ter uma boa dica sobre como resolver.

Então, se eu entendi direito, vc quer receber conexões na porta 1522/tcp, e redirecionar p/ a porta 1521 da mesma máquina, correto? Dá pra fazer com duas linhas.

sudo iptables -A PREROUTING -p tcp --dport 1522 -j REDIRECT --to-port 1521
sudo iptables -A INPUT -p tcp -m multiport --dport 1521,1522 -j ACCEPT
« Última modificação: 01 de Junho de 2013, 20:58 por zekkerj »
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

Offline bred81

  • Usuário Ubuntu
  • *
  • Mensagens: 971
  • HAN?!
    • Ver perfil
Re: "redir" duas portas para duas portas
« Resposta #6 Online: 03 de Junho de 2013, 09:59 »
Beleza. Vou tentar aqui e já já posto o resultado!
---------------
Citar
não entendo nem porque alguém vai querer usar Oracle, mas, tudo bem
Pq é de longe o melhor banco de dados do mercado. também é o mais caro, mas...

Citar
Infelizmente, devido a sei-lá-o-que (...), ele só aceita conexões loocalhost para estes serviços.
Isso pode ser algum problema na configuração do processo listener.

O problema que vc tem aí é que o Ubuntu não é homologado pra rodar o Oracle. Uma pena; do contrário, poderia jogar essa questão na OTN e ter uma boa dica sobre como resolver.
Sobre o banco: há, o uso que estão dando é o mesmo que teria se fosse um MySQL ou PostGRES da vida...
=(
Pena que não é homologado mesmo...
« Última modificação: 03 de Junho de 2013, 10:02 por bred81 »
O que o Mario foi fazer no pscicólogo?
- Ele estava passando por uma fase difícil...

Offline bred81

  • Usuário Ubuntu
  • *
  • Mensagens: 971
  • HAN?!
    • Ver perfil
Re: "redir" duas portas para duas portas
« Resposta #7 Online: 03 de Junho de 2013, 10:59 »
Bom, o meu funcionou.
Fui tentar usar o comando "nc" para testar a porta 1521 antes de colocar o comando do iptables e ele dizia que já estava em uso!

Mas, valeu!
Depois eu vou ver qual solução usar. Agora, lá vou eu configurar a p... do grails que não quer funcionar...

=/
Mal gente, eu falei cedo demais. O erro estava na minha aplicação, não tava funcionando. Fui tentar usar o comando que o zekkerj me passou, mas continua me retornando o seguinte:
Citar
vagrant@precise32:~$ sudo iptables -A PREROUTING -p tcp --dport 8081 -j REDIRECT --to-port 8080
iptables: No chain/target/match by that name.

To dando uma lida aqui no manual pra ver se acho aonde está o erro, mas to meio perdido...
« Última modificação: 04 de Junho de 2013, 17:29 por bred81 »
O que o Mario foi fazer no pscicólogo?
- Ele estava passando por uma fase difícil...

Offline zekkerj

  • Usuário Ubuntu
  • *
  • Mensagens: 19.735
  • Gratidão gera gratidão, lamúria atrai lamúria...
    • Ver perfil
    • Blog do Zekke
Re: "redir" duas portas para duas portas
« Resposta #8 Online: 04 de Junho de 2013, 17:41 »
falha minha também: o comando tem um "-t nat", que eu esqueci de passar.

Comando corrigido:

sudo iptables -t nat -A PREROUTING -p tcp --dport 8081 -j REDIRECT --to-port 8080
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D