Archive for January, 2008

Revelaciones marcianas

Thursday, January 24th, 2008

Fantástico el mensaje de este video, además excelente la representación, tanto en la música como el ambiente del mismo.


“Aprender significa entrar en contacto con un mundo desconocido” y es así. La mayoría teme a lo desconocido y prefiere quedar donde está, creyendo (erroneamente) que esa forma de actuar es beneficiosa. Eso es un gran equivocación ya que no evolucionamos, nuestro ser se tiene que exponer a situaciones para evolucionar y así mejorar.

“Empieza de nuevo”, ¡Exacto!, cuantas veces hemos abandonado (o escapado) a nuestros problemas por habernos tropezado. Siempre hay que levantarse, y volverlo a intentarlo. Hay situaciones en las cuales todo se obscurece en nuestro camino y nos dificulta la marcha, provocando repetidas caídas. Pero toda noche viene acompañada de un día, por eso hay que empezar de nuevo, hasta que en un momento podamos “ver” el camino.

Desde infosofía:=0×69AEE7 invitamos a todos a que practiquen la forma de actuar de los marcianitos. Creo que si la mayoría de la gente pudiera vencer ese miedo al rechazo de lo que tiene que ser “normal” y encuentre que la verdadera satisfacción a veces no se encuentra dónde la mayoría “cree” que está, este mundo sería un mejor lugar para todos.

Servidor proxy de archivos Debian, Approx

Thursday, January 24th, 2008

Tabla de contenidos

  1. Marco teórico
  2. Funcionamiento de Approx
  3. Instalación y parámetros de configuración de Approx
  4. Papel del sources.list
  5. Armado de las parejas nombre/valor
  6. Reescritura de solicitudes
  7. Problemas frecuentes
  8. Puesta en marcha
  9. Beneficios
  10. Desventajas
  11. Notas finales
  12. Bibliografía

Marco teórico

Si una red local está formada por varios equipos Debian (o fork), un servidor proxy que mantiene repositorios locales de archivos Debian mejoraría el tiempo de respuesta y el uso de ancho de banda.

De esta manera cada vez que un equipo Debian actualice o instale archivos Debian, primero se revisará en el repositorio local, si el archivo se encuentra en él se suministrá, sino se encuentra, se revisará en los repositorios remotos. Estos archivos se guardarán en el repositorio local para futuras solicitudes.

Los repositorios locales, la administración y su gestión es realizado por el servidor proxy. Esta funcionalidad la podemos encontrar con Approx.

Funcionamiento de Approx

Approx permanece escuchando solicitudes de archivos Debian en algún puerto determinado, los clientes piden los archivos a Approx y éste es quién se encarga de buscar localmente el archivo, sino se encuentra, reescribe la solicitud recibida para enviarla a un repositorio remoto y descargar los archivos solicitados, éstos son entregados al cliente y son almacenados en el repositorio local.

Instalación y parámetros de configuración de approx

Primero tenemos que elegir la máquina de nuestra red que será el servidor proxy, una vez definida instalamos en ella el servidor


# aptitude install approx

Cuenta con un único archivo de configuración localizado en /etc/approx y los repositorios locales serán creados en /var/cache/approx. El archivo de configuración es muy pequeño y podemos encontrar los siguientes parámetros

interfaces
Es la interface de red por la cual escucha approx. Por defecto está en any.
port
Es el puerto por el cual approx escucha las solicitudes HTTP de archivos debian. Por defecto es el puerto 9999.
interval
Especifica el tiempo (minutos) en los que approx considerará a un archivo cacheado demasiado viejo, con lo cual antes de entregarlo consultará con el repositorio remoto si es que existe una versión más reciente. Por defecto está en 720 (12 horas).
max_wait
Especifica el tiempo que esperará un proceso approx para bajar archivos concurrentemente, antes de intentar bajar el archivo. (no me queda claro bien este parámetro, acepto ayuda :-P). Por defecto es 10 (segundos).
max_rate
Especifica el máximo de ancho de banda que se utilizará para bajar archivos de repositorios remotos. Con lo cual podemos limitar el ancho de banda utilizado por approx. Por defecto unlimited. Los valores pueden ser indicados con K(KiloBYTE), M(MegaBYTE) y G(GigaBYTE).
debug
Activa un log ubicado en /var/log/debug. Por defecto false.

