martes, 3 de octubre de 2017

TOR con Python y cambiar circuito programáticamente

En este artículo voy a mostrar cómo tunelizar todas las conexiones de nuestro script Python y además la posibilidad de cambiar de circuito para salir cada vez por una IP distinta.

Los ingredientes necesarios son Python y TOR, obviamente. Una vez tenemos nuestro sistema listo, debemos configurar TOR habilitando la directiva ControlPort para poder interactuar con el servicio por medio del puerto configurado:

/etc/tor/torrc
Para esta prueba de concepto, he deshabilitado la autenticación del puerto de control CookieAuthentication con el valor 0. Para sistemas en producción configurar este valor adecuadamente.

Reiniciamos nuestra instancia TOR y vamos al código:


Ejemplo de ejecución:


Para cambiar el circuito, básicamente se establece una conexión en texto plano al puerto 9051 sin autenticación y se envía el comando "SIGNAL NEWNYM". Establecemos un tiempo de espera de 10 segundos para dar tiempo a que se cambie el circuito. 

No hay comentarios:

Publicar un comentario