Archive for the 'Debian' Category

Instalación de VMWare Server en Debian Etch sin X

En el curro hemos preparado una modesta máquina para virtualizar las máquinas failover que tenían poca carga. Mi sorpresa es que VMWare Server pedía librerías que no tenía instaladas, todas referentes a las X. Busqué por Google y como no, llegué a un foro de Ubuntu donde el tio se instalaba todo el sistema gráfico. Yo como soy algo maniático en estos aspectos estuve indagando hasta que instalé todo lo necesario para la configuración correcta de VMWare Server y utilización de la consola remota.

# apt-get install libx11-6 libxtst6 libxt6 libxrender1

Eso debería servir. Luego hace falta bajarse el cliente para conectar al servidor remotamente desde máquinas que no tienen el VMWare Server instalado, y que el servidor tenga inetd corriendo para que vmware-authd funcione y autentifique.

Lo único que queda es instalar VMWare Server en la máquina, pero eso está tan documentado que me da palo escribirlo. Espero que os sirva para no ensuciar el sistema (¿Qué narices hacen unas X y las respectivas fuentes en un servidor dedicado a la virtualización?).

Ahora busco una utilidad de backup para vmdk… y económica.

Un saludo.

ROUTE target en IPTables

Se trata de un módulo no oficial para IPTables que hace más fácil y centralizada la gestión de rutas a host en un sistema linux. Una vez configurado nos permitirá reglas del tipo:

# iptables -A PREROUTING -t mangle -d 193.110.10.58 -j ROUTE –gw 10.0.0.257

Para echarlo a funcionar tendremos que parchear el kernel con patch-o-matic. Como los sources de Debian utilizan otra numeración al aplicar el parche nos fallará. La idea es bajarse los sources de la misma versión de iptables que nos ofrece debian y utilizando para el parcheo.

Instalamos las fuentes oficiales de Debian desde apt-get, que hará que sean más fáciles de mantener que las que nos bajemos de kernel.org, y alguna herramienta de compilación:

# apt-get install linux-source-2.6.18 gcc make ncurses-dev
# cd /usr/src
# tar -xjpf linux-source-2.6.18.tar.bz2
# ln -s linux-source-2.6.18 linux

Bajamos y descomprimimos las fuentes de IPTables:

# wget iptables-1.3.6.tar.bz2
# tar -xjpf iptables-1.3.6.tar.bz2

Bajamos y descomprimimos patch-o-matic:

# wget patch-o-matic-ng-20070728.tar.bz2
# tar -xjpf patch-o-matic-ng-20070728.tar.bz2
# cd /usr/src/patch-o-matic-ng-20070728

Si, es cierto, no es la versión más nueva que existe, pero el que las más nuevas no incluyen el módulo ROUTE. Es sospechoso y me preocupa algo (¿Por qué lo habrán quitado?), pero como ejemplo sirve.

Aplicamos el parche ROUTE indicandole que los sources de IPTables están en determinado directorio.

# IPTABLES_DIR=/usr/src/iptables-1.3.6 ./runme ROUTE

Ahora contestamos y. Nos dirá que el parche ha sido aplicado satisfactoriamente y que ahora es necesario compilar el kernel y los módulos.

Para ahorrar tiempo y desplegarlo más rápido en diferentes máquinas haremos un paquete deb del kernel.

Copiamos la antigua configuración del kernel precompilado de Debian

# cd /usr/src/linux
# make oldconfig

Instalamos las herramientas necesarias:

# apt-get install kernel-package

Desinstalamos el viejo kernel de Debian:

# apt-get remove –purge linux-image-2.6.18-5-686

Limpiamos el directorio de compilaciones previas si las hubiese:

# make-kpkg clean

Ahora compilamos de dos formas. La primera si necesitamos un paquete con los headers para algun driver como el de nVidia y demás. El segundo es el que he utilizado y servirá en la mayoría de los casos.

# make-kpkg –initrd kernel_image kernel_headers

o

# make-kpkg –initrd kernel_image

Podemos ahora desplegar este kernel precompilado por todas las debian que queramos utilizando dpkg:

# dpkg -i Kernel.deb

Como dije antes el target ROUTE parece que no ha sido incluido en versiones más nuevas de patch-o-matic. Quizá por estar descontinuado, fallar o por alguna otra razón. La verdad que no conozco la causa, pero lo que se puede hacer es utilizar iproute e iptables, para marcar los paquetes y darles salida por la puerta de enlace deseada.

Un saludo.

Debian GNU/Linux 4.0 (Etch) released!

Por nuestro compañero chipi me entero de la esperada noticia. También disponemos de la noticia en castellano. Disfrutadla por mi, porque me quedaré en Old-Stable (a.k.a. Sarge), la cual seguirá teniendo parches de seguridad durante bastantes meses más (Hasta que la actual release testing sea stable)

Migrando el servidor de Debian Sarge a FreeBSD 6.1

