Firewalls personales para Linux

Hoy he desinstalado firestarter. Me hacen falta ciertas reglas de iptables las máquinas virtuales que uso para pruebas, y pensé que con firestarter podría hacerlo sin tener que editar ficheros en línea de comandos. No quería algo tan serio como lo que hago a diario en el trabajo. Quería algo sencillo, relajado, aunque no fuera muy seguro. Al fin y al cabo, es para mi ordenador de escritorio, que ya está detrás de un router/firewall.

Firestarter es muy fácil de usar, pero nunca acabó de funcionar bien del todo. Había permitido que los equipos conectados al interfaz br0 (en el que están las máquinas virtuales) salieran a Internet, pero no funcionaba DHCP. Lo permití desde cualquier sitio y cualquier interfaz, y seguía sin funcionar. Luego descubrí que una VPN que tengo con el ordenador que alberga esta web tampoco funcionaba. Permití todo el tráfico desde la red de la VPN, y seguía sin funcionar. Veía muchos paquetes ICMP rechazados desde sitios que monitorizo con smokeping para ver la salud de la red (extraño, porque era yo quien iniciaba los pings). Permití todos los ICMP ... y seguía sin funcionar.

Hoy he estado buscando alternativas. Hace mucho tiempo había llegado a tres "finalistas": firestarter, otro para KDE que ni recuerdo, y fwbuilder. El problema con el de KDE es que no uso KDE, y el problema con fwbuilder es que, para lo que yo quiero, es demasiado potente. Está muy bien, pero es demasiado para algo tan sencillo como lo que yo quería. Para que se hagan una idea, antes de usar firestarter era un fichero en /etc/init.d con tres o cuatro líneas llamando a iptables.

Pensé en ufw, pero lo descarté porque sólo vale para el propio equipo. Para hacer enmascaramientos y cosas "avanzadas" necesitas hacer algo de magia negra. No hay mucha diferencia entre eso y mis scripts.

Viendo que no hay más remedio, he instalado fwbuilder.

Cosas que no me gustan de fwbuilder:

  • Como ya dije, es demasiado complicado para lo que yo quiero. Necesitas saber de firewalls para usarlo. A mí me da igual, pero no lo recomendaría a alguien que quiere un "firewall de escritorio" típico. Sólo la configuración de un "objeto firewall" ya es bastante liosa si no sabes qué estás haciendo.
  • Necesita entrar por ssh como root en el firewall (localhost, en mi caso) para actualizar las reglas, o con un usuario que por sudo pueda escribir donde las tienes.
  • Es un servicio del sistema. Es decir: no hay un icono en la bandeja del sistema en el que pinchas y puedes cambiar cosas, activar o desactivar el firewall, y todo eso. Tienes que tirar de terminal para hacerlo.
  • Por lo anterior, la instalación requiere que toques cosas en el sistema si quieres que funcione "bien": tienes que configurar un usuario que pueda levantar el firewall con sudo, crear un directorio para las reglas e instalar un script init.d y un fichero en /etc/default que vienen en los ejemplos (no se hace por defecto porque puedes tener el firewall en otro sitio que no sea donde editas las reglas).
  • Mi configuración de fwbuilder tiene cuatro reglas en fitler y una en nat. Para hacerlo, entre media hora y 45 minutos, sobre todo definiendo interfaces y hosts. Soy un poco maniático y estuve buceando entre las opciones de fwbuilder para ver qué podían hacer, pero quitando ese tiempo tardaría un mínimo de 15 minutos en haber configurado mis cuatro reglas.

    Luego hay que añadir otros cinco minutos cuando descubrí que la comunicación desde las máquinas virtuales a Internet funcionaba muy bien, pero no así desde el equipo que hace de firewall. Cuando vi que Google no respondía empecé a sospechar que faltaba afinar un poco el firewall.

    Una vez hecho, no hay mucho más que tocar. Voy a tener durante un tiempo fwbuilder a ver qué resultado da. Me temo que implique volver a lanzar un terminal para activar el firewall cada vez que reinicie (que, por suerte, no es muy a menudo), pero de momento lo asumo. En unas semanas veré si acabo harto y vuelvo a alguna solución más user friendly.

