jueves, 27 de diciembre de 2007

Mirror Debian con Debmirror y rsync

Quise montar un mirror para experimentar, sin embargo esto era muy molesto debido a que debería de bajarme toooodossss los paquetes desde internet con mi conexión 256k, entonces apliqué algunos trucos que me dieron resultado partiendo desde los 4 dvd de Debian lenny que tenía en mi poder y de los 3 Dvds de Etch también. Haré el ejemplo con los de Lenny, que es la versión que uso en mi casa.

Primero lo primero, instalar los paquetes necesarios para este trabajo

Paso # 1

# aptitude install debmirror
# aptitude install apache2
# aptitude install rsync

Si tengo los DVDs/ISO de Debian voy al siguiente paso #2, de lo contrario voy al paso # 4, específicamente 4.2

Paso # 2

como tengo los 4 dvds en el disco local.

mount -o loop /home/isos/lenny1.iso /media/lenny1
mount -o loop /home/isos/lenny2.iso /media/lenny2
mount -o loop /home/isos/lenny3.iso /media/lenny3
mount -o loop /home/isos/lenny4.iso /media/lenny4


Paso # 3

luego, una vez instalado apache, hago un link simbólico para que debmirror vaya a bajarse los paquetes a mi "mirror http"

mirror:/var/www# ln -s /media/lenny1 ./debian

Paso # 4

