Informática

Cosas de informática en general.

OpenBSD

Vamos a dejar claras algunas cosas sobre OpenBSD:

  • El instalador es de chiste. Me hace gracia que la gente se quejase hace unos años de que instalar Debian era difícil. Comparar aquello con el instalador actual de OpenBSD es como comparar un BMW serie 5 con un Dacia Logan: los dos te llevan al mismo sitio, pero en uno vas un poco más cómodo que en el otro.
  • Es lento. No tengo benchmarks, pero si se creen lo que dicen de Gentoo (que por compilar toda la distribución va más rápida) sin que haya habido nunca un estudio serio que lo apoye, pueden creerse esto también. Supongo que tanto código de auditoría es lo que tiene. Aparte, el sistema de ficheros viene por defecto en modo síncrono. Es más seguro, pero tiene un precio.
  • La gestión de paquetes es inexistente. Tienes pkg_add y derivados, pero lo que instala (con sus dependencias y todo, eso sí) es un tar.gz glorificado. La otra opción es instalar desde fuentes, que todo el mundo sabe que es la mar de cómodo. Es buena idea tener un compilador instalado en un firewall, para que luego si te lo hackean puedan compilarse los exploits nativamente sin tener que bajárselos ya compilados desde algún sitio. Seguro que van mucho más rápido.
  • Soporte de dispositivos. No hay competencia. Aunque entiendo que ahí pasa como al comparar Linux con Windows: si no hay soporte de los propios fabricantes, es difícil. Pero hay que tenerlo en cuenta también.

Ahora bien: dicho todo esto, el sistema de firewalling es muy bueno (y no es otra ironía, lo digo completamente en serio). Ya había oído que la sintaxis de pf era mucho mejor que la de iptables, pero como uno es un poco talibán de lo suyo y se está convirtiendo en un carcamal reaccionario con el paso de los años, no le había prestado mucha atención.

Tengo nuevo ordenador desde hace unas semanas, y no quería "ensuciar" la instalación de escritorio con muchos programas "de servidor" que usaba para mantener una pequeña infraestructura de máquinas virtuales para pruebas: squid, dnsmasq, enmascaramiento con iptables (vean mi entrada anterior sobre Firestarter y FWBuilder), etc. Lo que hice fue crear una máquina virtual que hace todas esas cosas, conectada por un lado a la red "externa" (la que recibe IPs por DHCP desde el router de Internet) y por otro a una red interna en la que cuelgo las máquinas virtuales. Podría haberle puesto Linux, como a todas las demás, pero como soy un friki le puse OpenBSD.

La parte de configurar los "repositorios" de paquetes, instalar dnsmasq y squid y configurarlos para que arranquen con el inicio del sistema ya hizo saltar algunas de mis fobias anti-BSD. El sistema de arranque, en concreto: yo siempre he sido más de SysV, con su directorio init.d y sus miles de scripts de control de servicios; el sistema BSD de "el gran script arrancador" me parece un atavismo informático. Pero funciona, y tampoco iba a pegarme tanto con esto como para quejarme.

La parte del firewall me llevó algo más, por desconocimiento de cómo "hablar firewallés" con OpenBSD. Y fue un agradable descubrimiento. Ejemplos a continuación.

Esto es lo que quería hacer: dada una red interna (la 10.0.0.0/8) configurada en el interfaz "interno" (em1) de la máquina, en la que van a estar las máquinas virtuales, debía permitirse el paso de todo el tráfico desde esa red y enmascararlo con la IP del interfaz "externo" (em0). Con iptables serían dos reglas (suponiendo eth0 y eth1):

iptables -A FORWARD -i eth1 -s 10.0.0.0/8 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -s 10.0.0.0/8 -j MASQUERADE

Lo primero que se puede hacer en OpenBSD con pf y que no se puede hacer con iptables es algo tan básico como definir grupos. Por ejemplo, éste con las redes internas:

localnets = "{ 10.0.0.0/8 }"

Que podría ampliar a más redes, incluyéndolas en la misma variable. No vean la de bucles for que he hecho yo con iptables porque no tiene una cosa así. Ridículo. Hay algo llamado ipset que lo implementa, pero claro, no está en la versión "oficial". Y eso implica parchear y mantener algo distinto a lo que viene con la distribución. Que va a ser que no.

