Ejecutando múltiples instancias de tor

En algunas ocasiones, quizás necesitemos ejecutar varias instancias de tor al mismo tiempo. Sin embargo, quien haya realizado esto, recordará que tor le indica que ya hay una instancia ejecutándose y le indica que debe cerrar todas las instancias existentes para poder ejecutar una nueva.

Esta situación puede ser resuelta si seguimos el siguiente procedimiento:

  • Descargamos tor desde su sitio original
  • Descomprimimos y copiamos cuantas veces sea necesario el directorio resultante; cada uno de los directorios resultantes almacenará una instancia, por lo que si deseamos ejecutar 4 instancias en paralelo deberemos copiar el directorio original 4 veces; yo utilizo algo como:
tar xf tor-browser-linux64-6.5.2_es-ES.tar.xz
mv tor-browser-linux64-6.5.2_es-ES tor
cp -R tor tor1
cp -R tor tor2
cp -R tor tor3
  • Luego de esto, un poco de teoría, cada vez que se ejecuta tor, se requiere tener acceso exclusivo a dos puertos, uno de control y el otro del proxy, dosinstancias de tor no pueden utilizar el mismo puerto al mismo tiempo por lo que necesitamos indicar a cada instancia de tor que se conecte a un puerto diferente
  • Llegados a este punto, tome lápiz y papel (o lo que utilice para escribir) y planifique qué puertos utilizará (control y proxy) para cada  instancia de tor; yo hice un ejercicio como el siguiente
Instancia Puerto Control Puerto Proxy
tor 9050 9051
tor1 9052 9053
tor2 9054 9055
tor3 9056 9057
  1. Esto es, asigné un puerto aletorio y le sume 1, pero teniendo en cuenta cuál es el número para cada instancia ya que de no hacerlo así se podrán tener problemas al iniciar la instancia respectiva
  2. Ahora necesitamos iniciar la instancia número 1, en mi caso se llama tor, a secas y cuando abra el navegador, en la barra de herramientas escribir “about:config” y ubicar la clave “extensions.torlauncher.control_port” y colocar allí el número respectivo, en mi caso, el 9050, modificamos el valor y le damos Ok.
  3. Posteriormente, debemos ubicar la pestaña de configuración y allí en la opción  de “Avanzadas -> Red -> Configuración -> Configuración manual del proxy -> Servidor SOCKS colocaremos el valor que hayamos fijado en nuestra tabla de referencia, en mi caso 9051
  4. Finalizado este paso, cerramos el navegador y procedemos a realizar la edición del archivo de configuración del software el cual podemos ubicar en Browser/TorBrowser/Data/Tor/torrc-defaults en la carpeta de la instancia que estamos modificando y allí al abrir el archivo, con un editor de textos,  y buscamos las siguientes entradas:
    • SocksPort y colocamos el valor 9051, en mi caso
    • ControlPort y colocamos 9050, en mi caso
  5. Guardamos los cambios realizados en el archivo y cerramos la edición del mismo
  6. Listo! ya nuestra instancia de tor está preparada para ejecutarse, sólo nos queda repetir los pasos 2, 3, 4 y 5 por cada instancia que hayamos copiado
  7. Luego de que finalice todas las ediciones, puede ejecutar cada instancia de tor sin ningún problema
Ejecución de varias instancias de tor al mismo tiempo

Espero les sea útil esta ayuda

NOTA

Es MUY importante que tome en cuenta que cada instancia consume abundante memoria  y que de tener muchas instancias andando puede hacer que su equipo empiece a presentar problemas de rendimiento, en mi caso, tengo una máquina virtual de 1 Gb y con 3 instancias funcionando al mismo tiempo y  un terminal abierto consume casi el 95% de la memoria RAM , mientras que el consumo de CPU no llega al 10%

Prestashop, página no encontrada

Si vas a mover tu instalación de prestashop hacia un nuevo sitio y estás usando varios lengiajes, está pendiente porque, algunas veces, puede aparecer un error de “Página no encontrada” ya que el sistema interpreta “en” y “es” (en caso de que uses inglés y español) como carpetas y no como parte del nombre.

Una sencilla solución es remover el archivo .htaccess y luego ir a la sección “Preferences -> Seo Urls”y allí desactivar y guardar la opción enlaces amigables y luego, volver a activar dichas opciones. Esto obliga a regenerar el archivo .htaccess.

Disfruta la  ayuda!

