Cosas varias, tecnología y familia.... y descargos de la pega

martes, 21 de abril de 2009

Tech: VLAN Bridge Tunneling (VPN) - Linux

Hace poco se me presentó la necesidad de crear una VPN en capa 2 (enlace), es decir una VPN que funcione como bridge, que además pueda pasar jumboframes (VLAN TRUNKING), Es decir una troncal con VLANs.

En un comienzo pensé en hacerlo como un tunnel GRE, sin embargo para que GRE tenga soporte de bridge en linux hay que recompilar un montón de cosas, y estaba buscando simplicidad.

Opté entonces por ocupar el módulo TUN/TAP para el cual TAP funciona como una interface virtual de capa 2, justo lo que andaba buscando.

Aunque quería hacerlo en forma de linea de comando como se hace con los túneles IPIP, GRE y otros, la verdad es que no encontré el como, asi es que ocupé una solución demoníaca externa AKA, un demonio de VPN.

TUN/TAP es ocupado por varios paquetes de soluciones VPN y muchas otras soluciones de virtualización para crear túneles de capa 2 o 3. Entre los paquetes de VPN, con los que ya había trabajado anteriormente, están OpenVpn y VTUN. Ocupé VTUN que es mucho más fácil de trabajar mas simple y mucho mas liviano, y si fuera necesario también encripta y comprime.

De como se hace... siga leyendo

Bueno lo primero es hacerse del paquete, lo pueden encontrar en vtun homepage y muchas distros los traen en sus repos.-

Después de compilar/instalar ->

Carguen el módulo en el kernel (vean la docu de su distro para dejarlo autoiniciado)

modprobe tun

Revisen vía dmesg o vean si aparece en /dev/net/tun.
Como VTUN trabaja en modo cliente/servidor, deben tener cosas similares en ambas máquinas.

En el server, dejen todo lo que viene por defecto y agreguen el siguiente perfil (bueno sería que borraran los otros)

Tunnel {
passwd tu_password; # Password
type ether; # Ethernet tunnel
device tap0; # Device tap0
proto udp; # UDP protocol
# compress lzo:1; # LZO compression level 1
# encrypt yes; # Encryption
stat yes; # Log connection statistic
keepalive yes; # Keep connection alive

up {
# Connection is Up

# Assign IP address
# ifconfig "%% 10.1.0.1 netmask 255.255.255.0";
ifconfig "%% up"
# No es necesario agregar una IP, ya que se va a agregar a un bridge

# Add route to net 10.2.0.0/24
# route "add -net 10.2.0.0 netmask 255.255.255.0 gw 10.1.0.2";
# No es necesario agregar rutas

# Enable masquerading for net 10.2.0.0.0/24
# firewall "-A FORWARD -s 10.2.0.0/24 -d 0.0.0.0/0 -j MASQUERADE";
# y Absolutamente inecesario un firewall
};

down {
# Connection is Down

# Shutdown tap device.
ifconfig "%% down";

# Disable masquerading for net 10.2.0.0.0/24
# firewall "-D FORWARD -s 10.2.0.0/24 -d 0.0.0.0/0 -j MASQUERADE";
};
}

En el Cliente de modo similar agregamos el siguiente perfil

Tunnel {
passwd tu_passwrd; # Password
type ether; # Ethernet tunnel
device tap0; # Device tap0
proto udp; # UDP protocol
# compress lzo:1; # LZO compression level 1
# encrypt yes; # Encryption
stat yes; # Log connection statistic
keepalive yes; # Keep connection alive

up {
# Connection is Up

# Assign IP address
ifconfig "%% up";

# Add route to net 10.2.0.0/24
# route "add -net 10.2.0.0 netmask 255.255.255.0 gw 10.1.0.2";

# Enable masquerading for net 10.2.0.0.0/24
# firewall "-A FORWARD -s 10.2.0.0/24 -d 0.0.0.0/0 -j MASQUERADE";
};

down {
# Connection is Down

# Shutdown tap device.
ifconfig "%% down";

# Disable masquerading for net 10.2.0.0.0/24
# firewall "-D FORWARD -s 10.2.0.0/24 -d 0.0.0.0/0 -j MASQUERADE";
};
}


Al igual que el anterior, se pueden dar direcciones IP y rutas, pero para nuestro caso no es necesario. Los dejé a la vista, pero comentados

