Ter o SSH na porta 80 ou 443 enquanto o servidor da Web (nginx) estiver em execução nessas portas

3

Eu tenho uma máquina Linux (Debian) remota que gostaria de acessar de uma rede muito restrita. Na verdade, as duas únicas portas abertas são a porta 80 (para HTTP) e 443 (HTTPS).

Nesta máquina eu tenho o servidor nginx que está rodando na porta 80 e 443.

Eu não fiz nada parecido antes e sou relativamente inexperiente com qualquer software de servidor diferente do nginx (e Minecraft que não é particularmente difícil de fazer).

Se houver uma maneira simples de conseguir isso, por favor, me diga.

O servidor ssh nesta máquina é o seguinte: OpenSSH_6.0p1 Debian-4+deb7u2, OpenSSL 1.0.1e 11 Feb 2013

    
por BrainStone 11.12.2014 / 18:57

2 respostas

3

restricted_net=1.2.3.0/24
iptables -t nat -A PREROUTING -s "$restricted_net" -p tcp --dport 80 \
  -j REDIRECT --to-ports 22

desfazer

iptables -t nat -L -nv --line-numbers

mostra o número da regra adicionada. Se for a primeira regra desta cadeia, então ela pode ser excluída com

iptables -t nat -D PREROUTING 1

Ele também pode ser excluído diretamente:

iptables -t nat -D PREROUTING -s "$restricted_net" -p tcp --dport 80 \
  -j REDIRECT --to-ports 22
    
por 11.12.2014 / 19:09
3

Existe sslh . Pode multiplexar as conexões dependendo do tipo de cliente que está pedindo. Portanto, se um webbrowser aparecer, ele o encaminhará para o nginx e, se um cliente ssh tentar conectá-lo ao sshd. O README.md irá enganchar você com uma boa explicação sobre como ele deve ser configurado.

    
por 16.12.2014 / 20:22