Linux es fácil

Tanto como extirparse un cálculo renal con una cucharilla de postre. Usando los pies.

Sí, estoy un poco mosqueado.

Desde la actualización de Ubuntu "Jaunty" a "Karmic" tenía varios "problemillas". El primero, que no funcionaba el dongle USB Wifi, con lo que no tenía Internet. El segundo, que no funcionaba el sonido. Nada importante, como ven. Lo normal en una actualización entre distribuciones (presuntamente) estables. Para que luego digan de Debian.

El problema de la Wifi lo solucioné cambiando de dongle (por suerte, tenía dos distintos). El problema del sonido lo arreglé tocando la configuración de pulseaudio tras una furiosa búsqueda en Google y Launchpad. pulseaudio es como un supositorio: sabes que a largo plazo será bueno para ti, pero el mal rato que vas a pasar mientras te lo ponen no te lo quita nadie. Ahora mismo hay mucha gente a la que le da problemas, pero es una arquitectura superior que permite mucho más de lo que permitían los servidores de sonido actuales. Todas las distribuciones lo han adoptado, y a pesar de lo que parece, en general funciona bien.

Pero lo dicho: un supositorio.

El cambio que tuve que hacer en la configuración de pulseaudio fue mínimo: descomentar una línea y ya está. Pero para alguien que se acabe de instalar Ubuntu no sería tan fácil. Tendría que bucear entre los bugs de Ubuntu, saber qué es ALSA, saber qué es pulseaudio ... No sería fácil. En absoluto.

Y lo de hoy fue la guinda. Me di cuenta de que no me funcionaba la entrada de línea. Ahí es donde enchufo la salida del multiefectos de la guitarra, con lo que si no hay entrada de línea, no hay sonido de guitarra. Pensé que sería cuestión de jugar un poco con alsamixer, como otras veces que he actualizado el kernel. Pero no: a pesar de que los volúmenes estaban bien, y de que en el monitor de pulseaudio se veía que había sonido en la entrada de línea, no se oía nada de lo que entraba por ahí.

La primera búsqueda de Google me llevó a probar a indicar un parámetro model para el módulo snd-hda-intel, según esta lista. Ya lo había probado hacía tiempo cuando tuve otros problemas con la tarjeta de sonido, y aunque entonces lo arregló, ahora no hubo suerte. De hecho, el problema que tenía entonces era el mismo que el de ahora, y un par de búsquedas más me hicieron recordar qué era lo que había tenido que hacer: activar el analog loopback de la tarjeta, uno de los "switches" de alsamixer.

Que no aparecía por ningún lado.

Seguí buscando y vi que a otra gente le había pasado lo mismo: el control de analog loopback había desaparecido. En ese bug se indicaba una entrada del changelog de ALSA en el que se decía que, como daba muchos problemas, lo habían quitado por defecto. Ahora se podía activar con el hint "loopback = yes".

Por supuesto, ni idea de a qué se refería con lo de "hint", ni cómo aplicarlo.

En el bug no lo explicaban. Siempre se agradece que te digan parte de la solución a tu problema para que puedas probarte a ti mismo encontrando el resto. Eso curte. Crea carácter. Distingue a los hombres de los niños. Si yo estuviera probando Ubuntu, al llegar aquí hubiera tirado el ratón por la ventana en un ataque de frustración y hubiera instalado Windows.

Media hora y varias búsquedas en Google más tarde, encontré un documento llamado "More notes on HD-Audio driver" que está en los fuentes de ALSA. Este pequeño fichero de 16 páginas de amena documentación técnica, en texto plano, es lo que cualquier usuario medio podría leer y comprender en un momento para hacer troubleshooting de sus problemas de sonido. Si "usuario medio" implica varios años de experiencia con Linux, claro.

En la sección "HD-Audio Reconfiguration" explica que el módulo snd-hda-intel se puede reconfigurar en caliente usando los ficheros de /sys. En este punto es necesario incluir el texto original, para gozarlo en toda su gloria:

The following sysfs
files are available under each codec-hwdep device directory (e.g. 
/sys/class/sound/hwC0D0):

