Serveralias en lighttpd

Junio 13th, 2008

Valga cuanto menos a modo de recordatorio personal.

Un virtualhost habitual (atención al ==):

$HTTP["host"] == "www.something.net" {

Para que www.something.net, www.something.com o www.something.lo_que_sea apunten al mismo documentroot (atención al =~):

$HTTP["host"] =~ "www.something" {

Y para que www.something.net y www.otherthing.net apunten al mismo documentroot:

$HTTP["host"] =~ "(www.something.net|www.otherthing.net)" {

Project-open en Debian (update 1)

Noviembre 20th, 2007

po-mini.jpgHe actualizado el mini tutorial de instalación de ]Project-open[ en Debian ETCH. Un chico llamado Martin Van Es me ha escrito explicando algunos trucos para hacer funcionar la versión 4 de Aolserver con la versión 8.x de PostgreSQL. Yo lo he probado y funciona perfectamente.

Aquí está el tuto. Como siempre, espero que sea de ayuda!

I have updated the mini-tutorial about installing ]Project-open[ on Debian ETCH. A guy called Martin Van Es sent me some emails with tips on making it work with Aolserver4 and PostgreSQL 8.1. I’ve tested it and works okay.

Here is the tutorial. I hope it helps!

Paquetes de Slackware con makepkg

Septiembre 25th, 2007

Siempre cuando he impartido cursos de Linux lo he hecho bajo Slackware. Uno de los temas que me parecen más interesantes es la gestión de paquetes. Entre otras cosas porque es prácticamente lo que más se le ha echado en cara siempre a Slackware desde Debian o Red Hat.

Slackware tiene herramientas de gestión de paquetes, y son flexibles y funcionan perfectamente. Desde luego jamás he visto petar un paquete de slackware como he visto petar un paquete instalado con apt.
El sistema de paquetes de Slackware es muy sencillo: descomprimir el binario, copiar los contenidos a su sitio y guardar una base de datos de referencia para borrarlos cuando se desee. No falla. ¿Para qué más?

Ahora bien, no hay paquetes de slackware para todo lo que se desea. Así que aquí va una pequeña explicación de cómo crear paquetes para Slackware usando makepkg, una de las herramientas propias de la distribución.

1. Crear un área de trabajo para compilar el paquete

mkdir /work
mkdir /work/scripts
mkdir /work/builds

2. Descargar el fuente y compilarlo

cd /usr/local/src
tar zxvfp progname-progversion.tar.gz
cd progname-progversion/
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
make

3. Instalarlo dentro del área de trabajo

make install DESTDIR=/work/builds
cp -Rp doc/ /work/builds/usr/
# copiar más cosas que se quieran incorporar al paquete

4. Crear el paquete

cd /work/builds
makepkg progname-progversion-arch-build.tgz
# contestar SI a la pregunta sobre enlaces y permisos

5. Mover el paquete a su sitio y limpiar los restos

mkdir -p /var/spool/packages
mv progname-progversion-arch-build.tgz /var/spool/packages/
rm -rf *

6. Instalar el paquete

cd /var/spool/packages
installpkg progname-progversion-arch-build.tgz

7. Praise Bob!

bob.jpg

]Project-open[ on Debian

Septiembre 18th, 2007

po-mini1.jpgHe escrito una página con las instrucciones y los paquetes para instalar ]Project-open[ en Debian ETCH. Nunca había hecho paquetes de Debian, así que supongo que serán un poco primitivos. En cualquier caso son perfectamente funcionales.
También lo he posteado en la web de la empresa.
Será bien recibida cualquier aportación o comentario :-)

—-

I’ve written a page with instructions and packages for installing ]Project-open[ on Debian ETCH. I’ve never built any debian package, so maybe they’re so primitive. But anyway they’re completely functional.
I’ve posted it on my company’s website too.
Comments will be appreciated :-)

Habemus Slackware 12

Julio 4th, 2007

slackware.pngComo muchos sabeis, el comienzo de mi andadura como usuario de Linux se centró en la distribución de Slackware, de la que he sido usuario durante 5 o 6 años en todos los entornos, y que implanto ahora en mis servidores personales y una parte de los de mi empresa.
Aunque la vida del sysadmin suele abrir nuevos caminos con el tiempo, Slackware siempre ha formado parte de un sentimiento íntimo, algo de lo que no me puedo despegar.
Entre otras cosas cabe remarcar que es la primera distribución de GNU/Linux, que sale al marcado en el 93 como evolución del Softstanding Linux System.

En mi vida he encontrado dos tipos de detractores de Slackware: los fanáticos de Debian, y los usuarios de las distribuciones gráficas (Red Hat, SuSE, Mandrake…). Los primeros argumentan la inexistencia del control de dependencias en el sistema de paquetería oficial (hay herramientas externas que sí lo incorporan). A mí personalmente me parece una patraña, el sistema de paquetes de Slackware ofrece una flexibilidad y una transparencia que no ofrece ningún derivado de Debian por mucho que se empeñe.
Por otro lado, los usuarios de distribuciones cargadas de GUI’s para la instalación y configuración de cualquier mínima parte del sistema. Éstos suelen decir que Slackware es difícil. Pero no importa: también lo dicen de Debian, de Gentoo o de cualquier otra distribución que no tenga un slideshow de greetings durante la instalación. Éste tipo de opiniones me parecen propias del quiero y no puedo, usuarios incapaces de leer un man y a los que les produce urticaria el prompt de una shell.

Slackware me ha proporcionado siempre las herramientas mínimas sobre las que he podido trabajar y aprender. El resto siempre me había sobrado, tenía siempre lo que necsitaba: una bash, un compilador y la Glibc.
En mi trabajo como profesor de administración de sistemas en varios centros, he enseñado siempre sobre Slackware. Siempre he inculcado el aprendizaje de los conceptos, el de las herramientas básicas, el de la construcción de un entorno personalizado, y sobretodo RASCAR mucha mucha, pero muuuuucha bash.

Sé que han ido saliendo varias versiones durante los últimos años, y no he hecho ninguna mención especial en mi blog. Pero hacía tiempo que no seguía las noticias sobre la evolución de la distro, y ésta nueva release me ha pillado por sorpresa. Me ha hecho recordar, y me alegro muchísimo de que el desarrollo y el mantenimiento de este excelente sistema siga vivo. Con una mención especial a su mantenedor: Patrick J. Volkerding, que a pesar del golpe que le proporcionó en 2004 una extraña y complicada enfermedad ha tenido el coraje y las ganas de seguir adelante, haciendo un trabajo muy muy bueno, del que en la actualidad nos beneficiamos muchos administradores de sistemas.

Y para terminar, recomiendo a los lectores echar una ojeada al site de Subgenius, la secta espiritual de donde Pat recogió el espíritu geek de J.R. Bob Dobbs.

Praise Bob!

PocketPC en Debian ETCH

Junio 29th, 2007

Hace ya algún tiempo escrbí un pequeño manualito sobre cómo conectar y sincronizar la PocketPC en Linux usando Ubuntu. En aquel momento Ubuntu venía con Hotplug y yo usaba GNOME.
Ahora hace ya tiempo que dejé aparcado este tema, aparte de que volví a Gentoo en cuanto hubo drivers para la gráfica y la tarjeta de sonido del Vaio.

He instalado Debian con KDE para unos trabajos concretos, y he vuelto a tener la necesidad de sincronizar la PocketPC, pero ahora la cosa es mas sencilla por usar KDE (hay paquetes de integración), y a la vez más complicada por no disponer de Hotplug, que en Debian ETCH ha sido completamente reemplazado por Udev.
Bien, esto es lo que más problemas me ha dado, así que aquí va otro pequeño manual, sin ánimo de repetirme demasiado.

Los paquetes a instalar son básicamente los mismos:

apt-get install synce-serial synce-kde synce-dccm synce-multisync-plugin multisync libmultisync-plugin-all usbview

Hay que darle el dispositivo que crea el módulo usbview en /dev, que se puede consultar tranquilamente en el syslog (tail -f /var/log/messages, y encender la pocket). Las IP’s local y remota pueden dejarse por defecto tal cual están. El servidor DNS puede usarse cualquiera, yo uso los de la timo, que para eso pago (194.179.1.100).

Para la integración con KDE, no estoy seguro de si he instalado yo los paquetes o venían con la ristra de material innecesario, pero por si acaso el paquete a instalar es éste:

apt-get install synce-kde

Esto instala una aplicación llamada Raki, que sirve para la sicronización y el acceso al dispositivo. Al lanzarla desde el menú de KDE aparece un trayicon en el Kicker que da las opciones de acceso.

Hay que ejecutar el siguiente comando para establecer la conexión serie con la PocketPC, cambiando el nombre del dispositivo por el que se genera en /dev (consultar pasos anteriores)

synce-serial-config ttyUSB0

Si todo va bien, dice algo como You can now run synce-serial-start to start a serial connection. Ahora ejecutando synce-serial-start la conexión serie se establece y ya se puede lanzar Raki para conectar con el aparato.
Hay que ejecutarlo cada vez que se quiera sincronizar el aparato, que es un coñazo. Antes esto estaba solucionado con un pequeño script de hotplug, pero como decía al principio Debian ETCH viene completamente integrada con Udev.

Crear un fichero /etc/udev/rules.d/10-ipaq.rules con el siguiente contenido:

# udev rules file for SynCE
BUS!=="usb", ACTION!=="add", KERNEL!=="ttyUSB*", GOTO=="synce_rules_end"
# Establish the connection
RUN+="/usr/bin/synce-serial-start"
LABEL="synce_rules_end"

Y reiniciar Udev:

/etc/init.d/udev restart

Y ya está. Ahora ya se puede encender la PocketPC directamente y en seguida se establece la conexión. Para sincronizarla hay que seguir el manual que mencinaba al principio (multisync + evolution), aquí dejo un copy-paste:

Para sincronizar la agenda y los contactos hay que ejecutar Multisync. Crear (NEW) un nuevo emparejamiento, y en el primer plug-in poner Synce Plugin, y en el segundo poner Ximian Evolution 2. El nombre del emparejamiento (digo yo que se traducirá así…) no influye en nada, así que se puede poner Imate, o PocketPC o lo que sea. Ahora apretando el botón de Multisync, se sincroniza la PDA con Evolution.

También se puede lanzar Raki para acceder al dispositivo desde Konqueror vía rapip://

Me queda sólamente un pequeño quiz: mi Pocket es un teléfono (I-mate Jam), y cada vez que lanzo Raki, el dispositivo lanza una conexión a Internet por GPRS que yo tengo que cancelar a mano. Si se llega a conectar, Orange me cobra una pasta, y encima pierdo la conexión con Synce. Supongo que éste ya es problema de Windows Mobile…

Alguien sabe cómo solucionar ésto?

EDITADO: No me había dado cuenta y en el manual de Ubuntu tenía un comentario de R. Juncos explicando la solución de Udev (gracias :-P). De todas formas no está de más unificar el tema en un post para Debian ETCH con KDE, así que creo que no eliminaré esta entrada.

NOTA: Al acceder al dispositivo desde RAKI (rapip://) veo sólamente 2 o 3 ficheros y 1 directorio, algunos carácteres raros y ya está. No sé a qué se debe, alguien ha tenido este problema?

Xfce 4.4

Febrero 13th, 2007

logo_xfce.jpgSí señor, ya estoy en 4.4 de mi gestor de ventanas favorito. Ví un review cuando salió a la luz y tuve ganas de probarlo. Debo decir que aparte de algunas mejoras en la gestión del escritorio la verdad es que no ha cambiado demasiado.

Genial Thunar, el navegador de disco que incorpora, y que recuerda bastante a Nautilus en su look. El filemanager clásico (xffm) era bastante incómodo y siemrpe he usado bash para suplantarlo. No quiere decir que deje de hacerlo, pero por ejemplo me va a venir bien para navegar por mis directorios de fotos y abrirlas en ImageMagick a un click.

Las transparencias en las terminales… qué voy a decir. Funcionan, es cierto, pero como no me gustan pues simplemente no las activo. Me molestan más que otra cosa. Eso sí, he cambiado la consola que solía usar (aterm) por la propia del gestor de ventanas (xfterm) porque son muy parecidas y la de xfce4 me permite cambiar los carhsets cuando me interese. Puede que suene a tontería esto último, pero es muy útil cuando se quiere traducir un dump de mysql con iconv heheh
Por otro lado ya incorpora iconos en el escritorio, pero tampoco me gustan así que me he devanado los sesos para encontrar el sitio desde el que desactivarlos. Tampoco uso el iconbox, nunca lo he encontrado necesario.

La verdad es que soy bastante austero en el uso de los gestores de ventanas, y siempre he sido pro-fluxbox, aunque cambié a xfce4 por la inclusión de iconos en las taskbars y las herramientas de gestión del escritorio, que aunque hay quin las tacha de primitivas son más que suficientes.

Algo que echo en falta desde hace tiempo y que sigue sin estar presente: la gestión del screensaver. No por ponerle un fondo animado, sino para desactivar el blank screen, que siempre me molesta para hacer presentaciones.

Así pues, en realidad, después del upgrade continúo prácticamente como estaba. Eso sí, estoy a la última :-)

Al final Amavisd

Octubre 26th, 2006

spam.jpgBueno pues la solución que posteé ayer era buena, pero tenía un pequeño fallo de funcionamiento en el que no había caído… comprobé durante las pruebas que los mensajes que enviaba llegaban a su destino correctamente, de lo que no me dí cuenta es de que también se enviaban al remitente :D

La explicación es fácil: se invoca a procmail con los parámetros ${sender} ${recipient} y luego ejecutar el envío desde el filtro usando “$@” como destino, se pasa entre los argumentos el primer parámetro, el sender, y por tanto también a él le llega copia del mensaje.

Obsesionado, he buscado durante horas y horas la manera de recortar la lista de argumentos desde dentro del procmailrc, pero no he sido capaz, ni dentro de los filtros ni de forma global. Si alguien lo consigue, aunque sea ya por mero desafío, que lo diga heheh

Finalmente, mi amigo fr3nd me ha hablado de Amavisd, y acostumbrado a MIMEDefang no me ha sido difícil de implementar. La verdad es que lleva en producción todo el día y de momento va bastante bien.

Las instrucciones mínimas son las siguientes:

1) Instalar amavisd