El resto del archivo de configuración define una tabla hash (clave/valor), los cuales mapean el repositorio local con el repositorio remoto.

Papel del sources.list

Ahora debemos entender (mínimamente) el papel que cumple el archivo sources.list. Cuando se ejecuta, por ejemplo aptitude install mysql-server-5.0, el comando verifica el archivo sources.list (localizado en /etc/apt/) para obtener la dirección del repositorio remoto de archivo, y bajar en este caso mysql-server-5.0.

La sintaxis de un sources.list luce así

deb | deb-src uri distribución [sección1] [sección2] [...]

El primer campo indica el tipo de repositorio, binario (deb) o fuente (deb-source), el segundo, URI es la ubicación del repositorio de dónde obtendrá los archivos (http, ftp, file, etc) y el resto de los campos definen la distribución y tipos de componentes (main, contrib, non-free).

Entonces para poder utilizar el proxy, debemos modificar el sources.list de las máquinas clientes, para que dejen de apuntar a un repositorio remoto y lo hagan a nuestro sevidor proxy. Y el archivo de configuración de approx (approx.conf), tendrá las direcciones de los repositorios remotos de los sources.list’s clientes.

Armado de las parejas nombre/valor

Vamos a definirlas tomando un ejemplo. Tenemos un cliente Debian etch en nuestra LAN con la dirección 192.168.1.5 y el servidor proxy en la dirección 192.168.1.1. Primero tenemos que tomar la dirección que aparece en el sources.list de la máquina Debian, mapearla en el servidor proxy y sustituirla por la dirección del servidor proxy. Por ejemplo, obtendremos las direcciones del sources.list en 192.168.1.1


deb http://sft.if.usp.br/debian/ stable main
deb-src http://sft.if.usp.br/debian/ stable main
deb http://security.debian.org/ stable/updates main

Ahora las mapearemos con el repositorio local, esto se hace en el archivo /etc/approx/approx.conf


debian          http://sft.if.usp.br/debian/
security        http://security.debian.org/

Hemos definido que los archivos de la dirección http://sft.if.usp.br/debian/ se cacheen en el repositorio local llamado debian y los de http://security.debian.org/ en el repositorio llamado security. Estos repositorios se encontrarán en /var/cache/approx.

Ahora sólo falta modificar el sources.list de la máquina 192.168.1.5 para que apunte al proxy


deb http://192.168.1.1:9999/debian stable main
deb-src http://192.168.1.1:9999/debian stable main
deb http://192.168.1.1:9999/security stable/updates main

Lo que hemos hecho fue modificar el servidor remoto por nuestro proxy y además especificamos el repositorio local, el cuál mapea al repositorio remoto.

Reescritura de solicitudes

Ahora veremos como Approx reescribe la solicitude de un cliente utilizando su tabla hash de clave/valor

Archivo sources.list de cliente


deb http://192.168.1.1:9999/clave-repositorio2/  feisty main restricted

Donde el cliente hará solicitudes de la forma

http://192.168.1.1:9999/clave-repositorio2/otra/URL

Archivo approx.conf del servidor (192.168.1.1)


clave-repositorio1     http://sevidor-remoto-a/path
clave-repositorio2     http://sevidor-remoto-b/path
clave-repositorio3     http://sevidor-remoto-c/path

Solicitud armada por el servidor proxy, en caso que la búsqueda falle en el cache local

http://servidor-remoto-b/path/otra/URL

Problemas frecuentes

Es importante aquí entender la idea de hash (clave/valor), las palabras con rectángulo de color verde es una clave que le indica a approx cual dirección remota consultará, la cual se encuentra cacheada en un directorio dentro /var/cache/approx con el mismo nombre. Sino indicamos la clave de mapeo en el sources.list, approx no cacheará correctamente los archivos y desde la máquina cliente nos saldrán errores cómo


Err http://192.168.1.1 stable/main Packages
  403 Forbidden
Err http://192.168.1.1 stable/main Sources
  403 Forbidden
Err http://192.168.1.1 stable/updates/main Packages
  403 Forbidden
