martes 15 de enero de 2008

Confieso que he pecado


Esta foto es de hace un año, en mi anterior trabajo...mi escritorio con mis 2 PCs corriendo Debian Etch.

La imagen es la pesadilla de cualquier admin Linux/Unix :P

Lo paradójico es que aunque me fuí de ese lugar esa PC sigue funcionando y sigue con Debian Etch :)

lunes 14 de enero de 2008

No hay red

"No no, red no hay... Pero mirá que el Radmin [1] anda eh!"[2]

Gran frase... Me vino a la mente y no pude evitar menos que sonreir :)

[1] Software de control remoto para Windows similar al VNC
[2] Frase pronunciada por un compañero en un trabajo anterior

domingo 13 de enero de 2008

Mi acceso wifi público

Esta semana que pasó en el blog de Fabio hubieron 2 post [1] y [2] bastante movidos respecto al tema de poner a disposición de cualquiera el acceso a través de nuestra red Wifi, por supuesto estos post tienen su origen en el que publicó Bruce Schneier en Wired, muchos se hicieron eco de esa postura e incluso cuando aprovechamos eventualemente un AP abierto (vecino generoso si los hay) nos quedan ganas de hacer lo mismo, que cualquiera que lo desee utilice nuestra red.
La cuestión es el control, aqui en Argentina los accesos a internet son caros y de mala calidad, yo particularmente dispongo de un acceso via cablemódem de 640k eso hace que no pueda simplemente dejar abierto al 100% mi Wifi, si cualquiera que se conecte y no lo controlo se pone a bajar P2P a mansalva o consumir streaming de manera desaforada me deja poco ancho de banda utilizable para mi y mi novia.
La solución por supuesto esta en utilizar Linux y mediante las herramientas que el Software Libre nos provee lograr la convergencia que deseamos, este post es para esquematizar cómo lo hago yo, detallaré las herramientas que uso y cómo, posteriomente tengo intenciones de hacer un step by step para que cualquiera lo pueda aplicar en su home.


La imagen es bastante detallada sobre la topología que utilizo, pero el propósito es dejarlo lo más claro posible.
Dispongo de un equipo con 3 placas de red, 1 conectada al módem de mi ISP, otra va al AP y la restante a un switch en el que esta mi propia PC y la de mi novia.
Con tan pocos recursos en ancho de banda, el secreto esta en la combinación de herramientas y cómo las utilizamos, como muchos ya adivinaran a squid (EL proxy/cache en Linux) le sumo dansguardian y hago una sopa con reglas de netfilter (iptables para los amigos) pero sobre este último punto, no uso iptables puro y duro (como dice un amigo gallego) sino que simplifico la administración de mi firewall con firehol, que es un wrapper para administrar Netfilter (iptables también lo es).

Al disponer de un Proxy/Cache como squid exprimo al máximo el consumo http de mis redes, dansguardian lo utilizo solamente para el tráfico en la red wifi, en la red lan privada no hay restricciones de ningún tipo y solamente aprovecho el proxy.
Respecto a cómo controlo la red wifi es simple, incluso siendo que esta abierta, los únicos puertos TCP (UDP nada) que pueden salir son los siguientes: 80 y 443 (http y https respectivamente) con eso me aseguro que ningún otro puerto utilizable por programas P2P, ftp, juegos, etc. salga hacia afuera.
Claro, con tener libre http y https no es suficiente, por ejemplo se pueden configurar programas clientes y servidores para escuchar en esos puertos y se saltean mis restricciones, incluso algo que eventualmente yo mismo utilizo es establecer un vínculo VPN con determinados servidores/servicios y ademas de cifrar mi enlace, me salto cualquier tipo de restricción que AP's públicos aplican :D.

El secreto esta en utilizar dansguardian, es sabido por todos los linuxeros/admins que se puede redirigir el tráfico http adonde uno lo desee, en este caso la dupla squid/dansguardian cumple la función de proxy transparente para la red wifi, si añadimos que se pueden crear grupos dentro de la configuración de dansguardian y a esos grupos adosar una lista de sitios permitidos se simplifica todo el esquema.

Entonces lo que hice fue poner toda la red wifi dentro de un grupo y a ese grupo permitirle navegar solamente en los siguientes sitios:
http://www.gmail.com/
http://mail.yahoo.com/
http://www.hotmail.com/
http://www.clarin.com.ar/
La lista sigue, estan incluidos todos los bancos, sitios de búsqueda laboral, el resto de los principales diarios nacionales y algunos internacionales, sitios de impuestos, etc. Como verán no es demasiado extensa, y no hay manera de que puedan navegar por donde no es permitido (salvo que técnicas de hacking como pharming esten involucradas) este comportamiento de dansguardian se llama
"Blanket Block" y no sirven las pseudotécnicas como las de navegar a través del traductor o la caché de google ;).

Tengo hasta 6 usuarios que navegan tranquilamente aunque al principio les costó entender el concepto de filtrado (conozco solo a uno) cuando intentan acceder a un sitio fuera del listado permitido les aparece una linda página con el mensaje apropiado (by dansguardian) esta página es totalmente personalizable y hay muchos templates para bajar de internet.

