SSH contornando o firewall com o Tor

Publicado por Carlos Affonso Henriques. em 22/09/2015

[ Hits: 4.505 ]

 


SSH contornando o firewall com o Tor



Hoje tive a necessidade de acessar um host remoto do trabalho via SSH e o firewall da repartição não permitia. Mas como sei que meus colegas "maiores" são DAS (Direção e Assessoramento Superior) também conhecidos como cargos comissionados e os que são de fato do meio estão manietados ou conhecem no máximo duas ou três tecnologias proprietárias foi simples e rápido.

Minha máquina roda um CentOS 6.7 então instalei o proxy SOCKS Tor:

Para isso no CentOS coloque o repositório Tor criando o arquivo /etc/yum.repos.d/torproject.repo com o seguinte conteúdo:

[tor]
name=Tor repo
enabled=1
baseurl=https://deb.torproject.org/torproject.org/rpm/el/6/x86_64/
gpgcheck=1
gpgkey=https://deb.torproject.org/torproject.org/rpm/RPM-GPG-KEY-torproject.org.asc
https://deb.torproject.org/torproject.org/rpm/RPM-GPG-KEY-torproject.org.2012.asc
repo_gpgcheck=1
[tor-source]
name=Tor source repo
enabled=1
autorefresh=0
baseurl=https://deb.torproject.org/torproject.org/rpm/el/6/SRPMS/
gpgcheck=1
gpgkey=https://deb.torproject.org/torproject.org/rpm/RPM-GPG-KEY-torproject.org.asc
https://deb.torproject.org/torproject.org/rpm/RPM-GPG-KEY-torproject.org.2012.asc
repo_gpgcheck=1

Em seguida atualize a árvore do yum e instale o Tor proxy:

# yum update
# yum install tor


Selecione "Y" de YES para todas as perguntas e levante o serviço tor:

# service tor start

Verifique se o serviço Tor está escutando na interface lo (loopback) com o lsof, nmap ou netstat. A porta default é a 9050 TCP.

Feito isso basta rodar o cliente SSH:

# ssh -o ProxyCommand='nc -x 127.0.0.1:9050 %h %p' host.remoto.destino.net

Simples assim!

Outras dicas deste autor

Criando e lendo QR-Code pelo shell no CentOS 6

Restringindo login com chave USB

Backup de Configurações do MikroTik RouterOS

Limitando a 1 login por usuário

Permissões persistentes em portas seriais

Leitura recomendada

Instalação do Packet Tracer 8 no openSUSE Tumbleweed

Firewall com balanceamento de N links comuns (IP fixo ou dinâmico) + acesso HTTPS (todos links ativos)

Zabbix API com cURL e alguns exemplos de utilização

Verificar se determinada porta está aberta com o comando echo (funciona remoto)

Utilizando delay_class 4 do Squid 3 Integrado ao AD

  

Comentários
[1] Comentário enviado por removido em 23/09/2015 - 03:38h

Olá.

Eu consegui entender o ssh -o. Mas e o resto do comando com netcat? O que seria? Grato.

--
http://s.glbimg.com/po/tt/f/original/2011/10/20/a97264_w8.jpg

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden

[2] Comentário enviado por rrodrigues345 em 25/09/2015 - 11:08h


Olas! Parabéns pela dica!

Como eu não sou da área, fiquei com umas dúvidas :

Usando o tor o firewall não percebe q vc está usando ssh, é essa a ideia?

Se vc tivesse a opção de usar uma VPN daria certo ou o firewall não deixaria?

Abraço

[3] Comentário enviado por CapitainKurn em 25/09/2015 - 23:45h


[2] Comentário enviado por ricardoperera em 25/09/2015 - 11:08h


Olas! Parabéns pela dica!

Como eu não sou da área, fiquei com umas dúvidas :

Usando o tor o firewall não percebe q vc está usando ssh, é essa a ideia?

Se vc tivesse a opção de usar uma VPN daria certo ou o firewall não deixaria?

Abraço


A opção ProxyCommand='nc -x 127.0.0.1:9050 %h %p' instrui o cliente SSH para conetar-se ao netcat que por sua vez por meio da opção -x conecta-se ao proxy TOR que está escutando na porta 9050, este sim redireciona os pacotes para a rede TOR na porta 443 tcp, para todos os efeitos o firewall entenderá que trata-se de uma conexão https.

[4] Comentário enviado por CapitainKurn em 26/09/2015 - 00:01h


[1] Comentário enviado por listeiro_037 em 23/09/2015 - 03:38h

Olá.

Eu consegui entender o ssh -o. Mas e o resto do comando com netcat? O que seria? Grato.

--
http://s.glbimg.com/po/tt/f/original/2011/10/20/a97264_w8.jpg

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden


Já respondí abaixo, mas quanto ao ponto de saída poder ser facilmente identificado não há como saber quantos saltos e por quais relays o pacote passou, o máximo que pode acontecer é a NSA interceptar o conteúdo mas em tese não teria como saber sua origem, embora até seja possível saber o destino. O TOR é um software aberto e livre, seu código está a disposição para o mundo inteiro audita-lo e até o momento não encontraram alguma falha. Mas ainda assim há formas de eliminar o destino. Uma delas seria a implementação de um ponto de encontro dentro da rede TOR que seja conhecido apenas dos interlocutores.
Ex: usuarioTOR0---<->[Rede de relaysTOR--------<->---[Máquina onde ocorre o diálogo]---<->-----Rede de relaysTOR]-<->---usuarioTOR1. Neste caso não haverá um ponto de saída para a "superfície".



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts