jueves, 17 de septiembre de 2015

Crea tu propio servidor GNU-Linux en unos instantes con Puppy Linux

          (P) Hugo Napoli, 2015 - Actualizado en 2016          

Toda la información que aquí figura, ha sido comprobada exitosamente en la distribución Puppy Slacko, versión 5.7.

Puedes ir haciendo lo siguiente, mientras lees este artículo:
- Ir a la página de descarga de Slacko y comenzar a descargarlo:
http://slacko.01micko.com/download.html
- Entrar directamente a alguno de los servidores disponibles para la descarga de Puppy Slacko:
Ibiblio o VCU Richmond (Estados Unidos)
Aarnet o Internode (Australia)
Nluug (Países Bajos)
Universidad de Creta (Grecia)
- Ir descargando Puppy vía torrent:
http://www.murga-linux.com/puppy/viewtopic.php?p=763681#763681
- También puedes, claro está, dejar de leer el artículo y conocer más sobre Puppy Slacko en su página web oficial:
http://slacko.01micko.com/index.html 

¡Woof, woof!



Requerimientos de hardware

Aunque hay demostraciones efectivas de funcionamiento con hardware obsoleto y muy poco potente, veremos los requerimientos mínimos indispensables para Puppy Slacko 5.7, en virtud de la tarea que le encomendaremos: la de correr un servidor.

El mínimo hardware aconsejable, a nuestro entender, es el siguiente:

- Espacio en disco para la instalación de Puppy: entre 3 y 4 GB.
- Memoria RAM: 512 MB
- Procesador: Pentium III (entre 900 MHz y 1 GHz) o AMD K7 (entre 900 MHz y 1,2 GHz).
El ordenador en donde se ha instalado y configurado el servidor Puppy, y que ha servido de fundamento para todo lo que aquí se ha escrito, posee las siguientes características de hardware:

Disco duro: 260 GB
Memoria RAM: 2 GB
Procesador: Intel dual core de 2,4 GHz
Puppy funciona con hardware antiguo tanto como con hardware de última generación. Posee soporte para discos IDE, SATA y SSD.

NOTA IMPORTANTE: un servidor, usualmente no necesita teclado, ratón ni monitor, así como tampoco entorno gráfico de ningún tipo. Entendiendo esto como una realidad muy frecuente, y tal vez la más deseable en cuanto a seguridad y funcionalidad, nos basaremos en estos principios para la construcción del artículo.




Configuración de hardware para un servidor: el sistema BIOS

Hay algunos aspectos importantes a considerar cuando se monta un servidor.
Este es un tipo de máquina que estará funcionando las 24 horas del día, los 365 días del año, y en el caso de un eventual corte de energía, no debe quedar apagado hasta que alguien se de cuenta y quiera ir a encenderlo.
No olvidemos que generalmente, los servidores, son máquinas aisladas físicamente de los usuarios, y deben estar programadas para autorecuperarse de algunas situaciones desfavorables, como por ejemplo, los cortes de energía.
Si bien un servidor debe estar conectado siempre a una UPS, al igual que los módem, enrutadores, conmutadores, concentradores, etc. (modems, routers, switches, hubs, etc.), también hay que prever que tal vez esto no sea así, o que, tras un corte de energía prolongado, la UPS se quede sin carga y el servidor se termine apagando.
Hay una configuración dentro del sistema BIOS que se puede ajustar para que al recibir energía, el servidor encienda solo.

Para esto, entraremos en la BIOS pulsando durante el arranque la tecla correspondiente (suele ser F2 o SUPR, pero esto varía según el fabricante y el modelo de la placa madre).


Nos desplazamos hasta la sección de configuración de eventos de energía.


Como vemos, la opción "Encendido luego una falla de energía" (Power on after power fail) está en "Apagado" (off). Por defecto, esto casi siempre es así, como se puede observar en la imagen.


Debemos cambiar el estado de "off" (apagado) a "on" (encendido).


De ahora en adelante, si el suministro de corriente se interrumpiera, al reanudarse, la máquina se encendería, y con ella, también nuestro querido Puppy Linux.