Leyendo lista de paquetes... Hecho
W: No se puede leer la lista de paquetes fuente http://192.168.1.1 stable/main Packages (/var/lib/apt/lists/192.168.1.1:9999_dists_stable_main_binary-i386_Packages) - stat (2 No existe el fichero o el directorio)
W: No se puede leer la lista de paquetes fuente http://192.168.1.1 stable/updates/main Packages (/var/lib/apt/lists/192.168.1.1:9999_dists_stable_updates_main_binary-i386_Packages) - stat (2 No existe el fichero o el directorio)
W: No se puede leer la lista de paquetes fuente http://192.168.1.1 stable/main Packages (/var/lib/apt/lists/192.168.1.1:9999_dists_stable_main_binary-i386_Packages) - stat (2 No existe el fichero o el directorio)
W: No se puede leer la lista de paquetes fuente http://192.168.1.1 stable/updates/main Packages (/var/lib/apt/lists/192.168.1.1:9999_dists_stable_updates_main_binary-i386_Packages) - stat (2 No existe el fichero o el directorio)
W: Tal vez quiera ejecutar 'apt-get update' para corregir estos problemas

Puesta en marcha

Una vez instalado y configurado Approx y editado la tabla de mapeo, debemos reiniciar el servidor (/etc/init.d/approx restart). Si al reiniciar falla, a habido un error en la sintaxis tanto de los parámetros o de la tabla. Ahora podríamos hacer una prueba. Desde la máquina Debian, en este caso 192.168.1.5, crearemos el repositorio


root@192.168.1.5:/# aptitude update

Este comando actualizará la lista de archivos disponibles de los servidores fuentes indicados en el sources.list.Veamos la secuencia de llamadas para comprender todo esto

  1. Se verifica el sources.list y se obtiene la dirección hacia donde se hará la solicitud
  2. La solicitud de la lista es escuchada por nuestro servidor proxy
  3. El proxy verifica el repositorio local (/var/cache/approx), en este caso debian y segurity. En esta busqueda no encontrará nada
  4. El proxy deberá solicitar la lista a los servidores remotos
  5. Buscará en su archivo de configuración la dirección de estos, mapeada por las claves anteriores (debian, security).
  6. El proxy solicita el listado al servidor remoto
  7. El listado será cacheado en el repositorio correspondiente para esa dirección
  8. El proxy entrega a 192.168.1.5 el listado

Beneficios

Aquí les dejo unos resultados realizados desde el cliente, no especifico cuestiones técnicas, sólo uno sin servidor proxy y otro con servidor proxy. Debe ser evidente el beneficio de tener un bicho de estos andando.


192.168.1.5:/# aptitude update
Des:1 http://sft.if.usp.br stable Release.gpg [378B]
Des:2 http://sft.if.usp.br stable Release [58,2kB]
Des:3 http://security.debian.org stable/updates Release.gpg [189B]
Des:4 http://security.debian.org stable/updates Release [37,6kB]
Des:5 http://sft.if.usp.br stable/main Packages [5621kB]
Des:6 http://security.debian.org stable/updates/main Packages [277kB]
Des:7 http://sft.if.usp.br stable/main Sources [1653kB]
Descargados 7647kB en 1m26s (88,1kB/s).                                       
Leyendo lista de paquetes… Hecho

192.168.1.5:/# aptitude update
Des:1 http://192.168.1.1 stable Release.gpg [378B]
Des:2 http://192.168.1.1 stable/updates Release.gpg [189B]
Des:3 http://192.168.1.1 stable Release [58,2kB]
Des:4 http://192.168.1.1 stable/updates Release [37,6kB]
Des:5 http://192.168.1.1 stable/main Packages [5621kB]
Des:6 http://192.168.1.1 stable/main Sources [1653kB]
Des:7 http://192.168.1.1 stable/updates/main Packages [277kB]
Descargados 7647kB en 18s (417kB/s).                                          
Leyendo lista de paquetes… Hecho

Desventajas

  • El uso de espacio de disco. No sé si realmente es una desventaja, pero en algunos casos el espacio utilizado por esto repositorios locales puede ser muy grande.
  • Inconsistencias. Nuestro repositorio local podría contener versiones de archivos desactualizadas en comparación con el repositorio remoto. Ya que por defecto el repositorio local es válido por 2 días, pero podríamos ajustar esto con el parámetro interval

Notas finales

Mi red está formada sólo por equipos Debian y Ubuntu. Mi servidor proxy mantiene repositorio tanto de Debian (etch) y de Ubuntu 7.04 y 7.10. Para cada distribución y versión utilizo diferentes palabras claves, ya que cada uno tiene diferentes repositorios locales.