vendor_id::
  Shows the 32bit codec vendor-id hex number.  You can change the
  vendor-id value by writing to this file.
subsystem_id::
  Shows the 32bit codec subsystem-id hex number.  You can change the
  subsystem-id value by writing to this file.
revision_id::
  Shows the 32bit codec revision-id hex number.  You can change the
  revision-id value by writing to this file.
afg::
  Shows the AFG ID.  This is read-only.
mfg::
  Shows the MFG ID.  This is read-only.
name::
  Shows the codec name string.  Can be changed by writing to this
  file.
modelname::
  Shows the currently set `model` option.  Can be changed by writing
  to this file.
init_verbs::
  The extra verbs to execute at initialization.  You can add a verb by
  writing to this file.  Pass three numbers: nid, verb and parameter
  (separated with a space).
hints::
  Shows / stores hint strings for codec parsers for any use.
  Its format is `key = value`.  For example, passing `hp_detect = yes`
  to IDT/STAC codec parser will result in the disablement of the
  headphone detection.
init_pin_configs::
  Shows the initial pin default config values set by BIOS.
driver_pin_configs::
  Shows the pin default values set by the codec parser explicitly.
  This doesn't show all pin values but only the changed values by
  the parser.  That is, if the parser doesn't change the pin default
  config values by itself, this will contain nothing.
user_pin_configs::
  Shows the pin default config values to override the BIOS setup.
  Writing this (with two numbers, NID and value) appends the new
  value.  The given will be used instead of the initial BIOS value at
  the next reconfiguration time.  Note that this config will override
  even the driver pin configs, too.
reconfig::
  Triggers the codec re-configuration.  When any value is written to
  this file, the driver re-initialize and parses the codec tree
  again.  All the changes done by the sysfs entries above are taken
  into account.
clear::
  Resets the codec, removes the mixer elements and PCM stuff of the
  specified codec, and clear all init verbs and hints.

Pero ahí estaba: el fichero hints, que es a lo que se referían en el changelog. Supuse entonces que lo que había que hacer era añadir loopback = yes a ese fichero, tal que así:

echo "loopback = yes" > /sys/class/sound/hwC0D0/hints

Y luego, reconfigurar la tarjeta:

echo 1 > /sys/class/sound/hwC0D0/reconfig

Con eso ya aparecía el control de analog loopback en alsamixer, y ya funcionaba el sonido de la entrada de línea.

¡Jo, qué fácil era!

Si es que al final uno se da cuenta de que no es que Linux sea difícil: es sólo que no se ha parado a buscar durante hora y media entre bugs, posts de foros y documentación técnica. Cualquiera podría hacerlo.

Creo que éste tampoco será el año de Linux en el escritorio.

PS: y por encima, un bot me ha llenado de spam varias de las entradas del weblog. Ya ni del capcha se puede fiar uno.

Ficheros en la Nube

Ustedes se libran porque no tengo mucho tiempo (o ganas) para actualizar mi weblog, pero la gente que está a mi alrededor habitualmente está harta de oirme hablar de "la Nube". Soy el profeta de la Nube en el trabajo.

Por suerte o por desgracia, mi jefe también está bastante convencido de que la Nube es el futuro, y estamos empezando a considerar las opciones que hay para migrar servicios que usamos habitualmente, y que hasta ahora alojábamos nosotros mismos, a máquinas físicas o virtuales en Internet. Para nosotros no significará mucha diferencia: el trabajo de verdad lo hacemos en sitios remotos con ssh, y accedemos al correo por web o IMAP. Tenemos un montón de servidores en un rack que podrían estar en Internet en lugar de armando barullo y generando calor en nuestro (minúsculo) CPD; aparte de lo que cansa tener que preocuparse por firmwares, RAIDs, temperaturas ... Somos un candidato perfecto (y ansioso) para la "nubificación".