Puede ser que mi metodología para este acceso no sea compartida por todo el mundo, habrán los extremistas que requerirán que este al 100% abierto, pero como se entenderá seria perjudicial para mi, el propósito es mas que nada servir de emergencia, si desean tener la libertad de navegar por donde quieren que lo hagan por sus propias conexiones, sé de varias personas que a veces solamente necesitan chequear sus mails en ese momento, esto es una alternativa.
Posteriormente tengo intenciones de integrarme a la red de www.buenosaireslibre.org.ar
ya que mi server cumple funciones de mirror local de Debian (etch/i386 y Lenny/i386,amd64) asi que la carga y tareas van a ser mayores.

Como dije al principio, este post es el inicio, iré en los siguientes haciendo un paso detallado de la instalación y configuración asi se puede aprovechar :)

Saludos

viernes 11 de enero de 2008

A ver, dibujame un hombre bajo la lluvia

Si..!!! Tengo trabajo nuevo, me acaban de llamar de esta empresa para ir el Lunes y firmar todo asi cerramos el ingreso.

Aunque por supuesto, como se nota en la imagen contigua, soy pésimo para dibujar con decirles que donde "supuestamente" se notan unas rodillas iban los pies pero corregí al vuelo (ejem).

Mis tareas básicamente van a ser administrar 60 servidores con Debian (Woodys, Sarge, Etch) mas algunos pocos Windows (inevitable) para una empresa de contenidos y medios en internet. Principalmente es la gestión de webservers y load balancing de contenido http, nunca hice algo a esa escala, pero bueno las aptitudes y capacidades van a ayudar, sino el psicotécnico que hice durante 2hs no hubiera dado estos resultados.

Salario...? bueno, eso es información privada, pero esta bien pago y me dieron lo que pedí, principalmente porque fuí con confianza, aplomo y muy seguro de mi mismo; Sumado a que hoy el mercado pide Linux, que por supuesto todos los que estamos en este perfil lo sabemos.

Qué mas hice...? a ver, me hicieron un test de manchas con solamente 3 gráficos (2 veces) estadísticamente por lo que recuerdo mi acepción de los gráficos no tuvo tintes negativos o demasiado raros, hubo uno que me pareció algo vagamente similar a una pintura.

Despues dibujar un animal y escribir al respecto, fue muy fácil... solamente tenia que hablar de mi gata :)



:D

miércoles 9 de enero de 2008

UDEV: Cambiar nombre a las interfaces

Para los casos en que se disponga de varias interfaces de red, muchos notarán que el instalador de Debian no las nombra (eth0,eth1, etc) de la forma más lógica según nos parece.

Como ejemplo puedo decir que las motherboards modernas traen ya 2 interfaces onboard, son lo suficiente para el común de los usuarios, como administrador de red y al tener varios equipos disponibles a veces necesitamos mas de 1 interface, mi caso particular es que tengo un server Debian con salida mediante 2 ISP (en un cliente), para lo cual claramente necesito tener 3 interfaces como mínimo y poder dar acceso a la red local hacia internet.


Como asiduo usuario y consumidor de otros blogs me encontré estos dias con un método, pero considero que no es necesario.
Ya que si revisan bien el directorio /etc/udev/rules.d se encontrarán con el archivo /etc/udev/rules.d/z25_persistent-net.rules el cual hay que editar y con solamente modificar el nombre (en negrita) de las interfaces es suficiente

# This file was automatically generated by the /lib/udev/write_net_rules
# program run by the persistent-net-generator.rules rules file.
# You can modify it, as long as you keep each rule on a single line.

# PCI device 0x10de:0x0373 (forcedeth)
SUBSYSTEM=="net", DRIVERS=="?*", ATTR{address}=="00:18:f3:3e:02:c2", NAME="eth0"

# PCI device 0x10de:0x0373 (forcedeth)
SUBSYSTEM=="net", DRIVERS=="?*", ATTR{address}=="00:18:f3:3e:05:f3", NAME="eth1"

# USB device 0bda:8187 (rtl8187)
SUBSYSTEM=="net", DRIVERS=="?*", ATTR{address}=="00:15:af:05:d3:4f", ATTR{type}=="1", NAME="wlan0"

El orden no afecta el comportamiento de UDEV por lo cual es extremadamente simple controlar la nomenclatura de las interfaces, pero les advierto que por alguna extraña razón no funciona en Ubuntu 7.10 Server, hace unos meses me encontré conque debia instalar un nuevo server con hardware que el instalador de Etch no reconocía (la controladora Sata) asi que bueno, contrario a mi predilección instalé Ubuntu Server 7.10 (a la semana de haber sido lanzado) y me encontré justamente con un orden de las interfaces que no queria, modifiqué el/etc/udev/rules.d/z25_persistent-net.rules pero al reiniciar laPC me encontré conque me faltaban 2 de las interfaces, el tiempo que perdí hasta que revisé nuevamente el archivo me mostró que la versión de UDEV que viene en Ubuntu me lo habia modificado, y manteniendo la modificación que yo hice agregó la que Ubuntu queria, entonces tenia 2 interfaces distintas con las misma MAC, eso explica el porqué me desaparecieron ambas.
Al final como solamente cumple funciones de ruteo y firewall (no proxy, no dansguardian) le puse un Lenny y se acabaron los problemas :)

ACTUALIZACION: Tengo una PC con varias placas en calidad de prestamo asi que hice una instalacion de prueba con Ubuntu server y aqui no me ha dado problemas.