Acá les dejo un fragmento de mi archivo approx.conf


debian-etch          http://sft.if.usp.br/debian/
security-etch        http://security.debian.org/

ubuntu-feisty          http://ar.archive.ubuntu.com/ubuntu/
security-feisty          http://security.ubuntu.com/ubuntu

ubuntu-gutsy          http://archive.canonical.com/ubuntu
security-gutsy          http://security.ubuntu.com/ubuntu/
ubuntu-gutsy          http://archive.ubuntu.com/ubuntu/

Bibliografía

Aumentando estrés, Windows 98

Monday, January 21st, 2008

No iba escribir el post, pero realmente es una aventura que merece la pena contar. Sobre los pasos que seguí para instalar un Windows 98, un navegador y un IM.

Antes que nada conseguí una versión booteable (y pirateada) del instalador de Windows 98 y comencé la instalación y antes de comenzar, el instalador realizó un scandisk[1] del disco, que gracias a Dios (por el disco) dio que todo estaba en orden.

Al finalizar la instalación, reinicio y ya me encontraba dentro del legendario Windows 98. Antes que nada verfico que todo el hard haya sido reconocido (Mi PC->Panel de control -> sistema ->Administrador de dispositivos). Todo perfecto. Se estarán preguntando ¿A ésto denominas aventura? A lo que respondo, sólo estaba planteando el panorama, ahora empiezo.

Feliz de que reconociera la placa de red, doy doble click sobre el “Acceso directo” de IE4 y ¡!, no anda. Luego de un par de pruebas, no tenía acceso a mi LAN y los equipo de mi LAN no reconocían al Win 98.

Decidí echarle mano a Panel de control->Red y gracias al excelente trabajo de “Don Bill” y su pandilla, CADA VEZ que cambiaba un parámetro, Windows me pedía reinicar, ¡REINICIAR!, qué increíble cambiar tan sólo la dirección IP implica reiniciar el equipo entero. VARIAS REINICIADAS DESPUÉS, encontré el problema extrañamente habían dos interfaces de red, algo sobre el adaptador de acceso telefónico a redes, y hacía que las dos tuvieran la misma IP, la quito y antes de cualquier cosa, aparecía la “Ventanita” para reiniciar.

Un par de minutos después, tenía acceso a Internet en Windows 98, lo primero que quería hacer era bajar Firefox, porque ver el “acceso directo” de IE y navegar en él me deprimía demasiado.

Bajo, instalo y uso (SIN REINICIAR, increíble) Firefox. Por fin algo se instalaba en poco tiempo y no me pedía REINICAR, en ese instante pude tocar el cielo.

La persona del equipo quería que instalace Windows Live Messenger. Ok, estamos en Windows 98 por lo que no podemos instalar esa versión, bajo e instalo la versión 6.0 (SIN REINICIAR). Le doy a “Iniciar sesión”, coloco nombre de usuario y contraseña… Y si “Don Bill” me obliga a actualizar mi versión de Messenger antes de iniciar sesión. ¡Gracias! Bill por proteger a la gente. Realmente me impresiona la solución de “Don Bill” para el problema de seguridad, obligarme a actualizar simple y elegante ¿No les parece?, para que molestarse en hacer parches. Si puede doblegar a todo el mundo a sus pies…

Aceptamos la actualización a la versión 7.0 y empieza la descargar, luego de varios minutos y antes de comenzar, me aparecen dos “dependencias” para poder instalar:

  • Tener como sistema opertativo Windows
  • Tener instalado Internet Explorer 6

Jajaj perfecto, además de obligarme a actualizar mi IM tengo que instalar el “rompe estandar” IE6, pero ¿por qué?… Increíble un IM depende de un navegador, pero no de cualquierda, ojo sólo IE6…

Bajo el IE6 del centro de descarga de Microsoft, termina e instalo (personalizada , al mínimo). Luego de muchísimos minutos de espera, y para alargar aun más el proceso (si estás pensando en eso estas en lo cierto), VUELVO a REINICAR (por favor notar las diferencias con Firefox).