Quizá hoy hayáis notado que desde las 3 de la tarde hasta las 10 de la noche la web no ha funcionado. El caso es que he clonado mi máquina a una máquina virtual para así disponer de ella para instalar FreeBSD. El por qué tardé tanto tiene una razón, me dormí mientras hacía una backup.

Usando los mismos cilindros de inicio y fin para las particiones, y usando Partimage la migración fue perfecta. Ya está funcionando con su kernel, el único contratiempo es que se me olvidó escribir grub en el MBR, por lo demás perfecto.

Abriré el servidor, lo limpiaré, cambiaré la pasta termina, le pondré más RAM y… me estoy pensando tocarle las frecuencias, pues mis memorias son de 133 MHz y el bus de este micro es de 100 MHz, con un multiplicador de 9. He de decir que no estoy muy seguro, aunque ya lo he hecho varias veces en otras máquinas, digamos que le tengo cierto cariño a esta máquina, quizá porque es el mejor servidor que tengo.

De momento se quedará apagado mientras planifico la instalación del nuevo SO y busco nuevo nombre para la máquina, anteriormente Espiral, pero como que no pega mucho si corre FreeBSD.

Manual de Postfix + SASL + MySQL + POP + IMAP + VDA + Clamav + Spamassassin bajo Debian

Ya se me olvidaba de este manual. Es el que escribí para un curso de Postfix bajo GNU/Linux que dí a trabajadores en activo. Se explica como, bajo Debian, instalar Postfix y configurarlo, de modo que autentique contra MySQL, como hará también Courier para el servicio POP e IMAP. Todo el sistema será con usuarios virtuales, tocando las listas negras, los filtros de correo, antivirus con Amavis y Clamav, Spamassassin. También se explican numerosas UCE Controls y la configuración de SMTP, POP3 e IMAP bajo capa TLS. Por último, los buzones se crearán automáticamente y se podrá entender el funcionamiento de las colas de Postfix, tipos de buzones, etc. He explicado conceptos básicos y las órdenes para echarlo a andar. Desde mi punto de vista, si se quiere montar un servidor de correo para uno o varios dominios no estaría de más echarle un ojo, o si no os hace falta, leeroslo y me reportáis errores :).

Tenéis todos los ficheros en mi directorio web público.
A diferencia de lo escrito en éste blog, el manual está liberado bajo la licencia GFDL, cuya traducción no oficial al castellano podéis leer.

Lo más probable es que adapte la guía a un sistema Gentoo GNU/Linux y al terminar el verano a uno FreeBSD por lo que tendríamos 3 manuales diferentes si se diese el caso 🙂

DD-WRT en Linksys WRT54GL

Hoy me ha llegado un router WRT54GL de FON (Neutro) que ya he registrado como fonero y flasheado. He ido a la web del firmware DD-WRT a descargar la imagen mini, metérsela al router y luego proceder a meter la versión con VPN (Por probar a ver que tenía). Es como tener una Smoothwall o IPCop (No es comparable con MonoWall) pero en un cacharro más pequeño, con 16 MB de RAM y 216 MHz. Es sencillamente una maravilla y su alcance es cojonudo. Además sus antenas son desmontables (Ambas) y puedo conectar otras antenas.

Que me haya aprovechado de la promoción de FON, no quiere decir que no libere mi wifi, eso sí, por ahora no. Cuando tenga todo correctamente montado compartiré mi línea, algo que espero no se alargue mucho.

Como siempre tuve pensado, restringiré la salida por la WLAN, solamente a HTTP, HTTPS, SMTP, POP3, Jabber, IRC y quizá si alguien me convence, MSN. El servidor DNS estará en mi casa, escuchando en todas las interfaces internas y montaré un sistema de colas en el gateway para que no se pasen de listos.

Ya veré como lo monto todo. Tendré que hacerme un esquema. Principalmente, la WLAN estará en otra red, así como a medio plazo los servidores en una DMZ, dejando esta máquina (Cliente) en otra red.

Pero ya que me pongo a hablar de mis servidores os contaré lo que tengo pensado hacer también a medio plazo. Actualmente tengo muchas (2 o más) máquinas, unas Gentoo, otra Debian… y empieza a ser cansino mantener los servicios, sobretodo cuando tienes mejores cosas que hacer. He decidido que si me encuentro con ganas, por el verano montaré en el Celeron 900 MHz una FreeBSD 6.1 con Apache, Servidor FTP (He de mirar vsftpd contra MySQL), Postfix para SMTP, Courier para POP3 e IMAP, etc. De ese modo tengo una máquina decente para probar sistemas operativos en entorno real con hardware de verdad, dejando de lado las máquinas virtuales. Como ya he dicho en post anteriores tengo ganas de pillar por banda un Plan9 o Solaris. Quizá me ponga con Solaris, por entretenimiento y por lo didáctico del asunto.

Por lo tanto, la nueva estructura será algo así:

WAN –> Modem –> Gateway OpenBSD –> Switch D-Link –> Red

La red como dije antes la estructuraré en:
Clientes: 10.0.0.0/30
Servidores: 172.24.0.0/28
Clientes:192.168.0.0/24