2) Editar el fichero de configuración (/etc/amavisd.conf)

3) Modificar el contenido de las siguientes líneas para personalizarlo con el dominio principal de la máquina:

$mydomain = 'somesite.net'
$myhostname = 'boxname.somesite.net'

4) Leer el resto de la configuración para acabar de ajustar los parámetros deseados (tamaño máximo de correos enviados, política por defecto ante virus y spam, sistemas de filtrado antivirus…)

5) Modificar el master.cf para añadir un transport con el filtro:

# Amavisd
smtp-amavis unix -      -       y       -       2  smtp
-o smtp_data_done_timeout=1200
-o smtp_send_xforward_command=yes
-o disable_dns_lookups=yes
-o max_use=20

127.0.0.1:10025 inet n  -       n       -       -  smtpd
-o content_filter=
-o local_recipient_maps=
-o relay_recipient_maps=
-o smtpd_restriction_classes=
-o smtpd_delay_reject=no
-o smtpd_client_restrictions=permit_mynetworks,reject
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o smtpd_data_restrictions=reject_unauth_pipelining
-o smtpd_end_of_data_restrictions=
-o mynetworks=127.0.0.0/8
-o smtpd_error_sleep_time=0
-o smtpd_soft_error_limit=1001
-o smtpd_hard_error_limit=1000
-o smtpd_client_connection_count_limit=0
-o smtpd_client_connection_rate_limit=0

