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.