Perfecto, ya tengo todo, cuento con mi IE6 y con una versión de WIndows (pirateada). Doble click sobre los tipejos (acceso directo messenger), y… ¡Increible! Nuevamente vuelve a bajar la actualización, o sea, si antes esperé como 5 minutos para bajarla, ahora debo volver a esperarlos. Un consejo a la banda de “Don Bill”, podrían haber guardado lo que baje en el disco ¿Por qué hacerme desperdiciar mi ancho de banda y tiempo?.

Okey, volvemos (obligados) a “actualizar”, termina de descargar e instalamos. Una vez finalizada y por la ley de “Don Bill” y toda su banda, debemos reiniciar nuestro equipo…

Se hizo largo el post, jaja, pero bueno si llegaron hasta acá no puedo defraudarlos, vamos a los trucos: ¿Cómo diablos puedo acelerar el todo proceso que describo? Con el siguiente código:


# aptitude install pidgin firefox

Increíble una sola línea de código me da la suficiente potencia para bajar, instalar y configurar un IM y Firefox. Además de no reiniciar el equipo… Increíble. Nada de ventanitas, nada de eso, nada de las sucias manos de “Don Bill” y su equipo de ingenieros.

A me olvidaba de lo más importante, para que ande el truco tienes que sacar “la leyenda” y poner GNU/Linux[2]. Es un sistema operativo libre[3], por lo cual no necesitas piratear nada.

Uff después de esto no viene nada mal seguir los consejos para eliminar el estrés.

Nota: Para todos aquellos que hayan pasado por una tortura similar y sigan con estrés. Aconsejo realizar el siguiente paso (si estás en Debian):


# aptitude install xbill
# xbill

Enjoy! [Más información]

[1] El link es muy recomendado.

[2] Libertad implica que algo puede tener costo o no.

[3] Para que ande el truco necesitas una distribución Debian (o algún fork).

UXi 09

Wednesday, January 16th, 2008

Logo de la revista UXi

Una nueva entrega de UXi, la revista de software libre de UCI, a un mes de su aniversario. En este número, que corresponde al mes de Diciembre, se ha añadido una nueva sección “Seguridad y redes”, además de las anteriores secciones: noticias, solución de está edición, migración, diseño gráfico y multimedia, humor libre …

En esta entrega podemos encontrar entre los temas tratados los siguientes:

  • Implantación de un sistema de perfiles centralizados, a través de:
    • NFS
    • OpenLDAP
    • DNS
    • Control de cuotas de disco

  • Streamming utilizando VLC
  • El software libre y los procesos pedagógicos contemporáneos
  • Creación y uso de librerías dinámicas
  • GIMP, origen y ventajas frente a Photoshop. Y herramienta clave en la migración al software libre
  • Anuncio sobre el festival de Software Libre en conmemoración del aniversario de UXi y José Martí
  • Servicios telemáticos
  • Calendario 2008 al estilo tux

[descarga]

Puedes descargar las entregas anteriores de la revista desde el blog oficial de la revista UXi o desde Infosofía

Solución al problema de RSS2

Monday, January 14th, 2008

Leyendo del blog de Leonardo Andrés Gallego, específicamente éste post encuentro la solución al problema que comenté de colocar acentos en los títulos de los post. La solución presentada es sencilla y se basa simplemente en remplazar las vocales acentuadas por sus correspondientes entidades HTML. Acá les dejo las entidades para las vocales acentuadas, aquí puede encontrar una referencia sobre las entidades HTML.

Entidades HTML
vocal entidad
á á
é é
í í
ó ó
ú ú

Instalar Pidgin en Ubuntu Festy Fawn (7.04)

Monday, January 14th, 2008

logo Pidgin

Desde que salió la nueva versión de Gaim (la cuál cambio de nombre), Pidgin, que no esta disponible en Festy Fawn. En la página de Pigin, se puede bajar, pero no en paquetes deb, por lo que traté de crear un paquete deb desde el código fuente, pero realmente no pude lograrlo. Después de un tiempo (ya me había resignado a la idea de instalarlo en mi Festy Fawn con un paquete deb) y encontré la solución, me la dió GetDeb, busqué y pude encontrar paquetes deb de pidgin para Festy Fawn, no se encontraba la última versión disponible pero sí una de las últimas (2.2.0).