6) Modificar el main.cf para añadir el socket de comunicación con Amavis:

# Amavisd
content_filter = smtp-amavis:[127.0.0.1]:10024

7) Lanzar amavis (avamisd start) y reiniciar postfix

Spamassassin, procmail y Postfix

Octubre 25th, 2006

spam.jpgBueno pues esto ya me traía de caeza. Se trata de filtrar el correo con procmail (adorado Procmail) en un sistema de correo Postfix con usuarios virtuales.

Cabe decir que a mí personalmente no me gusta la idea de eliminar el spam antes de entregarlo, pero es cuestión de ahorro de ancho de banda, uno de los bienes más preciados a nivel mundial, y de los más altamente cotizados en el mercado del hosting español (y nos quejamos de la gasolina…)

EL roblema radica en que, siendo usuarios físicos basta con poner un fichero .procmailrc en cada home, que compruebe si el mensaje está tageado como spam, y entonces lo borre. Ahora bien, siendo usuarios virtuales (mapeados en mysql) la cosa cambia y el fichero de filtrado se lee por defecto de /etc/procmailrc (en FreeBSD como es el caso, /usr/local/etc/procmailrc).

No es que eso suponga un problema, pero el caso es que no he sabido encontrar por ahí la manera de pasar el filtro primero a Spamassassin, luego dejar caer el mensaje en procmail (spamc -e, prueba superada) para que siga la ejecución del transport, y finalmente de procmail pasarlo al binario sendmail de postfix. Este último paso es el que me mataba.