Prestashop page not found

Moving prestashop to new server?, be advise about “page not found” error when you’re using severals languages.

Solving it is easy, just remove your .htaccess and go to “Preferences -> Seo Urls” and turn on friendly urls – and right after that – turn it off.

This action regenerate .htaccess file and solve your issue.

Enjoy it!

Paquete vhistory en español para latex

Latex es una de las herramientas más poderosas que existen para la generación de documentación, así mismo, la cantidad de paquetes adicionales que pueden ser agregados con simples comandos aumentan su flexibilidad para poder realizar casi que cualquier opción que al usuario se le ocurra.

Hace poco se me presentó una duda mientras elaboraba un manual en latex ¿existe alguna forma de colocar el histórico del documento de forma semiautomatizada? En tanto mi documento no está bajo un sistema de versionado como git o svn, no podía acceder a un git log e incluirlo en el cuerpo del documento usando, por ejemplo, latex-git log [1] o latex-diff [2]. Así mismo, semiuatomatizado para mí es que en tanto soy el único autor conozco qué cambios he introducido en cada versión.

Buscando encontré el paquete vhistory el cual cumplía con todos mis requerimientos excepto uno: los mensajes que colocaba estaban en inglés, francés y alemán lo cual me animó a realizar la traducción del mismo al español, cosa que no me tomó más de 10 minutos entre ubicar el archivo .sty, entender el funcionamiento del mismo y colocar los nuevos bloques de mensaje; como resultado obtuve mi control de histórico en el documento con mensajes en español.

El archivo lo pueden conseguir en https://github.com/e1th0r/translations junto con las instrucciones corespondientes a su uso.

Espero les sea útil como lo fue para mí.

[1] https://www.ctan.org/pkg/latex-git-log?lang=en

[2] http://www.ctan.org/tex-archive/support/latexdiff/

Ip real detrás de proxy web

Una de las acciones más utilizadas en el mundo de la virtualización es la de tener un proxy web que reciba todas las peticiones web que llegan al dom0 y pasarlas a las correspondietes VM que estén bajo su control y que puedan respondar a las respectivas peticiones web.

Sin embargo, la configuración estandar impide que podaos ver, por ejemplo, las direcciones IP reales que llegan a la VM, obteniéndose, en su lugar, la IP del dom0:

  IP CLIENTE          IP DOM0          IP LOG EN VM
==============      ==============     ===============
|190.9.XX.XX | -->  | 192.168.0.1| --> | 192.168.0.1 |
==============      ==============     ===============

Lo anterior podemos verlo en el siguiente trozo de log de un servidor lighttpd que responde peticiones provenientes de un servidor proxy web que funciona en nginx

prueba.mydomain.net.ve 192.168.0.1 – – [05/Apr/2015:08:36:12 -0430] “GET / HTTP/1.0” 404 345 “-” “Mozilla/5.0 (X11; Linux x86_64; rv:37.0) Gecko/20100101 Firefox/37.0”

Lo que deseamos es que el campo de la ip nos muestre la ip real del cliente que hace la conexión y no la ip del dom0.

La solución correcta en lighttpd es a siguiente:

a) Configurar y activar el módulo accesslog de lighttpd; en debian este módulo tiene su archivo de configuración aparte, ubicado en /etc/lighttpd/conf-available:

a-1) Configurándolo: para ello agregar al archivo /etc/lighttpd/conf-available/10-accesslog.conf la siguiente cadena al final del mismo:

accesslog.format = “%{X-Forwarded-For}i %l %u %t “%r” %>s %b “%{Referer}i” “%{User-Agent}i””

a-2) Activar el módulo:

lighty-enable-mod accesslog

b) Configurar el módulo extforward, para ello, en su archivo de configuración de lighttpd coloque:

extforward.forwarder = (
     "192.168.0.1" => "trust"
  )
extforward.headers = ("X-Cluster-Client-Ip")

Nótese que la ip colocada acá es la del dom0 que se conecta con las VM, en nuestro caso es 192.168.0.1

c) Reiniciar lighttpd

Es muy importante el paso a-1 ya que muchos tutoriales no indican que debe colocarse la cadena %{X-Forwarded-For}i lo cual impide conocer la ip real.

Al finalizar esta configuración, el log del lighhtpd configurado en la VM debe mostrar algo como:

190.77.XX.XX – – [05/Apr/2015:08:52:45 -0430] “GET / HTTP/1.0” 200 2682 “-” “Mozilla/5.0 (X11; Linux x86_64; rv:37.0) Gecko/20100101 Firefox/37.0”

Quedando nuestro esquema, entonces, de la iguiente forma:

  IP CLIENTE          IP DOM0           IP LOG EN VM
==============      ==============     ===============
|190.9.XX.XX | -->  | 192.168.0.1| --> | 190.9.XX.XX |
==============      ==============     ===============

Espero disfruten la ayuda 😀

Latex Beamer Referencias de figura sin números

Generando unas diapositivas en Latex Beamer para el postgrado, me encontré con un detalle bastante extraño: al insertar una figura no se generaba la referencia respectiva:

Referencia sin número

Investigando un poco [1] conseguí que este error se debe a que me faltaba incluir la opción setbeamertemplate{caption}[numbered] en el encabezado del documento y con eso ya podemos tener nuestras figuras perfectamente referenciadas en Latex Beamer:
Referencia con número
Disfruten la ayuda!

[1] http://tex.stackexchange.com/questions/127145/beamer-presentation-figure-has-no-number

 

Script para instalación de SeedDMS

SeedDMS [1] es un potente gestor documental que posee una gran cantidad de funcionalidades para ayudar en el manejo de repositorios documentales, tales indexación, visualización en línea, creación de flujos de trabajo, manejo de versiones, permisología bastante granular y otras.

Sin embargo, quienes lo hayan instalado, quizás recuerden lo tedioso que resulta ese proceso. Por ello, luego de varias pruebas, cree un pequeño script de instalación en bash que permite automati?ar casi toda la instalación de dicho software.

Pueden descargarlo en https://github.com/e1th0r/seeddms-install

Comentarios bienvenidos.

[1] http://www.seeddms.org

Instalando mysql-workbench en debian y ubuntu

El fin de semana un cliente me pidió que le instalase en un equipo mysql-workbench; el único problema es que dicho equipo está funcionando con ubuntu versión 12 (digo problema para mí ya que no trabajo con Ubuntu).

Al momento de hacer el trabajo recordé que la semana pasada @Genesis_3G me decía que instalando mysql-workbench en debian squeezy requería una gran cantidad de dependencias.

Luego de una hora, aproximadamente entre descargas y compilación,  pude tener funcionando dicha aplicación en Ubuntu.

A continuación detallo el procedimiento que realicé.

a) Primero actualicen sus fuentes con aptitude update

b) Instalen las dependencias requeridas:

aptitude install libzip-dev glibc-2.13-1 libglib2.0-dev 
libsigc++-2.0-dev libgtkmm-2.4-dev sqlite3 libsqlite3-dev 
libboost-dev libmysqlclient-dev uuid-dev liblua50-dev 
lua5.1 liblua5.1-0-dev python-dev libcairo2-dev 
libcairo2-dev libcairo2-dev libgl1-mesa-dev 
libctemplate-devel libctemplate-dev libiodbc2-dev 
libpcre3-dev autoconf gcc make

c) Cambiarse al directorio donde descargaron los fuentes y ejecutar:

./configure
autoreconf -fi
make
make install

Para el último paso, dependiendo de la velocidad del equipo, deben esperar  un tiempo extenso (en mi caso tardó casi una hora)

Finalmente, este procedimiento no es necesario en debian wheezy ya que en dicha versión de debian, esa aplicación viene incluida 😀

Espero que disfruten la ayuda.

DansguardianFilter group out of range

Hace poco incluí una nueva lista de acceso a un dansguardian que tenemos instalado. Al momento de reiniciar el servicio aparecía un error del tipo:

Restarting DansGuardian: dansguardianFilter group out of range; entry 192.168.100.2 = filter4; in /etc/dansguardian/lists/authplugins/ipgroups
Filter group out of range; entry 192.168.100.3 = filter4; in /etc/dansguardian/lists/authplugins/ipgroups

Y así con todas las ip que estaban dentro de esa acl.

Revisando concienzudamente encontré que el motivo de dicho mensaje es una omisión de mi parte al no haber aumentado el número de reglas existentes en el archivo de configuración de dansguardian. La solución fue ir al archivo de configuración dansguardian.conf  y buscar la línea:

filtergroups = X

Y aumentar el número allí presente para que concuerde con el número de la regla que se está creando, en mi caso dicho valor estaba en 3 y con subirlo a 4 fue suficiente.

Espero les sirva la ayuda.