Aquí les comento el proceso de instalación y migración a Pidgin, la explicación la voy a basar en la última versión disponible en GetDeb.

  1. Bajamos los paquetes pidgin y pidgin-data de GetDeb
  2. Pidgin depende del paquete pidgin-data y la librería libsilc-1.0-2, además tiene conflicto con Gaim. Entonces lo primero que haremos será eliminar a Gaim
  3. 
    # aptitude remove gaim
    

    Nota: se usa la opción remove sin purge, con esto se eliminará Gaim pero no sus archivos de configuración, por lo tanto mantendremos todos los logs de nuestras conversaciones.

  4. Una vez eliminado instalaremos la librería libsilic
  5. 
    # aptitude install libsilc-1.0-2
    
  6. Lo último que nos falta antes de instalar Pidgin es instalar el paquete pidgin-data. Nos situamos en la carpeta dónde descargamos los paquetes de pidgin y
  7. 
    # dpkg -i pidgin-data_2.2.0-1~getdeb1_all.deb
    
  8. Y ahora el gran final, instalaremos Pidgin
  9. 
    # dpkg -i pidgin_2.2.0-1~getdeb1_i386.deb
    

En la carpeta de usuarios de Gaim (/home/usuario.gaim) se han creado enlace de la carpeta logs (y tambien smiley) a la nueva carpeta de usuario de Pidgin, que se sitúa en /home/usuario/.purple. También se mantiene toda la información de nuestras cuentas creadas.De está manera logramos una instalación basada en paquetes deb y una excelente migración.

Smart Boot Manager

Sunday, January 13th, 2008

Desde hace unos días un amigo tenía problemas con su viejo pentium I (133Hz, disco 4GB y 64 RAM) con el robusto (¡!) Windows 95. Para resumirles el problema de la máquina, era literalmente una “colonia de virus”. Después de varias discusiones decidió ponerle la distro Debian de GNU/Linux. Antes de iniciar la instalación entro al BIOS y en la secuencia de booteo coloco que primero lo haga la lectora de cdrom, salvo y salgo. Y ¡ups! no bootea del cdrom, prove varías cosas pero nada, hasta que encontre esta maravilla llamada Smart Boot Manager. ¿Y qué es esto?

Es un programa administrador de booteo independiente del sistema operativo. Es cargado por la BIOS antes que cualquier sistema operativo.

Dentro de las cosas que te permite realizar

  • Busca automaticamente todos los driver y particiones de discos y disquettes que pueden ser booteados
  • Esquemas de booteo, que permiten bootear automaticamente diferentes driver y particiones en distintos momentos del día o en diferentes días

La utilidad que voy a usar es la de bootear de ATAPI CD-ROM (también es posible con PCMCIA CD-ROM).

Lo que hice fue:

  1. Bajar Smart boot Manager, la versión para DOS, que está formada por dos archivos (sbminst.exe, cwsdpmi.exe)
  2. Estos archivos los copie en un disquette
  3. Me fui al Pentium I, lo encendí y presioné varias veces F8, para iniciar el modo de símbolos del sistema
  4. Una vez cargado el mítico Ms-Dos, hice lo siguiente
  5. 
    c:\>a:
    a:\>sbminst -t es -d 0 -b -u
    
  6. Esto instala el programa en el disquette, los parámetros son: t theme, le indicamos en español (es); ddrive, le indicamos que sea en la disquetera (0); b backup, de los datos (no sé bien para que es esto); -u unistall, borrá el cargador del boot. Una vez que finaliza reiniciamos
  7. Entramos a la BIOS y configuramos la secuencia de booteo, para que bootee primero del disquette (A). Guardamos los cambios y salimos
  8. Antes de entrar a cualquier sistema opertativo, entrará a smart boot manager y nos saldrá la siguiente pantalla
  9. menú de inicio de Smart Boot Manager

    Al tocar F1, nos aparece la ayuda, les dejo la imagen, para que puedan ver las cosas que se puede hacer con esté programa

    ayuda de Smart Boot Manager

  10. Posicionamos el cursor en la lectora (CD-ROM) y presionamos enter (al hacerlo me aparecio un cartel de error, lo volví a hacer) y ¡listo! sale del programa y empieza a bootear desde la lectora (tener en cuenta que el cd para la instalación debe estar colocado en la lectora)

Los siguientes enlaces me fueron de ayuda

Rotar log en Apache

Friday, January 11th, 2008

Hay varias maneras de rotar logs, pero voy explicar como hacerlo con una utilidad llamada rotatelogs. El post se basa en una distribución Debian y Apache 2. Esta utilidad la podemos encontrar en el paquete apache2-utils, lo instalaremos


