TCP bouncer with failover support

Descripción

Se publica un puerto TCP, donde se escuchan peticiones, cada una de ellas se intenta re-enviar contra un servidor y un puerto (no tiene porqué ser el mismo que el que se publica). Si esta conexión falla se pueden definir varios servidores y puertos donde intentar enviar la conexión recibida. Si no se consigue establecer esta comunicación entonces se desconecta la conexión TCP recibida.

Requerimientos

  • python
  • twisted

Fichero de configuración

Entre [] definimos el nombre de la redirección que vamos a definir, podemos definir más de una conexión sólo diferenciandolas con el nombre entre []. Dentro de cada sección se definen dos variables:

  • listen: indica en que IP y puerto local debemos esperar las conexiones TCP. Si queremos escuchar en cualquiera de las IPs de la máquina local debemos poner la IP: 0.0.0.0, siendo obligatorio definir siempre el puerto separado por unos ':'.
  • servers: separados por ',' inidicaremos un lista de pares de IP:PUERTO donde debemos intentar conectar la conexión TCP recibida. Las conexiones se probaran según el orden indicado.

A continuación se muestra un fichero de configuración a modo de ejemplo:

[test1]
listen=127.0.0.1:1236
servers=127.0.0.1:4444,127.0.0.1:5555,192.168.1.99:23

[test2]
listen=0.0.0.0:1235
servers=127.0.0.1:2222,127.0.0.1:3333,192.168.1.1:23

Uso

Para lanzar el demonio es necesario tener permisos de 'root', ya que este intenta lanzarse como usuario y grupo: bin:bin.

twisted -y tcp-fwd.py

Depuración

Para depurar el funcionamiento en el directorio donde se lance el tcp-fwd.py encontraremos un ficheros .log con los posibles errores del mismo.

Descargar

Consultar la sección descargas.