En 4.1 --host=IP coloco la IP de mi máquina, de donde debmirror se va a bajar algunos paquetes mientras crea la estructura del mirror, luego se hace lo mismo lenny2 lenny3 y lenny4, o sencillamente pueden copiarse todo /pool de los dvds con rsync hacia la carpeta donde tendrán almacenado el mirror... (paso #5) y pasar al paso #6.

4.1 (se ejecuta solo si tengo los DVDs de Debian)
debmirror --debug --progress --verbose --nosource --host=192.168.0.1 section=main,contrib,non-free --method=http --root=/debian --dist=lenny --arch=i386 --ignore-release-gpg /home/mirror/debian

ir al paso # 5

4.2 (se ejecuta si no tengo los DVDs de Debian)

debmirror --debug --progress --verbose --nosource --host=debian.unesr.edu.ve --section=main,contrib,non-free --method=http --root=/debian --dist=etch,lenny --arch=i386 --ignore-release-gpg /home/mirror/debian

Si hemos ejecutado el paso 4.2 entonces ha finalizado la creación del mirror, solo nos queda configurar apache y los sources.list de las estaciones, ir al paso #7

Paso # 5

Copiamos todos los paquetes de los dvds, y nos ahorramos tiempo y ancho de banda de los paquetes que aun no han sido actualizados... esto es excelente para las versiones estables que las actualizaciones son pequeñas dado que son solo de seguridad.

rsync -avIL /media/lenny1/pool/ /home/mirror/debian/pool/
rsync -avIL /media/lenny2/pool/ /home/mirror/debian/pool/
rsync -avIL /media/lenny3/pool/ /home/mirror/debian/pool/
rsync -avIL /media/lenny4/pool/ /home/mirror/debian/pool/

Paso # 6

Una vez copiados los archivos debemos ejecutar debmirror, yo lo hice con rsync para que me actualizara solo los paquetes nuevos.

debmirror --debug --progress --verbose --nosource --host=debian.unesr.edu.ve --section=main,contrib,non-free --method=rsync --root=:debian --dist=etch,lenny --arch=i386 --ignore-release-gpg --rsync-options=-aIL /media/hdb1/mirror/debian


Paso # 7
Una vez terminado de crear el server con los paquetes, procedemos a configurar apache para luego configurar el sources.list de las estaciones.

reiniciamos apache.

# apachectl -k restart


luego configuramos los /etc/apt/sources.list

deb http://192.168.0.1/debian lenny main contrib non-free


Nota: recordemos crear un link simbólico de ../debian.../dist/lenny a ../debian/dist/testing, de esta manera podremos actualizar tanto como testing o lenny (en ese caso) al igual hacer con etch y stable.


Todo hasta aca bien, pero debemos hacer que se actualice el mirror automáticamente, preferiblemente todos los días en horas donde no se use mucho el ancho de banda, en mi caso lo puse a las 11pm.

Acá tres scripts sencillos para correr cada día en el crontab

#*************************** S C R I P T S **************************

#!/bin/sh
#1.- debian
debmirror --debug \
--progress \
--verbose \
--nosource \
--host=ftp.debian.org \
--method=rsync \
--root=:debian \
--dist=lenny \
--arch=i386 \
--getcontents \
--ignore-missing-release \
--ignore-release-gpg \
--rsync-options=-aIL \
/var/www/debian

#!/bin/sh
#2.- debian-security

debmirror --debug \
--progress \
--verbose \
--nosource \
--host=security.debian.org \
--section=main,contrib,non-free \
--method=rsync \
--root=:debian-security \
--dist=etch/updates,lenny/updates \
--arch=i386 \
--getcontents \
--ignore-missing-release \
--ignore-release-gpg \
--rsync-options=-aIL \
/var/www/debian-security


#!/bin/sh
#3.- debian-multimedia

debmirror --debug \
--progress \
--verbose \
--nosource \
--host=www.debian-multimedia.org \
--section=main \
--method=http \
--root=/ \
--dist=etch,lenny \
--arch=i386 \
--getcontents \
--ignore-missing-release \
--ignore-release-gpg \
/var/www/debian-multimedia


#************************** F I N *********************


ahora debemos poner esos scripts en archivos y darle permisos de ejecución

# chmod u+x debian.sh
# chmod u+x debian-security.sh
# chmod u+x debian-multimedia.sh

Luego editamos el crontab para que se ejecuten automáticamente, en mi caso las 11pm

# crontab -e

0 23 * * * /root/debian.sh
0 23 * * * /root/debian-security.sh
0 23 * * * /root/debian-multimedia.sh


con eso debe funcionar todo...

Saludos.

jueves, 20 de diciembre de 2007

Proxy TOR


Nota:Se ha utilizado Debian Lenny para explicar los pasos necesarios.

aptitude install tor

The following NEW packages will be automatically installed:
doc-base libevent1 privoxy socat tor tsocks

Una vez instalado Tor y privoxy en nuestro equipoinstalado procedemos a configurarlo.

vim /etc/privoxy/config

Los cambios que tendremos que realizar son los siguientes:

Añadir la siguiente línea (el punto final es requerido):

forward-socks4a / localhost:9050 .

Que lo que hace es indicar a privoxy que dirija todas las comunicaciones al proxy SOCKS a localhost:9050, es decir, a Tor.

Se recomienda configurar privoxy para que no registre el tráfico que pasa por él, para ello comentamos las siguientes líneas añadiendo una # (almohadilla) al inicio de las mismas:

logfile logfile
jarfile jarfile

Reiniciamos privoxy:

sudo /etc/init.d/privoxy restart

Tan solo tenemos que especificar privoxy como proxy HTTP, es decir localhost puerto 8118.

Por ejemplo, en Firefox iremos a Editar->Preferencias->General->Configuración de conexión y seleccionaremos Configuración manual del proxy, después especificaremos localhost y puerto 8118 en todas las entradas proxy; y en la última (Servidor SOCKS) especificaremos localhost y puerto 9050. También nos aseguraremos de marcar la opción "SOCKS v5".

Para comprobar que funciona puedes ir a Tor detecTor, o a una de las páginas que solo podrás visitar mediante Tor como "The Hidden Wiki" (este enlace no funcionará si no usas Tor); la cual a su vez contiene más recursos exclusivos (hidden services).

martes, 4 de diciembre de 2007

Genius VideoCam NB + Debian Lenny

Como configurar una Web Cam Genius NB en un Debian?

es muyyyyy sencillo.

Instalamos el módulo gspca

# aptitude install gspca-modules-2.6-686

Luego cargamos el módulo.

# modprobe gspca

Ahora instalamos xawtv para probar

# aptitude install xawtv

# xawtv -c /dev/video0


y Listo, ya tienes instalada la webcam.

Saludos

Nuevo Huso Horario de Venezuela

Como hacer el cambio automático del nuevo Huso Horario en Venezuela

A las 00:00 del día 9 de Diciembre, se debe retrasar media hora en los sistemas para adecuar la hora al nuevo Huso Horario que estableció el Gobierno Nacional de Venezuela.

De manera Informativa y Didáctica les indico el procedimiento paso a paso.

Recuerden tener en /etc/apt/sources.list el enlace para bajarse las fuentes "deb-src" .... por ejemplo:

deb-src http://debian.unesr.edu.ve/debian testing main contrib non-free

hacer como root lo siguiente:

# cd /root
# apt-get source tzdata
# cd tzdata-2007i
# tar xvfz tzdata2007i.tar.gz
# cp southamerica ..
# cd ..
# rm -rf tzdata*
# vi southamerica ó # nano southamerica
(Justo al final del archivo, usando tabuladores)
Zone America/Caracas -4:27:44 - LMT 1890
-4:47:40 - CMT 1912 Feb 12
-4:30 - VET 1965
-4:00 - VET 2007 Dec 9 03:00
-4:30 - VET

Generamos en un directorio de prueba antes de modificar el sistema y hacemos pruebas para estar seguros que los resultados son los correctos:

# mkdir tztest
# zic -d tztest southamerica
# TZ=/root/tztest/America/Caracas date --date="2007-12-09 04:00:00 UTC"
Sun Dec 9 00:00:00 VET 2007
# TZ=/root/tztest/America/Caracas date --date="2007-12-09 06:59:00 UTC"
Sun Dec 9 02:59:00 VET 2007
Sigue habiendo 4 Horas de Diferencia...
# TZ=/root/tztest/America/Caracas date --date="2007-12-09 07:00:00 UTC"
Sun Dec 9 02:30:00 VET 2007
Ahora a las 3 am VET hay 4:30 horas de diferencia.


Y vemos que el retroceso en el tiempo ha sido logrado, como lo establece el Gobierno Nacional desde las 03:00 am.

# TZ=/root/tztest/America/Caracas date --date="2007-12-09 07:00:00 UTC"
Sun Dec 9 02:30:00 VET 2007

02:30 + 04:30 = 07:00

Y así podemos confirmar que en la fecha y hora indicada aumentará la diferencia entre nuestro tiempo y el tiempo de referencia mundial. Una vez probado, podemos instalar el archivo de zona horaria en el lugar adecuado (/usr/share/zoneinfo) para que el sistema operativo sepa atrasarse en el tiempo cuando llegue el momento.

# cp /root/southamerica /usr/share/zoneinfo/

# zic southamerica

y ejecutamos tzselect para que el archivo /etc/localtime sea copiado a partir del America/Caracas que se generó. El archivo /usr/share/zoneinfo/America/Caracas puede copiarse sin problemas a todas las demás máquinas Debian de una red.

Aquí también puede verificarse el instante y diferencial de tiempo

# zdump -v America/Caracas | grep 2007
America/Caracas Sun Dec 9 06:59:59 2007 UTC = Sun Dec 9 02:59:59 2007 VET isdst=0 gmtoff=-14400
America/Caracas Sun Dec 9 07:00:00 2007 UTC = Sun Dec 9 02:30:00 2007 VET isdst=0 gmtoff=-16200

Para realizar el cambio:

# dpkg-reconfigure tzdata

ó

# tzselect


Tener cuidado con la Base de Datos Postgres, a partir de la version 8.0, tiene un sistema de husos horarios propio, separado de aquel del sistema operativo.
Deberia bastar con copiar el nuevo archivo "southamerica" a src/timezone/data/ y luego hacer un "make install".


Saludos.


Gracias a Ernesto Hernandez Novich, y Alvaro Herrera.

martes, 27 de noviembre de 2007

Debian + Virtualbox + Soporte USB

Estuve de curioso revisando máquinas virtuales, y me conseguí con una máquina virtual que según mi apreciación es excelente. No consume muchos recursos, la prueba la hice instalando un Windows XP sobre la máquina virtual, para ver como se comportaba esta tortuga de OS.

Bien, aquí una recetilla para que los novatos puedan instalarse una máquina virtual y no regresen a los bajos instintos de formatear un debian para poner un XP solo porque cierto drivers no le funciona.


¿Como Instalar VirtualBox sobre un Debian Lenny 2.6.686? es muy fácil
Kernel usado para esta instalación 2.6.22-2

Lo primero que debemos hacer es bajarse el paquete de VirtualBox para Etch, para ello nos vamos a la página de virtualbox http://www.virtualbox.org o sencillamente les dejo el link para que se lo bajen directo por el medio que quieran. una opción es WGET como se indica abajo.

# wget http://www.virtualbox.org/download/1.5.2/virtualbox_1.5.2-25433_Debian_etch_i386.deb

Como virtualbox compila sus driver, vamos a necesitar lso header del kernel o los fuentes, así que para ello podemos hacer.

# aptitude install linux-headers-2.6-686
# aptitude install linux-source-2.6

Luego instalamos las librerías necesarias para virtualbox. como son: libxalan110 y libxerces27 sin embargo en debian con tan solo instalar libxalan110 este nos instala automáticamente libxerces27, sin embargo lo coloco a título informativo para otras distros.

# aptitude install libxalan110 libxerces27

Ahora que tenemos listo nuestras dependencias, instalamos el paquete .deb que nos bajamos desde virtualbox

# dpkg -i virtualbox_1.5.2-25433_Debian_etch_i386.deb

Una vez instalado, agregamos nuestro usuario como miembro del grupo vboxusers para que pueda ejecutar la máquina virtual sin problemas de permisología.

# adduser mi_usuario vboxusers

Es necesario hacer Logout del(los) usuario(s) colocado(s) en la lista del grupo vboxusers (claro, si no están logueados no hará falta) luego haces login, y corres la máquina virtual.

Ya con esto, lo que sigue es configurar la máquina virtual, que es muuuuuuy sencilla, y luego instalar el Sistema Operativo de su preferencia para esa máquina virtual.

Un problema que nos conseguiremos sobre las máquinas virtuales es que los canales USB no funcionan bien, o mejor dicho, lo que coloques por USB te funcionará en Debian, pero NO en la máquina virtual, esto lo digo por experiencia, ya que uno de los problemas que presenté al instalar un XP en la máquina virtual es que al levantar el Windows, no me reconocía el USB. Colocaba un PenDrive y mi Debian lo montaba a la perfección, sin embargo en Windows sobre la máquina virtual, este ni se enteraba que se había colocado un PenDrive. Esto lo corregí haciendo dos modificaciones a estos dos archivos:

020_permissions.rules y fstab. para ello usé nano como editor, pero ustedes pueden usar el de su preferencia, alguno tan difícil como "gedit" jejeje, y una super super fácil como "vi" ;)