El tema del correo ya lo hemos solucionado con un servidor en hosting (necesitamos algo demasiado grande como para usar un VPS como el que aloja esta web) y la "suite" de correo que más nos gusta, y ahora vamos a por los ficheros de los usuarios. Ahora estábamos usando una configuración tradicional con NFS, y queríamos algo más "portable". Queríamos algo que nos permitiera acceder de forma segura a nuestros ficheros tanto dentro como fuera de la oficina, desde uno o más ordenadores. Estuve mirando varias opciones, y les pongo a continuación mis conclusiones con la esperanza de que la araña de Google pase pronto y me regale unos cuántos miles de hits. Y si encima a alguien le es de ayuda, mucho mejor. Pero es por los hits, no se engañen.


Ubuntu one

Ubuntu One es caro, no ofrece muchas de las opciones que ofrecen otras soluciones, y no es multiplataforma. Vamos, por no haber, no hay ni paquetes para distribuciones que no sean Ubuntu. ¿Les suena lo de vendor lock-in? Pues eso. Y de la mano de una de las empresas Open Source más famosas. Vivir para ver. La pongo aquí sólo porque es de Ubuntu, no para que la usen. En serio, váyanse a cualquier otra opción.


Dropbox

Ésta es la que uso yo. Un resumen rapidísimo:

  • Sincroniza una carpeta con un backup remoto y entre varios ordenadores
  • Puedes apuntarte de forma gratuita y te regalan 2GB
  • Puedes ganar 250MB más si alguien se da de alta con un enlace que les pases; y esa persona también ganará 250MB (pinchen aquí para regalarmdigoo, para ganar 250MB cuando se den de alta)
  • Hay opciones de pago: 50GB por 10$/mes, 100GB por 20$/mes
  • Es totalmente transparente, toda la sincronización se hace automáticamente
  • Tienes un historial de cambios de 30 días, por si borras el fichero que no debías
  • Con el interfaz web se puede hacer todo lo que se puede hacer con un navegador de ficheros normal; de hecho, muchas cosas sólo se pueden hacer con el interfaz web
  • La integración con Nautilus es excelente; si usan otros navegadores también funciona, pero no mola tanto :-)
  • Pueden compartirse carpetas con otra gente que tenga cuenta en Dropbox, en sólo lectura o lectura/escritura
  • Hay una aplicación para iPhone, para los pijosafortunados que lo tengan
  • No tiene versión multiusuario

Lo hay para Windows, OSX y Linux (varias distribuciones). Lo mejor que tiene es que no se ve. No te enteras de que está ahí salvo porque hay un icono en la bandeja del sistema que te dice cuándo se hacen sincronizaciones, y porque los ficheros que modificas en el ordenador de casa aparecen cambiados en el ordenador de la oficina y el portátil, sin que hagas nada.

Lo malo es lo de la versión multiusuario. Es algo que lo descarta para lo que queríamos en el trabajo.


SpiderOak

Parecido a Dropbox, pero más enfocado a hacer un backup online que a sincronizar datos entre varios ordenadores. Puede hacerlo también, que conste; por eso lo incluyo. Opciones a considerar:

  • Es más barato que Dropbox: 100GB son 10$/mes, y cuenta gratuita con 2GB
  • Por cada amigo que se da de alta te regalan 1GB, no "sólo" 250MB (aunque el máximo que puedes alcanzar así son 5GB)
  • Puedes limitar los dispositivos que se sincronizan, y así evitar que alguien te robe el usuario y la contraseña y se baje tus datos a su portátil desde la wifi de la cafetería de al lado (en teoría, al menos)
  • Puedes sincronizar cualquier carpeta del ordenador, no sólo una
  • Puedes sincronizar datos entre ordenadores de forma asimétrica: por ejemplo, la carpeta /home/pepe de tu portátil con /home/chema de tu ordenador de escritorio
  • No está integrado con ningún navegador de ficheros
  • El interfaz web sólo permite descargarse los ficheros de los que has hecho copia
  • Se puede usar sólo en línea de comandos
  • No tiene soporte multiusuario

Es la segunda opción que yo consideraría. Si fuera a pagar por guardar mis datos en Intenet, no dudaría: cuesta la mitad que Dropbox. El programa tiene mil y una opciones, lo que en parte compensa las carencias del interfaz web. También es multiplataforma (Windows, OSX, Linux).


