Deseja acessar de forma segura o seu banco de dados e sem precisar abrir porta no firewall? Túnel. Acessar a porta 25 fazendo relay sem mudar as configurações do Postfix? Túnel. Existem inúmeras vantagens do uso de um túnel, inclusive a implantação de uma VPN é feita utilizando-se um túnel. Este artigo destina-se a explicar como usar o recurso de tunelamento existente no próprio SSH.
# porta local que será a entrada do túnel
PLOCAL=2525
# troque para o IP ou DNS do seu servidor SSH
SERV="IpOuNomeDNSdoMeuServidor"
# troque para o IP do servidor SMTP do outro lado
SERVSMTP="localhost:25"
# Caminho para restartar o Postfix (pois ele fica parado no meu caso)
POST="/usr/sbin/postfix"
# Caminho do iptables
IPT="iptables"
# tosco: se for passado off era para desfazer o túnel # tosco porque estou dando um flush na tabela nat. DESACONSELHAVEL # isto precisa ser melhorado
if [ "X$1" == "Xoff" ]
then
sudo $IPT -t nat -F
PID=`ps x|grep "ssh.\+$PLOCAL"|cut -d ' ' -f1`
[ "X$PID" == "X" ] || kill $PID 2>/dev/null
exit 0;
fi
# Crio um terminalzinho pequeno, que ficara no canto da tela, apenas para manter o túnel aberto
(xterm -geometry 50x2 -T "SMTP TUNEL $PLOCAL $USER@$SERV" -e ssh -TL $PLOCAL:$SERVSMTP $USER@$SERV) &
# Insiro uma regra iptables desviando tentativas de conexão na porta 25 # para a porta local, entrada do túnel
sudo $IPT -t nat -A OUTPUT -p tcp -d ! 127.0.0.1 --dport 25 -j REDIRECT --to-port $PLOCAL
# reinicio o Postfix, caso esteja parado
sudo /etc/init.d/postfix restart
# dou um tempinho. As vezes, devido a conexões lentas, o túnel criado demora alguns # segundos para ficar disponível
sleep 4
# peço para o Postfix trabalhar a fila de espera agora
sudo $POST flush
# Pronto. Apos a execução deste programinha, ficará na tela uma mensagem # dizendo que o túnel esta aberto. Veja que se você executar um # telnet localhost 2525 estará conversando com a porta 25 do seu servidor
[6] Comentário enviado por andre.vmatos em 04/08/2009 - 18:23h
Muito bom, novamente, Elgio. Artigo explendido, simplesmente didaticamente perfeito. Continue assim, por favor, nos enriquecendo com seu conhecimento. Só uma dúvida. No título da página 5, vc quis dizer SSH ou SSL mesmo? É pq não encontrei menção ao protocolo SSL na página, e sim ao SSH, motivo do artigo. Abçss
Atenciosamente,
[8] Comentário enviado por rsscwb em 17/09/2009 - 14:13h
Elgio,
Parabéns por seus artigos, são Excelentes!!! Não apenas este, mas todos!
Agora estou utilizando este túnel para acessar o webmin no meu servidor. Eu bloqueei o acesso externo na porta 10000 pelo iptables e, cada vez que eu precisava acessar o webmin, tinha que rodar um script pelo ssh liberando a porta pro meu ip local atual (que é dinâmico).
Agora apenas crio o túnel na minha máquina local e pronto! Nem tenho o trabalho de digitar minha senha, pois configurei a autenticação por desafio e resposta, conforme vc explicou em outro artigo. Simples e fácil!
[9] Comentário enviado por ikichl em 23/09/2009 - 09:23h
Bom dia
estou com um grande problema aqui tenho um sistema em php que faz conexoes
automaticas atravez e chave de seguranca, instalada na maquina remota, porem cada
nova conexao ele pede a confirmacao antes e conectar a primeira vez:
Are you sure you want to continue connecting (yes/no)?
ja tentei diversos meio para auto aceitar a conexao, mas sempre sem sucesso
echo -e "yes" | ssh root@200.175.121.18
[11] Comentário enviado por removido em 04/10/2009 - 23:39h
Buenas tchê.
Estava afastado da TI e do VOL, ao retornar encontro este artigo muito bem escrito, com um assunto palpável e com exemplos que realmente funcionam. Estas de parabéns.
Sei que existem alguns de meus usuários, os mais espertos, tunelando conexões em uma porta bem conhecida que meu firewall necessita deixar passar mas, estou estudando as técnicas disponíveis e em busca de soluções.
[12] Comentário enviado por _m4n14c_2 em 20/10/2011 - 04:06h
Só lembrando, o própro ssh possui uma switch para passar os dados pelo gzip (-C). Como voce propos usar o tar seria mais vantajoso usar algoritmo bzip no lugar do gzip, bastar usar a switch j no lugar do z. Assim ganha-se um pouco de velocidade na transmissão dos dados, já que o bzip é mais eficiente que o gzip:
tar cj dados/ | ssh root@172.20.1.132 "tar xj && echo SUCESSO na cópia. SCP é para os fracos"
[14] Comentário enviado por jwolff em 18/12/2012 - 16:47h
Eu iria criar um Artigo com Script sobre Tunelamento por SSH para burlar firewall e squid. Mas você mostrou todos os pontos fracos neste Post e seria em vão meu Artigo.
O que me resta é lhe dar os Parabéns,você é muito bom!