Bien, pues he encontrado la solución, y la dejo aquí por si a alguien le sirve. Seguro que a muchos usuarios de VHCS les será útil :-)

En el transport he incorporado el filtro de procmail en el lugar del binario de sendmail, que invoco después desde el procmailrc. Queda así (master.cf):

spamassassin unix -     n       n       -       -       pipe
user=nobody argv=/usr/local/bin/spamc -f -e
/bin/procmail -m /usr/local/etc/procmailrc ${sender} ${recipient}

Después, el procmailrc que dejo por defecto es este:

FROM="<$1>”

:0
* ^X-Spam-Status: Yes
/dev/null

:0
! -f $FROM “$@”

Recogiendo las direcciones de orígen y destino del entorno, todo el problema se resuelve. Ahora bien… la sintaxis no es muy deducible, y en el site oficial de procmail la documentación no brilla precisamente por su abundancia.

Por otro lado, en los ejemplos de Spamassassin recomiendan filtrar por la cabecera X-Spam-Level, pero eso significa que para aumentar o disminuir el nivel a partir del que hay que borrar, es necesario editar el procmailrc y añadir o quitar asteriscos a la puntuación. Filtrando por status sólo hay que poner la puntuación en el local.cf de Spamassassin y relanzar el demonio.

Y eso es todo :-)

