ssh da porta 80 para a porta 22?

2

O isp que eu estou atualmente conectado só tem a porta 80 aberta, mas eu preciso do ssh para o meu servidor, que escuta na porta 22 do meu roteador lá. Existe uma maneira de sair pela porta 80 aqui, depois até 22 lá?

    
por Peace Blaster 16.01.2014 / 23:49

2 respostas

3

É estranho que sua saída só permita a porta 80, mas seja o que for. Você pode redirecionar todas as conexões para a porta 80 para a porta 22 usando o iptables ou fazer com que o servidor SSH ouça a porta 80 também.

Usando o iptables:

iptables -t nat -I PREROUTING --src 0/0 --dst YOURSERVERIP -p tcp --dport 80 -j REDIRECT --to-ports 22

Modificando a configuração do seu servidor ssh:

sed '/\#Port\ 22/Port 80/' /etc/ssh/sshd_config | grep 80

Se tudo estiver ok, use:

sudo sed -i '/\#Port\ 22/Port 80/' /etc/ssh/sshd_config
    
por 16.01.2014 / 23:59
1

Primeiramente, sinto que estou lendo sua pergunta incorretamente. Eu entendo como dizendo que você só tem permissão de tráfego de saída na porta 80. Isso significa para mim que você precisa se comunicar da porta 80 para a porta 22 dos servidores. Felizmente, isso é completamente possível usando backpipes e netcat. Aqui está o processo:

Primeiro, crie seu backpipe:

# mknod backpipe p

Em seguida, faça um ouvinte de netcat que conecte seu backpipe e envie as informações para fora da porta de sua escolha (80), para uma porta de sua escolha (22):

# nc -l -p 222 0<backpipe | nc -p 80 SERVERIP 22 | tee backpipe

Por fim, conecte-se à sua porta de escuta!

# ssh [email protected] -p 222

Aqui está um resumo da linha de backpipe para os curiosos:

nc -l -p 222 0<backpipe

Isto configura um ouvinte de netcat que escuta na porta 222 (você pode mudar isso para qualquer porta que você quiser, eu acabei de escolher 222) e envia todos os dados para o seu backpipe.

nc -p 80 SERVERIP 22

Isso define uma porta de origem de 80 para a porta SERVERIP 22. Essa é a conexão que o OP queria em sua postagem, mas queremos transferir uma conexão SSH por meio disso, portanto, a necessidade de um backpipe.

tee backpipe

Isso envia seu STDOUT para o backpipe e também para o seu terminal. Se você não quiser ver os dados, poderá substituí-los por esta linha:

# nc -l -p 222 0<backpipe | nc -p 80 SERVERIP 22 1> backpipe
    
por 16.04.2016 / 03:14

Tags