Hacer lo que quería con pf sería:

pass in on em1 from { $localnets } to any
nat on em1 from { $localnets } to any -> em0

Me rasca un poco eso del "->" para indicar la dirección IP con la que se va a hacer NAT (en este caso, la que sea que tenga el interfaz em0). Admitámoslo como una extravagancia más de OpenBSD.

Son dos líneas, exactamente igual que con iptables. Pero les reto a presentarles las dos versiones a alguien que no sepa nada ni de iptables ni de pf, y que diga cuál de las dos prefiere. La versión de OpenBSD es mucho más fácil de ver, y hace lo mismo, que es lo importante. Si un día tengo ganas y tiempo, a lo mejor intento crear la configuración de un firewall complicado que tenga ahora con iptables usando pf. Sólo por ver si la diferencia se hace todavía más grande o se mitiga un poco. Una cosa que no sé si se puede hacer en pf, por ejemplo, son cadenas de usuario para agrupar las reglas. A lo mejor metiéndose más a fondo descubro que no, y otras limitaciones que no son visibles a simple vista.

No voy a pasarme a OpenBSD, ni nada parecido. Sólo me gustaría que alguien portara pf a Linux, o hiciera un front-end tipo pf para iptables. Parece que la siguiente generación de los firewall en Linux, nftables, será más parecida a pf. Pero por lo poquísimo que he visto, parece más bien algo más complicado. Sería cambiar una cosa difícil por otra igual de difícil, que no es mucho progreso.

Aalguien debería mandarle un CD de OpenBSD a la gente de netfilter para que pensara en ello.

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.

Nuevo juguete

Me he comprado una Bamboo Fun Medium, y me lo estoy pasando bien con ella. Como prueba, un botón:

Palabras varias

Si pinchan en la imagen verán un SVG más grande. Iba a ponerlo como "thumbnail", pero por alguna razón el estúpido Firefox no lo muestra y he tenido que usar un PNG.

Eso que ven intenta ser sánscrito, pero sólo en forma. Las palabras, como habrán visto también, son muy castizas. Es una forma de hacer pruebas con la tableta e Inkscape.

Una forma muy friki, eso sí.

¿Qué hago con mi iBook?

Soy una víctima de la obsolescencia planeada de la informática.

Tengo un iBook G4 de 12", a 1Ghz, con 768MB de RAM y 60GB de disco duro. Tiene Bluetooth, 802.11b/g, un altavoz fastidiado y la batería sólo funciona si está enchufado, lo que lo convierte en un ordenador portable más que portátil. Tiene instalado OS X 10.3, "Panther", que era el que venía "de serie". Compré el ordenador de segunda mano en el 2006, cuando tenía dos años, con lo que ahora tiene cinco.

Son muchos años para un ordenador. "Panther" está en la lista de sistemas operativos en extinción. La versión siguiente, "Tiger" (10.4), ya es vieja; y "Leopard" (10.5) es lo que viene con los Macs que se venden ahora. Usar "Panther" ahora es como usar Windows 98 cuando Windows XP lleva un año en circulación. No es fácil encontrar software nativo, y si lo encuentras son versiones antiguas. Eso no me importaría demasiado: ahora mismo estoy usando Firefox 2.0.20, y salvo Flash (que al fin y al cabo tampoco podía usar, porque no hay versión para PowerPC), no echo nada de menos. Lo malo es cuando no hay versión disponible, ni antigua ni nada. Por ejemplo: estoy buscando un cliente de subversion, pero salvo que tire de MacPorts o de Fink (que tampoco tiene la última versión para "Panther"), no lo hay. Los productos Open Source suelen ser más "tolerantes" al uso de sistemas operativos algo antiguos, pero cinco años son muchos años. Hace cinco años acababa de salir la primera Ubuntu: la versión 4.10, "Warty Warthog"; ahora está a punto de salir la 9.04, "Jaunty Jackalope". Hace cinco años la distribución estable de Debian era "Sarge" (3.1) y ahora es "Lenny" (5.0). En ese tiempo han salido versiones menores de "Panther", con lo que ahora tengo la 10.3.9. Pero claro, sigue siendo "Panther".