NOTA IMPORTANTE #1: para evitar errores en el arranque, hay otra opción que es la de "funcionar sin teclado". Es importante configurar esta opción, ya que, al encender, las máquinas buscan un teclado, y de no encontrarlo, se interrumpirá el arranque, mostrando en pantalla un mensaje de error referente a que no se ha encontrado el teclado.

NOTA IMPORTANTE #2: por motivos de seguridad, y para que nadie instale otro sistema, formatee los discos, cambie la hora, el orden de arranque, las opciones de energía, seguridad, etc., es recomendable colocar una contraseña de ingreso a la BIOS.


Luego seleccionaremos la opción "Guardar y salir" (save and exit setup).



Ahora es el momento de colocar el pen drive conteniendo a Puppy Linux, reiniciar la máquina y pulsar la tecla correspondiente para arrancar desde Puppy. Las teclas que hacen posible esta acción, suelen ser F9, F11 o F12, pero esto también es variable, como se explicó más arriba para el ejemplo de acceso a la BIOS.


En segundos, arrancará Puppy Linux. Lo más complicado, ya pasó.


Preparación de discos y particiones en donde será instalado Puppy Linux

Una vez más, el programa que utilizaremos para dicho fin, será gParted.
Puedes visitar su página web oficial y descargarlo libremente haciendo clic aquí.

Puppy ocupa muy poco espacio en un pen drive arrancable (bootable). Actualmente, puedes crear un pen drive de estas características con una unidad de tan solo... ¡500 MB o menos!
Luego de haber sido instalado, el Sistema podría ocupar poco más que eso, lo que hace que aún puedan utilizarse viejos discos IDE de 4 GB solo para la instalación de Puppy, y un disco adicional de tamaño mucho mayor para los datos de terceros que serán alojados en el servidor.

En el ejemplo que sigue, utilizaremos un solo disco SATA de 260 GB, y lo particionaremos en 2, asignando así una partición para Puppy (de 4 GB), y el resto, para datos de usuarios.

En primer lugar, crearemos las dos particiones mencionadas, ambas con el sistema de archivos ext4 nativo de Linux.




SECCIÓN DE LA ENTRADA EN CONSTRUCCIÓN



Impedir que se inicie el escritorio (iniciar en modo consola o terminal):


Para remover el inicio automático del usuario root, y así evitar que el entorno gráfico encienda y esté disponible "por defecto", haremos lo siguiente:

localizar y abrir el archivo /etc/inittab, el cual contendrá la siguiente información (puede haber pequeñas variaciones):


::sysinit:/etc/rc.d/rc.sysinit
tty1::respawn:/sbin/getty -n -l /bin/autologinroot 38400 tty1
tty2::respawn:/sbin/getty 38400 tty2
tty3::respawn:/sbin/getty 38400 tty3
::ctrlaltdel:/sbin/reboot

Sustituír la línea resaltada con fucsia -la cual le indica a Puppy que el usuario root posee registro e inicio automáticos (autologinroot)- por esta:

tty1::respawn:/sbin/getty 38400 tty1

Guardar los cambios.

A partir de este momento, cada vez que inicie Puppy Linux, mostrará la terminal a pantalla completa (no estará disponible de forma automática el Escritorio). Para acceder al modo gráfico, habrá que ingresar el nombre de al menos un usuario con privilegios de root, seguido de su contraseña. Inmediatamente, el servidor "x" (o entorno gráfico) se iniciará.

Luego de haber trabajado en (o con) el servidor "x", podemos, en lugar de cerrar la sesión o apagar el ordenador, "salir a consola" (exit to prompt).

Obtendremos entonces una pantalla negra esperando a la introducción de nuestras órdenes.

Si queremos volver a ver el Escritorio, entorno gráfico o servidor x, bastará con volver a identificarnos con privilegios de root (usuario y contraseña), e iniciar el motor gráfico "a mano" con el comando:

startx



 

Cambiar las contraseñas de los usuarios:


El comando que se utiliza para esto, es "passwd", seguido del usuario al cual queramos cambiarle la contraseña. Por ejemplo, si quisiésemos cambiar la contraseña woofwoof que tiene por defecto el usuario root en Puppy Linux, introduciremos el siguiente comando en la consola o terminal:

passwd root

El Sistema, mostrará el mensaje

changing password for root

lo cual indica que nuestra orden está siendo procesada, y a continuación, nos pedirá que ingresemos la nueva contraseña 2 veces. Generalmente, los caracteres que estemos introduciendo, no serán visibles (tendremos la sensación que no estamos escribiendo nada, o que el teclado no está funcionando... pero sí que funciona, y muy bien).




Impedir que se borren archivos o directorios desde las terminales remotas:


En casi cualquier Sistema Operativo, pueden otorgarse permisos de lectura o escritura sobre directorios enteros, carpetas individuales, o archivos.
Esto es necesario, para que, ya sea por accidente o mala intención, nadie pueda eliminar el contenido de un directorio entero, o una carpeta, o algún/os archivo/s.

He redactado un artículo que muestra cómo hacer esto mismo. Consúltalo, si es de tu interés, siguiendo este enlace dentro de mi blog:

http://hugonapoli.blogspot.com.uy/2015/07/importancia-del-comando-chattr-en.html




Instalación del paquete "Samba", para que Puppy se comunique con cuanta máquina esté a su alcance.


Existen muchos modos de configurar Samba, ya sea gracias a un paquete con entorno gráfico, o bien configurando un archivo de texto plano que será el que lea Samba cada vez que lo necesite, y hasta por consola. ¡Quién sabe si existen más modos!
Pero lo cierto es que en el mundo "Linux", cada maestrito parece tener su librito.
Y esto es válido, si llegamos a los mismos objetivos por distintos caminos.
Este es mi método. No digo que no existan otros, o que no me falte conocimiento, o que este sea el mejor, ni mucho menos. Solo digo que funciona.
Veamos cómo.

En primer lugar, la distribución Puppy Linux, si bien hoy es independiente en su funcionamiento del resto de los sistemas operativos de su propia familia, no ha sido escrita totalmente desde cero, ni deriva exclusivamente de un solo gran Sistema "padre" dentro de los Sistemas GNU-Linux.

Existen varias ediciones de Puppy, y su grado de compatibilidad con ciertos paquetes, a veces es muy bajo. Puppy toma paquetes de varias distribuciones, siendo sus proveedores más importantes los Sistemas GNU-Linux Slackware, Debian, Ubuntu y Arch Linux, entre otros posibles.
Por este mismo motivo, es que hay que prestar especial atencoión al paquete Samba a instalar, en función de la distribución Puppy que vayamos a utilizar.

Para Puppy Slacko 5.7, uno de los paquetes que funciona a la perfección es
samba_full-3.6.3-s.pet
el cual se puede descargar desde varios servidores (aquí dejo 4 sitios de descarga):

#1: http://distro.ibiblio.org/puppylinux/pet_packages-slacko/samba_full-3.6.3-s.pet
#2: http://ftp.vim.org/ibiblio/distributions/puppylinux/pet_packages-slacko/samba_full-3.6.3-s.pet
#3: http://mirror.vcu.edu/pub/gnu_linux/puppylinux/pet_packages-slacko/samba_full-3.6.3-s.pet
#4: http://ftp.nl.freebsd.org/pub/pub/ibiblio/distributions/puppylinux/pet_packages-slacko/samba_full-3.6.3-s.pet






Creación de usuarios para ingresar al servidor Puppy desde otras máquinas.


Una vez instalado y configurado Samba (posee interfaz gráfica y es muy intuitivo, siendo poco y opcional lo que hay que configurar), iremos a la consola o terminal del Sistema, y crearemos los usuarios.

Nota importante: para crear un usuario Samba, primero hay que crear dicho usuario en el Sistema.
Es decir, que el usuario que queramos crear con Samba, previamente debe existir en Puppy.
Samba y Puppy son dos cosas bien diferentes, pero necesitan de los mismos usuarios para comunicarse entre sí, y con otros ordenadores.

De modo que, primero que nada, procederemos a crear un usuario en Puppy, y luego lo volveremos a crear para Samba.

En la terminal introduciremos el siguiente comando para crear al usuario pepe

adduser pepe

el Sistema contestará:

adduser: /home/pepe: No such file or directory

Esto significa que aún no ha sido creado el directorio para el usuario pepe dentro de /home. Es algo normal en Puppy, por su constitución interna. Este sistema no es multiusuario, pero aún así, no estaremos impedidos de crear usuarios para Samba, tal como estamos viendo.

El Sistema, también nos dirá:

Changing password for pepe
New password:

Esto indica que nos está pidiendo que creemos una contraseña para pepe, la cual introduciremos, y al pulsar Enter, nos la volverá a pedir:

Retype password:

Al finalizar, nos dará el mensaje

Password for pepe changed by root

lo cual indicará que todo ha salido bien, y el usuario pepe ya es un usuario de Puppy. Ahora, solo resta añadirlo a la lista Samba, para poder entrar al servidor desde otras máquinas (no importa si son sistemas GNU-Linux, Apple o Windows) con el usuario pepe.

Nuevamente en la terminal, introduciremos otro comando similar:

smbpasswd -a pepe

Ahora, quien nos contestará, será Samba:

New SMB password:

Introduciremos entonces la misma contraseña que ya le asignamos a pepe para Puppy. Samba pedirá una vez más la contraseña de pepe:

Retype new SMB password:

introduciremos nuevamente la misma contraseña que antes, y finalmente el reporte de Samba será la siguiente línea:

Added user pepe

mostrando así que pepe está habilitado como usuario Samba, además de ser un usuario Puppy.





Configuración del teclado en Español.

Si bien el artículo está encarado pensando en una máquina remota, independiente, siempre en línea y aislada de los usuarios, la tarea de configuración del teclado en Español no deja de tener sus pequeñas (que pueden convertirse en grandes) complicaciones.

Para evitar esto a quien tenga este problema, indicaremos los pasos a seguir para que Puppy Linux reconozca a la perfección, tanto los caracteres más usuales de este idioma, como las teclas exactas que los reproducen.

1.  Abriremos el asistente general de configuraciones desde Menu / Setup / Puppy Setup.
Allí, seleccionaremos "Language / Country", y
como primera opción, "es_UY Spanish, Uruguay",
como segunda opción "America/Montevideo",
y como tercera opción "es (Spain)".
Pulsamos el botón "Ok".

2. En el mismo asistente, elegiremos ahora la opción "Mouse / Keyboard", y luego "Advanced configuration". El sistema nos mostrará cierta información que siempre es bueno leer, y después presionaremos "Ok".
Dentro de la opción "Keyboard model", seleccionaremos "pc102 Generic 102-key (Intl) PC".
Dentro de la opción "Layouts", a la pregunta que nos hará el sistema acerca de si queremos reemplazar el mapa existente o añadir más mapas, pulsaremos "Change", puesto que no queremos añadir más mapas de teclado, sino eliminar todos lo que haya y dejar uno solo, que será el único útil para nosotros.
Entonces, buscaremos "latam Latin American", lo marcaremos y pulsaremos "Ok".

3. Entraremos también en la sección "Layout Variants", y dentro de ella, seleccionaremos "2: sun dead keys latam: Sun dead keys" y presionaremos "OK".

4. Presionaremos el botón "Exit" en la ventana más pequeña, el botón "Quit" en la siguiente, y procederemos a reiniciar el servidor X (el motor gráfico), siempre y cuando no haya aplicaciones corriendo en segundo plano, como descargas en curso o programas procesando datos. Haremos el reinicio del servidor X desde "Menu / Leave / Restart graphical server".


Creación de accesos directos a las aplicaciones que están instaladas.

Puppy Linux no es un sistema que permita arrastrar iconos de aplicaciones desde su menú hacia el Escritorio (o hacia cualquier otra ubicación). Sí está permitido crear accesos directos de aplicaciones que estén en otra ubicación, ademas de poder estar también en el menú.

Todas las aplicaciones que aparecen en el menú, también están en el directorio /usr/share/applications

Únicamente hay que acceder a ese lugar, y proceder a arrastrar los archivos ejecutables hacia algún lugar, con lo cual, automáticamente Puppy creará los accesos directos.


Configuración del tiempo de reinicio del equipo tras ocurrir un "auto fsck".

Cada vez que el Sistema es apagado de forma incorrecta (o bien, habiendo transcurrido un cierto número de veces de sucesivos apagados incorrectos), se produce un evento que dispara una rutina: el conocido file system check, o "fsck", y tras el siguiente encendido, Puppy Linux buscará errores en el sistema de archivos, y los corregirá. El siguiente paso será una espera de 4 minutos para un "auto reinicio", y este tiempo de espera puede ser perjudicial en el caso de los servidores estudiantiles creados con Puppy Linux, puesto que los estudiantes (y los profesores), en teoría, no tendrían por qué saber cómo funciona dicho servidor. Con que sepan que hay uno funcionando correctamente y que casi no se necesita intervención humana alguna para su mantenimiento, creo que es suficiente.
Pues bien, he decidido cambiar los 4 minutos por 10 segundos, para que las consecuencias del "fsck" no lleguen al usuario.
Para ello, hay que modificar un par de líneas de código en el archivo "init" que hallaremos en el directorio "/sbin".

La primera de las dos líneas a modificar, es la que establece el tiempo de espera tras un fsck automático:

read -t 240 abcdef

Lo que haremos, será alterarla para que quede así:

read -t 10 abcdef

Ahora, buscaremos la línea complementaria, que es la que simplemente le informa al usuario de la espera que deberá respetar una vez finalizada esta tarea de bùsqueda de errores en el sistema de archivos:

echo 'Computer will reboot in 4 minutes, else press ENTER for immediate reboot.

La cambiaremos, para que los cambios realizados coincidan con este aviso:

echo 'Computer will reboot in 10 seconds, else press ENTER for immediate reboot.'

También podemos traducirla al Español, y tomarnos un tiempito, ya, de paso, para traducir el resto del texto que está en inglés en dicho archivo:

echo 'El ordenador se va a reiniciar en 10 segundos. Puedes presionar la tecla ENTER, para un reinicio inmediato.'

Consejo: no utilices comillas al alterar cadenas de texto dentro de este archivo. Las mismas pueden ser malinterpretadas y provocar errores en el arranque del Sistema.

Se agradece la colaboración del usuario "MochiMoppel", del foro de Puppy Linux en Inglés, por su valiosa contribución en un breve pero acertado intercambio que tuvimos, el cual se puede visualizar aquí:

http://www.murga-linux.com/puppy/viewtopic.php?p=896938#896938




Fuentes consultadas:

http://puppylinux.org/wikka/autologin

https://en.wikipedia.org/wiki/Puppy_Linux

http://www.murga-linux.com/puppy/viewtopic.php?p=896938#896938




Este artículo no hubiera sido escrito con tanto detalle, ni hubiera sido probado y validado tan a fondo, ni pulido de forma tan rigurosa, si no hubiera pasado por una instancia seria de evaluación.

Los estudiantes del grupo BHSoftware
- María Pía Barrero
- Emmanuel Quintana
- Guillermo Rodríguez
- Joaquín Russi
han decidido utilizar a Puppy para su proyecto de egreso de 3er año de EMT de Informática, en la creación de un servidor Puppy Linux, utilizando una máquina de la institución de enseñanza pública UTU Solymar Norte para su construcción, y demostrando, como grupo, el manejo consciente de las herramientas y procedimientos que han sido descritos aquí, así como la seriedad, capacidad y virtudes individuales en la concreción del objetivo.


Dicho proyecto, será evaluado por el profesor de la asignatura de Taller. 

El trabajo genuino de los estudiantes, junto con la utilización de software libre para la generación de herramientas robustas y el hábito informático saludable, es el camino para el porvenir tecnológico.

¡Felicitaciones, muchachos!



NOTA FINAL: No se garantiza que estos procedimientos puedan funcionar a la perfección para LegacyOS, Quirky, XOPup, o para las decenas de Puppy modificados que puedes consultar haciendo clic aquí.



No hay comentarios.:

Publicar un comentario