$ aptitude install apache2-utils

Una vez instalado tenemos que verificar la ruta en donde se instaló, utilizaremos el siguiente comando


# whereis rotatelogs
rotatelogs: /usr/sbin/rotatelogs /usr/share/man/man8/rotatelogs.8.gz

La salida del comando nos indica que el binario esta en la carpeta /usr/bin, la otra ruta es la entrada en el man lo cual no nos sirve.

whereis es un comando que sirve para localizar archivos binarios, fuentes o páginas de manual.

Luego nos vamos a los archivos de configuración de nuestro servidor en /etc/apache2/sites-enabled/ (ver comentario de este post) y en mi caso edito el archivo de configuración default agregando la siguiente linea


<VirtualHost *>
...
TransferLog "|usr/sbin/rotatelogs /var/log/apache2/error.log 100M"
...
</VirtualHost>

Nota: también se podría haber editado el archivo apache2.conf que se encuentra /etc/apache2, debido al contexto de la directiva.

Expliquemos un poco lo que hemos hecho, la directiva TransferLog le dice a Apache que “entube” la información del log a un programa externo (por eso el signo | al comienzo), el programa lo indicamos entre comillas que en este caso es rotatelogs y luego indicamos los parametros propios de rotatelogs, la ruta del log que rotaremos (/var/log/apache2/error.log) y el tamaño que tendrá el archivo para ser rotado(100M), 100 MegaBytes.

En vez de especificar un tamaño para el rotado, se puede también indicar un tiempo, por ejemplo cada 1 semana


TransferLog "|usr/sbin/rotatelogs /var/log/apache2/access.log 604800"

Nota: el tiempo de rotado se especifica en segundos, en el ejemplo tenemos 7 * 24 * 60 * 60

Y para terminar, al rotar los log podríamos agregarle la fecha en que se roto, para tener más control


 TransferLog "|usr/sbin/rotatelogs /var/log/apache2/%y%m%d_error.log 5M"

Al rotar nos quedaría un archivo como 080101_error.log, %y indica el año en dos dígitos, %m indica el mes con dos dígitos y %d indica el día con dos dígitos.

¿Cómo saber que versión de Apache tenemos instalada?

Friday, January 11th, 2008

Hay varios métodos para determinarlo, veamos algunas formas:

SI tenemos instalado Apache 2, contamos con una excelente herramienta, apache2ctl (ubicada en /usr/sbin). Es un front end (interface) para el servidor Apache, esta diseñada para ayudar al administrador controlar las funcionalidades de el demonio httpd Apache. Apache2ctl, tiene dos modos de operar, acá usaremos uno de ellos, porque el otro tiene que ver con el script de inicio. La salida de apache2ctl esta en función de los parámetros pasados, con uno de éstos (v) podemos obtener la versión de Apache 2 que tenemos instalada.


$ apache2ctl -v
Server version: Apache/2.2.3
Server built:   Nov 01 2006 10:14:00

Si utilizamos la opción V (mayúscula) además de la versión nos da información de las opciones establecidas en la compilación.


$ apache2ctl -V
Server version: Apache/2.2.3
Server built:   Nov 01 2006 10:14:00
Server’s Module Magic Number: 21053335:3
Server loaded:  APR 1.2.7, APR-Util 1.2.7
Compiled using: APR 1.2.7, APR-Util 1.2.7
Architecture:   32-bit
Server MPM:     Prefork
  threaded:     no
    forked:     yes (variable process count)
Server compiled with….
 -D APACHE_MPM_DIR=”server/mpm/prefork”
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=128
 -D HTTPD_ROOT=”"
 -D SUEXEC_BIN=”/usr/lib/apache2/suexec”
 -D DEFAULT_PIDLOG=”/var/run/apache2.pid”
 -D DEFAULT_SCOREBOARD=”logs/apache_runtime_status”
 -D DEFAULT_LOCKFILE=”/var/run/apache2/accept.lock”
 -D DEFAULT_ERRORLOG=”logs/error_log”
 -D AP_TYPES_CONFIG_FILE=”/etc/apache2/mime.types”
 -D SERVER_CONFIG_FILE=”/etc/apache2/apache2.conf”

Para mayor información sobre está herramienta se puede consultar la página del proyecto Apache o apache2ctl -h.

