quinta-feira, 30 de janeiro de 2014

Como bloquear relays(IP's) da rede TOR que estão acessando seu servidor linux

Eu sou um fã e utilizador da rede TOR, porém meu servidor tem recebido ataques constantes e analises periódicas de vulnerabilidade através dela. Isso é um pesadelo para qualquer administrador de servidor. Portanto tive que buscar uma forma de bloquear os ips dos relays do TOR para que esse gasto de banda desnecessário parasse. Sendo assim encontrei na internet um script simples mas fantástico, que vou compartilhar e explicar como funciona.


Script:

# links -dump https://check.torproject.org/cgi-bin/TorBulkExitList.py?ip=$(links -dump ip.dnsexit.com | sed 's/ //g') | sed 's/ /\n/g' | sed -n '/^[0-9].*\..*\..*\./p' | sed -n '2,$p' | while read IP; do iptables -I INPUT -s "$IP" -j DROP; done


Dependências: 

Você precisa ter instalado no servidor o "links", uma especie de navegador para linha de comando do linux.

Script para instalar o Links no ubuntu: 
# apt-get install links

Modo de usar:

Execute isso como root em seu servidor. Sim, só isso... Mas o ideal é executar esse script pelo cron do linux periodicamente, pois cada vez que ele roda atualiza os ips que serão bloqueados pelo iptables. Lembre-se que esses ips estão sempre sendo alterados, pois qualquer um pode se tornar um relay do TOR.

O que o script faz?

Ele busca a lista de ips públicos da rede TOR que podem acessar o seu servidor, logo depois, é atualizado as regras do iptables(Firewall do Linux) bloqueando cada um dos ips para o INPUT (conexão de entrada).

Dicas:

* Se você possui IP fixo, pode trocar o subshell $(links -dump ip.dnsexit.com | sed 's/ //g') pelo seu IP, isso vai deixar a execução mais rapida, pois esse subshell pega o ip da maquina que está executando o script.* Se o serviço de firewall fica em outro servidor, substitua o INPUT por FORWARD.

Observação:


Isso não vai livrar você totalmente da rede TOR, mas vai ajudar bastante.

Fontes:
http://www.vivaolinux.com.br/dica/Bloqueando-acesso-ao-servidor-a-utilizadores-do-TOR
https://check.torproject.org/cgi-bin/TorBulkExitList.py

2 comentários:

  1. mas isso evita o uso do tor pelos usuarios da rede tambem ?

    ResponderExcluir
    Respostas
    1. Na verdade isso evita que quem usa TOR acesse o seu servidor. O script gera regras no iptables pra dar drop em todo o trafego que vem dos relays da rede TOR.

      Mas você me deu uma ideia de post. Que é como fazer pra bloquear o acesso a rede TOR. Que na verdade nada mais é do que bloquear todo o trafego de saida da sua rede que tenha como destino os relays da rede TOR.

      Espero ter te ajudado. =D
      Grande abraço!

      Excluir