Tor e netcat-openbsd em automação

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

[ Hits: 2.963 ]

 


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

Alterando o editor do crontab

Conhecendo o printf

Wine rodando Dreamweaver MX

Lógica booleana com o test

Obtendo o Dockerfile a partir de uma imagem

Leitura recomendada

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

Instalação do SNMP no Ubuntu

Configuração de rede IPv6 estática no Ubuntu

Traceroute - como escolher qual gateway ou interface de rede será usado

Ferramentas para administradores de redes

  

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