Portátil a full

Abril 20th, 2006

Es tarde y he dormido 1 hora y media en 3 días, pero si no lo escribo rebiento.

Ya tengo todo funcionando al 100% en el portátil. Me queda echarle un ojo a la recomendación de pof acerca del power management para dejarlo ya como un cristal.

Esta tarde hemos estado echando unas partidas a Quake3-Arena (que ahora es GPL) y la gráfica da miedo ver cómo funciona. El sonido en Q3 y ET me ha dado problemas, pero se soluciona con un tip que he encontrado en el Wiki y en los foros de Gentoo:

echo “quake3.x86 0 0 direct” > /proc/asound/card0/pcm0p/oss
echo “et 0 0 direct” > /proc/asound/card0/pcm0p/oss
echo “quake3.x86 0 0 disable” > /proc/asound/card0/pcm0c/oss
echo “et 0 0 disable” > /proc/asound/card0/pcm0c/oss

Tengo un Amarok que me hace sonar música mientras trabajo con los drivers de alsa que también funcionan (increíble Amarok, no lo conocía. Lo recomiendo a todo el mundo… Xmms es la prehistoria).

Cómo ya expliqué en un post anterior, tengo funcionando el escalado de frecuencia, y desde hace media hora tengo también funcionando la Wifi.

No he podido resistir la alegría y he aprovechado para poner también un fbsplash con initramfs, con el tema de Gentoo. Mañana en el curro con un poco de calma y con Inkscape haré un splash bonito.