jueves, 27 de diciembre de 2007
Mirror Debian con Debmirror y rsync
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
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
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
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.