Una ves terminadas las configuraciones se debe levantar el tunnel

En el Server (los [...] son opcionales para especificar cual archivo ocupar)

vtund -s [-f /etc/vtund/vtind.conf]

En el cliente

vtund Tunnel

Una ves conectados asegúrense que las interfaces estén UP

Posteriormente en el Server, creamos el bridge

brctl addbr br0
brctl addif br0 eth1 #La Interfaz VLAN TRUNKING
brctl addif br0 tap0 #La interfaz virtual
ifconfig br0 up #Asegúrate que las otras 2 interfaces esten UP

y en el cliente hacemos lo mismo según corresponda(tap0 puede cambiar a tap1 y eth1 puede no ser tu troncal ;) )

Ahora que el bridge está UP podemos crear una interfaz vlan/virtual para revisar estado y administrar inline, y listo, hemos teminado nuestro tunnel bridge con soporte VLAN.

Ciao!!!

jueves, 19 de febrero de 2009

Tech: Log blocked IPs by mod recent

Hace un tiempo les mencioné como hacer un bloqueo de puertos utilizando el mod recent de iptables.

Bueno, ahora les digo como pueden hacer un logeo de los mismos… es decir, generar una entrada en el log cada vez que se bloquea una ip.

El truco es muy simple. Veamos primero el original:

iptables -A INPUT-p tcp -i eth0 --dport 22 -m state --state NEW,INVALID -m recent --name ChicoMalo --set
iptables -A INPUT -p tcp -i eth0 --dport 22 -m state --state NEW,INVALID -m recent --seconds 60 --hitcount 4 --name ChicoMalo --update -j DROP

Primero damos vuelta el orden. Ya que es más optimo que se revise al revés, es decir, para el primer paquete pasa de larglo la primera regla y después los segudnos y los bloqueados no llegan a bajar nada.

Y además le agregamos la línea donde nos va a loggear la dirección bloqueada, con un hitcount con 1 menos que el anterior y listo.

Entonces:

iptables -A INPUT -p tcp -i eth0 --dport 22 -m state --state NEW,INVALID -m recent --seconds 60 --hitcount 4 --name ChicoMalo --update -j DROP
iptables –A INPUT –p tcp –I eth0 –dport 22 –m state –state NEW,INVALID –m recent –seconds 60 –hitcount 3 –name ChicoMalo –update –j LOG –log-prefix “BLOQUEADO: ”
iptables -A INPUT-p tcp -i eth0 --dport 22 -m state --state NEW,INVALID -m recent --name ChicoMalo

Eso es todo, aqui tienen sus logs de bloqueo de IPs.

jueves, 20 de noviembre de 2008

Arriendo Departamento en el Centro

Sres visitantes e intersados a fin.

Arriendo un departamento en el centro de Santiago (Chile). De 2 dormitorios, Matrimonial y de niño(a). Digo de niñ@ porque es muy pequeño para un adulto. Cocina Americana, 1 Baño.

No tiene bodega ni estacionamiento

La ubiación es a un costado de la plaza Santa Ana, a pasos del Metro. Orientación oriente sin edificio cercano (mirando la plaza) 9º Piso.

El edificio consta con calefaccion central, agua caliente, seguridad (camaras cctv), picina (temperada), gimnacio y sala multiuso.

arrendo de $170.000, los gastos fijos (comunes) son del orden de los $33.000 + Gastos variables (agua caliente y calefacción)

Consultas con Carlos 09-88055782


Ver mapa más grande

jueves, 6 de noviembre de 2008

Quote of the day

Cita del Dia:

Paseando por wikipedia, seguí un link de wikiquote y me encontre con esto:

Cita del dia Wikipedia 6/Nov

Me gustó tanto que le saque una fotito, y la puse en el bloh!

bye

jueves, 30 de octubre de 2008

Chiste de Locos

Un chistecito que me envio mi Tio, desde Mexico lindo



En el jardín de un hospital psiquiátrico se reúnen a conversar seis trastornados:

Un zoofilico, un sádico, un asesino, un necrofílico, un pirómano y un masoquista.

Sin saber cómo ocupar su tiempo, el zoofilico rompe el silencio y dice:
-y si nos cogemos un gato?

Entonces el sádico dice:
-¡Eso, eso, vamos a cogernos un gato y después lo torturamos...!