JungleDisk

No lo había considerado en mis pruebas iniciales, pero tiene justo lo que buscábamos para el trabajo: soporte multiusuario. Puede haber una cuenta "administrativa" y "subcuentas" para los usuarios, con estadísticas de espacio y ancho de banda usado por los usuarios, informe de cambios por RSS o email (como Dropbox) y varias cosas más. Más datos:

  • No hay versión gratuita, con lo que no pude probarlo en serio
  • El interfaz web es muy completo ... dicen en la página web
  • Puedes sincronizar cualquier carpeta del ordenador
  • Es multiplataforma
  • No pagas más que 2$/mes por usuario, pero el espacio se paga aparte, en Amazon S3
  • Usar Amazon S3 es algo bueno en sí mismo, porque puedes contratar el espacio que te dé la gana (no cantidades fijas como las que te imponen Dropbox o SpiderOak) e interactuar con él con las muchas herramientas que hay
  • Está enfocado a backup, y sólo han añadido sincronización "estilo Dropbox" en la versión 3.0 (de hace un par de semanas), que es beta
  • Se pueden guardar versiones anteriores de los ficheros, limitándolas por días (configurable por el usuario) o por número de versiones (idem)
  • Hay una versión "server" para hacer backup de servidores

Todo tiene muy buena pinta, pero sólo cuando salga la versión 3.0 (por la sincronización de ficheros). La hubiera considerado antes si dieran algo de espacio gratuito para probar.

Si todo lo que prometen es cierto, será la solución que usemos en el trabajo. Espero que no sea muy complicada de usar para gente "no informática", algo que en Dropbox han tenido muy en cuenta. La idea es instalar y configurar el programa y luego olvidarse de que está ahí.

De momento, cualquiera de estos proveedores pide demasiado dinero. Espero que en poco tiempo Google lance algo parecido y haga bajar los precios, como hicieron al sacar GMail. Me gusta la idea de tener un backup automático de todas mis cosas, y tenerlas sincronizadas entre ordenadores, pero no lo necesito tanto como para pagar por ello. Espero que muchas empresas usen estos servicios para poder sufragar los costes de usuarios con mucha cara y pocas ganas de gastar, como yo.

Youtube es la nueva escuela

Estoy empezando a entusiasmarme con Youtube. ¿Quieres saber cómo tocaba Stevie Ray Vaughan "Rude Mood"? Está ahí. ¿Quieres aprender técnicas básicas para tocar el bajo? Está ahí. ¿Quieres ver lecciones dadas por el propio Allan Holdsworth? Está ahí. Lo difícil es encontrar algo que no esté; al menos, en lo que respecta a cosas de guitarreo.

Es increíble.

Supongo que mucha gente ya está acostumbrada, pero para mí tanta información de golpe es un pequeño shock. Una cosa es saberlo, pero otra empezar a entender las consecuencias; desarrollar el hábito de ir a Youtube en cuanto quieres saber cómo se hace algo, porque seguramente alguien ya ha puesto un vídeo explicándolo.

Leí en algún sitio que más de la tercera parte de los vídeos de Youtube son "DIY", Do It Yourself, vídeos didácticos de uno u otro tipo. Algún antropólogo debe estar ya haciendo un estudio sobre lo que eso significa. ¿Nos interesa tanto comunicar lo que sabemos? ¿Es un impulso tan fuerte? ¿O es sólo publicidad y fanfarroneo?

Cómo reconocer a un buen "hosting provider"

Cuando, unos días después de un problema hardware (del que, personalmente, no llegué a enterarme), te mandan un mensaje como éste:

Greetings,

During the night of 19 August, an incident with the cooling systems at
one of our colocation partners required us to shut down part of our
hosting platform as a precautionary measure, which may have suspended
your operations for several hours.

We have decided to compensate our customers impacted by this outage.

We have therefore extended by two days the current validity of all of
your hosting products at Gandi.

We recognise the inconvenience this may have caused, and the entire
Gandi team apologise for this incident and thank you for your
continued support.

No son los más baratos, pero con cosas como éstas se ganan la confianza de cualquiera.

Syndicate content