Lo pongo en diferentes clases no porque no sepa crear subredes con mascara de longitud variable, sino por el reconocimiento a primera vista.

Aquí surge un problema, de mi máquina cliente no puedo acceder a los servidores porque están en otra red y claro, enrrutar ambas hace que el invento pierda la gracia, por lo que tendré que tener un teclado y pantalla disponibles.

Ya os iré contando. De momento, estoy abierto a nuevas ideas.

Arreglando un pequeño contratiempo en Debian Sarge

Hoy mi script de actualizaciones me ha notificado que había actualizaciones de:

Se actualizarán los siguientes paquetes:
libc6 libc6-dev locales perl perl-base perl-modules tar
7 actualizados, 0 se instalarán, 0 para eliminar y 0 no actualizados.
Necesito descargar 18,1MB de archivos.

Claro, cuando lo vi lo primero que hice fue visitar la web de seguridad de paquetes de Debian y ver que no tenía ninguna vulnerabilidad. Me extrañé, pero de todos modos actualizé obteniendo un error.

Desea continuar? [S/n] S
(Leyendo la base de datos …
15292 ficheros y directorios instalados actualmente.)
Preparando para reemplazar libc6 2.3.2.ds1-22 (usando …/libc6_2.3.2.ds1-22sarge3_i386.deb) …
Desempaquetando el reemplazo de libc6 …
dpkg: error al procesar /var/cache/apt/archives/libc6_2.3.2.ds1-22sarge3_i386.deb (–unpack):
no se puede crear un enlace de seguridad de `./usr/share/zoneinfo/Europe/Madrid” antes de instalar
la nueva versión: Operación no permitida
dpkg-deb: el subproceso paste fue terminado por la señal (Tubería rota)
Se encontraron errores al procesar:
/var/cache/apt/archives/libc6_2.3.2.ds1-22sarge3_i386.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

Lo primero que pensé cuando leí Operación no permitida fue en los atributos extendidos de Linux (véase lsattr y chattr) pues los usaba.

# lsattr /usr/share/zoneinfo/Europe/Madrid
—-i———— /usr/share/zoneinfo/Europe/Madrid

UH!?

# chattr -i /usr/share/zoneinfo/Europe/Madrid
# lsattr /usr/share/zoneinfo/Europe/Madrid
—————– /usr/share/zoneinfo/Europe/Madrid

Bien, probemos.

# apt-get -f dist-upgrade

Correcto!!

# chattr +i /usr/share/zoneinfo/Europe/Madrid
# lsattr /usr/share/zoneinfo/Europe/Madrid
—-i———— /usr/share/zoneinfo/Europe/Madrid

Los atributos extendidos (de ahora en adelante ea) son unos atributos del sistema de ficheros que se maneja con las utilidades lsattr y chattr.
El comando lsattr sirve para listar los ea de un fichero o directorio.
El comando chattr sirve para asignarlos. Podéis leer el man chattr para verlos todos, pero resumiendo mucho, los más útiles en mi opinión con el a y el i.

El atributo a proviene de append y significa añadir. Esto hace que a un fichero solos e le puedna añadir datos, peor no eliminarlos ni modificarlos, y mucho menos eliminar el fichero en cuestión. Es muy útil para los logs, pues solo añadimos y así no se pueden eliminar, aunque si se obtiene acceso a root un $ chattr -a fichero bastaría.

El atributo i hace que el fichero sea inmutable, y cuando digo inmutable me refiero a que ni root puede hacer nada. Ejemplo:

# touch prueba
# chattr +i prueba
# lsattr prueba
—-i———— prueba
rm prueba
rm: ¿borrar el fichero regular vacío «prueba» protegido contra escritura? (s/n) s
rm: no se puede borrar «prueba»: Operación no permitida

Es muy útil para cuando tenemos una jaula chroot y no queremos machacar por un despiste esa jaula que tenemos. Aplicamos pues atributos extendidos y no será posible machacarlos sin querer.

Hay otro flag interesante que es el s si no recuerdo mal, que sirve para No hacer backup del inodo del fichero que estamos eliminando. Resumiendo: Una eliminación segura, similar a un wipe aunque no puedo probarlo o quizá sea diferente, pero eso entendí.

De todos modos podéis leeros el manual de chattr y tambien miraros las ACL del sistema que se trabajan con getfacl y setfacl. Ya no son tan sencillas pero sí muy útiles cuando en sistema UGO (User Group Other, configurables con chown y chmod) se nos queda pequeño.

Espero que el post os haya servido de algo. Agur.


Las opiniones reflejadas en este blog son personales o ni siquiera son opiniones, y bajo ningún concepto representan las estrategias, opiniones o posturas de mi empresa actual, ni de ninguna en las que he trabajado, así como tampoco de ninguno de los clientes o proveedores de todas ellas.
La información se proporciona como está, sin garantías de ninguna clase, y no otorga ningún derecho. Los comentarios pertenecen a sus autores y bajo ningún concepto el autor del blog se hará responsable de los mismos.

Categorías

Archivos