Está en la página 1de 481

Guía del Servidor

Editado por

Conectiva S.A.
Guía del Servidor
Editado por Conectiva S.A.

2.0 Edición
Publicado en noviembre de 2000
Copyright © 2000 por Conectiva S.A. (http://es.conectiva.com)

Por Equipo Conectiva

Equipo Conectiva

Coordinación del equipo de portugués: Márcia Gawlak

Autores: Roberto Teixeira y Carlos Daniel Mercer.

Coordinación del equipo de traducción Ivone Böhler

Traducción Andrea Mara Pimenta Alonso e Irene Haydeé Costas Stridsberg

Revisión Roberto M. Lamela Roca, Jorge Carrasquilla Soares

Imágenes: Artur T. Hara

Cyro Mendes de Moraes Neto


Maurício Marconssin dos Santos

Desarrollo/Diagramación: Jorge Luiz Godoy Filho

Cyro Mendes de Moraes Neto

José Eloi de Carvalho Júnior

Copyright 2000 - Conectiva S.A.

Linux es una marca registrada y concedida por Linus Torvalds, su creador y cedente.

Windows, Windows NT e Internet Explorer son marcas registradas de Microsoft Corporation.

Netware es una marca registrada de Novell, Inc.

Macintosh y Appletalk son marcas registradas de Apple Computers.

Netscape Communicator es una marca registrada de Netscape Communications Corporation.

Todas las demás marcas registradas son de uso y derecho de sus respectivos propietarios. Las marcas
registradas son de propiedad de sus autores.

La presente publicación fue producida con todo cuidado y esmero posibles. El editor, no obstante, no asume la
responsabilidad sobre eventuales errores de interpretación, omisiones o daños resultantes del uso de la
información descrita aquí, por terceros, de buena o mala fe.
A los autores les gustaría que se les avisara sobre la introducción de modificaciones, traducciones y versiones
impresas.

Agradecemos a todos los que han participado activamente en el desarrollo de los trabajos de traducción,
internacionalización, divulgación y adaptación de Linux a la realidad latinoamericana, ya que gran parte de
nuestro esfuerzo y trabajo se basa en la participación de dicha comunidad.

Esperamos que esta guía sea útil para todos los que busquen una herramienta de ayuda para sus actividades
diarias, y que pueda enriquecer sus conocimientos y facilitar su trabajo.

Datos Internacionales de Catalogación en la Publicación (CIP)

(Câmara Brasileira do Livro, SP, Brasil)

ISBN 85-87118-32-3

1. Linux (Sistema operativo de computador)

2. Equipo Conectiva.

Conectiva S.A.

Rua Tocantins, 89 - Cristo Rei - Curitiba - Paraná - Brasil

CEP 80.050.430

http://www.es.conectiva.com
Tabla de contenidos
Prefacio .......................................................................................................................... 29

Convenciones Tipográficas.................................................................................... 32

1. Linuxconf ................................................................................................................... 35

Visión general........................................................................................................ 35
Interfaces de Linuxconf......................................................................................... 36
Uso de Linuxconf .................................................................................................. 38
Habilitación del acceso a Linuxconf vía red................................................ 43
Ayuda de Linuxconf .............................................................................................. 48
Activación de las configuraciones ......................................................................... 48
Activar o desactivar módulos ................................................................................ 50
Permiso y propiedad de archivos........................................................................... 51
Archivos de configuración..................................................................................... 57
Comandos y programas residentes ........................................................................ 60
Controla servicios activos...................................................................................... 63
Más funcionalidades de Linuxconf ....................................................................... 65
Logs de Linuxconf ................................................................................................ 67

7
2. LVM............................................................................................................................ 69

El concepto de LVM.............................................................................................. 70
Terminología ......................................................................................................... 71
El medio físico............................................................................................. 71
Volumen Físico (PV) ................................................................................... 72
Extensiones Físicas (PE).............................................................................. 72
Grupo de Volúmenes (VG) .......................................................................... 72
Volumen Lógico (LV) .................................................................................. 73
Sistema de Archivos .................................................................................... 73
Creando un Volumen Lógico ....................................................................... 76
Cambiando el tamaño a un Volumen Lógico ........................................................ 87
Aumentando un Volumen Lógico ................................................................ 87
Aumentando un sistema de archivos ........................................................... 88
Disminuyendo un sistema de archivos......................................................... 90
Disminuyendo un Volumen Lógico ............................................................. 91
Redundancia y rendimiento................................................................................... 93
Ventajas de una stripe .................................................................................. 94
Desventajas .................................................................................................. 95

8
Striping nativo del LVM .............................................................................. 95

3. RAID .......................................................................................................................... 99

RAID vía hardware y vía software........................................................................ 99


RAID vía hardware.................................................................................... 100
DPT .................................................................................................. 101
Controladoras soportadas ....................................................... 101
Controladoras DPT ....................................................... 102
Controladoras ICP Vortex ............................................. 102
Tipos de hardware................................................................... 102
Tipo controladora.......................................................... 103
Tipo encapsulado .......................................................... 103
RAID vía software ..................................................................................... 103
El controlador de múltiples dispositivos (MD) ................................ 104
Niveles de RAID ................................................................................................. 106
RAID-lineal ............................................................................................... 107
RAID-0 ...................................................................................................... 108
RAID-1 ...................................................................................................... 110
RAID-2 y RAID-3 ..................................................................................... 112

9
RAID-4 ...................................................................................................... 114
RAID-5 ...................................................................................................... 115
Tipos híbridos ............................................................................................ 117
Rendimiento de RAID......................................................................................... 119
Rendimiento en el MD RAID-0 y en el MD RAID-lineal ........................ 119
Rendimiento de lectura en el MD RAID-1................................................ 120
Rendimiento de escritura en el MD RAID-1............................................. 120
Rendimiento de lectura en el MD RAID-4/5............................................. 121
Rendimiento de escritura en el MD RAID-4/5.......................................... 121
Comparación de los niveles de RAID........................................................ 122
Configuración de RAID ...................................................................................... 124
Modo lineal................................................................................................ 125
RAID-0 ...................................................................................................... 128
RAID-1 ...................................................................................................... 130
RAID-4 ...................................................................................................... 132
RAID-5 ...................................................................................................... 136
Uso de RAID para obtener alta disponibilidad ................................................... 138

4. LDAP........................................................................................................................ 143

10
Introducción y conceptos .................................................................................... 143
Servicio de directorio................................................................................. 144
Tipo de información................................................................................... 147
Organizando la información ...................................................................... 147
Clases de objetos........................................................................................ 149
Registrando la información........................................................................ 149
Accediendo a la información ..................................................................... 150
Protección contra accesos no autorizados.................................................. 151
Funcionamiento de LDAP ......................................................................... 151
Concepto y utilización del slapd ............................................................... 152
LDAP y el X.500 ....................................................................................... 154
Duplicación................................................................................................ 155
Instalando y configurando LDAP........................................................................ 156
Instalando los paquetes .............................................................................. 156
Creando el Directorio ................................................................................ 158
Ejecutando el script migrate_all_offline.sh ............................................... 159
Editando el archivo /etc/openldap/ldap.conf............................................. 160
Iniciando el servidor LDAP ....................................................................... 160

11
Utilizando LDAP................................................................................................. 161
Haciendo búsquedas en la línea de comando ............................................ 162
Configurando Netscape Communicator..................................................... 166
Accediendo al servidor LDAP vía URLs .................................................. 168
Autenticación y NSS con LDAP ......................................................................... 169
Autenticación en el LDAP y el NSS.......................................................... 170
Configurando PAM para utilizar el LDAP................................................. 171
Probando la autenticación y el NSS........................................................... 173
Agregando y eliminando usuarios vía LDAP ............................................ 173
Agregando el log del LDAP ...................................................................... 174
Herramientas gráficas para LDAP....................................................................... 174
El cliente de LDAP GQ ............................................................................. 175
Acceso móvil....................................................................................................... 177
Implementando el acceso móvil ................................................................ 178
Alterando el archivo de atributos ..................................................... 178
Alterando el archivo objectclass...................................................... 179
Personalizando el slapd.conf............................................................ 180
Alterando el archivo LDIF ............................................................... 181

12
Reiniciando el servidor LDAP ......................................................... 182
Configurando Netscape .................................................................... 183

5. DNS........................................................................................................................... 187

Introducción y Conceptos.................................................................................... 187


Funcionamiento de DNS ..................................................................................... 188
Espacio de nombres de dominio ................................................................ 188
Nombres de dominio.................................................................................. 189
Dominios.................................................................................................... 189
El espacio de nombres de dominios de Internet ........................................ 191
Dominios de primer nivel .......................................................................... 191
Delegación ................................................................................................. 193
Servidores de Nombres.............................................................................. 193
Máquina de resolución de nombres ................................................. 195
Resolución de nombres .................................................................... 196
Cache................................................................................................ 196
Instalación y configuración de DNS .......................................................... 197
Instalación de los Paquetes............................................................... 197
Configuración del Servidor DNS ..................................................... 197

13
Configuración de Mapas de IPs Inversos................................ 203
Configuración de un Servidor Secundario.............................. 205
Forward Zones........................................................................ 207
Repetidores ............................................................................. 209
Funcionalidades...................................................................... 211
Asignación de bandas de IP.................................................... 212
Iniciando el servicio ......................................................................... 214
Archivos de Configuración de BIND .................................................................. 216
El archivo /etc/named.conf ......................................................................... 217
El archivo /var/named/nombre-de-dominio ................................................... 218
El archivo /var/named/named.local ............................................................. 220
El archivo /var/named/named.ca .................................................................. 220
Configuración de los Clientes ............................................................................. 222
Configuración a través de Linuxconf......................................................... 223
El archivo /etc/resolv.conf ....................................................................... 225
Consideraciones finales ....................................................................................... 226

6. Servidor Internet..................................................................................................... 227

Servidor Web ....................................................................................................... 227

14
Introducción y Conceptos .......................................................................... 227
El Hipertexto .................................................................................... 227
El Protocolo HTTP........................................................................... 228
Apache ............................................................................................. 230
Instalación de Apache ...................................................................... 231
Configuración de Apache................................................................. 231
Servidor FTP ....................................................................................................... 242
WU-FTPD.................................................................................................. 243
Instalación y Configuración ................................................................................ 243
Accesos Anónimos .................................................................................... 249
Permitiendo el envío de archivos ............................................................... 251
Archivos de Mensajes y de Bienvenida ..................................................... 255
Archivo de Bienvenida ..................................................................... 255
El Archivo .mensaje .......................................................................... 256
Servidor Proxy..................................................................................................... 259
Caching...................................................................................................... 259
Squid .......................................................................................................... 260
Instalación y configuración ................................................................................. 261

15
Memoria para Cache.................................................................................. 262
Archivos de Cache..................................................................................... 264
Control de Acceso...................................................................................... 265

7. Correo electrónico................................................................................................... 267

Introducción ........................................................................................................ 267


La teoría............................................................................................................... 267
Cómo funciona el intercambio de mensajes electrónicos.......................... 268
Protocolos involucrados en el intercambio de mensajes............................ 269
SMTP ............................................................................................... 269
POP .................................................................................................. 273
IMAP................................................................................................ 276
La práctica ................................................................................................. 291
Configuración del POP y del IMAP................................................. 292
Configuración del SMTP ................................................................. 292

8. Seguridad en el Servidor ........................................................................................ 297

Visión general sobre seguridad............................................................................ 297


Deshabilitando servicios innecesarios................................................................. 300
Servicios Standalone ................................................................................. 300

16
Servicios ejecutados mediante inetd.......................................................... 302
Utilización de TCP_Wrappers ............................................................................ 307
Firewall mediante el filtro de paquetes................................................................ 316
Configuración del filtro de paquetes por Linuxconf .................................. 319
Verificando la integridad del sistema................................................................... 344
Configuración de AIDE ............................................................................. 347
Utilización de AIDE .................................................................................. 353

9. Alta Disponibilidad ................................................................................................. 357

Introducción ........................................................................................................ 357


Definición .................................................................................................. 357
Disponibilidad básica ....................................................................... 358
Alta disponibilidad ........................................................................... 358
Disponibilidad continua ................................................................... 358
Objetivos .................................................................................................... 359
Cálculo de la Disponibilidad ..................................................................... 360
Conceptos ............................................................................................................ 361
Falla ........................................................................................................... 362
Error........................................................................................................... 362

17
Defecto....................................................................................................... 362
Failover ...................................................................................................... 363
Failback...................................................................................................... 364
Misión ........................................................................................................ 365
La solución Conectiva para Alta disponibilidad ................................................. 366
Administración de nodos ........................................................................... 367
Duplicación de disco.................................................................................. 367
Sistema de archivos ................................................................................... 368
Control de servicios ................................................................................... 368
Configuración de DRBD ..................................................................................... 369
Configuración vía Linuxconf..................................................................... 370
Configuración por el modo texto ............................................................... 371
Sistema de archivos Reiserfs ............................................................................... 374
Configuración de Heartbeat................................................................................. 375
Configuración mediante Linuxconf ........................................................... 376
Configuración por el modo texto ............................................................... 381

10. Redes Mixtas.......................................................................................................... 385

NFS...................................................................................................................... 385

18
Introducción y conceptos........................................................................... 385
Instalación de NFS ........................................................................... 386
Instale el servidor NFS ........................................................... 386
Configuración del Servidor NFS ............................................ 387
Configurando un cliente NFS ................................................. 390
Samba .................................................................................................................. 392
Configuración del Servidor Samba............................................................ 393
Instalación de Samba ....................................................................... 393
Configuración................................................................................... 394
Contraseñas codificadas.......................................................... 394
Contraseñas decodificadas en Windows® 95 ............... 395
Contraseñas decodificadas en Windows® 98 ............... 396
Contraseñas decodificadas en Windows NT® .............. 397
Configuración Básica.............................................................. 398
Compartiendo un directorio.................................................... 399
Montando un volumen Samba................................................ 400
Iniciando Samba ..................................................................... 400
Configuración del cliente........................................................ 401

19
Utilización de SWAT .............................................................. 402
Mars-NWE .......................................................................................................... 403
Introducción y conceptos........................................................................... 404
El protocolo IPX .............................................................................. 404
El objeto Bindery ............................................................................. 405
Scripts de Logon............................................................................... 405
Autenticación de Usuarios ............................................................... 406
Utilidades DOS ................................................................................ 409
Rendimiento ..................................................................................... 410
Problemas conocidos........................................................................ 410
Configuración ............................................................................................ 411
Volúmenes del Servidor ................................................................... 412
Nombre del Servidor Netware® ...................................................... 413
Red Interna ....................................................................................... 413
Tarjetas de Red ................................................................................. 414
Almacenamiento de Rutas ............................................................... 415
Versión de Netware® ....................................................................... 416
Tratamiento de Contraseñas ............................................................. 417

20
Seguridad de Archivos durante el Proceso de Login........................ 418
Usuario Invitado............................................................................... 419
Usuarios con poder de supervisor .................................................... 420
Usuarios de Netware® ..................................................................... 421
Registro automático de usuarios ...................................................... 422
Creación de los directorios esenciales ............................................. 423
Script de Login Estándar .................................................................. 423
Desconexión del Banner de Impresión ............................................ 424
Colas de Impresión........................................................................... 425

A. Appletalk.................................................................................................................. 427

Instalando Netatalk.............................................................................................. 428


Configurando Netatalk ........................................................................................ 428
Exportando directorios............................................................................... 428
Configurando permisos de acceso ............................................................. 430
Usuarios ........................................................................................... 431
Permisos en el directorio de los volúmenes ..................................... 431
En la estación............................................................................................. 432
Iniciando Netatalk...................................................................................... 433

21
B. Licencias generales................................................................................................. 435

Introducción ........................................................................................................ 435


BSD Copyright .................................................................................................... 436
X Copyright......................................................................................................... 437

C. Licencia de Uso y Garantía del Producto ............................................................ 441

General ................................................................................................................ 441


Licencia limitada de productos ........................................................................... 442
Antes de la instalación......................................................................................... 444
Garantía Limitada................................................................................................ 445
Limitación de Reparación y Responsabilidad ..................................................... 446
General ................................................................................................................ 446

D. Licencia Pública General GNU............................................................................. 449

Introducción ........................................................................................................ 449


Términos y condiciones para copia, distribución y modificaciones.................... 451
¿Cómo aplicar estos términos a nuevos programas?........................................... 458

Índice............................................................................................................................ 461

22
Lista de tablas
1. Convenciones .............................................................................................................. 32
3-1. Atributos de comparación de los varios niveles de RAID..................................... 122
10-1. Correspondencia entre Opciones de Linuxconf y de /etc/exports...................... 390

Tabla de figuras
1-1. Interfaz gráfica de Linuxconf .................................................................................. 39
1-2. Ejecutando Linuxconf en un Xterm......................................................................... 41
1-3. Configuración del Acceso a Linuxconf Vía Red ..................................................... 43
1-4. Interfaz Web de Linuxconf....................................................................................... 45
1-5. Estado del sistema ................................................................................................... 48
1-6. Lista de módulos de Linuxconf ............................................................................... 51
1-7. Previsión de modificación de Modo de archivos ..................................................... 53
1-8. Filtrando la lista de archivos.................................................................................... 54
1-9. Permiso de archivos controlados por Linuxconf ..................................................... 54
1-10. Definiciones de permisos de un archivo ................................................................ 56

23
1-11. Lista de los archivos de configuración................................................................... 57
1-12. Lista de comandos y "daemons"............................................................................ 60
1-13. Cambio de configuración de comando .................................................................. 62
1-14. Control de servicios ............................................................................................... 64
1-15. Configuración del servicio finger .......................................................................... 65
2-1. Volumen Físico ........................................................................................................ 74
2-2. Grupo de Volúmenes ............................................................................................... 74
2-3. Grupo de Volúmenes expandido.............................................................................. 75
3-1. RAID-0 .................................................................................................................. 108
3-2. Stripping ................................................................................................................ 109
3-3. RAID-1 .................................................................................................................. 111
3-4. RAID-2 .................................................................................................................. 112
3-5. RAID-3 .................................................................................................................. 114
3-6. RAID-4 .................................................................................................................. 115
3-7. RAID-5 .................................................................................................................. 116
4-1. Datos de directorio distribuidos en tres servidores................................................ 145
4-2. Árbol de Directorio LDAP .................................................................................... 148
4-3. Un servicio de directorio duplicado con datos distribuidos en tres servidores ..... 155

24
4-5. Configuración de Autenticación ............................................................................ 172
4-6. El cliente de LDAP GQ ......................................................................................... 176
5-1. Zona vs. Dominio .................................................................................................. 194
5-2. Pantalla de Configuración del Servidor DNS ........................................................ 198
5-3. Añadiendo un dominio .......................................................................................... 200
5-4. Añadiendo un Mapa de IP Inverso ........................................................................ 204
5-5. Configuración de un Servidor Secundario............................................................. 206
5-6. Configuración de Forwarders ................................................................................ 208
5-7. Configuración de repetidores................................................................................. 210
5-8. Funcionalidades del Servidor ................................................................................ 212
5-9. Atribución de bandas de direcciones IP ................................................................ 213
5-10. Configuración de named A través de ntsysv ....................................................... 215
5-11. Añadiendo un dominio ........................................................................................ 218
5-12. Especificación del servidor de nombres .............................................................. 223
6-1. Página Inicial deApache Conectiva Linux Vista en Netscape®............................ 231
6-2. Pantalla inicial de configuración de Apache.......................................................... 234
6-3. Configuración Básica de Apache........................................................................... 235
6-4. Alias de IP ............................................................................................................. 238

25
6-5. Máquina Virtual de Apache................................................................................... 240
6-6. Pantalla inicial de configuración de WU-FTPD .................................................... 245
6-7. Configuración Básica del Servidor FTP ................................................................ 245
6-8. Configuración de Control de Accesos ................................................................... 247
6-9. Directorio con .mensaje Visto en Netscape............................................................ 257
8-1. Configuración de iniciación de servicios............................................................... 301
8-2. Configuración de /etc/services ............................................................................. 303
8-3. Deshabilitando un Servicio.................................................................................... 304
8-4. Servidor FTP sin tcp_wrappers ............................................................................. 308
8-5. Servidor FTP Utilizando tcp_wrappers ................................................................. 309
8-6. Configuración de reglas de entrada ....................................................................... 320
8-7. Configuración de guías .......................................................................................... 322
8-8. Configuración de la Guía Opciones....................................................................... 325
8-9. Ejemplo de uso de Forward firewalling................................................................. 328
8-10. Forward firewalling - Desde ................................................................................ 331
8-11. Forward firewalling - Hacia................................................................................. 331
8-12. Forward firewalling - Opciones ........................................................................... 333
8-13. Añadiendo una regla de origen del paquete......................................................... 335

26
8-14. Añadiendo una regla de destino del paquete ....................................................... 335
8-15. Forward firewalling - Agregando una regla......................................................... 337
8-16. Ejemplo de uso de enmascaramiento de IP ......................................................... 339
8-17. Configurando el enmascaramiento de IP ............................................................. 341
8-18. Firewall - Enmascaramiento de IP....................................................................... 343
9-1. Configuración de DRBD ....................................................................................... 370
9-2. Archivo de configuración ...................................................................................... 370
9-3. Configuración de Heartbeat ................................................................................... 376
9-4. Nodos..................................................................................................................... 377
9-5. IPs y Servicios ....................................................................................................... 378
9-6. Claves de autenticación ......................................................................................... 379
9-7. Lista de dispositivos .............................................................................................. 380
9-8. Configuraciones diversas ....................................................................................... 380
10-1. Pantalla de configuración del servidor NFS ........................................................ 387
10-2. Pantalla de acceso a volúmenes NFS................................................................... 392
10-3. Configuración de Samba...................................................................................... 393
10-4. Pantalla de configuración Global de Samba ........................................................ 398
10-6. S W A T............................................................................................................... 403

27
Tabla de ejemplos
4-1. Utilizando las URLs de Netscape Communicator................................................. 169
8-1. Ejemplo de Configuración de tcp_wrappers.......................................................... 312
8-2. Configuración de tcp_wrappers Menos Restrictiva ............................................... 314
8-3. Archivo de Configuración de AIDE ...................................................................... 351

28
Prefacio
El objetivo principal de esta guía es dar a conocer los servicios esenciales y más
importantes que Conectiva Linux presenta a los administradores de red y de sis-
temas, así como las novedades de esta nueva edición Servidor. Está escrita en un
lenguaje sencillo, pues de esta manera el administrador podrá tener una visión
general sobre cada servicio, bien como una explicación de la teoría y conceptos
de los programas disponibles en el producto. Esta guía no pretende enseñar a
utilizar cada programa o paquete, ya que esto supondría escribir un nuevo libro
para cada asunto. Además de la descripción general de los paquetes principales,
el usuario puede encontrar ejemplos para su instalación y configuración.
Linuxconf fue clasificado como esencial o muy importante en una red, por lo que
ya es estándar en la distribución Conectiva Linux. En esta versión del servidor
nos gustaría resaltar los nuevos módulos que se han desarrollado especialmente
para Linuxconf. Antes de hablar de ellos explicaremos qué es Linuxconf. Se trata
de un programa que centraliza la configuración de administración del sistema y
de redes, y entre sus ventajas podemos mencionar una interfaz bastante amigable,
que satisface a la mayoría de los usuarios; puede usarse en modo gráfico, texto
e incluso llamada vía web. Conectiva procuró implementar nuevos módulos en
el programa, así como también mejorar los que ya existían, dejándolo aún más
estable. Con un equipo especializado y trabajando solamente en este proyecto, fue
implementado un módulo para la configuración de la solución de Boot Remoto,
Wine, un aumento de funcionalidades en la configuración de Samba, DNS, NFS y
muchos otros módulos que el propio programa presenta. Para terminar, la virtud
principal de Linuxconf es la implementación constante realizada por el equipo
de Conectiva y también por la propia comunidad Linux. Acompañe en nuestro

29
Prefacio

sitio web (http://es.conectiva.com/actualizaciones/) su evolución y tenga siempre


en su máquina la última versión. En el primer capítulo de esta guía se describe
Linuxconf de manera más detallada.
Dando continuidad a la guía, se presenta el concepto y funcionamiento de un
servidor de LDAP. Este servicio es un protocolo cliente-servidor, que se utiliza
para acceder a un servicio de Directorio - una base de datos que se asemeja a
una lista telefónica - que guarda toda la base de información de sus usuarios.
Una facilidad interesante es que, usando el cliente Netscape®, el usuario puede
acceder remotamente a toda la configuración de su navegador.
Se describe el funcionamiento de RAID, una poderosa herramienta, rápida y con-
fiable para crear un subsistema de unidades de disco, a través de unidades indivi-
duales. No tiene como objetivo ser utilizado como un sustituto para hacer backup,
su función es proteger contra fallas en el disco. RAID es un servicio complejo que
debe utilizarse con cautela y por administradores con mucha experiencia.
Presentamos el buen y “viejo” DNS, el cual además de ser conocido por muchos,
es de suma importancia para la configuración de una red. En este capítulo se
presenta una introducción de su concepto básico y configuración.
En Redes Mixtas, se demuestra el NFS y dos protocolos más para que Linux tra-
baje con otros sistemas operativos - Samba y Mars-NWE. NFS es un protocolo
importante, dentro de Linux, para compartir archivos; ya Samba permite que má-
quinas Linux “conversen” con máquinas Windows y Mars-NWE permite la co-
municación entre máquinas o redes Linux y máquinas o redes Novell. Esta parte
de la guía es bastante importante e interesante para los que están migrando para
Linux y todavía no pueden abandonar definitivamente otros sistemas operativos.
Linux muestra aquí que puede convivir amigablemente con todos.

30
Prefacio

Procuramos crear una secuencia de servicios para que el administrador monte


un servidor básico de Internet. Presentamos Apache para un servidor web, WU-
FTPD para un servidor de FTP y Squid para un servidor de proxy. Con estos tres
servicios usted puede por ejemplo, montar un servidor base para su proveedor
Internet.
En el capítulo - Correo Electrónico - presentamos el funcionamiento de Sendmail
para la configuración de un servidor de email. Utilice ese capítulo para mejorar
su servidor.
Cuando hablamos de Seguridad en el Servidor, presentamos algunas reglas para
aumentar la seguridad en su red y también describimos una manera muy clara y
objetiva de lo que debe hacer un administrador para deshabilitar los servicios que
no se están utilizando, que es el primer paso que un buen administrador debe dar.
Conocer la red es uno de los factores más importantes para brindar un mínimo
de seguridad; aunque el administrador no conozca conceptos de seguridad, debe
conocer la red. Lea este capítulo con mucha atención.
Para terminar, tenemos el capítulo alta disponibilidad, que tiene como objetivo
presentar conceptos y aplicaciones que permiten aumentar la disponibilidad de
servidores Linux. Alta Disponibilidad viene a mostrar que no es sólo un programa
dentro de un producto, sino, una característica de un sistema de computadores.
Conectiva Linux también viene abriendo las puertas para esa filosofía.
En el apéndice, tenemos un asunto importante: Appletalk. En este apéndice se
describe el paquete Netatalk que viene con Conectiva Linux, con él se pueden
crear redes mixtas usando máquinas Macintosh® y Linux.
Para finalizar esta guía, se presentan las licencias de uso generales, GPL y la
licencia de uso del producto.

31
Prefacio

Esperamos que aproveche al máximo los conceptos y ejemplos que presentamos


en este libro.

Convenciones Tipográficas

Durante la elaboración de esta guía, procuramos describir con uniformidad los


distintos términos utilizados. A continuación presentaremos las principales con-
venciones utilizadas.

Tabla 1. Convenciones

Convención Descripción
Itálico Palabras en inglés.
Opciones de menús y submenús Letra en tamaño mayor que el cuerpo
del texto; los submenús están separados
por flechas.
Letra courier (más delgada y con más Definida para nombres de archivos o
espacio) extensiones de archivos.

Conectiva espera, con este material, suministrar una base para todos los que de-
sean implantar soluciones avanzadas en un servidor, utilizando una plataforma

32
Prefacio

Linux.
Si encuentra algún error ortográfico o conceptual, por favor acceda al sitio web
(http://es.conectiva.com/doc/errata) y llene el formulario correspondiente.
¡Conectiva agradece su interés en este producto y le desea muy buena suerte en
su labor!

33
Prefacio

34
Capítulo 1. Linuxconf

El propósito de este capítulo es presentar Linuxconf de tal manera que sea ca-
paz de entender qué sucede cada vez que efectúa alguna modificación, o cuando
sencillamente entra y sale de la aplicación. No presentaremos ni explicaremos
cada uno de los módulos de Linuxconf, en vez de ello, expondremos lo que debe
hacerse para habilitar o deshabilitar estos módulos y cuáles son los archivos con-
trolados por Linuxconf, entre otros puntos.

Visión general
Linuxconf es un avanzado sistema de administración para Linux. Centraliza ta-
reas tales como configuración del sistema y control de los servicios existentes
en la máquina. En verdad, Linuxconf está compuesto por un conjunto de módu-
los, cada uno de ellos responsable por ejecutar una tarea específica. Por ejemplo,
entre muchos otros, existen módulos para:

• Configuración del servidor Apache.

• Configuración de conexiones PPP.

• Configuración de reglas para el filtro de paquetes del kernel.

35
Capítulo 1. Linuxconf

Considerando la manera como ha sido proyectado Linuxconf, para añadirle una


funcionalidad basta que alguien escriba un nuevo módulo para ejecutar la tarea
tratada. Con esto, tenemos una herramienta que puede centralizar la configura-
ción de todo el sistema.
Una de las complicaciones de gran parte de los programas para Linux es su flexi-
bilidad, pues tienen decenas (e incluso a veces centenas) de opciones de con-
figuración. Linuxconf la facilita en estos programas, al presentar las opciones
de configuración existentes de una manera organizada y, en muchos casos, efec-
tuando también la validación de los datos informados, por lo que disminuye la
ocurrencia de errores vulgares.

Cunado hace una modificación a través de un módulo y lo termina, se efectúan las


alteraciones en el sistema. Cuando salga de Linuxconf, se harán verificaciones para
inspeccionar si el estado actual del sistema corresponde con la configuración de
Linuxconf.

Interfaces de Linuxconf
De una forma contraria a otras herramientas de administración, Linuxconf cuenta
con varias interfaces de usuario:

36
Capítulo 1. Linuxconf

Interfaz texto

Interfaz indispensable, pues puede utilizarse en cualquier momento, ya sea vía con-
sola o acceso remoto (telnet o ssh). Esta interfaz elimina la necesidad de mantener
instalado un servidor gráfico X solamente para configurar la máquina. La Tabla 1-1
muestra algunos atajos de teclado útiles para este modo de Linuxconf.

Tabla 1-1. Teclas de referencia rápida de Linuxconf

Teclas Descripción
F1 abre pantalla de ayuda
F3 sale de una sección/pantalla
Ctrl- X muestra lista emergente de la opción
Ctrl- A va para el comienzo de la línea (Inicio)
Ctrl- B vuelve a la página anterior (Re Pág)
Ctrl- D borra el carácter actual (Suprimir)
Ctrl- E va para el fin de la línea (Fin)
Ctrl- F va para la página posterior (Av Pág)
Ctrl- K borra el texto, desde el cursor hasta el fin de línea

37
Capítulo 1. Linuxconf

Interfaz web

La posibilidad de configurar una máquina a través de una interfaz web es fantástica,


pues basta tener acceso a un navegador. Con eso, es posible configurar una máquina
a través de, prácticamente, cualquier plataforma de hardware y software, siendo
suficiente que haya un navegador para ella.

Interfaz gráfica

Es útil para usuarios que prefieren configurar el sistema a través de una interfaz
gráfica, pues tienen a su disposición ventanas, cuadros de diálogo, botones, etc.. Esta
interfaz debe ejecutarse en un servidor gráfico X, como XFree86 (servidor gráfico
estándar de Linux).

Interfaz de línea de comando

Algunos módulos de Linuxconf pueden utilizarse por la línea de comando, lo que,


entre otras posibilidades, permite su uso en scripts .

Usted podrá utilizar cualquier interfaz de éstas, dependerá solamente de su gusto


personal, o de lo que tiene disponible la máquina que está siendo administrada.

38
Capítulo 1. Linuxconf

Uso de Linuxconf
Linuxconf puede ejecutarse en cualquier momento, a través de la línea de co-
mando. Para iniciarlo basta teclear linuxconf en la línea de comando, o pulsar en
el ícono del ambiente gráfico del superusuario.
La configuración estándar de Conectiva Linux es permitir que sólo el superusua-
rio acceda a Linuxconf. Esta política ha sido escogida por factores de seguridad,
pues para que otros usuarios puedan ejecutarlo, es necesario que el programa
tenga el bit suid habilitado.
Cuando se ejecuta Linuxconf por primera vez, exhibe una pantalla de presentación,
con algunas instrucciones de uso del programa.
Al ser iniciado, Linuxconf verifica si la X está activa. En caso afirmativo, empieza
su interfaz gráfica, como se ilustra en la Figura 1-1.

39
Capítulo 1. Linuxconf

Figura 1-1. Interfaz gráfica de Linuxconf

40
Capítulo 1. Linuxconf

Como podemos observar en la Figura 1-1, Linuxconf tiene tres secciones: Confi-
guración, Control y Estado. La sección Configuración trata básicamente de con-
figuraciones del sistema y la sección Estado permite la vista de logs e informa-
ción general del sistema. Como el objetivo de este capítulo es entender el fun-
cionamiento de Linuxconf, nos detendremos en la sección Control, que permite
que visualicemos y modifiquemos las opciones predefinidas de Linuxconf.
Para utilizar la interfaz texto de Linuxconf, basta ejecutarlo en el modo texto, o
entonces agregar la opción --text en la línea de comando: linuxconf --text.
La Figura 1-2 muestra Linuxconf siendo ejecutado en un Xterm.

41
Capítulo 1. Linuxconf

Figura 1-2. Ejecutando Linuxconf en un Xterm

Note que la información presentada en la interfaz texto es la misma que se pre-


senta en la interfaz gráfica, y vea que sólo la forma de presentación difiere entre
las dos interfaces.
A la interfaz web se puede acceder a través de la URL http://su_maquina:98/ ,
pero, para eso, tiene que configurar primero Linuxconf, para que acepte conexio-
nes vía red.

42
Capítulo 1. Linuxconf

Habilitación del acceso a Linuxconf vía red

El primer paso para habilitar el acceso a Linuxconf vía red es ir hasta Configu-
ración → Configuración de Red → Misc → Acceso de red a Linuxconf y
marcar la opción activa acceso vía red.
Además de esta opción, es útil marcar Acceso de registro en /var/log/htmlaccess.log ,
para que los accesos sean registrados en este archivo. Debajo de estas opciones,
encontrará algunos campos para definir cuáles son las máquinas que pueden ac-
ceder a Linuxconf vía red. Si ellos no son llenados, Linuxconf aceptará solamente
conexiones de la red local de la primera tarjeta de red detectada por el sistema, lo
que se considera un funcionamiento bastante seguro.
Si prefiere ser más específico, informe una máquina o una red y, como opción,
una máscara de red. Sus opciones para especificar una máquina o una red son:

• Un nombre de máquina.

• Una dirección IP.

• Un par de direcciones IP y máscara de red.

• Un nombre de dispositivo (eth0, eth1, etc).

Observe el ejemplo de la Figura 1-3:

43
Capítulo 1. Linuxconf

Figura 1-3. Configuración del Acceso a Linuxconf Vía Red

Con esta configuración, será posible acceder a la interfaz web de Linuxconf a


través de la interfaz loopback (127.0.0.1), de la red 192.168.0.0/255.255.255.0
y de la máquina host.qwerty.com. Cuando se especifica una dirección IP o un
nombre de máquina sin especificar una máscara de red, es asumida la máscara
255.255.255.255.
Para configurar el acceso de Linuxconf vía web, tendrá que alterar como super-

44
Capítulo 1. Linuxconf

usuario el archivo /etc/xinetd.d/linuxconf-web :

# vi /etc/xinetd.d/linuxconf-web

# default: off

# description: The Linuxconf system can also be accessed via a web \

# browser. Enabling this service will allow connections to \

# Linuxconf running in web UI mode.

service linuxconf

disable = yes

socket_type = stream

wait = yes

user = root

server = /sbin/linuxconf

server_args = -http

Basta con sustituir disable = yes por disable = no y se activará el sevicio.


Finalmente, para acceder a Linuxconf a través de su interfaz web, es suficiente
apuntar su navegador para http://127.0.0.1:98/, o sea, si está accediendo desde la
máquina local. Si está accediendo a través de la red, reemplace 127.0.0.1 por el
nombre o dirección IP de la máquina.

45
Capítulo 1. Linuxconf

La Figura 1-4 muestra una página de la interfaz web de Linuxconf.

46
Capítulo 1. Linuxconf

Figura 1-4. Interfaz Web de Linuxconf 47


Capítulo 1. Linuxconf

Ayuda de Linuxconf
Linuxconf tiene varias pantallas de ayuda, que le explican cómo utilizar algu-
nas características del programa. Para acceder a ellas, debe seleccionar la opción
Ayuda, que existe en todas las pantallas del programa.

Como Linuxconf es un proyecto en desarrollo, algunas pantallas de ayuda no han


sido aún traducidas para la lengua española, y otras ni siquiera han sido escritas.
Por lo tanto, no le parezca extraño si aparece alguna pantalla de ayuda en inglés, o
incluso, si le sale algún mensaje diciendo que el archivo de ayuda no existe.

Activación de las configuraciones

Uno de los primeros puntos a conocer de Linuxconf es que muchas configura-


ciones realizadas a través suyo causarán efecto solamente cuando sean activadas
explícitamente. Existen varias maneras para activar estos cambios. Una de ellas
es saliendo de Linuxconf. Al salir del programa, tras haber efectuado alguna mo-
dificación en configuraciones, tendrá una pantalla semejante a la que se ilustra en
la Figura 1-5.

48
Capítulo 1. Linuxconf

Figura 1-5. Estado del sistema

A no ser cuando sea explícitamente señalado, las pantallas y los procedimientos


descritos en este capítulo tienen como base la interfaz gráfica de Linuxconf. La
diferencia de operación entre una interfaz y otra es mínima, por lo tanto no tendrá
problema si utiliza alguna de las otras interfaces.

La ventana presenta un informe (Figura 1-5) de lo que será ejecutado, si desea


que se hagan las configuraciones.
Si abandona la idea de salir del programa, basta con que seleccione la opción
Volver a Linuxconf , esto hará con que usted vuelva a la pantalla principal de

49
Capítulo 1. Linuxconf

Linuxconf. La opción Salir permite que salga del programa sin efectuar las al-
teraciones, al revés de la opción Activar los cambios, mediante la cual sale del
programa confirmando todas las alteraciones necesarias.
Otra manera de activar los cambios en la configuración del sistema es al revés de
la opción Control → Panel de Control → Activa la configuración.
Si le gusta usar la línea de comando, puede encontrar dos comandos útiles. Veamos:
el comando linuxconf --status exhibe el informe de lo que necesita hac-
erse para sincronizar la configuración del sistema, y el comando linuxconf --
update efectúa las alteraciones, como se ilustra a continuación.

# linuxconf --status

Lista de requisitos para activar la configuración actual

# linuxconf --update

Verificando la configuración básica

Verificando los módulos del kernel

Montando volúmenes locales

Verificando los permisos de archivos

Verificando LILO

Ejecutando algunos scripts de iniciación Sysv

Ejecutando: /etc/rc.d/rc5.d/S50inet restart

Configuración del firewall

50
Capítulo 1. Linuxconf

Activar o desactivar módulos

Linuxconf está compuesto por varios módulos, cada uno de ellos con una función
específica. Es posible desactivar módulos innecesarios o activar los existentes que
se desean utilizar. Accediendo a Control → Controla archivos y sistemas →
Configura módulos de Linuxconf. Linux tendrá acceso a la Lista de módulos
(Figura 1-6). Dicha lista muestra los módulos que existen, su descripción y una
checkbox que informa si el módulo está o no activo. Para confirmar cualquier
alteración en esta pantalla, basta pulsar en Aceptar.

51
Capítulo 1. Linuxconf

Figura 1-6. Lista de módulos de Linuxconf

Permiso y propiedad de archivos

52
Capítulo 1. Linuxconf

Linuxconf mantiene una base de datos con permisos y propiedad de archivos y


directorios importantes del sistema, evitando así que estas características sean
accidentalmente alteradas.
Por ejemplo, si modifica el modo del directorio /var/spool/mail para 777, al ac-
tivar la configuración Linuxconf lo configurará nuevamente con el modo 775,
como se ilustra en la Figura 1-7.

Figura 1-7. Previsión de modificación de Modo de archivos

En ciertas situaciones, es posible que necesite modificar permanentemente el


modo (o dueño, o grupo) de un archivo administrado por Linuxconf. En este
caso, es necesario alterar la información del archivo almacenada en Control →
Controla archivos y sistemas → Configura modos y pertenencia de archi-
vos. Al acceder a esta opción, se presentará un cuadro de diálogo (Figura 1-8), en
el que podrá especificar un prefijo para filtrar los archivos que serán relacionados,

53
Capítulo 1. Linuxconf

pues la lista es bastante grande. Si no pone un prefijo, se exhibirá la lista com-


pleta. Dicha lista, filtrada o no, aparecerá en cuanto pulse en el botón Aceptar.

Figura 1-8. Filtrando la lista de archivos

La Figura 1-9 muestra un listado de los archivos del directorio /usr que son ad-
ministrados por Linuxconf.

54
Capítulo 1. Linuxconf

Figura 1-9. Permiso de archivos controlados por Linuxconf

Este cuadro de diálogo tiene cinco columnas de información:

Ruta: exhibe el camino completo para el archivo o directorio.


Tipo: informa si es archivo, directorio, dispositivo carácter o dispositivo bloque.
Dueno: exhibe el dueno y el grupo estándar del archivo.
Permisos: informa los permisos estándar del archivo.
Mod: informa si la configuración estándar del archivo fue modificada.

Al seleccionar uno de los archivos de la lista, se presentará otro cuadro de diálogo,


que va a permitirle que altere la configuración estándar del archivo. Usted podrá
alterar el dueño, el grupo y los permisos.

55
Capítulo 1. Linuxconf

Observe en la Figura 1-9 que el archivo /usr/sbin/pppd tiene permisos rwsr-xr-x.


Le puede interesar, por ejemplo, deshabilitar el bit suid de este programa. Para
eso, desmarque la opción Indicador de Setuid en el cuadro de diálogo de defini-
ciones de permisos de un archivo (Figura 1-10).

Figura 1-10. Definiciones de permisos de un archivo

56
Capítulo 1. Linuxconf

La próxima vez que active las configuraciones, esta alteración será automática-
mente efectuada. Este tipo de alteración puede hacerse para cualquier archivo
controlado por Linuxconf.

Recuerde que, siempre que necesite alterar dueño, grupo o permisos de un archivo
controlado por Linuxconf, será necesario modificar la configuración del archivo en
este programa.

Archivos de configuración

Linuxconf usa, gestiona, prueba y genera varios archivos de configuración. A


través de la opción Control → Controla archivos y sistemas → Configurar
todos los archivos de configuración (Figura 1-11) puede visualizar cuáles son
dichos archivos.

57
Capítulo 1. Linuxconf

Figura 1-11. Lista de los archivos de configuración

Como puede ver, esta ventana contiene tres columnas: Ruta, Estado y Subsis-
tema.
La Ruta define la ubicación del archivo administrado. La columna Estado con-
tiene algunos identificadores, que pueden tener los valores siguientes:

58
Capítulo 1. Linuxconf

(en blanco): indica que el archivo es sólo leído por Linuxconf. Eso puede significar dos
cosas: o se trata de un archivo de referencia usado por Linuxconf o aún no sabe cómo
administrarlo, pero utiliza su contenido.
A: indica que el archivo se almacenará para un determinado perfil.
E: indica que el archivo será siempre borrado en la iniciación, por Linuxconf.
G: indica que el archivo es generado por Linuxconf. En este caso, Linuxconf utiliza otros
archivos, como por ejemplo /etc/conf.linuxconf, para guardar la configuración relacio-
nada al servicio en referencia. Generalmente esto significa que esos archivos no deben ser
alterados manualmente, pues Linuxconf sobrescribirá estas alteraciones. La excepción a
este caso se da cuando el archivo es también marcado con M, lo que no es común.
M: indica que el archivo es administrado completamente por Linuxconf. Esto significa
que Linuxconf sabe como procesarlo y reescribirlo apropiadamente. Significa también
que puede modificar el archivo directamente, sin que Linuxconf pierda la habilidad de
gestionarlo. El archivo /etc/resolv.conf es un buen ejemplo.
O: indica que el archivo es optativo en un sistema Linux.
P: indica que Linuxconf sabe muy poco del archivo referido. El sólo verifica su existencia
y su fecha de modificación. Con base en esto, Linuxconf decide si es necesario un servicio
o si precisa ser reiniciado o senalizado un daemon .
V: Linuxconf utiliza archivos virtuales especiales, que generalmente hacen parte de un
archivo de configuración real.
*: Indica que la ruta del archivo de configuración fue alterada, y no tiene más el valor
original conocido por Linuxconf.

59
Capítulo 1. Linuxconf

La columna Subsistema solamente presenta una división interna de Linuxconf,


que informa a qué parte del sistema pertenece el archivo.
La única configuración que puede hacerse en esta ventana es la alteración de la
ruta del archivo, lo que no se recomienda, salvo que esté bien seguro de lo que
hace.

Comandos y programas residentes

Linuxconf utiliza varios comandos y programas del sistema para realizar distin-
tas tareas. Usted puede saberlos si accede a Control → Controla archivos y
sistemas → Configurar todos los comandos y "daemons" (Figura 1-12).
Además de visualizarlos, podrá modificarlos e incluso desactivarlos, como vere-
mos a continuación.

60
Capítulo 1. Linuxconf

Figura 1-12. Lista de comandos y "daemons"

Como puede ver, la ventana ilustrada en la Figura 1-12 tiene tres columnas:

Nombre: informa el nombre del comando.


Ruta: informa la localización del comando que se está utilizando.

61
Capítulo 1. Linuxconf

Mod: informa si la configuración original de Linuxconf fue modificada.

Esta característica es bastante útil, pues le permite que personalice algunas fun-
ciones de Linuxconf de manera simple. Por ejemplo, si necesita añadir usuarios
en la base de datos del sistema y además en una base de datos SQL, basta reem-
plazar el comando originalmente utilizado por Linuxconf por un script o pro-
grama especialmente creado para esto.
Al seleccionar uno de los comandos de la lista, será exhibida una ventana que le
permitirá:

• Deshabilitar el comando; cuando desmarque la opción linuxconf puede hacerse cargo.

• Modificar el comando que será ejecutado, alterando la Ruta del comando.

• Añadir, suprimir o modificar los argumentos utilizados en la ejecución del comando.

La Figura 1-13 ilustra una situación en la que ha sido alterado el comando para
agregar usuarios al sistema.

62
Capítulo 1. Linuxconf

Figura 1-13. Cambio de configuración de comando

Con esta configuración, el comando utilizado por Linuxconf para agregar usua-
rios al sistema pasa a ser /usr/sbin/useradd-sql, que podrá ser un script o pro-
grama binario que ejecuta la tarea de añadir usuarios de manera personalizada.
Note que este procedimiento no va a modificar el módulo de adición de usuarios
de Linuxconf. La diferencia está en que el comando utilizado por el módulo será
otro.
Si desactiva un comando, desmarcando la opción linuxconf puede hacerse cargo.
Linuxconf estará impedido de efectuar cualquier tarea que dependa de este co-
mando.
Estos procedimientos son válidos para cualquier comando utilizado por Linux-
conf.

63
Capítulo 1. Linuxconf

Controla servicios activos

El Controla servicios activos de Linuxconf sirve básicamente para configurar


inetd. La gran mayoría de servicios son controlados mediante inetd, no obstante,
otros como el propio Linuxconf y el servicio de firewall no están controlados por
dicha aplicación.
Se puede acceder a esta configuración a través de la opción Control → Panel de
control → Controla servicios activos .

64
Capítulo 1. Linuxconf

Figura 1-14. Control de servicios

Para modificar la configuración de un servicio, debe primero pulsar sobre el


mismo. Este procedimiento hará con que sea exhibida otra ventana, que permite
efectuar las modificaciones que desee. La Figura 1-15 ilustra la configuración del
servicio finger. Para activar o desactivar un servicio se debe modificar Estado
para Activado o Desactivado, respectivamente.

65
Capítulo 1. Linuxconf

Figura 1-15. Configuración del servicio finger

66
Capítulo 1. Linuxconf

Más funcionalidades de Linuxconf

En este capítulo, tratamos de la configuración del propio Linuxconf. En los demás


capítulos de este libro tendrá la oportunidad de conocer varios programas, que le
permitirán gestionar su máquina de una manera muy sencilla y segura.
A esta versión le fueron agregados módulos de Linuxconf, entre los que podemos
citar:

• Módulo para configuración de Wine, aplicación para ejecutar programas de Windows®.

• Módulo para configuración de Amanda, software para administración de backup.

• Módulo para configuración de Grub, boot loader con más características que LILO.

• Módulo para configuración de Postfix, servidor de e-mail.

• Módulo para configuración de Portslave, aplicación usada para control de puertos.

• Módulo para configuración de LPRng, software para configuración y control de impre-


soras.

67
Capítulo 1. Linuxconf

Logs de Linuxconf
Es importante tener siempre como referencia los logs del sistema antes, durante
y después del uso de Linuxconf. Estos archivos pueden consultarse siempre en
/var/log.

Podemos citar los siguientes archivos que se refieren sólo al uso de Linuxconf:

• /var/log/netconf.log - archivo principal de log de Linuxconf, registra operaciones de


forma clara y específica de todos los pasos ejecutados por Linuxconf.

• /var/log/htmlaccess.log - log de acceso de Linuxconf vía WEB; si utiliza esta interfaz


use este archivo como referencia.

68
Capítulo 2. LVM
El Administrador de Volúmenes Lógicos1(LVM) es un subsistema para gestión
activa de almacenamiento en disco que se transformó en una forma estándar de
administración de almacenaje en sistemas UNIX.
El Administrador de Volúmenes Lógicos consiste en una capa adicional entre los
dispositivos físicos y la interfaz de E/S en el kernel para suministrar una visión
lógica en el almacenamiento. Al contrario de los esquemas de particiones ac-
tuales, en los que se dividen discos en particiones continuas de tamaño fijo, el
LVM permite al usuario considerar discos, también conocidos como Volúmenes
Físicos2 (PV), como un volumen de almacenamiento de datos, que tiene exten-
siones con tamaños iguales.
Un sistema de LVM se compone de grupos arbitrarios de volúmenes físicos, or-
ganizados en Grupos de Volúmenes3(VG). Un grupo de volumen puede consistir
en uno o más volúmenes físicos. Puede haber más de un grupo de volumen en el
sistema. Una vez creado, el grupo de volumen, no el disco, es la unidad básica de
almacenamiento de datos (un disco virtual que se compone de uno o más discos
físicos).

1. Logical Volume Manager

2. Physical Volumes

3. Volume Groups

69
Capítulo 2. LVM

La cantidad de espacio en disco, que se representa por un grupo de volumen,


puede estar asignada en particiones virtuales, llamadas Volúmenes Lógicos4 (LV)
de varios tamaños. Un volumen lógico puede contener un número de volúmenes
físicos o representar solamente una parte de un volumen físico. El tamaño de un
volumen lógico se determina por su número de extensiones. Una vez creados, los
volúmenes lógicos pueden utilizarse como particiones de disco regulares - para
crear un sistema de archivos o un dispositivo de intercambio.
LVM fue inicialmente desarrollado por IBM y luego adoptado por la OSF (ahora
OpenGroup (http://www.opengroup.org/)), para su sistema operativo OSF/1. La
versión OSF fue usada entonces como una base para implementación de LVM en
los sistemas operativos HP-UX y Digital UNIX. Otra implementación de LVM
está a disposición a través de Veritas (http://www.veritas.com) que funciona de
una forma diferente. La implementación de Linux es similar a la implementación
de LVM de HP-UX.

El concepto de LVM
Tradicionalmente, el tamaño de una partición es definido en la instalación del sis-
tema, y no puede ser alterado posteriormente. El cambio de tamaño de particiones
estáticas puede realizarse con la aplicación parted. Para ello, es necesario que el
administrador haga un planeamiento previo de la cantidad máxima de datos que
la partición podrá almacenar en el futuro. Cuando un usuario exceda el espacio de
4. Logical Volumes

70
Capítulo 2. LVM

una partición, tendrá que reparticionar (lo que puede involucrar una reinstalación
completa del sistema) o utilizar artificios, como enlaces simbólicos.
Por ejemplo, suponga que tenemos un disco de 1GB y creamos la partición /home
utilizando 600MB. Vamos a imaginar que necesitamos más espacio y descubri-
mos que precisaremos 1GB en el /home. Utilizando la antigua noción de parti-
ciones, precisaremos tener otra unidad con por lo menos 1GB de tamaño. Po-
dremos entonces añadir el disco, crear el nuevo /home y copiar los datos que cor-
respondan.
Sin embargo, con una configuración LVM, podemos simplemente agregar un
disco de 400MB (o más grande) y añadir dicha unidad de almacenamiento en
la partición /home. Otras herramientas permiten cambiar el tamaño a un sistema
de archivos existente, o sea, podemos sencillamente poner la nueva dimensión,
para tener la ventaja de una partición con mayor tamaño y volver al trabajo.

Terminología
LVM viene con varias jergas que necesitan entenderse para que no haya proble-
mas con los sistemas de archivos. En esta sección veremos esta terminología que
se utiliza en LVM.

71
Capítulo 2. LVM

El medio físico
Deberá usar la palabra físico con un poco de cuidado. De cualquier forma la en-
tenderemos inicialmente como siendo un simple disco duro, o una partición. Por
ejemplo, /dev/hda, /dev/hda2, /dev/sda. Podemos transformar cualquier número
consecutivo de bloques de un dispositivo de bloques en un Volumen Físico.

Volumen Físico (PV)


Un PV5 no es nada más que un medio físico con algunos datos administrativos a
él agregados - una vez que hayamos agregado estos datos el LVM los reconocerá
como propietarios de las Extensiones Físicas.

Extensiones Físicas (PE)


Extensiones Físicas6 son como bloques de un sistema de archivos (regiones con-
tinuas del disco) realmente grandes, muchas veces con un tamaño que llega a los

5. Physical Volume

6. Physical Extents

72
Capítulo 2. LVM

megabytes. Las PEs pueden atribuirse a un Grupo de Volúmenes.

Grupo de Volúmenes (VG)


Un VG7 está compuesto por un determinado número de Extensiones Físicas. De
este Grupo de volúmenes, las PEs pueden atribuirse a un Volumen Lógico.

Volumen Lógico (LV)


Un Volumen Lógico es el resultado final de nuestro trabajo, y es aquí que se
almacena la información. Se trata de un dispositivo de bloque funcionalmente
equivalente a una partición.
Sobre el Volumen Lógico será creado un sistema de archivos.

7. Volume Group

73
Capítulo 2. LVM

Sistema de Archivos
El sistema de archivos puede ser: ext2 estándar, ReiserFS, etc... Para el usuario,
no hay diferencia entre una partición regular y un Volumen Lógico.
A continuación se ponen algunos diagramas que le ayudarán a visualizar estos
conceptos.
Un Volumen Físico, que contiene Extensiones Físicas. Figura 2-1.

Figura 2-1. Volumen Físico

Un Grupo de Volúmenes, que contienen dos Volúmenes Físicos (PVs) con seis
Extensiones Físicas. Figura 2-2.

74
Capítulo 2. LVM

Figura 2-2. Grupo de Volúmenes

Ahora podemos expandir este grupo. Figura 2-3.

75
Capítulo 2. LVM

Figura 2-3. Grupo de Volúmenes expandido

Esto nos muestra dos sistemas de archivos, dividiendo dos discos. El sistema de
archivos /home contiene cuatro Extensiones Físicas, el sistema de archivos /var
dos.

76
Capítulo 2. LVM

Creando un Volumen Lógico


Presentaremos aquí un ejemplo comentado que muestra el proceso para la crea-
ción de un Volumen Lógico. Utilizaremos dos particiones en un mismo disco
para este ejemplo, /dev/hda5 e /dev/hda6 con 2GB y 1GB respectivamente. El uso
de LVM tiene más sentido con particiones en discos distintos, aunque aquí, so-
lamente para fines didácticos, lo presentaremos en un solo disco, mientras que
estas reglas se aplican a varios discos. Los datos de estas particiones se perderán.
Observe las figuras mostradas anteriormente en caso que tenga alguna duda.
Primero cambiaremos el tipo de las particiones /dev/hda5 y /dev/hda6 en 0x8e.

# fdisk /dev/hda

Comando (m para ayuda): p

Disco /dev/hda: 255 cabeças, 63 sectores, 784 cilindros

Unidades = cilindros de 16065 * 512 bytes

Dispositivo Boot Inicio Fin Bloques Id Sistema

/dev/hda1 1 17 136521 82 Linux swap

/dev/hda2 * 18 272 2048287+ 83 Linux

/dev/hda3 273 400 1028160 83 Linux

/dev/hda4 401 784 3084480 5 Extendida

77
Capítulo 2. LVM

/dev/hda5 401 655 2048256 83 Linux

/dev/hda6 656 783 1028128+ 83 Linux

/dev/hda7 784 784 8001 82 Linux swap

Comando (m para ayuda): t

Número de la partición (1-7): 5

Código hexadecimal (teclee L para listar los códigos): 8e

El tipo de la partición 5 fue alterado para 8e (Linux LVM)

Comando (m para ayuda): p

Disco /dev/hda: 255 cabezas, 63 sectores, 784 cilindros

Unidades = cilindros de 16065 * 512 bytes

Dispositivo Boot Inicio Fin Bloques Id Sistema

/dev/hda1 1 17 136521 82 Linux swap

/dev/hda2 * 18 272 2048287+ 83 Linux

/dev/hda3 273 400 1028160 83 Linux

/dev/hda4 401 784 3084480 5 Extendida

/dev/hda5 401 655 2048256 8e Linux LVM

/dev/hda6 656 783 1028128+ 83 Linux

/dev/hda7 784 784 8001 82 Linux swap

78
Capítulo 2. LVM

Comando (m para ayuda): t

Número de la partición (1-7): 6

Código hexadecimal (digite L para listar los códigos): 8e

El tipo de la partición 6 fue alterado para 8e (Linux LVM)

Comando (m para ayuda): p

Disco /dev/hda: 255 cabezas, 63 sectores, 784 cilindros

Unidades = cilindros de 16065 * 512 bytes

Dispositivo Boot Inicio Fin Bloques Id Sistema

/dev/hda1 1 17 136521 82 Linux swap

/dev/hda2 * 18 272 2048287+ 83 Linux

/dev/hda3 273 400 1028160 83 Linux

/dev/hda4 401 784 3084480 5 Extendida

/dev/hda5 401 655 2048256 8e Linux LVM

/dev/hda6 656 783 1028128+ 8e Linux LVM

/dev/hda7 784 784 8001 82 Linux swap

Comando (m para ayuda): w

¡La tabla de particiones fue alterada!

79
Capítulo 2. LVM

Llamando ioctl() para volver a leer la tabla de particiones.

Sincronizando discos.

Si el paquete de LVM no está instalado en su sistema, instálelo con el comando:

# rpm -ivh /mnt/cdrom/conectiva/RPMS/lvm*

Cargue el módulo de LVM:

# insmod lvm-mod

Using /lib/modules/2.2.16-17cl/block/lvm-mod.o

Para crear el archivo /etc/lvmtab vacío, ejecute el comando:

# vgscan

vgscan - reading all physical volumens (this may take a while...)

vgscan - "/etc/lvmtab" and "/etc/lvmtab.d" successfully created

Ahora podemos crear los Volúmenes Físicos utilizando el comando pvcreate


partición de esta forma:

# pvcreate /dev/hda5

pvcreate - reinitializing physical volume

80
Capítulo 2. LVM

pvcreate - physical volume "/dev/hda5" successfully created

# pvcreate /dev/hda6

pvcreate - reinitializing physical volume

pvcreate - physical volume "/dev/hda6" successfully created

Podemos agregar estos dos PVs a un Grupo de Volúmenes llamado test con el
comando vgcreate nombre_del_VG partición1 partición2:

# vgcreate test /dev/hda5 /dev/hda6

vgcreate - INFO: using default physical extent size 4 MB

vgcreate - INFO: maximum logical volume size is 255.99 Gigabyte

vgcreate - doing automatic backup of volume group "test"

vgcreate - volume group "test" successfully created and activated

Para crear el archivo /etc/lvmtab, ejecute el comando:

# vgscan

vgscan - reading all physical volumes (this may take a while...)

vgscan - found active volume group "test"

vgscan - "/etc/lvmtab" and "/etc/lvmtab.d" successfully created

vgscan - WARNING: you may not have an actual VGDA backup of your volume group

81
Capítulo 2. LVM

En caso que los grupos de Volúmenes estén inactivos, utilice el comando vgchange
con el parámetro -ay para activar todos los VGs disponibles:

# vgchange -ay

vgchange - volume group "test" successfully activated

Ahora tenemos un Grupo de Volúmenes vacío; vamos a visualizarlo con el co-


mando vgdisplay -verbose nombre_del_VG:

# vgdisplay -v test

-- Volume group --

VG Name test

VG Access read/write

VG Status available/resizable

VG # 0

MAX LV 256

Cur LV 0

Open LV 0

MAX LV Size 255.99 GB

Max PV 256

Cur PV 2

Act PV 2

VG Size 2.93 GB

PE Size 4 MB

82
Capítulo 2. LVM

Total PE 750

Alloc PE / Size 0 / 0

Free PE / Size 750 / 2.93 GB

-- No logical volumes defined in test --

-- Physical volumes --

PV Name (#) /dev/hda5 (1)

PV Status available / allocatable

Total PE / Free PE 500 / 500

PV Name (#) /dev/hda6 (2)

PV Status available / allocatable

Total PE / Free PE 250 / 250

Podemos observar que no hay Volúmenes Lógicos definidos; debemos crear uno
para poder usarlo. También podemos ver con este comando el estado de los PVs,
sus nombres y el número total de bloques asignados y disponibles. Vamos a
generar un volumen de 500MB llamado lv01 en el Grupo de Volúmenes test:

# lvcreate -L 500M -n lv01 test

lvcreate - doing automatic backup of "test"

83
Capítulo 2. LVM

lvcreate - logical volume "/dev/teste/lv01" successfully created

Vamos a crear un sistema de archivos tipo ext2, ahora:

# mke2fs /dev/test/lv01

mke2fs 1.19, 13-Jul-2000 for EXT2 FS 0.5b, 95/08/09

Filesystem label=

OS type: Linux

Block size=1024 (log=0)

Fragment size=1024 (log=0)

128016 inodes, 512000 blocks

25600 blocks (5.00%) reserved for the super user

First data block=1

63 block groups

8192 blocks per group, 8192 fragments per group

2032 inodes per group

Superblock backups stored on blocks:

8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409

Writing inode tables: done

Writing superblocks and filesystem accounting information: done

Podemos crear un directorio para montar este sistema de archivos y observar su

84
Capítulo 2. LVM

tamaño:

# mkdir /mnt/lvm

# mount /dev/test/lv01 /mnt/lvm

# df -h /dev/test/lv01

Filesystem Size Used Avail Use% Mounted on

/dev/test/lv01 484M 13k 459M 0% /mnt/lvm

Vamos a ver nuevamente el Grupo de Volúmenes y observar los cambios:

# vgdisplay -v test

-- Volume group --

VG Name test

VG Access read/write

VG Status available/resizable

VG # 0

MAX LV 256

Cur LV 1

Open LV 1

MAX LV Size 255.99 GB

Max PV 256

Cur PV 2

Act PV 2

85
Capítulo 2. LVM

VG Size 2.93 GB

PE Size 4 MB

Total PE 750

Alloc PE / Size 125 / 500 MB

Free PE / Size 625 / 2.44 GB

-- Logical volume --

LV Name /dev/test/lv01

VG Name test

LV Write Access read/write

LV Status available

LV # 1

# open 1

LV Size 500 MB

Current LE 125

Allocated LE 125

Allocation next free

Read ahead sectors 120

Block device 58:0

-- Physical volumes --

86
Capítulo 2. LVM

PV Name (#) /dev/hda5 (1)

PV Status available / allocatable

Total PE / Free PE 500 / 375

PV Name (#) /dev/hda6 (2)

PV Status available / allocatable

Total PE / Free PE 250 / 250

Tenemos toda la información del VG en la salida de este comando, su nombre,


tipo de acceso, estado atual, parámetros de LV y PV y tamaños totales y asignados
del PE. El /dev/hda6 está totalmente libre, mientras que el /dev/hda5 está con 125
Extensiones Físicas en uso.

Cambiando el tamaño a un Volumen


Lógico
Examinaremos paso a paso el proceso de cambio de tamaño para tener una visión
general de la operación.

87
Capítulo 2. LVM

Aumentando un Volumen Lógico

El requisito para esta operación es que haya espacio libre en el Grupo de Volúme-
nes. En el caso contrario tendríamos que agregar más PVs. La línea de comando
siguiente hace esta operación:

# lvextend -L+2000M /dev/test/lv01

lvextend - extending logical volume "/dev/test/lv01" to 2.44 GB

lvextend - doing automatic backup of volume group "test"

lvextend - logical volume "/dev/test/lv01" successfully extended

Aumentamos con esta operación el Volumen Lógico /dev/test/lv01 en 2000MB.


Vea que aún no hemos cambiado el tamaño del sistema de archivos, por lo tanto:

# df -h /dev/test/lv01

Filesystem Size Used Avail Use% Mounted on

/dev/test/lv01 484M 13k 459M 0% /mnt/lvm

La partición presenta aún su tamaño original.

Aumentando un sistema de archivos

88
Capítulo 2. LVM

Primero vamos a desmontar nuestro sistema de archivos:

# umount /mnt/lvm

Antes de cambiar el tamaño fuerce la verificación del sistema de archivos con el


e2fsck:

# e2fsck -f /dev/test/lv01

e2fsck 1.19, 13-Jul-2000 for EXT2 FS 0.5b, 95/08/09

Pass 1: Checking inodes, blocks, and sizes

Pass 2: Checking directory structure

Pass 3: Checking directory connectivity

Pass 4: Checking reference counts

Pass 5: Checking group summary information

/dev/test/lv01: 11/128016 files (0.0% non-contiguous), 16169/512000 blocks

Ahora sí podemos cambiar el tamaño del sistema de archivos con la herramienta


resize2fs:

# resize2fs /dev/test/lv01

resize2fs 1.19 (13-Jul-2000)

The filesystem on /dev/test/lv01 is now 2560000 blocks long.

89
Capítulo 2. LVM

Podrá también usar el comando resize_reiserfs para cambiar el tamaño de los


sistemas de archivos ReiserFS.
Ya podemos montar nuevamente el sistema de archivos y verificar su nuevo
tamaño:

# mount /dev/test/lv01 /mnt/lvm/

[root@toy /root]# df -h /dev/test/lv01

Filesystem Size Used Avail Use% Mounted on

/dev/test/lv01 2.4G 13k 2.2G 0% /mnt/lvm

Disminuyendo un sistema de archivos

Vamos ahora a disminuir el sistema de archivos, para que después podamos dis-
minuir también el Volumen Lógico.
Primero desmonte el sistema de archivos:

# umount /mnt/lvm/

Fuerce la verificación del sistema de archivos con el comando:

90
Capítulo 2. LVM

# e2fsck -f /dev/test/lv01

e2fsck 1.19, 13-Jul-2000 for EXT2 FS 0.5b, 95/08/09

Pass 1: Checking inodes, blocks, and sizes

Pass 2: Checking directory structure

Pass 3: Checking directory connectivity

Pass 4: Checking reference counts

Pass 5: Checking group summary information

/dev/test/lv01: 11/636016 files (9.1% non-contiguous), 80274/2560000 blocks

Cambie el tamaño del sistema de archivos para 500 mil bloques (500MB aproxi-
madamente); por ejemplo:

# resize2fs /dev/test/lv01 500000

resize2fs 1.19 (13-Jul-2000)

The filesystem on /dev/test/lv01 is now 500000 blocks long.

Disminuyendo un Volumen Lógico

De forma similar al comando que fue usado para aumentar el Volumen Lógico,
ahora no obstante con un valor negativo, podemos disminuirlo:

91
Capítulo 2. LVM

# lvreduce -L-2000M /dev/test/lv01

lvreduce - WARNING: reducing active logical volume to 500 MB

lvreduce - THIS MAY DESTROY YOUR DATA (filesystem etc.)

lvreduce - do you really want to reduce "/dev/test/lv01"? [y/n]: y

lvreduce - doing automatic backup of volume group "test"

lvreduce - logical volume "/dev/test/lv01" successfully reduced

Podemos también especificar un valor absoluto en bloques , -L50 por ejemplo.


Forzamos la verificación del sistema de archivos nuevamente:

# e2fsck -f /dev/test/lv01

e2fsck 1.19, 13-Jul-2000 for EXT2 FS 0.5b, 95/08/09

Pass 1: Checking inodes, blocks, and sizes

Pass 2: Checking directory structure

Pass 3: Checking directory connectivity

Pass 4: Checking reference counts

Pass 5: Checking group summary information

/dev/test/lv01: 11/123952 files (9.1% non-contiguous), 15657/499713

blocks

Cambiamos nuevamente el tamaño del sistema de archivos para aprovechar al


máximo el tamaño del Volumen Lógico:

# resize2fs /dev/test/lv01

92
Capítulo 2. LVM

resize2fs 1.19 (13-Jul-2000)

The filesystem on /dev/test/lv01 is now 512000 blocks long.

Montamos otra vez el sistema de archivos y observamos su tamaño reducido:

# mount /dev/test/lv01 /mnt/lvm/

# df -h /dev/test/lv01

Filesystem Size Used Avail Use% Mounted on

/dev/test/lv01 484M 13k 469M 0% /mnt/lvm

Obtenemos un valor un poco distinto de los 500MB originales, por el hecho que
500 mil bloques no corresponden exactamente a 500MB. Si fuera necesario tener
un valor exacto, tendríamos que hacer el cálculo con más precisión y especificar
los valores precisos en número de bloques.

Redundancia y rendimiento

Por una cuestión de rendimiento, es posible distribuir datos en discos múltiples.


Esto significa que el bloque 1 está en el Volumen Físico A, y el bloque 2 está en
el PV B, mientras que el bloque 3 puede estar en el PV A nuevamente. Podemos

93
Capítulo 2. LVM

también hacer stripes con más de dos discos.


Esa agrupación deja disponible un ancho de banda más amplio, debido al au-
mento de "paralelismo" en el acceso a los datos.
Además de agregar rendimiento, es también posible tener los datos copiados en
discos múltiples. Esto se llama copia en espejo. Actualmente el LVM no tiene
soporte nativo, pero hay varias maneras de realizar esta operación.

Ventajas de una stripe


El rendimiento de disco está influenciado por lo menos por tres factores. El más
obvio es la velocidad en que se puede leer o escribir en secuencia cada dato en el
disco. Éste es el factor que limita cuando se está leyendo o grabando un archivo
grande en un bus SCSI/IDE solamente con un disco.
Ancho de banda disponible para el disco. Si tenemos siete discos en una interfaz
SCSI, el límite de banda puede causar un impacto más grande que la velocidad
de escritura para el propio disco. Con un presupuesto suficiente, podemos pre-
venirnos y evitar que este estrechamiento se convierta en un problema.
La latencia es siempre un problema y para reducirla no podemos simplemente
aumentar los costos para lograr una latencia menor. La mayoría de los discos
aparentemente tienen una latencia cercana a los siete milisegundos. Existe la la-
tencia de SCSI, que tiende a ser algo próximo a los 25 milisegundos.
¿Qué significa esto? La latencia combinada en un caso típico será alrededor de 30
milisegundos. Podemos entonces efectuar, aproximadamente, solamente 33 ope-

94
Capítulo 2. LVM

raciones en disco por segundo. Si queremos capacidad para hacer varias centenas
de solicitudes por segundo, y no tenemos un cache muy grande, no podremos
realizar esta tarea.
Si tenemos discos múltiples trabajando en paralelo, podemos tener comandos
múltiples en ejecución simultánea, que fácilmente solucionarán el problema de
la latencia. Algunas aplicaciones, como un servidor de noticias muy grande, no
van a funcionar sin striping u otras técnicas ágiles de ES8.
Es esto lo que puede hacer el striping. Si el bus tiene este soporte, cada lectura o
cada escritura en secuencia podrá ser más rápida.

Desventajas
El striping sin medidas adicionales aumenta las posibilidades de fallas, desde el
punto de vista de los bits. Si falla algo en los discos, todo el Volumen Lógico
fallará también. Si concatenamos datos, sólo una parte del sistema de archivos se
perderá.
En último caso, podemos utilizar copias en espejo con stripes.

8. IO

95
Capítulo 2. LVM

Striping nativo del LVM


La configuración que especifica las stripes se hace cuando creamos el Volumen
Lógico con el comando lvcreate. Hay dos parámetros que se destacan. Con el -i
le decimos al LVM cuántos Volúmenes Físicos se usarán. En realidad el striping
no se hace en una base bit-a-bit, sino en bloques. Con -I podemos especificar la
"granulosidad" en kilobytes. Note que este valor debe ser una potencia de 2 (con
exponente de 1 a 7) y que el mayor valor de granulosidad posible es 128KB. Por
ejemplo:

# lvcreate -n slv01 -i 2 -I 64 test -L 200M

lvcreate - doing automatic backup of "test"

lvcreate - logical volume "/dev/test/slv01" successfully created

Creando el sistema de archivos:

# mke2fs /dev/test/slv01

mke2fs 1.19, 13-Jul-2000 for EXT2 FS 0.5b, 95/08/09

Filesystem label=

OS type: Linux

Block size=1024 (log=0)

Fragment size=1024 (log=0)

51200 inodes, 204800 blocks

10240 blocks (5.00%) reserved for the super user

First data block=1

96
Capítulo 2. LVM

25 block groups

8192 blocks per group, 8192 fragments per group

2048 inodes per group

Superblock backups stored on blocks:

8193, 24577, 40961, 57345, 73729

Writing inode tables: done

Writing superblocks and filesystem accounting information: done

Efectuamos el montaje y verificamos el tamaño:

# mount /dev/test/slv01 /mnt/lvm/

# df -h /dev/test/slv01

Filesystem Size Used Avail Use% Mounted on

/dev/test/slv01 194M 13k 184M 0% /mnt/lvm

Noticias de rendimiento

La ganancia de rendimiento podrá ser muy negativa si colocamos


más de una partición del mismo disco en una stripe - esto debe evi-
tarse. El striping con dos discos en una única interfaz IDE también se
hace inviable - eso dependerá de si la tecnología IDE resuelve este
problema.

97
Capítulo 2. LVM

Placas madre antiguas pueden tener dos interfaces IDE, pero el uso
de la segunda puede ser catastrófico, si se dedica a servir una unidad
de CDROM lenta. Podemos efectuar benchmarks con varias herra-
mientas; la más notable se llama Bonnie++, y puede encontrarse
en (http://www.coker.com.au/bonnie++/), se puede usar para medir
la eficiencia de los datos.

98
Capítulo 3. RAID
RAID es el acrónimo para Redundant Array of Inexpensive Disks1. Esta agru-
pación se usa como un medio para crear un subsistema de unidad de disco, rápido
y confiable, a través de discos individuales.
A pesar de haber sido creado para mejorar la fiabilidad del sistema, mediante
redundancia añadida, puede también llevar a una falsa sensación de seguridad y
confianza si se usa incorrectamente. Esta falsa confianza puede originar grandes
desastres. Particularmente, se usa RAID para proteger fallas en el disco, no para
proteger fallas de energía o errores del operador.
Las fallas de energía, bugs en el desarrollo del núcleo o errores de administrado-
res y operadores pueden dañar los datos de una forma irrecuperable. RAID no
es un sustituto apropiado como copia de seguridad del sistema. Sepa lo que
está haciendo, haga pruebas, sea conocedor y consciente de todos los detalles
presentes en la implementación de RAID.
RAID permite que el computador gane en rendimiento con operaciones de acceso
al disco y, al mismo tiempo, rápida recuperación en caso de pérdida de algún
disco. El tipo más común de agrupación de unidades es un sistema de disco duro,
configuradas para que el sistema operativo trabaje como si tan sólo hubiese un
disco instalado en el computador.

1. Agrupación redundante de discos independientes

99
Capítulo 3. RAID

RAID vía hardware y vía software

RAID se puede implementar vía hardware, por medio de controladoras especiales


de disco o por software, como un módulo del núcleo que está dividido entre la
controladora de disco, a bajo nivel, y el sistema de archivos por encima de él.

RAID vía hardware


RAID por hardware es siempre una controladora de disco, o sea, un disposi-
tivo que puede conectar mediante un cable, los discos. Generalmente viene en
forma de tarjeta adaptadora que se puede colocar en un slot ISA/EISA/PCI/S-
Bus/MicroChannel. Sin embargo, algunas controladoras RAID vienen en forma
de caja, que se conecta a través de un cable entre el sistema controlador de disco
y los dispositivos de disco.
RAIDs pequeños pueden ajustarse en los espacios para disco del propio com-
putador; otros mayores se pueden colocar en un gabinete de almacenamiento con
su propio espacio para disco y suministro de energía. El hardware más reciente
de RAID, usado con la más reciente y rápida CPU, suministrará generalmente el
mejor rendimiento total, aunque su precio es significativo. Esto sucede porque la
mayoría de las controladoras RAID vienen con procesadores especializados en la
tarjeta y memoria cache que puede eliminar una cantidad considerable de proce-
sos en la CPU. Las controladoras RAID pueden también suministrar altas tasas
de transferencia a través del cache de la controladora.

100
Capítulo 3. RAID

Un hardware de RAID antiguo puede actuar como un desacelerador, cuando se


usa con una CPU más nueva: DSP2 y caché antiguos pueden actuar como un
embudo, y este rendimiento puede ser frecuentemente superado por un RAID de
software puro.
El RAID por hardware generalmente no es compatible entre diferentes tipos, fa-
bricantes y modelos: si una controladora RAID falla, es mejor cambiarla por
otra controladora del mismo tipo. Para poder usar una controladora de RAID vía
hardware en Linux, ésta necesita contar con utilidades de configuración y admi-
nistración, hechos para este sistema operativo y proporcionados por el fabricante
de la controladora.

DPT

Es posible configurar RAID vía hardware SCSI, contando con soporte en Linux y
documentación de una forma general, a través de adaptadores basados en host de
la DPT. La información para la instalación y configuración se puede obtener en
el sitio web DPT-RAID (http://www.ram.org/computing/linux/dpt_raid.html).

Controladoras soportadas

Una controladora de RAID vía hardware basada en host y bien soportada es, una
controladora con un driver para Linux, fabricada por DPT (http://www.dpt.com).
2. Digital Signal Processor

101
Capítulo 3. RAID

Sin embargo, existen otras controladoras basadas en host y SCSI que pueden
funcionar en Linux. Esto incluye algunas controladoras fabricadas por Syred
(http://www.syred.com), ICP-Vortex ICP-Vortex (http://www.icp-vortex.com) y
BusLogic (http://www.mylex.com). Para más información sobre este tema, vea
la página web Soluciones de RAID para Linux (http://linas.org/linux/raid.html).

Controladoras DPT

Entre las controladoras DPT, esencialmente, todas las controladoras SmartRAID


IV están soportadas.

Controladoras ICP Vortex

ICP Vortex tiene una línea completa de controladoras de agrupaciones de discos


con soporte a Linux. El driver ICP está en el núcleo de Linux desde la versión
2.0.31. Todas las distribuciones principales de Linux tienen soporte a las con-
troladoras ICP, como controladoras para boot e instalación. El sistema RAID se
puede configurar fácilmente con su propio ROMSETUP, o sea, no es necesario
utilizar otros sistemas operativos para hacer la configuración.
Con la utilidad de control GDTMON, es posible administrar por completo el
sistema RAID ICP durante la operación. Es posible también verificar tasas de
transferencia, configurar los parámetros de la controladora y de los discos duros,
sustituir discos defectuosos, etc. Actualmente están disponibles varios modelos,
para los más variados niveles de RAID que se utilicen.

102
Capítulo 3. RAID

Tipos de hardware

Tipo controladora

Al tener varias opciones de controladoras, es necesario pensar cuidadosamente


sobre lo que se quiere hacer. Dependiendo de ello y del nivel de RAID que se
vaya a usar, algunas controladoras pueden ser mejores que otras. Adaptadores
SCSI a SCSI pueden no ser tan buenos como adaptadores basados en host, por
ejemplo. Michael Neuffer <neuffer@kralle.zdv.uni-mainz.de>, el autor del driver
EATA-DMA, tiene una buena discusión sobre este tema en su página: Linux
High Performance SCSI and RAID (http://www.uni-mainz.de/~neuffer/scsi/).

Tipo encapsulado

El tipo encapsulado está vinculado directamente a la habilidad de intercambio


“sobre la marcha” de la unidad y a los sistemas de advertencia, o sea, muestra
la indicación de la falla, falla de la unidad y qué tipo de tratamiento recibirá su
unidad. Un ejemplo para esto puede ser la refrigeración redundante y el abasteci-
miento de energía. Los encapsulamientos suministrados por la DPT, HP, IBM y
Compaq trabajan muy bien, aunque su costo es muy alto.

103
Capítulo 3. RAID

RAID vía software


RAID vía software es una configuración de módulos del núcleo, juntamente con
utilidades de administración que implementan RAID puramente por software, y
no requiere un hardware extraordinario. Se puede utilizar el sistema de archivos
ext2fs, DOS-FAT u otro.
Este tipo de RAID se implementa a través de los módulos MD3 del núcleo de
Linux y de las herramientas relacionadas.
RAID por software, por tener su naturaleza en el software, tiende a ser mucho
más flexible que una solución por hardware. El lado negativo es que en gene-
ral requiere más ciclos y potencia de CPU para funcionar bien, cuando se com-
para a un sistema de hardware. Presenta una importante característica: trabaja so-
bre cualquier dispositivo del bloque, pudiendo ser un disco entero (por ejemplo,
/dev/sda), una partición cualquiera (por ejemplo, /dev/hdb1), un dispositivo de
loopback (por ejemplo, /dev/loop0) o cualquier otro dispositivo de bloque com-
patible, para crear un único dispositivo RAID. Esto es un contraste para la mayo-
ría de las soluciones de RAID vía hardware, donde cada grupo agrupa unidades
de disco enteras.
Comparando las dos soluciones, el RAID vía hardware es transparente para el
sistema operativo, y esto tiende a simplificar la administración. Vía software, hay
muchas más opciones de configuración, haciendo con que el asunto se vuelva
más complejo.

3. Multiple Devices

104
Capítulo 3. RAID

El controlador de múltiples dispositivos (MD)

Se usa el controlador MD para agrupar una colección de dispositivos de bloque,


en un único y gran dispositivo de bloque. Normalmente, un conjunto de disposi-
tivos SCSI y IDE se configuran en un único dispositivo MD. Como se encuentra
en el núcleo de Linux 2.x, esto se hace a través de dos modos diferentes: Lineal
(modo de concatenación) y striping (modo RAID-0).
Las extensiones del controlador MD implementan RAID-0 (striping), RAID-1
(replicando4), RAID-4 y RAID-5 por software. Esto quiere decir que, con MD, no
es necesario hardware especial o controladoras de disco para obtener la mayoría
de los beneficios de RAID.

La administración de RAID en Linux no es una tarea trivial, y está más volcada hacia
administradores de sistema con experiencia. La teoría de la operación es compleja.
Las herramientas del sistema exigen modificaciones en los scripts de arranque, y
recuperarse de una falla en el disco no es una tarea simple, pues es factible de
errores humanos. RAID no es para inexpertos, y cualquier ventaja en búsqueda de
confiabilidad y rendimiento puede ser fácilmente acrecida de complejidad extra.

Seguramente, unidades de disco actualizadas son muy confiables, y controladoras y


CPUs avanzadas son muy potentes. Se pueden obtener más fácilmente los niveles
de confiabilidad y rendimiento deseados, comprando hardware de alta calidad y
potencia.

4. mirroring

105
Capítulo 3. RAID

Imposible usar RAID vía software con sistema de archivos journalled, pues Linux
2.2 no posee ningún mecanismo para pinning de buffers que están en la memoria.

Niveles de RAID
Las distintas maneras de combinar los discos en uno sólo, llamados de niveles de
RAID5, pueden suministrar una gran eficacia de almacenamiento o sencillamente
simetría, o pueden alterar el rendimiento de tiempo de acceso (latencia). Incluso
pueden suministrar el rendimiento de la tasa de transferencia de datos para lectura
y para escritura, mientras continúa manteniendo la redundancia. Un vez más, esto
es ideal para prevenir fallas.
Los distintos niveles de RAID presentan distintos rendimientos, redundancia, ca-
pacidad de almacenamiento, confiabilidad y características de costo. La mayoría,
aunque no todos los niveles de RAID, ofrecen redundancia a falla de disco. De
los que ofrecen redundancia, RAID-1 y RAID-5 son los más populares. RAID-1
ofrece mejor rendimiento, mientras que RAID-5 proporciona un uso más eficaz

5. RAID levels

106
Capítulo 3. RAID

del espacio disponible para el almacenamiento de los datos.


De cualquier modo, el ajuste de rendimiento es un asunto totalmente distinto. El
rendimiento depende de una gran variedad de factores como el tipo de aplicación,
tamaños de los discos, bloques y archivos.
Existe una variedad de tipos diferentes e implementaciones de RAID, cada una
con sus ventajas y desventajas. Por ejemplo, para poner una copia de los mismos
datos en dos discos (llamado de duplicación de disco6 o RAID nivel 1), podemos
agregar rendimiento de lectura, leyendo alternadamente cada disco de la réplica.
Promedialmente, cada disco se usa menos, pues se utiliza solamente en la mitad
de la lectura (para dos discos), o un tercio (para 3 discos), etc.. Además, una
réplica puede mejorar la confiabilidad: si un disco falla, el(los) otro(s) disco(s)
tienen una copia de datos.
A continuación se describen los distintos niveles de RAID, en el contexto de
implementación de RAID por software en Linux:

RAID-lineal
Es una simple concatenación de particiones para crear una gran partición virtual.
Esto es posible si hay varias unidades pequeñas, y se quiere crear una única y
gran partición. Esta concatenación no ofrece redundancia, y de hecho disminuye
la confiabilidad total: si cualquier disco falla, la partición combinada fallará.
6. disk mirroring

107
Capítulo 3. RAID

RAID-0
La gran mayoría de los niveles de RAID involucra una técnica de almacenamiento
llamada de segmentación de datos (data stripping). La implantación más básica
de esa técnica se conoce como RAID-0 y es soportada por muchos fabricantes.
Sin embargo, por el hecho que este nivel de agrupación no es tolerante a fallas,
RAID-O no es verdaderamente RAID, al menos que se use en conjunto con otros
niveles de RAID.

Figura 3-1. RAID-0

Segmentación (stripping) es un método de registro de datos sobre el medio físico


de una agrupación, que sirve para crear un gran dispositivo de almacenamiento.
Los datos son subdivididos en segmentos consecutivos o stripes, escritos en orden
o a través de cada uno de los discos de una agrupación. Cada segmento tiene un
tamaño definido en bloques.

108
Capítulo 3. RAID

Por ejemplo, sabiendo que el tamaño de cada segmento está definido en 64 kbytes,
y la agrupación de discos contiene 2 discos, cuando se graba un archivo de 128
kbytes, los primeros 64 kbytes se grabarán en el primer disco, los últimos 64
kbytes irán para el segundo disco, y como normalmente eso se hace en paralelo,
aumenta considerablemente el rendimiento.
Una agrupación de ese tipo puede brindar un rendimiento mejor, cuando se com-
para a un disco individual, si se ajusta el tamaño de cada segmento de acuerdo
con la aplicación que utilizará la agrupación:

• En un ambiente con uso intensivo de E/S o en un ambiente de base de datos donde


múltiples solicitudes competentes son hechas para pequeños registros de datos, tiene
preferencia un segmento de tamaño grande. Si el tamaño de segmento para un disco es
grande o suficiente para contener un registro entero, los discos de la agrupación pueden
responder independientemente a las solicitudes simultáneas de datos.

• En un ambiente donde se almacenan grandes registros de datos, segmentos de pequeño


tamaño son más apropiados. Si un determinado registro de datos se extiende a través de
varios discos de la agrupación, se puede leer el contenido del registro paralelamente,
aumentando el rendimiento total del sistema.

109
Capítulo 3. RAID

Figura 3-2. Stripping

Agrupaciones RAID-0 pueden ofrecer alto rendimiento de escritura si se les com-


para a verdaderos niveles de RAID pues no presentan sobrecarga7 asociada con
cálculos de paridad o con técnicas de recuperación de datos. Esta misma falta
de previsión para reconstrucción de datos perdidos indica que ese tipo de agru-
pación debe ser restricto al almacenamiento de datos no críticos y combinado con
eficientes programas que hacen copia de seguridad.

7. overhead

110
Capítulo 3. RAID

RAID-1
La forma más sencilla de agrupación tolerante a fallas es el RAID-1. Basado en el
concepto de duplicación (mirroring), esta agrupación consiste en varios grupos de
datos almacenados en 2 ó más dispositivos. A pesar de que muchas implementa-
ciones de RAID-1 involucran dos grupos de datos (de ahí el término réplica -
mirror), se pueden crear tres o más grupos si se desea una alta confiabilidad.
Si ocurre una falla en un disco de una agrupación RAID-1, lecturas y grabaciones
subsecuentes son direccionadas a el(los) disco(s) aún en operación. Los datos
entonces son reconstruidos en un disco de reposición (spare disk) usando datos
del (de los) disco(s) supervivientes. El proceso de reconstrucción de la réplica
tiene algún impacto sobre el rendimiento de E/S de la réplica, pues todos los
datos deberán ser leídos y copiados del (de los) disco(s) intacto(s) para el disco
de reposición (spare disk).

Figura 3-3. RAID-1

111
Capítulo 3. RAID

RAID-1 ofrece alta disponibilidad de datos, porque como mínimo se almacenan


2 grupos completos. Conectando los discos primarios y los discos duplicados en
controladoras separadas, se puede aumentar la tolerancia a fallas por la elimi-
nación de la controladora como punto único de falla.
Entre los no híbridos, este nivel tiene el mayor costo de almacenamiento porque
requiere capacidad suficiente para almacenar como mínimo 2 grupos de datos.
Éste está mejor adaptado para servir pequeñas bases de datos o sistemas de pe-
queña escala que necesiten confiabilidad.

RAID-2 y RAID-3
Raramente se usan, y en algún momento quedaron obsoletos por las nuevas tec-
nologías de disco. RAID-2 es similar al RAID-4, pero almacena información
ECC (error correcting code), que es la información de control de errores, en lu-
gar de la paridad. Esto ofreció una pequeña protección adicional, visto que todas
las unidades de disco más nuevas incorporaron ECC internamente.

112
Capítulo 3. RAID

Figura 3-4. RAID-2

RAID-2 puede ofrecer más consistencia de los datos si ocurre un corte de energía
durante la escritura. Baterías de seguridad y apagar correctamente el computador,
pueden ofrecer los mismos beneficios. RAID-3 es semejante al RAID-4, excepto
que usa el menor tamaño posible para la stripe. Como resultado, cualquier pedido
de lectura invocará todos los discos, haciendo las solicitudes de sobreposición de
E/S difíciles o imposibles.
Para evitar el retraso debido a la latencia rotatoria, el RAID-3 exige que todos
los ejes de las unidades de disco estén sincronizados. La mayoría de las unidades
de disco más recientes no poseen la habilidad de sincronización del eje, o si
son capaces de esto, faltan conectores necesarios, cables y documentación del
fabricante. Ni RAID-2 ni RAID-3 son soportados por los drivers de RAID por
software en Linux.

113
Capítulo 3. RAID

Figura 3-5. RAID-3

RAID-4
Éste es un tipo de agrupación segmentado, pero incorpora un método de pro-
tección de datos más práctico. Él usa informaciones sobre paridad para la recu-
peración de datos y los almacena en disco dedicado. Los demás discos, usados
para datos, se configuran para usar grandes (tamaño medido en bloques) segmen-
tos de datos, suficientemente grandes para alojar un registro entero. Esto permite
lecturas independientes de la información almacenada, haciendo de RAID-4 una
agrupación perfectamente ajustada para ambientes transaccionales que requieren
muchas lecturas pequeñas y simultáneas.

114
Capítulo 3. RAID

Agrupaciones RAID-4 y otras agrupaciones que utilizan paridad hacen uso de


un proceso de recuperación de datos más amplia que agrupaciones duplicadas,
como RAID-1. La función o exclusivo (XOR) de los datos e informaciones sobre
paridad de los discos restantes se computa para reconstruir los datos del disco que
falló. Por el hecho de que todos los datos sobre paridad se escriban en un único
disco, ese disco funciona como un embudo durante las operaciones de escritura,
reduciendo el rendimiento durante estas operaciones (write bottleneck).

Figura 3-6. RAID-4

Siempre que se escriben los datos en la agrupación, normalmente se lee informa-


ción sobre paridad y ella siempre se debe escribir para el disco de paridad antes
de realizar la próxima solicitud de escritura. En consecuencia de estas dos ope-
raciones de E/S, el disco de paridad es el factor limitativo del rendimiento total
de la agrupación. Por requerir solamente un disco adicional para protección de

115
Capítulo 3. RAID

datos, las agrupaciones RAID-4 son más baratas que las agrupaciones RAID-1.

RAID-5
Este tipo de RAID es muy usado, funciona en forma similar al RAID 4, pero
supera algunos de los problemas más comunes sufridos por dicho tipo. La infor-
mación sobre paridad para los datos de la agrupación son distribuidas a lo largo de
todos los discos de la agrupación, en lugar de almacenarlas en un disco dedicado.
Esa idea de paridad distribuida reduce el embudo de escritura (write bottleneck)
que era el único disco de un RAID-4, porque ahora las escrituras simultáneas ni
siempre requieren acceso a la información sobre paridad en un disco dedicado.
Sin embargo, el rendimiento de la escritura general aún sufre en consecuencia
del procesamiento adicional causado por la lectura, recálculo y actualización de
la información sobre paridad.

116
Capítulo 3. RAID

Figura 3-7. RAID-5

Para aumentar el rendimiento de lectura de una agrupación RAID-5, se puede


optimizar el tamaño de cada segmento en que los datos están divididos para la
aplicación que esté usando la agrupación. El rendimiento general de una agru-
pación RAID-5 es equivalente al de una RAID-4, excepto en el caso de lecturas
secuenciales, que reducen la eficacia de los algoritmos de lectura en consecuencia
de la distribución de la información sobre paridad.
Como en otras agrupaciones basadas en paridad, la recuperación de datos en una
agrupación RAID-5 se hace calculando la función XOR de las informaciones de
los discos restantes de la agrupación. En razón de que la información sobre pari-
dad se distribuye a lo largo de todos los discos, la pérdida de cualquier disco re-
duce la disponibilidad de ambos datos e información sobre paridad, hasta la recu-
peración del disco que ha fallado. Esto puede causar degradación del rendimiento

117
Capítulo 3. RAID

de lectura y de escritura.

Tipos híbridos
Para suplir las deficiencias de un nivel u otro de RAID, es posible usar un nivel
de RAID sobre otro, aprovechando por ejemplo, el excelente rendimiento de un
determinado nivel y la confiabilidad de otro. Todo esto, obviamente, pagándose
el precio de una mayor cantidad de material.
Un ejemplo es el RAID-10. Como ya dice su nombre, es la combinación de discos
duplicados (RAID-1) con la segmentación de datos (data stripping) (RAID-0).
El método de creación de una agrupación RAID-10 es diversificado. En una im-
plementación RAID-0+1, los datos son segmentados a través de grupos de discos
duplicados, o sea, los datos primero son segmentados y para cada segmento se
hace una réplica. Ya en un RAID-1+0, los datos son primeramente duplicados, y
para cada réplica existe una segmentación sobre varios discos.
RAID-10 ofrece las ventajas de la transferencia de datos rápida de una agrupación
duplicada, y las características de accesibilidad de las agrupaciones duplicadas.
El rendimiento del sistema durante la reconstrucción de un disco es mejor que en
las agrupaciones basadas en paridad, pues los datos son solamente copiados del
dispositivo superviviente.
RAID-50 es una agrupación híbrida que usa las técnicas de RAID con paridad
en conjunción con la segmentación de datos. Una agrupación RAID-50, es esen-

118
Capítulo 3. RAID

cialmente una agrupación con la información segmentada a través de dos o más


agrupaciones RAID-5.
Dependiendo del tamaño de cada segmento establecido durante la configuración
de la agrupación, estas agrupaciones híbridas pueden brindar los beneficios de
acceso paralelo de las agrupaciones con paridad (alta velocidad en la transferen-
cia de datos) o de acceso independiente de las agrupaciones con paridad (gran
cantidad). Como en otras agrupaciones RAID con paridad, la reconstrucción de
un disco fallado genera un impacto en el rendimiento del programa usando la
agrupación.

Rendimiento de RAID
Utilizando RAID por software (MD), la posibilidad de aumentar la velocidad
y evaluar el rendimiento depende mucho de la configuración que se está usando.
Para ello, en esta sección, se hace un análisis de algunas de estas configuraciones.

Rendimiento en el MD RAID-0 y en el MD
RAID-lineal

119
Capítulo 3. RAID

Si se carga el sistema con muchas operaciones de E/S (entrada y salida), es-


tadísticamente, algunas operaciones van para un disco, y algunas para los demás
discos. Así, el rendimiento va a mejorar en un único disco grande. La mejora real
depende mucho de los datos reales, del tamaño de las bandas, y de otros factores.
En un sistema con una baja utilización de E/S, el rendimiento es igual al de un
único disco.

Rendimiento de lectura en el MD RAID-1

El MD implementa balanceo de lectura, es decir, el código RAID-1 va a alternar


entre cada uno (dos o más) de los discos en la réplica, haciendo lecturas alternadas
para cada uno. En una situación de baja E/S, esto no podrá alterar el rendimiento
total: será necesario esperar por un disco para completar la lectura. Sin embargo,
con dos discos en un ambiente de alta E/S, esto podría aumentar dos veces el
rendimiento de lectura, desde que se puedan emitir las lecturas para cada uno de
los discos en paralelo. Para N discos en la réplica, la mejoría del rendimiento
puede ser de 2N.

120
Capítulo 3. RAID

Rendimiento de escritura en el MD RAID-1

Es recomendable esperar que ocurra la escritura para todos los discos en la ré-
plica. Esto porque se debe escribir una copia de los datos para cada uno de los
discos de réplica. Así, el rendimiento será aproximadamente igual al rendimiento
de escritura para un único disco.

Rendimiento de lectura en el MD RAID-4/5

Estadísticamente, un bloque puede estar en cualquier unidad de disco, y así el


rendimiento de lectura del RAID-4/5 es semejante con el del RAID-0. Esto va
a depender de los datos, del tamaño de la banda y de la aplicación. No será tan
bueno como el rendimiento de lectura de una agrupación duplicada.

Rendimiento de escritura en el MD RAID-4/5

En general será considerablemente más lento que el rendimiento para un único

121
Capítulo 3. RAID

disco. Esto porque se debe escribir la paridad en un disco, así como los datos en
otro. Sin embargo, para procesar la nueva paridad, es necesario leer primeramente
la paridad y los datos antiguos. Se deben comparar todos los datos antiguos, los
nuevos datos y la paridad antigua al mismo tiempo, a través de la operación lógica
XOR, para determinar la nueva paridad: esto requiere considerables ciclos de
CPU además de los numerosos accesos al disco.

Comparación de los niveles de RAID

Podemos hacer una comparación entre los varios niveles de RAID, de acuerdo
con el rendimiento (lectura, grabación y reconstrucción), disponibilidad de datos
y el número mínimo de unidades requeridas. Observe en la tabla la descripción
de estos atributos para comparar los niveles de RAID.

Tabla 3-1. Atributos de comparación de los varios niveles de RAID

Nivel de Disponibili- Rendimiento Rendimiento Rendimiento Número


RAID dad de los de lectura de grabación de recons- mínimo de
datos trucción unidades
requeridas
RAID 0 Ninguna Muy bueno Muy bueno No N
disponible

122
Capítulo 3. RAID

RAID 1 Excelente Muy bueno Bueno Bueno 2N


RAID 4 Buena E/S E/S Satisfactoria N + 1 (N
secuencial: secuencial: como
buena E/S muy buena mínimo 2)
transac- E/S transac-
cional: buena cional: mala

RAID 5 Buena E/S Satisfactoria Mala N + 1 (N por


secuencial: (a menos que lo menos 2)
buena E/S se use el
transac- cache
cional: muy write-back)
buena
RAID 10 Excelente Muy buena Satisfactoria Buena 2N

RAID 50 Excelente Muy buena Satisfactoria Satisfactoria N+2

El número N es el requisito de espacio para almacenamiento de datos del nivel de


RAID. Ejemplo: si el requisito mínimo es tener 6GB de espacio para una agrupación
RAID-5, se debe entonces tener al menos 2 discos de 3GB cada uno y otro disco
de 3GB, siendo 6GB (2 discos) + 3GB (1 disco).

123
Capítulo 3. RAID

Configuración de RAID
Antes de configurar cualquier nivel de RAID, siga estos procedimientos:

• Instale las herramientas para RAID:

# rpm -ivh raidtools*

raidtools ############################## #

• Observe el contenido del archivo /proc/mdstat:

# cat /proc/mdstat

Personalities : read_ahead not set

unused devices: <none> #

Este archivo se verificará siempre para inspeccionar la configuración de RAID.


Observe que ningún dispositivo de RAID está actualmente activo.

• Cree las particiones que desea incluir en la configuración de RAID, por ejemplo:

# fdisk /dev/hda

Comando (teclee m para obtener ayuda): n

124
Capítulo 3. RAID

• El próximo paso dependerá del nivel de RAID que se eligió; veremos a continuación
cada una de estas configuraciones.

Modo lineal
Si hay dos o más particiones que no son necesariamente del mismo tamaño. Se
podrá concatenar una con la otra.
Cree el archivo /etc/raidtab para describir su configuración. Una raidtab para
dos discos en modo lineal, tendrá una apariencia semejante a ésta:

raiddev /dev/md0

raid-level lineal

nr-raid-disks 2

chunk-size 32

persistent-superblock 1

device /dev/hda6

raid-disk 0

device /dev/hda7

raid-disk 1

125
Capítulo 3. RAID

En los ejemplos utilizaremos dos o tres particiones de aproximadamente 1GB,


siendo ellas hda5, hda6 y hda7, dependiendo de la configuración de RAID. No
se soportan discos de reserva aquí. Si un disco falla, la agrupación va a fallar
juntamente con él. No hay información que pueda ponerse en un disco de reserva.
Para crear la agrupación ejecute el comando:

# mkraid /dev/md0

handling MD device /dev/md0

analyzing super-block

disk 0: /dev/hda6, 1028128kB, raid superblock at 1028032kB

disk 1: /dev/hda7, 1028128kB, raid superblock at 1028032kB #

Esto va a iniciar la agrupación, escribir los bloques persistentes y dejar lista para
el uso. Verificando el archivo /proc/mdstat será posible ver que la agrupación está
funcionando:

# cat /proc/mdstat

Personalities : [linear]

read_ahead 1024 sectors

md0 : active linear hda7[1] hda6[0] 2056064 blocks 32k rounding

unused devices: <none>

Ahora ya es posible crear un sistema de archivos, como si fuera en un dispositivo

126
Capítulo 3. RAID

normal:

# mke2fs /dev/md0

mke2fs 1.18, 11-Nov-1999 for EXT2 FS 0.5b, 95/08/09

Filesystem label=

OS type: Linux

Block size=4096 (log=2)

Fragment size=4096 (log=2)

257024 inodes, 514016 blocks

25700 blocks (5.00%) reserved for the super user

First data block=0

16 block groups

32768 blocks per group, 32768 fragments per group

16064 inodes per group

Superblock backups stored on blocks:

32768, 98304, 163840, 229376, 294912

Writing inode tables: done

Writing superblocks and filesystem accounting information: done

Crear un punto de montaje y montar el dispositivo:

# mkdir /mnt/md0

127
Capítulo 3. RAID

# mount /dev/md0 /mnt/md0

# df

Filesystem 1k-blocks Used Available Use% Mounted on

/dev/md0 2023760 20 1920940 0% /mnt/md0 #

Observe que el tamaño total es de aproximadamente 2GB, por haber hecho una
concatenación de dos unidades, cada una con aproximadamente 1GB.

RAID-0
Teniendo dos o más dispositivos aproximadamente del mismo tamaño, es posible
combinar sus capacidades de almacenamiento, así como su rendimiento, a través
del acceso en paralelo.
Modifique o cree el archivo /etc/raidtab para describir su configuración. Observe
el ejemplo:

raiddev /dev/md0

raid-level 0

nr-raid-disks 2

persistent-superblock 1

chunk-size 4

device /dev/hda6

128
Capítulo 3. RAID

raid-disk 0

device /dev/hda7

raid-disk 1

Como en el modo lineal no hay soporte para discos reservas. RAID-0 no ofrece
redundancia: si un disco falla todo el conjunto va a fallar.
Si ya existe un dispositivo de RAID, ejecute el comando para interrumpirlo y
forzar la construcción. Cree el dispositivo de RAID a través de los comandos:

# raidstop /dev/md0

# mkraid -force /dev/md0

DESTROYING the contents of /dev/md0 in 5 seconds, Ctrl-C if unsure!

handling MD device /dev/md0

analyzing super-block

disk 0: /dev/hda6, 1028128kB, raid superblock at 1028032kB

disk 1: /dev/hda7, 1028128kB, raid superblock at 1028032kB

Esto iniciará los superbloques y el dispositivo raid. Observando el archivo /proc/mdstat


tenemos:

# cat /proc/mdstat

Personalities : [raid0]

read_ahead 1024 sectors

129
Capítulo 3. RAID

md0 : active raid0 hda7[1] hda6[0] 2056064 blocks 4k chunks

unused devices: <none>

Ahora el dispositivo /dev/md0 ya está listo. Se puede crear un sistema de archivos


que será montado para uso.

RAID-1
Con dos dispositivos aproximadamente del mismo tamaño, es posible hacer con
que uno sea réplica del otro. Si existen más dispositivos, estos podrán usarse
como un sistema de discos extras; esto se hará automáticamente por una parte de
la réplica si uno de los dispositivos operantes presenta fallas.
Para esto, configure el archivo /etc/raidtab de la siguiente manera:

raiddev /dev/md0

raid-level 1

nr-raid-disks 2

nr-spare-disks 0

chunk-size 4

persistent-superblock 1

device /dev/hda6

130
Capítulo 3. RAID

raid-disk 0

device /dev/hda7

raid-disk 1

Si se usan discos extras, añada al final de la especificación del dispositivo lo


siguiente:

device /dev/hdb1

spare-disk 0

Donde /dev/hdb1 es un disco extra. Configure el número de entrada de los discos


extras, siempre en forma proporcional.
Con todo listo para iniciar el RAID, se podrá construir la réplica. Entonces, los
índices (no en el caso de dispositivos sin formato) de los dos dispositivos se
sincronizarán. Ejecute:

# mkraid /dev/md0

En este momento vea el comando que hará la iniciación de la réplica. Observe


ahora el archivo /proc/mdstat; le va a mostrar que el dispositivo /dev/md0se ini-
ció, que se empezó a construir la réplica, y cuánto falta para que se complete la
reconstrucción:

# cat /proc/mdstat

Personalities : [raid1]

131
Capítulo 3. RAID

read_ahead 1024 sectors

md0 : active raid1 hda7[1] hda6[0] 1028032 blocks [2/2]

[UU] resync=63% finish=2.5min

unused devices: <none> #

El proceso de reconstrucción es transparente: se podrán usar normalmente los


dispositivos durante la ejecución de este proceso. Es posible incluso darle formato
al dispositivo mientras se está ejecutando la reconstrucción. También se podrán
montar y desmontar las unidades en este período (solamente si un disco falla esta
acción será perjudicada).
Ahora ya es posible montar y visualizar el tamaño del dispositivo final:

# mount /dev/md0 /mnt/md0

# df

Filesystem 1k-blocks Used Available Use% Mounted on

/dev/md0 1011928 20 960504 0% /mnt/md0

Observe que el tamaño del dispositivo corresponde al tamaño de un único dispo-


sitivo, por tratarse de una réplica de discos.

132
Capítulo 3. RAID

RAID-4
Con tres o más dispositivos aproximadamente del mismo tamaño, siendo uno
de ellos significativamente más rápido que los demás, es posible combinarlos en
un único dispositivo grande, manteniendo aún la información de redundancia.
Eventualmente se podrán poner algunos dispositivos para que sean usados como
discos extras.
Un ejemplo de configuración para el archivo /etc/raidtab:

raiddev /dev/md0

raid-level 4

nr-raid-disks 3

nr-spare-disks 0

persistent-superblock 1

chunk-size 32

device dev/hda5

raid-disk 0

device /dev/hda6

raid-disk 1

device /dev/hda7

raid-disk 2

En el caso de haber discos extras, será necesario configurar de la misma manera,


siguiendo las especificaciones del disco raid. Vea el ejemplo:

133
Capítulo 3. RAID

device /dev/hdb1

spare-disk 0

Se crea el disco extra de forma similar en todos los niveles de RAID. Inicialice el
RAID-4 con el comando:

# mkraid /dev/md0

handling MD device /dev/md0

analyzing super-block

disk 0: /dev/hda5, 1028128kB, raid superblock at 1028032kB

disk 1: /dev/hda6, 1028128kB, raid superblock at 1028032kB

disk 2: /dev/hda7, 1028128kB, raid superblock at 1028032kB #

Es posible acompañar la marcha de la construcción del RAID a través del archivo


/proc/mdstat:

# cat /proc/mdstat

Personalities : [raid5]

read_ahead 1024 sectors

md0 : active raid5 hda7[2] hda6[1] hda5[0] 2056064 blocks level 4,

32k chunk, algorithm 0 [3/3] [UUU] resync=59% finish=4.6min

unused devices: <none>

134
Capítulo 3. RAID

Para dar formato al RAID-4, use las siguientes opciones especiales (-R stride=8)
del mke2fs:

# mke2fs -b 4096 -R stride=8 /dev/md0

mke2fs 1.18, 11-Nov-1999 for EXT2 FS 0.5b, 95/08/09

Filesystem label=

OS type: Linux

Block size=4096 (log=2)

Fragment size=4096 (log=2)

257024 inodes, 514016 blocks

25700 blocks (5.00%) reserved for the super user

First data block=0

16 block groups 32768 blocks per group,

32768 fragments per group 16064 inodes per group

Superblock backups stored on blocks:

32768, 98304, 163840, 229376, 294912

Writing inode tables: done

Writing superblocks and filesystem accounting information: done #

Basta montar el RAID para uso. El tamaño total será de N-1, o sea, el tamaño
total de todos los dispositivos menos uno, reservado para la paridad:

# df

135
Capítulo 3. RAID

Filesystem 1k-blocks Used Available Use% Mounted on

/dev/md0 2023760 20 1920940 0% /mnt/md0 #

Perciba que el RAID-4 carga el MD del RAID-5, porque son de niveles similares
de RAID.

RAID-5
Similar al RAID-4, pero se implementa a través de tres o más dispositivos de
tamaño aproximado, combinados en un dispositivo mayor. Aún mantiene un grado
de redundancia para proteger los datos. Se pueden usar discos extras, tomando
parte de otros discos automáticamente en el caso de falla.
Si se está usando N dispositivos donde el menor tiene un tamaño S, el tamaño
total de la agrupación será (N-1)*S. Esta pérdida de espacio se utiliza para la
paridad (redundancia) de la información. Así, si algún disco falla, todos los datos
seguirán intactos. Sin embargo, si ocurren fallas en dos discos, todos los datos se
perderán.
Configure el archivo /etc/raidtab en forma similar a ésta:

raiddev /dev/md0

raid-level 5

nr-raid-disks 3

136
Capítulo 3. RAID

nr-spare-disks 0

persistent-superblock 1

parity-algorithm left-symmetric c

chunk-size 32

device /dev/hda5

raid-disk 0

device /dev/hda6

raid-disk 1

device /dev/hda7

raid-disk 2

Si hay algún disco extra, es posible insertarlo de una manera similar, siguiendo
las especificaciones de disco raid. Por ejemplo:

device /dev/hdb1

spare-disk 0

Un tamaño del pedazo (chunk size) de 32 KB es un valor normal para sistemas


de archivos con una finalidad genérica de este tamaño. La agrupación en la que
el raidtab anterior se usa es de (n-1)*s = (3-1)*2 = 2 GB de dispositivo. Esto
prevé un sistema de archivos ext2 con un bloque de 4 KB de tamaño. Se podrá
aumentar, juntamente con la agrupación, el tamaño del pedazo y el tamaño del
bloque del sistema de archivos si el sistema de archivos es mucho más grande, o
si se quieren usar archivos muy grandes.

137
Capítulo 3. RAID

Ejecute el comando mkraid para el dispositivo /dev/md0. Esto empezará la re-


construcción de la agrupación. Observe el archivo /proc/mdstat para poder hacer
un seguimiento del proceso:

# cat /proc/mdstat

Personalities : [raid5]

read_ahead 1024 sectors

md0 : active raid5 hda7[2] hda6[1] hda5[0] 2056064 blocks level 5,

32k chunk, algorithm 2 [3/3] [UUU] resync=29% finish=11.4min

unused devices: <none>

Si la creación del dispositivo tiene éxito, la reconstrucción se inicia. La agru-


pación no estará consistente hasta que haya sido completada la fase de reconstruc-
ción. Sin embargo, la agrupación es totalmente funcional (excepto para cambio de
dispositivos que fallan en el proceso); se puede dar formato y usar la agrupación
mientras ocurre la reconstrucción de éste.
Dele formato con el comando mke2fs -b 4096 -R stride=8 /dev/md0. Cuando
haya un dispositivo RAID ejecutando, es posible parar o reiniciar usando los
comandos: raidstop /dev/md0 ó raidstart /dev/md0.
Más información y detalles del proceso de creación de RAID en RAID Solutions
for Linux (http://linas.org/linux/raid.html).

138
Capítulo 3. RAID

Uso de RAID para obtener alta


disponibilidad

Alta disponibilidad es difícil y cara. Cuanto más arduamente se intenta hacer un


sistema tolerante a fallas, más éste pasa a ser dispendioso y difícil de implemen-
tar. Las siguientes sugerencias, consejos, ideas y suposiciones podrán ayudar con
respecto a este asunto:

• Los discos IDE pueden fallar de tal manera que el disco que ha fallado en un cable del
IDE pueda también impedir que un disco bueno, en el mismo cable, conteste, dando así
una impresión de que los dos discos fallaron. A pesar que RAID no ofrece protección
contra fallas en dos discos, se debe colocar sólo un disco en un cable IDE, o si hay dos
discos, deben pertenecer a configuraciones diferentes de RAID.

• Discos SCSI pueden fallar de tal manera que el disco que falle en una cadena puede
impedir el acceso a todos los demás dispositivos de la serie. El modo de falla afecta
la posición del cabezal de lectura de dispositivo común (compartido); a pesar de estar
compartido, ninguna arbitrariedad puede ocurrir hasta que la posición esté desconec-
tada. Así, dos discos SCSI en la misma cadena no deben pertenecer a la misma agru-
pación RAID.

• Observaciones semejantes son aplicadas a las controladoras de disco. No sobrecargue


los canales en una controladora; utilice controladoras múltiples.

• No utilice el mismo tipo o número de modelo para todos los discos. Es frecuente en

139
Capítulo 3. RAID

variaciones eléctricas bruscas perder dos o más discos, incluso con el uso de supresores
- que todavía no son perfectos. El calor y la ventilación pobre del compartimiento de
disco son otras causas de las pérdidas de disco. Discos baratos generalmente funcionan
calientes. Utilizar diferentes tipos de discos y controladoras disminuye la probabilidad
de dañar un disco (calor, choque físico, vibración, choque eléctrico).

• Para proteger contra fallas de controladora o de CPU, se puede compartir un disco


SCSI que tenga cables pareados, o sea, conectado a dos computadores. Un computador
va a montar el sistema de archivos para lectura y escritura, mientras el otro va a montar
el sistema de archivos solamente para lectura, y actuar como un computador reserva
activo. Cuando el computador reserva es capaz de determinar que el maestro falló
(por ejemplo, a través de un adaptador watchdog), cortará la energía del computador
maestro (para estar seguro de que éste está realmente apagado), y entonces hacer la
verificación con el fsck y remontar el sistema para lectura y escritura.

• Utilice siempre un no-break, y apague correctamente los computadores. Aunque apa-


gar incorrectamente el computador no pueda dañar los discos, ejecutar el ckraid en
cualquier agrupación pequeña es muy lento. Se debe evitar la ejecución del ckraid
siempre que sea posible, o puede colocar un hack en el núcleo y empezar la recons-
trucción del código verificando errores.

• Cables SCSI son conocidos por ser muy vulnerables a fallas, y pueden causar todo tipo
de problemas. Utilice el cableado de más alta calidad que se pueda encontrar. Utilice
por ejemplo el bubble-wrap para estar seguro de que los cables cinta no estarán muy
cerca uno del otro y del cross-talk. Observe rigurosamente las restricciones sobre la
longitud del cable.

• Vea en SSI (arquitectura de almacenamiento serie). Aunque sea muy caro, parece ser

140
Capítulo 3. RAID

menos vulnerable a los tipos de fallas que el SCSI presenta.

141
Capítulo 3. RAID

142
Capítulo 4. LDAP
En este capítulo se presentan informaciones sobre instalación, configuración, eje-
cución y administración de un servidor LDAP (Lightweight Directory Access
Protocol) en un computador con Linux. Aprenderá cómo recuperar información
de su Directorio, utilizando los clientes y utilidades de LDAP. Trataremos de
como migrar su base de usuarios para una base de datos LDAP, cuál información
será importada, de qué modo efectuar la autenticación y acceso remoto a través
de LDAP. Mostraremos también cómo usar el Libro de direcciones de Netscape
Communicator, envío de e-mails y la navegación a través de URLs, haciendo uso
de los recursos de LDAP.

La versión 2.0 de OpenLDAP está en el CD 2 de la distribución de Conectiva Linux.


Por no estar implementado totalmente y con la documentación aún incompleta, no
documentaremos esta versión. Apenas mostraremos las diferencias principales en-
tre la versión 1.0 (que trataremos en este capítulo) y la nueva versión 2.0. Consulte
más información en 1 OpenLDAP 2.0 Administrator’s Guide.

Introducción y conceptos
1. http://www.openldap.org/doc/admin/

143
Capítulo 4. LDAP

LDAP es un protocolo (ejecutado sobre el TCP/IP) cliente-servidor, utilizado


para acceder a un servicio de Directorio. Fue inicialmente usado como una in-
terfaz para el X.500, pero también se puede usar con autonomía y con otros tipos
de servidores de Directorio. Actualmente está pasando a ser estándar, diferentes
programas ya tienen soporte a LDAP. Libros de direcciones, autenticación, alma-
cenamiento de certificados digitales (S/MIME) y de claves públicas (PGP), son
algunos de los ejemplos donde el LDAP ya es ampliamente utilizado.

Servicio de directorio
Un Directorio es como una base de datos, pero tiende a contener más informa-
ción descriptiva, basada en atributo y no está organizado en forma de tabla, sino
de árbol. La información en un Directorio es generalmente más leída que escrita.
Como consecuencia, los Directorios normalmente no son usados para implemen-
tar transacciones complejas, o esquemas de consultas regulares en bases de datos
que se usan para hacer un gran volumen de actualizaciones complejas. Actualiza-
ciones en Directorios son típicamente simples o ni siquiera son hechas.
Se preparan los Directorios para dar una respuesta rápida a un gran volumen de
consultas u operaciones de búsqueda, y también pueden tener la habilidad de
hacer réplicas de la información de forma extensa. Esto se usa para aumentar la
disponibilidad y confiabilidad, mientras se reduce el tiempo de respuesta.
Existen varias maneras distintas para dejar disponible un servicio de Directorio.

144
Capítulo 4. LDAP

Métodos diferentes permiten almacenar en un Directorio varios tipos de informa-


ción, colocando solicitudes sobre cómo esa información podrá ser indicada, re-
querida y actualizada, cómo protegerla de accesos no autorizados, etc.. Algunos
servicios de Directorio son locales, suministrando el servicio para un contexto
restricto (ej.: el servicio finger en una máquina aislada). Otros servicios son glo-
bales, transformando el servicio para un contexto mayor (por ejemplo, la propia
Internet).
Se distribuyen normalmente los servicios globales (Figura 4-1), o sea, cada servi-
dor es responsable solamente por una parte. El DNS (Domain Name System) es
un ejemplo, pues se trata de un tipo de servicio de Directorio, aunque bastante
especializado.

145
Capítulo 4. LDAP

146
Figura 4-1. Datos de directorio distribuidos en tres servidores
Capítulo 4. LDAP

Tipo de información
El modelo de servicio del Directorio LDAP está basado en entradas. Una entrada
es un conjunto de atributos y es indicada a través de un nombre distinto2. El DN
se usa para indicar una entrada en forma no ambigua. Cada uno de los atributos
de entrada tiene un tipo y uno o más valores. Estos tipos son generalmente pala-
bras mnemónicas, como cn para nombre común, o mail para dirección de correo
electrónico; existen RFCs (Request For Comments) que determinan estas pala-
bras. Los valores dependen del tipo de atributo. Por ejemplo, un atributo mail
puede contener el valor <mari@marilia.br>. Un atributo fotoJpeg va a contener
una fotografía.

Organizando la información
En LDAP, entradas de Directorio se organizan en una jerarquía de árbol invertido,
semejante en algunos aspectos a la organización del DNS. La estructura de este
árbol generalmente refleja límites políticos, geográficos o de organización. El

2. distinguished name (DN).

147
Capítulo 4. LDAP

nodo más alto (root) es típicamente el componente nombre de dominio dc3 de una
empresa, estado u organización. Abajo están las entradas representando estados y
organizaciones nacionales. En seguida ellas pueden ser entradas que representan
a personas, unidades de organización, impresoras, documentos o cualquier otra
cosa que se pueda imaginar. La Figura 4-2 muestra un ejemplo de un Directorio
LDAP en un árbol.

Figura 4-2. Árbol de Directorio LDAP

A pesar de haber entradas para países, el Directorio no posee una entidad regla-
mentadora o centralizadora como, por ejemplo, el root servers del DNS. La sepa-
ración por países, por ejemplo, puede ser útil para empresas multinacionales. La
Figura 4-2 también muestra otra ventaja de un servicio de Directorio. Las ramas
del árbol pueden estar en máquinas distintas. En el caso de la Figura 4-2, la en-

3. domain component

148
Capítulo 4. LDAP

trada o=España Ltda está en otro computador. Observamos que esta característica
también es típica del DNS.

Clases de objetos
Ya se han visto algunos tipos de atributos usados en las entradas en un servicio
de Directorios: mail, cn, telephoneNumber y otros. Podemos crear cualquier tipo
de atributo, pero esto no es recomendable. En LDAP existen diversas clases de
objetos, y cada clase contiene una lista de atributos obligatorios y optativos. Se
define esta lista en una RFC.
Por ejemplo, se define la clase person de la siguiente manera:

objetclass person requires objectClass sn, cn allows

description, seeAlso, telephoneNumber, userPassword

Se puede configurar el servidor LDAP para verificar las clases (a través de la


opción schemacheck) y forzar el uso correcto de los atributos. Esto general-
mente es una buena idea; con el chequeo activado, por ejemplo, será obligatoria
la inserción de los atributos objectClass, sn y cn. Cuando se define que una en-
trada del Directorio es de la clase person, un atributo description será opcional.
Las entradas en Directorios pueden tener varias clases diferentes, basta apenas
observar los requisitos de atributos de cada clase.

149
Capítulo 4. LDAP

Registrando la información
Se registra una entrada por su nombre distinto DN. El DN es único y en su cons-
trucción utiliza el camino entero, desde la entrada hasta el tope del Directorio.
Por ejemplo, en la Figura 4-2, DN = "cn = Maria A Silva, o = U de M, c = BR".
Las entradas también pueden ser registradas a través de un RDN (Relative Dis-
tinguished Name). Aún en este ejemplo el RDN es cn = Maria A. Silva. Podemos
hacer una comparación con hostname (RDN) y FQDN (DN).

Accediendo a la información
El LDAP define operaciones para consultar y actualizar el Directorio. Se sumi-
nistran operaciones para adición y eliminación de una entrada del Directorio,
modificación de una entrada existente y alteración del nombre de una entrada.
La operación LDAP de búsqueda puede abarcar el todo el árbol o solamente una
rama, sin bajar o subir para los demás. Además de especificar con filtros qué
entradas se desean encontrar, también es posible especificar cuáles atributos de
esta entrada se están buscando. Si no se especifican los atributos, todos serán
retornados.
Por ejemplo, en la Figura 4-2 se puede querer buscar en todo el sub-árbol de Di-
rectorio abajo de la Universidad Politécnica de Madrid , buscando por personas
con el nombre de Teodoro Pérez, recuperando la dirección de correo electrónico
para cada entrada encontrada. El LDAP permite realizar esta tarea fácilmente.
O también se puede querer buscar las entradas directamente abajo del c=ES, en-

150
Capítulo 4. LDAP

trada para organizaciones con la palabra “España” en su nombre, y que tengan


un número de teléfono. El LDAP permite que se haga esto también. La próxima
sección describe con más detalles lo que se puede hacer con LDAP y cómo esto
podrá ser útil.

Protección contra accesos no autorizados

Algunos servicios de Directorio no dan protección, permitiendo que cualquiera


pueda ver la información. El LDAP proporciona un método para autenticación de
un cliente, o prueba su identidad para un servidor de Directorio, pavimentando
el camino para un gran control de acceso, protegiendo la información que está
en el servidor. La sugerencia de Conectiva para el archivo de configuración del
servidor contiene un ejemplo de lista de control de acceso ACL.

Funcionamiento de LDAP
El servicio de Directorio LDAP se basa en un modelo cliente-servidor. Uno o más
servidores LDAP contienen los datos creando el árbol de Directorio LDAP. Un
cliente LDAP se conecta a un servidor y hace la solicitud. El servidor responde
con la solicitud, o muestra una indicación hacia dónde el cliente puede conseguir

151
Capítulo 4. LDAP

la información (típicamente, otro servidor LDAP). Podemos hacer nuevamente


una comparación con el DNS, la diferencia es que el servidor LDAP no hace
búsquedas recursivas, o sea, en nombre del cliente. El cliente está encargado de
buscar por el servidor hasta encontrar la información deseada.

Concepto y utilización del slapd

El slapd es un servidor de Directorio LDAP que se puede ejecutar en distintas


plataformas Linux. El usuario puede utilizarlo para obtener su propio servicio de
Directorio. Ese Directorio puede contener todo lo que se quiera poner, es posible
conectarlo a un servicio de Directorio LDAP global, o ejecutar el servicio para el
propio usuario. Algunas de las características y potencialidades más interesantes
del slapd incluyen:

Elección de la base de datos: El slapd viene con tres tipos diferentes de base de
datos. Son ellas: LDBM, una base de datos basada en disco de alto rendimiento, SHELL,
una interfaz de base de datos para comandos arbitrarios de Linux o scripts de línea de
comando y PASSWD, una base de datos simple de un archivo de contrasenas.
Múltiples instancias de las bases de datos: El slapd proporciona una gran faci-
lidad en el control de acceso, permitiendo que se controle el acceso a la información en
la(s) base(s) de datos. Es posible controlar el acceso a las entradas basadas en información
de autenticación LDAP, dirección IP, nombre del dominio y otros criterios.

152
Capítulo 4. LDAP

API genérica de la base de datos: El slapd utiliza varios procesos para tener un
alto rendimiento. Un único subproceso slapd maneja todas las solicitudes que llegan,
reduciendo la cantidad de recursos necesarios. El slapd seleccionará automáticamente el
mejor soporte a varios procesos para el tipo de plataforma.
Control de acceso: Se puede configurar slapd para usar réplicas. Este esquema de
duplicación maestro/esclavo es vital en ambientes de gran volumen, donde un único slapd
no puede proporcionar la disponibilidad o la confiabilidad necesarias.
Subprocesos: El slapd es configurable. A través de un único archivo de configuración,
permite que se cambie todo, siempre que se quiera alterar. Las opciones de configuración
tienen definiciones razonables, y dejan el trabajo mucho más fácil.

El slapd es un servidor LDAPv2. Ya se hizo la especificación para el LDAPv3 e


implementada en el OpenLdap 2.0, sus nuevas características son:

LDAPv2 y LDAPv3: slapd soporta las versiones 2 y 3 de LDAP. Suministra soporte para
las últimas características mientras mantiene interoperabilidad con los clientes existentes.
El slapd tiene soporte para IPv4.
Autenticación SASL: El slapd tiene soporte a servicios de autenticación diferenciados
a través del uso de SASL. La implementación SASL de slapd utiliza el software Cyrus
SASL con soporte a varios mecanismos incluyendo DIGEST-MD5, EXTERNAL.
Capa de Transporte Segura: El slapd suministra protecciones de privacidad e in-
tegridad a través del uso de TLS. La implementación TLS de slapd utiliza el software
OpenSSL.
Internacionalización: El slapd soporta Unicode y tags de lenguaje.

153
Capítulo 4. LDAP

LDAP y el X.500
El LDAP fue originalmente desarrollado como un cliente para el X.500, el ser-
vicio de Directorio OSI. El X.500 define el Protocolo de Acceso a Directorio
(DAP4) para que los clientes usen cuando estén en contacto con servidores de
Directorio. El DAP es un protocolo pesado, que se ejecuta sobre una capa OSI
completa, y necesita una cantidad significativa de recursos informáticos para su
ejecución. El LDAP trabaja directamente sobre TCP y suministra la mayoría de
las funciones del DAP, a un costo mucho más bajo.
Este uso de LDAP deja fácil el acceso al Directorio X.500, pero aún exige un
servicio X.500 completo, para dejar los datos disponibles a los diferentes clientes
LDAP que se están desarrollando. Así como clientes X.500 completos, un servi-
dor X.500 completo no es un pequeño pedazo de programa para ejecutarse.
Si está ejecutando un servicio X.500 y quiere seguir haciéndolo, es muy probable
que pueda parar de leer este capítulo, pues habla sobre cómo ejecutar el LDAP
vía slapd, sin utilizar el X.500. Si no está usando el X.500, o no tiene planes
inmediatos para ejecutar el X.500, siga leyéndolo.
Es posible duplicar datos de un servidor de Directorio slapd para un DAP X.500;
esto permite que la organización deje los datos disponibles como parte de un
servicio de Directorio X.500 global en una base solamente para lectura.
Otro camino para dejar los datos en un servidor slapd disponibles para la comu-
nidad X.500, sería usando un DAP X.500 para puerto de entrada del LDAP.

4. Directory Access Protocol

154
Capítulo 4. LDAP

Duplicación
El slurpd es un servidor para Linux que ayuda a slapd, favoreciendo la dupli-
cación de la base de datos. Él es responsable por la distribución de los cambios
que ocurren en el servidor maestro para el servidor esclavo (la réplica). Vea la
Figura 4-3.

Figura 4-3. Un servicio de directorio duplicado con datos distribuidos en tres servi-

155
Capítulo 4. LDAP

dores

slapd y slurpd se comunican a través de un simple archivo texto, que se usa


para registrar los cambios. La sintaxis de este archivo recuerda un poco la de los
archivos resultantes del diff , en el sentido de que están descritas las entradas o
atributos que se deben eliminar, agregados o modificados. El slurpd se encargará
de aplicar estos cambios al servidor de la réplica. Durante este proceso, la réplica
y el maestro serán diferentes.

Instalando y configurando LDAP

Instalando los paquetes

1. Acceda al directorio de paquetes de Conectiva Linux:

# cd /mnt/cdrom/conectiva/RPMS/

156
Capítulo 4. LDAP

2. Instale el paquete del servidor LDAP openldap:

# rpm -ivh openldap-1*

openldap ####################################

3. Edite el archivo /etc/openldap/slapd.conf:

suffix "o=miorganizacion, c=es"

rootdn "cn=lroot, o=miorganizacion,c=es"

rootpw mi-contraseña

defaultaccess read

access to attr=userpassword by self write by dn="cn=lroot,

o=miorganizacion, c=es" write by * none

access to * by self write by dn="cn=lroot, o=miorganizacion,

157
Capítulo 4. LDAP

c=br" write by * read

loglevel 2880

suffix: raíz, la base del Directorio.


rootdn: login del administrador.
rootpw: contraseña del administrador - puede ponerse codificada.
default access: derechos de acceso estándar.
access to: aquí empiezan las definiciones de las ACLs. Estas definiciones
permiten solamente que el administrador y el propio usuario tengan acceso
al atributo userpassword.
loglevel: tipo de mensajes de log que serán generadas.

Creando el Directorio
# mkdir /var/ldap

Edite el archivo /usr/share/openldap/migration/migrate_common.ph:

$DEFAULT_MAIL_DOMAIN = "miorganizacion.es";

158
Capítulo 4. LDAP

$DEFAULT_BASE = "o=miorganizacion,c=es";

$EXTENDED_SCHEMA = 1;

$EXTENDED_SCHEMA = 1 va a activar el soporte a otras clases de objetos,


como person, por ejemplo.

Ejecutando el script migrate_all_offline.sh

Este script va a buscar varios archivos del directorio /etc y crear las entradas en
el Directorio.

# cd /usr/share/openldap/migration/

#./migrate_all_offline.sh

Creating naming context entries...

Migrating aliases...

Migrating groups...

Migrating hosts...

Migrating networks...

Migrating users...

Migrating protocols...

159
Capítulo 4. LDAP

Migrating rpcs...

Migrating services...

Migrating netgroups...

Importing into LDAP...

Migrating netgroups (by user)...

Migrating netgroups (by host)...

Preparing LDAP database...

Editando el archivo /etc/openldap/ldap.conf

BASE o=miorganizacion,c=es HOST localhost

Iniciando el servidor LDAP


# cds

atd gpm keytable lpd

crond halt killall mars-nwe

160
Capítulo 4. LDAP

dhcpd hdparm kudzu named

functions httpd ldap netfs

gated inet linuxconf-setup network

# ./ldap start

Iniciando ldap: [ OK ]

El OpenLDAP está vinculado a la biblioteca TCP/Wrappers, por este motivo el con-


trol de acceso puede hacerse a través de los archivos /etc/hosts.allow y /etc/hosts.deny,
además del recurso de ACLs del propio OpenLDAP. Utilice este archivo para con-
trolar las máquinas que irán acceder al servidor LDAP. Para acceder a través del
propio servidor, si el archivo /etc/hosts.deny está con el parámetro ALL:ALL, inserte en
el /etc/hosts.allow la línea

ALL:

localhost

161
Capítulo 4. LDAP

Utilizando LDAP

Haciendo búsquedas en la línea de comando

Abra un terminal y utilice los siguientes comandos:

• para verificar todo lo que existe en el Directorio:

$ ldapsearch "objectclass=*"

o=miorganizacion,c=es

o=miorganizacion

objectclass=top

objectclass=organization

objectclass=domainRelatedObject

associateddomain=miorganizacion.es

...

• para verificar si se insertaron los usuarios:

$ ldapsearch uid=login-del-usuario

uid=mi-usuario,o=People,o=miorganizacion,c=es

162
Capítulo 4. LDAP

uid=mi-usuario

cn=mi-usuario

sn=mi-usuario

mail=mi-usuario@miorganizacion.es

objectclass=person

objectclass=organizationalPerson

objectclass=inetOrgPerson

objectclass=account

objectclass=posixAccount

objectclass=top

objectclass=kerberosSecurityObject

krbname=login-del-usuario@MIORGANIZACION.ES

loginshell=/bin/bash

uidnumber=550

gidnumber=907

homedirectory=/home/login-del-usuario

Vea que el atributo userpassword no apareció en esta búsqueda.

• Para verificar si se insertaron las contraseñas usando la contraseña del administrador


del Directorio:

$ ldapsearch -D

cn=lroot,o=miorganizacion,c=ES -W uid=mi-usuario

163
Capítulo 4. LDAP

EnterLDAP Password:

uid=mi-usuario,o=People,o=miorganizacion,c=es

uid=mi-usuario

cn=mi-usuario

sn=mi-usuario

mail=mi-usuario@miorganizacion.es

objectclass=person

objectclass=organizationalPerson

objectclass=inetOrgPerson

objectclass=account

objectclass=posixAccount

objectclass=top

objectclass=kerberosSecurityObject

userpassword={crypt}VazDY6ytbW/YI

krbname=mi-usuario@MIORGANIZACION.ES

loginshell=/bin/bash

uidnumber=500

gidnumber=500

homedirectory=/home/mi-usuario

De acuerdo con las ACLs, el administrador siempre tiene acceso a todos los
atributos.

164
Capítulo 4. LDAP

• Para verificar la contraseña del usuario usando la propia contraseña:

$ ldapsearch -D uid=mi-usuario,o=people,o=miorganizacion,c=es -W

uid=mi-usuario

Intro LDAP Password:

uid=mi-usuario,o=People,o=miorganizacion,c=es

uid==mi-usuario

cn==mi-usuario

sn==mi-usuario

mail==mi-usuario@miorganizacion

objectclass=person

objectclass=organizationalPerson

objectclass=inetOrgPerson

objectclass=account

objectclass=posixAccount

objectclass=top

objectclass=kerberosSecurityObject

userpassword={crypt}VazDY6ytbW/YI

krbname=mi-usuario@MIORGANIZACION.ES

loginshell=/bin/bash

uidnumber=500

gidnumber=500

homedirectory=/home/mi-usuario

165
Capítulo 4. LDAP

Debido a las ACLs, un usuario solamente tiene acceso a su propio atributo


userpassword.

Configurando Netscape Communicator

Cuando se trabaja con servidores LDAP, es común que haya una limitación para
la cantidad máxima de respuestas dadas por el servidor. Esta limitación existe
siempre en el servidor, pero puede también existir en el cliente, como en el caso
de Netscape.
Entre en el ambiente gráfico con el login de usuario, ejecute Netscape Commu-
nicator y haga las siguientes configuraciones:

1. En la Libreta de Direcciones (Alt-Shift-2) haga clic en Archivo → Directorio Nuevo;


surgirá la ventana Directory Info (Figura 4-4). Basta llenar esta ventana de la si-
guiente manera:

166
Capítulo 4. LDAP

Figura 4-4. Información del Directorio

2. En el campo Directorios, seleccione el Directorio que fue adicionado, efectúe una


búsqueda de todos los usuarios que existen en el Directorio poniendo en el campo
teclee el nombre que está buscando un * seguido de un Intro. Visualizará todos los
usuarios encontrados en el directorio. Também será posible ver los usuarios adminis-
trativos, como bin, daemon, etc..., que pueden ser eliminados del Directorio.

167
Capítulo 4. LDAP

3. Configure el correo de Netscape para utilizar el dirección de mensajes a través del


servidor de Directorio.
En Editar→Preferencias, haga clic en la flecha para expandir la categoría
Correo y Noticias y seleccione la subcategoría Dirección.
Habilite la opción Servidor de Directorio: y seleccione el servidor que fue
adicionado (en nuestro ejemplo: miorganizacion).

4. Siempre que se envíe un mensaje bastará colocar un dato cualquiera, o sólo parte
de él, de un usuario existente en el Directorio. Netscape se encargará de llenar lo
restante. En el caso que exista más de una entrada, mostrará la lista de usuarios
encontrados, para que se seleccione el usuario deseado.

Accediendo al servidor LDAP vía URLs

También es posible usar Netscape Communicator para hacer la comunicación con


un servidor LDAP a través del navegador. La sintaxis es la siguiente:

ldap[s]://<hostname><:port>/<base_dn>?<atributos>?<finalidad>?<Filtro>

La [s] se usa cuando tenemos una conexión segura (ssl). Vea un ejemplo con
algunas utilizaciones de URLs de Netscape para el LDAP:

168
Capítulo 4. LDAP

Ejemplo 4-1. Utilizando las URLs de Netscape Communicator

• ldap://localhost/o=miorganizacion,c=es??sub?

Esto hará con que el servidor informe cada registro de la base de datos.
• ldap://localhost/o=miorganizacion,c=es?cn,mail?sub?

Esto irá informar solamente los objetos (personas) nombre y dirección de co-
rreo electrónico para cada persona de la base de datos.
• ldap://localhost/o=miorganizacion,c=es??sub?(cn=maria)

Informará solamente el registro teodoro.


• ldap://localhost/o=miorganizacion,c=es??sub?(cn=teodoro*)

Traerá cualquier registro en que el nombre empiece con teodoro.


• ldap://localhost/o=miorganizacion,c=es??sub?(sn=)

Esto le dará todos los registros que tengan el apellido silva.

169
Capítulo 4. LDAP

Autenticación y NSS con LDAP

El servidor LDAP puede autenticar usuarios, usando un mecanismo llamado


PAM5 (módulos de autenticación conectables). Desde el principio de Linux, la
autenticación de un usuario se hace a través de la entrada de una contraseña por el
usuario, y el sistema verifica si la contraseña tecleada corresponde a la contraseña
oficial codificada, que está almacenada en el archivo /etc/passwd. Esto fue sólo al
principio. Desde entonces, un número de nuevos caminos para la autenticación de
usuarios está haciéndose común, incluyendo sustituciones más complejas, como
por ejemplo para el archivo /etc/passwd y dispositivos de hardware llamados de
Smart Cards.
El problema es que siempre que se desarrolla un nuevo esquema de autentica-
ción, todos los programas necesarios (login, ftpd, etc.) deben ser reescritos para
soportar este nuevo esquema. El PAM proporciona un camino para desarrollar
programas que son independientes del esquema de autenticación, anexados a el-
los en tiempo de ejecución, para que puedan funcionar.
A continuación veremos cómo configurar su sistema para hacer la autenticación
a través de LDAP. El programa authconfig realiza casi todas estas alteraciones.
Para hacer uso de SSL (criptografía) con LDAPv2 en un servidor remoto será
necesario instalar el paquete stunnel.

5. Pluggable Authentication Module

170
Capítulo 4. LDAP

Autenticación en el LDAP y el NSS

Como superusuario, entre en el directorio donde están los paquetes de la distribu-


ción y ejecute:

# rpm -ivh nss_ldap* pam_ldap*

nss_ldap ##############################

pam_ldap ##############################

Configurando PAM para utilizar el LDAP

En el directorio /usr/doc/pam_ldap-XX, donde XX es la versión del módulo ins-


talado, se encontrará el directorio pam.d.conectiva que es la recomendación de
Conectiva para el contenido del directorio /etc/pam.d. Haga una copia de seguri-
dad de su directorio /etc/pam.d original y copie el nuevo directorio recomendado
para el mismo local:

# mv /etc/pam.d /etc/pam.d.org

# cp -R /usr/doc/pam_ldapXX/pam.d.conectiva /etc/pam.d

171
Capítulo 4. LDAP

Ejecute la aplicación authconfig como superusuario; tendrá la Figura 4-5 ilus-


trando la configuración para nuestro ejemplo:

# authconfig

Figura 4-5. Configuración de Autenticación

La opción USAR SSL solamente estará habilitada si el authconfig logra detectar


la instalación del paquete stunnel. Con dicha instalación su sistema intentará au-
tenticar el usuario localmente (a través de los archivos /etc/shadow, /etc/passwd,
etc.); en el caso que la respuesta sea, usará LDAP con la misma contraseña, sin
pedirle dos contraseñas al usuario.

172
Capítulo 4. LDAP

Probando la autenticación y el NSS

Para probar la autenticación y el NSS, haga una copia del /etc/passwd:

# cp /etc/passwd /etc/passwd.org

Retire de este archivo un usuario con el comando # userdel nombre-del-


usuario, para tener la seguridad que no será encontrado en /etc/passwd.
Después teclee:

$ ls -la /home

Será posible visualizar el nombre del usuario, en lugar de su UID. Pruebe también
acceder a Conectiva Linux, como usuario eliminado del archivo /etc/passwd.

Si no va a utilizar LDAP para autenticación, no se olvide de recuperar su /etc/passwd


original para continuar con el uso del sistema:

Agregando y eliminando usuarios vía LDAP

173
Capítulo 4. LDAP

Para añadir y eliminar usuarios del LDAP, existen dos comandos que son uti-
lizados para esta tarea. Son ellos: ldapadduser y ldapdeluser. Ejecutando estos
comandos sin parámetros, aparecerá en la pantalla la forma de uso. Podrá usarlos
de la siguiente manera:

# ldapadduser mi-usuario

# ldapdeluser mi-usuario -r

En la eliminación del usuario, se usó el parámetro -r. Se utiliza este paráme-


tro cuando se quiere eliminar el /home/mi-usuario juntamente con la cuenta del
usuario. Si no es ésta la intención, no lo utilice.

Agregando el log del LDAP


En el archivo /etc/syslog.conf hay la siguiente línea:

local4.* /var/log/ldap.log

Será posible acompañar posibles errores de autenticación en el /var/log/messages,

174
Capítulo 4. LDAP

y el log del LDAP en /var/log/ldap.

Herramientas gráficas para LDAP

Además de Netscape existen otras herramientas LDAP que se pueden usar en el


ambiente gráfico. Búsquedas, visualización e incluso manutenciones en la base
de datos se pueden hacer a través de estos programas.

El cliente de LDAP GQ
GQ es un cliente LDAP gráfico, con una interfaz simple, escrito para Gnome,
y es posible ejecutarlo en otros administradores de ventanas. Instálelo de la si-
guiente forma: como superusuario en el directorio RPMS del CD2 de Conectiva
Linux ejecute:

# rpm -ivh gq-*

gq ###############################

175
Capítulo 4. LDAP

Como usuario normal inicie el programa con el comando gq. Su configuración


también es simple, basta añadir el servidor LDAP que se quiere usar y la Base
DN del Directorio. Un recurso interesante de esta aplicación es el modo de nave-
gación, siendo posible observar el Directorio en árbol y tener una visión completa
de todos los datos del Directorio. Observe en la Figura 4-6 los detalles de este
ejemplo:

$ gq

176
Capítulo 4. LDAP

Figura 4-6. El cliente de LDAP GQ

177
Capítulo 4. LDAP

Acceso móvil
El objetivo del acceso móvil es que en cualquier lugar que se esté, se pueda
recuperar la lista de marcadores (bookmarks), preferencias, filtros de correo elec-
trónico, entre otros, utilizando el Netscape Navigator y un servidor LDAP. Ésta
es una característica muy buena: imagine que, de cualquier local que se acceda a
Internet, será posible tener las propias configuraciones en el navegador. Si se va
a viajar y se necesita acceder a algún sitio de noticias que está almacenado en la
lista de marcadores local, no habrá problemas: es sólo enviar los marcadores y
otros archivos de configuración para un servidor LDAP y se podrá recuperarlos
después, independiente del local en que uno se encuentre.

Implementando el acceso móvil

Para implementar el acceso móvil es necesario seguir estas etapas:

• Alterar el archivo de descripción de atributos.

• Alterar el archivo de descripción objectclass.

• Alterar el archivo LDIF para incluir los perfiles.

• Configurar Netscape Navigator para usar el servidor LDAP como un servidor de acceso
móvil.

178
Capítulo 4. LDAP

• Reiniciar el servidor LDAP con la nueva configuración.

Alterando el archivo de atributos

Añada estos nuevos atributos a la lista del archivo /etc/openldap/slapd.at.conf:

attribute nsLIPtrURL ces

attribute nsLIPrefs ces

attribute nsLIProfileName cis

attribute nsLIData bin

attribute nsLIElementType cis

attribute nsLIServerType cis

attribute nsLIVersion bin

attribute nsServerPort cis

Alterando el archivo objectclass

También se deben añadir algunas clases nuevas para habilitar el acceso móvil. Se
puede hacer esto en el archivo /etc/openldap/slapd.oc.conf:

179
Capítulo 4. LDAP

objectclass nsLIPtra

requires

objectclass

allows

nsLIPtrURL,

owner

objectclass nsLIProfile

requires

objectclass,

serverhostname

allows

description,

cn,

nsServerPort,

nsLIServerType,

serverroot

Personalizando el slapd.conf

El próximo paso es editar el archivo /etc/openldap/slapd.conf. A continuación

180
Capítulo 4. LDAP

presentamos un ejemplo de este archivo que soporta acceso móvil. Modifique y


añada las siguientes líneas en el archivo estándar:

suffix "o=top"

rootdn "cn=root, o=top"

lastmod on

access to dn=".*,ou=Roaming,o=top" by dnattr=owner write

access to attr=userpassword

by self write

by * none

Alterando el archivo LDIF

Ahora es necesario alterar el archivo LDIF, añadiendo entradas de perfil para


cada usuario que vaya a utilizar la opción de acceso móvil de Netscape. Cree un
archivo /etc/openldap/ldif y agregue las siguientes líneas, como en el ejemplo:

dn: o=top

objectclass: top

181
Capítulo 4. LDAP

dn: ou=People, o=top

objectclass: top

objectclass: organizationalUnit

dn: cn=mi-usuario, ou=People, o=top

objectclass: top

objectclass: person

userpassword: contraseña-del-usuario

dn: ou=Roaming, o=top

objectclass: top

objectclass: organizationalUnit

dn: nsLIProfileName=mi-usuario, ou=Roaming, o=top

objectclass: top

objectclass: nsLIProfile

owner: cn=mi-usuario, ou=People, o=top

Agregue esta nueva entrada en el directorio con el comando ldapadd:


# ldapadd -D "cn=root, o=top" -w mi-contraseña -f ldif

182
Capítulo 4. LDAP

Reiniciando el servidor LDAP

Para que las alteraciones se efectúen, será necesario reiniciar el servidor LDAP.
Para ello, como superusuario ejecute:

# /etc/rc.d/init.d/ldap restart

Apagando ldap: [ OK ]

Iniciando ldap: [ OK ]

Configurando Netscape

Para configurar Netscape y habilitar el acceso móvil a través del servidor LDAP,
haga lo siguiente:

• Haciendo clic en Editar→Preferencias en la categoría usuario, marque la opción Ha-


bilite acceso móvil para este perfil de usuario. Teclee en el campo Nombre del
usuario el login que será usado en el servidor LDAP; si quiere teclear sólo una vez
(cuando se inicia Netscape), marque la opción Recuerde mi contraseña de acceso
móvil.

• En la subcategoría Información del Servidor, teclee en el campo Dirección:

url="ldap://localhost/nsLIProfileName=mi-usuario,ou=Roaming,o=top,c=br"

183
Capítulo 4. LDAP

En DN del usuario teclee lo siguiente:


cn=mi-usuario,ou=People,o=miorganizacion,c=es

• Después de haber hecho estas configuraciones, cierre Netscape Archivo→Salir (Alt-


Q) y ábralo nuevamente. Surgirá una ventana pidiendo la contraseña para el servidor
de Acceso Móvil; haciendo clic en el botón Opciones se verá una ventana equivalente
a la de la Figura 4-7.

184
Capítulo 4. LDAP

Figura 4-7. Información del servidor

Esta ventana contiene la dirección del servidor y el DN del usuario que fueron
configurados anteriormente. Verifique si las informaciones están todas correc-
tas.

Con esto se podrá utilizar Netscape remotamente a través de LDAP como un


servidor de Acceso Móvil, teniendo disponible sus marcadores, Cookies, filtros
de correo, libreta de direcciones y preferencias del usuario.

185
Capítulo 4. LDAP

186
Capítulo 5. DNS
En este capítulo presentamos la información a respecto de cómo instalar, configu-
rar y mantener un servidor DNS (Domain Name System1) en un computador con
Linux. Usted aprenderá a crear un dominio y podrá administrar los computadores
conectados con él. Veremos cómo se hace para que las estaciones puedan utilizar
el servidor DNS y accedan unas a otras por medio de sus respectivos nombres.
Además, adquirirá nociones sobre cómo DNS logra organizar un gran número de
computadores conectados entre sí, haciendo posible que se reconozcan unos a los
otros dentro de una red.

Introducción y Conceptos

El servidor DNS convierte los nombres de los computadores en direcciones IP.


Relaciona nombres con IPs e IPs con nombres. Constituye una base de datos
distribuida que permite que una sección se administre localmente y al mismo
tiempo esté disponible para todos.
Cada rama del árbol representa una partición de la base de datos general - un

1. Sistema de nombres de dominio.

187
Capítulo 5. DNS

directorio en el sistema de archivos de Conectiva Linux o un dominio en DNS.


Cada dominio se puede dividir en otras partes denominadas subdominios.
Cada dominio tiene un nombre que se divide en dos partes. La primera identi-
fica su relación con el dominio padre. La segunda es el nombre del dominio que
indica su posición en la base de datos. Por ejemplo, podemos ver que en ke-
pler.miorganizacion.com, el nombre del dominio es miorganizacion.com y el nom-
bre del computador es kepler.
Cada dominio puede ser administrado por una organización diferente. Estas pueden
romper estos dominios y subdominios, delegando su control a otras organiza-
ciones, haciendo muy descentralizada la administración.
La estructura puede parecer un poco complicada, pero es más simple de lo que
aparenta. Se trata entonces de partir de un dominio e ir bajando hasta llegar a una
máquina (o host).

Funcionamiento de DNS

Espacio de nombres de dominio

Como ya se mencionó anteriormente, DNS funciona de forma análoga al sistema


de archivos de Conectiva Linux. Cada unidad de datos de la base distribuida de

188
Capítulo 5. DNS

DNS está indexada por un nombre. Este nombre es, básicamente, una ruta en un
árbol invertido, denominado Espacio de Nombres de Dominios. En lo alto de este
árbol está el dominio raíz. De forma semejante a un sistema de archivos, cada
rama del árbol de dominios puede tener un número cualquiera de otras ramas.

Nombres de dominio
Cada rama del árbol de dominios se identifica con un nombre que tiene como
máximo 63 caracteres. Estos nombres no pueden ser nulos, porque el nulo se
reserva para el dominio raíz del árbol.
Cuando el dominio raíz aparece en el nombre de dominio de una rama, el nombre
parece terminar sólo en un punto, cuando en realidad termina en punto, más el
dominio raíz que se representa con una secuencia nula de caracteres. Por eso,
algunos programas interpretan el punto final de un nombre de dominio como que
el nombre del dominio es absoluto. Que en ese caso identifica la localización de
la rama en la jerarquía sin ambigüedad. Los nombres que no están seguidos de
un punto, se denominan nombres relativos. Como no especifican una localización
exacta en el árbol, pueden referirse a diversos puntos en la misma.
El sistema de nombres de dominios requiere que las ramas hermanas (o sea, las
que tienen un origen común) tengan nombres individuales. Si comparamos con
el sistema de archivos, de la misma forma que no se puede tener dos /usr/bin, no
se puede tener dos copernico.miorganizacion.com. Eso no llega a ser un problema,
ya que los nombres sólo tienen que ser individuales para las ramas hijas, o sea
que puede haber dos ramas con el mismo nombre, siempre que ellas no sean

189
Capítulo 5. DNS

hermanas.

Dominios
Un dominio no es nada más que un sub-árbol del espacio de nombres de dominio.
El nombre de un dominio es el nombre de la rama que está en lo alto de aquel
dominio. Por ejemplo, el primer nivel en la jerarquía del dominio miorganiza-
cion.com es una rama denominada com, de la misma forma como usted esperaría
encontrar el directorio /usr en lo alto de /usr/lib.
Cada sub-árbol se considera parte de un dominio. Así como un nombre de domi-
nio puede estar en distintos sub-árboles, un nombre de dominio puede estar en
diversos dominios. Por ejemplo, miorganizacion.com.co forma parte del dominio
com.co y también del dominioco.

Como un dominio es simplemente un árbol de nombres de dominio, se concluye


que los computadores conectados al sistema también deben ser dominios. Re-
cuerde que los nombres de dominio son solamente índices de la base de datos
de DNS; por eso los computadores son los nombres de dominio que indican la
información sobre los computadores individuales.
Los dominios localizados en las puntas de las ramas del árbol de dominios, ge-
neralmente representan computadores individuales. Los nombres de dominios
pueden señalar hacia una dirección de red o información de encaminamiento del
correo electrónico. Los dominios internos pueden señalar hacia un computador
específico y pueden indicar información estructural sobre los subdominios. Por

190
Capítulo 5. DNS

ejemplo, miorganizacion.com puede ser el nombre de dominio de Mi Organización


y también el nombre del dominio de un computador que encamina el correo elec-
trónico entre Internet y la empresa.

El espacio de nombres de dominios de Internet

El sistema de nombres de dominios no impone muchas reglas a los nombres


vinculados con los dominios. Además, ningún significado especial se asocia a los
nombres de un nivel en particular. Cuando usted crea un dominio, puede definir
sus propias reglas para los nombres.
El espacio de nombres de dominios actual de Internet tiene algunas reglas para
su estructuración. En especial, los dominios próximos a la raíz siguen ciertas
tradiciones. Eso evita que los nombres de los dominios parezcan desorganizados
y sin sentido.

Dominios de primer nivel


Originalmente, se dividió Internet en siete dominios, con el objetivo de especi-
ficar el tipo de organización. Estos dominios se llamaron Dominios de Primer
Nivel o DPN. Los dominios originales son:

191
Capítulo 5. DNS

com: Organizaciones comerciales


edu: Organizaciones de ensenanza
gov: Organizaciones gubernamentales
mil: Organizaciones militares
net: Organizaciones de red
org: Organizaciones internacionales

Se puede notar que los dominios señalados arriba parecieran ser solamente para
organizaciones norteamericanas. Eso ocurre porque Internet tuvo como origen
ARPANET que era un proyecto norteamericano. En esa época, no se podía pre-
ver su enorme éxito, ni tampoco la creación de Internet como consecuencia. Para
adecuar el empleo de esta última en el ámbito internacional, fue preciso alterar los
DPNs. Se reservaron además de los siete dominios originales, otros que designa-
ban localizaciones geográficas. Estos nombres de dominios siguen una norma
internacional denominada ISO 3166. Esta normalización define códigos de dos
letras para cada país del mundo (por ejemplo, co para Colombia).
Aunque los dominios originales debiesen continuar respetándose dentro de cada
uno de los dominios internacionales, esto no ocurrió. Cada país definió sus propias
reglas para hacer sus divisiones. La mayoría mantuvo la separación por orga-
nizaciones, aunque no necesariamente con los dominios originales. Inglaterra,
por ejemplo, define co.uk para instituciones comerciales y ac.uk para institu-
ciones académicas. Mientras que Brasil mantuvo los dominios originales (por
ejemplo, com.br, net.br) y recientemente creó dominios suplementarios como
eti.br, para especialistas en tecnología de información, psi.br para provee-

192
Capítulo 5. DNS

dores de acceso, g12.br para instituciones de enseñanza de 1º y 2º grados, en-


tre otros. Usted puede obtener más información sobre otros dominios en lengua
española en las páginas http://www.nic.es/normas/normasreg.html#nombre y en
www.nic.co (http://registro.br/), esta última correspondiente a Colombia.

Delegación
Uno de los requisitos para el sucesor de hosts.txt era la descentralización de la
administración, que se obtuvo por medio de delegación. La delegación de domi-
nios no es diferente del proceso de delegación en una empresa: el trabajo se va
enviando a los niveles más bajos.
Un dominio se puede subdividir en subdominios y cada uno de ellos se puede
delegar a otra organización y así por delante. La organización delegada recibe la
responsabilidad de mantener los datos de aquél sub dominio. El responsable por
el dominio no tiene realmente las informaciones sobre las máquinas conectadas
en aquél dominio, sino solamente las informaciones sobre los mantenedores de
los subdominios.

Servidores de Nombres
Los programas que guardan la información sobre los computadores conectados

193
Capítulo 5. DNS

se denominan Servidores de Nombres y normalmente mantienen datos completos


sobre un determinado espacio de nombres de dominio, que se conoce como zona.
Un solo servidor de nombres puede tener autoridad sobre múltiples zonas.
La diferencia entre zona y dominio es bastante sutil. Una zona contiene informa-
ción sobre los nombres de dominios y los datos que contiene un dominio, con
excepción de los dominios delegados.
Pero, si un sub dominio de un dominio no fue delegado a nadie en particular, la
zona contiene los nombres de dominio y los datos de aquel sub dominio también.
La diferencia entre zona y dominio queda más clara en Figura 5-1.

Figura 5-1. Zona vs. Dominio

194
Capítulo 5. DNS

Se puede ver que el uso de zonas en vez de dominios, evita que un dominio deba
tener más información que la necesaria, o sea, la información que se delegó a
otros servidores de nombres.
Note que, cuando se realiza una delegación, el servidor de nombres no tiene in-
formación sobre los computadores de un sub dominio, de modo que, cuando se le
pide alguna información sobre uno de esos computadores, el servidor de nombres
se resume a responder con la dirección del servidor de nombres responsable por
aquel sub dominio, para que se le remita la pregunta.
Hay dos tipos de servidores de nombres: los primarios y los secundarios. Los
servidores de nombres primarios usan los datos extraídos de los archivos locali-
zados en los mismos computadores en que se ejecutan. Un servidor secundario
utiliza los datos que vienen de otro servidor de la zona. Un servidor secundario
accionado, buscará la información, en la zona de un servidor primario.
Estos dos tipos se crearon para facilitar la tarea de administración. Después de
crear un servidor de nombres para su zona, no es necesario hacer todo otra vez,
para cada nuevo servidor de nombres en la misma zona. Basta crear servidores
secundarios que utilicen la información de su servidor primario.

Máquina de resolución de nombres

Los clientes que acceden a un servidor de nombres se denominan Máquinas de


resolución de nombres. Las utilizan programas que se ejecutan en un computador

195
Capítulo 5. DNS

y que precisan información sobre el dominio. Se emplea para:

• Consultar un servidor de nombres.

• Interpretar las respuestas (que pueden ser tanto registros, como errores);

• Devolver la información para los programas que la pidieron.

Resolución de nombres

El proceso a través del cual los servidores de nombres proporcionan información


sobre las zonas y dominios se denomina resolución de nombres. Ya que el espacio
de nombres se estructura como un árbol invertido, el servidor de nombres sólo
precisa de una parte de la información para encontrar su camino hacia cualquier
punto del árbol.

Cache

Una de las posibilidades de acelerar el proceso de búsqueda de un computador es


el almacenamiento en cache.
Un servidor de nombres que busca un computador puede tener que enviar un
número considerable de mensajes hasta encontrarlo. Mientras tanto recibe una

196
Capítulo 5. DNS

gran cantidad de informaciones sobre los otros servidores.


El servidor de nombres guarda esta información para acelerar futuras búsquedas.
La próxima vez que el servidor de nombres tenga que encontrar algo sobre eso,
el proceso será más rápido. Aunque no tenga la respuesta en cache, puede tener
información sobre el servidor de nombres responsable por su zona.

Instalación y configuración de DNS

Instalación de los Paquetes

1. Acceda al directorio de paquetes de Conectiva Linux:

# cd /mnt/cdrom/conectiva/RPMS/ #

2. Instale el servidor de nombres BIND:

# rpm -ivh bind-8.*.rpm

bind ############################## #

197
Capítulo 5. DNS

Configuración del Servidor DNS

La configuración de su servidor de DNS se puede realizar con facilidad por medio


de Linux conf, la utilidad de configuración de Conectiva Linux.
Se puede configurar la tarea del servidor de nombre, utilizando apenas la edición
manual de los archivos de configuración; pero este capítulo se concentrará en la
configuración que emplea Linux conf.
Entre en Linux conf y vaya entonces al menú Configuración de Red→Tareas
como Servidor→DNS. Usted verá la pantalla inicial de configuración como la
Figura 5-2.

198
Capítulo 5. DNS

Figura 5-2. Pantalla de Configuración del Servidor DNS

A partir de esta pantalla, usted puede configurar su servidor DNS completo, sin

199
Capítulo 5. DNS

necesidad de editar los archivos de configuración.


Para comenzar, necesita tener la configuración básica del servidor, o sea, el nom-
bre del dominio, la dirección del correo electrónico del administrador y de la má-
quina servidor. Para realizar estas configuraciones presione el botón dominios.
Una pantalla aparecerá donde usted puede agregar, editar o excluir los dominios
de DNS. Presione Agregar para que podamos agregar un dominio. Aparecerá
una pantalla semejante a Figura 5-3 :

200
Capítulo 5. DNS

Figura 5-3. Añadiendo un dominio

En esta pantalla, usted debe informar los datos referidos a su dominio.

201
Capítulo 5. DNS

Dominio: este es el nombre del dominio, en este caso, estamos creando un dominio
denominado de miorganizacion. Vea la sección de nombre Dominios para más informa-
ciones.
Servidor principal: este es el nombre del computador donde se está ejecutando el
servidor de nombres. En nuestro ejemplo, el dominio miorganizacion se controlará con el
computador ns.miorganizacion.
Administrador de correo: esta es la dirección del correo electrónico del administrador
del sistema. En caso de problemas, se podrá avisar a este administrador. Note que se usa
un punto (“.”) en lugar de una arroba (“@”) en este campo.

También se pueden hacer otras configuraciones en esta pantalla, pero no estarán


incluidas en este libro. Son las siguientes:

Servidores de nombres (NS): en una configuración simple, basta el nombre del ser-
vidor principal. Además de eso, usted podrá informar aquí cuales serán los servidores
secundarios de su dominio.
Servidores de correo (MX): aquí usted puede definir, cuál servidor encaminará los
mensajes de correo electrónico de su dominio, hacia Internet.
IPs por defecto: aquí usted puede definir una o más direcciones de IP de computadores
a las que se accederá por medio del dominio. Es normal que las búsquedas en servidores
de nombres se refieran solamente al dominio; sin embargo, los dominios no tienen IP’s,
solamente los computadores los tienen; entonces, al definir IPs patrón, una búsqueda al
dominio miorganizacion indicará aquel IP patrón.
Características: aquí se pueden definir algunas funcionalidades del dominio. Por ejem-
plo, se puede definir cada cuanto tiempo se actualizarán los servidores secundarios.

202
Capítulo 5. DNS

Control de acceso: usted puede definir algunas opciones de seguridad para su servidor
de nombres.

Estas configuraciones ya son suficientes para que el servidor de nombres pueda


funcionar correctamente. Pero hay muchas más configuraciones que se pueden
hacer en su servidor de DNS.

203
Capítulo 5. DNS

Configuración de Mapas de IPs Inversos

Figura 5-4. Añadiendo un Mapa de IP Inverso

204
Capítulo 5. DNS

La tarea principal del servidor de nombres es hacer el registro que relaciona los
nombres de los computadores con las direcciones IP. Realiza automáticamente
la traducción del nombre del computador para una dirección IP. Pero a veces es
necesario hacer la traducción de una dirección IP para un nombre. Esto se hace
por medio de los mapas de IPs inversos.
La configuración de un mapa de IP inverso, es muy semejante a la configuración
de un dominio, basta comparar la Figura 5-3 y la Figura 5-4 para verificar las
semejanzas.

205
Capítulo 5. DNS

Configuración de un Servidor Secundario

Figura 5-5. Configuración de un Servidor Secundario

206
Capítulo 5. DNS

La configuración de servidores secundarios es bastante simple, basta especificar


el nombre del dominio para el cual este servidor será secundario e informar el IP
del servidor primario desde donde este servidor buscará la información. Vea la
sección de nombre Servidores de Nombres para obtener más información sobre
servidores primarios y secundarios.

207
Capítulo 5. DNS

Forward Zones

Figura 5-6. Configuración de Forwarders

208
Capítulo 5. DNS

Hay casos en los que es mejor que el servidor de nombres no envíe afuera de la red
local, un gran número de paquetes. Esto puede suceder por varios motivos, como
por ejemplo, cuando las empresas se conectan con la matriz por medio de antenas.
Sería ineficaz que el servidor se quedase tratando de localizar algo por medio del
servidor de la matriz. Por eso, se pueden crear los servidores de nombres que
son útiles para crear un gran cache (vea la sección de nombre Cache). Estos
servidores se denominan de forwarders.
Por ejemplo, si su empresa tiene un servidor 200.20.57.1 y desea hacer un cache
de los servidores 200.20.57.12 y 200.20.57.13, entonces usted podría configurar
las zonas de forward según la Figura 5-6.
Para configurar un servidor de nombres como forwarder, no se necesita ninguna
configuración especial. Sólo se necesitan configurar los otros servidores de nom-
bres para encaminar sus pedidos al forwarder. De esta forma, los servidores in-
tentan solucionar los nombres por medio del forwarder que a su vez, es posible
que ya tenga la respuesta en su cache, evitando que la solicitud salga de la red
local.

209
Capítulo 5. DNS

Repetidores

Figura 5-7. Configuración de repetidores

Su servidor de nombres puede tener dificultades para resolver nombres fuera del
dominio que administra. Esto puede suceder si el DNS está atrás de un firewall y
por lo tanto no puede ver Internet, o si DNS está vinculado a una conexión lenta.
Esto se puede solucionar, creando repetidores que son servidores de nombres,
útiles para resolver los nombres externos en lugar del servidor primario.
Cuando el servidor primario no logra solucionar un nombre, pasa la tarea para el
repetidor.Como el repetidor se usa mucho más, tiene más información guardada,

210
Capítulo 5. DNS

con mayores posibilidades de solucionar nombres.


Para configurar un servidor de nombres como repetidor no se necesita ninguna
configuración especial. Ella se hace por completo en el servidor que utilizará al
repetidor.
Para hacer que este servidor utilice uno o más repetidores, usted debe informar
las direcciones IP de las mismas en la pantalla que se muestra en la Figura 5-7.
Note que el orden es importante, pues el servidor intentará siempre enviar las
peticiones para el primero, después para el segundo y así sucesivamente. Por eso,
ponga siempre primero al mejor, para obtener un rendimiento apropiado.

211
Capítulo 5. DNS

Funcionalidades

Figura 5-8. Funcionalidades del Servidor

En la pantalla de funcionalidades del servidor (Figura 5-8), usted puede hacer


configuraciones diversas para alterar el funcionamiento de su servidor.

212
Capítulo 5. DNS

Asignación de bandas de IP

Un servidor de nombres generalmente administra una gran cantidad de computa-


dores asociados a direcciones IP. Cada vez que se agrega un nuevo computador al
dominio, se le debe asociar una dirección IP; por eso, DNS tiene que saber mucho
sobre la organización de la red, para decidir cuál será la dirección IP asociada al
nuevo computador.
Para simplificar este proceso, Linuxconf le da la posibilidad de crear bandas de
direcciones IP que se pueden identificar de modo que se organice la red.

Figura 5-9. Atribución de bandas de direcciones IP

Por ejemplo, usted puede crear un rango de direcciones que se utilizarán en los
computadores de la matriz y bandas para las máquinas de las sucursales.

213
Capítulo 5. DNS

10.0.1.1-27

Matriz

10.0.2.1-15

Sucursal 1

10.0.3.1-21

Sucursal 2

Esto facilita y organiza el proceso de decisión, donde el IP se designará para una


máquina.
Para crear un rango de direcciones IP, teclee la banda en el campo Un rango
IP, la descripción (nombre) en el campo Identificación/descripción y presione
Aceptar. Usted puede crear múltiples bandas por medio del botón Agregar.

Iniciando el servicio

Para iniciar el servicio del servidor de nombres en su servidor, usted debe abrir
un terminal como superusuario e iniciar el named:

214
Capítulo 5. DNS

# cds

atd gpm keytable lpd nfs sendmail syslog

crond halt killall mars-nwe pcmcia single xfs

dhcpd httpd kudzu named network portma snmpd

ypbind functions inet linuxconf netfs random sshd

# ./named start Iniciando named: [ OK ]

Observe que esto no hará que named se reinicie junto con el servidor. Para ha-
cerlo, se debe usar el comando ntsysv y marcar el servicio named para que se
inicie siempre que el servidor sea reiniciado según la Figura 5-10.

215
Capítulo 5. DNS

Figura 5-10. Configuración de named A través de ntsysv

Al marcar named para reiniciar junto con el servidor, siempre que el sistema
operativo entre en acción, el servidor de nombres se iniciará con él.

Archivos de Configuración de BIND

Como ya se ha dicho anteriormente en este capítulo, la configuración de BIND


se puede hacer sin la ayuda de Linuxconf, editando diversos archivos de configu-

216
Capítulo 5. DNS

ración.
Aunque este capítulo se haya dedicado a demostrar la configuración de BIND a
través de Linuxconf, deben constar algunas notas con relación a los archivos de
configuración que se han modificado. Para tener más seguridad, es importante
conocer estos archivos. Si los pierde o damnifica, usted estará automáticamente
diciendo adiós a su dominio.
Siendo así, recuerde que: ¡se deben mantener copias de seguridad de estos archi-
vos!

El archivo /etc/named.conf
El archivo /etc/named.conf es el primero que debe conocer. Es nuevo en BIND,
pues hasta en BIND 4 se hacía la configuración con el archivo /etc/named.boot,
mientras que el BIND 8 hace todo en /etc/named.conf. El archivo /etc/named.conf
del dominio miorganizacion.com se parece a:

// Configuración para el dominio miorganizacion.com

options { directory "/var/named"; };

zone "." { type hint; file "root.hints"; };

zone "0.0.127.in-addr.arpa" { type master; file "zone/127.0.0"; };

217
Capítulo 5. DNS

zone "miorganizacion.com" { type master; file

"zone/miorganizacion.com"; };

zone "177.6.206.in-addr.arpa" { type master; file "zone/206.6.177";

};

Observe las dos últimas secciones de este archivo. La primera define el dominio
maestro (éste es un dominio primario). La segunda define el IP inverso que el
servidor de nombres usará para hacer el camino inverso, o sea, la resolución de
un nombre a partir de una dirección IP.

El archivo /var/named/nombre-de-dominio

Los dominios sobre los cuales este servidor tiene autoridad, poseen un archivo en
el directorio /var/named con el nombre del propio dominio. En nuestro ejemplo,
por lo tanto, este archivo se denomina /var/named/miorganizacion. Allí está la
información de dominio que se configuró en la pantalla exhibida en Figura 5-11.

218
Capítulo 5. DNS

Figura 5-11. Añadiendo un dominio

El archivo se parece con:

219
Capítulo 5. DNS

@ IN SOA

ns.miorganizacion. hostmaster.ns.miorganizacion. (

2000051001 ; serial 3600 ; refresh 900 ; retry 1209600 ; expire

43200 ; default_ttl ) @ IN MX 5 mx.miorganizacion. @ IN NS

ns.miorganizacion. ns IN A 10.0.0.1

El archivo /var/named/named.local
El archivo /var/named/named.local define el dominio local del computador. Es un
archivo normalizado, que no necesita configuración, es básicamente una versión
de /var/named/nombre-de-dominio adaptado para el dominio y el computador local
(localdomain y localhost, respectivamente).

@ IN SOA localhost.

root.localhost. ( 1997022700 ; serial 28800 ; refresh 14400 ;

retry 3600000 ; expire 86400 ; default_ttl ) @ IN NS localhost.

1 IN PTR localhost.

220
Capítulo 5. DNS

El archivo /var/named/named.ca
El archivo /var/named/named.ca es un archivo proporcionado por InterNIC, con la
información necesaria para iniciar el cache del servidor de nombres. Este archivo
se debe actualizar periódicamente, por ejemplo, por medio de FTP en el servidor
FTP ftp://ftp.rs.internic.net/ de la InterNIC, en el directorio /domain

; This file holds the information on root name servers

needed to ; initialize cache of Internet domain name servers ;

(e.g. reference this file in the "cache . arquivo" ;

configuration file of BIND domain name servers). ; ; This file

is made available by InterNIC registration services ; under

anonymous FTP as ; file /domain/named.root ; on server

FTP.RS.INTERNIC.NET ; -OR- under Gopher at RS.INTERNIC.NET ;

under menu InterNIC Registration Services (NSI) ; submenu

InterNIC Registration Archives ; file named.root ; ; last

update: Aug 22, 1997 ; related version of root zone: 1997082200

; ; ; formerly NS.INTERNIC.NET ; . 3600000 IN NS

A.ROOT-SERVERS.NET. A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4 ;

; formerly NS1.ISI.EDU ; . 3600000 NS B.ROOT-SERVERS.NET.

B.ROOT-SERVERS.NET. 3600000 A 128.9.0.107 ; ; formerly

C.PSI.NET ; . 3600000 NS C.ROOT-SERVERS.NET.

C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12 ; ; formerly

TERP.UMD.EDU ; . 3600000 NS D.ROOT-SERVERS.NET.

221
Capítulo 5. DNS

D.ROOT-SERVERS.NET. 3600000 A 128.8.10.90 ; ; formerly

NS.NASA.GOV ; . 3600000 NS E.ROOT-SERVERS.NET.

E.ROOT-SERVERS.NET. 3600000 A 192.203.230.10 ; ; formerly

NS.ISC.ORG ; . 3600000 NS F.ROOT-SERVERS.NET.

F.ROOT-SERVERS.NET. 3600000 A 192.5.5.241 ; ; formerly

NS.NIC.DDN.MIL ; . 3600000 NS G.ROOT-SERVERS.NET.

G.ROOT-SERVERS.NET. 3600000 A 192.112.36.4 ; ; formerly

AOS.ARL.ARMY.MIL ; . 3600000 NS H.ROOT-SERVERS.NET.

H.ROOT-SERVERS.NET. 3600000 A 128.63.2.53 ; ; formerly

NIC.NORDU.NET ; . 3600000 NS I.ROOT-SERVERS.NET.

I.ROOT-SERVERS.NET. 3600000 A 192.36.148.17 ; ; temporarily

housed at NSI (InterNIC) ; . 3600000 NS J.ROOT-SERVERS.NET.

J.ROOT-SERVERS.NET. 3600000 A 198.41.0.10 ; ; housed in LINX,

operated by RIPE NCC ; . 3600000 NS K.ROOT-SERVERS.NET.

K.ROOT-SERVERS.NET. 3600000 A 193.0.14.129 ; ; temporarily

housed at ISI (IANA) ; . 3600000 NS L.ROOT-SERVERS.NET.

L.ROOT-SERVERS.NET. 3600000 A 198.32.64.12 ; ; housed in Japan,

operated by WIDE ; . 3600000 NS M.ROOT-SERVERS.NET.

M.ROOT-SERVERS.NET. 3600000 A 202.12.27.33 ; End of File

222
Capítulo 5. DNS

Configuración de los Clientes

Configuración a través de Linuxconf

La configuración de los computadores clientes de DNS es mucho más sencilla


que la del servidor; esta última significa editar el archivo /etc/resolv.conf o pe-
queñas configuraciones en Linuxconf.
Nuevamente, vamos a concentrarnos en la configuración vía Linuxconf porque
es mucho más robusta y menos propensa a errores.
Entre en Linuxconf y siga para Configuración de Red → Tareas como Cliente
→ DNS para abrir la pantalla de especificación del servidor de nombres que se
puede ver en la Figura 5-12.

223
Capítulo 5. DNS

Figura 5-12. Especificación del servidor de nombres

En esta pantalla usted pueden configurar las opciones del servidor de nombres
que la estación utilizará. Son:

Uso de DNS: esta opción sirve solamente para indicar a Linuxconf si debe o no, preo-
cuparse con DNS. No altera el funcionamiento del computador.
Dominio por defecto: el dominio predeterminado es el dominio más utilizado. Nor-

224
Capítulo 5. DNS

malmente es el dominio de su empresa. Cuando usted busca un nombre sin dominio, el


servidor de nombres busca el nombre en el dominio predeterminado.
IP del servidor de nombres: aquí usted puede definir hasta tres direcciones IPs de
servidores de nombres. Recuerde que el orden es importante, por lo tanto coloque siempre
el mejor servidor (el más rápido) en lo alto.
Dominio de músqueda: usted puede definir varios dominios en los cuales se podrá
encontrar un nombre. Cuando un nombre sin dominio no se encuentra en el dominio
predeterminado, el servidor de nombres comienza a buscar en estos dominios. El orden
es importante, pero no de la misma manera como en los servidores de nombres. Aquí
usted no necesita poner los servidores más rápidos antes, sino los más utilizados.

El archivo /etc/resolv.conf
La configuración vía Linuxconf es mucho menos propensa a errores y mucho
más intuitiva que la edición del archivo resolv.conf. Aun así, este archivo es muy
simple, contiene solamente información sobre el(los) servidor(es) para que sea(n)
utilizado(s).
Generalmente, este archivo será bien pequeño y semejante a éste:

domain miorganizacion

search miorganizacion.com

nameserver 10.0.0.5

225
Capítulo 5. DNS

nameserver 10.0.0.7

Lo que nos dice este archivo, es que esta estación está en el dominio miorganiza-
cion, está utilizando los servidores 10.0.0.5 y 10.0.0.7 para resolución de nom-
bres y que el servidor debe buscar nombres en el dominio miorganizacion.com si
el mismo no se puede encontrar en el dominio local.

Consideraciones finales
Este capítulo ha presentado una pequeña introducción sobre el funcionamiento,
la instalación y la configuración de BIND para que usted pudiese tener una no-
ción sobre un servidor de nombres. También se ha mostrado cómo configurar las
estaciones para utilizar los servidores de nombres.
Las configuraciones que se presentaron en este capítulo de carácter genérico, se
destinan a la configuración de un servidor de nombre simple.

226
Capítulo 6. Servidor Internet

En este capítulo hablaremos sobre los servidores Internet. Vamos a mostrarle


cómo configurar un servidor de páginas de web y un servidor FTP. Además verá
cómo se monta un servidor proxy.
Primero analizaremos brevemente los conceptos que fundamentan Internet. Usted
tendrá una breve introducción a los protocolos utilizados en la red.

Servidor Web

Introducción y Conceptos
Desde su comienzo en la década de 90 web tuvo gran crecimiento. Web consiste
simplemente en una forma de visualizar documentos en hipertexto.

El Hipertexto

El término hipertexto se creó en 1965 para diferenciar un texto normal y lineal de


textos diferentes. Éstos últimos contienen referencias sobre información extra.

227
Capítulo 6. Servidor Internet

Por ejemplo, un texto que contiene la palabra Linux podría contener datos que
expliquen su naturaleza.
El ejemplo más conocido de hipertexto actualmente es una página web. Donde se
siguen las referencias entre las páginas, sin acompañar un guión lineal.

El Protocolo HTTP

Para que pueda visualizar un documento de hipertexto en Internet, es necesario un


protocolo para hacer la comunicación entre usted y el servidor. Este protocolo es
el HTTP1. Una sesión HTTP generalmente involucra pocos pasos. Por ejemplo:

1. El cliente establece la conexión con el servidor (eso se hace mediante otros protoco-
los de la red, generalmente TCP/IP) y solicita un documento:

GET /index.html HTTP/1.0

En este ejemplo, el cliente está solicitando el archivo /index.html que nor-


malmente es el archivo predeterminad. Posteriomente, veremos más sobre
esos temas. Lo importante ahora es notar que estamos solamente enviando
un pedido al servidor HTTP.

2. Después de la solicitud, el servidor contesta. Esta respuesta se divide en tres partes:

1. HyperText Transfer Protocol

228
Capítulo 6. Servidor Internet

• Un código de retorno. La gran mayoría de las implementaciones de HTTP retor-


nan este código seguido de un mensaje (generalmente OK o una descripción de
error, si fuera el caso). Además, se devuelve un texto identificando la versión del
protocolo. En nuestro ejemplo, esta línea es:

HTTP/1.1 200 OK

significando que el servidor se está comunicando mediante HTTP 1.1 y la


operación (la solicitud del archivo) fue exitosa.

• Un encabezamiento. Este encabezamiento contiene distinta información sobre el


archivo que se envía, como por ejemplo, tamaño e información sobre el propio
servidor:

Date: Fri, 19 May 2000 20:53:51 GMT

Server: Apache/1.3.12 (Unix) (Conectiva/Linux) mod_ssl/2.6.0

OpenSSL/0.9.4

Last-Modified: Thu, 15 Apr 1999 16:38:13 GMT

ETag: "177c3-508-371615f5"

Accept-Ranges: bytes

Content-Length: 1288

Connection: close

Content-Type: text/html; charset=iso-8859-1

La información puesta arriba, demuestra que estamos conectados a un


computador que ejecuta Apache 1.3.12. Tenemos la fecha de la última
modificación del archivo, su tamaño y su tipo. El programa cliente puede

229
Capítulo 6. Servidor Internet

utilizar esta información para decidir qué es lo que hay que hacer con un
determinado archivo.

• El archivo propiamente dicho. Después del encabezamiento, el servidor envía una


línea en blanco, indicando que a partir de aquel punto, todo lo que se mande, for-
mará parte del archivo solicitado. Un programa cliente puede controlar el progreso
de la transmisión controlando cuánto ya se transmitió y comparando estos datos
con el tamaño informado en el encabezamiento.

Apache

El servidor Apache es el web más popular del mundo. Una investigación reciente
demostró que Apache se utiliza más que todos los otros servidores disponibles
juntos.
La popularización de web en los últimos años, obligó a las empresas a colocar in-
formaciones a disposición de los clientes. Para eso, es imperativo utilizar Apache
para cualquier empresa que quiera mostrar presencia en la red.
Además de permitirle brindar su información en Internet, Apache le permite pu-
blicar contenido en su Intranet,convirtiéndola realmente en un producto indis-
pensable.

230
Capítulo 6. Servidor Internet

Instalación de Apache

1. Acceda al CD de la distribución de Conectiva Linux:

# cd /mnt/cdrom/conectiva/RPMS

2. Instale el paquete de Apache:

# rpm -ivh apache-*

apache ########################################

apache-devel ########################################

apache-doc ########################################

Configuración de Apache

El servidor Apache que acompaña la distribución de Conectiva Linux ya viene


configurado con las opciones más utilizadas, de tal forma que usted sólo necesita
iniciar el servidor para que su Conectiva Linux sea un servidor web. Cuando da
inicio al servidor web, puede acceder a su computador vía HTTP y visualizar la

231
Capítulo 6. Servidor Internet

página estándar como se muestra en Figura 6-1:

232
Capítulo 6. Servidor Internet

Figura 6-1. Página Inicial deApache Conectiva Linux Vista en Netscape® 233
Capítulo 6. Servidor Internet

Para iniciar el servidor Apache, abra un terminal y teclee:

# cds

atalk functions keytable lpd network

atd gpm killall mars-nwe nfs

autofs halt kudzu mysql nfslock

crond httpd ldap named pcmcia

dhcpd inet linuxconf-setup netfs portmap

# ./httpd start

Iniciando httpd: [ OK ]

La configuración de Apache depende mucho del perfil del servidor web deseado.
En esta sección verá cómo configurar a Apache de la forma más simple posible.
Después, usted sabrá un poco sobre los módulos más populares de Apache y
cómo instalarlos y configurarlos.
Para configurar el Apache, usted debe acceder a Linuxconf y entrar en Configu-
ración de red→Tareas del servidor→Apache - servidor www. Usted verá el
menú inicial de la configuración de Apache como se muestra en Figura 6-2.

234
Capítulo 6. Servidor Internet

Figura 6-2. Pantalla inicial de configuración de Apache

Presione en Predeterminados para alterar las opciones básicas de su servidor


WWW.

235
Capítulo 6. Servidor Internet

Figura 6-3. Configuración Básica de Apache

Hay un gran número de opciones que se pueden configurar en esta pantalla, pero

236
Capítulo 6. Servidor Internet

nos atendremos a las más comunes:

• E-mail del administrador: aquí usted podrá informar la dirección del correo elec-
trónico del administrador del sitio.

• Dirección IP del dominio: en este campo usted podrá informar una dirección IP
predefinida para el dominio. Esta dirección IP, generalmente es la dirección IP del
servidor www y se utilizará cuando alguien intente acceder a la página por medio del
nombre del dominio, en lugar del nombre del computador. Por ejemplo, imagine que
el servidor Apache se está ejecutando en el computador kepler.miorganizacion, que
tiene la dirección IP 10.0.0.1. Si usted informa la misma dirección IP del computador
kepler (10.0.0.1) como Dirección IP del dominio, cuando alguien intente acceder a la
dirección miorganizacion (dominio), accederá en realidad a kepler.miorganizacion (el
computador que realmente tiene la dirección de IP especificada).

• Nombre de servidor: usted podrá informar el nombre del computador donde se está
ejecutando Apache . En condiciones normales, este campo no es necesario, ya que
Apache es capaz de descubrir el nombre por medio de DNS o del propio archivo hosts.

• Directorio root: usted podrá informar aquí el directorio en donde estarán los archivos
de su sitio. El directorio estándar es /home/httpd/html.

• Script Alias (Directorio alternativo de scripts): podrá informar varios alias para
los directorios de CGI. Eso quiere decir que usted va a definir un directorio virtual y
asociarlo a un directorio real. Por ejemplo, usted puede definir que cuando una página
haga una referencia al directorio virtual /cgi-bin, estará en realidad accediendo a los
archivos del directorio /home/httpd/cgi-bin.

237
Capítulo 6. Servidor Internet

Una de las características más utilizadas en Apache es su capacidad de trabajar


con máquinas virtuales2. Una máquina virtual es, en realidad, un pequeño truco
involucrando a Apache y al servicio de nombres del servidor (DNS o el archivo
hosts). Básicamente, un computador virtual es un alias para la máquina real. Este
alias debe tener un IP propio. Con eso, se consigue que un solo servidor Apache
sirva diversos sitios por separado.
En nuestro ejemplo, asumimos que nuestra máquina se denomina kepler. Ahora
vamos a suponer que quisiéramos ofrecer información de soporte técnico me-
diante otro nombre de máquina, tal como soporte.miorganizacion. El contenido
de este otro sitio deberá localizarse en la misma máquina kepler.
Primero, debe establecer un alias de IP para el computador kepler. Para hacerlo,
debe pulsar el botón Alias de IP para máquinas virtuales en el menú Configu-
ración de Red de Linuxconf. La Figura 6-4 muestra la pantalla de configuración
de los alias de IP. Vea que usted debe elegir la interfaz de red que se va a utilizar.
Ésta debe ser la interfaz usada para acceder a la máquina.

2. . En Apache, este concepto se denomina VirtualHost

238
Capítulo 6. Servidor Internet

Figura 6-4. Alias de IP

239
Capítulo 6. Servidor Internet

Basta informar la nueva dirección de IP para la máquina. En el ejemplo de Figura


6-4, definimos que la máquina kepler (nuestro servidor) responderá a la dirección
IP 10.0.1.1 además de su dirección de IP real.
Note, sin embargo que, antes de continuar, usted debe configurar su servicio de
nombres para que éste asocie el nombre soporte a esta dirección IP. No forma
parte de los objetivos de este capítulo el proceso de actualización de DNS, ve-
rifique la documentación disponible sobre servidores de nombres para aprender
cómo hacer esta configuración.
Ahora usted puede volver a la pantalla de configuración de Apache en Linuxconf
y teclear Máquinas Virtuales seguido de Agregar. En la pantalla de Figura 6-5,
podrá definir las opciones de su máquina virtual.

240
Capítulo 6. Servidor Internet

Figura 6-5. Máquina Virtual de Apache

Note que las opciones disponibles se asemejan a las utilizadas en la configura-


ción de los patrones de Apache. Pero vamos a ver el significado de los valores
definidos en nuestro ejemplo:

• Nombre de la máquina virtual: aquí definimos que nuestro computador virtual se


denominará soporte. Nuevamente, recuerde que su DNS debe estar configurado para
reconocer este nombre y relacionarlo con el alias de IP que elijamos.

241
Capítulo 6. Servidor Internet

• E-mail del administrador: aquí solamente definimos que la dirección del correo elec-
trónico del administrador es root@miorganizacion.

• Doamin IP address: especificamos la dirección de nuestro dominio. Esta dirección


se utilizará cuando se haga un intento de acceso al computador mediante el nombre del
dominio sin el nombre de la máquina.

• Nombre del servidor: este es el nombre de la máquina servidor.

• Directorio root: este es el directorio donde pondremos los archivos de la máquina


soporte. Así, todas las páginas y figuras del soporte técnico estarán en el directorio
/home/httpd/soporte/html.

• Registros de error: cuando algún error ocurra durante un intento de acceder a las
páginas de soporte, Apache salvará sus propias informaciones en este archivo.

• Registros de transferencia: este archivo contiene un registro de los accesos a la má-


quina virtual soporte. Estos datos se pueden utilizar para obtener información de se-
guridad.

• Nombres alternativos de script: aquí usted puede definir directorios de los scripts
CGI que se utilizarán con la máquina soporte. Note que es posible utilizar el mismo
directorio para todas las máquinas, ya sean virtuales o reales.

242
Capítulo 6. Servidor Internet

Servidor FTP
En esta sección trataremos del servidor FTP. En Conectiva Linux los servicios de
FTP los realiza WU-FTPD . De modo que esta sección tratará sobre WU-FTPD.

WU-FTPD
FTP es una sigla para File Transfer Protocol o Protocolo de Transferencia de
Archivos. El protocolo FTP permite las transferencias de archivos binarios y ar-
chivos texto con alta eficiencia a través de una red.

Instalación y Configuración

1. Para instalar a WU_FTPD, acceda al directorio de paquetes de CD de la distribución


de su Conectiva Linux:

# cd /mnt/cdrom/conectiva/RPMS

243
Capítulo 6. Servidor Internet

2. Instale el paquete de WU_FTP:

# rpm -ivh wu-ftpd-*

wu-ftpd ######################################

3. Asegúrese que la línea abajo esté presente en el archivo /etc/inetd.conf y que no


esté comentada:

ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l -a

4. Si hizo alteraciones al archivo /etc/inetd.conf, debe reiniciar el inetd:

# cds

atd gpm keytable lpd nfs sendmail syslog

crond halt killall mars-nwe pcmcia single xfs

dhcpd httpd kudzu netfs portmap snmpd ypbind

functions inet linuxconf-setup network random sshd

# ./inet stop

244
Capítulo 6. Servidor Internet

Interrumpiendo los servicios INET: [ OK ]

# ./inet start

Iniciando los servicios INET: [ OK ]

Con el servidor FTP correspondientemente instalado, usted puede acceder a Li-


nuxconf para iniciar el proceso de configuración.
En Linuxconf, vaya para Configuración de Red → Tareas del Servidor →
Wu-ftp - servidor de ftp para abrir la pantalla inicial de configuración del servi-
dor FTP. Esta pantalla se muestra en Figura 6-6.

Figura 6-6. Pantalla inicial de configuración de WU-FTPD

Pulse en Configuración básica→ Misc para abrir la pantalla que se muestra en


Figura 6-7.

245
Capítulo 6. Servidor Internet

Figura 6-7. Configuración Básica del Servidor FTP

Estas son las opciones básicas del servidor FTP. Con ellas, usted podrá definir el
comportamiento general de su servidor.

• Correo del administrador: dirección del correo electrónico del administrador del sis-

246
Capítulo 6. Servidor Internet

tema.

• Grupo de invitados: aquí usted puede informar el grupo de Linux al que pertenecerá el
usuario anonymous . Usted tendrá más información sobre acceso anónimo al servidor
enla sección de nombre Accesos Anónimos. Si este campo no se completa, se utilizará
el grupo nobody.

• Archivo de bienvenida: el contenido del archivo de banner se mostrará a los usuarios


en el momento en que ellos accedan con éxito a su servidor.

• Mensaje de bajada: si el archivo informado existe, siempre que un usuario intente ac-
ceder al servidor, se mostrará el contenido y el servidor cerrará la conexión. El archivo
es bastante útil si usted quiere interrumpir temporalmente el servicio de FTP.

• Permitir acceso anónimo: aquí usted puede permitir o prohibir los accesos anónimos.
Más datos sobre este asunto enla sección de nombre Accesos Anónimos.

Ahora presione Controlar en esta misma pantalla para acceder a las opciones de
control de acceso del servidor FTP. La pantalla se muestra en Figura 6-8.

247
Capítulo 6. Servidor Internet

Figura 6-8. Configuración de Control de Accesos

Hay en realidad, tres pantallas de configuración de control de acceso:

• Usuarios reales: control de acceso de los usuarios reales de su sistema. Esos son los
usuarios que tienen cuentas en su red.

248
Capítulo 6. Servidor Internet

• Usuarios invitados: control de acceso para usuarios invitados.

• Anónimos: control de acceso de usuarios que se conectan en forma anónima.

Las tres pantallas son absolutamente idénticas entre sí. Las opciones disponibles
son:

• puede pedir archivos comprimidos: define si el usuario podrá comprimir sus archi-
vos. WU-FTPD permite la compresión de archivos durante la transmisión.

• puede pedir archivos tar: especifica si el usuario tiene permiso para comprimir ar-
chivos transmitidos usando tar.

• puede cambiar modoss: especifica si el usuario puede modificar los permisos de los
archivos localizados en el servidor FTP.

• puede borrar archivos: define si el usuario tiene permiso de borrar archivos locali-
zados en el servidor FTP.

• puede sobreescribir: define si el usuario puede sobre-escribir archivos en el servidor.

• puede renombrar: especifica si el usuario puede modificar el nombre de los archivos


localizados en el servidor.

• registrar transferencias entrantes: especifica si el servidor debe mantener un registro


de los archivos que lleguen.

• registrar transferencias salientes: especifica si el servidor debe mantener un registro

249
Capítulo 6. Servidor Internet

de archivos enviados.

Accesos Anónimos
El usuario podría acceder a su servidor en forma anónima. Eso es muy útil,
cuando usted desea proporcionar archivos a personas externas a su organización.
Como esas personas no tienen cuentas de usuario en su sistema, la única forma
de acceder a sus archivos es por medio del acceso anónimo.
Para permitir el acceso anónimo a su servidor:

1. Acceda el directorio de paquetes de CD de Conectiva Linux:

# cd /mnt/cdrom/conectiva/RPMS

2. Instale el paquete de acceso anónimo:

# rpm -ivh anonftp-*

anonftp ##############################################

A partir de ese momento, para acceder al servidor FTP anónimamente, el usuario

250
Capítulo 6. Servidor Internet

deberá informar el nombre de usuario anonymous y su dirección de correo elec-


trónico como contraseña.

$ ftp localhost

Conectado en la máquina localhost.

220 einstein.miorganizacion FTP server

(Version wu-2.6.0(1) Fri May 12 11:05:03 BRST 2000) ready.

Usuario (localhost:albert): anonymous

331 Guest login ok, send your complete e-mail address as password.

Contraseña:

230 Guest login ok, access restrictions apply.

El tipo de sistema remoto es UNIX.

Usando modo binary para transmitir/recibir archivos.

ftp>

Note que en el ejemplo puesto arriba, la contraseña no se exhibe, pero el usuario


tuvo que teclear su dirección de e-mail para poder tener acceso al servidor. El
usuario anonymous no necesita (ni debe) ser registrado en su Conectiva Linux,
ya que él es un usuario especial para el servidor FTP. Cuando se hace un intento
de acceso con el usuario anonymous, el servidor automáticamente trata el acceso
como anónimo, aceptando la dirección del correo electrónico como contraseña.

251
Capítulo 6. Servidor Internet

Permitiendo el envío de archivos

Normalmente, usted no necesitará (ni probablemente querrá) que los usuarios


puedan grabar archivos en su servidor FTP. Pero, en algunos casos, puede haber
interés en reservar un área para que los usuarios puedan guardar archivos.
Se ha convertido en una práctica usual que los usuarios tuvieran un punto es-
pecífico en los servidores de FTP para grabar archivos. Este lugar es el directorio
/incoming.

Permitir que los usuarios graben en su servidor FTP, es un gran riesgo, y por eso,
se debe pensar muy bien antes de hacerlo.

Uno de los mayores problemas que podrían presentarse con eso, es que usted no
tenga mucho control sobre lo que se graba en su servidor. No se puede impedir
fácilmente que los usuarios guarden en ese sitio, material ilegal.

Se recomienda entonces que sea permitido acceder a escritura en su servidor. Si


no se puede elegir, se debe determinar alguien como responsable por controlar los
archivos que se guardan en el servidor, para evitar los que puedan traer problemas
en el futuro.

Para crear el /incoming:

252
Capítulo 6. Servidor Internet

1. Acceda al directorio raíz de FTP:

# cd /home/ftp

2. Genere el directorio incoming

# mkdir incoming

3. Ahora usted debe hacer que el directorio creado sea de propiedad de un usuario y
grupo diferentes de root y de ftp. Usted puede crear un usuario y grupo específicos
para esto si lo desea, pero utilizaremos nobody.nobody en nuestro ejemplo.

# chown nobody incoming

# chgrp nobody incoming

# chmod 3773 incoming

4. Ahora usted debe editar el archivo /etc/ftpaccess para permitir la escritura en el


directorio /incoming. Note que, si usted ha creado un usuario y grupo para que sea
dueño de directorio,deberá informarlo en la línea inferior en lugar de nobody.

upload /home/ftp /incoming yes nobody nobody 0400 dirs

253
Capítulo 6. Servidor Internet

El formato de esta línea es:


upload HOME DIR GRABA USUARIO GRUPO PERMS DIRS

Donde:

• HOME: directorio home del usuario. En nuestro ejemplo, informamos /home/ftp.


Eso quiere decir que esta línea se aplica a cualquier usuario cuyo directorio home
sea /home/ftp.

• DIR: directorio al cual se refiere la línea. Se relaciona con la raíz del directorio
de FTP. En nuestro ejemplo, informamos que esta línea se aplica al directorio.
/incoming.

• GRABA: aquí usted informa si se permite o no grabar en el directorio al cual se


refiere la línea. Los valores permitidos son SI o NO. En nuestro ejemplo, estamos
permitiendo la escritura.

• USUARIO: es el nombre del usuario a quien pertenecerán todos los archivos


grabados en el directorio. En nuestro ejemplo, ese usuario es nobody.

• GRUPO: es el grupo a quien pertenecerán todos los archivos grabados en el di-


rectorio. En nuestro ejemplo ese grupo es nobody.

• PERMS: después de grabados, los archivos tendrán los permisos cambiados para
éstos. En nuestro ejemplo, definimos que los archivos grabados en este directorio
pasarían a tener permisos 0400, o sea, solamente para lectura del dueño (en este
caso, el usuario nobody.nobody). Se recomiendan estos tipos de permisos, ya

254
Capítulo 6. Servidor Internet

que no autorizan a los usuarios a usar al servidor, en el intercambio de archivos


ilegales. Eso asegura que alguien tendrá que verificar el archivo y cambiar sus
permisos antes que otro lo pueda acceder vía FTP.

• DIRS: especifica si el usuario anónimo puede crear directorios dentro del direc-
torio /incoming. En nuestro ejemplo, el usuario puede crear. Los valores posibles
son dirs y nodirs.

Archivos de Mensajes y de Bienvenida

Si usted ya accedió a algún servidor FTP, entonces ya debe haber notado que
es común que aparezcan mensajes informativos cuando se conecta o cuando se
cambia de directorio. Estos mensajes son muy útiles para informarle al usuario
las posibilidades y reglas que se seguirán en el servidor.

Archivo de Bienvenida

Cuando usted configura el WU-FTPD en Linuxconf, hay una opción que se de-
nomina Archivo de bienvenida.

255
Capítulo 6. Servidor Internet

Usted puede informar un archivo, en donde el usuario verá el contenido antes de


realizar la conexión. Esto es útil para breves mensajes de bienvenidas al servi-
dor. Se puede mostrar una breve explicación sobre el servidor y sus derechos de
acceso.

Recuerde que el archivo de banner se presenta al usuario antes del login. De ma-
nera que evite dar mucha información sobre el servidor por medio de este archivo.

El Archivo .mensaje

Uno de los archivos más comunes y más útiles en un servidor FTP es el archivo
.mensaje. Cuando el servidor encuentra este archivo en un directorio, le muestra
su contenido al usuario antes de mostrar el contenido del directorio en sí.
Puede utilizar este archivo para dar breves explicaciones sobre los propósitos de
los directorios a los que se accede. Además, se le puede ayudar al usuario para
que encuentre lo que busca.
Por ejemplo, digamos que un usuario quiera acceder a su servidor para encontrar
una actualización para un programa. Si no tiene mucha experiencia con servidores
FTP, no sabe realmente cómo encontrar lo que precisa. Así, usted podría crear
archivos .mensaje para guiar al usuario.
Cuando el usuario accede al directorio /pub del servidor FTP, por ejemplo, usted
podría explicarle lo que allí está disponible. Un ejemplo de cómo se muestra el
mensaje al usuario está en Figura 6-9.

256
Capítulo 6. Servidor Internet

257
Capítulo 6. Servidor Internet

258
Figura 6-9. Directorio con .mensaje Visto en Netscape
Capítulo 6. Servidor Internet

Servidor Proxy
En esta sección trataremos de implementar un servidor proxy en un Conectiva
Linux.
El software servidor proxy que acompaña Conectiva Linux es el Squid y en él se
centralizará esta documentación.

Caching
Cuando usted accede a una página de web o a un archivo de FTP, una solicitud
parte de su máquina hasta el servidor, recién entonces se transmiten los datos para
su máquina. Como muchas veces la distancia entre el servidor y su máquina es
muy grande y la calidad de las líneas de transmisión muy irregulares, este proceso
acaba por volverse bastante lento.
Además, la mayoría de los datos solicitados son estáticos, no cambiarán con el
paso del tiempo. Los logotipos que las empresas colocan en sus páginas, por
ejemplo, no tienden a cambiar. Sin embargo, son muchas veces, bastante grandes.
Eso es un enorme desperdicio de recursos de la red y también de tiempo.
Una solución que se ha encontrado es lo que se denomina caching. Siempre que
se hace un pedido de algún objeto de Internet, el servidor proxy consulta al cache
para verificar si este objeto ya no se ha solicitado previamente. Si lo fue, entonces
el servidor proxy puede responder a la solicitud usando su propia copia local del
objeto. Eso acelera significativamente las operaciones en Internet, ya que gran
parte de los objetos acaba transitando sólo localmente.

259
Capítulo 6. Servidor Internet

El servidor proxy verifica si su copia se actualiza con el objeto original. Si no


es así, proxy actualizará su copia. Naturalmente, un servidor de cache no podría
guardar para siempre todos los objetos a los que se accedió, porque eso lo sa-
turaría rápidamente. La solución es sencilla: el servidor mantiene solamente los
archivos usados hace menos tiempo. Eso garantiza, de forma indirecta, que los
objetos usados más frecuentemente estén siempre en cache.

Squid
El servidor Squid es el proxy de Conectiva Linux. Brinda un alto rendimiento de
cache para servidores web.
En comparación con otros servidores proxy,Squid ofrece grandes ventajas:

• Realiza, además de cache de objetos como archivos de FTP y páginas de web, un cache
de procuras de DNS. Eso quiere decir que guarda información sobre la relación entre
las direcciones IP y los nombres de máquinas de Internet. Esto acelera la localización
de máquinas.

• Mantiene los objetos más utilizados en la memoria RAM (cuyo uso se puede limitar
por la configuración).

• Soporta SSL (acceso a páginas encriptadas) para seguridad en transacciones.

• Se puede organizar en jerarquías de servidores de cache para mejorar significativa-

260
Capítulo 6. Servidor Internet

mente el rendimiento.

• Responde a las solicitudes en un único proceso de acceso al disco.

Todo el servidor proxy Squid consiste en un programa principal (Squid) y de su


propio programa de resolución de nombres (dnsserver). Cuando Squid se inicia,
crea el proceso de dnsserver, disminuyendo el tiempo de espera por la respuesta
del DNS.

Instalación y configuración

Para instalar Squid:

1. Acceda al directorio de paquetes de CD de Conectiva Linux:

# cd /mnt/cdrom/conectiva/RPMS

2. Instale el paquete de Squid:

rpm -ivh squid-*

261
Capítulo 6. Servidor Internet

squid ##################################################

3. Inicie el programa:

# cds

atd gpm killall named pcmcia single

autofs halt kudzu netfs portmap smb

crond httpd linuxconf-setup network postgresql snmpd

dhcpd inet lpd nfs random squid

functions keytable mars-nwe nfslock sendmail sshd

[root@gnu init.d]# ./squid start

creating directories at /var/spool/squid, wait... [ OK ]

Iniciando squid [ OK ]

Para efectuar configuraciones en Squid es necesario editar su archivo de configu-


ración, que está localizado en /etc/squid/squid.conf.

262
Capítulo 6. Servidor Internet

Memoria para Cache


En la memoria RAM, Squid almacena los objetos que se utilizan más. Por eso el
rendimiento será mucho mejor que si los objetos fueran almacenados en disco.
La cantidad de memoria que se va a utilizar para cache de Squid puede (y debe)
ser limitada, para que no interfiera con otros procesos en los sistemas. El valor
predefinido es 8MB.

Note que este límite de memoria se refiere a la usada para cache y no a la total
utilizada por el Squid. En realidad, la que Squid ocupa, deberá estar cercana al
triple de este valor.

Para especificar la cantidad máxima de memoria que se debe emplear para cache,
debe utilizar el parámetro cache_mem en el archivo /etc/squid/squid.conf:

cache_mem MEM

Donde MEM es la cantidad de memoria máxima que se ocupará para cache.


Ejemplo:

cache_mem 32 MB

Este ejemplo especifica que Squid deberá limitar a 32MB la cantidad de memoria
utilizada para cache.

263
Capítulo 6. Servidor Internet

Archivos de Cache
Los objetos guardados por el Squid se graban en archivos en el disco duro. Usted
puede especificar algunas opciones para definir cómo Squid trabajará con archi-
vos.

cache_dir TIPO NOMEDIR MB N1 N2

Donde:

• TIPO: debe especificar el tipo de sistema de almacenamiento que Squid deberá uti-
lizar. Normalmente, se debe usar ufs. Puede intentar utilizar asyncufs para obtener
mejor rendimiento. Si por acaso, asyncufs no funciona correctamente en su sistema,
vuelva a usar el ufs.

• NOMEDIR: especifique el directorio donde se grabarán los archivos . Note que


Squidno generará automáticamente este directorio.

• MB: puede modificar el espacio máximo que se va a utilizar para cache en este direc-
torio. El valor predefinido es de 100 MB.

• N1: usted puede especificar el número máximo de directorios de primer nivel que se
crearán dentro del directorio de cache. El predefinido es 16.

• N2: número máximo de directorios de segundo nivel que se crearán dentro de cada
directorio de primer nivel. El valor predeterminado es de 256.

264
Capítulo 6. Servidor Internet

Ejemplo:

cache_dir ufs /var/spool/squid 100 16 256

Este ejemplo define que el directorio de cache será el /var/spool/squid, que podrá
tener hasta 100MB, 16 directorios de primer nivel y 256 directorios de segundo
nivel dentro de cada directorio de primer nivel.

Control de Acceso
Por razones de seguridad, la configuración estándar de Squid de Conectiva Linux
es bastante conservadora; niega el acceso a cualquier máquina.
Usted debe alterar este comportamiento para poder utilizar Squid. Por lo tanto
debe establecer reglas de acceso al servidor proxy. Las reglas tienen el formato:

http_access PERM QUEM

Donde:

• PERM: indica si la línea es un permiso o una prohibición de acceso. Los valores


permitidos son: allow, para permitir deny, para negar acceso.

• QUEM: a quien se refiere este permiso. puede ser una máquina o un dominio o una
clase. Se puede todavía usar ALL para indicar que el permiso definido en la línea se

265
Capítulo 6. Servidor Internet

refiere a todas las máquinas.

Ejemplo:

http_access allow all

Este ejemplo permite que todas las máquinas de la red puedan utilizar este servi-
dor proxy.

Note que, como se ha mencionado anteriormente, Squid se ha configurado previa-


mente para que no permita el acceso de ningún usuario o máquina. Así, usted debe
buscar la línea del archivo /etc/squid/squid.conf parecida con:

http_acces DENY all

Entonces suprimirla o editarla en el archivo.

266
Capítulo 7. Correo electrónico

Introducción
Correo electrónico1 siempre fue una de las aplicaciones clave en Internet. Es
considerado imprescindible por los que utilizan Internet para intercambiar in-
formación crucial de manera rápida, eficaz y segura, aunado, por ejemplo a algún
mecanismo de encriptación o autenticación, como gnupg http://www.gnupg.org.
Este capítulo explica con más detalles cómo suceden intercambios de mensajes
electrónicos; cuáles son los protocolos y herramientas utilizados y cómo configu-
rarlos para las tareas más usuales.

1. electronic mail o e-mail

267
Capítulo 7. Correo electrónico

La teoría

Cómo funciona el intercambio de mensajes


electrónicos

Para entender mejor los conceptos abordados más adelante, es útil tener una idea
global de lo que ocurre durante la transferencia de un mensaje electrónico entre
dos puntos (en la práctica, dos máquinas). Por ejemplo, Juan, cuyo alias es juan,
quiere enviar un mensaje a su hermano Francisco (francisco). No importa si Juan
y Francisco están comunicándose por una intranet (red interna) o por Internet, el
proceso es análogo. Además, la máquina de Juan se llama ardilla y el servidor de
e-mails de Francisco, pluto. Juan escribe el mensaje a su cliente de email, llamado
Agente de mensajes del usuario2 preferido, o simplemente teclee lo siguiente:

$ echo "Cena en la casa de la abuela." | \ >

mail -s ’Francisco!’ francisco@pluto

Se entrega el mensaje al MTA3 de la máquina ardilla. El MTA es el responsa-

2. MUA o Mail User Agent

3. Mail Transport Agent.

268
Capítulo 7. Correo electrónico

ble por la entrega de mensajes en el buzón correcto. Así, el MTA de la máquina


ardilla determina que se debe entregar el mensaje a la máquina pluto. Para re-
alizar esta tarea, éste se conecta al puerto 25 usando el protocolo SMTP4 y envía
el mensaje. El MTA de la máquina pluto, recibe el mensaje y lo deja en el buzón
de Francisco (por ejemplo, /var/spool/mail/francisco). Y a partir de ahí, Fran-
cisco empieza a prepararse para la cena en familia :)).

Protocolos involucrados en el intercambio de


mensajes

SMTP

SMTP es el protocolo responsable por el envío de mensajes de la máquina de


origen (en el ejemplo anterior, ardilla) hasta la máquina de destino (pluto). Los
MTAs de las dos máquinas y de alguna otra que pueda estar en el medio del
camino realizado por el mensaje (si Francisco tiene un redireccionamiento de
email, por ejemplo, habrá más máquinas en el proceso) son responsables por el
tránsito de mensajes hasta el buzón de Francisco en pluto. Sendmail, por ejemplo,
es un MTA y se explicará detalladamente más adelante.
Cuando se establezca la conexión, el MTA normalmente muestra un mensaje de
4. Simple Mail Transfer Protocol

269
Capítulo 7. Correo electrónico

presentación, básicamente diciendo que es el responsable por el SMTP en esa


máquina. El MUA (o el administrador de sistemas que hizo telnet para el puerto
25 de la máquina con el objetivo de probar lo que está leyendo) debe entonces
empezar la comunicación enviando el comando HELO:

HELO ardilla

El MTA normalmente responde con un mensaje simpático como “Mucho gusto


en conocerle”. En seguida, el MUA avisa quien es el remitente del mensaje que
será transmitido:

MAIL FROM: juan@ardilla

Si todo ocurre como se espera, el MTA acepta el remitente (“250 juan@ardilla...


Sender ok”). En seguida, se informa el destinatario:

RCPT TO: francisco@pluto

Nuevamente, el servidor debe confirmar que aceptó enviar el mensaje para la


dirección especificada (“250 francisco@pluto... Recipient ok”). El mensaje puede
ser rechazado, por ejemplo, por alguna protección contra SPAM. Pero, si todo
sale bien, sólo falta el mensaje:

DATA

A partir de ahí, lo que se teclee aparecerá en el mensaje, hasta que se teclee una

270
Capítulo 7. Correo electrónico

línea conteniendo solamente un punto (“.”). Vea que es en ese punto en el que
se definen los encabezamientos. Así, se podría escribir el mensaje del ejemplo
como:

DATA

354 Enter mail, end with a "." on a line by itself

To: Francisco Serrano <francisco@pluto>

From: Juan Serrano <juan@ardilla>

Subject: ¡Francisco!

Cena en la casa de la abuela.

Abrazos de tu hermano,

Juan

El servidor imprime en la pantalla una línea informando que el mensaje fue acep-
tado en la cola de procesamiento. Para enviar el mensaje para más de una direc-
ción, ejecute el comando RCPT TO: para cada destinatario. Quien aparece en
el campo From:, quién aparece en el campo Cc: y quien no aparece (o sea, que
está en el campo Bcc: del mensaje) se define también dentro del comando DATA.
Suponiendo que las líneas RCPT TO: relevantes ya hayan sido definidas:

MAIL FROM: juan@ardilla

250 juan@ardilla... Sender ok

271
Capítulo 7. Correo electrónico

RCPT TO: francisco@pluto

250 francisco@pluto... Recipient ok

RCPT TO: bruce@woolamalahoo.au

250 bruce@woolamalahoo.au... Recipient ok

RCPT TO: snorman@hedgehog.com

250 snorman@hedgehog.com... Recipient ok

DATA

354 Enter mail, end with a "." on a line by itself

To: Francisco Serrano <francisco@pluto>

From: Juan Serrano <juan@ardilla>

Cc: Departamento de Filosofia <bruce@woolamalahoo.au>

Subject: ¡Francisco!

...

Siempre es bueno recordar que lo que separa el encabezamiento del cuerpo del
mensaje es una línea en blanco. Entonces, no deje líneas en blanco entre las líneas
del encabezamiento.
Para finalizar la sesión, se utiliza el comando QUIT.
Usando el SMTP, el mensaje es transportado hasta la máquina de destino. Si
Francisco está leyendo sus mensajes directamente en el servidor, no hay otros
protocolos involucrados. Pero, si él tiene que bajarlos para otra máquina, es ne-
cesario otro protocolo para la recuperación de los mensajes.

272
Capítulo 7. Correo electrónico

POP

Se utiliza el protocolo POP, inversamente al SMTP, cuando se quiere buscar un


mensaje que está en el servidor. El lector debe haberse dado cuenta que no hay au-
tenticación en el protocolo SMTP. En principio, cualquiera puede enviar mensajes
para otra persona. Con el recibimiento de mensajes, obviamente, es diferente. El
usuario, al conectarse con el servidor POP (usualmente en el puerto 110) envía
los comandos USER y PASS para asegurarse el derecho de leer los mensajes en
aquel servidor:

USER francisco

+OK User name accepted, password please

PASS notlob

+OK Mailbox open, 5 messages

Si el servidor confirma la autenticación, se pueden listar los mensajes en el buzón.


Vea que se pasa la contraseña en texto puro y es visible (al contrario, por ejemplo,
de lo que ocurre en el proceso de login en una máquina Linux). Entonces, si se
quiere hacer una prueba, es bueno asegurarse de que no hay nadie alrededor, o
su contraseña puede ser descubierta. Además, hay siempre la posibilidad de que
alguien haya puesto un sniffer5. Dependiendo de la importancia de la informa-

5. Programa que observa el tránsito en la red y puede coger datos que se transmiten en formato
texto en la red.

273
Capítulo 7. Correo electrónico

ción que se transmite y se recibe y de cuán paranoico se desea ser, se aconseja


transmitir los mensajes usando criptografía o incluso optar por otro protocolo que
ofrezca más seguridad.
Después de autenticado, el servidor POP abre el buzón del usuario y le dice cuán-
tos mensajes están disponibles. El usuario puede entonces listarlos y saber su
tamaño con el comando LIST. Con eso, el servidor POP muestra en orden, un
número para cada mensaje del buzón, y se registra cada mensaje por ese número.
Por ejemplo, para ver el contenido de un mensaje, se usa:

RETR <número del mensaje de acuerdo con el informe del comando LIST>

Es común que se borren mensajes del servidor POP después de bajarlos para
una máquina local. O, un buzón puede estar bloqueado debido a un mensaje de
tamaño desproporcional, por ejemplo. El comando para borrar un mensaje es:

DELE <número del mensaje de acuerdo con el informe del comando LIST>

Así como en el SMTP, se cierra una sesión con un “QUIT”, o sea, una sesión
estándar usándose el POP sería algo como:

$ telnet pluto 110

Trying 200.192.38.238...

Connected to pluto.

Escape character is ’^]’.

274
Capítulo 7. Correo electrónico

+OK POP3 pluto v7.60 server ready

USER francisco

+OK User name accepted, password please

PASS notlob

+OK Mailbox open, 5 messages

RETR 5

+OK 380 octets

Return-Path: <juan@ardilla>

Received: (from juan@ardilla)

by ardilla (8.9.3/8.9.3) id NAA10331

for francisco; Fri, 19 May 2000 13:53:05 -0300

Date: Fri, 19 May 2000 13:53:05 -0300

From: Juan Serrano <juan@ardilla>

Message-Id: <200005191653.NAA10331@ardilla>

To: Francisco Serrano <francisco@pluto>

Subject: ¡Francisco!

Status:

Cena en la casa de la abuela.

Abrazos de tu hermano,

275
Capítulo 7. Correo electrónico

Juan

DELE 5

+OK Message deleted

QUIT

+OK Sayonara

Connection closed by foreign host.

IMAP

El POP es relativamente antiguo y bastante conocido. Un protocolo más nuevo,


el IMAP, está llamando la atención. La gran diferencia del IMAP en relación al
POP es la posibilidad de manipulación de los mensajes en el propio servidor. Es
posible crear carpetas y organizar los mensajes en ellas, hacer búsquedas en los
mensajes, ver solamente encabezamientos, etc.. Si todas estas funciones son casi
estándar en cualquier cliente de e-mail, seguramente no lo son en un servidor. Esa
característica es especialmente atrayente cuando se accede a la misma cuenta de
correo electrónico a partir de más de una máquina.
Todo comando de IMAP debe ser precedido por un identificador llamado tag,
normalmente algo como A0001 (pero no necesariamente). Mensajes de respuesta

276
Capítulo 7. Correo electrónico

del servidor son precedidos por el identificador del comando en cuestión, y el co-
mando BAD (en el caso de error como, por ejemplo, no especificar todos los
parámetros para un determinado comando), NO (en el caso de una falla “legí-
tima”, como contraseña incorrecta) o OK (en el caso de éxito). El servidor puede
también enviar mensajes que no son respuestas a un comando del cliente, como
por ejemplo aviso de que hay nuevos mensajes. Esos mensajes no solicitados
pueden también ser forzados con el comando NOOP. Ese comando no hace ab-
solutamente nada. La respuesta puede ser un simple OK. Pero, si hay algo nuevo
cuando el buzón está abierto, o simplemente algo que el servidor quiera decir, se
aprovecha la oportunidad (una respuesta sería enviada al cliente de todas formas).
El protocolo IMAP trabaja con estados. Existen 4 estados: en cuanto el usuario
accede al servidor, su estado es no autenticado. Tras la autenticación, como el
lector debe haber deducido, su estado es llamado autenticado. Cuando un buzón
fue seleccionado y abierto, el estado es llamado de seleccionado, y, finalmente,
el estado de logout, cuando el usuario sale del sistema (por solicitud propia o por
imposición del servidor). Los comandos disponibles varían en cada estado.
En el estado no autenticado, los comandos válidos son: NOOP, CAPABILITY,
que lista las funciones que el servidor implementa, AUTHENTICATE, que in-
dica para el servidor el mecanismo de autenticación que se desea utilizar, si se le
implementa, LOGIN, que justamente inicia el estado autenticado, y LOGOUT,
que finaliza la conexión con el servidor. Los dos primeros y el último, en verdad,
pueden ser usados en cualquier estado.
Así que se acceda a un servidor IMAP (usualmente en el puerto 143 del servidor),
como en el POP, el primer paso es normalmente la autenticación. El comando
usado es el LOGIN, con nombre de usuario y contraseña como parámetros:

277
Capítulo 7. Correo electrónico

$ telnet pluto 143

Trying 200.192.38.238...

Connected to pluto.

Escape character is ’^]’.

* OK pluto IMAP4rev1 v12.252 server ready

A0001 LOGIN "francisco" "bolton"

A0001 NO LOGIN failed

A0002 LOGIN "francisco" "notlob"

A0002 OK LOGIN completed

Vea que los parámetros están entre comillas dobles (“”). Además, ese ejemplo
ya muestra un mensaje de error, como se explica arriba: la sintaxis del comando
LOGIN en el primer intento estaba correcta, pero la contraseña no.
En el estado autenticado, los comandos permitidos (además de los tres menciona-
dos en el párrafo anterior) son:

• APPEND

• CREATE

• DELETE

• EXAMINE

278
Capítulo 7. Correo electrónico

• LIST

• LSUB

• RENAME

• SELECT

• STATUS

• SUBSCRIBE

• UNSUBSCRIBE

Todos trabajan con buzones de correo.


Se pueden mostrar los buzones disponibles con el comando LIST. Ese comando
tiene dos argumentos, un camino inicial a partir del cual se buscan los buzones y
un nombre de buzón que puede contener metacaracteres. Por ejemplo:

A0016 LIST "mail" *

* LIST (\NoSelect) "/" mail

* LIST (\NoInferiors) "/" mail/juan

A0016 OK LIST completed

En ese caso, se listan todos los archivos del directorio mail. Es interesante percibir
que, si un camino absoluto (empezando con “/”) no es indicado, se asume que el

279
Capítulo 7. Correo electrónico

primer argumento debe ser considerado a partir de un camino estándar, donde


pueden estar buzones del usuario en el sistema (en ese caso, /home/francisco), o
sea, el comando:

A0017 LIST "" *

lista todos los archivos en el directorio home del usuario autenticado. Los archi-
vos o directorio para los cuales el usuario no tiene permiso de lectura no son
listados para que ese comando no genere fallas de seguridad.
Un comando más moderado es el LSUB. Éste lista solamente archivos o directo-
rios previamente registrados como buzones de correo (o directorios conteniendo
buzones). Registro y cancelación de buzones de correo se hacen con los coman-
dos:

SUBSCRIBE <buzón de correo o directorio>

UNSUBSCRIBE <buzón de correo o directorio>

Así, por ejemplo:

A002 SUBSCRIBE mail

A002 OK SUBSCRIBE completed

A003 LSUB "" *

* LSUB () "/" mail

A003 OK LSUB completed

280
Capítulo 7. Correo electrónico

Con el comando LIST, como ya se vio anteriormente, el resultado sería todos los
archivos en el directorio del usuario. Con la combinación SUBSCRIBE / UN-
SUBSCRIBE + LSUB, sólo se muestran los directorios relevantes. Esto es útil
para definir, por ejemplo, los directorios que contienen carpetas que podrán ser
accedidas. Además, el registro permanece entre sesiones del IMAP (en verdad,
permanece hasta que se haga una cancelación explícita).
Después de determinar el directorio que deberá contener las carpetas de men-
sajes, se puede efectivamente crear nuevas carpetas. Para ello, se usa el comando
CREATE:

CREATE <nombre de la carpeta>

Análogamente, el comando DELETE borra la carpeta especificada y el comando


RENAME le cambia el nombre. Es importante recordar que el nombre de la
carpeta debe ser relativo, en el caso, /home/francisco, o sea, el directorio estándar
a partir del cual es posible crear carpetas. Por ejemplo:

A0002 CREATE "mail/juan"

A0002 OK CREATE completed

A0003 RENAME "mail/juan" "mail/snorman"

A0003 OK RENAME completed

A0004 DELETE "mail/juan"

A0004 NO DELETE failed: Can’t delete mailbox mail/juan: no such mailbox

A0005 DELETE "mail/snorman"

A0005 OK DELETE completed

281
Capítulo 7. Correo electrónico

Para más información sobre una carpeta específica, se puede utilizar el comando
STATUS:

STATUS <nombre de la carpeta> <lista de ítems>

La lista de ítems debe venir entre paréntesis, y dentro de éstos, los ítems deben
estar separados por un espacio. Ellos son:

• MESSAGES, que indica el número de mensajes en el buzón o carpeta.

• RECENT, que muestra cuántas entre las anteriores son recientes.

• UNSEEN , que muestra el número de mensajes no leídas.

• UIDNEXT, que hace con que cada mensaje reciba un identificador, o uid del servidor
( UIDNEXT es el uid que se marcará al próximo mensaje que llegue a esa carpeta), y

• UIDVALIDITY que es un identificador de la carpeta o buzón de correo. Siguiendo


nuestro ejemplo:

A0002 STATUS INBOX (MESSAGES RECENT UNSEEN)

* STATUS INBOX (MESSAGES 3 RECENT 0 UNSEEN 3)

A0002 OK STATUS completed

El último comando antes de pasar al estado seleccionado trabaja directamente


con el contenido del buzón: el comando APPEND recibe como parámetro un
mensaje que será incluido en el buzón de correo especificado.

282
Capítulo 7. Correo electrónico

Cuando finalmente se decide a qué buzón se debe acceder, se puede hacerlo con
los comandos SELECT y EXAMINE. Ambos tienen la misma función, excepto
que, usándose el EXAMINE la carpeta se abrirá solamente para lectura. Ningún
cambio será permitido, incluyéndose marcar mensajes como leídos, por ejemplo.
Como la sintaxis de los comandos y los mensajes de respuesta son idénticos,
solamente el SELECT será explicado. Lo mismo vale para el EXAMINE. La
sintaxis del comando SELECT es:

SELECT <nombre de la carpeta o buzón de correo>

El valor INBOX indica el valor del buzón estándar en este sistema, para determi-
nado usuario. Normalmente, /var/spool/mail/<nombre del usuario> o, en nuestro
ejemplo, /var/spool/mail/francisco:

A0002 SELECT INBOX

* 3 EXISTS

* NO Mailbox vulnerable - directory /var/spool/mail must have 1777 protection

* 1 RECENT

* OK [UIDVALIDITY 958755028] UID validity status

* OK [UIDNEXT 14] Predicted next UID

* FLAGS (\Answered \Flagged \Deleted \Draft \Seen)

* OK [PERMANENTFLAGS (\* \Answered \Flagged \Deleted \Draft \Seen)]

Permanent flags

* OK [UNSEEN 1] first unseen message in /var/spool/mail/francisco

A0002 OK [READ-WRITE] SELECT completed

283
Capítulo 7. Correo electrónico

Cuando pedimos para que el servidor seleccione la carpeta INBOX, su acción fue
abrir el archivo /var/spool/mail/francisco y devolver una serie de informaciones.
Tres son particularmente interesantes en este momento:

* 3 EXISTS: Esto indica que hay tres mensajes en el buzón de correo /var/spool/mail/francisco
* 1 RECENT: Muestra la cantidad de mensajes recientes hay entre los existentes.
A0002 OK [READ-WRITE] SELECT completed: Si el comando utilizado hubiera
sido el EXAMINE, esa línea sería: A0002 OK [READ-ONLY] SELECT completed

La línea:

* NO Mailbox vulnerable - directory /var/spool/mail must

have 1777 protection

se comentará más adelante, cuando se trate de la configuración del servidor IMAP.


En el estado seleccionado, además de todos los comandos explicados en los es-
tados mencionados anteriormente, están disponibles:

• CHECK

• CLOSE

• COPY

• EXPUNGE

284
Capítulo 7. Correo electrónico

• FETCH

• SEARCH

• STORE

• UID

El comando CLOSE simplemente cierra la carpeta que estaba seleccionada, y


el usuario vuelve al estado autenticado. Para tener acceso nuevamente a algún
buzón, el usuario tiene que utilizar otra vez el SELECT o el EXAMINE.
El comando CHECK es, básicamente, un pedido de que las pendencias relativas
a un determinado buzón se resuelvan. Por ejemplo, escritura en disco de algún
cambio que haya sido ejecutado solamente en la memoria del servidor. Si ocur-
riera algún cambio en el servidor (como por ejemplo, un nuevo mensaje), eso
puede revisarse, pero el servidor puede también simplemente contestar que se
ejecutó el comando con éxito.
El comando EXPUNGE borra definitivamente del buzón cualquier mensaje que
haya sido marcado como borrado. No se pueden recuperar más esos mensajes,
entonces use el comando con cuidado.
En buzones de correo grandes, es común que se quiera determinar cuáles men-
sajes satisfacen determinado criterio. Por ejemplo, se puede querer saber los
mensajes enviados por una determinada persona, o en un determinado día. El
comando SEARCH hace una búsqueda (sin diferenciación entre mayúsculas y
minúsculas) por una gran variedad de claves, como, por ejemplo, sólo mensajes
borrados, mensajes que sobrepasen un cierto tamaño, mensajes no respondidos,

285
Capítulo 7. Correo electrónico

entre otros:

A0003 SEARCH SUBJECT "francisco"

* SEARCH 2 4

A0003 OK SEARCH completed

A0004 SEARCH FROM juan TEXT "chinchilla"

* SEARCH 4

A0004 OK SEARCH completed

A0005 SEARCH FROM "Spiny Norman"

* SEARCH

A0005 OK SEARCH completed

Cuando llegue finalmente el momento de bajar los mensajes, se usa el comando


FETCH. Ese comando pide dos argumentos, una lista de mensajes que se de-
berán recibir y las partes de estos mismos mensajes. Eso quiere decir que se
pueden tomar primero los títulos6 de los mensajes y sólo descargar completa-
mente los que interesan, o combinando SEARCH y FETCH, ver la fecha de
envío de todos los mensajes de un determinado remitente.
Así como en el POP, todos los mensajes en un determinado buzón son numerados
en orden. El primer argumento para el FETCH indica los números de los men-
sajes que serán visualizados. Esa lista puede ser simplemente un número (sólo el
mensaje en aquella posición va a ser visualizado), una serie de números separados

6. subjects

286
Capítulo 7. Correo electrónico

por comas (sin espacio) o un intervalo, en la forma: <primer número>:<último


número>.
Hay muchas formas de informar cuál parte del mensaje se quiere visualizar, pero
una forma básica es:

BODY[<;sección>]

donde <sección> puede ser, por ejemplo, TEXT, HEADER o también se


puede usar la opción HEADER.FIELDS:

A0003 FETCH 2:4 BODY[HEADER.FIELDS (Subject)]

* 2 FETCH (BODY[HEADER.FIELDS ("SUBJECT")] {22}

Subject: ¡Francisco!

* 3 FETCH (BODY[HEADER.FIELDS ("SUBJECT")] {43}

Subject: My hovercraft is full of eels!

* 4 FETCH (BODY[HEADER.FIELDS ("SUBJECT")] {22}

Subject: ¡Francisco!

A0003 OK FETCH completed

287
Capítulo 7. Correo electrónico

A0004 FETCH 1,3 BODY[HEADER]

* 1 FETCH (BODY[HEADER] {310}

[Encabezamiento del primer mensaje]

* 3 FETCH (BODY[HEADER] {351}

[Encabezamiento del tercer mensaje]

A0004 OK FETCH completed

A0005 FETCH 2 (BODY[HEADER.FIELDS (Subject)] BODY[TEXT])

* 2 FETCH (BODY[HEADER.FIELDS ("SUBJECT")] {22}

Subject: ¡Francisco!

BODY[TEXT] {38}

Cena en casa de la abuela.

Abrazos de tu hermano,

Juan

A0005 OK FETCH completed

Para mover los mensajes entre carpetas, se puede usar el comando COPY:

COPY <mensajes> <carpeta>

288
Capítulo 7. Correo electrónico

Por ejemplo:

A0003 CREATE "mail/snorman"

A0003 OK CREATE completed

A0004 COPY 2:4 "mail/snorman"

A0004 OK COPY completed

A0005 STATUS INBOX (MESSAGES)

* STATUS INBOX (MESSAGES 5)

A0005 OK STATUS completed

A0006 STATUS "mail/snorman" (MESSAGES)

* STATUS mail/snorman (MESSAGES 3)

A0006 OK STATUS completed

Cuando se necesita alterar los atributos de un mensaje (el caso más común es
marcarlo como borrado, pero se puede marcarlo como no leído, por ejemplo),
se usa el comando STORE. Ese comando recibe como argumentos una lista de
números de mensajes (en el mismo formato del comando FETCH) sobre los
cuales debe actuar. Esta opción avisa si es necesario especificar exactamente los
atributos del mensaje (FLAGS), cuáles atributos se deben sumar a los ya exis-
tentes (+FLAGS) y cuáles atributos se deben sustraer (-FLAGS). Los posibles
atributos son:

\Answered: mensaje contestado.

289
Capítulo 7. Correo electrónico

\Deleted: mensaje marcado para ser borrado, ver el comando EXPUNGE.


\Draft: mensaje cuya composición no se finalizó.
\Flagged: mensaje simplemente “marcado”, normalmente para llamar la aten-
ción posteriormente.
\Seen: mensaje ya leído.
:

Hay un atributo, \Recent (mensaje nuevo en el buzón), que no se puede al-


terar, porque es intrínseco a un determinado instante en la sesión de un usuario
autenticado en el servidor IMAP.

A0003 STATUS INBOX (MESSAGES)

* STATUS INBOX (MESSAGES 4)

A0003 OK STATUS completed

A0004 STORE 1 +FLAGS (\Deleted)

* 1 FETCH (FLAGS (\Seen \Deleted))

A0004 OK STORE completed

A0005 EXPUNGE

* 1 EXPUNGE

* 3 EXISTS

* 0 RECENT

290
Capítulo 7. Correo electrónico

A0005 OK Expunged 1 messages

A0006 STATUS INBOX (MESSAGES)

* STATUS INBOX (MESSAGES 3)

A0006 OK STATUS completed

Los comandos COPY, FETCH, STORE y SEARCH reciben argumentos es-


pecificando sobre cuáles mensajes deben actuar. En los ejemplos, fue utilizado el
número secuencial que cada mensaje recibe al entrar en el buzón, pero cada men-
saje recibe también un identificador único (no necesariamente secuencial). Se
pueden registrar los mensajes de acuerdo con ese identificador por el comando
UID, que lleva como parámetros uno de los comandos anteriores y sus argumen-
tos, con los números de los mensajes sustituidos por los identificadores.
Finalmente, al terminar las tareas en el buzón, se termina la conexión:

A0002 LOGOUT

* BYE pluto IMAP4rev1 server terminating connection

A0013 OK LOGOUT completed

Connection closed by foreign host.

[francisco ~]$

291
Capítulo 7. Correo electrónico

La práctica

Configuración del POP y del IMAP

Hay varios servidores de POP e IMAP vía Internet. Entre ellos, se destacan el
Qpopper, el GNU pop3d (servidores POP) y el WU-IMAPd (que, a pesar del
nombre, tiene un servidor IMAP y uno POP). Éste último, desarrollado en la
Universidad de Washington, es el paquete que implementa ambos protocolos en
una configuración estándar de Conectiva Linux. La configuración de los servicios
no conlleva grandes dificultades: se debe instalar el paquete imap, descomentar
las líneas relevantes en /etc/inetd.conf:

pop-3 stream tcp nowait root /usr/sbin/tcpd ipop3d

imap stream tcp nowait root /usr/sbin/tcpd imapd

En seguida, se debe reiniciar el inetd:

# /etc/rc.d/init.d/inet restart

Y, finalmente, certificarse de que los servicios (o el servicio elegido) estén habi-


litados en /etc/services:

pop-3 110/tcp # POP version 3

pop-3 110/udp

imap2 143/tcp imap # Interim Mail Access Proto v2

292
Capítulo 7. Correo electrónico

imap2 143/udp imap

Configuración del SMTP

De acuerdo con lo que fue dicho anteriormente, se implementa el SMTP por un


MTA. La implementación del protocolo SMTP es mucho más crítica de lo que la
del POP y del IMAP, pues si estos últimos fallan, los mensajes quedan esperando
en el servidor hasta que el usuario pueda recibirlos de alguna manera. Si el SMTP
falla, se pueden perder algunos mensajes en el camino entre un servidor y otro.
Entre los MTAs disponibles, algunos de los más comúnmente usados son: Qmail,
Postfix y el Sendmail (el estándar utilizado en Conectiva Linux).
Quizás Sendmail sea el MTA más conocido de todos. Parte de esa fama se debe
a fallas de seguridad que, en el pasado, permitían incluso el acceso a la má-
quina como superusuario7 Esos problemas sucedían en virtud que software es
muy complejo. Quien ya trabajó con el archivo de configuración de Sendmail
(sendmail.cf) sabe lo que eso significa. Sin embargo, hoy en día, su desarrollo es
activo: se desarrolló un método de configuración más simple y Sendmail sigue
siendo un predeterminado como MTA.
Dos métodos de configuración de sendmail serán discutidos: a través de Linux-
conf (el configurador gráfico utilizado en Conectiva Linux) y el m4 (el método
“más sencillo ” mencionado).
7. root

293
Capítulo 7. Correo electrónico

El m4 no es un método de configuración en sí, sino un procesador de macros.


Permite que se use una sintaxis más simple en lugar de tratar de entender el
rebuscado archivo de configuración de Sendmail. Se puede generar un archivo de
configuración a partir de una serie de reglas usándose el m4. Admitiendo que el
archivo con las reglas en m4 sea /usr/lib/sendmail-cf/cf/arquivo.mc y se quiera
crear un archivo llamado sendmail.cf:

# cd /usr/lib/sendmail-cf/cf

# /usr/bin/m4 ../m4/cf.m4 archivo.mc > sendmail.cf

En Linuxconf, la configuración de Sendmail está dentro del menú Configuración


de Red, con el nombre Sendmail - sistema de envío de e-mails.
Un archivo en m4 utilizado para generar un sendmail.cf mínimo, pero funcional,
sería algo como:

divert(-1)

include(‘../m4/cf.m4’)

OSTYPE(‘linux’)

FEATURE(redirect)

FEATURE(always_add_domain)

FEATURE(use_cw_file)

FEATURE(local_procmail)

MAILER(procmail)

MAILER(smtp)

294
Capítulo 7. Correo electrónico

FEATURE(access_db)

FEATURE(relay_hosts_only)

Líneas empezando con “#” son consideradas comentarios, tanto en el archivo m4


como en el archivo final de configuración. Comentarios hechos en el archivo m4
son repasados para el sendmail.cf, a no ser que estén al principio del archivo y
bajo la directriz

divert(-1)

La directriz

divert(0)

revierte para el funcionamiento normal.

295
Capítulo 7. Correo electrónico

296
Capítulo 8. Seguridad en el Servidor

Seguridad es un asunto bastante amplio, que podría tratarse en un libro completo.


Justamente por eso, el propósito de este capítulo no es el de ser una guía completa
de seguridad, sino mostrar cómo aumentar la seguridad de su Conectiva Linux.

Visión general sobre seguridad

Actualmente, conectar redes locales a Internet es algo bastante común y aunque


eso pueda traer ventajas, también puede traer varios problemas. Desafortunada-
mente, formar parte de Internet significa estar expuesto a una gran variedad de
amenazas, lo que obliga a cualquier administrador a preocuparse con la seguridad
de sus sistemas. Mientras las redes existen para facilitar el acceso a los computa-
dores, los procedimientos de seguridad existen para controlar dicho acceso.
El primer concepto relacionado con seguridad es: “no existe un sistema completa-
mente seguro”. Lo que se puede hacer es dificultar la invasión en su computador.
El trabajo necesario para proteger su sistema dependerá básicamente de lo que
tenga para proteger y de cuan importante es proteger este sistema.
Note que, de manera general, cuánto más seguro se haga el sistema, más com-

297
Capítulo 8. Seguridad en el Servidor

pleja será su utilización, pues habrá varias restricciones en su empleo. Es impre-


scindible tener un buen criterio en el momento de aplicar las medidas de seguri-
dad, para evitar que el remedio sea peor que la enfermedad.
Antes de tomar cualquier actitud relacionada con el aumento de seguridad en el
sistema, debe saber lo que está protegiendo, por qué y cuánto vale esta infor-
mación. Además, es necesario verificar a qué tipo de amenazas está expuesto su
sistema. El sistema denominado RFC 1244, Site Security Handbook, por Hol-
brook Reynold et al., identifica tres tipos distintos de amenazas a la seguridad,
generalmente asociadas a las conexiones de la red:

Acceso no autorizado:

Acceso al sistema por alguien no autorizado.

Revelación de información:

Cualquier problema que se relacione al acceso de información valiosa o confidencial


por personas que no deberían acceder a ellas.

Negación de Servicio:

También conocido como Denial of Service - DoS - es cualquier problema que vuelva
imposible o muy difícil, continuar utilizando el sistema en forma productiva.

Dependiendo del sistema en cuestión, estas amenazas pueden ser más o menos
importantes. Por ejemplo, para un órgano de gobierno o empresa del área de tec-

298
Capítulo 8. Seguridad en el Servidor

nología, los accesos no autorizados, pueden desacreditarlos ante el público o los


clientes. Mientras que para la gran mayoría de las empresas, el acceso no autori-
zado, no es un gran problema, si no involucra una de las amenazas: revelación de
información y negación de servicio.
La extensión del problema en casos de revelación de información varía de acuerdo
con la información que se puede comprometer. Aunque sea un hecho notorio que
la información reservada, no deba jamás permanecer almacenada en computa-
dores conectados a Internet, en algunos casos, ciertos tipos de información, como
las personales de clientes o números de tarjetas de crédito, puede ser necesaria
en aplicaciones de comercio electrónico, por ejemplo. En este tipo de caso, el
cuidado debe ser redoblado.
La negación del servicio puede causar grandes perjuicios a las empresas que
conectan los sistemas de misión crítica con Internet. En realidad, las ventajas
se deben evaluar muy bien antes de conectar este tipo de sistema a Internet, pues,
según el caso , esta conexión puede parar una empresa por completo. General-
mente los servidores menores se conectan a Internet, posiblemente accediendo a
la información de un servidor principal a través de un modo más seguro.
Obviamente que, si la necesidad es justamente la de prestar un servicio en Inter-
net, todos estos riesgos existirán. Para disminuirlos, es necesario tomar algunas
precauciones, como deshabilitar los servicios innecesarios, utilizar el control de
acceso por medio de herramientas como tcp_wrappers, instalar y configurar un
firewall entre su red local y redes externas (generalmente entre su red local e In-
ternet). También es importante analizar constantemente los logs y la integridad
de archivos importantes del sistema. Conectiva Linux cuenta con las herramientas
necesarias para ayudarlo en la tarea de hacer su sistema más seguro.

299
Capítulo 8. Seguridad en el Servidor

Finalizando esta introducción, mantener un sistema seguro involucra varios pro-


cedimientos, entre los cuales el más importante es mantener un control constante
del sistema, para anotar cualquier anormalidad antes que se vuelva un problema
grave.

Deshabilitando servicios innecesarios

Los servicios habilitados normalmente en su Conectiva Linux dependen del perfil


empleado en la instalación del sistema. Por lo tanto, después de instalarlo, se debe
verificar cuáles de ellos realmente necesitan estar habilitados. Básicamente, hay
dos tipos de servicios: los que se ejecutan en el modo standalone y los que se
ejecutan mediante inetd.

Servicios Standalone
Servicios que se ejecutan en el modo standalone se ejecutan generalmente du-
rante la iniciación del sistema, mediante los scripts de iniciación. Apache, Send-
mail y Samba son ejemplos de servicios que suelen ejecutarse durante el boot del
sistema.
Una de las herramientas que se pueden utilizar para configurar los servicios que

300
Capítulo 8. Seguridad en el Servidor

se ejecutarán es ntsysv. Verifique si está instalado con el comando siguiente:


# rpm -q ntsysv

Si la respuesta para este comando es “paquete ntsysv no está instalado”, usted


debe instalarlo a partir del CD 1 deConectiva Linux. Con el CD montado en/mnt/cdrom,
ejecute el comando siguiente , como superusuario, para instalar el programa:

# rpm -ivh /mnt/cdrom/conectiva/RPMS/ntsysv*

Con el programa instalado, como superusuario, ejecútelo, tecleando el comando:


# ntsysv

La Figura 8-1 ilustra la pantalla del programa ntsysv. Mediante esta pantalla,
usted puede (y debe) deshabilitar todos los servicios que no se utilizan. Para
obtener una descripción de un servicio, selecciónelo y pulse la tecla de función
F1. Note que otros tipos de servicios se inician automáticamente y no solamente
servicios de red. El servicio gpm, por ejemplo, agrega soporte a mouse para apli-
caciones que ejecutan en modo texto. Tome el cuidado de deshabilitar solamente
los servicios que no se deben utilizar en el computador. Por ejemplo, no deshabi-
lite el servicio httpd si fuera necesario ejecutar un servidor web en el computador.

301
Capítulo 8. Seguridad en el Servidor

Figura 8-1. Configuración de iniciación de servicios

El ntsysv configura solamente el nivel de ejecución actual. Si usted desea confi-


gurar otros niveles de ejecución, estos niveles se pueden especificar en la línea de
comando, mediante la opción --levels. Es posible configurar varios niveles de
ejecución simultáneamente. Ejecutando el comando # ntsysv --levels 345, por
ejemplo, serían configurados los niveles 3, 4 y 5 de una vez. En este caso, si un
servicio se marca como habilitado, será habilitado en todos los niveles de ejecu-
ción especificados. De manera análoga, al deshabilitar un servicio, el mismo será
deshabilitado en todos los niveles de ejecución especificados.
Existen dos opciones para salir del programa. Si se utiliza el botón Ok, las al-
teraciones se guardarán. Si se utiliza el botón Cancelar, no se considerará nin-
guna alteración efectuada.

302
Capítulo 8. Seguridad en el Servidor

Servicios ejecutados mediante inetd

Al inetd que también se lo conoce como “internet super-server”, es un daemon


que se ejecuta generalmente en la iniciación del sistema y que espera por cone-
xiones en algunos sockets internet específicos. Cuando se establece una conexión
en alguno de estos sockets, verifica a cuál servicio corresponde el socket e invoca
al programa capaz de servir la requisición en cuestión. Resumiendo inetd invoca
daemons bajo demanda, reduciendo la carga del computador. Obviamente, este
tiempo necesario para invocar un daemon bajo demanda puede ser perjudicial en
servicios muy utilizados y es por eso que muchos servicios no se pueden ejecutar
mediante inetd.
La configuración de inetd está en el archivo /etc/inetd.conf, aunque el archivo
/etc/services se use también para referir los nombres de los servicios hacia sus
respectivas puertos y protocolos. Estos archivos se pueden alterar mediante un
editor de textos, o si no a través de Linuxconf. Configurar al inetd mediante Li-
nuxconf habitualmente elimina errores groseros, porque hace una validación de
los datos antes de agregar la información a los archivos correspondientes.
La configuración de inetd en Linuxconf se efectúa mediante la configuración
de Configuración →Configuración de Red → Tareas como servidor →
Servicios Internet. Esta configuración comprende la administración del archivo
/etc/services (opción Servicios de red para Internet) y la administración del ar-
chivo /etc/inetd.conf (opción Base de datos de los servidores de internet).
A través de la opción Servicios de red para Internet se puede agregar, modificar
o retirar la referencia del nombre de un servicio para su respectivo puerto y pro-

303
Capítulo 8. Seguridad en el Servidor

tocolo. La Figura 8-2 ilustra la configuración del servicio denominado pop-3.

Figura 8-2. Configuración de /etc/services

Lo que realmente nos interesa en la configuración de los “Servicios Internet” se


encuentra en la opción Base de datos de los servidores de internet. En este lugar
es posible deshabilitar todos los servicios innecesarios (o habilitar los necesarios,
si fuera el caso).
Para deshabilitar un servicio, basta seleccionarlo en la lista y, en la ventana que
aparece en seguida, marcarlo como Desactivado, como está ilustrado en la Figura
8-3.

304
Capítulo 8. Seguridad en el Servidor

Figura 8-3. Deshabilitando un Servicio

Como regla general, mantenga deshabilitados los servicios:

• echo,

305
Capítulo 8. Seguridad en el Servidor

• discard,

• daytime,

• chargen,

• shell,

• login,

• exec,

• talk (y similares),

• tftp,

• bootps,

• finger (y similares),

• systat,

• netstat y

• time.

Estos servicios difícilmente se necesitan en su computador y los posibles inva-


sores, suelen utilizarlos como muestra de lo que está habilitado en la máquina que

306
Capítulo 8. Seguridad en el Servidor

pretenden invadir. Además de éstos, deshabilite todos los que no se utilizarán.


Por ejemplo, si no se necesita un servidor FTP en el computador, retírele la ha-
bilitación y si es posible, desinstale del sistema el paquete correspondiente.

Utilización de TCP_Wrappers

El paquete tcp_wrappers se puede usar para controlar el acceso a algunos ser-


vicios, por ejemplo finger, telnet y ftp, entre otros. Como no todos los daemons
soportan usar tcpd 1, para control de acceso, siempre se debe consultar la do-
cumentación de los programas antes de intentar configurarlos para utilizar el
tcp_wrappers. Algunos de estos programas tienen su propio sistema de admi-
nistración y control de acceso que se podría emplear en lugar del tcpd.
Conectiva Linux ya viene configurado para utilizar al tcpd en todos los daemons
posibles y recomendados. De todos modos, configurar un daemon para utilizar
al tcpd es muy sencillo, considerando que el daemon en referido soporta el uso
de tcp_wrappers. La Figura 8-4 muestra la configuración de un servidor FTP
sin el uso de tcp_wrappers y la Figura 8-5 ilustra el mismo servidor, pero esta

1. Este es el nombre del programa responsable por el control de los servicios, en el paquete
tcp_wrappers.

307
Capítulo 8. Seguridad en el Servidor

vez utilizando tcp_wrappers. Esta configuración se encuentra en Configuración


→Configuración de Red→ Tareas del servidor → Servicios de Internet →
Base de datos de los servidores de internet → ftp.

Figura 8-4. Servidor FTP sin tcp_wrappers

308
Capítulo 8. Seguridad en el Servidor

Compare la configuración Ruta del servidor Path entre la Figura 8-4 y la Figura
8-5, a continuación.

Figura 8-5. Servidor FTP Utilizando tcp_wrappers

309
Capítulo 8. Seguridad en el Servidor

Después de configurar un daemon para utilizar el paquete tcp_wrappers es ne-


cesario configurar el control de acceso propiamente dicho. Esta configuración se
puede efectuar por medio de los archivos /etc/hosts.allow y /etc/hosts.deny. En
el archivo /etc/hosts.deny se configuran reglas para negar los servicios a deter-
minados clientes, al mismo tiempo en el archivo /etc/hosts.allow se configuran
las reglas para permitir que determinados clientes tengan acceso a los servicios.
Hay decenas de posibilidades de configuración para tcp_wrappers y usted puede
estudiarlas por completo por medio de las páginas de manual hosts_access(5) y
hosts_options(5). Por lo tanto, ilustraremos solamente algunos casos interesantes
del uso de esta herramienta.
Las reglas de control de acceso que hay en estos dos archivos tienen el formato
siguiente:

lista_de_daemons : lista_de_clientes [ : comando ]

lista_de_daemons

Lista de uno o más nombres de daemons como los especificados en /etc/inetd.conf,


o comodines.

lista_de_clientes

Lista de una o más direcciones, nombres de computadores estándar o comodines que


se utilizan para especificar, cuáles son los clientes que pueden y los que no pueden
acceder al servicio.

310
Capítulo 8. Seguridad en el Servidor

comando (optativo)

Es posible ejecutar un comando siempre que la regla coincida con un estándar. Vea
los ejemplos siguientes.

Como se ha citado anteriormente, los comodines se pueden utilizar tanto en la


lista de daemons como en las listas de clientes. Entre los existentes, se pueden
destacar los siguientes:

ALL

Significa todos los daemons o todos los clientes, lo que depende solamente del
campo en que se encuentran.

LOCAL

Este comodín se ajusta a cualquier nombre de computador que no contenga un


carácter punto “.”, o sea, un computador local.

PARANOID

Se ajusta con cualquier nombre de computador que no coincida con su dirección.


Esto generalmente ocurre cuando algún servidor DNS está mal configurado o cuando
algún computador está intentando hacerse pasar por otro.

En la lista de clientes se pueden utilizar los nombres o las direcciones de los

311
Capítulo 8. Seguridad en el Servidor

computadores, o también las predefiniciones que especifican a un conjunto de


computadores. Si la cadena de caracteres que identifica a un cliente empieza con
un punto “.”, el nombre de un computador coincidirá con este patrón, siempre
que su final se ajuste a la predefinición especificada. Por ejemplo, si se utilizara
la cadena de caracteres “.conectiva.com.br”, el nombre de computador “gate-
way.conectiva.com.br” coincidiría con el patrón.
De manera semejante, si la cadena de caracteres termina con un punto “.”, una
dirección de computador coincidirá con el patrón cuando sus campos numéricos
iniciales, coincidan con la cadena de caracteres especificada. Como ejemplo, si se
utilizase la cadena de caracteres “192.168.220.”, todas las máquinas que tengan
una dirección IP que se inicie con estos 3 conjuntos de números coincidirán con
el patrón (192.168.220.0 al 192.168.220.255).
Además de estos métodos, es posible identificar a un cliente por medio de IP /
máscara de red. Puede especificar, por ejemplo, 192.168.220.0 / 255.255.255.128
y cualquier máquina con dirección IP entre 192.168.220.0 y 192.168.220.127
coincidiría con el patrón.
Nada mejor que los ejemplos prácticos para facilitar el entendimiento. Una buena
política, es la de cerrar completamente el acceso de todos los servicios a cualquier
cliente mediante el archivo /etc/hosts.deny y liberar selectivamente el acceso a
los servicios necesarios por medio del archivo /etc/hosts.allow. En el Ejemplo
8-1, tenemos una configuración en la que liberamos el acceso a FTP solamente
al dominio “red.net”, el acceso al servidor POP3 para cualquier máquina, todos
los servicios para “localhost” y negamos los demás servicios para todas las otras
máquinas.

312
Capítulo 8. Seguridad en el Servidor

Ejemplo 8-1. Ejemplo de Configuración de tcp_wrappers

Abajo, el archivo /etc/hosts.deny.


# hosts.deny

# Este archivo hace una lista con los nombres de los computadores que

# _NO_ tienen permiso para usar los servicios ofrecidos por esta

# máquina a través de INET, usando el servidor

# /usr/sbin/tcpd (tcp_wrapper) para chequear los permisos.

# Recomendamos que se lea el manual hosts_access, en la sección

# 5; para eso ejecute:

# man 5 hosts_access

# Recuerde que el portmap nuevo, utiliza este archivo para decidir cuáles

# máquinas pueden acceder a los servicios de NFS ofrecidos por este computador.

ALL:ALL

Archivo /etc/hosts.allow.
# hosts.allow

# Este archivo hace una lista con los nombres de los computadores que tienen

# permiso para usar los servicios ofrecidos por esta

# máquina a través de INET, usando el servidor

# /usr/sbin/tcpd (tcp_wrapper) para chequear los permisos.

313
Capítulo 8. Seguridad en el Servidor

# Recomendamos que se lea el manual hosts_access, en la sección

# 5; para eso ejecute:

# man 5 hosts_access

ALL: localhost

in.ftpd: .rede.net

ipop3d: ALL

En el Ejemplo 8-2, considere el mismo archivo /etc/hosts.deny del ejemplo an-


terior.

Ejemplo 8-2. Configuración de tcp_wrappers Menos Restrictiva

Archivo /etc/hosts.allow.
# hosts.allow

# Este archivo lista los nombres de los computadores que tienen

# permiso para usar los servicios ofrecidos por este

# computador mediante INET, usando el servidor

# /usr/sbin/tcpd (tcp_wrapper) para chequear permisos.

# Recomendamos que se lea el manual hosts_access, en la sección

# 5; para eso ejecute:

# man 5 hosts_access

314
Capítulo 8. Seguridad en el Servidor

ALL: localhost

in.ftpd: .rede.net 200.234.123.0/255.255.255.0 200.248.

ipop3d: ALL EXCEPT hackerboys.org

En este último caso, los computadores de la red “200.234.123.0/255.255.255.0” y


computadores en los que la dirección IP se inicia por “200.248.” también pueden
acceder al servicio FTP. Note que utilizamos un operador nuevo para el servicio
ipop3d: EXCEPT. Esto permitió que el acceso a este servicio se liberara para
todos, excepto para los computadores de la red “hackerboys.org”.
El operador EXCEPT se puede utilizar ya sea de la lista de clientes, como de la
lista daemons. Por ejemplo, la línea:

ALL EXCEPT in.ftpd: ALL

en el archivo /etc/hosts.allow, se permite el acceso a todos los servicios para


cualquier máquina, exceptuando al FTP.
Todos los accesos, con o sin éxito, se registran mediante syslog. En Conectiva
Linux, esta información se registra en el archivo /var/log/secure. Se recomienda
que este archivo se analice periódicamente buscando intentos de invasión.
Otros ejemplos de configuración se describen en las páginas del manual de la
sección 5 citadas anteriormente (hosts_access y hosts_options).

315
Capítulo 8. Seguridad en el Servidor

Firewall mediante el filtro de paquetes

Un firewall es un sistema que aisla redes diferentes y permite que se controle el


tránsito entre ellas. Un ejemplo típico, donde se recomienda el uso de un firewall
es en la conexión de una red local para Internet. Aunque el concepto de firewall
sea bastante amplio y pueda involucrar a los servidores proxy, a los analizadores
de logs y filtros de paquetes, entre otras características, nos detendremos en esta
sección en el filtro de paquetes proporcionado por el núcleo de Linux.
El núcleo de Linux cuenta con un filtro de paquetes bastante funcional y permite
que su máquina descarte o acepte los paquetes IP, con base en el origen, el destino
y la interfaz por la que el paquete se recibió. El origen y el destino de un paquete
se caracterizan por una dirección IP, un número de puerto y por el protocolo.
Todo el tráfico a través de una red, se envía en el formato de paquetes. El comienzo
de cada paquete informa para donde está yendo, de dónde vino y el tipo de pa-
quete entre otros detalles. La parte inicial de este paquete, entre otros detalles,
se denomina encabezamiento. El resto del paquete que contiene la información
propiamente dicha, suele denominarse, cuerpo del paquete.
Un filtro de paquetes analiza el encabezamiento de los paquetes que pasan por
el computador y decide lo que hacer con el paquete entero. Las acciones que se
pueden tomar con relación al paquete son:

aceptar: el paquete puede seguir hasta su destino.


rechazar: el paquete será descartado, como si la máquina jamás lo hubiese recibido.

316
Capítulo 8. Seguridad en el Servidor

bloquear: el paquete será descartado, pero el origen del paquete tendrá la información
sobre la acción que se tomó.

El filtro de paquetes del núcleo se controla con reglas de firewall, que se pueden
dividir en cuatro categorías: cadena de entrada (input chain), cadena de salida
(output chain), cadena de reenvío (forward chain) y las cadenas definidas por
el usuario (user defined chain). Para cada una de estas cadenas se mantiene una
tabla de reglas separada.
Una regla de firewall especifica los criterios de análisis de un paquete y su albo
(target). Si el paquete no encaja con el patrón especificado por la regla, se analiza
la regla siguiente de la cadena. Si esta vez el paquete se ajusta con el patrón, la
regla siguiente se define por el blanco que puede ser el nombre de una cadena
definida por el usuario, o uno de los siguientes valores especiales:

ACCEPT

Significa que el filtro de paquetes debe dejar pasar el paquete.

DENY

Significa que el filtro de paquetes debe impedir que el paquete siga adelante.

REJECT

Así como DENY, significa que el paquete no debe seguir adelante, pero un mensaje

317
Capítulo 8. Seguridad en el Servidor

ICMP se envía al sistema generador del paquete, avisándole que se rechazó el pa-
quete. Note que DENY y REJECT tienen el mismo significado para paquetes ICMP.

MASQ

Este blanco solamente es válido para la cadena de reenvío y para cadenas definidas
por el usuario y solamente se puede utilizar cuando el núcleo es compilador con
soporte para IP Masquerade. En este caso, los paquetes se enmascararán como si
hubieran sido originados por la máquina local.

REDIRECT

Este blanco solamente es válido para la cadena de entrada y para cadenas defini-
das por el usuario y solamente se puede utilizar si el núcleo fue compilado con la
opción de Transparent proxy. Con esto, los paquetes se dirigirán para un socket lo-
cal, aunque hayan sido enviados para una máquina remota. Obviamente eso sólo
tiene sentido si la máquina local se utiliza como gateway para otras máquinas. Si
el puerto especificado para cambiar de dirección es “0” que es el valor patrón, el
puerto de destino de los paquetes se utilizará como puerto de redireccionamiento.
Si se especificó otro puerto cualquiera, éste será utilizado, independientemente de
aquél especificado en los paquetes.

RETURN

Si a la regla que contiene el blanco RETURN, la ha llamado otra de ellas, se


analizará la que le sigue en la cadena que la llamó. Si no ha sido llamada por otra
regla, se utiliza la política estándar de la cadena, para definir el destino del paquete.

318
Capítulo 8. Seguridad en el Servidor

La configuración del filtro de paquetes en el núcleo 2.2 se efectúa mediante el


programa de línea de comando ipchains. Sin embargo, Linuxconf tiene un mó-
dulo de configuración de filtro de paquetes que facilita bastante esta tarea. Antes
de intentar configurar el filtro de paquetes, asegúrese de que el paquete ipchains
está instalado y que además el módulo firewall está habilitado en el Linuxconf2.
Para verificar si ipchains está instalado, ejecute el comando:
# rpm -q ipchains

Si la respuesta para este comando fuera “paquete ipchains no está instalado”,


usted debe instalarlo a partir del CD 1 de Conectiva Linux. Con el CD montado
en /mnt/cdrom, ejecute el comando siguiente , como superusuario, para instalar el
programa:

# rpm -ivh /mnt/cdrom/conectiva/RPMS/ipchains*

Ya para verificar si el módulo de Linuxconf está habilitado, siga los pasos de-
scriptos en el capítulo de Linuxconf.

Configuración del filtro de paquetes por Linuxconf

La configuración del filtro de paquetes en Linux es bastante flexible y fácilmente


2. Este módulo está habilitado por defecto, en Conectiva Linux.

319
Capítulo 8. Seguridad en el Servidor

se puede volver una tarea complicada. El sistema Linuxconf propone una lógica
simple que facilita la configuración de las reglas de firewall. Al mismo tiempo que
esta lógica ayuda a crear y mantener las configuraciones de un firewall básico,
impide que algunas configuraciones más sofisticadas se generen con Linuxconf.
Dentro de esta lógica, cuando usted activa cualquiera de las tres cadenas (entrada,
salida o reenvío), Linuxconf configurará la política estándar de la cadena como
DENY. Todas las reglas que usted agregue son aberturas en el firewall. Si usted no
agrega ninguna regla, su computador quedará completamente aislado. Note que,
a causa de esta filosofía, Linuxconf no soporta cadenas definidas por el usuario,
entre otras funciones.
En general, configurando solamente la cadena de entrada llamada firewall por
entrada en Linuxconf, ya tenemos un buen control sobre lo que se puede acceder
en la máquina. Para habilitar la cadena de entrada, marque la opción “Reglas
de entrada” en Configuración → Configuración de Red → Firewalling →
Firewalling: valores por defecto .
Como se ha mencionado antes, esto hará que la política estándar de la cadena
de entrada sea DENY. Por lo tanto, usted debe agregar reglas para reducir esta
restricción, de manera que sea posible acceder a algo en el computador.
Suponiendo que se quiera permitir solamente el acceso a un servidor web que
escucha en el puerto 80 del computador y bloquear todo el resto, una sola regla
sería suficiente.
Usted debe, entonces, agregar una regla de firewall por entrada (Configura-
ción →Configuración de Red→ Firewalling → Redireccionamiento de en-
trada). La Figura 8-6 ilustra la ventana de configuración de reglas de entrada.

320
Capítulo 8. Seguridad en el Servidor

Figura 8-6. Configuración de reglas de entrada

En esta ventana hay un checkbox que permite activar o desactivar la regla. A

321
Capítulo 8. Seguridad en el Servidor

continuación están los siguientes campos:

Comentario

Local para describir la regla de forma sucinta

Protocolo

Lugar donde se especifica para que protocolos es válida la regla en cuestión. Los
valores posibles son: all, para todos los protocolo; tcp; udp e icmp.

Política de reglas

Define la política de la regla, especificando qué es lo que hará con los paquetes que
llegaron hasta la regla. La política puede ser aceptar, rechazar o denegar (ACCEPT,
REJECT o DENY, respectivamente).

El resto de la información necesaria para configurar una regla, están dispuestas


en tres guías. La Figura 8-7 ilustra la guía “Hacia”, que como se puede ver, es
idéntica a la guía “Desde”, ilustrada en la Figura 8-6. De todos modos, los datos
insertados en la guía “Desde” se refieren al origen del paquete, mientras que en
la guía “Hacia” los datos se refieren al destino del mismo.

322
Capítulo 8. Seguridad en el Servidor

Figura 8-7. Configuración de guías

Los campos que hay en ambas guías (Desde y Hacia) se describen a continuación:

323
Capítulo 8. Seguridad en el Servidor

Nombre de máquina o red

Lugar para especificar el origen (guía Desde) o destino (guía Hacia) de un paquete.
Especifique de preferencia una dirección IP, aunque sea posible especificar un nom-
bre de computador, que se resolverá después por DNS.

Máscara de red

Lugar para definir la máscara de red referida a la dirección IP (o nombre de máquina)


utilizado en el campo indicado arriba. Trate siempre de informar una máscara de red,
para evitar que Linuxconf piense por usted.

Rango de puertos

Lugar para especificar un rango de puertos de origen (guía Desde) o de destino (guía
Hacia) del paquete al que se refiere la regla.

Otros puertos

Lugar para especificar otros puertos de origen (guía Desde) o de destino (guía Hacia)
del paquete al que la regla se refiere.

Aceptar Paquete Syn de TCP

Si esta opción se deshabilita (cuando por defecto está habilitada), no se aceptarán


los paquetes que solicitan el comienzo de una conexión. Solamente tiene sentido
deshabilitar esta opción, cuando la regla especifica el protocolo TCP y la política de

324
Capítulo 8. Seguridad en el Servidor

la regla es “aceptar”.

Interfaz de entrada

Local para especificar la interfaz por la cual el paquete debe estar entrando.

La guía siguiente es la guía “Opciones” (Figura 8-8).

325
Capítulo 8. Seguridad en el Servidor

Figura 8-8. Configuración de la Guía Opciones

Esta guía cuenta con los siguientes campos:

326
Capítulo 8. Seguridad en el Servidor

Esta regla es bidireccional

Si esta opción estuviera marcada (por defecto), la regla se repetirá con el origen y
destino invertidos. Es por esto que Linuxconf le permite especificar la interfaz dos
veces. Si a usted no le gusta este comportamiento, desactive entonces la opción.

Factor de ordenación

Permite que usted le atribuya un valor para cada regla, de manera que usted pueda
ordenarlas como lo desee. Las reglas con factor menor se evaluarán primero.

Logging está activado

Si se habilita esta opción, el núcleo imprimirá la información sobre el paquete por


medio de la función printk(), siempre que un paquete se ajuste con la regla en
cuestión. En Conectiva Linux, esto significa que dicha información se grabará en
el archivo /var/log/messages.

Redirigir a un puerto local

Si se habilita esta opción, los paquetes que se ajusten con la regla en cuestión se
dirigirán para el computador local. Usted podría, por ejemplo, encaminar todos los
paquetes destinados a un servidor FTP de su red, para un puerto local del computa-
dor, utilizado como gateway.

327
Capítulo 8. Seguridad en el Servidor

Puerto redirigido

Si no se especificó ningún puerto en este campo, el puerto de destino del paquete


se utilizará como puerto de encaminamiento. Si se especificó algún puerto, éste se
utilizará como puerto de encaminamiento.

Es posible que, al agregar una regla equivocada, su computador pare de funcionar


correctamente. En este caso, utilice el comando netconf --resetfw que todas las re-
glas del filtro de paquetes, se desactivarán temporalmente.

Además de agregar reglas para paquetes que entren en el computador, es posi-


ble agregar reglas para paquetes que salgan del computador y para paquetes que
pasan a través del computador, de una interfaz de red para otra. En Linuxconf
se utilizan los términos “Firewalling de salida” y “Forward firewall ”, respectiva-
mente, para definir estos dos tipos de reglas. Mientras que, las reglas de salida no
se usan mucho en gran parte de los casos, reglas de reenvío se utilizan común-
mente cuando se tiene un computador como gateway entre una red local y la
Internet (u otra red cualquiera).
Por este motivo, nos detendremos en la explicación del “Forward firewalling”.
Además, la configuración de las reglas de entrada y de salida son semejantes,
aunque la lógica esté invertida. En la Figura 8-9, se puede observar un ejemplo
típico de uso de “Forward firewalling”.

328
Capítulo 8. Seguridad en el Servidor

329
Capítulo 8. Seguridad en el Servidor

En este diseño, considere que las direcciones IP de la red local son públicos, o sea,
se pueden utilizar en Internet y fueron designados por la empresa que proporciona
la conexión.
Para permitir que las máquinas de la red local, puedan acceder a los computadores
que hay en Internet no se necesita ninguna regla de reenvío. La única exigencia, es
que el núcleo esté compilado con “IP firewalling” y que el mismo esté habilitado.
La forma de habilitar esta característica del núcleo es la de efectuar el siguiente
comando, como superusuario:
# echo 1 > /proc/sys/net/ipv4/ip_forward

Conectiva Linux puede habilitar esta característica automáticamente, durante la


iniciación del sistema. Para que ocurra esto, debe haber una línea con:

IP_FORWARD="yes"

IP_FORWARD="true"

en el archivo /etc/sysconfig/network. Si el valor de esta variable fuera “no” o


“falsa”, Conectiva Linux no habilitará esta característica durante la iniciación del
sistema.
Aunque no se necesite ninguna regla de reenvío para hacer posible que los com-
putadores de la red local accedan a Internet, puede ser interesante bloquear el
acceso para algunos servicios. Por ejemplo, puede ser útil bloquear el repase de
paquetes que se destinan al puerto 80 (HTTP, generalmente), para forzar el uso

330
Capítulo 8. Seguridad en el Servidor

de un servidor proxy para acceder a web. La configuración de esta regla se ilustra


en las figuras siguientes.

331
Capítulo 8. Seguridad en el Servidor

Figura 8-10. Forward firewalling - Desde

332
Capítulo 8. Seguridad en el Servidor

Figura 8-11. Forward firewalling - Hacia

333
Capítulo 8. Seguridad en el Servidor

Figura 8-12. Forward firewalling - Opciones

Como Linuxconf pone la política estándar de la cadena como “DENY”, en cuanto

334
Capítulo 8. Seguridad en el Servidor

se la habilita, se necesita agregar una regla más; explícitamente, libertando el


acceso en los demás casos (cuando el destino del paquete no sea el puerto 80 de
un computador cualquiera). Añada entonces, una regla de reenvío, según ilustran
las figuras siguientes.

335
Capítulo 8. Seguridad en el Servidor

Figura 8-13. Añadiendo una regla de origen del paquete

336
Capítulo 8. Seguridad en el Servidor

Figura 8-14. Añadiendo una regla de destino del paquete

337
Capítulo 8. Seguridad en el Servidor

Figura 8-15. Forward firewalling - Agregando una regla

Note que, en esta última regla, el Factor de ordenación se definió como “100”,

338
Capítulo 8. Seguridad en el Servidor

para que esta regla sea evaluada por último. Cualquier paquete bloqueado por la
regla anterior no llegará hasta esta última.

No se olvide de habilitar las “Reglas de reenvío” (Configuración → Configuración


de Red → Firewalling → Firewalling: valores por defecto ) o estas reglas no se
evaluarán.

Otra situación bastante típica está ilustrada en Figura 8-16.

339
Capítulo 8. Seguridad en el Servidor

340
Capítulo 8. Seguridad en el Servidor

En esta situación, las direcciones IP de la red local son privadas, o sea, los com-
putadores no forman parte de Internet. Estas máquinas solamente pueden acceder
a Internet a través de un servidor proxy o si el gateway hace algún tipo de NAT
(Network Address Translation). El núcleo de Linux proporciona esta funciona-
lidad a través de la característica conocida como “IP Masquerade” (enmascara-
miento de IP). Configurar esta funcionalidad en Conectiva Linux es tan simple
como configurar las reglas de reenvío demostradas anteriormente. La única difer-
encia es que se debe marcar la opción enmascarar que hay en la ventana de
configuración de la regla. Observe el ejemplo de Figura 8-17.

341
Capítulo 8. Seguridad en el Servidor

Figura 8-17. Configurando el enmascaramiento de IP

El resto de la regla se debe configurar normalmente (origen del paquete, destino

342
Capítulo 8. Seguridad en el Servidor

y opciones). Resumiendo el funcionamiento del “Enmascaramiento de IP”, sirve


para que el núcleo traduzca los IPs de la red local que son privados, para el IP de
la interfaz que tiene un IP público. Cuando una máquina de la red hace un pedido,
éste se encamina por medio del gateway que hace esta traducción de direcciones,
rehace el pedido para el computador de destino y cuando recibe la respuesta, la
envía para el computador que hizo la solicitud.
Esta técnica no funciona en todos los casos, pues algunos protocolos requieren
que la máquina remota abra una conexión con el cliente y cuando se utiliza “IP
Masquerade” esto generalmente no es posible. Es por este motivo que algunos
programas no funcionan con perfección en una red que utiliza enmascaramiento
de IP. A pesar de eso, los servicios simples como WWW y el correo electrónico,
funcionan perfectamente. El núcleo de Linux cuenta con algunos módulos espe-
ciales que aumentan la capacidad del “IP Masquerade”, para que pueda funcionar
con más protocolos y programas. A través de Linuxconf, en Configuración →
Configuración de Red → Firewalling → Firewalling: valores por defecto
, usted puede habilitar estos módulos (CuSeeMe, FTP e IRC, entre otros). La
Figura 8-18 ilustra esta pantalla de configuración.

343
Capítulo 8. Seguridad en el Servidor

Figura 8-18. Firewall - Enmascaramiento de IP

Consulte otras informaciones en Internet en el sitio Linux IP Masquerade Re-


source (http://ipmasq.cjb.net); usted puede encontrar información sobre la confi-
guración del “Enmascaramiento de IP” en el sitio Masq Apps (http://www.tsmservices.com/ma

344
Capítulo 8. Seguridad en el Servidor

Verificando la integridad del sistema

Una de las primeras acciones de un invasor suele ser sustituir los archivos y
programas del sistema con la intención de enmascarar su visita actual y, prin-
cipalmente, facilitar las visitas futuras. Por lo tanto, si hubiera la posibilidad de
verificar la integridad de los archivos del sistema, hay grandes posibilidades de
detectar una invasión. Lo mejor de este recurso es que permite que se sepa cuáles
archivos fueron modificados; haciendo posible que el administrador decida entre
instalar nuevamente el sistema o solamente sustituir los archivos alterados por los
originales.
Después de notar que el computador fue invadido, el administrador suele analizar
el sistema utilizando programas como ps, ls, netstat y who. Ocurre que estos
programas son los primeros que se sustituirán, ocultando así, la invasión y al
invasor propiamente dicho. Aunque se tenga la información de la fecha y del
tamaño de los archivos originales, estos datos aislados, no pueden utilizarse como
parámetro porque se pueden modificar fácilmente. De todos modos, si además de
esta información, está disponible, algo como el checksum MD5 de los archivos,
se hace mucho más simple encontrar los archivos modificados indebidamente.
El programa AIDE (Advanced Intrusion Detection Environment) tiene justamente
la finalidad de verificar la integridad de los archivos del sistema. Construye una
base de datos con varias informaciones de los archivos especificados en su ar-
chivo de configuración. Esta base de datos puede contener varios atributos de los
mismos, como:

345
Capítulo 8. Seguridad en el Servidor

• permisos;

• número de inode,

• dueño,

• grupo,

• tamaño,

• fecha y hora de creación, último acceso y última modificación.

Además, AIDE también puede generar y almacenar en esta base de datos al


checksum criptográfico de los archivos, utilizando uno o una combinación de los
siguientes algoritmos : md5, sha1, rmd160 y tiger.
El procedimiento que se recomienda es de generar esta base de datos en un sis-
tema recién instalado, antes de conectarlo a una red. Esta base de datos será la
fotografía del sistema en su estado normal y el parámetro que se va a utilizar
para medir las alteraciones en el sistema de archivos. Obviamente, siempre que
usted modifique su sistema, como por ejemplo por medio de la instalación, actua-
lización o retirada de los programas, se debe generar una nueva base de datos. La
misma se utilizará en lo sucesivo como parámetro. La base de datos debe contener
información sobre los binarios, las bibliotecas y los archivos de encabezamientos
importantes del sistema, ya que éstos no suelen alterarse durante el uso normal
del sistema. La información sobre los archivos de log, filas de correo electrónico
y de impresión, directorios temporales y de usuarios no se deben almacenar en la
base de datos, ya que son archivos y directorios que se alteran frecuentemente.

346
Capítulo 8. Seguridad en el Servidor

Configuración de AIDE
La configuración de AIDE reside en el archivo /etc/aide.conf. Este archivo tiene
tres tipos de líneas:

líneas de configuración: utilizadas para definir los parámetros de configuración de


AIDE.
líneas de selección: utilizadas para indicar cuáles archivos tendrá su información
agregada a la base de datos.
líneas de macro: utilizadas para definir variables en el archivo de configuración.

Solamente las líneas de selección son esenciales al funcionamiento del AIDE.


A su vez, hay tres tipos de líneas de selección. Estas líneas se interpretan como
expresiones regulares. Líneas que comiencen con una barra “/” indican que los
archivos que se ajusten con el patrón, tendrán su información agregada a la base
de datos. Si la línea se inicia con un punto de exclamación “!”, ocurre lo contrario:
los archivos que se ajustan al patrón no se consideran. Las líneas que comienzan
por una seña de igualdad “=” informan al AIDE que solamente los archivos que
sean exactamente iguales al patrón se deben considerar.
A través de las líneas de configuración se pueden definir algunos parámetros de
funcionamiento del AIDE. Estas líneas tiene el formato del parámetro=valor. Los
parámetros de configuración se describen a continuación:

347
Capítulo 8. Seguridad en el Servidor

databas

URO del archivo de la base de datos desde donde se lee la información. Puede
haber solamente una línea de éstas. Si hubiera más de una, se considera solamente
la primera. El valor estándar es ./aide.db.

databas_out

URL del archivo de la base de datos donde se escribe la información. Así como base
de datos, debe haber solamente una línea de éstas. En el caso de que haya varias,
solamente se considera la primera vez. El valor estándar es ./aide.db.new.

report_url

URL donde se escribe la salida del comando. Si existieran varias instancias de este
parámetro, la salida se escribirá en todas las URLs. Si usted no define este parámetro,
la salida se enviará para la salida estándar (stdout).

verbose

Define el nivel de mensajes que se envían a la salida. Este valor puede estar en la
banda entre 0 y 255 (inclusive) y solamente se considera la primera aparición de este
parámetro. Es posible sobrescribir este valor a través de las opciones --version
o -V en la línea del comando.

348
Capítulo 8. Seguridad en el Servidor

gzip_dbout

Informa si la base de datos se debe comprimir o no. Los valores válidos para esta
opción son yes, true, no y false.

Definiciones de grupos

Si el parámetro no fuera ninguno de los anteriores entonces se considera una defini-


ción de grupo. Aunque haya algunos grupos pre-definidos que informan al AIDE
cuales son las informaciones del archivo que se deben almacenar en la base de
datos, usted puede crear sus propias definiciones. La Tabla 8-1 muestra los grupos
predefinidos.

Tabla 8-1. Grupos Predefinidos

p permisos
i inode
n número de links
u dueño
g grupo
s tamaño
m fecha y hora de la última modificación
a fecha y hora del último acceso

349
Capítulo 8. Seguridad en el Servidor

c fecha y hora de la creación del archivo


S verifica el aumento del tamaño del
archivo
md5 checksum md5
sha1 checksum sha1
rmd160 checksum rmd160
tiger checksum tiger
R p+i+n+u+g+s+m+c+md5
L p+i+n+u+g
E grupo vacío
> archivo de log (aumenta el tamaño) -
p+u+g+i+n+S

Usted podría definir un grupo que verifica solamente al dueño y al grupo del
archivo, de la forma siguiente:

trivial=u+g

Las líneas de macro se pueden utilizar para definir variables y tomar decisiones
con base en el valor de las mismas. La información detallada se puede encontrar
en la página del manual aide.conf(5).
El término URL, utilizado en la configuración de los parámetros base de datos,
base de datos_out y report_url, puede asumir uno de los siguientes valores:

350
Capítulo 8. Seguridad en el Servidor

stdout: la salida se envía para la salida estándar.


stderr: la salida se envía para la salida estándar de error.
stdin: la entrada se lee desde la entrada estándar.
file:/archivo: la entrada se lee desde el archivo o la salida está escrita en archivo.
fd:número: la entrada se lee desde el file-descriptor número o la salida se escribe en file
descriptor número.

Note que URLs de entrada no pueden utilizarse como salida y viceversa.


El Ejemplo 8-3 ilustra una configuración básica para el AIDE.

Ejemplo 8-3. Archivo de Configuración de AIDE

# Localización de la base de datos

database=file:/var/aide/aide.db

# Lugar donde se crea una base de datos nueva

database_out=file:/var/aide/aide.db.new

# Archivo donde se guardará la salida del programa

report_url=/var/aide/report.aide

# Grupo para verificar el dueño, grupo y permisos

trivial=u+g+p

351
Capítulo 8. Seguridad en el Servidor

/bin R

/sbin R

/boot R

/etc R

# Verifica solamente al dueño, grupo y permisos

/etc/passwd trivial

/etc/shadow trivial

# Ignora el directorio /etc/X11

!/etc/X11

/lib R

# Incluido /var

/var R

# Ignora /var/log, /var/spool y /var/lock

!/var/log/.*

!/var/spool/.*

!/var/lock/.*

# Ignora el archivo /var/run/utmp

!/var/run/utmp$

Normalmente, lo ideal es ignorar los directorios que se modifican con mucha


frecuencia, a no ser que usted quiera logs gigantescos. Un procedimiento que

352
Capítulo 8. Seguridad en el Servidor

recomendamos es el de excluir los directorios temporales, las filas de impresión,


los directorios de logs y cualquier otra área que se modifique frecuentemente. Por
otro lado, se recomienda que se incluyan todos los binarios, las bibliotecas y los
archivos de encabezamientos del sistema. Muchas veces es interesante incluir los
directorios que usted no solía observar, como /dev/ y el /usr/man.

Si desea referirse a un único archivo, usted debe colocar un $ al final de la expresión


regular. Con esto, el patrón se ajustará solamente con el nombre exacto del archivo,
sin considerar los archivos que tengan el comienzo con nombre semejante.

El paquete de AIDE que acompaña Conectiva Linux tiene un archivo de confi-


guración patrón funcional, pero nada lo impide de modificarlo para reflejar sus
necesidades.

Utilización de AIDE
Como el archivo de configuración patrón deberá servir para la mayoría de los
casos, para generar la base de datos, es suficiente ejecutar los comandos:

# /usr/bin/aide -i

# mv /var/aide/aide.db.new /var/aide/aide.db

Después de esta operación, usted debe ejecutar el comando:

353
Capítulo 8. Seguridad en el Servidor

# /usr/bin/aide-md5 [dispositivo de boot]

El parámetro dispositivo de boot es opcional y corresponde al dispositivo de al-


macenamiento utilizado para la iniciación del sistema (/dev/hda, por ejemplo).
El paquete aide-md5 fue desarrollado por Conectiva y suple la falta de firma de
la base de datos de AIDE. Informa los sumatorios MD5 de algunos componentes
críticos para el funcionamiento de AIDE, inclusive de la propia base de datos
recién generada. Usted debe tener en cuenta esos sumatorios para verificarlos
posteriormente.
Si el dispositivo de boot se informa para aide-md5, el MD5 del sector de boot
también se calculará, por lo tanto es interesante informar ese parámetro.
Para verificar la integridad del sistema, ejecute el propio AIDE, de esta forma:

# /usr/bin/aide -C

Los archivos que sufrieron cualquier cambio, sea en el tamaño, contenido, per-
misos o fecha de creación se registrarán en una lista.
Es probable que la mayoría de las veces que AIDE apunta las diferencias en los
archivos, ellas hayan sido provocadas por actos legítimos, por ejemplo, actuali-
zación de paquetes o intervención del administrador del sistema. En esos casos,
el administrador debe, después de una conferencia, reconstruir la base de datos.
Para verificar la integridad del propio AIDE, se debe utilizar nuevamente el pro-
grama aide-md5, pero esta vez, de un medio físico cambiable, como por ejemplo,
de un disquete:

354
Capítulo 8. Seguridad en el Servidor

# /mnt/floppy/aide-md5 /dev/hda

Si alguno de los códigos MD5 no coincide con los generados anteriormente,


el(los) respectivo(s) componentes pueden estar comprometidos, y esto es un pro-
blema muy serio.
Obviamente que, si usted alteró la configuración de AIDE, regeneró la base de
datos o actualizó el núcleo, los códigos serán diferentes. Inmediatamente después
de efectuar cualquiera de estas alteraciones, usted debe ejecutar nuevamente el
aide-md5 y anotar los códigos.

Se recomienda copiar el aide-md5 para un medio físico cambiable, protegido contra


grabaciones y una vez que el sistema ha entrado en producción, se lo debe ejecutar
siempre a partir de ese medio, eventualmente retirando el aide-md5 original del disco
duro. Pues si usa aide-md5 del disco duro, y éste queda comprometido, el invasor
puede forjar sumatorias MD5 falsamente perfectas.

355
Capítulo 8. Seguridad en el Servidor

356
Capítulo 9. Alta Disponibilidad

Introducción
Este capítulo describirá los conceptos y la terminología por detrás de la Alta
Disponibilidad, así como las aplicaciones y programas de sistema cuyo objetivo
es el aumento de la disponibilidad de servidores Linux, que son parte integrante
de Conectiva Linux. También se puede usar como un manual para la configura-
ción de estas aplicaciones.

Definición
Para que se entienda la Alta Disponibilidad se hace necesario, antes de nada,
darse cuenta que ella no es solamente un producto o una aplicación que se instale,
y sí una característica de un sistema informático. Hay mecanismos y técnicas,
bloques básicos que se pueden utilizar para aumentar la disponibilidad de un
sistema. La simple utilización de estos bloques, sin embargo, no garantiza este
aumento si no fuese acompañado de un estudio completo y de un proyecto de
configuración
La Disponibilidad de un sistema de informática, indicado por A(t), es la proba-

357
Capítulo 9. Alta Disponibilidad

bilidad de que este sistema esté funcionando y listo para usar en un determinado
momento t. Esta disponibilidad puede encuadrarse en tres clases, de acuerdo con
la banda de valores de esta probabilidad. Las tres son: disponibilidad básica, alta
disponibilidad y disponibilidad continua.

Disponibilidad básica

La Disponibilidad básica es la que se encuentra en máquinas comunes, sin ningún


mecanismo especial, en software o hardware, que tenga como objetivo enmas-
carar las fallas eventuales de estas máquinas. Se suele decir que computadores
en esta clase, presentan una disponibilidad de 99% a 99,9%. Esto equivale a de-
cir que en un año de operación la máquina puede quedar no disponible por un
período de 9 horas a cuatro días. Estos datos son empíricos y los tiempos no
toman en consideración la posibilidad de paradas planeadas (que se abordarán
más adelante), pero se aceptan como sentido común en la literatura del área.

Alta disponibilidad

Agregando mecanismos especializados de detección, recuperación y enmascara-


miento de fallas, se puede aumentar la disponibilidad del sistema, de forma que
éste se ajuste a la clase de Alta disponibilidad. En esta clase, las máquinas presen-
tan generalmente disponibilidad en la banda de 99,99% a 99,999%, sin embargo,
pueden quedar no disponibles por un período de un poco más de 5 minutos hasta
una hora en un año de operación. Aquí se ajusta gran parte de las aplicaciones

358
Capítulo 9. Alta Disponibilidad

comerciales de Alta disponibilidad, como las centrales telefónicas.

Disponibilidad continua

Agregando nueves, se obtiene una disponibilidad cada vez más próxima de 100%,
disminuyendo el tiempo que esté inoperante el sistema de manera que se torne
despreciable o inexistente. Se llega de esta manera a la Disponibilidad continua,
lo que significa que todas las paradas planeadas y no planeadas son enmascaradas
y el sistema está siempre disponible.

Objetivos
Como ya se puede notar por la definición, el objetivo principal de la Alta disponi-
bilidad, es el de buscar una forma de mantener los servicios prestados por un
sistema, a otros elementos; aunque el sistema en sí, acabe modificándose interna-
mente por causa de una falla. Ahí está implícito el concepto de enmascaramiento
de fallas, a través de redundancia o duplicación (términos que se definirán más
adelante). Un servicio determinado que se quiere altamente disponible, se coloca
por tras de una capa de abstracción que permita cambios en sus mecanismos in-
ternos, manteniendo intacta la interacción con los elementos externos.
Este es el corazón de la Alta disponibilidad, la sub-área de Tolerancia a Fallas

359
Capítulo 9. Alta Disponibilidad

que procura mantener la disponibilidad de los servicios prestados por un sistema


informatizado, mediante hardware redundantes y reconfiguración de software.
Varios computadores juntos actuando como uno solo, cada uno controlando a los
otros y asumiendo sus servicios si nota que alguno de ellos ha fallado.
Otra posibilidad importante de la Alta disponibilidad es la de hacer estas cosas
con computadores comunes, como los que se pueden comprar hasta en un su-
permercado. La complejidad puede estar solamente en el software. Más fácil de
desarrollar que el hardware, el software de Alta disponibilidad es quien se preo-
cupa en controlar otros computadores de una red, saber que servicios se están
prestando o quien los está prestando y lo que hay que hacer cuando se nota una
falla.

Cálculo de la Disponibilidad
En un sistema real, si falla un componente, se lo repara o sustituye por un nuevo
componente. Si este nuevo componente falla, se lo sustituye por otro y así suce-
sivamente. El componente reparado se considera como igual a uno nuevo. Du-
rante su vida útil, un componente puede considerarse en uno de estos estados:
funcionando o en reparación. El estado funcionando indica que el componente
está operando y el estado en reparación significa que falló y que todavía no fue
sustituido por uno nuevo .
En el caso de defectos, el sistema irá de funcionando para en reparación y cuando
se hace la sustitución vuelve para el estado funcionando. Se puede decir que a
lo largo de su vida, el sistema presenta un tiempo útil medio antes de presen-

360
Capítulo 9. Alta Disponibilidad

tar una falla (MTTF) y un tiempo medio de reparación (MTTR). Su tiempo de


vida es una sucesión de MTTFs y MTTRs, a medida que va fallando y siendo
reparado. El tiempo de vida útil del sistema es la suma de los MTTFs en los
ciclos MTTF+MTTR ya vividos.
De forma simplificada, se dice que la disponibilidad de un sistema es la relación
entre el tiempo de vida útil de este sistema y su tiempo total de vida. Esto se
puede representar con la fórmula abajo:

Disponibilidad = MTTF / (MTTF + MTTR)

Al evaluar una solución de Alta Disponibilidad, es importante tomar en conside-


ración si en la medición del MTTF se observan como fallas las posibles paradas
planeadas. Más consideraciones sobre este asunto se presentarán en secciones
posteriores.

Conceptos
Para entender correctamente lo que se está diciendo cuando se discute una solu-
ción de Alta disponibilidad, se deben conocer los conceptos involucrados. No son
muchos, pero estos términos se utilizan muchas veces de manera equivocada en
literatura no especializada. Antes que nada, se debe comprender lo que es una
falla, un error y un defecto. Estas palabras, que parecen tan próximas, en realidad

361
Capítulo 9. Alta Disponibilidad

designan la ocurrencia de algo anormal en tres universos diferentes de un sistema


informatizado.

Falla
Ocurre una falla en el universo físico, o sea, en el nivel más bajo del hardware.
Una fluctuación en la fuente de alimentación, por ejemplo, es una falla. Una in-
terferencia electromagnética también. Estos son dos eventos indeseables que ocu-
rren en el universo físico y afectan el funcionamiento de un computador o de una
parte de él.

Error
Si acontece una falla, puede producirse un error que es la representación de la
falla en el universo de la informática. Un computador trabaja con bits, cada uno
puede contener 0 ó 1. Una falla puede hacer con que un bit (o más de uno) cambie
de valor inesperadamente, lo que seguramente afectará el funcionamiento normal
del computador. Una falla, por lo tanto, puede generar un error en alguna infor-
mación.

362
Capítulo 9. Alta Disponibilidad

Defecto
Si es que esta información equivocada, no se detecta ni se corrige, podrá generar
lo que se conoce como defecto. El sistema simplemente traba o muestra un men-
saje de error, también puede perder los datos del usuario sin mayores avisos. Esto
se percibe en el universo del usuario.
Recapitulando, una falla en el universo físico puede causar un error en el universo
de la informática, que a su vez puede causar un defecto notado en el universo
del usuario. La tolerancia a las fallas trata exactamente de acabar con las fallas, o
tratarlas mientras son todavía errores. Por su parte, la Alta disponibilidad, permite
que las máquinas se traben o se equivoquen, siempre y cuando haya otra máquina
para asumir su lugar.
Para que una máquina asuma el lugar de otra, es necesario que descubra de alguna
forma que la otra falló. Esto se hace por medio de pruebas periódicas, cuyo lapso
debe ser configurable, en los que la máquina secundaria prueba no solamente si la
otra está activa, sino también proporciona respuestas adecuadas a las solicitudes
de servicio. Un mecanismo de detección equivocado, puede causar inestabilidad
en el sistema. Por ser periódicos, se nota que existe un intervalo de tiempo durante
el cual el sistema puede estar no disponible sin que la otra máquina lo detecte.

Failover
Es el proceso mediante el cual una máquina asume los servicios de otra, cuando

363
Capítulo 9. Alta Disponibilidad

esta última presenta una falla. El failover puede ser manual o automático, siendo
el segundo lo que normalmente se espera de una solución de Alta disponibilidad.
Aún así, algunas aplicaciones no críticas pueden soportar un tiempo mayor, hasta
que el servicio se recupere y por lo tanto pueden utilizar el failover manual1.
Además del tiempo que habrá entre la falla y el de su detección, también existirá
el tiempo entre la detección y el restablecimiento del servicio. Las grandes bases
de datos, por ejemplo, pueden exigir un período considerable de tiempo hasta que
indexen sus tablas y durante este período el servicio todavía no estará disponible.
Para que se ejecute el failover de un servicio, es necesario que las dos máquinas
involucradas tengan recursos equivalentes. Un recurso puede ser una tarjeta de
red, un disco duro, incluso más importante los datos en este disco, bien como
cualquier elemento necesario para prestar un determinado servicio. Es vital que
una solución de Alta disponibilidad mantenga recursos redundantes con el mismo
estado, de manera que el servicio se pueda volver a ejecutar sin pérdidas.
Dependiendo de la naturaleza del servicio, ejecutar un failover significa inte-
rrumpir las transacciones en marcha, perdiéndolas y será necesario reiniciarlas
después de efectuado ese proceso. En otros casos, significa solamente un retardo
hasta que el servicio esté nuevamente disponible. Se nota que el failover puede
ser o no, un proceso transparente, depende de la aplicación involucrada.

1. que un administrador o un operador pueden hacer

364
Capítulo 9. Alta Disponibilidad

Failback
Al notarse la falla de un servidor, además de contar con el failover, es obviamente
necesario que se haga el mantenimiento en el servidor fallado. Cuando se recu-
pera de la falla, este servidor, vuelto o ponerse en servicio, tendrá la opción de
realizar el proceso inverso del failover, que se llama failback. Que es por lo tanto,
el proceso de retorno de un determinado servicio desde otra máquina para su má-
quina de origen. También puede ser automático, manual o incluso indeseable. En
algunos casos, en función de una posible nueva interrupción en la prestación de
servicios, el failback puede perder atractivo.

Misión
Cuando se calcula la disponibilidad de un sistema, es importante que se observe el
concepto de misión. Misión de un sistema es el período de tiempo en el cual debe
desempeñar sus funciones sin interrupción. Por ejemplo, una farmacia que fun-
cione de las 8 a las 20, no puede tener su sistema fuera del aire durante ese período
de tiempo. Si este sistema presentase defectos fuera de este período, aunque sean
indeseables, estos defectos no molestan en nada la marcha correcta del sistema
cuando es necesario. Una farmacia 24h obviamente tiene una misión continua, de
manera que cualquier tipo de parada se debe enmascarar.
La Alta disponibilidad tiene como objetivo eliminar las paradas no planeadas.
Por ejemplo, en el caso de la primera farmacia, las paradas planeadas no deben
ocurrir dentro del período de la misión. Las paradas no planeadas son consecuen-

365
Capítulo 9. Alta Disponibilidad

cia de defectos, mientras que las paradas planeadas son aquellas que se deben a
las actualizaciones, mantenimiento preventivo y actividades correlativas. De esta
forma, toda parada dentro del período de la misión se puede considerar una falla
en el cálculo de la disponibilidad.
Una aplicación de Alta disponibilidad puede proyectarse incluso para soportar
paradas planeadas, lo que puede ser importante, por ejemplo, para permitir la
actualización de programas por problemas de seguridad, sin que el servicio deje
de ser prestado.

La solución Conectiva para Alta


disponibilidad

Conectiva ha participado en proyectos internacionales de Alta disponibilidad, co-


laborando con la elaboración de distintos programas que suplen las funciones
básicas en la construcción de ambientes de Alta disponibilidad. El interés en
trabajar en la integración de diversas tecnologías y extenderlas individualmente
vienen del objetivo de proveer una solución simple y flexible, que se pueda opti-
mizar para las particularidades de cada aplicación. Todos estos proyectos siguen
la filosofía del Software Libre, así como la solución presentada por Conectiva en
su Conectiva Linux.

366
Capítulo 9. Alta Disponibilidad

En este espíritu de cosas, la solución se basa en cuatro bloques básicos, que son:
duplicación del disco, control de nodos, administración de servicios y sistemas
de archivos robusto. Estos cuatro bloques se pueden utilizar en conjunto o indivi-
dualmente; lo que hace posible crear soluciones con failover y failback, automáti-
cos o manuales; con o sin duplicación de datos y que además soporten paradas
planeadas. Esta solución se idealizó para un cluster de dos nodos.

Administración de nodos
La administración de nodos se realiza por el heartbeat. Que es el responsable de
probar periódicamente los nodos del cluster, coordinando las acciones de failover
y failback. Las soluciones que utilizan la reactivación automática de servicios
se basan en este paquete. Usando heartbeat se pueden ejecutar programas en el
proceso de failover y failback, controlando cualquier recurso que se desee.

Duplicación de disco
La duplicación de disco es de responsabilidad del DRBD, un driver de bloque
para el núcleo que crea un dispositivo de bloque2 virtual, consistiendo tanto en un
disco real local, como en una conexión de red, que tendrá en la otra punta, otro

2. disco

367
Capítulo 9. Alta Disponibilidad

driver DRBD actuando como secundario. Todo lo que se escribe en el dispositivo


virtual, se escribe en el disco local y también se envía para otro driver, que hará
la misma operación en su disco local. Con esto se obtienen dos nodos con discos
exactamente iguales, hasta el instante de la falla. Las aplicaciones que trabajan
con datos dinámicos o actualizados con mucha frecuencia, se benefician con este
driver.

Sistema de archivos
Datos duplicados o no, es importante que el sistema de archivos sea consistente.
No todos los sistemas de archivos garantizan eso, por lo tanto para esta solución
se eligió trabajar utilizando Reiser Filesystem3. Este sistema de archivos trabaja
con journal, lo que significa que todas las alteraciones de datos se registran antes
en el disco para que, si el sistema viniera a fallar durante el proceso, la transacción
se pueda recuperar cuando el sistema vuelva. Eso confiere agilidad al proceso de
recuperación de fallas, así como aumenta mucho la confiabilidad de la informa-
ción almacenada.

3. ReiserFS

368
Capítulo 9. Alta Disponibilidad

Control de servicios
El control de servicios, se hace por medio de Mon, un súper escalonador de tests
que puede verificar cientos de máquinas y servicios en forma rápida y ágil; envía
alertas para direcciones de correo electrónico, pagers o teléfonos celulares, garan-
tizando que los administradores de los servicios, estén siempre bien informados
sobre su estado de operación. Soporta dependencias entre tests, por lo tanto no
pierde tiempo verificando si un servidor de HTTP está respondiendo en una má-
quina que sabe que está inoperante. Un alerta puede incluso intentar recuperar
la situación automáticamente o reiniciar una máquina, si la falla ocurre en un
horario de difícil mantenimiento.

Configuración de DRBD
Si tiene dos computadores, denominados aquí como ha1 y ha2, efectúe estas con-
figuraciones de manera idéntica en los dos. Instale el paquete de utilidades de
DRBD:

# rpm -ivh drbd*

drbd-utils ##############################

drbdconf ##############################

369
Capítulo 9. Alta Disponibilidad

Configuración vía Linuxconf


Abra Linuxconf y acceda a Configuración→Configuración de red→Tareas
como servidor→ Dispositivos DRBD → Agregar . Observe la Figura 9-1.

Figura 9-1. Configuración de DRBD

En el campo Nodo: coloque el hostname del Maestro y en el campo Partición: la


partición para el DRBD. Efectúe estas configuraciones también para el Esclavo,
a través de la pestaña Configuración para Esclavo . Haciendo clic en Aceptar
surgirá el archivo drbd0, Figura 9-2.

370
Capítulo 9. Alta Disponibilidad

Figura 9-2. Archivo de configuración

Haciendo clic en Salir el módulo preguntará si usted desea reiniciar los servicios,
presione en Sí.

Configuración por el modo texto

En el directorio /etc/sysconfig/drbd usted encontrará el ejemplo de un archivo


descriptivo para un dispositivo DRBD, el drdb.example. Copie este archivo con el
nombre de /etc/sysconfig/drbd/drbd0 y efectúe la siguiente configuración:

# dirección del master y del slave end[:puerto]

# puerto estándar: 7788

371
Capítulo 9. Alta Disponibilidad

# Importante: no use nombres de dominio aquí, solamente

# los hostnames de la forma reportada por el hostname -s

MASTER_NODE="ha1:7788"

SLAVE_NODE="ha2:7788"

# Aquí usted podrá colocar una dirección IP específica de las interfaces si

# fuera necesario. Si se utiliza, la definición de puerto

# (7788, 7779, ...) debe estar aquí. Si no se va a utilizar, debe

# permanecer en blanco (vacío "") pero nunca comentado (#).

MASTER_IF=""

SLAVE_IF=""

OPTIONS=""

# El protocolo usado para este dispositivo o protocolo de confirmación

# puede ser A, B o C.

PROTOCOL="B"

# Los dispositivos usados en el master y en el slave (pueden ser diferentes en

# cada máquina)

MASTER_DEVICE="/dev/nb0"

SLAVE_DEVICE="/dev/nb0"

372
Capítulo 9. Alta Disponibilidad

# Particiones para el drdb (puede ser una partición diferente en cada

# máquina), ellas deben tener un tamaño semejante.

MASTER_PARTITION="/dev/hda6"

SLAVE_PARTITION="/dev/hda6"

Inicie el DRBD:

# /etc/rc.d/init.d/drbd start

Loading DRBD module [ OK ]

Configuring DRBD resource drbd0 [ OK ]

Waiting for DRBD resource drbd0 to resynchronize [ OK ]

A través del comando:

# /etc/rc.d/init.d/drbd status

version : 55

0: cs:WFConnection st:Secondary ns:0 nr:0 dw:0 dr:0 of:0

Usted podrá verificar el estado del DRBD en el sistema. O incluso verificar el


archivo /var/log/messages con el comando # tm y observar lo que hubo durante

373
Capítulo 9. Alta Disponibilidad

el inicio del DRBD.


Monte la unidad a través del script datadisk de la siguiente forma:

# /etc/ha.d/resource.d/datadisk start

No se puede montar simultáneamente la partición en los dos nodos.

Sistema de archivos Reiserfs

Instale el paquete de utilidades de Reiserfs:

# rpm -ivh reiserfs-utils*

reiserfs-utils ############################### #

Inicie la partición con el comando:

# dd if=/dev/zero of=/dev/hda6

Cree un sistema de archivos Linux Reiserfs utilizando el comando:

374
Capítulo 9. Alta Disponibilidad

# mkreiserfs /dev/hda6

<-------MKREISERFS, 1999------->

ReiserFS version 3.5.21

Block size 4096 bytes

Block count 257032

First 16 blocks skipped

Super block is in 16

Bitmap blocks are :

17, 32768, 65536, 98304, 131072, 163840, 196608, 229376

Journal size 8192 (blocks 18-8210 of device 0x3:0x6)

Root block 8211

Used 8219 blocks

Hash function "tea" ATTENTION: ALL DATA WILL BE LOST ON ’/dev/hda6’! (y/n)y

Initializing journal - 0%....20%....40%....60%....80%....100%

Syncing..

Configuración de Heartbeat

375
Capítulo 9. Alta Disponibilidad

Instale el paquete de Heartbeat:

# rpm -ivh heartbeat*

heartbeat ##############################

heartbeatconf ##############################

Configuración mediante Linuxconf

La configuración de heartbeat puede hacerse por medio del módulo Configura-


ción de heartbeat de Linuxconf. Este módulo usted encontrará accediendo al
menú en Configuración→Configuración de red→Tareas como servidor→
Configuración heartbeat. Vea la Figura 9-3.

376
Capítulo 9. Alta Disponibilidad

Figura 9-3. Configuración de Heartbeat

En Nodos y Servicios haga clic en Agregar y agregue un nombre para el nuevo


modo, en nuestro ejemplo ha1. Haciendo clic en aceptar surgirá el nodo que usted
agregó, Figura 9-4.

377
Capítulo 9. Alta Disponibilidad

Figura 9-4. Nodos

Haga clic sobre el nombre del nodo (ha1), surgirá la ventana Editando nodo
con el botón IPs y Servicios. Mediante este botón elija Agregar y digite un IP4
para este nodo y los recursos que se deben administrar, en el campo Servicios.
La Figura 9-5 contiene un ejemplo utilizando un IP para este nodo y algunos
recursos separándolos por un espacio en blanco.

4. virtual

378
Capítulo 9. Alta Disponibilidad

Figura 9-5. IPs y Servicios

Vamos a definir ahora la clave de la autenticación, haciendo clic en el botón


Claves de autenticación de la Figura 9-3, surgirá una ventana con tres métodos
de autenticación y un campo para la definición de una clave. Rellene de forma
semejante a la Figura 9-6.

Figura 9-6. Claves de autenticación

379
Capítulo 9. Alta Disponibilidad

En este caso el método elegido fue md5 y la clave de autenticación Olá!.


Para configurar un dispositivo del tipo UDP, por ejemplo, haga clic en Configu-
ración del dispositivo→Agregar→udp. Teclee un nombre para el dispositivo,
en nuestro caso de Figura 9-7 tecleamos en el campo Nombre del Dispositivo
eth0.

Figura 9-7. Lista de dispositivos

Por último haremos algunas configuraciones personalizadas mediante el botón


Configuraciones diversas. Aquí configuramos nombres para archivos de men-
sajes, implementación para el syslog, tiempos opcionales en segundos y el puerto
UDP. Note que dejamos la opción Nice failback habilitada. Vea la figura del
ejemplo Figura 9-8.

380
Capítulo 9. Alta Disponibilidad

Figura 9-8. Configuraciones diversas

Más detalles sobre estas configuraciones se podrán ver a continuación , en confi-


guración por el modo texto.

Configuración por el modo texto

381
Capítulo 9. Alta Disponibilidad

Edite el archivo haresources.


Este archivo contiene una lista de recursos que se mueven de computador a com-
putador, según se caigan o levanten los nodos en el cluster. No incluya direcciones
de IP fijas o administrativas en este archivo.
Ejemplo para el archivo /etc/ha.d/haresources:

#nombre-del-nodo dirección-IP-virtual recurso1 recurso2 ... recursoN

ha1 10.0.17.26 mysql httpd datadisk

Otro archivo a ser modificado es el ha.cf, este archivo tiene muchas opciones.
Todo lo que usted necesita es de una lista de conjunto de nodos (node ...) y una
lista de interfaces.
Ejemplo de configuración para el archivo /etc/ha.d/ha.cf:

# keepalive: tiempo en segundos entre heartbeats

keepalive 1

# deadtime: tiempo en segundos para declarar el host caído

deadtime 5

# puerto UDP usado para comunicación udp

udpport 1001

382
Capítulo 9. Alta Disponibilidad

# interfaz para el heartbeat, una o varias

udp eth0

# Si el cluster estuviera ejecutando cuando el primario inicie,

# entonces él actuará como un secundario.

nice_failback on

# Archivo para grabar mensajes de debug debugfile

/var/log/ha-debug

# Archivo para escribir otros mensajes

logfile /var/log/ha-log

# facility usada para o syslog

logfacility local0

# Máquinas que están en el cluster, nodo nombre-del-nodo ... (nombre obtenido por

# uname -n).

node ha1

node ha2

El archivo de autenticación debe estar en el modo 600 (-rw-------), solamente

383
Capítulo 9. Alta Disponibilidad

lectura y escritura para el dueño, elija el método y la clave que irá con este iden-
tificador del método.
Ejemplo para el archivo /etc/ha.d/authkeys:

# Se debe especificar solamente una indicación auth

# al comienzo.

# auth método-de-autenticación

auth 3

# El método md5 se considera el más seguro para este caso.

3 md5 Olá!

384
Capítulo 10. Redes Mixtas

En este capítulo presentaremos información concerniente a instalación, configu-


ración y mantenimiento de redes heterogéneas. Verá la forma de trabajar para que
su servidor Conectiva Linux actúe como si fuera un Windows® o un Netware®,
permitiendo que las estaciones no-Conectiva Linux se puedan utilizar de forma
transparente. Además, verá cómo crear un servidor de archivos. También apren-
derá cómo configurar sus computadores clientes para acceder a estos servicios.

NFS

Introducción y conceptos
La mayor ventaja de usar redes de computadores está en la posibilidad de com-
partir información y recursos. En realidad, éste es el propósito principal al utilizar
una red. La información se puede compartir de varias formas, como por ejemplo,
al usar FTP, web, entre otros casos. Mientras que los recursos de una red que se
pueden compartir entre varios computadores, como por ejemplo, los discos, se
podrán realizar mediante NFS.
La sigla NFS indica Network File System, en español, Sistema de Archivos de

385
Capítulo 10. Redes Mixtas

Red. Se creó para permitir el acceso transparente a discos remotos. Además per-
mite centralizar mejor la administración de los discos, pues hace posible que
haya directorios en un solo computador (o servidor NFS) y compartirlos en todos
los sistemas conectados a la red. Además, NFS abre la posibilidad de que haya
clientes sin disco.
Un esquema NFS bien configurado será totalmente transparente para el usuario.
No es importante que sepa en cuál servidor está realmente un directorio. Basta
que sus programas funcionen correctamente sin que tenga que realizar cualquier
tipo de configuración en especial.

Instalación de NFS

Instale el servidor NFS

1. Acceda al CD 1 de Conectiva Linux:

# cd /mnt/cdrom/conectiva/RPMS/

2. Instale los paquetes de NFS:

# rpm -ivh nfs-*

386
Capítulo 10. Redes Mixtas

nfs-server #############################################

nfs-utils #############################################

Configuración del Servidor NFS

La configuración de un servidor NFS es muy sencilla y se puede hacer tanto con


Linuxconf como mediante la edición de archivos de configuración.
En realidad, lo que tendrá que hacer, será definir los directorios que se exportarán.
Para configurar su servidor, entre en Linuxconf y diríjase al menú Configuración
de Red→Tareas como Servidor→NFS: filesystems exportados para que
la pantalla de configuración se le muestre tal como en la Figura 10-1.

387
Capítulo 10. Redes Mixtas

Figura 10-1. Pantalla de configuración del servidor NFS

En esta pantalla usted puede definir un camino para exportar. Las opciones dis-
ponibles son:

Ruta a exportar: Usted define el directorio que se exportará. A este directorio lo podrá
montar un cliente.
Comentario (opc): Solamente un comentario ilustrativo. Se puede usar para documen-

388
Capítulo 10. Redes Mixtas

tar alguna observación sobre el directorio.


Nombre(s) de cliente: En este campo se pueden definir cuáles son los computadores
clientes (separados por comas) que podrán acceder a este directorio. Si no se especifi-
ca ningún cliente, entonces se podrá conectar cualquier computador. También se pueden
utilizar comodines para definir los computadores clientes. Por ejemplo, si se quiere dar
acceso a todos los computadores de su dominio, se puede especificar algo como: *.mior-
ganizacion.com

Puede escribir: Indica si el directorio se exportará solamente para lectura o si será


posible que los usuarios graben en él.
Privilegios de root: Normalmente, el superusuario accede a los directorios remotos
con privilegios de nobody. Usted puede especificar esta opción para que el superusuario
continúe teniendo acceso de superusuario cuando acceda al directorio.
Solicitar acceso desde un puerto seguro: Usted puede especificar que solamente
las conexiones seguras (con bajo número de puerto de origen) puedan montar el directo-
rio.

Como se ha mencionado antes, la configuración también se puede hacer por


medio de la edición de archivos de configuración. Esta edición es bastante simple,
involucrando solamente la edición de archivos /etc/exports.
El archivo /etc/exports es bastante sencillo. Cada línea representa un directorio
exportado y la información está separada por espacios. Por ejemplo:

/share kepler(rw) copernico

389
Capítulo 10. Redes Mixtas

Este ejemplo exporta el directorio /share especificando dos máquinas (kepler y


copernico) con opciones diferentes (kepler puede grabar en el directorio, mientras
que copernico sólo puede leer.

Tabla 10-1. Correspondencia entre Opciones de Linuxconf y de /etc/exports

/etc/exports Linuxconf
rw Marcar "puede escribir"
no_root_squash Marcar "privilegios de superusuario"

link_relative Marcar "seguir links simbólicos"


insecure Desmarcar "solicitar acceso de
puerto seguro"

Después que se hacen las configuraciones, usted debe iniciar el servicio nfs. Para
hacerlo, es necesario abrir un terminal y teclear el comando (o servicio portmap
ya se deberá estar ejecutando):

# /etc/rc.d/init.d/nfs start

Iniciando servicios NFS : [ OK ]

Iniciando cuotas (NFS) [ OK ]

Iniciando mountd (NFS) [ OK ]

390
Capítulo 10. Redes Mixtas

Iniciando rpc.nfsd (NFS) [ OK ]

Configurando un cliente NFS

Es muy simple hacer que una máquina utilice un disco remoto. La verdad es que
no se necesita ningún tipo de configuración especial para volver cliente NFS a
cualquier computador. Usted sólo necesita construir el directorio remoto de la
misma forma como se hace un directorio local.

1. Antes que nada, cree un directorio en el computador local. Vamos a montar el di-
rectorio remoto en este directorio local. En nuestro ejemplo, montaremos nuestro
directorio /usr/local de la máquina asterix dentro del directorio local /mnt/asterix

# mkdir /mnt/asterix #

2. Ahora monte el directorio remoto con el comando mount.

# mount asterix:/usr/local /mnt/asterix

Hecho esto, usted podrá percibir que el contenido del directorio local /mnt/asterix
es el mismo del directorio /usr/local del servidor asterix.

391
Capítulo 10. Redes Mixtas

Claro que en muchos casos, querrá que los directorios remotos se construyan
automáticamente cuando se inicia el computador cliente. Para hacerlo, usted debe
utilizar Linuxconf y entrar en Sistemas de Archivos→Acceder un volumen
NFS→Añadir para que se le muestre la pantalla de suma de volúmenes NFS
(Figura 10-2).

Figura 10-2. Pantalla de acceso a volúmenes NFS

Samba
El protocolo SMB se utiliza en redes Windows® para compartir recursos, tales
como impresoras y discos. Por su intermedio, Windows® permite que una má-
quina acceda al disco y a la impresora de otro computador en la red.
Con el crecimiento de Linux, se hizo necesario que los computadores Windows®
y las redes Unix trabajasen en forma armoniosa. Desafortunadamente, esto no
era muy sencillo, ya que las dos plataformas venían de culturas muy diferentes y
tenían dificultades para trabajar de forma conjunta sin la ayuda de Samba.

392
Capítulo 10. Redes Mixtas

Samba, por su parte, es una implementación libre del protocolo SMB. Al uti-
lizarlo se puede simular, de forma transparente, un servidor Windows®. Eso hace
posible que se usen las estaciones Windows® en una red Conectiva Linux em-
pleando el protocolo NetBIOS.

Configuración del Servidor Samba

Figura 10-3. Configuración de Samba

La configuración de un servidor Samba es un tópico bastante amplio. Todo de-


pende del tipo de servicios que usted desea ejecutar.
Por ejemplo, debe decidir si quiere que el servidor Samba sea un controlador de
dominio o no.

Instalación de Samba

La instalación de Samba es sencilla

393
Capítulo 10. Redes Mixtas

1. Acceda al CD 1 de la distribución de Conectiva Linux:

# cd /mnt/cdrom/conectiva/RPMS

2. Instale el paquete de Samba:

# rpm -ivh samba-*

samba #########################################

samba-clients #########################################

Configuración

Esta sección se concentra en la configuración de Samba por medio de Linux-


conf. Pero se puede realizar de otra forma, como por ejemplo, editando el ar-
chivo /etc/smb.conf y también por medio de SWAT. Veremos SWAT al final de
esta sección. Los ejemplos de configuración siempre serán sobre Linuxconf, sin
necesidad de editar directamente el archivo. /etc/smb.conf.

394
Capítulo 10. Redes Mixtas

Contraseñas codificadas

El problema más común durante la instalación de Samba se relaciona con las


contraseñas de los usuarios.
A partir de la versión 98, Windows® comenzó a hacer la transmisión de con-
traseñas codificadas por la red NetBIOS. El sistema Windows 95® y las versiones
iniciales de Windows NT®, transmitían sin codificar las contraseñas. Esa falta
de homogeneidad entre estos sistemas, hizo más complicada la configuración de
Samba.
Al codificar las contraseñas, se busca protegerlas de intentos groseros de des-
cubrirlas. Lamentablemente los algoritmos para codificar no son muy fuertes.

Contraseñas decodificadas en Windows® 95

El estándar de Windows® 95 no es codificar las contraseñas. Por lo tanto, es posi-


ble que usted no necesite esta configuración. Pero las versiones más recientes de
Windows® 95 (como, por ejemplo, Windows® 95 OSR2) cambiaron su compor-
tamiento. Si tiene problemas con contraseñas siga el procedimiento descrito en
esta sección.
La configuración de Windows 95® puede ser efectiva de dos formas. Una de
ellas sería utilizar el archivo Win95_PlainPassword.reg que viene con Samba. Este
archivo se puede localizar en el directorio docs/ de la documentación on line de
Samba:

# cd /usr/doc/samba*/docs

395
Capítulo 10. Redes Mixtas

Usted puede copiarlo para las estaciones Windows 95®. Después basta abrir el
archivo (haga doble clic) para que se instale.
Otra manera de habilitar las contraseñas es editar el registro a través de la utilidad
regedit de Windows® para alterar o incluir la clave:

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\VNETSUP]

"EnablePlainTextPassword"=dword:00000001

Contraseñas decodificadas en Windows® 98

Por defecto, Windows® 98 codifica todas las contraseñas que transitan por la red.
Para poder utilizar las estaciones Windows® 98 con su red, siga el procedimiento
que se describe en esta sección.
La configuración de las contraseñas no decodificadas en Windows 98® se puede
hacer de dos formas. Una, sería la utilización del archivo Win98_PlainPassword.reg
que acompaña al Samba. Este archivo se puede localizar en el directorio docs/ de
documentación en línea de Samba:

# cd /usr/doc/samba*/docs

Usted lo puede copiar para las estaciones Windows 98®. Después, basta abrir el
archivo (dar doble clic sobre el mismo) para que se instale.

396
Capítulo 10. Redes Mixtas

También se pueden habilitar las contraseñas editando el registro empleando la


utilidad regedit de Windows® para alterar o incluir la clave:

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\VNETSUP]

"EnablePlainTextPassword"=dword:00000001

Contraseñas decodificadas en Windows NT®

El sistema Windows® NT codifica las contraseñas en algunas versiones y en


otras no. Evidentemente, después del tercer paquete de arreglos de bugs (Service
Pack 3 ó SP3), pasó a codificar todas las contraseñas transmitidas por la red. Por
lo tanto, se recomienda seguir los procedimientos descritos en esta sección para
asegurar que funcione como cliente de una red Samba. También recomendamos
que usted tenga al menos Windows® NT SP3 instalado.
La configuración de contraseñas no codificadas en Windows® 98 se puede hacer
de dos formas. Una de ellas sería utilizar el archivo NT4_PlainPassword.reg que
acompaña a Samba. Este archivo se puede localizar en el directorio docs/ de la
documentación en línea de Samba:

# cd /usr/doc/samba*/docs

Usted puede copiarlo para las estaciones Windows® NT. Después, basta abrir el
archivo (dando doble clic) para que sea instalado.

397
Capítulo 10. Redes Mixtas

Otra manera de habilitar contraseñas es editar el registro por medio de la utilidad


regedit de Windows® para alterar o incluir la clave:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Rdr\Parameters]

"EnablePlainTextPassword"=dword:00000001

Configuración Básica

Figura 10-4. Pantalla de configuración Global de Samba

Una de las primeras configuraciones que usted probablemente deseará hacer es


definir el grupo de trabajo. Para eso, abra Linuxconf y vaya a las Tareas como
Servidor en Configuración de Red y entre en SMB: Servidor de archivos
Samba para comenzar la configuración. En este momento, usted debe ver una
pantalla parecida con la Figura 10-3.
Pulse en Definiciones para configurar el grupo de trabajo.
En el campo Grupo de Trabajo, teclee el nombre deseado.
Como Windows® normalmente utiliza el método de seguridad por recurso, usted
debe alterar el comportamiento estándar de Samba, que es el de hacer la autenti-

398
Capítulo 10. Redes Mixtas

cación por usuario. Para hacerlo, solamente altere la opción Modo de Autenti-
cación para Recurso. Esta opción puede encontrarla en la carpeta Claves.

Compartiendo un directorio

En esta sección, vamos a mostrar cómo compartir el directorio /home/samba para


que éste se pueda montar en una estación Windows®.

1. Abra el cuadro de diálogo Disco Compartido (Figura 10-5).

Compartiendo un directorio por medio de Samba

Figura 10-5. Compartiendo Discos

Note que estamos compartiendo el directorio /home/samba, con el nombre


de recurso compartido (aquél que aparecerá en el Configuración de Redes
de Windows®) “público”. Permitimos, también que el usuario, cualquier
usuario, pueda grabar en el directorio. Además, definimos que solamente los
computadores en nuestro dominio, lo pueden acceder.
Para compartir un directorio, necesita solamente especificar un nombre, para
los recursos compartidos, cuál es el directorio que se exportará y definir las
opciones de simple acceso.

399
Capítulo 10. Redes Mixtas

Montando un volumen Samba

Usted puede tener la necesidad de acceder a un volumen de una máquina Win-


dows® a partir de su Conectiva Linux. Hacerlo no solamente es posible, sino
también muy sencillo.
El proceso se debe hacer por medio de la línea de comando. Imaginando que
usted quiere montar el disco C: del computador copernico, que fue compartido
con el nombre C, en su directorio Conectiva Linux /mnt/copernico:

# smbmount //copernico/c /mnt/copernico

Note que en algunos casos (usted está montando un volumen de un servidor Win-
dows NT®, por ejemplo), será necesario que informe un usuario y una contraseña
para poder utilizar el comando smbmount.

# smbmount //copernico/c /mnt/copernico -o username=mara,password=selva

Eso funcionará si el usuario mara está registrado en el computador yaguareté con


la contraseña selva.

Iniciando Samba

Para que su servidor Conectiva Linux pueda funcionar como un servidor Samba,

400
Capítulo 10. Redes Mixtas

se debe iniciar el servicio smbd . Para eso, abra un terminal y teclee:

# /etc/rc.d/init.d/smb start

Iniciando servicios SMB : [ OK ]

Iniciando servicios NMB : [ OK ]

Configuración del cliente

Esta sección describe la configuración paso a paso de un cliente Windows® 98.


La instalación en las otras versiones de Windows® deberá tener una lista de pa-
sos semejantes. Si tiene alguna duda, deberá consultar la documentación de Win-
dows® concerniente a los pasos de instalación de una red punto a punto.

1. Instale normalmente su tarjeta de red según la documentación de Windows®. Usted


precisará del protocolo TCP/IP y del servicio Clientes para Redes Microsoft. Nue-
vamente, consulte la documentación de Windows® para tener información sobre
cómo instalar este servicio.

2. Pulse en la carpeta Identificación en la pantalla de configuración de redes y teclee el


nombre de su computador y el nombre de su grupo de trabajo. En nuestro ejemplo,
el computador se llamará kepler y formará parte del grupo de trabajo miorganizacion.

3. Pulse en la carpeta Control de Acceso.

401
Capítulo 10. Redes Mixtas

4. Volviendo hacia la pantalla de configuración de redes, abra la pantalla de propiedades


de protocolo TCP/IP; pulse en Configuración DNS y agregue la dirección IP del
servidor Samba a la lista de servidores DNS. Si ya no lo hubiera hecho, active DNS
(opción Activar DNS en la misma pantalla ). Vea que esta configuración solamente
se aplica para redes que tengan un servidor DNS. Usted también deberá, editar la
pantalla Dirección IP, informando la dirección de IP que va a utilizar la estación (si
su red posee un servidor DHCP, no precisará de esta configuración).

5. Presione en OK y deje la configuración de red. No se puede configurar Windows®


inmediatamente y así usted tendrá que reiniciarlo cuando se lo solicite.

Esos pasos deberán permitirle colocar una estación Windows® 98 en su red


Linux. Después que la máquina se haya reiniciado usted podrá abrir Configu-
ración de red para navegar por los computadores disponibles en la red.

Utilización de SWAT

Además de Linuxconf, es posible configurar Samba a través de otra interfaz ami-


gable: SWAT. Se trata de una interfaz web para la configuración. Una gran ventaja
de SWAT es la de permitir la configuración remota de un servidor Samba, ya que
sólo es necesario acceder al computador por Internet.
Para habilitar a SWAT a partir de su servidor, es necesario editar el archivo
/etc/inetd.conf y descomentar (retirar el “#” inicial) de la línea:

swat stream tcp nowait.400 root /usr/sbin/swat swat

402
Capítulo 10. Redes Mixtas

que está, normalmente, al final del archivo. Si usted no encuentra una línea seme-
jante, se puede agregar la línea de arriba.
Después que se hace la edición, el servicio inetd se debe reiniciar:

killall -HUP inetd

o además:

/etc/rc.d/init.d/inet restart

La diferencia entre los dos comandos es que el segundo iniciará el servicio, si no


está iniciado.
A partir del momento en el que inetd se reinicie, SWAT será accesible por medio
del puerto 901 de su servidor. Usted puede acceder a SWAT http://localhost:901
por medio de cualquier navegador (vea la Figura 10-6).

Figura 10-6. S W A T

403
Capítulo 10. Redes Mixtas

Mars-NWE
Mars-NWE es un emulador de Netware®, o sea, es un programa que define un
subconjunto de protocolo NCP de la Novell®, de forma que las estaciones lo
reconozcan como un servidor Netware®.
Mars es una buena opción al Netware en redes en las que hay por lo menos
un administrador con buen conocimiento de Linux. Además, las empresas que
iniciaron un proceso de migración para Linux y poseen algunas estaciones DOS
también pueden utilizar a Mars-NWE.
Como Mars-NWE es un emulador, algunas utilidades de configuración de la Nov-
ell® no funcionan con él y su configuración se debe hacer dentro de Linux.

Introducción y conceptos

El protocolo IPX

El IPX es un protocolo de transporte1. La administración de la sesión se realiza


por otros protocolos. En el caso de Netware®, este protocolo es el NCP.
Al contrario de TCP/IP, en el protocolo IPX no hay necesidad de especificar los
números de red, ya que ellos son siempre los números identificadores de la tarjeta

1. Protocolo que se encarga de transportar un paquete de la red de un origen para un destino.

404
Capítulo 10. Redes Mixtas

de red2.
Además, al protocolo IPX se le puede encaminar. Eso hace que los servidores
Netware®, incluso el Mars-NWE, automáticamente desempeñen la función de
encaminadores, siempre que estén conectados a más de una red. Estos servidores
constantemente se anuncian por medio de paquetes de broadcast de manera que
es posible crear tablas de encaminamiento dinámicas.

El objeto Bindery

Es importante destacar que Mars-NWE no atiende a la mayoría de los objetos


bindery del propio servidor, como trustees y limitaciones de horario. Así, la con-
figuración de los permisos se debe hacer por medio del propio Linux. Los únicos
objetos bindery reconocidos por el Mars-NWE son las contraseñas de los usua-
rios. De cualquier modo, todos los objetos bindery se almacenan en el directorio
/var/mars_nwe, por lo que, es una buena idea mantener copias de seguridad del
mismo. Hay planes para que otros objetos de bindery se soporten en versiones
futuras de Mars.

2. Número atribuido a cada tarjeta en la fábrica. Estos números de 48 bits jamás deberían com-
plicarse.

405
Capítulo 10. Redes Mixtas

Scripts de Logon

Los scripts se almacenan en el directorio SYS:MAIL\, tal como en un servidor Net-


ware®. Además, usted podrá crear/alterar esos archivos por medio de SYSCON.
A veces el SYSCON no logra grabar el script de logon; graba un archivo LO-
GIN.BAK en el directorio del usuario y no consigue cambiarle el nombre para LOGIN.
Generalmente esto es un problema de permisos en directorios o archivos viejos (o
sea, archivos copiados de un servidor Netware® ya existente). Cambie el nombre
manualmente en Linux y atribuya los permisos de usuario. Seguramente eso no
ocurrirá de nuevo.
Si usted está migrando de Netware® para Mars, seguramente va a montar el vo-
lumen Netware® con ncpmount y copiar los datos para un directorio como,
por ejemplo, /home/netware/sys. Es bueno que una vez que se haga una copia,
usted borre los subdirectorios del directorio SYS:MAIL. Si no lo hace, quedarán allí
los directorios antiguos, creados por el servidor Netware®. Y es verdad que los
números de usuario atribuidos por el Netware® (que son justamente los nombres
de los directorios) no van a coincidir con los números creados por Mars; y usted
tendrá que descubrir “de quién es cada uno” y atribuir los permisos correctos con
chown y chmod etc. Se recomienda borrar todo e iniciar Mars de manera que
todos los directorios se generen automáticamente.

Autenticación de Usuarios

Cada uno de los usuarios Netware® debe corresponder a un usuario Linux re-

406
Capítulo 10. Redes Mixtas

gistrado en el archivo /etc/passwd. Pero, la autenticación de los usuarios de Mars


no se hace por medio del archivo /etc/passwd o del /etc/shadow, sino mediante el
archivo /etc/nwserv.conf.
Como Mars no respeta los trustees es necesario establecer los permisos en el
propio Linux mediante los comandos chmod, chgrp y chown.
Ya vimos que el archivo de configuración de Mars establece una relación entre
usuarios Netware® y usuarios UNIX. Los comandos antes citados trabajan so-
lamente con usuarios UNIX, por lo tanto los permisos se tienen que “pensar”
en términos de usuarios UNIX. Es verdad que si los usuarios UNIX tuvieran los
mismos nombres de los usuarios Netware®, todo se hace más fácil.
El usuario UNIX asociado al “supervisor” puede ser el root, o un usuario común.
Si fuera un usuario común, debe tener un grupo primario sólo suyo y también
debe participar de todos los grupos donde haya usuarios UNIX asociados con
usuarios Netware®. Eso garantiza que el supervisor pueda de hecho leer y grabar
cualquier archivo de los volúmenes exportados.
Asociar el root al supervisor ahorra bastante tiempo. Sin embargo, si el servidor
está en un ambiente inseguro (expuesto a Internet, o con usuarios desconocidos,
etc.) es mejor asociar el supervisor a un usuario Unix común.
Inicialmente se deben observar los siguientes puntos:

• Los directorios y archivos SYS:SYSTEM, SYS:PUBLIC y SYS:LOGIN tienen que pertenecer a


root:root y con permisos de lectura para todos los usuarios.

• El directorio SYS:MAIL debe pertenecer a root:root (o por el usuario y grupo asociado al


supervisor), pero con permiso de lectura para todos los usuarios.

407
Capítulo 10. Redes Mixtas

• Los demás directorios y archivos deben pertenecer a los respectivos usuarios y grupos.

• Los permisos de todos los directorios deben ser 2775, si son legibles a todos los usua-
rios y 2770 si son legibles solamente para los usuarios del grupo. El dígito "2" acciona
el bit SGID del directorio; así, cualquier archivo y directorio nuevo que se genere den-
tro del directorio, pertenecerá a los usuarios que los originaron, pero el grupo será
siempre el mismo del directorio madre. Así los demás usuarios del grupo también ten-
drán acceso garantizado a los nuevos archivos y directorios. Note que eso complementa
la configuración de las máscaras de permisos del archivo /etc/nwserv.conf;

• El directorio raíz de cada volumen (como en el archivo ejemplo, el directorio /home/netware/sys)


debe tener permisos 775 y pertenecer al usuario supervisor, salvo en el caso en que los
usuarios tengan permisos para crear archivos y directorios en la raíz del volumen. En
ese caso los permisos deben ser 777.

• Los directorios dentro de MAIL/ deben pertenecer a los respectivos usuarios y grupos.
Los archivos LOGIN pueden pertenecer al usuario o también al root (en este último caso,
el archivo está protegiendo intentos de alteración que partan del propio usuario). Note
que el archivo y el directorio precisan ser, al menos, legibles para el usuario, así como
el directorio MAIL.

• Vea que, si usted dejó que Mars los origine solo, los permisos de los directorios bajo
SYS:MAIL ya estarán todos correctos, sin necesidad de cualquier intervención del usuario.

Cuando un usuario no tenga permiso de lectura para algún directorio, éste le


aparecerá vacío.

• Si, por ejemplo, un usuario necesita tener acceso al archivo VOLUMEN:DIR1\ARCHIVO, pre-

408
Capítulo 10. Redes Mixtas

cisará tener, al menos, acceso de lectura al directorio-raíz de VOLUMEN, así como a


todos los directorios del camino. Si no puede leer el directorio, el usuario no distinguirá
subdirectorios y archivos.

Utilidades DOS

Muchas operaciones (registro de usuarios, contraseñas, etc.) se pueden hacer me-


diante el propio Linux con las utilidades /usr/bin/nw*. Sin embargo es verdad que
usted necesitará de una u otra utilidad de Novell® (IPX20, SYSCON, LOGIN,
SLIST etc.) Hay unas pocas versiones gratuitas de algunas de esas utilidades
(LOGIN y SLIST), lo que es insuficiente para una red con estaciones DOS. Será
difícil mantener una red Novell® totalmente libre de software comercial.
Si tiene un Netware® licenciado, copie los directorios SYS:PUBLIC y SYS:SYSTEM
para el servidor Mars.
Note que este problema solamente se aplica al caso de redes con estaciones DOS.
Como las estaciones Windows® 95/98 incluyen un cliente para las redes Net-
ware® que no dependen de ninguna utilidad DOS, usted será capaz de constituir
una red totalmente libre de software comercial Netware® si todas sus estaciones
fueran Windows®.
Si sus estaciones fuesen todas Linux, tampoco habrá necesidad de las utilidades
DOS. Sin embargo, no hay necesidad de Mars-NWE en una red así, ya que es
posible y mucho más lógico, construir una red con base en el protocolo TCP/IP.

409
Capítulo 10. Redes Mixtas

Rendimiento

Según el autor de Mars, “el rendimiento de Mars-NWE es ligeramente inferior


al Netware® 3.12, en el mismo hardware, pero es superior al Netware® 4”. Los
tests demostraron que Mars-NWE es más rápido (10-15%) que Netware® 3.12
para operaciones comunes en archivos (lectura y grabación de pequeños trechos,
etc).
Sin embargo, Mars es cerca de 50% más lento en operaciones de lectura/escritura
de grandes trechos, como por ejemplo un COPY de DOS. Ese rendimiento se
puede mejorar mediante un recurso denominado packet burst, que todavía está
en estado experimental. Para obtener más información sobre cómo habilitar este
recurso vea la sección de nombre Versión de Netware®.

Problemas conocidos

Además de saber que algunos procedimientos son un tanto complejos para quien
está acostumbrado con Netware®, Mars-NWE tiene una característica indeseable.
Si un usuario abre un archivo de forma exclusiva y después intenta abrir de nuevo
el mismo archivo, tendrá éxito, mientras que el comportamiento de un servidor
Netware® sería el de negar cualquier intento de reapertura.
Note que eso ocurre solamente si el archivo se abre múltiples veces por medio
de una misma conexión. Si un usuario entra en el sistema con el mismo nombre
en diferentes estaciones e intenta abrir un mismo archivo en modo exclusivo en
todas ellas, no tendrá éxito a partir de la segunda estación. El impacto de ese bug

410
Capítulo 10. Redes Mixtas

de Mars varía en función de los programas utilizados.


Si los usuarios suelen abrir múltiples instancias de una misma aplicación y esa
aplicación usa apertura de archivos en modo exclusivo para garantizar la integri-
dad de ciertas operaciones, puede haber problemas. Si usted tiene problemas con
eso, puede prohibir a los usuarios con estaciones Windows® que abran múltiples
instancias de la misma aplicación.
Otro problema posible es que Mars no va a cargar/ejecutar sus NLMs. Una ex-
tensión eventualmente encontrada en servidores Netware® 3 es el BTrieve®. Ya
existe BTrieve® para Linux, pero es un producto comercial.

Configuración
La configuración de Mars no se puede hacer todavía por medio de Linuxconf.
Así, el proceso de configuración de un servidor Mars se debe realizar por medio
de la edición de archivos de configuración /etc/nwserv.conf.
El archivo /etc/nwserv.conf controla todo el comportamiento de su servidor Mars-
NWE. Note que las opciones siempre están precedidas por un número identifi-
cador. Este número se utiliza por Mars para reconocer la función de cada línea.
En esta sección, vamos a mostrarle cómo configurar las opciones más comunes
(note que existen varias otras, pero que son poco utilizadas). Usted podrá en-
contrar información sobre las mismas en el propio archivo /etc/nwserv.conf por
defecto o estándar que acompaña la instalación.

411
Capítulo 10. Redes Mixtas

Volúmenes del Servidor

Usted debe especificar cuáles serán los volúmenes del servidor Mars. Para es-
pecificar un volumen de servidor, tendrá que incluir una línea para cada volumen
en el archivo de configuración. Esta línea tiene la siguiente sintaxis:

1 VOLUMEN DIR_LINUX OPCIONES MASC_DIR MASC_ARCH

donde:

VOLUMEN: nombre del volumen como se lo verá por las estaciones.


DIR_LINUX: directorio del Conectiva Linux donde este volumen estará almacenado.
OPCIONES: las opciones son: opción k, que permite nombres en letras minúsculas
en Conectiva Linux. Estos nombres se convertirán automáticamente en letras mayúsculas
para estaciones DOS. Si esta opción no se ha especificado, los nombres tienen que tener
letras mayúsculas en Conectiva Linux; opción o: especifica que los subdirectorios están
en el mismo sistema de archivos. Eso permite que Mars haga algunas optimizaciones.
MASC_DIR: aquí usted puede especificar los permisos estándar de directorios. Se crea-
rán nuevos directorios con estos permisos.
MASC_ARCH: aquí usted puede especificar los permisos estándar para los archivos.
Todos los nuevos archivos se crearán con estos permisos.

No se olvide que la presencia del volumen SYS es obligatoria.


Ejemplo:

412
Capítulo 10. Redes Mixtas

1 SYS /home/netware/sys ko 775 775

1 FABRICA /home/netware/fabrica ko 775 775

1 PERSONAL /home/netware/personal ko 775 775

Nombre del Servidor Netware®

Para definir el nombre del servidor Netware®, basta incluir una línea que contiene
el nombre deseado:

2 NOMBRE_SERVIDOR

Donde NOMBRE_SERVIDOR
Ejemplo:

2 FABRICA

Eso define el nombre del servidor como FABRICA.

413
Capítulo 10. Redes Mixtas

Red Interna

Usted puede especificar el número de su red interna. Se puede especificar la op-


ción auto, para que Mars elija automáticamente el número de la red interna (uti-
liza simplemente el número IP de la interfaz de red).

3 NUM_RED

Donde NUM_RED es el número de su red interna (opcionalmente, utilice auto).


Ejemplo:

3 auto

Tarjetas de Red

Los parámetros para la configuración de las tarjetas de red son:

4 NUM_RED INTERFAZ PATRÓN_PAQUETE TIEMPO

donde:

NUM_RED: es el número de la red.


INTERFAZ: es la interfaz de red de Linux.

414
Capítulo 10. Redes Mixtas

ESTÁNDAR_PAQUETE: es el estándar o predefinido de empaquetamiento utilizado


por el servidor. Esta definición puede ser 802.2, 802.3, ethernet_ii, snap, token o auto.
Obviamente, este estándar de empaquetamiento debe ser el mismo utilizado por las esta-
ciones. El boot remoto de Netware® exige 802.3.
TIEMPO: es el tiempo que lleva un paquete para que se transmita por la interfaz. Para
tarjetas de red, utilice siempre 1.

Todas las interfaces de red deben tener números de IP, aunque el servidor no esté
sirviendo a ningún protocolo con base en TCP/IP.
Ejemplo:

4 0x01 eth0 802.3 1

Almacenamiento de Rutas

Como estándar, Mars no guarda las rutas cuando se desactiva. Así, siempre que se
activa Mars, pasa de 1 a 2 minutos buscándolas. Eso se puede modificar haciendo
que Mars guarde las rutas en el momento en que se desactiva.

5 GUARDAR

Donde GUARDAR es un valor numérico. "0" hace que Mars no guarde las rutas,
"1" hace que Mars guarde las rutas en el momento de desactivación, acelerando

415
Capítulo 10. Redes Mixtas

la iniciación posterior.
Ejemplo:

5 0

En este ejemplo, Mars está configurado para no guardar las rutas.

Versión de Netware®

Usted puede indicar la versión de Netware® que Mars aparentará ser. Eso es
importante para algunos programas que sólo funcionan con versiones específicas
de Netware®.

6 VERSION PACKET_BURST

Donde:

VERSION: es un código especificando la versión de Netware®. Este código puede ser:


0 para Netware® 2.15, 1 para Netware® 3.11 y 2 para Netware® 3.12.
PACKET_BURST: es un código para habilitar o deshabilitar packet burst. Este recur-
so todavía es experimental en Mars, pero es capaz de aumentar considerablemente el
comportamiento del servidor. El código puede ser 0x1 para habilitar o si no 0x0 para
deshabilitar el recurso.

416
Capítulo 10. Redes Mixtas

Ejemplo:

6 2 0x0

Eso define el servidor como Netware® 3.12 sin packet burst.

Tratamiento de Contraseñas

Usted puede definir cómo se tratarán las contraseñas de los clientes DOS.

7 MODO

Donde MODO es un código que indica cómo tratar las contraseñas:

0: obliga a codificar todas las contrasenas.


1: obliga la codificación de todas las contrasenas, pero soporta la rutina no codificada de
cambios de contrasena.
7: permite contrasenas no codificadas, pero no admite contrasenas vacías.
8: permite contrasenas no codificadas y contrasenas vacías.
9: permite solamente contrasenas no codificadas.

Ejemplo:

417
Capítulo 10. Redes Mixtas

7 0

Define el comportamiento por defecto.

Seguridad de Archivos durante el Proceso de Login

Hay muchas opciones que controlan los sistemas de seguridad de los archivos
durante la fase de login.

0: los clientes sólo pueden acceder al directorio SYS:LOGIN. Esta es la opción estándar.
1: los clientes pueden acceder a otros archivos además de los SYS:LOGIN/*, pero todavía
sujetos a los permisos de Linux.
2: este modo permite acceso a los archivos de la siguiente forma: si el cliente intenta
abrir un archivo para escribir, pero el mismo permite solamente que se lea, Mars permite
la apertura, pero solamente para lectura.
4: permite que los directorios se nombren nuevamente mediante una llamada denomina-
da NCP que normalmente sólo funcionaría con archivos.
8: ignorar las restricciones de estación y de tiempo en el caso del supervisor. Actual-
mente, esta opción no hace nada, ya que Mars todavía no soporta este tipo de objeto
bindery.
16: permite que no se apague un archivo que está usando otro usuario.

418
Capítulo 10. Redes Mixtas

32: almacena las entradas de los archivos para usarlos después. Normalmente, solamente
los directorios se almacenan. Eso es necesario si usted utiliza ncpfs como cliente Mars.
64: limita el espacio libre en casi 2GB. Eso es necesario para algunos clientes antiguos
de DOS.

8 MODO

Donde MODO es la suma de los códigos de las opciones deseadas.


Ejemplo:

8 20

Eso define a cuáles directorios se les puede cambiar el nombre mediante NCP (4)
y cuáles archivos en uso se pueden borrar (16).

Usuario Invitado

Usted debe especificar un usuario de Linux para corresponder al usuario "invi-


tado" (guest). Durante el proceso de boot remoto y login, el servidor le dará ese
permiso al cliente, por lo tanto es importante verificar que este usuario tenga
acceso a los archivos necesarios (SYS:LOGIN\LOGIN.exe y SYS:LOGIN\NET$DOS.SYS)

10 UID 11 GID

419
Capítulo 10. Redes Mixtas

Donde:

UID: es el número del usuario "invitado".


GID: es el número del grupo del usuario "invitado".

Usted puede especificar el usuario: grupo nobody:nobody (99:99) para que sea el
usuario "invitado".
Ejemplo:

10 99 11 99

Eso define al usuario nobody:nobody como usuario invitado.

Usuarios con poder de supervisor

Usted debe definir cuáles serán los usuarios con poderes de supervisor.

12 USU_NW USU_LINUX CONTRASEÑA

Donde:

USU_NW: es el nombre del usuario "supervisor"en Netware®.


USU_LINUX: es la cuenta del usuario en Linux.

420
Capítulo 10. Redes Mixtas

CONTRASENA: es la contrasena del usuario en Linux. Note que es una buena idea
cambiar los permisos del archivo /etc/nwserv.conf para 700, de manera que nadie pueda
leerlos y descubrir la contrasena del supervisor.

Ejemplo:

12 SUPERVISOR root !92oi28#

Eso define que el usuario root será el supervisor y que su contraseña es !92oi28#

Usuarios de Netware®

Usted puede registrar los usuarios de Netware®. Hay dos maneras de anotar sus
contraseñas: como parámetro de esta línea en el archivo de configuración o me-
diante SYSCON.

13

USU_NW:USU_LINUX:[CONTRASEÑA]

Donde:

USU_NW: es el nombre del usuario en Netware®.


USU_LINUX: es el nombre del usuario Linux asociado.

421
Capítulo 10. Redes Mixtas

CONTRASENA: es la contrasena del usuario. Note que este parámetro es opcional, ya


que la contrasena puede ser configurada por el supervisor vía SYSCON.

Si la contraseña se configura mediante SYSCON, el usuario puede alterar la que


el administrador le ha atribuido temporalmente.
Un mismo usuario Linux puede estar asociado a varios usuarios Netware®, lo
que facilita la instalación de seguridad.
Ejemplo:

13 CLARA jefatura

13 JORGE jefatura

13 MARCIO producción

13 DEMERVAL demerval

Estas líneas registran algunos usuarios. Note que CLARA y JORGE están registrados
para un mismo usuario Linux (jefatura).

Registro automático de usuarios

Es posible anotar automáticamente los usuarios Linux y los usuarios de Net-


ware®.

15 REGISTRO_AUTOMATICO

422
Capítulo 10. Redes Mixtas

Donde REGISTRO_AUTOMATICO es 0 para deshabilitar y 1 para habilitar el


registro automático de usuarios.
Ejemplo:

15 0

Deshabilita el registro automático. Fíjese que no es conveniente deshabilitar esta


opción.

Creación de los directorios esenciales

Con la opción 16, Mars siempre comprobará la existencia de los directorios esen-
ciales (MAIL, directorios de usuarios, etc..) y los creará, si hubiera necesidad.

16 COMPROBAR

Donde COMPROBAR es 0 para no verificar y 1 para comprobar la existencia de


los archivos (eso, obviamente, implica en crear los mismos en caso de necesidad).

423
Capítulo 10. Redes Mixtas

Script de Login Estándar

Hay un problema cuando SYSCON intenta grabar el primer script de login: no


logra hacerlo. Si usted habilita esta opción, este problema estará resuelto y se
creará un script de login estándar (vacío).

17 CREAR

Donde CREAR es 0x0 para no crear y es 0x1 para crear.


Ejemplo:

17 0x1

Este ejemplo instruye Mars para que siempre cree un script de login estándar,
cuando el usuario no posea uno.

Desconexión del Banner de Impresión

Con esta opción, usted puede desconectar la impresión del banner incondicional-
mente. Eso es útil principalmente cuando se está utilizando estaciones Windows
95® antiguas, ya que las mismas no ofrecen esa importantísima opción.

18 BANNER

424
Capítulo 10. Redes Mixtas

Donde BANNER es 0 para no imprimir y 1 para permitir la impresión. Note que,


si se especifica el valor 1, la impresión del banner todavía se puede evitar por
medio de las opciones de Netware®.
Ejemplo:

18 0

Jamás imprima el banner en las impresiones.

Colas de Impresión

Usted puede especificar las colas de impresión para utilizar las estaciones. Cada
cola ocupa una línea:

21 NOMBRE DIRECTORIO COMANDO

Donde:

NOMBRE: es el nombre de la cola de impresión de Netware®.


DIRECTORIO: es el directorio donde las tareas de impresión se graban. Note que este
directorio tiene que existir y que no puede ser el directorio de cola de Linux (/var/spool/lpd/*).

Ejemplo:

425
Capítulo 10. Redes Mixtas

21 LASER SYS:/PRINT/LP lpr -P text

En esta misma guía vamos a presentar otro protocolo para trabajar con redes
mixtas, vea en el apéndice B.

426
Apéndice A. Appletalk

Conectiva Linux ofrece el paquete Netatalk en su distribución. Este paquete con-


tiene el protocolo Appletalk, que permite al servidor Conectiva Linux servir im-
presoras y archivos para estaciones Macintosh®.
Vea que el camino de vuelta no es posible, o sea, Macintosh no puede ser servidor
de una red Linux. Esto depende de la creación de un módulo del núcleo que aún
está en sus etapas iniciales de desarrollo.
Netatalk acepta conexiones vía protocolo Ethertalk y TCP/IP. Los computadores
Macintosh más nuevos dan privilegio al TCP/IP como protocolo de transporte.
El paquete Netatalk consiste en 3 servicios que actúan en conjunto, aunque se
puedan activar y desactivar independientemente:

• atalkd: Sirve a Appletalk vía Ethertalk.

• afpd: Sirve a Appletalk vía TCP/IP.

• papd: Juega un papel de intermediario de los servicios de impresión para los otros dos
servicios.

Si no se comparte la impresora y no se necesita el Ethertalk, se puede iniciar sólo


el afpd y, así, ahorrar un poco de memoria.

427
Apéndice A. Appletalk

Instalando Netatalk
Para instalar Netatalk:

• Acceda al directorio de paquetes del CD 1 de Conectiva Linux

# cd /mnt/cdrom/conectiva/RPMS

• Instale los paquetes de Netatalk:

# rpm -ivh netatalk-*

netatalk ###########################################

netatalk-devel ###########################################

Configurando Netatalk
Netatalk de Conectiva Linux ya viene configurado para las aplicaciones simples.
Todo lo que hay que hacer es especificar los directorios que serán exportados
como volúmenes para las estaciones Macintosh.

428
Apéndice A. Appletalk

Netatalk Concentra todos sus archivos de configuración en el directorio /etc/atalk.

Exportando directorios
Para especificar cuáles directorios se exportarán como volúmenes para los clientes
Macintosh, se debe editar el archivo /etc/atalk/AppleVolumes.default y añadir las
líneas correspondientes a los directorios.
Las líneas de /etc/atalk/AppleVolumes.default tienen el siguiente formato:

PATH [NOMBRE] [casefold=X] [codepage=X] [options=X,Y,Z] \

[access=X,@Y,Z] [dbpath=X] [password=X]

Donde:

• NOMBRE: Es una descripción del volumen.

• casefold: Son opciones de cuadro de texto de los nombres de archivos y directorios.


Puede ser:

• tolower: Convierte las letras en minúsculas, en el servidor y en los clientes.

• toupper: Convierte las letras en mayúsculas, en el servidor y en los clientes.

• xlatelower: Convierte en minúsculas en el cliente y en mayúsculas en el servidor.

429
Apéndice A. Appletalk

• xlateupper: Convierte en mayúsculas en el cliente y en minúsculas en el servidor.

• codepage: Señala la página de códigos que será utilizada. El parámetro es el nombre


de un archivo del directorio nls.

• options: Son opciones diversas divididas por comas. Puede ser cualquier combinación
de:

• prodos: Permite compatibilidad con clientes AppleII®.

• crlf: Habilita la conversión de los caracteres de nueva línea de los archivos textos
entre los dos ambientes.

• noadouble: No crea los archivos .AppleDouble a no ser que sea necesaria una
división de los recursos. Los archivos .AppleDouble son creados para cada archivo
en un directorio. Macintosh guarda información como ícono, tipo de archivo, etc, en
dichos archivos. Aisladamente ellos son bastante pequeños (589 bytes), pero pueden
ocupar mucho espacio debido al gran número de archivos generados.

• access: Es una lista de nombres de usuarios o grupos que no pueden acceder al volu-
men. Una arroba ("@") debe preceder a los grupos;

• dbpath: Directorio donde la base de datos será grabada.

430
Apéndice A. Appletalk

• password: Es una contraseña para proteger el directorio.

Configurando permisos de acceso

Usuarios

Para acceder al servidor Netatalk, el cliente Macintosh debe proveer un nombre


de usuario y una contraseña, que deben estar registrados en el servidor Conectiva
Linux.
Se puede crear un usuario único que será utilizado por todas las estaciones Mac-
intosh al mismo tiempo. Aunque eso facilite la administración, perjudica la se-
guridad ya que cualquier usuario tendrá acceso total a los archivos de los demás.

Permisos en el directorio de los volúmenes

Los usuarios necesitan tener permiso de escritura en los directorios de los volú-
menes que accedan vía Appletalk.

431
Apéndice A. Appletalk

Eso porque Netatalk necesita guardar allí la información referente al cliente Mac-
intosh. Además, se crearán en estos directorios sus respectivas “Papeleras”.
Como la creación de un directorio con todos los permisos para todos los usuarios
no es algo deseable en el servidor Conectiva Linux, se puede crear un grupo atalk,
colocar los usuarios de Macintosh en este grupo y sólo permitir escritura en los
archivos a los miembros de este grupo.

En la estación
Para acceder a los volúmenes, utilice Network Browser. Expanda la sección Ap-
pleTalk. Si está todo bien configurado, el nombre del servidor Conectiva Linux
ya debe aparecer en la lista.
Expanda el servidor Conectiva Linux para visualizar los volúmenes exportados.
En ese instante, MacOS® solicitará un nombre de usuario y una contraseña, que
se deberá haber registrado en Conectiva Linux.
Haciendo doble clic sobre cualquier volumen, una nueva ventana se abrirá, mos-
trando los archivos y directorios del volumen en forma de íconos o en forma de
lista.
Si se hace doble clic en un volumen y su contenido no aparece, eso indica falta
de permisos (ver la la sección de nombre Configurando permisos de acceso). Por
otro lado, si se consigue acceder al volumen, pero se tiene permisos insuficientes
para manipular determinado archivo, MacOS® informará sobre el problema.

432
Apéndice A. Appletalk

MacOS® tiene la característica indeseable de mantener en cache los permisos


negativos. O sea, seguirá informando falla de acceso aunque los permisos hayan
sido modificados en Conectiva Linux. Habrá necesidad de forzar MacOS® a
desconectarse del servidor Linux de alguna forma - sea reiniciando Mac, reini-
ciando el servicio Netatalk o rompiendo la conexión TCP/IP.

Iniciando Netatalk
Para iniciar Netatalk:

# cds

atalk dhcpd httpd kudzu mysql nfs postgresql

atd functions inet linuxconf-setup named nfslock random

autofs gpm keytable lpd netfs pcmcia sendmail

crond halt killall mars-nwe network portmap single

# ./atalk start

Starting AppleTalk Services: [ OK ]

Starting papd service: [ OK ]

Starting afpd service: [ OK ]

Se puede utilizar ntsysv para configurar estos servicios para que se inicien au-
tomáticamente.

433
Apéndice A. Appletalk

434
Apéndice B. Licencias generales

Introducción
Prácticamente todo el software contenido en el CD-ROM de Conectiva Linux es
de libre distribución. Pocos requieren algún tipo de autorización especial para su
uso, obtenidos por Conectiva S.A. (http://es.conectiva.com) y algunos software
desarrollados por la propia Conectiva, son puestos a disposición bajo licencia
comercial de uso.
La mayoría de los software se distribuye bajo una de las tres licencias presen-
tadas en este capítulo. Por favor, verifique en cada software cuáles son sus com-
ponentes, así como los términos de su distribución.
Todos el software de los CD-ROMs producidos por Conectiva es copyright de ®
Conectiva S.A. (http://es.conectiva.com). A menos que exista manifestación ex-
presa, el software contenido en los CDs es de libre distribución bajo los términos
de la Licencia Pública GNU (GPL).
Los términos Red Hat® y rpm® son marcas de propiedad de Red Hat Software,
Inc. Los términos Conectiva y WebBatch son marcas de propiedad de Conectiva
S.A. (http://es.conectiva.com).

435
Apéndice B. Licencias generales

BSD Copyright
Copyright ® 1991, 1992, 1993, 1994 The Regents of the University of California.
Todos los derechos reservados.
Se permite, dentro de las siguientes condiciones, la redistribución y uso en las
formas de código fuente o binarios, con o sin modificación:

1. La redistribución del software debe contener toda la información sobre derechos de


autor, esta lista de condiciones y el aviso de abajo.;

2. La redistribución de binarios o ejecutables debe contener toda la información sobre


derechos de autor, listas de condiciones y el aviso de abajo.

3. Todos los comerciales y anuncios que mencionen funcionalidades de este software


deben presentar el siguiente texto: Este producto incluye software desarrollado
por la Universidad de California, Berkeley y sus contribuyentes;

4. El nombre de la Universidad, o de sus contribuyentes, no puede ser utilizado para


endosar o promover productos derivados de este software sin expresa autorización
por escrito.

ESTE SOFTWARE SE DISTRIBUYE POR SUS MONITORES Y CON-


TRIBUYENTES EN LA FORMA EN QUE SE ENCUENTRA, Y CUAL-
QUIER GARANTÍA EXPRESA O IMPLÍCITA, INCLUYENDO, PERO
NO LIMITADAS A LAS GARANTÍAS COMERCIALES Y LA ATENCIÓN
A DETERMINADOS PROPÓSITOS NO SON RECONOCIDAS. EN NIN-
GUNA HIPÓTESIS LOS MONITORES O SUS CONTRIBUYENTES SERÁN

436
Apéndice B. Licencias generales

RESPONSABLES POR NINGÚN DAÑO DIRECTO, INDIRECTO, ACCI-


DENTAL, ESPECIAL, INCLUYENDO, PERO NO LIMITANDO LA SUSTI-
TUCIÓN DE MERCANCÍAS O SERVICIOS, IMPOSIBILIDAD DE USO,
PÉRDIDA DE DATOS, LUCROS CESANTES O INTERRUPCIÓN DE AC-
TIVIDADES COMERCIALES, CAUSADOS EN CUALQUIER BASE POR
EL USO DE ESTE SOFTWARE.

X Copyright
Copyright® 1987 X Consortium
Se concede y garantiza a cualquier persona, libre de costos, la obtención de copia
de este software y de los archivos de documentación asociados (el Software), pu-
diendo trabajar con el Software sin restricciones, incluyendo los derechos de uso,
copia, modificación, unificación, publicación, distribución, sublicenciamiento o
venta de copias del Software, y el permiso a las personas a las que se entregue el
Software, dentro de las siguientes condiciones:
Las informaciones de copyright presentadas a continuación deben estar presentes
en todas las copias o partes sustanciales del Software:
EL SOFTWARE SE PONDRÁ A DISPOSICIÓN EN LA FORMA EN QUE
SE ENCUENTRE, SIN GARANTÍAS DE NINGUNA ESPECIE, EXPRE-
SAS O IMPLÍCITAS, INCLUIDAS, PERO NO LIMITADAS A LASGARAN-
TÍAS COMERCIALES, Y A LA ATENCIÓN A DETERMINADOS FINES.

437
Apéndice B. Licencias generales

DE NINGUNA MANERA EL CONSORCIO X (XCONSORTIUM) SERÁ


RESPONSABLE POR NINGUNA RECLAMACIÓN, DAÑO U OTRAS PÉR-
DIDAS, A MENOS QUE SE EXPRESE EN CONTRATO, ACUERDO U
OTRAS FORMAS, EN LO QUE SE REFIERE A LA UTILIZACIÓN, CO-
MERCIALIZACIÓN, CONEXIÓN U OTROS CONTACTOS CON ESTE
SOFTWARE.
Excepto por el contenido en ese aviso, el nombre del Consorcio X (X Consor-
tium) no podrá utilizarse en ningún comercial u otra forma de promoción de
ventas, uso u otras negociaciones de este Software, sin la autorización expresa
del X Consortium.
Copyright ® 1987 Digital Equipment Corporation, Maynard, Massachusetts. To-
dos los derechos reservados.
Está garantizado, el permiso de uso, copia, modificación y distribución de este
software y su documentación con cualquier objetivo y sin costo, desde que el
copyright abajo aparezca en todas las copias y que tanto el copyright, como este
aviso y el nombre de Digital aparezcan, no pudiendo ser usados en anuncios o
publicidad referente a la distribución del software sin autorización expresa por
escrito.
DIGITAL NO OFRECE NINGÚN TIPO DE GARANTíA EN EL USO DE
ESTE SOFTWARE, INCLUYENDO TODAS LAS COMERCIALES Y DE
ATENCIÓN A DETERMINADOS PROPÓSITOS, Y BAJO NINGÚN PUNTO
DE VISTA, DIGITAL SERÁ RESPONSABLE POR ALGUNA RECLAMA-
CIÓN, DAÑO U OTRAS PÉRDIDAS, A MENOS QUE SE EXPRESE EN
CONTRATO, ACUERDO U OTRAS FORMAS, EN LA UTILIZACIÓN,
COMERCIALIZACIÓN, CONEXIÓN U OTROS CONTACTOS CON ESTE

438
Apéndice B. Licencias generales

SOFTWARE.

439
Apéndice B. Licencias generales

440
Apéndice C. Licencia de Uso y
Garantía del Producto

Antes de instalar Conectiva Linux en su computador, o cualquiera de los paque-


tes o programas incluidos en este producto, por favor, lea este documento cuida-
dosamente. Este documento contiene información importante sobre los derechos
legales de este producto. Le recomendamos considerar los puntos presentados
aquí, bien como conocer y entender los términos y condiciones por los que este
programa está licenciado para usted. Cuando instala cualquier programa incluido
en este producto, usted acepta automáticamente los términos y condiciones si-
guientes.

General
Los derechos de autor del Sistema Operativo Conectiva Linux se basan en la Li-
cencia Pública General GNU (“GPL”). Consideramos que la GPL pone a disposi-
ción los mejores mecanismos para todos los beneficios y libertades de los progra-
mas de “libre distribución”. Usted puede encontrar una copia de la GPL en el ma-
nual de instalación de Conectiva Linux, en http://es.conectiva.com (http://es.conectiva.com)
y en diversos sitios en Internet. Conectiva Linux es un sistema operativo modu-
lar, compuesto por centenas de programas, cada uno de ellos escrito por personas

441
Apéndice C. Licencia de Uso y Garantía del Producto

diferentes y con su propio derecho de autor. En este documento, se les hace refe-
rencia, individual y colectivamente como “Programas”. Varios Programas tienen
su derecho de autor basado en la GPL y otras licencias que permiten la copia,
modificación y redistribución. Por favor, verifique la documentación on-line que
viene con cada uno de los programas incluidos en Conectiva Linux, para verificar
su licencia específica. Le sugerimos que lea estas licencias cuidadosamente, para
entender sus derechos y utilizar mejor las ventajas que Conectiva Linux pone a
su disposición.

Licencia limitada de productos

Además de los programas de libre distribución, Conectiva puede incluir en este


producto distintos programas y aplicaciones que no están sujetos a la GPL u otras
licencias que permiten modificación y redistribución. Algunos de estos progra-
mas se muestran a continuación:

• AcrobatReader®

• AcuCobol-4.3®

• Aker®

• Arkeia®

442
Apéndice C. Licencia de Uso y Garantía del Producto

• BR®

• Dataflex®

• Domino®

• FlagShip®

• JRE®

• Jade®

• MZS®

• Oracle8i®

• SpoolBiew®

• db2®

• oss®

• vmware®

• xni®

Generalmente cada uno de estos componentes tiene licencia únicamente en su


forma binaria, de manera restringida, es decir que usted podrá instalarlos en un

443
Apéndice C. Licencia de Uso y Garantía del Producto

único computador para su uso individual. Está prohibida la copia, redistribución,


ingeniería reversa y/o modificación de los mismos . Cualquier violación de los
términos de las licencias, cancelará inmediatamente su licencia individual. Para
conocer los términos precisos de las licencias de estos componentes, por favor
verifique la documentación on-line que viene con cada uno de ellos. Si usted no
está de acuerdo en aceptar los términos de la licencia de estos componentes, no
los instale en su computador. Si desea instalarlos en más de un computador, entre
en contacto con el distribuidor de los programas o aplicaciones correspondientes
para adquirir las respectivas licencias.

Antes de la instalación
ANTES DE INSTALAR CONECTIVA LINUX O CUALQUIERA DE LOS PRO-
GRAMAS O APLICACIONES INCLUIDOS EN ÉL, LEA ATENTAMENTE
LOS TÉRMINOS Y CONDICIONES SIGUIENTES. LA INSTALACIÓN DE
CUALQUIERA DE ESTOS PROGRAMAS, INDICA SU ACEPTACIÓN DE
LOS TÉRMINOS Y CONDICIONES SIGUIENTES. SI USTED NO ESTÁ DE
ACUERDO CON ESTOS TÉRMINOS Y CONDICIONES NO INSTALE ES-
TOS PROGRAMAS.
LOS PROGRAMAS, INCLUSO LOS CÓDIGOS FUENTE, DOCUMENTA-
CIÓN, APARIENCIA, ESTRUCTURA Y ORGANIZACIÓN, SON PRODUC-
TOS DE PROPIEDAD DE CONECTIVA S.A., INC, ORACLE, SUN ENTRE
OTROS, Y ESTÁN PROTEGIDOS POR EL DERECHO DE AUTOR, ADEMÁS

444
Apéndice C. Licencia de Uso y Garantía del Producto

DE OTRAS LEYES. ESTOS PROGRAMAS ASÍ COMO CUALQUIER COPIA,


MODIFICACIÓN O PARTE ORIGINADA A PARTIR DE ELLOS, DEBEN
SIEMPRE PERMANECER CON LOS ANTERIORMENTE MENCIONADOS,
SOMETIDOS A LOS TÉRMINOS Y CONDICIONES DE LA GPL U OTRAS
LICENCIAS RELACIONADAS CON LOS MISMOS.

Garantía Limitada
EXCEPTO SI SE DICE ESPECIFICAMENTE EN ESTE ACUERDO, LOS PRO-
GRAMAS PUESTOS A DISPOSICIÓN Y LICENCIADOS, “TAL Y COMO
ESTÁN”, NO TIENEN GARANTÍA DE NINGÚN TIPO, NI EXPRESA NI IM-
PLÍCITA, LO CUAL INCLUYE, PERO NO LIMITA, LAS GARANTÍAS DE
COMERCIALIZACIÓN Y CONVENIENCIA PARA UN PROPÓSITO PAR-
TICULAR.
Conectiva S.A. (http://es.conectiva.com) garantiza que el medio en el cual es-
tán grabados los programas está libre de defectos de fabricación y manufactura,
en condiciones normales de uso, durante un período de 30 días a partir de la
fecha de la compra. Conectiva S.A. (http://es.conectiva.com), no garantiza que
las funciones que contienen los programas sean compatibles con los requisitos
que usted espera de ellas o que el funcionamiento de los programas esté comple-
tamente libre de errores ni que aparezcan exactamente como están descritos en la
documentación que se anexa al producto.

445
Apéndice C. Licencia de Uso y Garantía del Producto

Limitación de Reparación y
Responsabilidad

Por el máximo permitido por las leyes aplicables, las reparaciones descritas a
continuación, se aceptan como únicas y deben estar disponibles solamente si
este producto ha sido registrado en Conectiva S.A. (http://es.conectiva.com), de
acuerdo con las instrucciones disponibles en el mismo, hasta diez días después
de que usted lo haya recibido.
La responsabilidad de Conectiva S.A. (http://es.conectiva.com), y su reparación
exclusiva, se limita a los casos en que el medio en el que se puso a disposición
el programa está con defecto. En este caso usted podrá devolverlo, dentro de
un plazo de 30 días a partir de la fecha de compra, adjuntando una copia de su
factura. Conectiva S.A. de acuerdo con su criterio, lo cambiará o procederá a la
devolución del dinero.
POR EL MÁXIMO PERMITIDO POR LAS LEYES APLICABLES, EN NIN-
GÚN CASO CONECTIVA S.A. SERÁ RESPONSABLE POR CUALQUIER
DAÑO. LO CUAL INCLUYE, LUCROS CESANTES, PÉRDIDAS ECONÓMI-
CAS U OTROS DAÑOS ACCIDENTALES O CONSECUENTES DEL USO
APROPIADO O INAPROPIADO DE LOS PROGRAMAS Y/O APLICACIO-
NES. INCLUYENDO LOS DEBIDOS A LA INEPTITUD PARA EL USO DE
LOS PROGRAMAS Y/O APLICACIONES, AUN EN EL CASO DE QUE CO-
NECTIVA S.A. O ALGÚN DISTRIBUIDOR AUTORIZADO, NO HAYA EFEC-
TUADO LAS ADVERTENCIAS CORRIENTES SOBRE ESTOS TIPOS DE

446
Apéndice C. Licencia de Uso y Garantía del Producto

PROBLEMAS.

General
Si alguna cláusula de este Acuerdo no se considera válida, las otras cláusulas no
se deberán afectar por este motivo. El acuerdo se establece según la legislación
brasileña. En caso de conflicto de jurisdicción, para solucionar dudas, omisiones
o cualquier otro asunto relacionado con el presente convenio, queda definida
como competente la Cámara Arbitral del bloque comercial del cual estos países
hacen parte u otra Cámara competente, según el arreglo comercial establecido en-
tre estos mismos países, definiéndose en última instancia la OMC (Organización
Mundial de Comercio) para solucionar cualquier asunto legal.
Derechos de autor ®2000 Conectiva S.A. (http://es.conectiva.com). Todos los
derechos reservados. Conectiva y Conectiva Linux son marcas registradas de Co-
nectiva S.A. (http://es.conectiva.com). Linux es una marca registrada de Linus
Torvalds en varios países.

447
Apéndice C. Licencia de Uso y Garantía del Producto

448
Apéndice D. Licencia Pública
General GNU

GNU GENERAL PUBLIC LICENSE


Versión 2, Junio 1991
Esta es una traducción no oficial de la Licencia Pública General GNU al español.
No ha sido publicada por la Free Software Foundation y no expresa legalmente
los términos de distribución que usa la GNU GPL – sólo el texto original en Inglés
de la misma lo manifiesta. No obstante, esperamos que esta traducción ayudará a
los hispanohablantes a entender mejor la GNU GPL.
Copyright \copyright 1989, 1991 Free Software Foundation, Inc. 675 Mass Ave,
Cambridge, MA 02139, USA.
Se le permite a cualquier persona copiar y distribuir copias inalteradas de este
documento de licencia.

Introducción
Las licencias de muchos software se desarrollan para limitar la libertad de uso, in-
tercambios y modificaciones. La Licencia Pública General de GNU, al contrario,

449
Apéndice D. Licencia Pública General GNU

pretende garantizar la libertad de compartir y alterar software de libre distribución


- haciéndolos de libre distribución también para cualquier usuario. La Licencia
Pública General se aplica a la mayoría de los software de la Free Software Foun-
dation y a cualquier autor que esté de acuerdo en utilizar sus normas (algunos
software de la FSF son cubiertos por la GNU Library General Public License).
Cuando nos referimos a software de libre distribución, nos referimos a la libertad
y no al precio. Nuestra Licencia Pública General se creó para garantizar la libertad
de distribución de copias de software de libre distribución (y cobrar por esto, si
es de interés del distribuidor), la cual recibió los códigos fuente que pueden ser
alterados o utilizados en parte, en los nuevos programas.
Para asegurar los derechos de los programadores se hacen algunas restricciones
y se prohíbe que las personas nieguen esos derechos o soliciten su derogación.
Estas restricciones se aplican incluso a algunas responsabilidades sobre la dis-
tribución o modificación del software. Por ejemplo, cuando se distribuyen copias
de determinado programa por una tasa determinada o gratuitamente, se debe in-
formar sobre todos los derechos que inciden sobre ellas, asegurándose que los
códigos fuentes estén disponibles, inclusive la Licencia Pública General GNU.
La protección de los derechos involucra dos pasos: (1) copyright del software y
(2) licencia que concede permiso legal para copia, distribución y modificación de
software.
Además para la protección de la FSF y del autor, es importante que todos en-
tiendan queno existen garantías para software de libre distribución. Si alguien
modifica y distribuye el software, no reflejará más el trabajo original del autor y
en consecuencia, no podrá gozar de las garantías originales.
Finalmente, cualquier programa de libre distribución está constantemente ame-

450
Apéndice D. Licencia Pública General GNU

nazado porlas patentes de software. Buscamos evitar el peligro de que los dis-
tribuidores de estos programas obtengan patentes individuales, convirtiéndose en
sus dueños efectivos. Para evitarlo, se hicieron declaraciones expresas de que
cualquier solicitación de patente, debe hacerse permitiendo la utilización a cual-
quier individuo, sin necesidad de la licencia de uso.
Los términos y condiciones precisas para realizar copias, distribución y modifi-
caciones se describen a continuación.

Términos y condiciones para copia,


distribución y modificaciones

1. Esta licencia se aplica a cualquier programa u otro trabajo que contenga un aviso
colocado por el detentor de los derechos de autor, diciendo que puede ser distribuido
bajo las condiciones de la Licencia Pública General. El programa se refiere a cual-
quier software, trabajo o a un trabajo basado en un programa. Significa tanto el propio
programa, como cualquier trabajo derivado, de acuerdo con la ley de derechos de au-
tor. Es decir, un trabajo que contenga el programa o una parte de éste, en su forma
original, con modificaciones o traducido para otra lengua (la traducción está incluida
sin limitaciones en el término modificación).

451
Apéndice D. Licencia Pública General GNU

Actividades diferentes de efectuar copias, distribución y modificaciones, no


están cubiertas por esta Licencia y quedan fuera de su alcance. El acto de
ejecutar el programa no está restringido y su salida está cubierta solamente
en caso de que el contenido tenga trabajos con base en el mismo (indepen-
dientemente de que se hayan creado durante la ejecución del programa). Si
esto es así, depende de las funciones ejecutadas por el programa.

2. El código fuente del Programa se puede copiar y distribuir de la forma como fue
recibido, en cualquier medio, siempre que se coloque un aviso adecuado sobre los
copyrights y la falta de garantías. Todos los avisos que se refieran a la Licencia
Pública General y a la ausencia de garantías, deben estar inalterados y todos los
productos oriundos del programa deben estar acompañados de esta Licencia Pública
General.
Está permitido el cobro de tasas por el acto físico de transferencia o grabación
de copias. Se pueden dar garantías y soporte a cambio del cobro de valores.

3. Se puede modificar la copia o copias del programa de la forma que se desee o incluso
crear un trabajo con base en el programa, copiarlo y distribuir tales modificaciones
bajo lostérminos de la sección 1 anterior y de lo siguiente:

[a.] Debe haber un aviso destacando que los datos originales fueron alterados
en los archivos y las fechas correspondientes a los cambios.
[b.] Debe haber un aviso de que el trabajo distribuido o publicado es,
en forma total o parcial, derivado del programa o de alguna parte suya

452
Apéndice D. Licencia Pública General GNU

y que puede ser licenciado totalmente sin costos para terceros según los
términos de esta Licencia.
[c.] Si el programa modificado se ejecuta en forma interactiva, es obli-
gatorio, al iniciar su ejecución que presente la información de copyright
y de ausencia de garantías (o de que la garantía es de responsabilidad de
terceros) y que los usuarios pueden redistribuir el programa bajo estas
condiciones, indicándole cómo acceder a esta Licencia completa.

4. Estos requisitos se aplican a trabajos de modificación en general. Si algunas sec-


ciones identificables no son derivadas del programa y pueden considerarse como
partes independientes,entonces esta Licencia y sus Términos no se aplican a estas
secciones cuando sean distribuidas separadamente. Pero si se distribuyen estas sec-
ciones como parte de un trabajo basado en el programa, la distribución, como un
todo, debe contener los términos de esta Licencia, cuyos permisos se extienden al
trabajo en su totalidad y no a cada una de las partes independientemente de quien las
haya desarrollado.
Más que tener la intención de refutar los derechos sobre la labor desarrollada
por alguien, esta sección tiene por objetivo propiciar la correcta distribución
de trabajos derivados del programa.
Además, la mera inclusión en un volumen de almacenaje (medio de distribu-
ción) de trabajos que tengan como base el programa u otros trabajos basados
en él, no obliga la aplicación de esta Licencia y de sus términos a dicho tra-
bajo.

453
Apéndice D. Licencia Pública General GNU

Están permitidas, la copia y la distribución del Programa (o un trabajo basado


en éste) en la forma de código objeto o ejecutable, de acuerdo con los térmi-
nos de las Secciones 1 y 2 anteriores, desde que se cumpla lo siguiente:

[a.] Que se suministren los códigos fuente legibles, que se deben distribuir en la
forma de las Secciones 1 y 2 ya mencionadas arriba, de la forma normalmente
utilizada para el manejo del software.
[b.] Que venga con una oferta escrita, válida por três años como mínimo,
de poner a disposición de terceros, una copia completa de los códigos
fuente en medio magnético, de acuerdo con las Secciones 1 y 2 arriba.
Esto por un costo no superior al costo del medio físico de almacenaje.
[c.] Que esté anexada la misma información recibida en relación con
la oferta de la distribución del código fuente correspondiente. Esta al-
ternativa solamente está permitida para distribuciones no comerciales y
solamente si el programa recibido en la forma de objeto o ejecutable
tiene tal oferta, de acuerdo con la sección 2 anterior.

El código fuente de un trabajo es la mejor forma de que se produzcan al-


teraciones en ese trabajo. Cuando se habla de códigos fuente completos se
habla de todos los fuentes, de todos los módulos, además de las definiciones
de interfaces asociadas, archivos, scripts...utilizados en la compilación e ins-
talación del ejecutable. Como una excepción, el código fuente distribuido
podrá no incluir algunos componentes que no se encuentren en su campo de
acción, como compilador, núcleo, etc... para el sistema operativo donde el

454
Apéndice D. Licencia Pública General GNU

trabajo se ejecute.
Si la distribución del ejecutable u objeto se realiza a través de acceso a un
determinado punto, se debe hacer, a los códigos fuente oferta equivalente de
acceso, aunque terceros no estén obligados a copiar los fuentes juntos con los
objetos simultáneamente.

5. No se permite la copia, modificación, sublicenciamiento o distribución del programa,


excepto bajo las condiciones expresas en esta Licencia. Cualquier intento de copia,
modificación, sublicenciamiento o distribución del programa está prohibido, y los
derechos descritos en esta Licencia cesarán inmediatamente. Los terceros, que hayan
recibido copias o derechos bajo la forma de esta Licencia, no tendrán sus derechos
retirados siempre y cuando permanezcan dentro de las cláusulas de la misma.

6. No es necesaria la aceptación formal de esta Licencia, a pesar de que no habrá docu-


mento o contrato que garantice permiso de modificación o distribución del programa
o sus trabajos derivados. Esas acciones están prohibidas por ley, en el caso de que
no se acepten las condiciones de esta Licencia. La modificación o distribución del
programa, o cualquier trabajo basado en éste, implica la aceptación de esta Licencia
y de todos los términos de ésta, para copia, distribución o modificación del programa
o trabajos basados en éste.

7. Cada vez que el programa se distribuya (o cualquier trabajo basado en éste), el re-
ceptor automáticamente recibe una licencia del detentor original de los derechos de
copia, distribución o modificación del programa objeto de estos términos y condi-
ciones. No pueden imponerse otras restricciones a los receptores.

8. En caso que decisiones judiciales o alegaciones de uso indebido de patentes o dere-

455
Apéndice D. Licencia Pública General GNU

chos de autor, impongan restricciones que contradigan esta Licencia, éstas no in-
hiben su aplicación. Si no es posible distribuir el programa de tal forma que garan-
tice simultáneamente las obligaciones de esta Licencia y otras que sean necesarias,
entonces el programa no podrá distribuirse.
Si esta Sección se considera no válida por cualquier motivo particular o gene-
ral, su resultado implicará en la no validación general de esta Licencia para la
copia, modificación,sublicenciamiento o distribución del programa o trabajos
basados en éste.
El propósito de esta sección no es, de ninguna manera, incitar a nadie a in-
fringir derechos reclamados en cuestiones válidas y procedentes, y sí proteger
las premisas del sistema de libre distribución de software. Muchas personas
han hecho contribuciones generosas al sistema, en la forma de programas, y
es necesario garantizar la consistencia y credibilidad del sistema, cabiendo a
éstos, y no a terceros, decidir la forma de distribución de los software.
Esta sección pretende aclarar los motivos que generaron las demás cláusulas
de esta Licencia.

9. Si la distribución del programa, dentro de los términos de esta Licencia, tiene res-
tricciones en algún País, por patentes o derechos de autor, el detentor original de los
derechos de autor del programa cobijado por esta Licencia puede adicionar explíci-
tamente limitaciones geográficas de distribución, excluyendo esos países, haciendo
que la distribución solamente puedarealizarse en los países no incluidos en esta limi-
tación.

10. La Fundación de Software de Libre Distribución (FSF - Free Software Foundation)


puede publicar versiones revisadas o nuevas versiones de esta Licencia Pública Ge-

456
Apéndice D. Licencia Pública General GNU

neral periódicamente. Estas nuevas versiones mantendrán los mismos objetivos y el


espíritu de la presente versión, pudiendo variar en detalles referidos a las nuevas
situaciones en que se encuentren.
A cada versión se le asigna un número distinto. Si el Programa menciona, un
número de la versión específica de esta Licencia que tenga en su contenido
la expresión “ versión más actualizada”, es posible optar por las condiciones
de aquella versión o de cualquier versión más reciente publicada por la FSF.

11. Si se desea incorporar parte del programa a otros programas de libre distribución
de software es necesario tener la autorización formal del autor. Para software de los
cuales la FSF tenga los derechos de autor, pueden abrirse excepciones siempre que
se mantenga el espíritu y objetivos originales de esta Licencia.

12. COMO EL PROGRAMA ESTÁ LICENCIADO SIN COSTO, NO EXISTE NIN-


GUNA GARANTÍA PARA ÉL. EXCEPTO CUANDO TERCEROS SE EXPRE-
SEN FORMALMENTE, EL PROGRAMA SE PONE A DISPOSICIÓN EN SU
FORMATO ORIGINAL, SIN GARANTÍAS DE NINGUNA NATURALEZA, EX-
PRESAS O IMPLÍCITAS, INCLUYENDO, PERO NO LIMITADAS, LAS GA-
RANTÍAS COMERCIALES Y DE ATENCIÓN PARA UN FIN DETERMINADO.
LA CALIDAD Y EL RENDIMIENTO SON DE RIESGO EXCLUSIVO DE LOS
USUARIOS. CORREN POR SU CUENTA LOS COSTOS DE EVENTUALES AL-
TERACIONES, CORRECCIONES Y REPARACIONES QUE SE JUZGUEN NE-
CESARIOS.

13. EL AUTOR O TERCEROS QUE HUBIERAN MODIFICADO EL PROGRAMA,


NO ASUMEN NINGUNA RESPONSABILIDAD POR LOS DAÑOS O PERJUI-
CIOS QUE PROVENGAN DEL MAL USO O DE LA FALTA DE HABILIDAD EN

457
Apéndice D. Licencia Pública General GNU

EL EMPLEO DEL MISMO (INCLUYENDO PERO NO LIMITADA A LA PÉR-


DIDA DE DATOS O DATOS ERRÓNEOS), AÚN CUANDONO SE HAYA EMI-
TIDO UN AVISO SOBRE LOS POSIBLES ERRORES O DAÑOS. EXCEPTO EN
LOS CASOS QUE LO REQUIERA UNA DECISIÓN JUDICIAL O POR LIBRE
VOLUNTAD DE LOS MISMOS.

FIN DE LA LICENCIA

¿Cómo aplicar estos términos a nuevos


programas?

Si usted desarrolló un nuevo programa y desea su amplia difusión al público, la


mejor forma de conseguirlo es convertirlo en un software de libre distribución
que cualquiera pueda distribuir bajo las condiciones de esta Licencia.
Para eso basta anexar este aviso al programa. Se recomienda indicar ya en el
comienzo de cada archivo fuente, la ausencia de garantías y la anotación de un
archivo que contenga el texto general de esta Licencia, por ejemplo:

(una línea para colocar el nombre del programa y una

breve descripción de lo que hace)

458
Apéndice D. Licencia Pública General GNU

Copyright ® 19yy nombre del autor

Este programa es un software de libre distribución que puede copiarse

y distribuirse bajo los términos de la Licencia Pública General GNU,

como la publica Free Software Foundation, versión 2 de la licencia o

(a criterio del autor) cualquier versión posterior.

Este programa se distribuye con el deseo de que sea útil a sus

usuarios, sin embargo NO TIENE NINGUNA GARANTÍA, EXPLÍCITA O

IMPLÍCITA, COMERCIAL O DE ATENCIÓN A UN FIN DETERMINADO.

Para obtener mÁs detalles consulte la Licencia Pública General

GNU.

Junto con este software debe haber una copia de la Licencia Pública

General GNU, en inglés o español, de no ser así, escriba a Free

Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

Incluya también el medio de entrar en contacto con usted, por correo electrónico,
dirección comercial o residencial.
Si el programa es interactivo, presente en su inicio un breve aviso, como por
ejemplo:

Gnomovision versión 69, Copyright nombre del autor Gnomovision

459
Apéndice D. Licencia Pública General GNU

NO TIENE NINGUNA GARANTÍA; para obtener más detalles teclee

“muestre garantía”. Éste es un software de libre distribución

y usted está autorizado a distribuirlo siempre que cumpla

ciertas condiciones.

Para obtener más detalles, teclee “muestre condición”

Los comandos hipotéticos “muestre garantía” y “muestre condición” presentarán


las partes apropiadas de la Licencia Pública General GNU. Evidentemente los
comandos pueden variar o ser accionados por otras interfaces como clic de ratón,
etc.
Esta Licencia Pública General no permite la incorporación de su programa en
programas que no sean de libre distribución. Si su programa es una subrutina de
biblioteca, tal vez a usted le parezca más interesante permitir la “implementación”
de aplicaciones que no sean de libre distribución con su biblioteca. Si es eso lo
que desea hacer, en vez de usar esta Licencia use la Licencia Pública General
GNU para Bibliotecas.

460
líneas de configuración, 347
Índice
líneas de selección, 347
archivo /etc/host.allow, 310

archivo /etc/host.deny, 310


Símbolos
archivo /etc/inetd.conf, 402
/var/log/htmlaccess.log, 43 archivo /var/named, 218
/var/spool/mail, 53 archivo /var/named/named.ca, 221
AIDE, 345 archivo /var/named/named.local, 220
grupos predefinidos, 349 archivo /var/spool/lpd, 425
almacenamiento en cache, 196 archivo resolv.conf, 225
aplicaciones archivo sendmail.cf, 294
AIDE, 345 Bind
appletalk archivos de configuración, 216, 218,
afpd, 427 220, 221

atalkd, 427 dominio, 219


comodines, 310
papd, 427
correo electrónico
servicios, 427
archivo /etc/aide.conf
MTA, 269

461
DNS dominios de Internet, 191

almacenamiento en cache, 196 filtro de paquetes

archivo /var/named, 218 acciones posibles, 316


archivo /var/named/name.ca, 221 finger, 307

archivo /var/named/name.local, 220 firewall

Bind, 216 configurando, 319


configuración, 206 opciones, 317, 317, 318, 318, 318
configurando, 223 FTP

dominio, 219 tcp_wrappers, 308


dominios, 191 IMAP, 269

DPN, 191 buzón, 285


estructura de la base de datos, 187 buzón de correo, 285, 286, 288, 289
forward zones, 208 directorio /var/spool/mail, 284
instalación, 197 opciones de configuración, 282
máquina de resolución de nombres, ipchains
196, 196
instalando, 319
resolución de nombres, 196
LDAP
servidor de nombres, 197, 209, 214,
ACL, 158
215, 224, 224

462
comando ldapsearch, 162 named, 214

configurando, 158, 158, 158 NFS

linuxconf configuración, 388, 389, 390


información sobre los archivos, 55 configurando, 391
Sendmail, 293 iniciación del servicio nfs, 390
mapas de IPs inversos, 204 ntsysv

Mars-NWE configurando named, 215


banner de impresión, 424 POP

cola de impresión, 425, 425 configurando, 292


packet burst, 416 portmap, 390

usuario, 421, 422 protocolo

versión de Netware, 416 IMAP, 269


MTA, 269 SMTP, 269
Postfix, 293 proxy

Qmail, 293 reglas de acceso, 265, 265


Sendmail, 293 Qmail, 293

máquina de resolución de nombres, 196 resolución de nombres, 196

funciones, 196 Samba

463
archivo /etc/inetd.conf, 402 SSL, 260
configurando, 402 TCP Wrappers, 307

seguridad telnet, 307

AIDE, 345
archivo /etc/host.allow, 310
archivo /etc/host.deny, 310
A
comodines, 310
acceso móvil, 178
control de acceso, 310
tcpd, 307 habilitando, 179

verificando, 345 incluyendo perfiles, 178


acceso remoto, 386
Sendmail
ACL, 151
archivo m4, 295
agrupación de discos duros, 99
archivo sendmail.cf, 294
AIDE
configurando, 293
SMTP, 269
configurando, 347

configurando, 293 utilizando, 353


aide-m5, 354
Squid
alias de IP, 238
almacenaje, 264, 264

464
almacenamiento de rutas, 415 MTTF, 361
alta disponibilidad, 357 MTTR, 361
administración de nodos, 367 objetivos, 359
administración de servicios, 369 RAID, 112, 139
aplicación, 366 redundancia, 359
cálculo, 360 ReiserFS, 368
defecto, 363 sistema de archivos, 368
DRBD, 368, 369 Apache, 230

duplicación, 359 configuración, 231


duplicación de discos, 367 configurando, 237, 237, 238, 241
error, 362 iniciando, 234
escalonador Mon, 369 instalación, 231
failback, 365 máquina virtual, 241
failover, 364 registros de error, 242
falla, 362 registros de transferencia, 242
heartbeat, 376, 378, 379, 379, 380, scripts CGI, 242
381
aplicaciones
misión, 365
Apache, 230

465
authconfig, 170 archivo /etc/passwd, 407

dnsserver, 261 archivo /etc/raidtab, 125, 130, 136

LDAP, 143 archivo /etc/services, 292, 304

linuxconf, 35 archivo /etc/shadow, 407

Samba, 392 archivo /etc/sysconfig/network, 330

Squid, 261 archivo /proc/mdstat, 134

appletalk archivo /var/log/messages, 327

Netatalk, 427 archivo inetd.conf, 292, 303

archivo .mensaje, 256 archivo ldap.conf, 160

archivo /etc/aide.conf, 347 archivo named.conf, 217

líneas de macro, 347 archivo pam.d, 171

archivo /etc/atalk, 429 archivo passwd, 170, 173

archivo /etc/exports, 389 archivo resolv.conf, 223

archivo /etc/ftpaccess, 253 archivo sladp.conf, 157

archivo /etc/ha.d/ha.cf, 383 archivo slapd.at.conf, 179

archivo /etc/ha.d/haresources, 382 archivo slapd.conf

archivo /etc/inetd.conf, 244, 310 personalizando, 181


archivo /etc/nwserv.conf, 407, 411 archivo slapd.oc.conf, 179

466
archivo squid.conf, 262 clases de objetos, 149

archivos cola de impresión, 425

seguridad del login, 418 Compartiendo discos, 399

archivos de configuración, 57 compartiendo un directorio, 399

autenticación, 170, 407 contraseñas

configurando, 173, 174 tratamiento, 417


contraseñas codificadas, 395

contraseñas decodificadas, 395

control de acceso, 265, 310


B
control de acceso al servidor FTP, 248
Bind
control de servicios, 64, 64, 65
archivos de configuración, 217 correo electrónico, 267
bindery, 405
intercambio de mensajes, 268
MUA, 268
protocolo IMAP, 276

C protocolo POP, 273


protocolo SMTP, 270
cache, 264
sniffer, 274, 274
caching, 259

467
D 189, 191
servidor de nombres, 194, 195, 195
disco de reposición, 111
zona, 194
disponibilidad de los servidores
DPT-RAID, 101
alta, 359
DRDB, 368
disponibilidad de servidores
configuración, 371
básica, 358
configurando, 370, 371
continua, 359
iniciando, 373
DNS, 187
DSP, 101
archivo named.conf, 217
duplicación, 111, 359
configuración, 202, 202, 202, 204,
210
configurando, 198, 200, 211
dirección IP, 213 E
dominio, 194, 201
ECC, 112
dominios, 190, 193
enmascaramiento de IP, 340, 341
funcionalidades, 212
funcionamiento, 188
nombres de dominio, 188, 189, 189,

468
F FQDN, 150

FTP
filtro de paquetes, 316
archivo .mensaje, 256
configurando, 319
archivo /etc/ftpaccess, 253
firewall
caching, 259
archivo /var/log/messages, 327
configurando, 255
comando ipchains, 319
servicios, 243
configurando, 323, 324, 326, 328,
341, 343
filtro de paquetes, 316, 319
Forward, 328, 330, 332, 333, 334, G
336
función printk(), 327 GNOME

opciones, 318 herramienta para LDAP, 175

por entrada, 320 GPL, 449

por reenvío, 340


reglas de, 317
reglas de entrada, 321, 322, 322 H
forward zones, 208
Heartbeat

469
archivo /etc/ha.d/ha.cf, 383 IPX, 404

archivo /etc/ha.d/haresources, 382


configurando, 377, 382
instalación, 376
L
hipertexto, 227
LDAP
HTTP

requerimiento, 229 acceso móvil, 178, 178, 179, 183

requisición, 228 archivo de atributos, 179


archivo de registros, 174
archivo ldap.conf, 160
archivo LDIF, 181
I
archivo objectclass, 179
IMAP, 276 archivo syslog.conf, 174
comando LIST, 280 autenticación, 170, 171
configurando, 292 base de datos, 175
estados, 277 clases de objetos, 149
internet super-server, 303 atributo cn, 149
ipchains, 319 atributo description, 149

470
atributo sn, 149 información
opción objectClass, 149 accediendo, 150
opción person, 149 organizando, 148
opción schemacheck, 149 protegiendo, 151
cliente LDAP GQ, 175 registrando, 150
comando ldapadduser, 174 iniciando el servidor, 160
comando ldapdeluser, 174 instalando, 156
comandos, 162 modelo cliente-servidor, 152
configurando, 157, 158, 158, 166 nombre de dominio, 148
control de acceso ACL, 151 NSS, 170, 173
directorio X.500, 154 PAM, 170, 171
directorios, 144 paquetes, 156
DNS, 146 protocolo DAP, 154
entradas, 147 RDN, 150
estructura, 148 reiniciando el servidor, 183
FQDN, 150 RFC, 147
funcionamiento, 152 script migrate_all_offline, 159
Herramientas gráficas, 175 servicios globales, 146

471
slapd, 181 ayuda, 48
slurpd, 156 cambiando configuraciones, 62
usuarios, 174, 174 características, 36
utilizando, 162 comandos y "daemons", 60, 61
utilizando URLs, 169 configuraciones, 35
licencia configurando, 44, 45, 51, 64, 65, 223,
237, 255, 402
GPL, 449
control de servicios, 64
linux conf
filtrado de archivos, 54
DNS, 198
informe de alteraciones, 49
linuxconf, 35
iniciando, 39, 41, 42, 42, 43
/usr/sbin/useradd-sql, 63
interfaz, 36, 37, 38, 38, 38
/var/log/htmlaccess.log, 43
interfaz gráfica de, 39
activando configuraciones, 48
módulos, 51
activando las configuraciones, 50
NFS, 387
alias de IP, 238
permiso de archivos, 53
Apache, 234
personalizando funciones, 62
archivos de configuración, 57, 58
Qué es, 35
atribución de bandas de, 213

472
Samba, 394 Netware, 410
secciones de, 41 paquetes de broadcast, 405
seguridad, 303 permisos, 407
servicio, 214 script de login estándar, 424
setuid, 56 scripts de logon, 406
teclas de referencia rápida, 37 seguridad durante el login, 418, 419
utilizando, 39 supervisor, 407
usuario, 419, 420
utilidades DOS, 409
volúmenes del servidor, 412, 412
M
mkraid, 138
Macintosh, 427
modelo cliente-servidor, 152
mapas de IPs inversos
MTTF, 361
añadiendo, 205 MTTR, 361
Mars-NWE, 404, 407
MUA, 268
configurando, 409, 411, 411, 413, módulos MD, 104
414, 414, 415
contraseñas, 417, 417
ncpmount, 406

473
N instalación, 386
linuxconf, 388
NAT, 341
nombre de dominio, 148
Netatalk, 427
nombres de dominio, 187
archivo /etc/atalk, 429
absoluto, 189
configurando, 428, 431, 431, 432,
433 configurando, 237

exportando directorios, 429 estructura, 189

iniciando, 433 relativo, 189

instalando, 428 NSS, 170

Netscape ntsysv, 301

acceso móvil, 178, 178, 183 instalando, 301

archivo slapd.at.conf, 179


configurando LDAP, 166
dirección de mensajes, 168, 168 P
NFS, 385
PAM, 170
accediendo volúmenes nfs, 392
paridad
configuración, 389
información, 114
configurando, 387

474
permiso de archivos, 53 R
protocolo
RAID, 99
appletalk, 427
agrupación, 126, 132
Ethertalk, 427
alta disponibilidad, 112, 139
FTP, 243
comando mkraid, 138
HTTP, 228
configurando, 124, 125, 125, 127,
IPX, 404 128, 129, 131, 133, 136
NCP, 404 controlador MD, 105, 105
NetBIOS, 393 controladoras, 102, 102, 102
POP, 273 creando particiones, 124
SMB, 392 ECC, 112
TCP/IP, 401 embudo de escritura, 116
protocolos implementación, 100
LDAP, 144 montando para el uso, 135
proxy niveles, 106, 122
caching, 259 rendimiento, 119, 120
reglas de acceso, 265
Squid, 259

475
requisitos de espacio, 123 registro automático de usuarios, 422

segmentación, 108 ReiserFS, 368

SSI, 141 instalación, 374


stripping, 110 repetidores, 210

tipos de hardware, 103, 103 RFC, 147

utilidad GDTMON, 102 réplica de discos, 131

vía hardware, 100, 100, 101, 101


vía software, 104, 106, 107, 108, 111,
111, 112, 114, 116, 118, 118
RDN, 150
S
recursos compartidos, 392 Samba, 392
red configuración, 394
iniciando linuxconf, 43 configurando, 393, 395, 398, 399,
red Windows
399, 401, 401, 401

propiedades, 401 contraseñas, 395, 396

redes heterogéneas, 385


emulador de Netware, 404

redundancia, 359
iniciando, 401

redundancia y falla de discos, 107


instalación, 393
Mars-NWE, 404

476
protocolo IPX, 404 firewall, 299, 316, 317
protocolo SMB, 392 inetd, 303
red Windows, 401 lista de clientes, 311
servicio inetd, 403 ntsysv, 301
SWAT, 402 paquete tcp_wrappers, 307, 313, 314
volumen, 400 servicios standalone, 300
scripts CGI, 242 verificando, 345
segmentación de datos visión general, 299
stripes, 108 Sendmail, 293

seguridad, 297 servicios

AIDE, 347 iniciando, 302


aide-m5, 354 servidor, 156

amenazas a la, 298 de nombres, 194


base de datos, 351 DNS, 187
checksum, 345 FTP, 227
configurando, 303 LDAP, 156
deshabilitando servicios innecesar- Macintosh, 427
ios, 300, 304
Netware, 404

477
NFS, 385 control de acceso, 265
protección, 151 instalando, 261
proxy, 227, 259 objetos en la memoria, 263
Samba, 393 ventajas, 260
web, 227 SSI, 141

Windows, 393 stripping, 110

servidor web SWAT, 402

Apache, 230
setuid, 56

slapd, 181
U
slurpd, 156, 156
usuario
SMTP

proceso de intercambio de mensajes, anónimo, 249


270 invitado, 249
sniffer, 274, 274 real, 249
Squid, 259 utilidades DOS, 409
archivo squid.conf, 262
archivos de cache, 264

478
V accesos anónimos, 250
archivo, 255
volúmenes nfs, 392
archivo /etc/inetd.conf, 244
volúmenes Samba, 400
archivos, 252
configuración, 254
configurando, 245, 246, 247, 247
W directorio /incoming, 253
instalando, 243
WU-FTPD, 243
usuario, 248, 249, 249