Así que ahora no sé qué hacer. Quería mantener OS X, porque es el operativo nativo del iBook y se nota. Por ejemplo, en cómo manejar el touchpad. Como sólo tiene un botón, el segundo botón que se presupone en Linux se simula con F12. El botón del medio se simula con F11. Luego está el soporte de dispositivos: a estas alturas todo está bien soportado en Linux, pero noto que el ventilador (no sé si del micro, del disco duro, o qué) no se oye en OS X salvo si le doy mucha caña, pero en Linux se activa con poco que haga. En OS X se puede usar la tecla "Alt" como sustituto de "AltGr" para teclear arrobas o sostenidos, pero en Linux hay que usarla en combinación con la tecla "Fn" (hay formas de cambiarlo, lo sé; pero estoy hablando del comportamiento por defecto). En resumen, la user experience no es tan buena.

Pero no me va a quedar otro remedio que instalar Linux. Cada vez que necesito algún programa nuevo, sudo. Estoy demasiado acostumbrado a tener todo al alcance de apt-get. Tuve durante un tiempo OS X y Linux, y Gnome se movía bastante bien. El iBook trae una ATI de 32MB, que da para tener Compiz con bastantes efectos activados sin sufrir mucho. Siempre me pareció que el disco duro iba más lento en Linux que en OS X; pero no tengo pruebas, pudo ser mi impresión.

Otra opción sería venderlo. ¿Pero por cuánto? Se pueden encontrar netbooks casi tan potentes (aunque no tan bonitos, por supuesto) por poco más de 200€. Para venderlo por menos que eso, me lo quedo aunque sea como adorno.

Así que ... tendrá que ser Linux. Debian o Ubuntu; antes tenía Ubuntu porque no es lo mismo el hardware PowerPC que el Intel, y no quería ensuciarme las manos demasiado. Pero como mi ordenador "principal" lleva Ubuntu, y no dependo de drivers privados (los de Nvidia), podría volver a Debian después de varios años de exilio. Aunque no sé cómo de difícil sería la configuración de la tarjeta wifi; debe estar bien soportada, pero en Ubuntu venía todo hecho.

Creo que es el momento de empezar a bajarse el netinst de "Lenny" para PowerPC.

"Captcha" y Mollom

Ustedes no lo ven, pero cada poco tiempo tengo que entrar en la cola de aprobación de comentarios y borrar unas decenas de ellos que son spam. Espero acabar con ello usando el módulo captcha que he instalado hoy, y que requerirá algo más de esfuerzo por su parte cuando quieran dejar un comentario.

El módulo captcha implementa el típico "test de humanidad" basado en la identificación de unos caracteres "ofuscados" que aparecen en una imagen como requisito para enviar un comentario. Lo he configurado con la opción más relajada, de forma que sólo con una identificación correcta se puedan enviar varios comentarios. Me hubiera gustado que sólo se aplicara a los usuarios sin autenticar, pero no sé (de momento) cómo hacerlo.

Mirando cosas de éstas encontré un módulo de Drupal que usa los servicios de Mollom. Bajo este palindrómico nombre se encuentra un servicio similar al de grandes firmas (la más famosa que conozco es Message Labs) que actúan como "agente externo" para identificar spam. En unos casos, una empresa configura como MX de sus dominios los servidores de esa firma, que luego reenvían el correo a los servidores "de verdad" de la empresa; en otros, la firma proporciona un servicio acoplado a la solución antispam que ya tenga la empresa, o un appliance "enquistado" en la infraestructura de correo de la empresa, que hace consultas a la firma para identificar spam. Para SpamAssassin hay una que se llama CloudMark y que deja evaluar el servicio durante 30 días, por si quieren probar.

Mollom es eso, pero para servicios web. Cuando alguien introduce nuevo contenido en tu web, se consulta a los servidores centrales de Mollom para ver si es ham o spam. En función del resultado de la evaluación se publica el contenido o no. Hay dos versiones: Mollom Free y Mollom Plus, de pago (30€ al mes). La diferencia está en el número de posts al día que permiten. Con 100 de ham al día, cualquiera que tenga un blog personal tendrá suficiente.

Yo no he usado Mollom porque prefiero no depender de terceras partes, pero puede que a ustedes les guste probarlo. No dejen de comentarlo si lo hacen.

Aunque sólo sea por servir de cobaya para que luego lo ponga yo por aquí.

Syndicate content