Tor e netcat-openbsd em automação

Publicado por Carlos Affonso Henriques. em 04/06/2017

[ Hits: 2.993 ]

 


Tor e netcat-openbsd em automação



Recentemente implementei uma solução para monitoramento e controle de dispositivos remotos usando Raspberry PI, Slackware ARM e Tor.

Antes que alguém pergunte por que fazer isso com o Tor?
  • Em primeiro lugar por que com o emprego do Tor não necessitamos de serviços de DNS dinâmico tipo no-ip.
  • Em segundo lugar não precisamos fazer qualquer alteração no gateway da empresa, até por que o fornecedor do serviço não nos daria acesso ao roteador.
  • Em terceiro por que é bom, confiável, elegante e fácil de se implementar.

Não vou adentrar minúcias do projeto, configurações de hardware do Raspberry Pi nem me ater as implementações de segurança, como autenticação etc. para não alongar essa dica.

No máquina servidora ou escrava

1° Na máquina servidora ou se preferirem escrava que no nosso caso é um Raspberry PI rodando Slackware ARM que controla determinados equipamentos.

No arquivo /etc/tor/torrc faça o seguinte:

SOCKSPort 127.0.0.1:9050
Log notice file /var/log/tor/tor.log
RunAsDaemon 1
DataDirectory /var/lib/tor
User tor
PidFile /var/run/tor/tor.pid
ExcludeNodes {ca},{ua},{us},{rw},{lr},{hk},{mo},{jp}
ExitNodes {de},{dk},{fi},{is},{mt},{no},{nl},{an},{sk},{ru},{by},{be},{gf},{fr},{in},{mc},{me},{sm},{it},{th}
VirtualAddrNetwork 127.200.200.200/10
AllowSingleHopCircuits 0
HardwareAccel 1
FascistFirewall 1
FirewallPorts 22.80,443,3128.8080
KeepalivePeriod 30
DNSPort 5353
DNSListenAddress 127.0.0.1
NumEntryGuards 2
NumCPUs 4
TransPort 9040
HiddenServiceDir /var/lib/tor/hidden_service_64300/
HiddenServicePort 64300 127.0.0.1:64300

Destaco o parâmetro "KeepalivePeriod", que no caso configurei-o para 30 segundos, é crucial pois manterá o Tor, que roda como cliente, sempre ativo. Para saber qual o endereço do host, após levantar o tor dê um:

# cat /var/lib/tor/hidden_service_64300/hostname

nesse caso é a1jt2ebtssn63rrb.onion.

Agora vamos ao netcat.

Temos que substituir o Netcat GNU pelo Netcat OpenBSD pelo fato do GNU não permitir escutas persistentes.

Comece desinstalando o netcat GNU, como estou usando Slackware...

# removepkg nc

Em seguida baixe o Netcat-openbsd de http://slackbuilds.org, compile-o conforme as instruções e instale-o com o installpkg.

Esse passo é necessário no Slackware, há distros que adotam o Netcat-OpenBSD por padrão, o CentOS por exemplo é uma delas.

Feito isso, já com o Tor levantado, suba o serviço com o Netcat OpenBSD:

# nc -lk 127.0.0.1 -p 64300 > /sys/class/gpio/gpioXX/value

Pronto!

Na máquina cliente ou mestre

2° Na máquina cliente ou se preferirem mestre, com o Tor já levantado.

# torsocks --shell on

e no MESMO SHELL execute o comando para ligar um dispositivo:

# echo "1" | nc a1jt2ebtssn63rrb.onion 64300

E para desligar:

# echo "0" | nc a1jt2ebtssn63rrb.onion 64300

Onde a1jt2ebtssn63rrb.onion é o endereço da máquina servidora ou escrava como mencionai acima.

Dessa ideia simples e elegante dá para imaginar um monte de aplicações!

Bom trabalho a todos.

Outras dicas deste autor

Renomeando interfaces de rede com nameif e /etc/mactab

Comando seq com saída em hexadecimal

RAID 5 com apenas dois discos, ou menos

Obtendo o Dockerfile a partir de uma imagem

Instalando Docker no Raspberry Pi

Leitura recomendada

Checklist para problemas com WiFi

Samba - Corrigindo mount Input/output error no Ubuntu

Instalação e configuração do ICINGA2 e ICINGA WEB2 no Debian 9

Como descobrir a velocidade de sua placa de rede via linha de comando

Mudando tipo de autenticação do Squid para algumas máquinas

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts