miércoles, 20 de agosto de 2008

Montando un servidor ciego con Debian Etch

Enlace original: http://ulibertad.wordpress.com/2007/10/06/montando-un-servidor-ciego-con-debian-etch/


Más de uno, probablemente, tenga por su casa abandonado un viejo ordenador que no sabe que hacer con el, probablemente piense que es una molestia tenerlo ahí pero seguramente no sepa que sea lo suficientemente potente como para utilizarlo como servidor ciego en nuestra red local. Ahora os estaréis preguntando que es un servidor ciego, en pocas palabras es un ordenador que correrá un sistema operativo sin interfaz gráfica que podremos controlar remotamente, por lo que no nos hace falta conectarle monitor, teclado o ratón. En este servidor ciego, podremos correr cualquier programa, como clientes P2P controlados remotamente, o usarlo como servidor de archivos y almacén, pudiendo acceder a sus archivos en toda nuestra red, o de servidor de impresión,… las posibilidades son infinitas.
Mi servidor ciego es un PIII a 500Mhz con 128Mb de RAM, y es más que suficiente para correr todos los servicios y programas que necesito, como TorrentFlux para mis descargas de Torrent, MLDonkey para mis descargas ED2K, Apache como servidor WEB, MySQL, un servidor FTP, un servidor con NFS, un servidor de Impresión con CUPS, etc… No hace falta ninguna máquina potentísima para correr todo esto, lo más necesario es la RAM, cuanta más mejor. Luego hay quien los reduce a su mínima expresión y para meterlos en una caja de metacrilato, o incluso un Tupperware, yo sinceramente, el mio lo tengo en su torre original, por que no tengo problemas de espacio, pero le he desconectado practicamente, unidades de CD o DVD, disquetera, etc… solo nos hace falta la placa base, CPU, tarjeta de Red, fuente de alimentación y los Discos duros. Lo que hagáis con él, o donde lo pongáis ya es cosa personal de cada uno.
Pues bien, para todos los interesados en hacerse su propio servidor ciego voy a explicar como lograr una instalación totalmente personalizada partiendo de una distribución Debian Estable (Etch), y para mayor comodidad utilizaremos el CD netinst de la distribución. Este tutorial lo realizaré por pasos, en esta primera entrada explicaré como instalar el sistema base de Debian, en próximas entradas explicaré como instalar y configurar los diferentes programas y servicios que necesitemos de nuestro servidor.
En que consiste el CD netinst?
El CD netinst es una manera de instalar únicamente el sistema base de Debian, dejando a la elección del usuario los programas que serán añadidos tras la instalación. Lo que quiere decir que, tras instalar, tendremos un sistema de lo más básico, pero con la posibilidad de instalar los paquetes que nos apetezca, personalizando así nuestro sistema y dejándolo completamente a nuestro gusto. Bajo mi punto de vista es la mejor manera de instalar una distribución GNU/Linux, ya que nos permite tenerla a nuestro gusto desde el primer al último paquete.
Preparativos
Antes de proceder tenemos que elegir como particionaremos el disco duro para alojar nuestro sistema. Esto es algo que puede cambiar según la necesidad o las preferencias de cada uno, pero yo recomiendo usar 3 paticiones:
Una para el directorio raíz de unos 10 Gb. Le damos formato ext3 (se pueden usar otros formatos, pero este es el más recomendable). Su punto de montaje es /.
Otra para el directorio personal del espacio que quiera cada uno, aquí irán los archivos de cada usuario, apenas necesitaremos espacio en esta partición, así que un tamaño de unos 2Gb será más que suficiente. También en ext3. Su punto de montaje es /home.
Y otra para la partición de intercambio. El tamaño de esta depende de la cantidad de memoria Ram que tengamos. Si tenemos poca Ram pondremos el doble, en mi caso tengo 128Mb de Ram y mi partición Swap es de 320 Mb, un poco más del doble por si acaso. Hay que darle formato Swap. No tiene punto de montaje.
Por último hay que decidir que versión de Debian queremos. Tenemos 3 posibilidades (stable, testin y unstable) pero lo mejor es decantarnos por una versión estable, no necesitamos tener las últimas versiones de los paquetes, necesitamos estabilidad y que todo funcione como se espera, y para ello es mejor disfrutar de los paquetes más estables, aunque con ello nos tengamos que conformar con versiones no tan actualizadas. Y si no leed como la ha definido Tony:
Versión estable (stable): Como su propio nombre indica es la versión de Debian que tiene los paquetes más probados y, por tanto, la más estable. Esta versión es la más recomendable en caso de que queramos usar Debian como servidor debido a su gran estabilidad. Para un entorno de escritorio doméstico quizá sea la menos aconsejable, ya que está muy poco actualizada y las versiones de los paquetes que contiene no son precisamente nuevos.
Obteniendo el CD apropiado
Una vez que tengamos todas estas consideraciones claras, nos descargaremos el CD adecuado según nuestro procesador. Aquí están los enlaces para procesadores de 32 bits y 64 bits. Ambos CDs son de la versión estable, se pueden descargar también CDs de las versiones testing y unstable, pero prefiero usar la versión estable, después cada uno puede actualizar a la versión que quiera trás instalar el sistema base. Como tengo un PIII pues tendré que elegir 32 bits y supongo que nadie tendrá para su servidor ciego una CPU de 64 bits, pero por si acaso ahí os queda el enlace para 64 bits.
Ahora ya sólo queda grabar el CD, introducirlo en el lector y reiniciar el PC para arrancar el sistema desde dicho CD.
Instalando
La instalación no es nada complicada, vamos siguiendo los pasos del instalador. Elegimos nuestro idioma, le damos un nombre a nuestra máquina (yo le puse servidor-debian, así la identifico rápido en mi terminal), configuramos la red eligiendo la interfaz Ethernet adecuada (si tenéis más de una, basta con ir probando). Nos pedirá alguna cosa más como la contraseña para root, el nombre y contraseña para nuestra cuenta, etc.
Cuando lleguemos al particionado seleccionaremos la opción de particionado manual. Como tenemos las particiones creadas, solo será necesario seleccionar una a una las particiones asignándoles el sistema de ficheros y el punto de montaje adecuado, como se puede ver en la captura:
Cuando lleguemos a la parte de configuración de APT, seleccionaremos una réplica de red y nos pedirá elegir una ubicación. Personalmente prefiero usar el servidor Finlandés ya que suele estar algo más actualizado que el Español, pero podéis seleccionar el que queráis.
Llegaréis a una pantalla donde podremos elegir varios grupos de paquetes para instalar. Aquí hay que seleccionar “Sistema estándar”, el resto de las opciones probablemente las necesitemos más adelante, pero yo prefiero ir instalandolas según las voy necesitando. Así que solo marcaremos “Sistema Estándar”:
Por último llegaremos a la instalación de GRUB, el cargador de arranque. Seleccionaremos Si para instalar Grub en el sector de arranque del disco.
Finalizando la instalación
Una vez terminado todo el proceso, solo queda retirar el CD cuando se abra la bandeja y presionar Enter para reiniciar el equipo. Seleccionamos Debian con el Kernel normal (el que no pone single user mode) y entraremos en nuestra nueva Debian.
Ya tenemos nuestro sistema Debian instalado, en breve retomaremos el trabajo para instalar y configurar nuestro servidor ciego y los demás servicios o programas que necesitemos en él.