Está forma depende de la versión 2 de Apache, podríamos utilizar algo más genérico. Una herramienta fantástica para determinar las versiones de los servicios que corren en una máquina es nmap. En casi todas las distribuciones de GNU/Linux viene instalada, sino lo instalamos (el programa sólo ocupa 434K), si estamos en Debian (o algún fork) aptitude install nmap. Para ver la versión del servidor utilizaremos la opción detección de versiones(sV) de nmap.


$ nmap -sV localhost
Interesting ports on beirut.dattaweb.com (127.0.0.1):
Not shown: 1689 filtered ports
PORT    STATE  SERVICE  VERSION
20/tcp  closed ftp-data
21/tcp  open   ftp      ProFTPD 1.3.0a
25/tcp  open   smtp     Exim smtpd 4.63
53/tcp  closed domain
80/tcp  open   http     Apache httpd 1.3.37
110/tcp open   pop3     Courier pop3d
143/tcp open   imap     Courier Imapd (released 2004)
443/tcp open   http     Apache httpd 1.3.37
Service Info: OS: Unix

En éste caso tengo un Apache versión 1.3.37 escuchando en el 80.

Nota:Este método puede fallar, si tenemos deshabilitada la firma del servidor http. Cómo determinarlo.

UXi, revista de software libre

Monday, January 7th, 2008

Logo UXi

Me tope con está excelente revista sobre software libre, perteneciente a la UCI de Cuba. Se distribuye en formato digital, y su fecha de salida es mensual, pero no siempre es así y es totalmente razonable. Su circulación comenzó en Enero de 2007 y hasta la fecha de hoy, cuenta con 8 entregas. En cada número podemos encontrar, entre otras, sección de humor libre, sección de noticias sobre el software libre y una sección que explica cómo la comunidad GNU/Linux de UCI soluciona problema informáticos.

La revista tiene un blog oficial, en dónde es posible bajar todas las entregas, además de encontrar información relacionada con la misma.

Acá les dejo algunos de los temas que se trató en cada entrega:

    • Migración a sistemas libres teniendo en cuenta el uso elevado de software propietario en el marco cubano.
    • La solución para ver videos de un MMS en GNU/Linux.
    • [descargar]

    • Se puede encontrar una entrevista a Richard Stallman cuando visito Cuba por motivo del III Taller Internacional de Software Libre.
    • Un informe sobre la distribución UTUTO.
    • Primera parte de un Sistema Adaptativo de Filtrado de Contenidos.
    • [descargar]

    • Segunda parte de un Sistema Adaptativo de Filtrado de Contenidos.
    • Riesgos de seguridad utilizando system() o peopen().
    • [descargar]

    • Proyecto Infodrez, migración del portal de ajedrez de UCI a software libre.
    • Autentificación de Plone contra un servidor LDAP.
    • Estrategias de Microsoft para aumentar su monopolio. Traduciendo su sistema operativo y su paquete ofimático a idiomas de pueblos indígenas.
    • Distribución apoyada por la comunidad de UCI, llamada Tocororo.
    • [descargar]

    • Cómo pasar de .AVI a DVD con menús utilizando GNU/Linux.
    • Distribución NOVA GNU/Linux desarrollada en UCI, basada en Gentoo/Linux.
    • Trata el tema de las patentes de software y cómo estás podrían frenar totalmente la industria de software.
    • [descargar]

    • Acceso a repositorios de Subversion por Apache a través de mod_dav_svn.
    • Una introducción al proceso de arranque en sistemas GNU/Linux, para poder logra una optimización del arranque.
    • Ejemplos del uso de Perl.
    • [descargar]

    • Lista las ventajas de PHP5 frente a PHP4.
    • Construir una terminal utilizando C, GTK y VTE.
    • Un how to GDM, para adaptar nuestro inicio de sesión.
    • [descargar]

    • Un artículo sobre un sistema de almacenamiento distribuido, combinando NFS y RAID.
    • Creación y uso de librerías estáticas en C/C++.
    • Crear un tema de bootsplash.
    • Cambiar la apariencia en un servidor Apache.
    • [descargar]

Desde infosofía un saludo grande Abel García Vitier y a toda la comunidad de software libre de Cuba. Y felicitamos por el gran esfuerzo que hacen en hacer una propuesta totalmente libre.