Tor e netcat-openbsd em automação

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

[ Hits: 2.990 ]

 


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

Usando o Yowsup para enviar comandos ao Shell

Otimizando o desempenho do Squid

rc.local no Arch Linux

Xtree no GNU/Linux

Limitando a 1 login por usuário

Leitura recomendada

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

[Resolvido] Fedora não conecta à VPN (PPTP)

SSH contornando o firewall com o Tor

Desligar Windows remotamente pelo Linux

Samba - Corrigindo mount Input/output error no Ubuntu

  

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