Dice el asesino:
-¡Vamos a cogernos el gato, torturarlo y después lo matamos!

Dice el necrofílico:
-¡¡Si, Si!!, ¡Vamos a cogernos un gato, torturarlo, matarlo y después nos lo
abrochamos otra vez!

Y dice el pirómano: -¡Eso!... Vamos a cogernos un gato, torturarlo, matarlo, nos lo volvemos a
coger otra vez y le prendemos fuego!

Se hace un repentino silencio, todos miran al masoquista y le preguntan:
-Y tú qué cabrón, no dices nada?

Y el masoquista dice:
- *Miauuu!*

lunes, 13 de octubre de 2008

ZoneMinder en ArchLinux

Como instalar ZoneMinder en ArchLinux.
Para aquellos que no lo saben, ZM es una solución para trabajar con cámaras IP o cámaras corriente a través de dispositivos compatibles con video4linux, siendo esta última la más aplicada y apetecida. Quedando como un servidor web accesible (según tus conocimientos) desde cualquier parte del mundo.Vista Exterior
Funciona con un gran número de camaras IP y webcams, pero la mejor es usarlo con una capturadora múltiple que puedes adquirir (en Chile) a buen precio en "MIRAX".
Esta es una guía para ArchLinux pero puede ser aplicable a otras distro de Linux tambien.
ZoneMinder, como es una mezcla entre servidor de streaming y aplicación capturadora, necesita ciertos requerimientos para PHP de modulos de perl. Además de por OBLIGACIÓN, apache con php y mysql
Primero para archlinux, actualiza la base de datos de los repositorios (todo como root)
# pacman -Sy
Segundo, debe instalar los siguientes paquetes con todas sus dependencias:
# pacman -S perl-dbi perl-dbd-mysql perl-date-manip perl-libwww
Tercero, debes compilar un paquete perl que falta (perl-php-serialization), lo mas fácil es hacerlo via PKGBUILD (solo en archlinux) baja el siguiente archivo y compilalo con makepkg e instalalo
/perl-php-serialization # makepkg
(..... output suppressed...)
/perl-php-serialization # pacman -U perl-php-serializarion-0.29-1-i686.pkg.tar.gz
Cuarto: bajar y compilar zm desde su sitio de descarga.
Cuarto (y medio), llena la base de datos con el shema que tienen en el directorio db.-
# mysql -p mysql <>
El "-p" es por si tu base principal está protegida con password
# mysql zm -p
mysql> grant select,insert,update,delete on zm.* to user_de_la_base@localhost identified by 'pass_de_la_base';
mysql>quit
# mysqladmin reload
Para el configure ocupa la siguiente orden
# ./configure --with-webdir=/home/httpd/zm/ --with-cgidir=/home/httpd/zm/cgi-bin --with-webuser=nobody --with-webgroup=nobody ZM_DB_PASS=pass_de_la_base --prefix=/usr/
Ten cuidado de cambiar los destinos de los directorios según tus necesidades, ademas del password de la base de datos etc.-
# make && make install
Edita el archivo /usr/zm/zm.conf a conveniencia y ra'
Importante para PHP, debes editar el php.ini (usualmente en /etc/php/) y cambiar la siguiente línea
short_open_tag = Off
por
short_open_tag = On
Reinicia apache y browsealo via cualquier browser.-
OJO: Firefox3.* tiene un problema al mantener los sockets abiertos incuso una ves cerrando la ventana de una cámara, y abre otro socket si abres de nuevo esa ventana ocupando recursos, memoria, ancho de banda ETC en forma progresiva, la manera más comoda de solucionar esto por ahora es diciéndole a FF que trabajas sin conección a la red y después lo devuelves.-
Un ejemplo de como trabaja esto en http://carlost.blogdns.com/zm usuario invitado, pass invitado (Si está oscuro, es de noche :) )



ACTUALIZACIÓN: Saque la cámara hace tiempo, así que solo van a ver el software funcionando, pero no la imagen.- :P
También se me olvidó sacar la imagen de muestra del antiguo hosting, y no deje ningún respaldo :(

Actualización 2: Ago 2009: Existe un "PKGBUILD" de Zoneminder completo en la paina de AUR de archlinux en el cual solo aplicas "makepkg" y ya tienes todo para instalar completamente.
Counter