Órgano del Poder Popular
Dirección Municipal de Salud
Municipio Holguín
Clientes Ligeros
con Debian GNU/Linux
Autor:
Ozkar L. Garcell
Holguín, Marzo 2012
Información de Contacto.Nombre: Ozkar L. Garcell
Correo-E: [email protected]
Teléfono: (024) 46 6300
Tabla de ContenidoInformación de Contacto............................................................................................................................2Introducción...............................................................................................................................................4Introducción a los Clientes Ligeros............................................................................................................5Clientes Ligeros en GNU/Linux................................................................................................................61 Terminal Ligera.......................................................................................................................................7
1.2 DHCP...............................................................................................................................................71.3 TFTP................................................................................................................................................71.4 NFS..................................................................................................................................................71.5 LTSP................................................................................................................................................8
2 LTSP........................................................................................................................................................82.1 Instalación de paquetes.........................................................................................................................9
2.1.1 Creación de la imagen..............................................................................................................92.1.2 Host e IPs................................................................................................................................102.1.3 DHCP.....................................................................................................................................102.1.4 TFTP.......................................................................................................................................122.1.5 INETD....................................................................................................................................132.1.6 NFS.........................................................................................................................................132.1.7 Clientes...................................................................................................................................142.1.8 Impresoras..............................................................................................................................152.1.9 Finalizando.............................................................................................................................162.1.10 Usuarios y permisos..............................................................................................................16
3 Conclusiones.........................................................................................................................................17
CLIENTES LIGEROS CON DEBIAN GNU/LINUX
IntroducciónEsta manual nace con el creciente uso de los clientes ligeros en nuestra
entidad y a falta de un manual COMPLETAMENTE funcional. Subrayo
completamente, todas las configuraciones y programas aquí descritos están
100% correctos, por lo que si le da error algún paso, vuelva a intentarlo.
La ventaja que tendríamos de tener un servidor de clientes ligeros
funcional, que que podríamos poner a trabajar algún cacharrito que nos de
algún problema y así quitarnos de encima a algún molesto usuario, que por
cierto, nos sobran.
Por qué escoger Debian y no Ubuntu ? Bien, primero, porque Ubuntu me cae
“gordo” y porque Ubuntu usa NBD(Network Block Device) sobre NFS(Network
File System). NBD está probado que tiene peor rendimiento y causa pérdida
de datos, además de tener un mayor consumo de red y de recursos del
servidor. NFS nos provee una comunicación asíncrona y mayor estabilidad y
ahorro de recursos. Hago énfasis en el ahorro de recursos: los supuestos
servidores con los que contamos para los clientes ligeros no son los
mejores(Celeron Duo, 1Gb RAM), ya verán cuando pongan a funcionar 10 o más
clientes y todos con OpenOffice/LibreOffice y/o Firefox. Ubuntu además, en
su configuración por defecto del servidor LTSP, no encripta los homes de
los usuarios, la única ventaja que le ví es que ya te gestiona los permisos
para dispositivos extraíbles. Con Debian pasaremos un poquito más de
trabajo, pero lograremos un servidor mucho más estable y duradero, que es
el objetivo.
No traduciré los nombres de los programas ni comandos que vengan
originalmente en inglés u otro idioma, personalmente veo eso como una falta
de respeto.
Ozkar L. Garcell Página 4
CLIENTES LIGEROS CON DEBIAN GNU/LINUX
Introducción a los Clientes LigerosBueno, un cliente ligero, según la fiable Wikipedia: Un cliente liviano o
cliente ligero es una computadora cliente en una arquitectura de red
cliente-servidor que depende primariamente del servidor central para las
tareas de procesamiento, y principalmente se enfoca en transportar la
entrada y la salida entre el usuario y el servidor remoto. Eso dice
Wikipedia, por ahora hagámosle caso. En general, un cliente ligero es una
PC con teclado, mouse, display y sin disco duro, con una board que permite
el arranque en red. PCs que son de bajos recursos, CPU , 512 RAM, chipset
VIA. Bajo costo de producción y adquisición. Ventajas ? Desde nuestro punto
de vista de admin de redes, pues muchas !!!
➢ Se administran completamente desde el servidor: Ya no tendríamos que
caminar de un lado al otro, desde nuestra propia estación de trabajo
controlamos el Universo.
➢ El hardware falla menos: Al carecer de discos duros, 0 pérdidas de
datos, 0 cuelgues.
➢ Información centralizada: Si tenemos toda la info en nuestro servidor,
pues 0 registro de usuarios, 0 registro de soportes extraíbles, 0
películas, 0 música y 0 juegos en las PCs.
➢ Menos consumo de energía: Esto es importante, así los administradores
pelearan menos por el sobreconsumo.
➢ Y las que se les ocurra...
Ozkar L. Garcell Página 5
CLIENTES LIGEROS CON DEBIAN GNU/LINUX
Clientes Ligeros en GNU/LinuxExisten numerosas soluciones para clientes ligeros sobre GNU/Linux, unas
libres otra no. Aquí un pequeño resumen como parte de la cultura general
integral(por aquello de que la cultura no tiene momento fijo):
➢ LTSP
LTSP es el acrónimo de Linux Terminal Server Project. Fundado el 1999
por J. McQuillian, es el más popular ya que es un proyecto libre y
comunitario. Surgió dada la necesidad de convertir PCs con bajos
recursos en terminales de un ordenador central, donde se ejecutarían
todas las acciones.
➢ PXES
PXES o Universal Thin Linux Client, es un proyecto mucho mas joven que
LTSP e incorporta algunas características nuevas. PXES es en sí una
minidistro, la cual se carga en la RAM del cliente, esto se traduce en
sobrecarga de red y recursos, lo mismo que hace BXP de Windows.
➢ 2X ThinClientServer
Esta es una de las soluciones, digamos, más Enterprises, se basa en
una interfaz web que permite desglosar nuestra entidad en
departamentos, usuarios, permisos, etc. Incluye soporte para
impresoras y redirección de sonido, así como de vigilancia de
clientes. Desventaja: para acceder a las mejores características, hay
que pagarlo.
➢ DietPC
DietPC o Diskless Embedded Technology Personal Computer comparte las
características de PXES: carga la imagen en RAM. Además no posee
facilidad de configuración.
Ozkar L. Garcell Página 6
CLIENTES LIGEROS CON DEBIAN GNU/LINUX
➢ NetStation
Distro de GNU/Linux que permite convertir PCs en clientes ligeros, ya
sea su arranque por red, disquete, CD o USB.
Existen muchas otros soluciones, OSPlugger basada en Nova GNU/Linux y
OpenThinClient, este último está desarrollado sobre Java.
1 Terminal LigeraComo funciona un cliente ligero? Creo que este preámbulo es necesario, sino
tomaríamos como brujería cuando los clientes comiences a funcionar.
Explicaré el funcionamiento de LTSP específicamente, pero primero, una
serie de conceptos.
1.2 DHCP
DHCP o Dynamic Host Configuration Protocol es un protocolo de red en el
cual el servidor provee los parámetros de configuración necesarios a las
máquinas conectadas en red que así lo soliciten. Mediante DHCP se asignaran
de forma automática y completamente transparente el IP, DNS, máscara de
red, puerta de enlace, etc.
1.3 TFTP
TFTP o Trivial File Transfer Protocol es un protocolo de transferencia
simple con funcionalidades parecidas al FTP que todos conocemos. TFTP puede
ser utilizado para la transferencia de pequeños archivos entre ordenadores
en una red. Como TFTP utiliza UDP en vez de TCP/IP no hay una definición
formal de cliente-servidor ni de sesión(al contrario de FTP). Tan solo
existe una petición y una respuesta; sencillo y rápido.
1.4 NFS
NFS o Network File System es un protocolo de red de nivel de aplicación. Es
Ozkar L. Garcell Página 7
CLIENTES LIGEROS CON DEBIAN GNU/LINUX
utilizado para sistemas de archivos distribuidos en un entorno de red de
computadoras de área local o LAN. NFS posibilita que distintas PCs accedan
a sus datos remotos como si se tratara de locales(dígase unidad de red).
1.5 LTSP
Este es el pollo del arroz con pollo. A continuación paso a paso de como
funciona LTSP:
1. El cliente arranca y mediante Etherboot(inicio de red en booteo)
realiza una petición DHCP a la red. El servidor responde, asignándole
una dirección IP y la localización del kernel(núcleo) a descargar.
2. Mediante TFTP el cliente contacta con el servidor y localiza el
kernel, que es cargado en RAM y es el que toma el control a partir de
ahora.
3. El kernel inicializa el sistema y los periféricos(display, teclado,
mouse, usbs, impresoras, etc).
4. El kernel carga una pequeña imagen en RAM y la monta temporalmente
como sistema de archivos raíz.
5. Se lee el fichero lts.conf donde se encuentran los parámetros de los
clientes ligeros(sonido, video, impresoras, etc).
6. Se inician las X y ya está.
Este es el proceso de arranque a grandes rasgos, el cual, debe suceder en
menos de dos minutos sin contratiempos en la red o en el servidor.
2 LTSPAcá explicaré el proceso de instalación y configuración de un servidor
LTSP. Para este ejemplo se utilizó Debian GNU/Linux Lenny(versión 5). esta
versión nos provee del kernel 2.6. mucho más liviano que los
Ozkar L. Garcell Página 8
CLIENTES LIGEROS CON DEBIAN GNU/LINUX
posteriores(las versiones 2.6.37.x en adelante y la 3.x.x en los chipset
intel/ati nos da el conocido bug de lacking de RAM/SWAP, con el posterior
cuelgue).
Para otras versiones solamente varía en algunas configuraciones, las cuales
son triviales.
Procedemos a instalar todos los paquetes necesarios:
[root@durotar ~]# aptitude install nfs-common dhcp3-server nfs-kernel-server tftpd-hpa
ltsp-server-standalone
2.1 Instalación de paquetes
2.1.1 Creación de la imagen
Luego que tengamos todos los paquetes instalados en nuestro servidor,
procederemos a la creación de la estructura de la imagen:
[root@durotar ~]# ltsp-build-client --accept-unsigned-packages --security-mirror none
--arch i386 --dist lenny --mirror ftp://ftp.sld.cu/debian/lenny main contrib non-free
➢ ltsp-build-client: mediante esta instrucción, mandamos a crear la
estructura de ficheros de la imagen. Dicha estructura de ficheros se
creará por defectos en /opt/ltsp/$arch donde $arch será la
arquitectura escogida.
➢ accept-unsigned-packages: para que nos acepte paquetes si firmar,
muy populares en nuestros repositorios.
➢ security-mirror: en este caso, no uso un mirror de seguridad, no lo
creo necesario, pero es mi consideración personal.
➢ arch: arquitectura de los clientes.
➢ dist: rama a utilizar, libre elección.(Con LTSP pueden tener más de 1
Ozkar L. Garcell Página 9
CLIENTES LIGEROS CON DEBIAN GNU/LINUX
arquitectura y más de una distro de forma transparente, pero eso ya
sería otra historia.)
➢ mirror: repositorio a utilizar, libre elección también.
Válido aclarar que para hacer menos engorroso el comando, pueden configurar
sus parámetros desde /var/lib/ltsp/.
2.1.2 Host e IPs
Con nuestro editor de texto favorito(vi, vim, nano, pico, gedit, leafpad),
abrimos el fichero /etc/hosts y pondremos dentro de siguiente(este paso es
facilmente obviable que caso de que no tengamos un dominio/grupo de
trabajo):
ejemplo:
192.168.1.2 servidor.midominio.sld.cu
Y dentro de /etc/hosts.allow pondremos lo siguiente:
bootp: 0.0.0.0
in.tftpd: 192.168.1.
portmap: 192.168.1.
2.1.3 DHCP
Nuevamente con nuestro editor de texto editamos el fichero
/etc/dhcp3/dhcdp.conf y dentro pondremos lo siguiente:
authoritative;
Ozkar L. Garcell Página 10
CLIENTES LIGEROS CON DEBIAN GNU/LINUX
allow bootp;
allow booting;
ddns-update-style ad-hoc;
option domain-name "midominio.sld.cu";
option domain-name-servers 192.168.1.1;
option broadcast-address 192.168.1.255;
option routers 192.168.1.1;
option subnet-mask 255.255.255.0;
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.10 192.168.1.50;
get-lease-hostnames true;
use-host-decl-names on;
option root-path "/opt/ltsp/i386";
if substring( option vendor-class-identifier, 0, 9 ) = "PXEClient" {
filename "/ltsp/i386/pxelinux.0";
} else {
filename "/ltsp/i386/nbi.img";
}
}
Explicación de la configuración:
➢ authoritative: poner este parámetro al comienzo del fichero le indica
Ozkar L. Garcell Página 11
CLIENTES LIGEROS CON DEBIAN GNU/LINUX
al servidor DHCP que asignará la configuración que posee el servidor y
tomará las demás configuraciones como erróneas.
➢ allow bootp y allow booting: estas opciones permiten el arranque por
red. Hasta donde sé no so muy necesarias, pero las dejo por si acaso.
➢ ddns-update-style: define el método de actualización automática de la
DNS.
➢ domain-name: define el nombre del dominio al cual pertenecerán los
clientes.
➢ domain-name-servers: define la lista de DNS.
➢ get-lease-hostnames: Define si se busca el nombre del nodo al host y
lo usa en la opción hostname.
➢ use-host-decl-names: Usa el alias de la declaración del host como
nombre de la máquina.
Los otros se entienden por sí solos.
2.1.4 TFTP
Para configurar el tftp, primeramente creamos un directorio, llamado
tftpboot en la raíz de nuestro sistema.
[root@durotar ~]# mkdir /tftpboot
Luego copiamos el contenido de /var/lib/tftpboot para /tftpboot
Ozkar L. Garcell Página 12
CLIENTES LIGEROS CON DEBIAN GNU/LINUX
[root@durotar ~]# cp -Rv /var/lib/tftpboot /tftpboot
Editamos el fichero /etc/default/tftp-hpa de forma tal que nos quede como
sigue:
RUN_DAEMON="yes"
OPTIONS="-l -s /tftpboot"
Con estas opciones le decimos a el TFTP que se ejecute en modo daemon, o
sea, como servicio del sistema, y que cargue los ficheros de /tftpboot de
forma segura(-s = --secure).
2.1.5 INETD
Editamos el fichero /etc/inetd.conf y al final del fichero le agregamos la
siguiente línea. En caso de que exista la modificamos para que quede de la
siguiente forma:
tftp dgram udp wait root /usr/sbin/in.tftpd /usr/sbin/tftpd -s /tftpboot
2.1.6 NFS
Ahora configuraremos los directorios a usarse por el NFS. Creamos un
directorio y le llamaremos /opt/swapfile, para ser usado como swap o área
de intercambio de procesamiento de los clientes.
[root@durotar ~]# mkdir /opt/swapfile
Editamos el fichero /etc/exports de forma tal que nos quede de la siguiente
forma:
Ozkar L. Garcell Página 13
CLIENTES LIGEROS CON DEBIAN GNU/LINUX
/opt/ltsp/i386 192.168.1.0/255.255.255.0(ro,no_root_squash,no_subtree_check,sync)
/opt/swapfile 192.168.1.0/255.255.255.0(rw,no_root_squash,no_subtree_check,sync)
2.1.7 Clientes
La configuración de los clientes se lleva de forma general y específica en
el fichero /opt/ltsp/i386/etc/lts.conf. Esta es un ejemplo de una
configuración general, o sea, genérica para todos los clientes. Para
especificar una configuración de un solo cliente se debe hacer por
direcciones MAC.
Ejemplo:
[default]
SERVER=192.168.1.2
X_SERVER=auto
X_MOUSE_PROTOCOL="PS/2"
X_COLOR_DEPTH=16
X_MODE_0=1024x768
X_RAMPERC=98
SWAPFILE_SIZE=64m
NFS_SWAPDIR=/opt/swapfile
USE_NFS_SWAP=True
LDM_DIRECTX=True
LDM_LANGUAGE="es_ES.UTF-8"
Ozkar L. Garcell Página 14
CLIENTES LIGEROS CON DEBIAN GNU/LINUX
LOCALDEV=True
ALLOW_UNKNOWN_USB=True
HOTPLUG=True
SOUND=True
PCM_VOLUME=50
LOCAL_APPS=True
LOCAL_STORAGE=True
[00:19:D1:DE:63:E6]
SOUND=False
LOCAL_APPS=False
LOCAL_STORAGE=False
2.1.8 Impresoras
Las impresoras se configuran por la dirección MAC del cliente al que estén
conectados.
Ejemplo de impresora LPT1:
[00:19:D1:DE:63:E6]
PRINTER_0_DEVICE=/dev/lp0
PRINTER_0_TYPE=P
PRINTER_0_PORT=9100
Ejemplo de impresora USB:
Ozkar L. Garcell Página 15
CLIENTES LIGEROS CON DEBIAN GNU/LINUX
[00:19:D1:DE:63:E6]
PRINTER_0_DEVICE=/dev/usblp0
PRINTER_0_TYPE=U
PRINTER_0_PORT=9100
2.1.9 Finalizando
Después de finalizadas todas las configuraciones, pues solamente nos queda
crear nuestra imagen.
[root@durotar ~]# ltsp-update-image
Y luego actualizar el kernels para el chroot.
[root@durotar ~]# ltsp-update-kernels
2.1.10 Usuarios y permisos.
Para crear los usuarios, pues sencillamente creamos usuarios locales en el
servidor, con el comando adduser.
[root@durotar ~]# adduser ozkar
Es recomendable crear grupos y luego los usuarios, para tener un mejor
control de nuestros clientes. Un problemilla que tiene Debian es que no te
gestiona los dispositivos extraíbles. Pues sencillamente agregamos los
usuarios al grupo fuse,
[root@durotar ~]# gpasswd -a ozkar fuse
y asunto resuelto. Válido aclarar que los clientes utilizarán el mismo
Ozkar L. Garcell Página 16
CLIENTES LIGEROS CON DEBIAN GNU/LINUX
software instalado en el servidor. O sea, que al instalar un paquete estará
disponible, tanto desde el servidor como de los clientes.
3 ConclusionesUn servidor de clientes ligeros con Debian, brinda la flexibilidad y
estabilidad que no hallaremos con otra distro. Personalmente soy semi-fan a
Debian, me inclino más por Gentoo, OpenSuSe y Arch. Estoy abierto a
cualquier duda o sugerencia.
Ozkar L. Garcell Página 17