# nano /etc/udev/rules.d/020_permissions.rules

En: # "USB devices" se debe cambiar los 0664 por 0666, quedando así

Antes:

# USB devices
KERNEL=="legousbtower*", MODE="0664"
KERNEL=="lp[0-9]*", SUBSYSTEMS=="usb", GROUP="lp"

# usbfs-like devices
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", \
MODE="0664"

Despues:

# USB devices
KERNEL=="legousbtower*", MODE="0666"
KERNEL=="lp[0-9]*", SUBSYSTEMS=="usb", GROUP="lp"

# usbfs-like devices
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", \
MODE="0666"


Luego:

# nano /etc/fstab

Y agregar estas lineas al final del archivo:

# usbfs
none /proc/bus/usb usbfs devgid=1001,devmode=666 0 0


Eso es todo, de esa manera, cuando introducimos un pendrive por ejemplo, también el Windows que esté en la máquina virtual lo reconocerá y podremos levantarlo.

Espero que haya sido bastante claro para que puedan experimentar esto, y les aseguro que los mismo usuarios windows van a preferir este método, ya que windows literalmente "vuela" sobre la máquina virtual, y eso que solo lo he probado con 196MB de ram, ya que es la máxima memoria que le asigné a esa máquina virtual.

Hay muchas otras ventajas, como por ejemplo poder respaldar todo tu "windows" u otro SO en tan solo un archivo, y si el windows explota (como de costumbre) puedes borrar el archivo de la máquina virtual y volver a copiarte el windows nuevamente como nuevo y todos sus datos con tan solo un vulgar SCP, CP o rsync.

Hay otras bondades más, pero deberán investigarlas jejejej, solo puedo darles una última, y es la "ventaja" de poder usar discos dinámicos y muuuuuuuchas otras cosas más, se los recomiendo.

Espero que les sirva.


Raul