domingo, 10 de agosto de 2008

Optimizar Kernel

El en lace original: http://www.laconsolablog.com/2008/05/03/ubuntu-hardy-heron-optimizacion-del-kernel/

Bueno, tarde pero seguro. Por si alguno se perdió de la primera parte, en la que explicaba como solucionar algunos errores o bugs en la Beta o Release Candidate de Hardy Heron, al final del post anunciaba la publicación de una segunda etapa. En la misma, daría unas pocas indicaciones acerca de cómo terminar de configurar temas del kernel.
Bueno, acá estamos.
1. Borrado del kernel 2.6.22 (Ubuntu 7.10)
La primer pauta es la de quitar la versión del kernel que usaba Gutsy Gibbon. Aunque obviamente, queda reservado para aquellos a los que no les interese mantener varios megas ocupados en disco, o para los que no posean alguna configuración pendiente del kernel anterior. Como es sabido, un dispositivo que funcionaba perfectamente con el kernel 2.6.22 no necesariamente deba funcionar de entrada con 2.6.24. En algunas ocasiones, antes hay que volver a instalar los controladores para la nueva versión. Afortunadamente, en Ubuntu y derivadas no pasa tan seguido. En parte, eso se debe a los paquetes restringidos en su código fuente o licencia que brinda la distribución, simplificando varios minutos de búsqueda y configuración por Internet. Además, vamos a tener el GRUB automáticamente optimizado, mostrando sólo aquellos kernels que tenemos instalados.
Para este proceso vamos a usar al comando aptitude (no apt-get) porque ofrece un par de opciones bastante útiles, aunque sencillas, que simplifican bastante el trabajo. Lo primero que hay que hacer es filtrar aquellos paquetes que correspondan a imágenes del núcleo Linux que tenemos instaladas actualmente en el sistema. Para ello:
$ aptitude search linux-image grep ^ii linux-image-2.6.22-14-generic - Linux kernel image for version 2.6.22 on xi linux-image-2.6.24-16-generic - Linux kernel image for version 2.6.24 on xi linux-image-generic - Imagen genérica del núcleo Linux
Como se ve, en mi caso muestra tanto las imágenes de los núcleos correspondientes a Gutsy como a Hardy, en su versión genérica. Como queremos remover el primero, hay que citar el siguiente comando como root.
# aptitude purge linux-image-2.6.22-14-generic(...)Los siguientes paquetes están ROTOS:linux-restricted-modules-2.6.22-14-genericlinux-ubuntu-modules-2.6.22-14-genericvirtualbox-ose-modules-2.6.22-14-genericSe ELIMINARÁN los siguientes paquetes:linux-image-2.6.22-14-generic{p}0 paquetes actualizados, 0 nuevos instalados, 22 para eliminar y 0 sin actualizar.Necesito descargar 0B de ficheros. Después de desempaquetar se liberarán 83,4MB.No se satisfacen las dependencias de los siguientes paquetes:virtualbox-ose-modules-2.6.22-14-generic: Depende: linux-image-2.6.22-14-generic pero no es instalablelinux-restricted-modules-2.6.22-14-generic: Depende: linux-image-2.6.22-14-generic pero no es instalablelinux-ubuntu-modules-2.6.22-14-generic: Depende: linux-image-2.6.22-14-generic pero no es instalableResolving dependencies...Las acciones siguientes resolverán estas dependencias
Eliminar los paquetes siguientes:linux-restricted-modules-2.6.22-14-genericlinux-ubuntu-modules-2.6.22-14-genericvirtualbox-osevirtualbox-ose-modules-2.6.22-14-generic
La puntuación es -34
¿Acepta esta solución? [Y/n/q/?] y
Cabe destacar que mi aptitude detectó más paquetes que tenía instalados (linux-restricted-modules-2.6.22-14-generic, linux-ubuntu-modules-2.6.22-14-generic y virtualbox-ose-modules-2.6.22-14-generic) relacionados a la versión del kernel que quería remover, por lo que me ofreció desinstalarlos también. Como dichos paquetes de todos modos quedarían inútiles y ocupando varios megas, confirmé. A su vez, virtualbox-ose quedaría obsoleto por desinstalar los únicos módulos que lo hacían funcionar, pero puede instalarse tranquilamente más tarde junto con los módulos correspondientes al kernel que usemos.
Como dije antes, con esta desinstalación nuestro GRUB va a mostrar automáticamente solo aquellos kernels que tengamos instalados en el disco rígido.
2. Optimización del kernel 2.6.24 (Ubuntu 8.04)
Atención: Para todos aquellos que tengan un procesador de doble núcleo, quizás no sea tan conveniente realizar este paso. Gracias al comentario de un lector pude saber que el kernel citado en esta parte puede no detectar ambos, sino uno solo. Igualmente, no es tan grave y puede revertirse fácilmente.
El segundo paso que propongo es la instalación de un kernel más acorde al procesador, ya que el que viene instalado por defecto en Ubuntu quizá no sea el más provechoso para la mayoría. No obstante, este mini-HOWTO va a estar dedicado a aquellos que cuenten con un procesador i386. Si bien no se trata de la totalidad de los casos, hoy por hoy creo que es la gran mayoría. Si no sabés qué procesador tenés, seguí la siguiente pauta: Si tenés una PC y no ves por ningún lado que diga 64 bits, seguramente es de 32. De todos modos, si es de 64 no se va a morir por usar software de 32 bits, pero no es lo óptimo.
Yendo al grano, para instalar tanto el kernel como todos los dispositivos necesarios para asegurar la máxima compatibilidad con el hardware instalado (considerando un procesador i386, i486, i586 o i686) basta con ejecutar el siguiente comando:
# apt-get install linux-headers-2.6.24-16 linux-headers-2.6.24-16-386 linux-image-2.6.24-16-386 linux-restricted-modules-2.6.24-16-386 linux-ubuntu-modules-2.6.24-16-386
Así como en el primer paso quitamos, el comando anterior nos va a crear algunas entradas más en nuestro GRUB, correspondientes a la nueva versión de Linux que acabamos de instalar. El siguiente paso es opcional nuevamente, y recomiendo llevarlo a cabo luego de ver que todo nos funcione correctamente, y eventualmente que notemos un mejor rendimiento en la carga de las operaciones. Por mi parte fue de ese modo, así que puedo garantizarlo. Tengo que advertir que una vez que eliminemos la imagen del kernel, es difícil recuperar alguna configuración específica, aunque del mismo modo en muy pocos casos eso es necesario.
Con el siguiente comando bastaría para dejar todo lo más limpio posible:
# apt-get remove --purge linux-headers-2.6.24-16-generic linux-image-2.6.24-16-generic linux-restricted-modules-2.6.24-16-generic linux-ubuntu-modules-2.6.24-16-generic
3. Instalación de VirtualBox (en el nuevo núcleo)
Una vez que hayamos optimizado Linux para nuestro procesador x86, nos va a hacer falta “restaurar” VirtualBox. Por si alguno no sabe qué es VirtualBox, doc.ubuntu-es.org lo explica muy bien. A su vez, screening ya anticipó cómo instalar VirtualBox en Ubuntu 8.04, pero lo que omitió explicar (aunque bien mencionó) fue cómo hacer para distinguir entre las distintas versiones del procesador.
Para tener todo en las mejores condiciones para ejecutar entornos virtuales, ejecutar:
# apt-get install virtualbox-ose virtualbox-ose-modules-2.6.24-16-386 virtualbox-ose-guest-modules-2.6.24-16-386
Eso es todo! Espero que les vaya bien con sus respectivas instalaciones o actualizaciones y cualquier cosa no duden en consultar.