Manual Conectiva 6.0 Servidor - Redes

Anuncio
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 sistemas, 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 confiable para crear un subsistema de unidades de disco, a través de unidades individuales. 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 trabaje 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 comunicació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, WUFTPD 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 convenciones utilizadas.
Tabla 1. Convenciones
Convención
Itálico
Opciones de menús y submenús
Letra
courier (más delgada y con más
espacio)
Descripción
Palabras en inglés.
Letra en tamaño mayor que el cuerpo
del texto; los submenús están separados
por flechas.
Definida para nombres de archivos o
extensiones de archivos.
Conectiva espera, con este material, suministrar una base para todos los que desean 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 capaz 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 controlados por Linuxconf, entre otros puntos.
Visión general
Linuxconf es un avanzado sistema de administración para Linux. Centraliza tareas 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ódulos, 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 configuración de todo el sistema.
Una de las complicaciones de gran parte de los programas para Linux es su flexibilidad, pues tienen decenas (e incluso a veces centenas) de opciones de configuración. Linuxconf la facilita en estos programas, al presentar las opciones
de configuración existentes de una manera organizada y, en muchos casos, efectuando 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 consola 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
F1
F3
Ctrl- X
Ctrl- A
Ctrl- B
Ctrl- D
Ctrl- E
Ctrl- F
Ctrl- K
Descripción
abre pantalla de ayuda
sale de una sección/pantalla
muestra lista emergente de la opción
va para el comienzo de la línea (Inicio)
vuelve a la página anterior (Re Pág)
borra el carácter actual (Suprimir)
va para el fin de la línea (Fin)
va para la página posterior (Av Pág)
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 comando. 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 superusuario 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: Configuración, Control y Estado. La sección Configuración trata básicamente de configuraciones del sistema y la sección Estado permite la vista de logs e información general del sistema. Como el objetivo de este capítulo es entender el funcionamiento 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 presenta 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 conexiones 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 Configuració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 acceder 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 algunas 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 configuraciones 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 modificació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 alteraciones, 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 hacerse 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 activar 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 archivos. 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 completa. 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 administrados 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 definiciones 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áticamente 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 Subsistema.
La Ruta define la ubicación del archivo administrado. La columna Estado contiene 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 relacionada 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 distintas 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 veremos 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 funciones 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 reemplazar el comando originalmente utilizado por Linuxconf por un script o programa 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 usuarios al sistema pasa a ser /usr/sbin/useradd-sql, que podrá ser un script o programa 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 comando.
Estos procedimientos son válidos para cualquier comando utilizado por Linuxconf.
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 impresoras.
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:
- archivo principal de log de Linuxconf, registra operaciones de
forma clara y específica de todos los pasos ejecutados por Linuxconf.
• /var/log/netconf.log
- log de acceso de Linuxconf vía WEB; si utiliza esta interfaz
use este archivo como referencia.
• /var/log/htmlaccess.log
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 actuales, 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 extensiones con tamaños iguales.
Un sistema de LVM se compone de grupos arbitrarios de volúmenes físicos, organizados 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 sistema, 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.
70
Logical Volumes
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 descubrimos que precisaremos 1GB en el /home. Utilizando la antigua noción de particiones, precisaremos tener otra unidad con por lo menos 1GB de tamaño. Podremos entonces añadir el disco, crear el nuevo /home y copiar los datos que correspondan.
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 problemas 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 entenderemos 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 continuas 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 creació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í, solamente 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
/dev/hda1
/dev/hda2
*
Inicio
Fin
Bloques
1
17
136521
Id
Sistema
82
Linux swap
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
/dev/hda6
656
783
1028128+
/dev/hda7
784
784
8001
83
Linux
83
Linux
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
/dev/hda1
Fin
Bloques Id
Sistema
1
17
136521
82
Linux swap
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+
/dev/hda7
784
784
/dev/hda2
78
Inicio
*
8001
83
Linux
82
Linux swap
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
/dev/hda1
Inicio
Fin
Bloques
Id
Sistema
1
17
136521
82
Linux swap
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
82
Linux swap
/dev/hda2
*
8001
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 comando vgdisplay -verbose nombre_del_VG:
# vgdisplay -v test
-- Volume group --
82
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
Capítulo 2. LVM
Total PE
750
Alloc PE / Size
0 / 0
Free
750 / 2.93 GB
PE / Size
-- 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
/dev/test/lv01
484M
Used Avail Use% Mounted on
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
625 / 2.44 GB
PE / Size
-- 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úmenes. 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
/dev/test/lv01
484M
Used Avail Use% Mounted on
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
/dev/test/lv01
2.4G
Used Avail Use% Mounted on
13k
2.2G
0% /mnt/lvm
Disminuyendo un sistema de archivos
Vamos ahora a disminuir el sistema de archivos, para que después podamos disminuir 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 aproximadamente); 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
/dev/test/lv01
484M
Used Avail Use% Mounted on
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 aumento 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 prevenirnos 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 latencia 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
/dev/test/slv01
194M
Used Avail Use% Mounted on
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 evitarse. 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 herramientas; 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 agrupació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 administradores 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 dispositivo 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/SBus/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 computador; 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 procesos 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, fabricantes 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 administració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 controladoras 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 <[email protected]>, 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 abastecimiento 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 general requiere más ciclos y potencia de CPU para funcionar bien, cuando se compara a un sistema de hardware. Presenta una importante característica: trabaja sobre 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 compatible, para crear un único dispositivo RAID. Esto es un contraste para la mayorí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.
104
Multiple Devices
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 dispositivos 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, capacidad 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.
106
RAID levels
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 compara 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 compara 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 agrupación debe ser restricto al almacenamiento de datos no críticos y combinado con
eficientes programas que hacen copia de seguridad.
7.
110
overhead
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 implementaciones 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 eliminació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 pequeña escala que necesiten confiabilidad.
RAID-2 y RAID-3
Raramente se usan, y en algún momento quedaron obsoletos por las nuevas tecnologí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 lugar 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 protección de datos más práctico. Él usa informaciones sobre paridad para la recuperació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) segmentos 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 informació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 operaciones 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 informació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 agrupació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 paridad se distribuye a lo largo de todos los discos, la pérdida de cualquier disco reduce la disponibilidad de ambos datos e información sobre paridad, hasta la recuperació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 implementació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 transferencia 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), estadí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
RAID
RAID 0
122
Disponibili- Rendimiento Rendimiento Rendimiento Número
dad de los de lectura de grabación de recons- mínimo de
datos
trucción
unidades
requeridas
Ninguna
Muy bueno Muy bueno No
N
disponible
Capítulo 3. RAID
RAID 1
RAID 4
Excelente
Buena
Muy bueno Bueno
Bueno
E/S
E/S
Satisfactoria
secuencial: secuencial:
buena E/S muy buena
transacE/S transaccional: buena cional: mala
2N
N + 1 (N
como
mínimo 2)
RAID 5
Buena
Satisfactoria Mala
(a menos que
se use el
cache
write-back)
N + 1 (N por
lo menos 2)
RAID 10
Excelente
E/S
secuencial:
buena E/S
transaccional: muy
buena
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 inició, 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
/dev/md0
1011928
Used Available Use%
20
960504
0%
Mounted on
/mnt/md0
#
Observe que el tamaño del dispositivo corresponde al tamaño de un único dispositivo, 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:
#
134
<none>
Capítulo 3. RAID
Para dar formato al RAID-4, use las siguientes opciones especiales (-R
del mke2fs:
stride=8)
# 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 reconstrucció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 agrupación no estará consistente hasta que haya sido completada la fase de reconstrucció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 implementar. 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é desconectada. Así, dos discos SCSI en la misma cadena no deben pertenecer a la misma agrupació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 apagar 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 reconstrucció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, ejecució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 entre 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 interfaz 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, almacenamiento 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 informació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 implementar transacciones complejas, o esquemas de consultas regulares en bases de datos
que se usan para hacer un gran volumen de actualizaciones complejas. Actualizaciones 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 información, colocando solicitudes sobre cómo esa información podrá ser indicada, requerida 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 globales, transformando el servicio para un contexto mayor (por ejemplo, la propia
Internet).
Se distribuyen normalmente los servicios globales (Figura 4-1), o sea, cada servidor 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 palabras 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 palabras. Los valores dependen del tipo de atributo. Por ejemplo, un atributo mail
puede contener el valor <[email protected]>. 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 reglamentadora o centralizadora como, por ejemplo, el root servers del DNS. La separació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 en3.
148
domain component
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 generalmente 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 entrada 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 construcció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 Distinguished 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 suministran 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 Directorio 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 facilidad 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 integridad 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 servicio 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 servidor 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 comunidad X.500, sería usando un DAP X.500 para puerto de entrada del LDAP.
4.
154
Directory Access Protocol
Capítulo 4. LDAP
Duplicación
El slurpd es un servidor para Linux que ayuda a slapd, favoreciendo la duplicació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
160
atd
gpm
keytable
lpd
crond
halt
killall
mars-nwe
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 control 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 controlar 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
[email protected]
objectclass=person
objectclass=organizationalPerson
objectclass=inetOrgPerson
objectclass=account
objectclass=posixAccount
objectclass=top
objectclass=kerberosSecurityObject
[email protected]
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
[email protected]
objectclass=person
objectclass=organizationalPerson
objectclass=inetOrgPerson
objectclass=account
objectclass=posixAccount
objectclass=top
objectclass=kerberosSecurityObject
userpassword={crypt}VazDY6ytbW/YI
[email protected]
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
[email protected]
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 Communicator 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 siguiente 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 administrativos, 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 correo 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 autenticació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 ellos 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.
170
Pluggable Authentication Module
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 distribució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 instalado, 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 seguridad 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 ilustrando 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á autenticar 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-delusuario, 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 utilizados 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
o
# ldapdeluser mi-usuario -r
En la eliminación del usuario, se usó el parámetro -r. Se utiliza este parámetro 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 siguiente 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 navegació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 electró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
180
/etc/openldap/slapd.conf.
A continuación
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:
Iniciando ldap:
[ OK ]
[ 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 Habilite 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 (AltQ) 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 correctas.
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, configurar 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 identifica 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 kepler.miorganizacion.com, el nombre del dominio es miorganizacion.com y el nombre 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 organizaciones, 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 miorganizacion.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 dominio 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. Recuerde 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, generalmente 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 electró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 especificar 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 prever 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 designaban 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 organizaciones, aunque no necesariamente con los dominios originales. Inglaterra,
por ejemplo, define co.uk para instituciones comerciales y ac.uk para instituciones 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, entre 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 dominios 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 informació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 informació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 localizados 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 nombre 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 informaciones.
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 servidor 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 ejemplo, 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 nombres para encaminar sus pedidos al forwarder. De esta forma, los servidores intentan 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 computadores 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 hacerlo, 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 archivos!
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.
ns.miorganizacion.
@ IN NS
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 ; .
A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET.
; formerly NS1.ISI.EDU ; .
B.ROOT-SERVERS.NET.
C.PSI.NET ; .
3600000 IN NS
3600000 A 198.41.0.4 ;
3600000 NS B.ROOT-SERVERS.NET.
3600000 A 128.9.0.107 ; ; formerly
3600000 NS C.ROOT-SERVERS.NET.
C.ROOT-SERVERS.NET.
TERP.UMD.EDU ; .
3600000 A 192.33.4.12 ; ; formerly
3600000 NS D.ROOT-SERVERS.NET.
221
Capítulo 5. DNS
D.ROOT-SERVERS.NET.
NS.NASA.GOV ; .
3600000 A 128.8.10.90 ; ; formerly
3600000 NS E.ROOT-SERVERS.NET.
E.ROOT-SERVERS.NET.
NS.ISC.ORG ; .
3600000 A 192.203.230.10 ; ; formerly
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 ; .
H.ROOT-SERVERS.NET.
3600000 NS H.ROOT-SERVERS.NET.
NIC.NORDU.NET ; .
3600000 A 128.63.2.53 ; ; formerly
3600000 NS I.ROOT-SERVERS.NET.
I.ROOT-SERVERS.NET.
3600000 A 192.36.148.17 ; ; temporarily
housed at NSI (InterNIC) ; .
J.ROOT-SERVERS.NET.
3600000 A 198.41.0.10 ; ; housed in LINX,
operated by RIPE NCC ; .
K.ROOT-SERVERS.NET.
operated by WIDE ; .
M.ROOT-SERVERS.NET.
222
3600000 NS K.ROOT-SERVERS.NET.
3600000 A 193.0.14.129 ; ; temporarily
housed at ISI (IANA) ; .
L.ROOT-SERVERS.NET.
3600000 NS J.ROOT-SERVERS.NET.
3600000 NS L.ROOT-SERVERS.NET.
3600000 A 198.32.64.12 ; ; housed in Japan,
3600000 NS M.ROOT-SERVERS.NET.
3600000 A 202.12.27.33 ; End of File
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 pequeñ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, preocuparse 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 miorganizacion, está utilizando los servidores 10.0.0.5 y 10.0.0.7 para resolución de nombres 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 noció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 protocolos 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 normalmente 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.
228
HyperText Transfer Protocol
Capítulo 6. Servidor Internet
•
Un código de retorno. La gran mayoría de las implementaciones de HTTP retornan 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, formará 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 informaciones 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 publicar contenido en su Intranet,convirtiéndola realmente en un producto indispensable.
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 Configuració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 electró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 mediante 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ú Configuració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.
238
. En Apache, este concepto se denomina VirtualHost
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, verifique 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 configuració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 electró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 seguridad.
•
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 archivos 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
esté comentada:
/etc/inetd.conf
y que no
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
dhcpd
httpd
kudzu
netfs
portmap snmpd
linuxconf-setup
network
random
functions inet
# ./inet stop
244
sshd
xfs
ypbind
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 Linuxconf 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 servidor 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 acceder 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 archivos. WU-FTPD permite la compresión de archivos durante la transmisión.
•
puede pedir archivos tar: especifica si el usuario tiene permiso para comprimir archivos 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 localizados 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 electró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 especí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:
254
•
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 directorio. 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
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 directorio /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 denomina 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 servidor. 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 manera 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 saturarí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 configuració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 archivos.
cache_dir TIPO NOMEDIR MB N1 N2
Donde:
•
TIPO: debe especificar el tipo de sistema de almacenamiento que Squid deberá utilizar. 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 directorio. 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 servidor proxy.
Note que, como se ha mencionado anteriormente, Squid se ha configurado previamente 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 informació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 configurarlos 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
2.
MUA o Mail User Agent
3.
Mail Transport Agent.
268
ardilla.
El MTA es el responsa-
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 realizar 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í, Francisco 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 aceptado en la cola de procesamiento. Para enviar el mensaje para más de una direcció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: [email protected]
250 [email protected]... Recipient ok
RCPT TO: [email protected]
250 [email protected]... 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 <[email protected]>
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 necesario 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 autenticació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 informa5.
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ántos 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 comando 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 absolutamente 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 indica 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 mencionados 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 archivos 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 directorios previamente registrados como buzones de correo (o directorios conteniendo
buzones). Registro y cancelación de buzones de correo se hacen con los comandos:
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 / UNSUBSCRIBE + 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 mensajes, 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 determinado 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 estados 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 ocurriera 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 mensajes 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 deberá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 completamente 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 mensajes 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.
286
subjects
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 existentes (+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 atención posteriormente.
\Seen: mensaje ya leído.
:
Hay un atributo, \Recent (mensaje nuevo en el buzón), que no se puede alterar, 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 especificando 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 mensaje 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 argumentos, 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 habilitados en /etc/services:
292
pop-3
110/tcp
pop-3
110/udp
imap2
143/tcp
# POP version 3
imap
# Interim Mail Access Proto v2
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 Linuxconf (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. Desafortunadamente, 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 computadores, los procedimientos de seguridad existen para controlar dicho acceso.
El primer concepto relacionado con seguridad es: “no existe un sistema completamente 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 imprescindible tener un buen criterio en el momento de aplicar las medidas de seguridad, 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 información. Además, es necesario verificar a qué tipo de amenazas está expuesto su
sistema. El sistema denominado RFC 1244, Site Security Handbook, por Holbrook 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 autorizado, 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 computadores 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. Generalmente 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 Internet, 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 Internet). 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 procedimientos, 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 durante la iniciación del sistema, mediante los scripts de iniciación. Apache, Sendmail 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 aplicaciones que ejecutan en modo texto. Tome el cuidado de deshabilitar solamente
los servicios que no se deben utilizar en el computador. Por ejemplo, no deshabilite 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 configurar 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 ejecució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 alteraciones se guardarán. Si se utiliza el botón Cancelar, no se considerará ninguna 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 conexiones 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 Linuxconf 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 archivo /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 invasores, 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 habilitació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 servicios, 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 documentación de los programas antes de intentar configurarlos para utilizar el
tcp_wrappers. Algunos de estos programas tienen su propio sistema de administració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 necesario 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 determinados 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 “gateway.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 anterior.
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 paquete 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 paquete. 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 definidas 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 local, 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 descriptos 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 (Configuración →Configuración de Red→ Firewalling → Redireccionamiento de entrada). 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 nombre 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 computador, 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 reglas del filtro de paquetes, se desactivarán temporalmente.
Además de agregar reglas para paquetes que entren en el computador, es posible 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 ”, respectivamente, 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únmente 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"
o
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 computadores 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 computadores 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 funcionalidad a través de la característica conocida como “IP Masquerade” (enmascaramiento de IP). Configurar esta funcionalidad en Conectiva Linux es tan simple
como configurar las reglas de reenvío demostradas anteriormente. La única diferencia 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 especiales 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 Resource (http://ipmasq.cjb.net); usted puede encontrar información sobre la configuració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, principalmente, 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 archivo 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 sistema 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, actualizació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 definició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 configuració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 almacenamiento 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, permisos 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, actualizació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 programa 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 problema 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 configuració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 enmascarar 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 decir 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 enmascaramiento 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 presentan 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 disponibilidad, 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 internamente 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 internos, 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 supermercado. 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 preocupa 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í sucesivamente. El componente reparado se considera como igual a uno nuevo. Durante 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 consideració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 solució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 interferencia electromagnética también. Estos son dos eventos indeseables que ocurren 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 informació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 mensaje 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 interrumpir 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.
364
que un administrador o un operador pueden hacer
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 recupera 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 funcione 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, colaborando 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 optimizar 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 individualmente; lo que hace posible crear soluciones con failover y failback, automáticos 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 información almacenada.
3.
368
ReiserFS
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, garantizando 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 configuraciones 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 Configuració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.
378
virtual
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 Configuració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 mensajes, 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 configuració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 computador, 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 identificador 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, configuració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 aprenderá 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 compartir 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 permite 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 disponibles 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 especifica 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: *.miorganizacion.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 directorio.
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
rw
no_root_squash
link_relative
insecure
Linuxconf
Marcar "puede escribir"
Marcar "privilegios de superusuario"
Marcar "seguir links simbólicos"
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
390
Iniciando servicios NFS :
[ OK ]
Iniciando cuotas (NFS)
[ OK ]
Iniciando mountd (NFS)
[ OK ]
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 directorio 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 utilizarlo se puede simular, de forma transparente, un servidor Windows®. Eso hace
posible que se usen las estaciones Windows® en una red Conectiva Linux empleando 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 depende 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 Linuxconf. Pero se puede realizar de otra forma, como por ejemplo, editando el archivo /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 contraseñ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 descubrirlas. 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 posible que usted no necesite esta configuración. Pero las versiones más recientes de
Windows® 95 (como, por ejemplo, Windows® 95 OSR2) cambiaron su comportamiento. 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 Autenticació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 Windows® 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 Windows 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 pasos semejantes. Si tiene alguna duda, deberá consultar la documentación de Windows® 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. Nuevamente, 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 Configuració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 amigable: 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 semejante, 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 Novell® 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.
404
Protocolo que se encarga de transportar un paquete de la red de un origen para un destino.
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 configuració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 usuarios. 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 complicarse.
405
Capítulo 10. Redes Mixtas
Scripts de Logon
Los scripts se almacenan en el directorio SYS:MAIL\, tal como en un servidor Netware®. 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 LOGIN.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 volumen 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 solamente 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 usuarios 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 dentro 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 tendrá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 mediante 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
para el servidor Mars.
SYS:PUBLIC
y
SYS:SYSTEM
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 Netware® 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 integridad 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 extensió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 MarsNWE. Note que las opciones siempre están precedidas por un número identificador. 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á encontrar 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 especificar 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 creará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
1
FABRICA /home/netware/fabrica
1
PERSONAL /home/netware/personal
ko
775 775
775 775
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 opción auto, para que Mars elija automáticamente el número de la red interna (utiliza 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 estaciones. 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 recurso 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 denominada NCP que normalmente sólo funcionaría con archivos.
8: ignorar las restricciones de estación y de tiempo en el caso del supervisor. Actualmente, 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 "invitado" (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
usuario "invitado".
nobody:nobody
(99:99) para que sea el
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 mediante 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 Netware®.
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 esenciales (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 incondicionalmente. 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 contiene el protocolo Appletalk, que permite al servidor Conectiva Linux servir impresoras 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 volumen. 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 Macintosh al mismo tiempo. Aunque eso facilite la administración, perjudica la seguridad 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 Macintosh. 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 AppleTalk. 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á, mostrando 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, reiniciando 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 automá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 presentadas en este capítulo. Por favor, verifique en cada software cuáles son sus componentes, 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 expresa, 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 CONTRIBUYENTES EN LA FORMA EN QUE SE ENCUENTRA, Y CUALQUIER 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 NINGUNA HIPÓTESIS LOS MONITORES O SUS CONTRIBUYENTES SERÁN
436
Apéndice B. Licencias generales
RESPONSABLES POR NINGÚN DAÑO DIRECTO, INDIRECTO, ACCIDENTAL, ESPECIAL, INCLUYENDO, PERO NO LIMITANDO LA SUSTITUCIÓN DE MERCANCÍAS O SERVICIOS, IMPOSIBILIDAD DE USO,
PÉRDIDA DE DATOS, LUCROS CESANTES O INTERRUPCIÓN DE ACTIVIDADES 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), pudiendo 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, EXPRESAS O IMPLÍCITAS, INCLUIDAS, PERO NO LIMITADAS A LASGARANTÍ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ÉRDIDAS, A MENOS QUE SE EXPRESE EN CONTRATO, ACUERDO U
OTRAS FORMAS, EN LO QUE SE REFIERE A LA UTILIZACIÓN, COMERCIALIZACIÓN, CONEXIÓN U OTROS CONTACTOS CON ESTE
SOFTWARE.
Excepto por el contenido en ese aviso, el nombre del Consorcio X (X Consortium) 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. Todos 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 RECLAMACIÓ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 paquetes o programas incluidos en este producto, por favor, lea este documento cuidadosamente. 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 siguientes.
General
Los derechos de autor del Sistema Operativo Conectiva Linux se basan en la Licencia Pública General GNU (“GPL”). Consideramos que la GPL pone a disposición los mejores mecanismos para todos los beneficios y libertades de los programas de “libre distribución”. Usted puede encontrar una copia de la GPL en el manual 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 modular, 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 referencia, 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 programas 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 PROGRAMAS 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 ESTOS PROGRAMAS.
LOS PROGRAMAS, INCLUSO LOS CÓDIGOS FUENTE, DOCUMENTACIÓN, APARIENCIA, ESTRUCTURA Y ORGANIZACIÓN, SON PRODUCTOS 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 PROGRAMAS PUESTOS A DISPOSICIÓN Y LICENCIADOS, “TAL Y COMO
ESTÁN”, NO TIENEN GARANTÍA DE NINGÚN TIPO, NI EXPRESA NI IMPLÍCITA, LO CUAL INCLUYE, PERO NO LIMITA, LAS GARANTÍAS DE
COMERCIALIZACIÓN Y CONVENIENCIA PARA UN PROPÓSITO PARTICULAR.
Conectiva S.A. (http://es.conectiva.com) garantiza que el medio en el cual está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é completamente 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 NINGÚN CASO CONECTIVA S.A. SERÁ RESPONSABLE POR CUALQUIER
DAÑO. LO CUAL INCLUYE, LUCROS CESANTES, PÉRDIDAS ECONÓMICAS U OTROS DAÑOS ACCIDENTALES O CONSECUENTES DEL USO
APROPIADO O INAPROPIADO DE LOS PROGRAMAS Y/O APLICACIONES. INCLUYENDO LOS DEBIDOS A LA INEPTITUD PARA EL USO DE
LOS PROGRAMAS Y/O APLICACIONES, AUN EN EL CASO DE QUE CONECTIVA S.A. O ALGÚN DISTRIBUIDOR AUTORIZADO, NO HAYA EFECTUADO 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 entre 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 Conectiva 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, intercambios 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 Foundation 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 distribución o modificación del software. Por ejemplo, cuando se distribuyen copias
de determinado programa por una tasa determinada o gratuitamente, se debe informar 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 entiendan 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 distribuidores 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 cualquier individuo, sin necesidad de la licencia de uso.
Los términos y condiciones precisas para realizar copias, distribución y modificaciones 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 cualquier 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 autor. 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 (independientemente 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 obligatorio, 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 secciones 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 secciones 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 distribució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 trabajo.
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érminos 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 alternativa 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 alteraciones 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 instalació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á documento 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 receptor 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 condiciones. 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 inhiben su aplicación. Si no es posible distribuir el programa de tal forma que garantice 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 general, 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 infringir 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 restricciones 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ícitamente 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 limitació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 NINGUNA GARANTÍA PARA ÉL. EXCEPTO CUANDO TERCEROS SE EXPRESEN FORMALMENTE, EL PROGRAMA SE PONE A DISPOSICIÓN EN SU
FORMATO ORIGINAL, SIN GARANTÍAS DE NINGUNA NATURALEZA, EXPRESAS O IMPLÍCITAS, INCLUYENDO, PERO NO LIMITADAS, LAS GARANTÍ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 ALTERACIONES, CORRECCIONES Y REPARACIONES QUE SE JUZGUEN NECESARIOS.
13. EL AUTOR O TERCEROS QUE HUBIERAN MODIFICADO EL PROGRAMA,
NO ASUMEN NINGUNA RESPONSABILIDAD POR LOS DAÑOS O PERJUICIOS 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ÉRDIDA DE DATOS O DATOS ERRÓNEOS), AÚN CUANDONO SE HAYA EMITIDO 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
Índice
líneas de configuración, 347
líneas de selección, 347
archivo /etc/host.allow, 310
Símbolos
archivo /etc/host.deny, 310
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
appletalk
Bind
afpd, 427
archivos de configuración, 216, 218,
220, 221
atalkd, 427
dominio, 219
papd, 427
comodines, 310
servicios, 427
correo electrónico
archivo /etc/aide.conf
MTA, 269
461
DNS
almacenamiento en cache, 196
archivo /var/named, 218
dominios de Internet, 191
filtro de paquetes
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
dominio, 219
dominios, 191
FTP
tcp_wrappers, 308
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,
196, 196
resolución de nombres, 196
servidor de nombres, 197, 209, 214,
215, 224, 224
462
ipchains
instalando, 319
LDAP
ACL, 158
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
Mars-NWE
banner de impresión, 424
cola de impresión, 425, 425
ntsysv
configurando named, 215
POP
configurando, 292
packet burst, 416
portmap, 390
usuario, 421, 422
protocolo
versión de Netware, 416
MTA, 269
Postfix, 293
Qmail, 293
Sendmail, 293
máquina de resolución de nombres, 196
funciones, 196
IMAP, 269
SMTP, 269
proxy
reglas de acceso, 265, 265
Qmail, 293
resolución de nombres, 196
Samba
463
archivo /etc/inetd.conf, 402
configurando, 402
seguridad
SSL, 260
TCP Wrappers, 307
telnet, 307
AIDE, 345
archivo /etc/host.allow, 310
archivo /etc/host.deny, 310
A
comodines, 310
control de acceso, 310
acceso móvil, 178
tcpd, 307
habilitando, 179
verificando, 345
incluyendo perfiles, 178
Sendmail
acceso remoto, 386
archivo m4, 295
ACL, 151
archivo sendmail.cf, 294
agrupación de discos duros, 99
configurando, 293
AIDE
SMTP, 269
configurando, 293
Squid
almacenaje, 264, 264
464
configurando, 347
utilizando, 353
aide-m5, 354
alias de IP, 238
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,
381
scripts CGI, 242
misión, 365
aplicaciones
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
Netatalk, 427
archivo /var/log/messages, 327
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
archivo /etc/nwserv.conf, 407, 411
466
personalizando, 181
archivo slapd.oc.conf, 179
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
B
control de acceso, 265, 310
control de acceso al servidor FTP, 248
Bind
archivos de configuración, 217
bindery, 405
control de servicios, 64, 64, 65
correo electrónico, 267
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
continua, 359
configurando, 370, 371
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
comando ipchains, 319
configurando, 255
servicios, 243
configurando, 323, 324, 326, 328,
341, 343
filtro de paquetes, 316, 319
Forward, 328, 330, 332, 333, 334,
336
G
función printk(), 327
GNOME
opciones, 318
por entrada, 320
herramienta para LDAP, 175
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
HTTP
LDAP
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
GPL, 449
linux conf
DNS, 198
linuxconf, 35
/usr/sbin/useradd-sql, 63
/var/log/htmlaccess.log, 43
activando configuraciones, 48
activando las configuraciones, 50
alias de IP, 238
Apache, 234
archivos de configuración, 57, 58
atribución de bandas de, 213
472
configurando, 44, 45, 51, 64, 65, 223,
237, 255, 402
control de servicios, 64
filtrado de archivos, 54
informe de alteraciones, 49
iniciando, 39, 41, 42, 42, 43
interfaz, 36, 37, 38, 38, 38
interfaz gráfica de, 39
módulos, 51
NFS, 387
permiso de archivos, 53
personalizando funciones, 62
Qué es, 35
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
M
volúmenes del servidor, 412, 412
mkraid, 138
Macintosh, 427
mapas de IPs inversos
añadiendo, 205
Mars-NWE, 404, 407
configurando, 409, 411, 411, 413,
414, 414, 415
modelo cliente-servidor, 152
MTTF, 361
MTTR, 361
MUA, 268
módulos MD, 104
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
Netscape
acceso móvil, 178, 178, 183
NSS, 170
ntsysv, 301
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
configurando, 387
474
información, 114
permiso de archivos, 53
R
protocolo
RAID, 99
appletalk, 427
Ethertalk, 427
FTP, 243
HTTP, 228
agrupación, 126, 132
alta disponibilidad, 112, 139
comando mkraid, 138
IPX, 404
configurando, 124, 125, 125, 127,
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
LDAP, 144
proxy
caching, 259
implementación, 100
montando para el uso, 135
niveles, 106, 122
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
recursos compartidos, 392
red
iniciando linuxconf, 43
red Windows
propiedades, 401
S
Samba, 392
configuración, 394
configurando, 393, 395, 398, 399,
399, 401, 401, 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
seguridad, 297
AIDE, 347
aide-m5, 354
Sendmail, 293
servicios
iniciando, 302
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 innecesarios, 300, 304
Macintosh, 427
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
SMTP
proceso de intercambio de mensajes,
270
sniffer, 274, 274
Squid, 259
archivo squid.conf, 262
archivos de cache, 264
478
usuario
anónimo, 249
invitado, 249
real, 249
utilidades DOS, 409
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
WU-FTPD, 243
directorio /incoming, 253
instalando, 243
usuario, 248, 249, 249
Descargar