jueves, junio 25, 2015

El Parlamento francés apoya el espionaje sin orden judicial

(vía Barcepundit ) La Asamblea Nacional ha dado el apoyo a la ley francesa de servicios secretos, la cual permite la obtención de todo tipo de datos relacionados con llamadas telefónicas y uso de Internet. Básicamente, cualquier operadora de telecomunicaciones será pinchable por el gobierno francés, el cual usará en sus servicios de información los datos obtenidos sin necesidad de responder ante tribunales.

No sé si mucha gente tenía la esperanza que tras los casos de espionaje publicados por Snowden o la filtraciones de Wikileaks se iba a cambiar la legislación para tener más control sobre los servicios de información. Siempre he sido de la opinión contraria: Se aprobarían leyes que hicieran legal dicha obtención de información. Y habrá un endurecimiento de las leyes, cuando se empiezan a publicar información como los datos de los trabajador es del gobierno de los Estados Unidos.

Desde mi punto de vista - ojalá me confunda - la batalla por la privacidad en Internet está perdida.

miércoles, junio 24, 2015

Tutorial de socat (I)

socat es una utilidad que permite establecer una comunicación bidireccional entres dos canales. El canal de comunicación puede ser pipes, sockets tcp o udp, conexiones raw, líneas serie o sockets en el sistema de ficheros. Es una navaja suiza para transmitir flujos de bytes.

Cuando se compila socat intentará utilizar las librerias OpenSSL, readline y libwrap si están presentes en el sistema. Para detectarlas se usa el script de configure. En caso de no querer usarse, existen una serie de opciones de configure (--disable-openssl, --disable-readline, --disable-libwrap) para desactivar su uso. Puede verse más información en el README que acompaña al código fuente del programa. Puede compilarse de manera sencilla con:

# Descargar la última versión disponible
# de socat/download
wget http://www.dest-unreach.org/socat/download/socat-1.7.3.0.tar.gz
# Comprobar al suma md5
# (consultar aquí las actuales)
# En el caso del fichero  socat-1.7.3.0.tar.gz es de46e3f726f783271226eb94d5109bf8
md5sum socat-1.7.3.0.tar.gz
# Descomprimir, compilar e instalar
tar zxvf socat-1.7.3.0.tar.gz
cd socat-1.7.3.0
./configure --prefix=/usr/local
make
# Como root instalar
make install

Si el proceso de compilación e instalación terminan correctamente los binarios del programa se habrán instalado en /usr/local/bin.

Para usar el programa:

socat [opciones] [addr0] [addr1]

Tras ejecutar la orden:

  • Analizará las opciones de la línea de comandos.
  • Abrirá los canales de comunicación indicados por las especificaciones de dirección addr0 y luego addr1
  • Pasará la información entre los canales abiertos.

Las especificaciones de dirección tiene la forma de CLAVE:opciones,[opciones,...]: Una palabra clave separada por ":" y las opciones que necesite dicha dirección separada por ",". Ejemplo TCP-LISTEN:5000 va a abrir un puerto TCP en escucha en el puerto 5000, STDOUT o "-" va a usar la salida estándar , TCP:host:port se va a conectar a través de TCP a host:port. Con estos comandos se puede probar la comunicación.Se va a usar dos procesos de socat: uno lee de la entrada estándar, lo envía a través del puerto 5000 TCP a localhost y otro escucha las conexiones, recibe la información y la imprime.

# El servidor
socat -u TCP-LISTEN:5000 STDOUT
# El cliente
socat -u STDIN TCP:127.0.0.1:5000

En el ejemplo anterior, se usa la opción -u porque queremos una comunicación unidireccional desde la addr0 (el socket, la entrada estándar) hacía la otra dirección. Si quisiéramos una comunicación bidireccional, tb se podría hacer, pero ahora vamos a usar STDIO como sustituto de STDION y STDOUT y eliminado la opción -u. Se arranca de nuevo el server, y con independencia de la terminal en la que se escriba, podemos transmitir información entre las dos ventanas.

Como se están usando sockets TCP para la comunicación, cuando el proceso que está escuchando se para, automáticamente termina el proceso hijo.

Otro ejemplo: Supongamos que se desea tener un fichero de logs, por ejemplo, /var/log/system.log (en OS X, este fichero necesita permisos de admin para verse) disponible en un puerto de TCP para poder ver su contenido. Para ello se arranca un server en el puerto 5000 que volcará el contenido y un cliente que leerá el fichero desde el final y lo mandará al server

# El servidor
socat -u TCP-LISTEN:5000 STDOUT
# El cliente socat -u OPEN:/var/log/system.log,rdonly=1,seek-end=0,ignoreeof TCP:localhost:5000

Se abriendo el fichero (OPEN:/var/log/system.log), como sólo lectura (rdonly=1), posicionándose al final del mismo (seek-end=0) e ignorando el fin del fichero (ignoreof). Los datos que se leen se están mandando por TCP a localhost:5000. Básicamente esta orden es el equicalente a un tail -f a través de red en el puerto 5000. Puede verse en la siguiente captura su uso - y algunos errores de las pruebas ;) -.

lunes, junio 08, 2015

De lo dicho... nada!

De lo dicho... nada! es un un nuevo blog que he decidido abrir para publicar todas las entradas relacionadas con la aviación, dejando este viejo valle - casi 11 años de blog, casi nada -, para su temática original:la programación y administración de sistemas, con alguna excursión al mundo de la economía, los viajes y tecnología.