Está en la página 1de 382

Gu de Administracin de Redes con Linux a o

Copyright c 1992-1994 Olaf Kirch (Traduccin Proyecto LuCAS) o

Versin nal 1.0, 1 de Junio de 1999. o Fecha de montaje: 30 de mayo de 1999

Para Britta

Legal Notice
UNIX is a trademark of Univel. Linux is not a trademark, and has no connection to UNIXTM or Univel. Copyright c 1994 Olaf Kirch Kattreinstr. 38, 64295 Darmstadt, Germany okir@monad.swb.de The Linux Network Administrators Guide may be reproduced and distributed in whole or in part, subject to the following conditions: 0. The copyright notice above and this permission notice must be preserved complete on all complete or partial copies. 1. Any translation or derivative work of The Linux Network Administrators Guide must be approved by the author in writing before distribution. 2. If you distribute The Linux Network Administrators Guide in part, instructions for obtaining the complete version of The Linux Network Administrators Guide must be included, and a means for obtaining a complete version provided. 3. Small portions may be reproduced as illustrations for reviews or quotes in other works without this permission notice if proper citation is given. 4. If you print and distribute The Linux Network Administrators Guide, you may not refer to it as the Ocial Printed Version. 5. The GNU General Public License referenced below may be reproduced under the conditions given within it. 6. Several sections of this document are held under separate copyright. When these sections are covered by a dierent copyright, the seperate copyright is noted. If you distribute The Linux Network Administrators Guide in part, and that part is, in whole, covered under a seperate, noted copyright, the conditions of that copyright apply. Exceptions to these rules may be granted for academic purposes: Write to Olaf Kirch at the above address, or email okir@monad.swb.de, and ask. These restrictions are here to protect us as authors, not to restrict you as educators and learners. All source code in The Linux Network Administrators Guide is placed under the GNU General Public License. See appendix C for a copy of the GNU GPL. The author is not liable for any damages, direct or indirect, resulting from the use of information provided in this document.

Nota Legal
UNIX es una marca registrada de Univel. Linux no es una marca registrada, y no tiene relacin con UNIXTM o Univel. o Copyright c 1994 Olaf Kirch Kattreinstr. 38, 64295 Darmstadt, Alemania okir@monad.swb.de La Gu de Administracin de redes con Linux puede ser total o parcialmente reprodua o cida y distribuida, bajo las siguientes condiciones: 0. La nota de copyright anterior y esta nota de permiso debe preservarse en toda reproduccin total o parcial. o 1. Cualquier traduccin o trabajo derivado de la Gu de Administracin de redes o a o con Linux debe ser aprobado por el autor antes de su distribucin. o 2. Si Vd. distribuye la Gu de Administracin de redes con Linux en parte, deber a o a incluir instrucciones para obtener la versin completa. o 3. Pueden reproducirse pequeas partes como ilustraciones o citas, en otros trabajos n y sin permiso expreso, siempre que se cite la procedencia. 4. Si imprime o distribuye la Gu de Administracin de redes con Linux, no podr a o a referirse a ella como la Versin Ocial Impresa. o 5. La Licencia Pblica General de GNU citada puede reproducirse bajo sus propias u condiciones. 6. Algunas partes de este libro estn sujetas a diferentes copyrights. Cuando esto a suceda, el copyright espec co se incluir. Si distribuye una parte de la Gu a a de Administracin de redes con Linux que est cubierta por un copyright o e espec co, se aplicarn a dicha copia las condiciones de dicho copyright. a Se admiten excepciones en el cumplimiento de estas reglas con propsitos o acadmicos: escr e base a Olaf Kirch a la direccin anterior o por correo electrnico o o (okir@monad.swb.de), y pregntese. Estas restricciones estn para protegernos como u a autores, no para limitarles como educadores o estudiantes. Todo el cdigo fuente inclu en la Gu de Administracin de redes con Linux se rige o do a o bajo la Licencia Pblica General GNU (GNU General Public License). El apndice C u e contiene una copia de dicha licencia. El autor no se hace responsable de cualquier dao, directo o indirecto, que pueda producirse n por el uso de la informacin proporcionada en este libro. o

Indice General
Prlogo a la Edicin en Castellano o o Nota Acerca de Esta Traduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . o Prefacio Documentacin de Linux o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vi vii viii ix x xi xii xii xiii xv xvi xvi

Sobre Este Libro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . La Versin Impresa Ocial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o Ms Informacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . a o Sobre los autores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Agradecimientos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Convenciones Tipogrcas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . a El Proyecto de Documentacin de Linux . . . . . . . . . . . . . . . . . . . . . . . o El Proyecto LinUx en CAStellano (LuCAS) . . . . . . . . . . . . . . . . . .

Estndares de Sistema de Ficheros . . . . . . . . . . . . . . . . . . . . . . . . . . xviii a 1 Introduccin a las Redes o 1.1 1.2 Historia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Redes UUCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2.1 1.3 Cmo usar UUCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . o 1 1 2 3 4 5 7 8 9 11

Redes TCP/IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 Introduccin a las Redes TCP/IP o . . . . . . . . . . . . . . . . . . .

Ethernets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Otros tipos de Hardware . . . . . . . . . . . . . . . . . . . . . . . . . El Protocolo IP (Internet Protocol) . . . . . . . . . . . . . . . . . . . IP en L neas Serie, SLIP . . . . . . . . . . . . . . . . . . . . . . . . .

iv

INDICE GENERAL

1.3.6 1.3.7 1.3.8 1.3.9 1.4

El Protocolo de Control de Transmisin, TCP . . . . . . . . . . . . . o El Protocolo de Datagramas de Usuario, UDP . . . . . . . . . . . . Ms sobre Puertos . . . . . . . . . . . . . . . . . . . . . . . . . . . . a La Librer de Sockets . . . . . . . . . . . . . . . . . . . . . . . . . . a

11 12 13 13 14 15 15 16 17 18 20 20 21 22 24 24 24 25 26 28 29 29 29 30 33 33 34 36 39 39 42

Redes con Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.4.1 1.4.2 Diferentes Etapas de Desarrollo . . . . . . . . . . . . . . . . . . . . . Donde Conseguir el Cdigo . . . . . . . . . . . . . . . . . . . . . . . o

1.5

Mantenimiento del Sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.5.1 Seguridad del Sistema . . . . . . . . . . . . . . . . . . . . . . . . . .

1.6

Vistazo a los Siguientes Cap tulos . . . . . . . . . . . . . . . . . . . . . . . .

2 Cuestiones sobre redes TCP/IP 2.1 2.2 2.3 2.4 Interfaces de Red . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Direcciones IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Resolucin de direcciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . o Encaminamiento IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 Redes IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Subredes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Pasarelas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tablas de Encaminamiento . . . . . . . . . . . . . . . . . . . . . . . Mtricas de Encaminamiento . . . . . . . . . . . . . . . . . . . . . . e

2.5 2.6

Protocolo de Mensajes de Control de Internet (ICMP) . . . . . . . . . . . . El sistema de nombres DNS . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.6.1 2.6.2 2.6.3 2.6.4 2.6.5 2.6.6 Resolucin de nombres . . . . . . . . . . . . . . . . . . . . . . . . . . o Introduccin al DNS . . . . . . . . . . . . . . . . . . . . . . . . . . . o B squedas de nombres con DNS . . . . . . . . . . . . . . . . . . . . u Servidores de Nombres . . . . . . . . . . . . . . . . . . . . . . . . . . La Base de Datos DNS . . . . . . . . . . . . . . . . . . . . . . . . .

Resolucin inversa . . . . . . . . . . . . . . . . . . . . . . . . . . . . o

3 Conguracin del Hardware de Red o 3.1 3.2 Dispositivos, Controladores, y todo lo dems . . . . . . . . . . . . . . . . . a Conguracin del n cleo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o u

INDICE GENERAL

vi

3.2.1 3.2.2 3.3 3.4

Opciones del n cleo de Linux 1.0 o Versiones Posteriores . . . . . . . u Opciones del n cleo de Linux 1.1.14 y Versiones Posteriores . . . . . u

42 44 46 47 47 48 49 51 52 53 53 54 55 56 59 60 60 61 61 62 64 65 66 68 71 72 72 73 73 74 77

Una Visita a los Dispositivos de Red de Linux . . . . . . . . . . . . . . . . . Instalacin Ethernet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o 3.4.1 3.4.2 3.4.3 Cableado de Ethernet . . . . . . . . . . . . . . . . . . . . . . . . . . Tarjetas Compatibles . . . . . . . . . . . . . . . . . . . . . . . . . .

Autovericacin de red Ethernet . . . . . . . . . . . . . . . . . . . . o

3.5 3.6

El controlador PLIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Los controladores SLIP y PPP . . . . . . . . . . . . . . . . . . . . . . . . .

4 Conguracin del Software Serie o 4.1 4.2 4.3 4.4 Software de Comunicaciones con Mdem . . . . . . . . . . . . . . . . . . . . o Introduccin a los Dispositivos Serie . . . . . . . . . . . . . . . . . . . . . . o Acceso a los Dispositivos Serie . . . . . . . . . . . . . . . . . . . . . . . . . Hardware Serie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5 Conguracin del Protocolo TCP/IP o 5.1 5.2 5.3 5.4 5.5 5.6 5.7 Conguracin del Sistema de Ficheros proc . . . . . . . . . . . . . . . . . . o Instalacin de los Ejecutables . . . . . . . . . . . . . . . . . . . . . . . . . . o Otro Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Establecimiento del Nombre de la Mquina . . . . . . . . . . . . . . . . . . a Asignacin de una direccin IP . . . . . . . . . . . . . . . . . . . . . . . . . o o Preparacin de los cheros hosts y networks . . . . . . . . . . . . . . . . . . o Conguracin de la Interface para IP . . . . . . . . . . . . . . . . . . . . . . o 5.7.1 5.7.2 5.7.3 5.7.4 5.7.5 5.7.6 5.7.7 5.8 5.9 La Interface de Bucle o Loopback . . . . . . . . . . . . . . . . . . . . Interfaces Ethernet . . . . . . . . . . . . . . . . . . . . . . . . . . . . Encaminamiento a travs de una Pasarela . . . . . . . . . . . . . . . e Conguracin de una Pasarela . . . . . . . . . . . . . . . . . . . . . o La Interface PLIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . Las Interfaces SLIP y PPP . . . . . . . . . . . . . . . . . . . . . . . La Interface Comod . . . . . . . . . . . . . . . . . . . . . . . . . . n

Todo sobre ifcong . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Comprobacin mediante netstat . . . . . . . . . . . . . . . . . . . . . . . . . o

INDICE GENERAL

vii

5.9.1 5.9.2 5.9.3

Consulta de la Tabla de Encaminamiento . . . . . . . . . . . . . . . Consulta de las Estad sticas de una Interface . . . . . . . . . . . . . Mostrar Conexiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

77 78 79 80 82 84 85 85 86 87 88 88 89 91 95 98 100 102 102 103 105 105 107 111 113 113 114 115 116 117 120

5.10 Comprobacin de las Tablas ARP o

5.11 El Futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Servicio de nombres. Conguracin o 6.1 La biblioteca de resolucin . . . . . . . . . . . . . . . . . . . . . . . . . . . . o 6.1.1 6.1.2 6.1.3 6.1.4 6.2 El chero host.conf . . . . . . . . . . . . . . . . . . . . . . . . . . .

Variables de entorno . . . . . . . . . . . . . . . . . . . . . . . . . . . Conguracin del chero resolv.conf . . . . . . . . . . . . . . . . . . o Robustez del sistema de resolucin . . . . . . . . . . . . . . . . . . . o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Ejecucin de named o 6.2.1 6.2.2 6.2.3 6.2.4 6.2.5

El chero named.boot

Ficheros de base de datos DNS . . . . . . . . . . . . . . . . . . . . . Escribiendo los cheros . . . . . . . . . . . . . . . . . . . . . . . . . Comprobacin del funcionamiento del servidor de nombres o Otras utilidades interesantes . . . . .

. . . . . . . . . . . . . . . . . . . . . .

7 SLIP: IP por l nea serie 7.1 7.2 7.3 Requisitos generales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Utilizacin de SLIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o Utilizacin de dip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o 7.3.1 7.3.2 7.4 Un script de ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . Gu de Referencia de dip . . . . . . . . . . . . . . . . . . . . . . . . a

Funcionamiento en Modo Servidor . . . . . . . . . . . . . . . . . . . . . . .

8 El Protocolo Punto a Punto (PPP) 8.1 8.2 8.3 8.4 8.5 8.6 Desenredando las Pes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

PPP en Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Conexiones con pppd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Los Ficheros de Opciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . Realizacin de la Llamada con chat . . . . . . . . . . . . . . . . . . . . . . . o Depuracin de la Conguracin PPP . . . . . . . . . . . . . . . . . . . . . . o o

INDICE GENERAL

viii

8.7

Opciones de Conguracin IP . . . . . . . . . . . . . . . . . . . . . . . . . . o 8.7.1 8.7.2 Eleccin de las Direcciones IP . . . . . . . . . . . . . . . . . . . . . . o Encaminamiento a travs de una Conexin PPP . . . . . . . . . . . e o

120 120 121 123 125 125 125 127 128 130 131 131 133 136 138 140 143 144 147 148 148 150 151 153 155 156 157 159 159 161 162

8.8 8.9

Opciones de Control de Enlace . . . . . . . . . . . . . . . . . . . . . . . . . Consideraciones Generales sobre Seguridad . . . . . . . . . . . . . . . . . .

8.10 Autenticacin con PPP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o 8.10.1 CHAP frente a PAP . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.10.2 El chero de claves CHAP . . . . . . . . . . . . . . . . . . . . . . . . 8.10.3 El Fichero de Claves PAP . . . . . . . . . . . . . . . . . . . . . . . . 8.11 Conguracin de un Servidor PPP . . . . . . . . . . . . . . . . . . . . . . . o 9 Algunas Aplicaciones de Red 9.1 9.2 9.3 9.4 9.5 El Super-Servidor inetd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . La herramienta de control de acceso tcpd . . . . . . . . . . . . . . . . . . .

Los cheros services y protocols . . . . . . . . . . . . . . . . . . . . . . . . . Llamada a Procedimientos Remotos . . . . . . . . . . . . . . . . . . . . . . Congurar los Comandos r . . . . . . . . . . . . . . . . . . . . . . . . . . .

10 El Sistema de Informacin de Red (NIS) o 10.1 Familiarizacin con NIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o 10.2 NIS frente a NIS+ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.3 El lado cliente de NIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.4 Ejecucin de un servidor NIS . . . . . . . . . . . . . . . . . . . . . . . . . . o 10.5 Congurar un Cliente NIS con NYS . . . . . . . . . . . . . . . . . . . . . . 10.6 Eleccin de los Mapas Correctos . . . . . . . . . . . . . . . . . . . . . . . . o 10.7 Uso de los mapas passwd y group . . . . . . . . . . . . . . . . . . . . . . . . 10.8 Uso de NIS con Soporte Shadow . . . . . . . . . . . . . . . . . . . . . . . .

10.9 Uso del Cdigo NIS Tradicional . . . . . . . . . . . . . . . . . . . . . . . . . o 11 El Sistema Ficheros en Red (NFS) 11.1 Preparacin de NFS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o 11.2 Montaje de un volumen NFS . . . . . . . . . . . . . . . . . . . . . . . . . . 11.3 Demonios de NFS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11.4 El chero exports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

INDICE GENERAL

ix

11.5 El sistema de automontado en Linux . . . . . . . . . . . . . . . . . . . . . . 12 Administracin de Taylor UUCP o 12.1 Historia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.1.1 Ms Informacin Sobre UUCP . . . . . . . . . . . . . . . . . . . . . a o 12.2 Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o 12.2.1 Disposicin de Transferecias de UUCP y Ejecucin Remota . . . . . o o 12.2.2 El Funcionamiento Interno de uucico . . . . . . . . . . . . . . . . . . 12.2.3 Opciones de la l nea de comandos de uucico . . . . . . . . . . . . . . 12.3 Ficheros de conguracin de UUCP o . . . . . . . . . . . . . . . . . . . . . .

164 166 166 168 168 168 169 171 171 172 175 176 177 178 178 183 185 186 187 187 187 188 189 190 190 191 192 193 194 195 195 197

12.3.1 Una Ligera Introduccin a Taylor UUCP . . . . . . . . . . . . . . . o 12.3.2 Lo que UUCP necesita saber . . . . . . . . . . . . . . . . . . . . . . 12.3.3 Nomenclatura de nodos . . . . . . . . . . . . . . . . . . . . . . . . . 12.3.4 Ficheros de conguracin Taylor . . . . . . . . . . . . . . . . . . . . o 12.3.5 Opciones Generales de Conguracin el Fichero cong . . . . . . . o 12.3.6 Cmo informar a UUCP sobre otros sistemas el chero sys . . . . o 12.3.7 Qu dispositivos hay el chero port . . . . . . . . . . . . . . . . . . e 12.3.8 Cmo marcar un n mero el chero dial . . . . . . . . . . . . . . . o u 12.3.9 UUCP sobre TCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.3.10 Uso de una conexin directa . . . . . . . . . . . . . . . . . . . . . . . o 12.4 Los s y noes de UUCP Ajuste de Permisos . . . . . . . . . . . . . . . . es 12.4.1 Ejecucin de comandos . . . . . . . . . . . . . . . . . . . . . . . . . o 12.4.2 Transferencias de Ficheros . . . . . . . . . . . . . . . . . . . . . . . . 12.4.3 Reenv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o 12.5 Conguracin de su sistema para ser llamado. . . . . . . . . . . . . . . . . . o 12.5.1 Conguracin de getty . . . . . . . . . . . . . . . . . . . . . . . . . . o 12.5.2 Proveer Cuentas de UUCP . . . . . . . . . . . . . . . . . . . . . . . 12.5.3 Proteccin contra estafadores . . . . . . . . . . . . . . . . . . . . . . o 12.5.4 Vulvase Loco Comprobacin de Secuencia de Llamadas . . . . . . e o 12.5.5 UUCP Annimo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o 12.6 Protocolos de bajo nivel de UUCP . . . . . . . . . . . . . . . . . . . . . . . 12.6.1 Resumen del protocolo . . . . . . . . . . . . . . . . . . . . . . . . . . 12.6.2 Ajuste del protocolo de transmisin . . . . . . . . . . . . . . . . . . o

INDICE GENERAL

12.6.3 Seleccin de protocolos espec o cos . . . . . . . . . . . . . . . . . . . 12.7 Solucin de problemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o 12.8 Archivos de registro histrico (Log Files) . . . . . . . . . . . . . . . . . . . . o 13 Correo Electrnico o 13.1 Qu es un mensaje de correo? . . . . . . . . . . . . . . . . . . . . . . . . . e 13.2 Cmo se reparte el correo? . . . . . . . . . . . . . . . . . . . . . . . . . . . o 13.3 Direcciones de correo electrnico . . . . . . . . . . . . . . . . . . . . . . . . o 13.4 Cmo funciona el encaminado del correo? . . . . . . . . . . . . . . . . . . . o 13.4.1 Encaminado de correo en la Internet . . . . . . . . . . . . . . . . . . 13.4.2 Encaminado de correo en el mundo UUCP . . . . . . . . . . . . . .

197 198 200 202 203 206 207 209 209 210 211 213 215 216 216 219 220 222 223 224 225 226 227 228 229 230 232 232 233 234 234

13.4.3 Mezcla de UUCP y RFC 822 . . . . . . . . . . . . . . . . . . . . . . 13.5 Formatos de Fichero Mapa y Alias de Ruta . . . . . . . . . . . . . . . . . . 13.6 Conguracin de elm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o 13.6.1 Opciones Globales de elm . . . . . . . . . . . . . . . . . . . . . . . . 13.6.2 Conjuntos de Caracteres Nacionales . . . . . . . . . . . . . . . . . . 14 Cmo congurar y poner en marcha smail o 14.1 Conguracin de UUCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o 14.2 Conguracin para una red local . . . . . . . . . . . . . . . . . . . . . . . . o 14.2.1 Cmo escribir los archivos de conguracin . . . . . . . . . . . . . . o o 14.2.2 Cmo ejecutar smail . . . . . . . . . . . . . . . . . . . . . . . . . . . o 14.3 Si no logra pasar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

14.3.1 Cmo compilar smail o

14.4 Modos de entrega de correo . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.5 Otras opciones del chero cong . . . . . . . . . . . . . . . . . . . . . . . . 14.6 Encaminamiento de mensajes y entrega . . . . . . . . . . . . . . . . . . . . 14.7 Mensajes de encaminamiento . . . . . . . . . . . . . . . . . . . . . . . . . . 14.7.1 La base de datos de trayectorias paths . . . . . . . . . . . . . . . . . 14.8 Cmo entregar mensajes a las direcciones locales . . . . . . . . . . . . . . . o 14.8.1 Usuarios locales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.8.2 Reenv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o 14.8.3 Archivos de alias . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

INDICE GENERAL

xi

14.8.4 Listas de correo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.9 Transportes basados en UUCP . . . . . . . . . . . . . . . . . . . . . . . . . 14.10Transportes basados en SMTP . . . . . . . . . . . . . . . . . . . . . . . . . 14.11Calicacin de nombre de antrin . . . . . . . . . . . . . . . . . . . . . . . o o 15 Sendmail+IDA 15.1 Acerca del autor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.2 Reconocimientos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.3 Introduccin a Sendmail+IDA o . . . . . . . . . . . . . . . . . . . . . . . . .

236 236 237 237 239 239 239 239 240 241 242 242 248 248 250 251 252 252 253 254 255 255 256 259 261 261 262 263 263 264 264

15.4 Archivos de conguracin Preliminares . . . . . . . . . . . . . . . . . . . o 15.5 El archivo sendmail.cf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.5.1 Un ejemplo del archivo sendmail.m4 . . . . . . . . . . . . . . . . . . 15.5.2 Parmetros de uso com n en sendmail.m4 . . . . . . . . . . . . . . . a u 15.6 Un viaje por las tablas de Sendmail+IDA . . . . . . . . . . . . . . . . . . . 15.6.1 mailertable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.6.2 uucpxtable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.6.3 pathtable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

15.6.4 domaintable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.6.5 alias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.6.6 Tablas utilizadas en raras ocasiones . . . . . . . . . . . . . . . . . .

15.7 Instalacin de sendmail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o 15.7.1 Desempaquetado de la distribucin ejecutable . . . . . . . . . . . . . o 15.7.2 Elaboracin del chero sendmail.cf . . . . . . . . . . . . . . . . . . . o 15.7.3 Comprobando el chero sendmail.cf . . . . . . . . . . . . . . . . . . 15.7.4 Integracin global - Prueba de integracin del chero sendmail.cf y o o las tablas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.8 Trucos y trivialidades sobre administracin de correo . . . . . . . . . . . . . o 15.8.1 Reenv de correo a un sistema inteligente . . . . . . . . . . . . . . . o 15.8.2 Env de correo a Sistemas Remotos mal congurados . . . . . . . . o 15.8.3 Env Forzado de correo a travs de UUCP . . . . . . . . . . . . . . o e 15.8.4 Prevencin de que el correo sea enviado v UUCP . . . . . . . . . . o a 15.8.5 Procesado de la cola de correo a voluntad . . . . . . . . . . . . . . . 15.8.6 Informe sobre las estad sticas de correo . . . . . . . . . . . . . . . .

INDICE GENERAL

xii

15.9 Integracin y puesta a punto de Distribuciones Ejecutables . . . . . . . . . o 15.10Dnde obtener ms informacin . . . . . . . . . . . . . . . . . . . . . . . . . o a o 16 Netnews 16.1 Historia de Usenet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16.2 Qu es, en denitiva, Usenet? . . . . . . . . . . . . . . . . . . . . . . . . . e 16.3 Cmo maneja Usenet las noticias? . . . . . . . . . . . . . . . . . . . . . . . o 17 C-News 17.1 Entrega de Noticias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.2 Instalacin o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

265 266 267 267 268 270 272 272 274 276 280 281 284 287 289 289 289 290 291 292 292 295 295 297 298 299 300 301 302 303

17.3 El chero sys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.4 El chero active . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

17.5 Procesado de art culos por lotes . . . . . . . . . . . . . . . . . . . . . . . . . 17.6 Noticias caducadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.7 Ficheros diversos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.8 Mensajes de Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.8.1 El Mensaje cancel . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.8.2 newgroup y rmgroup . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.8.3 El Mensaje checkgroups . . . . . . . . . . . . . . . . . . . . . . . . . 17.8.4 sendsys, version, y senduuname . . . . . . . . . . . . . . . . . . . . . 17.9 C-News en un Entorno NFS . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.10Herramientas y Tareas de Mantenimiento . . . . . . . . . . . . . . . . . . . 18 Una descripcin de NNTP o 18.1 Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o 18.2 Instalacin del servidor NNTP . . . . . . . . . . . . . . . . . . . . . . . . . o 18.3 Restricciones de acceso NNTP . . . . . . . . . . . . . . . . . . . . . . . . .

18.4 Autorizacin NNTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o 18.5 Interaccin de nntpd con Cnews . . . . . . . . . . . . . . . . . . . . . . . . . o 19 Conguracin del lector de noticias o 19.1 Conguracin de tin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o 19.2 Conguracin de trn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o

INDICE GENERAL

xiii

19.3 Conguracin de nn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o A Un Cable de Impresora para PLIP B Ejemplos de Archivos de Conguracin para smail o C The GNU General Public License C.1 Preamble . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C.2 Terms and Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C.3 How to Apply These Terms . . . . . . . . . . . . . . . . . . . . . . . . . . . Glosario Bibliograf Comentada a Libros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Libros sobre Internet en general . . . . . . . . . . . . . . . . . . . . . . . . . Temas de Administracin . . . . . . . . . . . . . . . . . . . . . . . . . . . . o Conocimientos Bsicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . a HOWTOs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cules son los HOWTOs de Linux? . . . . . . . . . . . . . . . . . . . . . . a Dnde se consiguen los HOWTOs de Linux? . . . . . . . . . . . . . . . . . o Indice de HOWTOs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Asuntos varios y cuestiones legales . . . . . . . . . . . . . . . . . . . . . . . Los HOWTOs en Castellano . . . . . . . . . . . . . . . . . . . . . . . . . . . RFCs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

304 306 307 316 316 317 321 323 330 330 330 330 332 333 333 333 334 335 335 336

Indice de Figuras
1.1 2.1 2.2 2.3 2.4 2.5 2.6 2.7 3.1 5.1 6.1 6.2 6.3 6.4 6.5 7.1 9.1 9.2 Los tres pasos para enviar un datagrama desde erdos a quark. . . . . . . 10 25 27 31 35 36 37 38 40 63 90 95 96 97 97 106 134 139 153 174

Divisin de una red clase B en subredes . . . . . . . . . . . . . . . . . . . . o Vista parcial de la topolog de la red de la UGM. . . . . . . . . . . . . . . a Parte del espacio de dominios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Extracto del chero named.hosts del departamento de F sicas.

Extracto del chero named.hosts de la UGM. . . . . . . . . . . . . . . . . . Extracto del chero named.rev de la subred 12. Extracto del chero named.rev de la red 149.76. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Relacin entre controladores, interfaces, y hardware. . . . . . . . . . . . . . o Cervecera Virtual y Vinatera Virtual las dos subredes. El chero named.boot para vlager. Fichero named.ca. . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Fichero named.hosts.

Fichero named.local. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fichero named.rev. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Un script de ejemplo para dip

Un ejemplo de chero /etc/inetd.conf. . . . . . . . . . . . . . . . . . . . . . Un ejemplo de chero /etc/rpc. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10.1 Fichero nsswitch.conf de ejemplo.

12.1 Interacciones de los Ficheros de Conguracin de Taylor UUCP. o

xiv

INDICE DE FIGURAS

xv

15.1 Archivos de apoyo de sendmail.

. . . . . . . . . . . . . . . . . . . . . . . .

241 243 269 274

15.2 Un archivo muestra de sendmail.m4 para vstout. . . . . . . . . . . . . . . 16.1 Flujo de noticias a travs de la Universidad Groucho Marx e 17.1 Flujo de noticias mediante relaynews. . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . .

Prlogo a la Edicin en Castellano o o

Los ultimos a os de la dcada de los 90 son, claramente, los de la explosin denitiva de la n e o Informtica Personal. Es la poca en la que ordenadores de mediana potencia pueblan las a e casas particulares. Tambin es el momento en el que Internet se hace popular. Y como ya e no es dif que en un hogar haya ms de un PC, tal vez interesar tenerlos conectados en cil a a red local: al n y al cabo una tarjeta Ethernet puede costar menos de 5000 pesetas. Este libro trata sobre Linux y su capacidad de red, capacidad que no tiene nada que envidiar a la que pueda tener cualquier otro sistema un x. Otros sistemas operativos quieren tener ahora, a toda prisa, capacidades de acceso a la Red, pero recordemos que la tecnolog de Internet naci en Unix. Por esto, esos sistemas seguirn estando, durante a o a mucho tiempo, a a os luz de lo que Unix puede ofrecer. n Por lo tanto, le doy mi enhorabuena si ha elegido Linux u otro Unix para acceder a la Red y para trabajar. Lo que aqu explicamos intentar echarle una mano en las tareas de a administracin de red. Le ser especialmente util si su sistema Linux o Unix es servidor de o a una peque a red local o de Internet. Nuestro intento como traductores ha sido acercar las n ventajas de Unix en red al usuario hispanohablante, ya que creemos que es un asunto aun no cubierto por la bibliograf existente en nuestro idioma. a Hemos intentado hacer una traduccin homognea, pese a haber colaborado en ella gran o e cantidad de gente. Gracias a la propia Internet, hemos podido tener un canal de comunicacin uido para discutir cualquier duda que pudiera surgir entre los traductores, adoptando o nalmente un glosario com n de trminos informticos. Esperamos que el resultado merezca u e a la pena. Ahora es el momento de dar las gracias a todos aquellos que han colaborado en la tra duccin o en las posteriores revisiones. Estas personas son Corsino Alvarez, I aki Arenaza, o n xvi

Nota Acerca de Esta Traduccin o

xvii

Csar Ballardini, Alfonso Belloso, Javier Bravo, Santiago Crespo, David Escorial, Mxie a mo Escobar, Manuel Jes s Garrido, Luis F. Gonzlez, Eduardo Hernndez, Jes s Jimnez, u a a u e Jos Andrs Jimnez, Urko Lusa, Carlos Mart e e e nez Txakartegi, Max de Mendizbal, Frana cisco J. Montilla, Jos Manuel Puerta, Angel Luis Pinazo, Pedro Soria Rodr e guez y Enrique Zanardi. Por ultimo, debo agradecer el nacimiento y desarrollo de la idea de documentar Linux en nuestro idioma, a Ramn Gutirrez y de nuevo a Alfonso Belloso y Francisco J. Montilla. o e Juan Jos Amor e Mayo de 1997 revisado en Abril de 1999

Nota Acerca de Esta Traduccin o


Esta gu es traduccin de la versin 1.0 del libro Linux Network Administration Guide, a o o escrito por Olaf Kirch entre 1992 y 1994. Es un trabajo ms del proyecto LuCAS, el a LDP espa ol; y ha sido coordinado por Juan Jos Amor, quien desea recibir cualquier n e tipo de comentario acerca de erratas o sugerencias en su direccin de correo electrnico: o o jjamor@ls.fi.upm.es.

Prefacio

Las redes de ordenadores parecen estar acercndose a la situacin de los televisores y los a o hornos microondas, debido a la publicidad que Internet est teniendo, y el hecho de que la a gente de opinin ms respetada en el mundo de la Informtica, est todo el tiempo hablando o a a e de las virtudes de la red. Es decir, Internet est teniendo una cobertura informativa inusual, a y las autoridades en ciencia social estn integrndose en los grupos de noticias de Usenet a a para dirigir las investigaciones sobre la Cultura Internet. Las compa suministradoras nas trabajan en la introduccin de nuevas tcnicas de transmisin como ATM, que ofrecen un o e o ancho de banda varias veces superior al que ofrecen las redes utilizadas actualmente. En realidad, las redes han estado presentes durante bastante tiempo. La conexin de o ordenadores para formar redes de area local ha sido prctica com n incluso en instalacioa u nes peque as, as como lo han sido los enlaces a larga distancia usando l n neas telefnicas o p blicas. Un rpido crecimiento del conglomerado de redes a nivel mundial ha hecho, sin u a embargo, que integrarse en la aldea global sea una opcin viable incluso para peque as o n organizaciones sin benecio de usuarios de ordenadores privados. Instalar un nodo de Internet con capacidad de correo y noticias ofreciendo acceso telefnico ha pasado a ser algo o accesible, y con la RDSI acelerar sin duda esta introduccin. a o Hablar de redes de ordenadores a menudo signica hablar de UNIX. Por supuesto, UNIX no es el unico sistema operativo con capacidades de red, ni seguir siendo la puerta a de entrada, pero s ha estado en el negocio de las redes por mucho tiempo y seguramente continuar haciendolo al menos durante bastante tiempo. a Lo que lo hace particularmente interesante para los usuarios privados es que ha habido gran actividad para conseguir sistemas operativos tipo UNIX gratuitos para PC, como 386BSD, FreeBSD y Linux. Sin embargo, Linux no es UNIX. Eso es una marca comercial xviii

Documentacin de Linux o

xix

registrada de quien actualmente tenga los derechos sobre ella (Univel, en el momento de escribir este libro). Linux, en cambio, es un sistema operativo que lucha por ofrecer toda la funcionalidad que requieren los estndares POSIX para sistemas operativos tipo UNIX, a aunque es una reimplementacin completa, desde cero. o El n cleo de Linux fue escrito enteramente por Linus Torvalds, quien lo comenz como u o un proyecto para conseguir conocer el Intel i386, y para hacer un MINIX mejor. MINIX era entonces otro sistema operativo popular para PC que ofrec los ingredientes vitales de a la funcionalidad un x, y fue escrito por el Profesor Andrew S. Tanenbaum. Linux est cubierto por la Licencia P blica General (GPL) GNU, que permite la libre a u distribucin del cdigo (lase, por favor, la GPL en el apndice C para tener una denicin o o e e o de lo que es software libre (free software)). Superando sus males de joven, y atraido por una siempre creciente base de programas de aplicacin gratuitos, se est convirtiendo o a rpidamente en el sistema operativo de eleccin de muchos usuarios de PC. Tanto el n cleo a o u como la librer C han llegado a ser tan buenos que la mayor del software estndar se puede a a a compilar sin esfuerzo mayor que el que se requiere en cualquier otro sistema tipo un x, y una amplia variedad de distribuciones empaquetadas de Linux le permiten prcticamente a volcarlo en su disco duro y comenzar a manejarlo.

Documentacin de Linux o
Una de las quejas que se recogen frecuentemente en torno a Linux (y al software gratuito en general) es sobre el lamentable estado de la documentacin o su completa carencia. En o los primeros d lo usual era que un paquete viniese con unas utiles notas de instalacin as o y README s (LEAME s). Estos daban a los magos de un x, moderadamente experimentados, suciente informacin para instalarlo y ejecutarlo con xito, pero dejaban al t o e pico novato fuera de juego. All por nales de 1992, Lars Wirzenius y Michael K. Johnson sugirieron la formacin a o del Linux Documentation Project (Proyecto de Documentacin de Linux), o LDP, con el o n de proporcionar un conjunto coherente de manuales. Lejos de contestar preguntas tipo Cmo?, o Por qu?, o Cual es el signicado de la vida, el universo y todo lo o e dems?, estos manuales intentan cubrir la mayor de aspectos del uso y funcionamiento a a de un sistema Linux sin necesidad de graduarse previamente en un x. Entre los logros del LDP estn el Installation and Getting Started Guide 1 , escrita por a Matt Welsh, el Kernel Hackers Guide 2 de Michael K. Johnson, y el proyecto de pginas de a manual coordinado por Rik Faith, que hasta ahora ha producido un conjunto de unas 450 pginas de manual para la mayor de las llamadas al sistema y librer de C. La System a a as
N. del T.: Y traducida, como este manual, por el Proyecto LuCAS, y cuyo t tulo en castellano es Linux: Instalacin y Primeros Pasos o 2 N. del T.: Gu sobre el Ncleo a u
1

Sobre Este Libro

xx

Administrators Guide 3 , escrita por Lars Wirzenius, est aun en estado alpha. Tambin se a e est preparando una Gu de Usuario. a a Este libro, la Gua de Administracin de Redes con Linux, es tambin parte de la serie o e LDP. Como tal, puede ser copiado y distribuido libremente bajo la licencia de copia del LDP que se reproduce en la segunda pgina. a Sin embargo, los libros del LDP no son la unica fuente de informacin en Linux. En este o momento hay ms de una docena de HOWTOs (COMOs) que se publican regularmente en a comp.os.linux.announce y es posible encontrarlos en m ltiples servidores de FTP. Los u HOWTOs son documentos cortos de unas pocas pginas que dan una breve introduccin a o a materias como el soporte de Ethernet bajo Linux, o la conguracin del software de o noticias Usenet, y responde a las preguntas ms frecuentes. Generalmente proporcionan la a informacin ms precisa y actualizada disponible sobre la materia. Podr encontrar una o a a lista de los HOWTOs disponibles en la Bibliograf hacia el nal de este libro. a

Sobre Este Libro


Cuando me un al Linux Documentation Project en 1992, escrib dos peque os cap n tulos sobre UUCP y smail, con los que quise contribuir a la System Administrators Guide. El desarrollo del TCP/IP acababa de comenzar, y cuando esos peque os cap n tulos comenzaron a crecer, me pregunt si no estar bien tener una Gu de Red. Fantstico, dijo e a a a todo el mundo, Yo dir a por ello!. De modo que fui, y escrib una primera versin de a, o la Gu de Red, que di a conocer en Septiembre de 1993. a La nueva Gu de Red que est Ud. leyendo ahora es una reescritura completa que a a contiene varias aplicaciones nuevas que ya estn disponibles para los usuarios de Linux a desde la primera versin. o El libro est organizado estrictamente en la secuencia de pasos que debe de seguir para a congurar su sistema para redes. Comienza discutiendo los conceptos bsicos de redes, y, a en particular, las redes basadas en TCP/IP. Entonces, poco a poco caminamos desde la conguracin de TCP/IP a nivel de dispositivos hasta la puesta en marcha de aplicaciones o comunes como rlogin y parecidas, el Sistema de Ficheros de Red (NFS), y el Sistema de Informacin de Red (NIS). A esto le sigue un cap o tulo sobre cmo hacer de su mquina o a un nodo UUCP. El resto del libro est dedicado a dos grandes aplicaciones que corren por a encima de TCP/IP y UUCP: el correo elecrnico y las noticias. o La parte de correo electrnico (e-mail) conforma una introduccin a las partes ms o o a ntimas del transporte y encaminado del correo, y los miles de esquemas de direccionamiento con los que se puede encontrar. Describe la conguracin y gestin de smail, un agente de o o transporte de correo muy usado en peque os nodos de correo, y sendmail, que es para gente n
3

N. del T.: Gu del Administrador de Sistemas a

La Versin Impresa Ocial o

xxi

que tiene que hacer encaminamientos ms complicados, o tiene que manejar gran volumen a de correo. El cap tulo sendmail ha sido escrito y aportado por Vince Skahan. La parte de noticias intenta ofrecerle una visin de cmo funcionan las noticias de Usenet, o o abarca a C-News, el software de transporte de noticias ms usado de momento, y el uso de a NNTP para proporcionar acceso a la lectura de noticias a una red local. El libro cierra con un cap tulo corto sobre cmo usar los lectores de noticias ms populares de Linux. o a

La Versin Impresa Ocial o


En el oto o de 1993, Andy Oram, quien ha estado en la lista de correo de LDP desde n casi el principio de todo, me pidi publicar mi libro en OReilly and Associates. Me puse o nervioso; jams hab imaginado que mi libro tuviese tanto xito. Finalmente acordamos a a e que OReilly produjese una Versin Impresa Ocial mejorada de la Gu de Red, mientras yo o a conservaba el copyright original de forma que las fuentes del libro pudieran ser distribuidas libremente.4 Esto signica que Ud. puede elegir libremente: puede conseguir las fuentes A L TEX distribuidas en la red (o las versiones preformateadas en DVI o PostScript, para cada caso), e imprimirlas. O puede comprar la versin impresa ocial de OReilly, que ya o est disponible. a Entonces, por qu querr Ud. pagar dinero por algo que puede conseguir gratis? e a Est loco Tim OReilly por publicar algo que todos pueden imprimir e incluso vender por a s mismos?5 O hay alguna diferencia entre estas versiones? Las respuestas son depende, no, denitivamente no y s y no. OReilly and Associates asume un riesgo al publicar la Gu de Red, pero espero que nalmente merezca a la pena. Si es as creo que este proyecto puede servir como ejemplo de cmo el mundo del , o software libre y las compa pueden cooperar para producir algo que benecia a los dos. nas Desde mi punto de vista, el gran servicio que est dando a la comunidad Linux (aparte del a libro que tiene disponible en su librer es que puede ayudar a que Linux sea reconocido a) como algo que puede ser tomado en serio: una alternativa util y viable a los sistemas operativos UNIX de PC comerciales. Entonces, qu hay de las diferencias entre la versin impresa y la versin en l e o o nea? Andy Oram se ha esforzado enormemente en transformar mis primeros pasos en algo que merezca la pena imprimirse (l tambin ha estado revisando los otros libros salidos del Proyecto e e de Documentacin de Linux, intentando contribuir con sus habilidades profesionales a la o comunidad Linux). Desde que Andy empez a revisar la Gu de Red y a editar las copias que yo le mandaba, o a el libro ha mejorado enormemente frente a lo que era hace medio a o. No estar tan cerca n a
El aviso de copyright se reproduce en la pgina inmediantemente posterior a la del t a tulo. Observe que mientras usted puede imprimir la versin en l o nea, Ud. no puede fotocopiar el libro de OReilly, y mucho menos vender ninguna de esas (hipotticas) copias. e
5 4

Ms Informacin a o

xxii

de lo que es ahora sin su contribucin. Todas estas ediciones han recalado en la versin o o en l nea, como lo ser cualquier cambio que se haga a la Gu de Red durante la fase de a a edicin en OReilly. De modo que no habr diferencia en contenido. Aun as la versin de o a , o OReilly ser diferente: Por un lado, la gente de OReilly ha trabajado mucho en el aspecto a A y forma, dando lugar a un dise o mucho ms agradable que jams se lograr con el L TEX n a a a estndar. Por otro lado, contar con un par de avances como un a a ndice mejorado, y ms y a mejores guras.

Ms Informacin a o
Si sigue las instrucciones de este libro y algo no funciona, por favor, sea paciente. Algunos de sus problemas pueden deberse a fallos est pidos por mi parte, pero tambin pueden u e ser causados por cambios en el software de red. Adems, probablemente deber preguntar a a primero en comp.os.linux.help. Hay muchas posibilidades de que usted no sea el unico con esos problemas, y probablemente ya se conozca una solucin o al menos se est trabajando o e en ello. Si tiene oportunidad, deber intentar conseguir el ultimo n cleo y versin de red a u o de alguno de los servidores de FTP de Linux, o de una BBS prxima a usted. Muchos o problemas vienen de usar software en distintas fases de desarrollo, que fallan al intentar funcionar juntos. Despus de todo Linux es un trabajo en progreso. e Otro buen lugar donde informarse del estado actual de desarrollo es el Networking HOWTO6 . Lo mantiene Terry Dawson7 . Se incluye en comp.os.linux.announce una vez al mes, y contiene la informacin ms actualizada. La versin actual puede obtenerse de o a o (entre otros) tsx-11.mit.edu, en /pub/linux/doc. Para problemas que no puede resolver de ninguna forma, tambin puede contactar con el autor de este libro en la direccin que se e o facilita en el prefacio. Sin embargo, por favor, abstngase de pedir ayuda a los desarrollae dores. Ellos ya estn dedicando la mayor parte de su tiempo libre a Linux, y a veces incluso a viven ms alla de la red :-). a

Sobre los autores


Olaf ha sido un usuario de UNIX y administrador a tiempo parcial por un par de a os n mientras estudiaba matemticas. Actualmente, trabaja como programador de UNIX y a est escribiendo un libro. Uno de sus deportes favoritos es hacer cosas con sed que otra a gente hace con su intrprete perl. El se divierte tanto con esto como con ir al monte con e una mochila y una tienda de campa a. n Vince Skahan ha estado administrando gran n mero de sistemas UNIX desde 1987 y u actualmente ejecuta sendmail+IDA en aproximadamente 300 estaciones UNIX para unos
6 7

N. del T.: El HOWTO sobre redes A Terry Dawson se le puede localizar en terryd@extro.ucc.su.oz.au.

Agradecimientos

xxiii

2000 usuarios. Admite haber perdido un considerable n mero de horas de sue o editando u n unos pocos cheros sendmail.cf a pelo antes de descubrir sendmail+IDA en 1990. Tambin admite haber esperado ansiosamente el env de la primera versin de sendmail basada e o o 8. . . en perl incluso para sus diversiones ms oscuras a A Olaf se le puede encontrar en la siguiente direccin: o Olaf Kirch Kattreinstr. 38 64295 Darmstadt Germany okir@monad.swb.de A Vince se le puede encontrar en: Vince Skahan vince@victrola.wa.com Estamos abiertos a sus preguntas, comentarios, postales, etc. Sin embargo, le pedir amos que no nos telefonee a no ser que sea realmente importante.

Agradecimientos
Olaf dice: Este libro debe gran parte de su contenido a gente que dedic tiempo a revisarlo o y ayud a depurar muchos fallos, tanto tcnicos como gramticos (jams supe que existiera o e a a 9 ). El ms riguroso de ellos fue Andy Oram de OReilly algo como un participio oscilante a and Associates. Estoy muy en deuda con Andres Sep lveda, Wolfgang Michaelis, Michael K. Johnson, u y todos los desarrolladores que dedicaron su tiempo a comprobar la informacin de la Gu o a de Red. Tambin quiero agradecer a todos los que leyeron la primera versin de la Gu de e o a Red y me enviaron sus correcciones y sugerencias. Espero que puedan encontrar una lista completa de los que han contribuido en el chero Thanks de la distribucin en l o nea. Por n, este libro no hubiese sido posible sin el apoyo de Holger Grothe, quien me facilit lo o crucial, la conexin a Internet. o Tambin quisiera agradecer a los siguientes grupos y compa que imprimieron la e nas primera versin de la Gu de Red y han donado dinero incluso para m o para el Proyecto o a , de Documentacin de Linux en su conjunto. o
8 9

No crees que lo podr amos hacer con sed, Vince? N. del T.: Realmente no s si en ingls existe algo as o es simplemente una broma del autor e e ,

Agradecimientos

xxiv

Linux Support Team, Erlangen, Germany S.u.S.E. GmbH, Fuerth, Germany Linux System Labs, Inc., United States Vince dice: Mis agradecimientos van para Neil Rickert y Paul Pomes por su gran ayuda estos a os concerniente al cuidado y mantenimiento de sendmail+IDA y a Rich Braun por n portar inicialmente el sendmail+IDA a Linux. El mayor agradecimiento va para mi esposa Susan por todo su apoyo en este y otros proyectos.

Convenciones Tipogrcas a

xxv

Convenciones Tipogrcas a
Al escribir este libro se han usado ciertas convenciones tipogrcas para marcar comandos a de shell, argumentos variables, etc. Se detallan a continuacin. o Fuente Negrita Se usa para marcar nombres de mquinas y direcciones de correo, as como a nuevos conceptos y avisos. Fuente Itlica a Se usa para marcar nombres de chero, comandos UNIX, y palabras clave en cheros de conguracin. Tambin se usa para enfatizar texto. o e Fuente de mquina de escribir a Se usa para representar interaccin con la pantalla, como la interaccin del o o usuario ejecutando un programa. Tambin se usa para ejemplos de cdigo, ya sea un chero de conguracin, e o o un script de shell, o algo as . Fuente de mquina de escribir inclinada a Se usa para marcar meta-variables en el texto, especialmente en representaciones de la l nea de comandos. Por ejemplo, $ ls -l ejemplo donde ejemplo representar un nombre de chero, como, por ejemplo, a /tmp. Tecla Representa una tecla a pulsar. Lo ver a menudo de esta forma: a Pulse return para continuar. 3 Un rombo en el margen, como un rombo negro en una pista de esqu marca , peligro o precaucin. Lea los parrafos marcados as cuidadosamente. o Cuando preceden a un comando de shell a escribir, esto denota el prompt del shell. El s mbolo $ se usa cuando el comando puede ser ejecutado como un usuario normal; # signica que el comando requiere privilegios de superusuario.

$y#

El Proyecto de Documentacin de Linux o

xxvi

El Proyecto de Documentacin de Linux o


El Linux Documentation Project (Proyecto de Documentacin de Linux), o LDP, es un o amplio equipo de escritores, revisores, y editores que estn trabajando juntos para facilitar a documentacin completa para el sistema operativo Linux. El coordinador general de este o proyecto es Matt Welsh, quien est ayudado en gran medida por Lars Wirzenius y Michael K. a Johnson. Este manual est dentro de un grupo de varios que estn siendo distribuidos por el LDP, a a incluyendo una Gu de Usuarios de Linux, otra de Administradores de Sistemas, otra a para Administradores de Red, y la Gu de Desarrolladores del N cleo. Estos manuales a u A estn disponibles en formato fuente L TEX, formato .dvi, y salida postscript por FTP a annimo desde nic.funet.fi, en el directorio /pub/OS/Linux/doc/doc-project, y desde o tsx-11.mit.edu, en el directorio /pub/linux/docs/guides. Animamos a todo aqul con acin a la escritura o a la edicin que se una a nosotros e o o para mejorar la documentacin de Linux. Si tiene acceso a correo Internet, puede unirse al o canal DOC de la lista de correo Linux-Activists enviando un correo a
linux-activists-request@niksula.hut.fi

con la l nea
X-Mn-Admin: join DOC

en la cabecera o como primera l nea del cuerpo del mensaje. Un correo vac sin la l o nea de cabecera adicional har que el servidor de correo devuelva un mensaje de ayuda. Para a abandonar el canal, env un mensaje a la misma direccin, incluyendo la l e o nea
X-Mn-Admin: leave DOC

El Proyecto LinUx en CAStellano (LuCAS)


La versin en Castellano que tiene en sus manos es un fruto ms del proyecto LuCAS o a (LinUx en CAStellano). Es un proyecto para documentar el Linux en el idioma de Cervantes, coordinado inicialmente por Alfonso Belloso 10 y actualmente por Juan Jos Amor11 e Ismael e 12 . Olea Los manuales que produce el grupo se encuentran disponibles en las pginas de a WWW, http://lucas.hispalinux.es/ as como en el servidor de FTP slug.ctv.es,
Alfonso est localizable en alfon@iies.es a Juan Jos est disponible en la direccin jjamor@ls..upm.es e a o 12 cuya direccin de correo es olea@iname.com o
11 10

El Proyecto LinUx en CAStellano (LuCAS)

xxvii

directorio pub/LuCAS. Parte del contenido de este servidor se encuentra reejado en sunsite.unc.edu. En particular, este manual se encuentra en el directorio /pub/Linux/docs/linux-doc-project/network-guide/translations/es de esa mquia na. El grupo LuCAS trabaja codo con codo, con el grupo INSFLUG (Impatient & Novatous Spanish Fido Linux Users Group), dedicado a la traduccin de documentos cortos HOWTO o 13 . Sus trabajos pueden encontrarse (COMOs); y coordinados por Francisco Jos Montilla e en el servidor www.insflug.org as como en el propio LuCAS. Si desea unirse al grupo, no dude en escribirnos. Mientras lo piensa, escuche un poco lo que se cuenta en la lista de correo que mantenemos: escriba a lucasrequest@hispalinux.es un mensaje con la orden subscribe.
13

La direccin electrnica de Francisco Jos es pacopepe@insug.org o o e

Estndares de Sistema de Ficheros a

xxviii

Estndares de Sistema de Ficheros a


En el pasado, uno de los problemas que aquejaban las distribuciones de Linux, as como los paquetes separados, era que no hab un unico sistema de cheros aceptado. Esto generaba a incompatibilidades entre paquetes diferentes, y enfrentaba a usuarios y administradores con la tarea de localizar varios programas y cheros. Para mejorar esta situacin, en Agosto de 1993, varias personas formaron el Grupo del o Estndar de Sistema de Ficheros de Linux o Grupo FSSTND para abreviar, coordinado por a Daniel Quinlan. Despus de seis meses de discusin, el grupo present un dise o que muestra e o o n una estructura de sistema de cheros coherente y dene la localizacin de los programas o ms esenciales y cheros de conguracin. a o Este estndar se supone que va a implementarse en la gran mayor de distribuciones a a y paquetes de Linux. A lo largo de este libro, adems, asumiremos que todos los cheros a que se traten residen en el lugar especicado por este estndar; slo donde haya una larga a o tradicin que choque con esta especicacin se mencionarn emplazamientos alternativos. o o a El Estndar de Sistema de Ficheros de Linux puede obtenerse de la mayor de servidores a a FTP de Linux y sus imgenes; por ejemplo, puede encontrarlo en sunsite.unc.edu bajo a /pub/linux/docs. Daniel Quinlan, coordinador del grupo FSSTND puede ser localizado en quinlan@bucknell.edu.

Cap tulo 1

Introduccin a las Redes o


1.1 Historia

La idea de red es probablemente tan vieja como la de las telecomunicaciones. Consideremos a la gente que viv en la edad de piedra, donde los tambores se habr utilizado a an para transmitir mensajes entre individuos. Suponga que el cavern cola A quiere invitar al cavern cola B a un partido de lanzamiento de rocas contra el otro, pero viven demasiado lejos como para que B oiga a A golpear su tambor. Cules son las opciones de A? Podr a a 1) ir a la choza de B, 2) hacerse con un tambor ms grande, o 3) pedirle a C, que vive a a mitad de camino entre los dos, que retransmita el mensaje. La ultima opcin es lo que se o llama una red. Claro, que ya ha pasado un tiempo desde los primeros intentos de nuestros antepasados. Hoy en d tenemos ordenadores que hablan entre s a travs de vastas conexiones de cables, a e bras opticas, microondas, y otros medios parecidos, para quedar para el partido del sabado. A continuacin trataremos sobre las maneras en que esto se realiza, pero olvidndonos de o a los cables, as como de la parte del partido. En esta Gu escribiremos sobre dos tipos de redes : las basadas en UUCP, y las basadas a en TCP/IP. Estos son conjuntos de protocolos y paquetes de software que proporcionan medios para transportar datos entre dos ordenadores. En este cap tulo veremos ambos tipos y discutiremos sus principios fundamentales. Deniremos una red como un conjunto de nodos que son capaces de comunicarse entre s a menudo contando con los servicios de varios nodos especializados que conmutan , datos entre los participantes. Los nodos suelen ser ordenadores, aunque no es necesario; podemos considerar tambin terminales X o impresoras inteligentes como nodos. Peque as e n

1.2. Redes UUCP

aglomeraciones de nodos tambin se llaman instalaciones. 1 e La comunicacin ser imposible sin alg n tipo de lenguaje o cdigo. En las redes de oro a u o denadores, estos lenguajes son llamados colectivamente protocolos. Sin embargo, no deber a pensar en protocolos escritos, sino ms bien en el cdigo de comportamiento altamente fora o malizado que se observa cuando se encuentran los jefes de estado. De un modo muy similar, los protocolos usados por las redes de ordenadores no son sino normas muy estrictas para el intercambio de mensajes entre dos o mas nodos.

1.2

Redes UUCP

UUCP es una abreviatura de Unix-to-Unix Copy (Copia de Unix a Unix). Comenz siendo o un paquete de programas para transferir cheros sobre l neas serie, programar esas transferencias, e iniciar la ejecucin de programas en el lugar remoto. Ha experimentado grandes o cambios desde su primera implementacin a nales de los setenta, pero aun es bastante o espartano en los servicios que ofrece. Su principal aplicacin es todav en redes de area o a metropolitana (WAN) basadas en enlaces telefnicos. o UUCP comenz a desarrollarse por los Laboratorios Bell en 1977 para la comunicacin o o entre sus laboratorios de desarrollo de Unix. A mediados de 1978, esta red ya conectaba a ms de 80 centros. Se ejecutaban aplicaciones de correo electrnico, as como de impresin a o o remota; sin embargo, el uso principal del sistema era distribuir software nuevo y mejoras.2 Hoy d UUCP ya no est connado en el entorno un x. Hay versiones comerciales a, a disponibles para diversas plataformas, incluyendo AmigaOS, DOS, TOS de Atari, etc. Una de las principales desventajas de las redes UUCP es su bajo ancho de banda. Por un lado, el equipo telefnico establece un l o mite r gido en la tasa mxima de transferencia. a Por otro lado, los enlaces UUCP raramente son conexiones permanentes; en su lugar, los nodos se llaman entre s a intervalos regulares. Es por ello, que la mayor del tiempo que a le lleva a un mensaje viajar por una red UUCP permanece atrapado en el disco de alg n u nodo, esperando al establecimiento de la prxima conexin. o o A pesar de estas limitaciones, a n hay muchas redes UUCP funcionando en todo el u mundo, utilizado principalmente por acionados, ya que ofrecen acceso de red a usuarios privados a precios razonables. La razn fundamental de la popularidad del UUCP es que es o barat simo comparado con tener el ordenador conectado al Gran Cable de Internet. Para hacer de su ordenador un nodo UUCP, todo lo que necesita es un mdem, software UUCP, o y otro nodo UUCP que desee suministrarle correo y noticias.
1 2

N. del T.: Del ingls site e No parece que con el tiempo haya cambiado mucho esto. . .

1.2. Redes UUCP

1.2.1

Cmo usar UUCP o

La idea que hay detrs de UUCP es bastante simple: como su nombre indica, bsicamente a a copia cheros de un nodo a otro, pero tambin permite realizar ciertas acciones en el nodo e remoto. Suponga que le est permitido que su mquina acceda a un nodo hipottico llamado a a e swim, y le va ha hacer ejecutar el comando de impresin lpr para Ud. Entonces, podr o a 3 escribir lo siguiente en su l nea de comandos para que le imprima este libro en swim:
$ uux -r swim!lpr !netguide.dvi

Esto hace que uux, un comando del repertorio UUCP, planique un trabajo para swim. Este trabajo consta del chero de entrada, netguide.dvi, y la peticin de enviar este chero o a lpr. La opcin -r indica a uux que no llame al sistema remoto inmediatamente, sino o que almacene el trabajo hasta que se establezca la prxima conexin. A esto se le llama o o spooling, o almacenamiento en la cola. Otra propiedad de UUCP es que permite reenviar trabajos y cheros a travs de varios e nodos, suponiendo que stos colaboren. Asumiremos que swim, el nodo del ejemplo antee rior, tiene un enlace UUCP con groucho, el cual mantiene un gran n mero de aplicaciones u un x. Para transferir el chero tripwire-1.0.tar.gz hasta su mquina deber indicarlo as a a :
$ uucp -mr swim!groucho!~/security/tripwire-1.0.tar.gz trip.tgz

El trabajo creado pedir a swim que traiga el chero desde groucho, y lo env hasta a e su mquina, donde UUCP lo almacenar en trip.tgz y le noticar por correo la llegada a a a del chero. Esto ocurrir en tres pasos. Primero, su mquina env el trabajo a swim. a a a La siguiente vez que swim establezca contacto con groucho, se transferir el chero de a groucho a swim. El ultimo paso es la transferencia del mismo desde swim hasta su mquina. a Los servicios ms importantes que proporcionan las redes UUCP hoy en d son el a a correo electrnico y las noticias. Lo introduciremos brevemente y despus lo veremos en o e ms detalle. a El correo electrnico e-mail4 para abreviar le permite intercambiar mensajes con o usuarios de nodos remotos sin tener realmente que saber cmo acceder a estos nodos. La o
Si usa bash, la shell GNU Bourne Again SHell, tendr que quitar los signos de exclamacin, porque los a o usa como su carcter de histrico. a o 4 En el idioma castellano comienzan a aparecer adaptaciones ms o menos afortunadas, como e-milio a
3

1.3. Redes TCP/IP

tarea de dirigir un mensaje desde su mquina destino la realiza enteramente el sistema de a manejo de correo. En un entorno UUCP, el correo generalmente se transporta ejecutando el comando rmail en el nodo vecino, pasndole la direccin del receptor y el mensaje. rmail a o reenviar entonces el mensaje a otro nodo, y seguir as hasta que alcance el nodo destino. a a , Veremos esto en detalle en el cap tulo 13. La mejor forma de denir el servicio de noticias es considerarlo como un sistema de tabln de anuncios distribuido. Muy a menudo, este trmino se reere a las noticias de o e Usenet, que es, con mucho, la ms conocida red de intercambio de noticias, con un n mero a u 5 . Los or de nodos participantes estimado en 120.000 genes de Usenet se remontan a 1979, cuando, tras la aparicin del UUCP con el nuevo Unix V7, tres estudiantes graduados o tuvieron la idea de un intercambio de informacin general entre la comunidad Unix. Estos o escribieron algunos scripts, creando el primer sistema de noticias en red. En 1980, esta red conectaba duke, unc, y phs, y dos Universidades de Carolina del Norte, de forma aislada. Usenet creci ms todav posteriormente. Aunque su origen fue como una red basada en o a a UUCP, ya no est limitada a un unico tipo de redes. a La unidad bsica de informacin es el artculo, que puede ser enviado a una jerarqu a o a de grupos de noticias dedicadas a temas espec cos. La mayor de los nodos reciben a unicamente una seleccin de todos los grupos de noticias, que transportan una media de o 6 de art 60Mb culos por d a. En el mundo UUCP, las noticias generalmente se env a travs de un enlace UUCP, an e recolectando todos los art culos de los grupos de noticias solicitados, y empaquetandolos en varios lotes 7 . Estos se env al lugar receptor, donde se pasan al comando rnews que los an desempaqueta y procesa posteriormente. Finalmente, UUCP es tambin el medio elegido por muchos servidores de cheros que e ofrecen acceso p blico. Generalmente podr acceder a ellos llamando con UUCP, accediendo u a como usuario invitado, y transferindose los archivos desde un area de cheros p blicamente e u accesible. Estas cuentas de invitado tienen, a menudo, un nombre de acceso y password como UUCP/nuucp o algo similar.

1.3

Redes TCP/IP

Aunque UUCP puede resultar una eleccin razonable para enlaces de red mediante llamada o de bajo coste, hay muchas situaciones en las que su tcnica de almacenamiento y reenv se e o muestra demasiado inexible, por ejemplo en Redes de Area Local (LANs, o RALs). Estas
5

Teniendo en cuenta que hace tiempo que se escribi este libro, es seguro que son muchos ms. o a De nuevo son datos no actualizados 7 N. del T.: Del ingls batches e
6

1.3. Redes TCP/IP

redes estn compuestas generalmente por un peque o n mero de mquinas localizadas en el a n u a mismo edicio, o incluso en la misma planta, que estn interconectadas para proporcionar a un entorno de trabajo homogeneo. Es t pico que se quiera compartir cheros entre estos nodos, o ejecutar aplicaciones distribuidas en diferentes mquinas. a Estas tareas requieren una aproximacin completamente diferente a las redes. En lugar o de reenviar cheros completos con una descripcin del trabajo, todos los datos se fragmentan o en peque as unidades (paquetes), que se env inmediatamente al nodo destino, donde son n an reensamblados. Este tipo de redes son llamadas redes de intercambio de paquetes. Entre otras cosas, esto permite ejecutar aplicaciones interactivas a travs de la red. El coste de e esto supone, por supuesto, una complejidad adicional al software. La solucin que han adoptado los sistemas un x y muchos no-un x es conocida o como TCP/IP. En esta seccin echaremos un vistazo a sus conceptos bsicos. o a

1.3.1

Introduccin a las Redes TCP/IP o

El TCP/IP tiene sus or genes en un proyecto de investigacin fundado en Estados Unidos por o el DARPA (Defense Advanced Research Projects Agency, Agencia de Proyectos Avanzados de Investigacin en Defensa) en 1969. Esta fue una red experimental, la red ARPANET, o que paso a ser operativa en 1975, despus de haber demostrado ser un xito. e e En 1983, fue adoptado como estndar el nuevo conjunto de protocolos TCP/IP, y todos a los nodos de la red pasaron a utilizarlo. Cuando ARPANET por n dio paso a Internet (con la propia ARPANET integrndose en su existencia en 1990), el uso del TCP/IP se a hab extendido a redes ms alla de la propia Internet. Las ms destacables son las redes a a a locales un x, pero con la llegada de los equipos telefnicos digitales rpidos, como la RDSI, o a tambin tiene un futuro prometedor como transporte en redes telefnicas. e o Para ilustrar las explicaciones que demos en las siguientes secciones, tomaremos como ejemplo una red t pica: la de una universidad, concretamente la hipottica Universidad e Groucho Marx (GMU) situada, por ejemplo, en alg n lugar de Libertonia. En esta univeru sidad, la mayor de los departamentos mantienen sus propias redes de area local, mientras a que algunos comparten una, y otros poseen varias. Todos ellos estn interconectados, y a estn enganchados a Internet a travs de un solo enlace de alta velocidad. a e Supongamos una mquina Linux conectada a una LAN de nodos un x en el Departaa mento de Matemticas, y su nombre es erdos. Para acceder a un nodo del Departamento a de F sicas, por ejemplo quark, introducir el siguiente comando: a
$ rlogin quark.physics Last login: Mon Feb 2 21:06:19 on tty1

1.3. Redes TCP/IP

Linux 2.0.0 #1 Sun Dec 7 19:07:05 MET 1997 (POSIX) [...]

En la l nea de comandos, introducir su nombre de acceso, pongamos que es andres, y a su clave. Entonces dispondr de una shell de quark, sobre la que puede escribir como si a estuviera sentado en la consola del sistema. Tras salir de la shell volver a tener la l a nea de comandos de su propia mquina. Acaba de utilizar una de las aplicaciones de interactividad a instantnea que proporciona TCP/IP: el acceso remoto. a Mientras est conectado a quark, podr tambin desear ejecutar una aplicacin X, e a e o como un programa de dibujo de funciones, o un visor de Postscript. Para indicar a esta aplicacin que desea ver las ventanas en su monitor local, debe modicar la variable de o entorno DISPLAY:
$ export DISPLAY=erdos.maths:0.0

Si pone en marcha ahora su aplicacin, esta contactar con su servidor X en lugar del o a de quark, y mostrar todas las ventanas en su monitor. Por supuesto, esto requiere que a est ejecutando X11 en erdos. La clave est en que TCP/IP permite a quark y a erdos e a enviarse paquetes X11 en ambos sentidos para darle a Ud. la impresin de que est en un o a unico sistema. La red es casi transparente en este caso. Otra aplicacin muy importante en redes TCP/IP es NFS, abreviatura de Network File o System (Sistema de Ficheros de Red). Es otra forma de hacer trasparente la red, porque bsicamente permite montar jerarqu de directorios de otras mquinas, de modo que a as a aparezcan como sistemas de cheros locales. Por ejemplo, todos los directorios home, o personales, de los usuarios pueden estar en una mquina servidor central, desde la cual a montan los directorios el resto de mquinas de la LAN. El efecto de esto es que los usuarios a pueden acceder a cualquier mquina, y encontrarse a s mismos en el mismo directorio. a De forma similar, es posible instalar aplicaciones que requieren gran cantidad de espacio en disco (tales como TEX) en una unica mquina, y exportar estos directorios a otras mquinas. a a Volveremos sobre NFS en el cap tulo 11. Por supuesto, esto son slo ejemplos de lo que se puede hacer en un entorno de redes o TCP/IP: las posibilidades son casi ilimitadas. Ahora echaremos una mirada ms de cerca al modo en que trabaja TCP/IP. Esto es a necesario para comprender cmo y por qu tiene que congurar su mquina. Comenzaremos o e a examinando el hardware, y poco a poco recorreremos todo el camino.

1.3. Redes TCP/IP

1.3.2

Ethernets

El tipo de hardware ms utilizado en LANs es lo que comunmente conocemos como Ethernet. a Consta de un solo cable con los nodos colgando de l a travs de conectores, clavijas o e e transceptores. Las ethernet simples, son baratas de instalar, lo que unido a un ujo de transferencia neto de 10 Megabits por segundo avala gran parte de su popularidad. Hay tres tipos de Ethernet, en funcin de su cable, llamadas gruesas, nas y de par o trenzado. Tanto el no como el grueso utilizan cable coaxial, diferiendo en el grosor y el modo de conectar este cable a los nodos. El Ethernet no emplea conectores BNC con forma de T, que se pinchan en el cable y se enganchan a los conectores de la parte trasera del ordenador. El Ethernet grueso requiere que realice un peque o agujero en el cable, n y conecte un transceptor utilizando un conector vampiro. Entonces se pueden conectar uno o ms nodos al transceptor. Los cables Ethernet no y grueso pueden alcanzar una a distancia de 200 y 500 metros, respectivamente, y es por ello que se les llama tambin e 10base-2 y 10base-5. El par trenzado usa un cable hecho de dos hilos de cobre como las que se encuentran en las instalaciones telefnicas ordinarias, pero generalmente necesitan o hardware adicional. Tambin se conoce como 10base-T. e A pesar de que a adir un nodo a una Ethernet gruesa es un poco lioso, eso no tirar abajo n a la red; sin embargo, para a adir un nodo en una instalacin de cable no, se debe interrumpir n o el servicio de red al menos por unos minutos ya que se debe cortar el cable para insertar el conector. La mayor de gente preere el Ethernet no porque es barato: las tarjetas de PC pueden a encontrarse por unos 50 dlares americanos (unas 5000 pesetas), o incluso menos, y el cable o est por unos centavos el metro. Sin embargo, para instalaciones de gran escala, es ms a a apropiado el Ethernet grueso. Por ejemplo, la Ethernet del Departamento de Matemticas a de la GMU utiliza Ethernet gruesa, de modo que no se interrumpe el trco cada vez que a se a ade un nodo a la red. n Uno de los inconvenientes de la tecnolog Ethernet es su limitada longitud de cable, a que imposibilita cualquier uso fuera de las LANs. Sin embargo, pueden enlazarse varios segmentos de Ethernet entre s utilizando repetidores, puentes o encaminadores 8 . Los repe tidores simplemente copian las se ales entre dos o ms segmentos, de forma que todos los n a segmentos juntos act an como si fuese una unica Ethernet. Debido a requisitos de tiempos, u no puede haber ms de cuatro repetidores entre cualquier par de nodos de la red. Los a puentes y encaminadores son ms sosticados, analizan los datos de entrada y los reenv a an solo si el nodo receptor no est en la Ethernet local. a Ethernet funciona como un sistema de bus, donde un nodo puede mandar paquetes (o
8

N. del T.: Respectivamente, repeaters, bridges y routers

1.3. Redes TCP/IP

tramas) de hasta 1500 bytes a otro nodo de la misma Ethernet. Cada nodo se direcciona por una direccin de seis bytes grabada en el rmware de su tarjeta Ethernet. Estas direcciones o se especican generalmente como una secuencia de n meros hexadecimales de dos d u gitos separados por dos puntos, como en aa:bb:cc:dd:ee:. Una trama enviada por una estacin la ven todas las estaciones conectadas, pero slo el o o nodo destinatario la toma y la procesa. Si dos estaciones intentan emitir al mismo tiempo, se produce una colisin, que se resuelve por parte de las dos estaciones abortando el env o o, y reintentandolo al cabo de un rato.

1.3.3

Otros tipos de Hardware

En instalaciones mayores, como la Universidad de Groucho Marx, Ethernet no es el unico tipo de red que puede utilizarse. En la Universidad de Groucho Marx cada LAN de un departamento est enlazada a la troncal del campus, que es un cable de bra optica funcioa nando en FDDI (Fiber Distributed Data Interface). FDDI emplea un enfoque totalmente diferente para transmitir datos, que bsicamente implica el env de un n mero de testigos, a o u de modo que una estacin slo pueda enviar una trama si captura un testigo. La principal o o ventaja de FDDI es una velocidad de hasta 100 Mbps, y una longitud de cable mxima de a hasta 200 km. Para enlaces de red de larga distancia, se utiliza frecuentemente un tipo distinto de equipos, que se basa en el estndar X.25. Muchas de las llamadas Redes P blicas de Datos, a u como Tymnet en Estados Unidos, Datex-P en Alemania, o Iberpac en Espa a, ofrecen este n servicio. X.25 requiere un hardware especial, llamado Ensamblador/Desensamblador de Paquetes o PAD. X.25 dene un conjunto de protocolos de red de derecho propio, pero sin embargo se usa frecuentemente para conectar redes bajo TCP/IP y otros protocolos. Ya que los paquetes IP no se pueden convertir de forma simple en X.25 (y viceversa), stos e deben ser encapsulados en paquetes X.25 y enviados a travs de la red. e Frecuentemente, los radioacionados usan sus propios equipos de radio para conectar sus ordenadores en red; esto se llama packet radio o ham radio. El protocolo utilizado por el packet radio es el llamado AX.25, que deriva del X.25. Otras tcnicas implican el uso de las lentas pero baratas l e neas serie para acceder bajo demanda. Esto requiere aun otros protocolos para la transmisin de paquetes, como SLIP o o PPP, que se describen ms adelante. a

1.3. Redes TCP/IP

1.3.4

El Protocolo IP (Internet Protocol)

Por supuesto, Ud. no querr que su red est limitada a una Ethernet. Idealmente, Ud. a e desear poder acceder a la red sin importarle ni el hardware del que dispone ni el n mero a u de subestaciones. Por ejemplo, en instalaciones grandes como la Universidad de Groucho Marx, habr varias Ethernets separadas, que han de conectarse de alguna manera. En la a GMU, el departamento de matemticas tiene dos Ethernets: una red de mquinas rpidas a a a para profesores y graduados, y otra con mquinas ms lentas para estudiantes. Ambas redes a a estn colgadas de la red troncal FDDI del campus. a Esta conexin se gestiona con un nodo dedicado, denominado pasarela, o gateway, que o maneja los paquetes entrantes y salientes copindolos entre las dos Ethernets y el cable de a bra optica. Por ejemplo, si se encuentra en el Departamento de Matemticas, y quiere a acceder a quark situada en la LAN del Departamento de F sicas desde su mquina Linux, a el software de red no puede mandar paquetes a quark directamente, porque no est en a la misma Ethernet. Por tanto, tiene que conar en la pasarela para que act e como reu transmisor. La pasarela (llammosla sophus) reenv entonces estos paquetes a su pasarela e a homloga niels del Departamento de F o sicas, usando la troncal, y por n niels los entrega a la mquina destino. El ujo de datos entre erdos y quark se muestra en la gura 1.1 a (con disculpas a Guy L. Steele). Este esquema de env de datos al nodo remoto se llama encaminamiento, y en este o contexto a los paquetes se les denomina a menudo datagramas. Para facilitar las cosas, el intercambio de datagramas est gobernado por un unico protocolo que es independiente a del hardware utilizado: IP, o Internet Protocol. En el cap tulo 2, trataremos el IP y el encaminamiento en mayor detalle. El principal benecio del IP es que convierte a redes f sicamente distintas en una red aparentemente homognea. A esto se le llama internetworking (interconexin de redes), y e o a la resultante meta-red se la denomina internet. Observe aqu la sutil diferencia entre una internet y La Internet. El ultimo es el nombre ocial de una internet global particular. Claro que el IP tambin necesita un esquema de direccionamiento independiente del e hardware. Esto se consigue asignando a cada nodo un n mero unico de 32 bits, que dene u su direccin IP. Una direccin IP se escribe normalmente como 4 n meros en decimal, uno o o u por cada divisin de 8 bits, y separados por puntos. Por ejemplo, quark podr tener una o a direccin IP 0x954C0C04, que se escribir como 149.76.12.4. A este formato se le llama o a notacin de puntos. o Se dar cuenta de que ahora tenemos tres tipos distintos de direcciones: primero, tea nemos el nombre del nodo, quark, despus tenemos las direcciones IP, y por n estn las e a direcciones hardware, como la direccin Ethernet de 6 bytes. De alguna forma todas ellas o deben relacionarse, de modo que cuando escriba rlogin quark, se le pueda pasar la direc-

1.3. Redes TCP/IP

10

Dorsal del Campus (FDDI)

2
niels sophus

Ethernet Fsicas

Ethernet Matemticas a

quark

erdos

Figura 1.1: Los tres pasos para enviar un datagrama desde erdos a quark.

1.3. Redes TCP/IP

11

cin IP al software de red; y cuando el nivel IP env datos a la Ethernet del Departamento o e de F sicas, de alg n modo tiene que encontrar a qu direccin Ethernet corresponde la u e o direccin IP. Lo cual no resulta trivial. o No entraremos en esto aqu sino que lo dejamos para el cap , tulo 2. De momento, es suciente con indicar que estos pasos para encontrar las direcciones se llaman resolucin o de nombres, para mapear nombres de nodo con direcciones IP, y resolucin de direcciones, o para hacer corresponder estas ultimas con direcciones hardware.

1.3.5

IP en L neas Serie, SLIP

Para l neas serie se usa frecuentemente el estndar de facto conocido como SLIP o Serial a Line IP (IP sobre l nea serie). Una modicacin del SLIP es el CSLIP, o SLIP Comprimido, o que realiza compresin de las cabeceras IP para aprovechar el bajo ancho de banda que o proporcionan los enlaces serie.9 Un protocolo serie distinto es el PPP, o Point-to-Point Protocol (Protocolo Punto a Punto). PPP dispone de muchas ms caracter a sticas que SLIP, incluyendo una fase de negociacin del enlace. Su principal ventaja sobre SLIP es, sin o embargo, que no se limita a transportar datagramas IP, sino que se dise o para permitir la n transmisin de cualquier tipo de datagramas. o

1.3.6

El Protocolo de Control de Transmisin, TCP o

Pero la historia no se acaba con el env de datagramas de un nodo a otro. Si desea acceder o a quark, necesita disponer de una conexin able entre su proceso rlogin en erdos y el o proceso de shell en quark. Para ello, la informacin enviada en uno y otro sentido debe o dividirse en paquetes en el origen, y ser reensamblada en un ujo de caracteres por el receptor. Esto que parece trivial, implica varias tareas complejas. Una cosa importante a saber sobre IP es que, por s solo, no es able. Suponga que diez personas de su Ethernet comienzan a transferirse la ultima versin de XFree86 del servidor o de FTP de GMU. La cantidad de trco generada por esto podr ser excesiva para que a a la maneje la pasarela, porque es demasiado lenta, y anda escasa de memoria. Si en ese momento Ud. env un paquete a quark, sophus podr tener agotado el espacio del buer a a durante un instante y por tanto no ser capaz de reenviarlo. IP resuelve este problema a simplemente descartndolo. El paquete se pierde irrevocablemente. Lo cual traslada la a responsabilidad de comprobar la integridad y exactitud de los datos a los nodos extremos, y su retransmisin en caso de error. o
SLIP est descrito en la norma RFC 1055. La compresin de cabeceras CSLIP, basada en l, se describe a o e en la RFC 1144.
9

1.3. Redes TCP/IP

12

De esto se encarga otro protocolo, TCP, o Transmission Control Protocol (Protocolo de Control de la Transmisin), que construye un servicio able por encima de IP. La propiedad o esencial de TCP es que usa IP para darle la impresin de una conexin simple entre los o o procesos en su equipo y la mquina remota, de modo que no tiene que preocuparse de cmo a o y sobre qu ruta viajan realmente sus datos. Una conexin TCP funciona bsicamente e o a como una tuber de doble sentido en la que ambos procesos pueden escribir y leer; puede a imaginarla como una conversacin telefnica. o o TCP identica los extremos de tal conexin por las direcciones IP de los dos nodos o implicados, y el n mero de los llamados puertos de cada nodo. Los puertos se pueden u ver como puntos de enganche para conexiones de red. Si vamos a explotar el ejemplo del telfono un poco ms, uno puede comparar las direcciones IP con los prejos de area (los e a n meros representar ciudades), y los n meros de puerto con los cdigos locales (n meros u an u o u que representan telfonos de personas concretas). e En el ejemplo de rlogin, la aplicacin cliente (rlogin) abre un puerto en erdos, y se o conecta al puerto 513 de quark, en el que se sabe que est escuchando el servidor rlogind. a Esto establece una conexin TCP. Usando esta conexin, rlogind realiza el procedimiento o o de autorizacin, y entonces muestra la shell. La entrada y salida estndar de la shell se o a redirigen a la conexin TCP, de modo que cualquier cosa que escriba a rlogin en su mquina o a ser pasado a travs del canal TCP y entregado a la shell como entrada estndar. a e a

1.3.7

El Protocolo de Datagramas de Usuario, UDP

Tambin es cierto que TCP no es el unico protocolo de usuario en redes TCP/IP. Aunque e adecuado para aplicaciones como rlogin, la sobrecarga que impone es prohibitiva para aplicaciones como NFS. Por contra, ste usa un protocolo derivado de TCP llamado UDP, o e User Datagram Protocol (Protocolo de Datagramas de Usuario). De igual modo que TCP, UDP tambin permite que una aplicacin contacte con un servicio en un puerto concreto e o de la mquina remota, pero no establece una conexin para ello. En cambio, puede usarlo a o para enviar paquetes sueltos al servicio destino de ah su nombre. Suponga que ha montado la jerarqu del directorio TEX del servidor de NFS central del a A departamento, galois, y desea ver un documento que describe como usar L TEX. Arranca su editor, y lee el chero completo. Sin embargo, le llevar demasiado tiempo establecer a una conexin TCP con galois, enviar el chero, y liberarla de nuevo. En cambio, se hace o una peticin a galois, que env el chero en un par de paquetes UDP, que es mucho ms o a a rpido. Sin embargo, UDP no se hizo para controlar la prdida o corrupcin de paquetes. a e o Es responsabilidad de la aplicacin en este caso NFS tener en cuenta esto. o

1.3. Redes TCP/IP

13

1.3.8

Ms sobre Puertos a

Los puertos se pueden ver como puntos de anclaje para conexiones de red. Si una aplicacin o quiere ofrecer un cierto servicio, se engancha a un puerto y espera a los clientes (a esto tambin se le llama escuchar en un puerto). Un cliente que quiera usar este servicio consigue e un puerto libre en su nodo local, y se conecta al puerto del servidor en el nodo remoto. Una propiedad importante de los puertos es que una vez que se ha establecido una conexin entre el cliente y el servidor, otra copia del servidor puede engancharse al puero to servidor y esperar a ms clientes. Esto permite, por ejemplo, varios accesos remotos a simultneos al mismo nodo, usando todos ellos el mismo puerto 513. TCP es capaz de a distinguir unas conexiones de otras, ya que todas ellas provienen de diferentes puertos o nodos. Por ejemplo, si accede dos veces a quark desde erdos, entonces el primer cliente rlogin usar el puerto local 1023, y el segundo usar el puerto n mero 1022; sin embargo, a a u ambos se conectarn al mismo puerto 513 de quark. a Este ejemplo muestra el uso de puertos como puntos de encuentro, donde un cliente contacta con un puerto espec co para obtener un servicio espec co. Para que un cliente sepa el n mero de puerto adecuado, se ha tenido que llegar a un acuerdo entre los admiu nistradores de los dos sistemas para asignar estos n meros. Para servicios ampliamente u usados, como rlogin, estos numeros tienen que administrarse centralmente. Esto lo realiza el IETF (o Internet Engineering Task Force), que regularmente publica un RFC (Request For Comment) denominado Assigned Numbers (N meros Asignados). Describe, entre otras u cosas, los n meros de puerto asignados a servicios reconocidos. Linux utiliza un chero que u mapea nombres con n meros, llamado /etc/services. Se describe en la seccin 9.3. u o Merece la pena indicar que aunque las conexiones TCP y UDP se basan en puertos, estos n meros no entran en conicto. Esto signica que el puerto TCP 513, por ejemplo, es u diferente del puerto UDP 513. De hecho, estos puertos sirven como puntos de acceso para dos servicios diferentes, como rlogin (TCP) y rwho (UDP).

1.3.9

La Librer de Sockets a

En sistemas operativos un x, el software que realiza todas las tareas y protocolos descritos anteriormente es generalmente parte del kernel, y por tanto tambin del de Linux. El e interface de programacin ms com n en el mundo un x es la Librer de Socket de Bero a u a keley, Berkeley Socket Library. Su nombre proviene de una analog popular que ve los a puertos como enchufes, y conectarse a un puerto como enchufarse. Proporciona la llamada bind(2) para especicar un nodo remoto, un protocolo de transporte, y un servicio al que un programa pueda conectarse o escuchar (usando connect(2), listen(2), y accept(2)). La librer de sockets, sin embargo, es algo ms general, ya que proporciona no solo una clase a a

1.4. Redes con Linux

14

de sockets basados en TCP/IP (los sockets AF INET ), sino tambin una clase que maneja e conexiones locales a la mquina (la clase AF UNIX ). Algunas implementaciones pueden a manejar tambin otras clases, como el protocolo XNS ((Xerox Networking System), o X.25. e En Linux, la librer de sockets es parte de la librer C estndar libc. Actualmente a a a slo soporta los sockets AF INET y AF UNIX, pero se hacen esfuerzos para incorporar el o soporte de los protocolos de red de Novell, de modo que se a adir eventualmente una o n an ms clases de sockets. a

1.4

Redes con Linux

Siendo el resultado del esfuerzo concentrado de programadores de todo el mundo, Linux no habr sido posible sin la red global. As que no sorprende que ya en los primeros pasos del a desarrollo, varias personas comenzaran a trabajar para dotarlo de capacidades de red. Casi desde el principio exist ya una implementacin de UUCP para Linux; y fue en el oto o a o n de 1992 cuando se comenz a desarrollar el soporte de TCP/IP, cuando Ross Biro y otros o crearon lo que ahora se conoce como Net-1. Despus de que Ross dejara el desarrollo activo en Mayo de 1993, Fred van Kempen e comenz a trabajar en una nueva implementacin, reescribiendo gran parte del cdigo. o o o Este esfuerzo continuado se conoce como Net-2. En el verano de 1992 sali la primera o versin p blica de Net-2d (como parte del kernel 0.99.10), y ha sido mantenida y ampliada o u por varias personas, muy especialmente por Alan Cox, dando lugar al Net-2Debugged. Tras una dura correccin y numerosas mejoras en el cdigo, cambi su nombre a Net-3 despus o o o e de que saliese Linux 1.0. Esta es la versin del cdigo de red que se incluye actualmente en o o las versiones ociales del kernel. Net-3 ofrece controladores de dispositivo para una amplia variedad de tarjetas Ethernet, as como SLIP (para enviar trco de red sobre l a neas serie), y PLIP (para l neas paralelo). Con Net-3, Linux tiene una implementacin de TCP/IP que se comporta muy bien en entoro nos de red de area local, mostrandose superior a algunos de los Unix comerciales para PCs. El desarrollo se mueve actualmente hacia la estabilidad necesaria para su funcionamiento able en nodos de Internet. Adems de estas facilidades, hay varios proyectos en marcha que mejorarn la versatilia a dad de Linux. Un controlador para PPP (el protocolo punto a punto, otra forma de enviar trco de red sobre l a neas serie) est en estado Beta actualmente, y otro controlador AX.25 a para ham radio est en estado Alfa. Alan Cox tambin ha implementado un controlador a e para el protocolo IPX de Novell, pero el esfuerzo para un paquete de red completo compatible con el de Novell se ha paralizado por el momento, debido a la negativa de Novell a facilitar la documentacin necesaria. Otro proyecto muy prometedor es samba, un servidor o

1.4. Redes con Linux

15

de NetBIOS gratis para Unix, escrito por Andrew Tridgell. 10

1.4.1

Diferentes Etapas de Desarrollo

Mientras tanto, Fred sigui desarrollando, continuando con el Net-2e, que dispone de un o dise o ms revisado de la capa de red. En el momento de escribir esto, Net-2e es aun n a software Beta. Lo ms notable sobre Net-2e es la incorporacin del DDI, el Device Driver a o Interface (Interface del controlador de dispositivo). DDI ofrece un acceso y un mtodo de e conguracin uniforme a todos los dispositivos y protocolos de red. o Otra implementacin ms de red TCP/IP es la realizada por Matthias Urlichs, quien o a escribi un controlador de RDSI para Linux y FreeBSD. Para ello, integr algo del cdigo o o o de red de BSD en el kernel de Linux. En un futuro previsible, sin embargo, Net-3 parece que llegar para quedarse. Alan traa baja actualmente en una implementacin del protocolo AX.25 usado por radioacionados. o Sin duda, la modularizacin, aun por desarrollar para el kernel, traer tambin nuevos imo a e pulsos al cdigo de red. Los mdulos le permiten a adir controladores al kernel en tiempo o o n de ejecucin. o Aunque todas estas diferentes implementaciones de red intentan dar el mismo servicio, hay grandes diferencias entre ellas a nivel de kernel y dispositivos. Adems, no podr cona a gurar un sistema con un kernel Net-2e con utilidades de Net-2d o Net-3, y viceversa. Esto slo se aplica a comandos que tienen mucho que ver con el funcionamiento interno del kero nel; las aplicaciones y los comandos de red comunes como rlogin o telnet se ejecutan en cualquiera de ellos. A pesar de todo, todas estas diferentes versiones de red no deben preocuparle. A no ser que est participando en el desarrollo activo, no tendr que preocuparse de qu versin e a e o del cdigo TCP/IP est utilizando. Las versiones ociales del kernel siempre estarn acomo a a pa adas de un conjunto de herramientas de red que son compatibles con el cdigo de red n o presente en el propio kernel.

1.4.2

Donde Conseguir el Cdigo o

La ultima versin del cdigo de red Linux se puede obtener mediante FTP annimo de varios o o o sitios. El servidor ocial del Net-3 es sunacm.swan.ac.uk, copiado en sunsite.unc.edu en el directorio system/Network/sunacm. El ultimo parche para el Net-2e y los binarios
NetBIOS es el protocolo en el que se basan las aplicaciones como lanmanager y Windows para Trabajo en Grupo.
10

1.5. Mantenimiento del Sistema

16

se encuentran disponibles en ftp.aris.com. El cdigo de red basado en BSD de Matthias o Urlichs se puede conseguir en ftp.ira.uka.de, directorio /pub/system/linux/netbsd. Se pueden encontrar los ultimos kernels en nic.funet., en el directorio /pub/OS/Linux/PEOPLE/Linus; Los nodos sunsite y tsx-11.mit.edu tienen copias de este directorio.

1.5

Mantenimiento del Sistema

En este libro, vamos a tratar principalmente los temas de instalacin y conguracin. Sin o o embargo la administracin es mucho ms importante despus de instalar un servicio, o a e tambin hay que mantenerlo funcionando. Para la mayor de ellos, slo se necesitar una e a o a peque a atencin, mientras que algunos, como el correo y las news, requieren realizar tareas n o rutinarias para mantener actualizado el sistema. Discutiremos estas tareas en los cap tulos nales. La tarea m nima de mantenimiento es comprobar regularmente el sistema y los cheros de registro de cada aplicacin buscando condiciones de error y eventos inusuales. Por o lo general, es posible hacer esto escribiendo un par de scripts de shell y ejecutndolos a peridicamente mediante el comando cron. La distribucin fuente de algunas aplicaciones o o importantes como smail o C News, ya contiene esos scripts. Slo tendr que retocarlos para o a adecuarlos a sus necesidades y preferencias. La salida de cualquiera de sus trabajos del cron se deber enviar a una cuenta de a administracin. Por defecto, muchas aplicaciones enviarn informes, estad o a sticas de uso, o res menes del chero de registro a la cuenta de root. Esto slo tiene sentido si accede u o como root frecuentemente; una idea mucho mejor es redirigir el correo del root a su cuenta personal estableciendo un alias de correo como se describe en el cap tulo 14. Por muy cuidadoso que sea congurando su mquina, la ley de Murphy garantiza que a surgir alg n problema en cualquier momento. Por lo tanto, el mantenimiento de un sisa u tema implica tambin estar disponible para quejas. Generalmente la gente espera que se e pueda contactar con el administrador del sistema al menos por correo electrnico (como o root), pero tambin hay otras direcciones que se usan con frecuencia para informar a la e persona responsable de un aspecto concreto del mantenimiento. Por ejemplo, las quejas sobre una conguracin de correo que funciona mal se dirigirn generalmente al postmaster o a (encargado del correo); y los problemas con el sistema de noticias pueden ser comunicados a newsmaster o usenet. El correo a hostmaster se deber redirigir a la persona encargada a de los servicios bsicos de red del nodo, y del servicio de nombres DNS si est corriendo un a a servidor de nombres.

1.5. Mantenimiento del Sistema

17

1.5.1

Seguridad del Sistema

Otro aspecto muy importante de la administracin de sistemas en un entorno de red es proo teger al sistema y a sus usuarios de intrusos. Los sistemas administrados sin ning n cuidado u ofrecen muchos huecos a los malintencionados: los ataques van desde averiguar las claves hasta acceder a nivel de Ethernet, y el da o causado puede ser desde mensajes de correo n falsos hasta prdida de datos o violacin de la privacidad de los usuarios. Mencionaremos e o algunos problemas concretos cuando discutamos el contexto en el que pueden ocurrir, y algunas defensas comunes contra ellos. Esta seccin comentar algunos ejemplos y tcnicas bsicas para pelearse con la segurio a e a dad del sistema. Por supuesto, los temas relatados no pueden tratar exhaustivamente todos los aspectos de seguridad con los que uno se puede encontrar; sirven meramente para ilustrar los problemas que pueden surgir. Por tanto, la lectura de un buen libro sobre seguridad es absolutamente obligada, especialmente en un sistema en red. Practical UNIX Security de Simon Garnkel (vease [Spaf93]) es una de las lecturas recomendadas. La seguridad del sistema comienza con una buena administracin del mismo. Esto incluo ye comprobar la propiedad y permisos de todos los cheros y directorios vitales, monitorizar el uso de cuentas privilegiadas, etc. El programa COPS, por ejemplo, comprobar su sistea ma de cheros y cheros de conguracin comunes en busca de permisos inusuales u otras o anomal as. Tambin es conveniente usar un sistema de claves que fuerce ciertas reglas en e las claves de los usuarios que las hagan dif ciles de adivinar. El sistema de claves ocultas (shadow password), por ejemplo, requiere que una clave tenga al menos cinco letras, y contienen tanto may sculas como min sculas y n meros. u u u Cuando un servicio se hace accesible a la red, aseg rese de darle el menor privilegio, u lo que quiere decir que no se permita hacer cosas que no son imprescindibles para que trabaje como se dise o. Por ejemplo, deber hacer sus programas con setuid root o alguna n a otra cuenta privilegiada slo si realmente lo necesitan. Tambin, si quiere usar un servicio o e slo para una aplicacin muy limitada, no dude en conguarla tan restrictivamente como su o o aplicacin especial lo permita. Por ejemplo, si quiere permitir a mquinas sin disco arrancar o a desde su mquina, debe facilitar el TFTP (Trivial File Transfer Service) de modo que pueda a obtener los cheros de conguracin bsicos del directorio /boot. Sin embargo, cuando se o a usa sin restringir, TFTP permite a cualquier usuario de cualquier lugar del mundo leer cualquier chero de su sistema. Si esto no es lo que desea, por qu no restringir el servicio e 11 TFTP al directorio /boot? Pensando en la misma l nea, podr restringir ciertos servicios a usuarios que acceden a desde ciertos nodos, digamos que slo para su red local. En el cap o tulo 9, presentaremos tcpd, que hace esto para una variedad de aplicaciones de red.
11

Volveremos sobre esto en el cap tulo 9.

1.6. Vistazo a los Siguientes Cap tulos

18

Otro punto importante es evitar software peligroso. Claro que cualquier software que utilice puede ser peligroso, porque el software puede tener fallos que algunos listos pueden explotar para acceder a su sistema. Cosas como sta ocurren, y no hay proteccin segura e o contra ello. Este problema afecta al software libre y a productos comerciales por igual. 12 Sin embargo, programas que requieren privilegio especial son inherentemente ms peligrosos a 13 Si instala un que otros, ya que un agujero de estos puede tener consecuencias drsticas. a programa setuid con propsitos de red, sea doblemente cuidadoso y no deje de leerse toda o la documentacin, de modo que no cree una brecha en la seguridad por accidente. o Nunca olvide que sus precauciones pueden fallar, por muy cuidadoso que haya sido. Por eso deber asegurarse de que detecta pronto a los intrusos. Comprobar los cheros a de actividad es un buen comienzo, pero el intruso probablemente sea bastante listo, y borrar cualquier huella que haya dejado. Sin embargo, hay herramientas como tripwire 14 a que permite comprobar cheros vitales del sistema para ver si sus contenidos o permisos han cambiado. tripwire realiza varios checksums 15 fuertes sobre estos cheros y los almacena en una base de datos. En las siguientes ejecuciones, se reeval an y comparan los checksums u con los almacenados para detectar cualquier modicacin. o

1.6

Vistazo a los Siguientes Cap tulos

Los siguientes cap tulos tendrn que ver con congurar Linux para redes TCP/IP, y con la a ejecucin de algunas aplicaciones importantes. Antes de que se manche las manos con la o edicin de cheros y similares, examinaremos IP algo ms de cerca en el cap o a tulo 2. Si ya sabe como funciona el encaminamiento IP, y cmo se realiza la resolucin de direcciones, o o quiz desee saltarse este cap a tulo. El cap tulo 3 trata los aspectos ms bsicos de conguracin, como construir un kernel y a a o congurar su tarjeta Ethernet. La conguracin de los puertos serie se relata en un cap o tulo aparte, ya que la discusin no se aplica slo a redes TCP/IP, sino que tambin es relevante o o e para UUCP. El cap tulo 5 le ayudar a congurar su mquina para redes TCP/IP. Contiene pasos a a de instalacin para nodos aislados (solamente con enlace local), y nodos conectados a una o Ethernet. Tambin le presentar unas pocas herramientas utiles que puede utilizar para e a
Ha habido sistemas un x comerciales, por los que hay que pagar un montn de dinero, que ven con o an un script de shell con setuid-root que permit a los usuarios obtener privilegios de root utilizando un a conocido truco. 13 En 1988, el gusano RTM llevo a gran parte de Internet a un colapso, en parte por explotar un agujero que hab en algunos programas sendmail. Este agujero ya ha sido reparado con creces. a 14 Escrita por Gene Kim y Gene Spaord. 15 N. del T.: Sumas de bytes con objeto de comprobar alguna modicacin no autorizada en el chero. o
12

1.6. Vistazo a los Siguientes Cap tulos

19

comprobar y retocar su conguracin. El siguiente cap o tulo expone cmo congurar la o resolucin de nombres, y explica cmo montar un servidor de nombres. o o Esto va seguido de dos cap tulos que tratan de la conguracin y uso de SLIP y PPP, o respectivamente. El cap tulo 7 explica cmo establecer conexiones SLIP, y da una referencia o detallada de dip, una herramienta que le permite automatizar la mayor de pasos necesarios. a El cap tulo 8 cubre PPP y pppd, el demonio que se necesita para ello. El cap tulo 9 da una corta introduccin a la instalacin de las aplicaciones de red ms o o a importantes, como rlogin, rcp, etc. Esto tambin abarca la gestin de los servicios por el e o inetd, y cmo puede restringir ciertos servicios de seguridad relevante a un grupo de nodos o de conanza. Los dos cap tulos siguientes hablan de NIS, el sistema de informacin de red (Network o Information System), y NFS, el sistema de cheros de red (Network File System). NIS es una herramienta util para distribuir informacin de administracin, como las claves de o o usuario, en red de area local. NFS le permite compartir sistemas de cheros entre varios nodos de su red. El cap tulo 12 le dar una amplia introduccin a la administracin del UUCP de Taylor, a o o una implementacin gratis del paquete UUCP. o El resto del libro ser un viaje guiado por temas como el correo electrnico y las Noticias a o de Usenet. El cap tulo 13 le conduce a los conceptos centrales del correo electrnico, como o qu aspecto tiene una direccin de correo, y cmo se las arregla el sistema de manejo de e o o correo para llevar su mensaje hasta el destinatario. Los cap tulos 14 y 15 cubren respectivamente la puesta en marcha de smail y sendmail, dos agentes de transporte de correo que puede utilizar en Linux. Este libro explica ambos, ya que smail es ms fcil de instalar para un principiante, mientras que sendmail es ms a a a exible. Los cap tulos 16 y 17 explican la forma en que se manejan las noticias en Usenet, y cmo o instalar y usar C News, un paquete de software popular para la gestin de las noticias de o Usenet. El cap tulo 18 trata brevemente de cmo instalar un demonio NNTP para ofrecer o el acceso a lectura de noticias para su red local. El cap tulo 19 muestra nalmente cmo o congurar y mantener varios lectores de noticias.

Cap tulo 2

Cuestiones sobre redes TCP/IP


Vamos a entrar en los detalles que deben tenerse en cuenta cuando se conecta una mquina a Linux a una red TCP/IP. De este modo, hablaremos de direcciones IP, nombres y cuestiones sobre el encaminamiento. Este cap tulo le ense ar la base con la que podr entender los n a a pasos para su conguracin particular, pasos que son cubiertos exhaustivamente en otros o cap tulos.

2.1

Interfaces de Red

Para ocultar la diversidad de hardware que puede usarse en una red, TCP/IP dene una interfaz a travs de la cual accedemos al hardware. Esta interfaz ofrece un conjunto de opee raciones idnticas en cualquier tipo de hardware y que bsicamente consisten en operaciones e a para enviar y recibir paquetes. Para cada dispositivo que quiera utilizarse para conectarse a la red, se mantendr en el a n cleo del sistema la correspondiente interfaz. Por ejemplo, las interfaces con Ethernet en u Linux son eth0 y eth1, mientras que las interfaces SLIP se llaman sl0, sl1, etctera. Estos e nombres de interfaz se deben conocer durante la conguracin de la red, cuando queramos o referirnos a un dispositivo hardware concreto. Para que podamos usarlo en una red TCP/IP, la interfaz deber tener asignada una a direccin IP que sirva como identicacin de sta ante los dems ordenadores de la red. Esta o o e a direccin es diferente del nombre de interfaz considerado anteriormente; puede realizarse o la siguiente analog la interfaz ser la puerta de su sistema, mientras que la direccin a: a o vendr a ser un n mero enmarcado y colgado de la puerta. a u Por supuesto, hay otros parmetros congurables para cada dispositivo, como el n mero a u mximo de datagramas que pueden ser procesados por el dispositivo, conocido como Unidad a 20

2.2. Direcciones IP

21

Mxima de Transferencia o MTU1 . Otros parmetros sern introducidos ms tarde. a a a a

2.2

Direcciones IP

Como se dijo en el cap tulo anterior, las direcciones utilizadas en el protocolo de red IP la forman n meros de 32 bits, y cada mquina debe tener una direccin propia. Si las mquinas u a o a se encuentran en una red TCP/IP que no se conecta a otras redes, dichas direcciones podrn a asignarse a las mquinas librememente. Sin embargo, si las mquinas se conectan a Internet, a a las direcciones de los ordenadores sern asignadas por una autoridad principal, el NIC 2 o a Centro de Informacin de la Red3 . o Para facilitar la lectura, las direcciones IP se dividen en cuatro n meros de 8 bits llau mados octetos. Por ejemplo, si la mquina quark.physics.groucho.edu tiene una direca cin IP 0x954C0C04, normalmente la escribiremos con la notacin de puntos divisorios, o o que separa los octetos, de esta forma: 149.76.12.4. Otra razn para usar esta notacin es que las direcciones IP se pueden dividir en el o o n mero de red y el n mero de nodo. Cuando pedimos al NIC un conjunto de direcciones, u u este organismo nos conceder, no una direccin para nuestra mquina, sino un rango de a o a direcciones vlidas, que en realidad es un n mero de red concreto (el n mero de nodo lo a u u pondremos nosotros, contando con todos esos nodos disponibles). Dependiendo del tama o de la red, la parte de la direccin correspondiente al nodo puede n o ser ms o menos grande. Para adaptarse a diferentes necesidades, se conceden diferentes a clases de redes, que denen diferentes maneras de dividir la direccin IP en parte de red y o parte del nodo. Clase A La clase A comprende redes desde 1.0.0.0 hasta 127.0.0.0. El n mero de u red est en el primer octeto, con lo que solo hay 127 redes de este tipo, a pero cada una tiene 24 bits disponibles para identicar a los nodos, lo que se corresponde con poder distinguir en la red unos 16 millones de nodos distintos. La clase B comprende redes desde 128.0.0.0 hasta 191.255.0.0; siendo el n mero de red de 16 bits (los dos primeros octetos). Esto permite 16320 u redes de 65024 nodos cada una.

Clase B

N. del T.: MTU son las siglas de Maximum Transfer Unit. N. del T.: Network Information Center 3 Frecuentemente, las direcciones IP le sern asignadas directamente por el proveedor que le conecte a a la red. No obstante, se puede contactar directamente con el NIC para obtener direcciones, escribiendo a hostmaster@internic.net.
2

2.3. Resolucin de direcciones o

22

Clase C

Las redes de clase C tienen el rango de direcciones desde 192.0.0.0 hasta 223.255.255.0, contando con tres octetos para identicar la red. Por lo tanto, hay cerca de 2 millones de redes de este tipo con un mximo de 254 a nodos cada una.

Clases D, E, y F Comprenden las direcciones entre 224.0.0.0 y 254.0.0.0, y estn reservadas a 4 . No especican, pues, ninguna para uso futuro, o con nes experimentales red de Internet. Volviendo al ejemplo del cap tulo anterior, veremos que en la direccin 149.76.12.4 de o la mquina quark, 12.4 es el identicativo del nodo dentro de la red de clase B 149.76.0.0. a Se puede observar que en la lista anterior no se consideraban todas las posibilidades en la parte que identica al nodo; concretamente, se exclu siempre el identicador 0 an y el 255. Estos dos identicadores se reservan para propsitos especiales. Una direccin o o con los bits del nodo a cero identica a la red, mientras que si tiene todos los bits a uno, identica a todos los nodos de la red (lo que se conoce como direccin de broadcast, lo que o indica que un mensaje enviado a esa direccin ser procesado por todos los nodos de la o a red). As pues, en nuestro ejemplo la direccin de la red ser 149.76.0.0 y la de broadcast, o a la 149.76.255.255. Adems, otras dos direcciones de red estn reservadas: la 0.0.0.0 y la 127.0.0.0. La a a primera se conoce como direccin de encaminamiento por defecto, y la segunda, como dio reccin de loopback. El encaminamiento por defecto se utiliza para saber a dnde enviar los o o datagramas por defecto, tema que abordaremos despus. e La red 127.0.0.0 se reserva para el trco local, dirigido al propio nodo. Normalmente, a se asigna la direccin 127.0.0.1 a un dispositivo de la mquina llamado interfaz de loopback 5 o a o de circuito cerrado. Cualquier paquete enviado a esa direccin ser recibido por el propio o a nodo. Esto permite probar aplicaciones de red con uno mismo, sin estar conectado a una red real. Otra aplicacin util es la de ejecutar aplicaciones de red que afectan slo al o o nodo local. Por ejemplo, muchos sistemas UUCP no tienen conexin IP pero ejecutan un o sistema de noticias INN. Para que esto funcione, INN utiliza la interfaz de loopback.

2.3

Resolucin de direcciones o

Ahora que conocemos qu son las direcciones IP, nos preguntaremos cmo se utilizan en e o una red Ethernet. Despus de todo, el protocolo Ethernet usa direcciones identicativas de e
4 5

Por ejemplo, se est utilizando la red 224.0.0.0 para la Internet multidestino o multicast a N. del T.: Tambin conocida como interfaz de lazo e

2.3. Resolucin de direcciones o

23

seis octetos que no tienen que ver con los n meros IP. u En efecto, se necesita un mecanismo de traduccin de direcciones IP a direcciones Eto hernet o f sicas. Esto se hace con el Protocolo de Resolucin de Direcciones o ARP 6 . ARP o no se limita a las redes Ethernet, sino que se extiende a otros tipos de redes como las de radio paquetes. La idea es la misma que tendr amos para localizar al se or X entre 150 n personas: preguntar por su nombre a todo el mundo; y el se or X nos responder. n a Cuando queremos localizar la direccin f o sica correspondiente a una direccin IP, hareo mos uso de una caracter stica de la red Ethernet, que es la posibilidad de enviar mensajes a escuchar por todos los nodos, o mensajes broadcast. En el mensaje ARP, que es de este tipo, se incluye la direccin IP cuyo propietario estamos buscando. El nodo que posea esa o direccin enviar una respuesta ARP al nodo llamante, con su direccin f o a o sica. Por supuesto, le preocupar saber cmo puede funcionar esto para localizar un nodo a o entre millones de Ethernets conectadas en el mundo. Esto se trata en la prxima seccin: o o se trata del encaminamiento. Sigamos hablando, de momento, sobre ARP. Una vez que se conoce la direccin f o sica del nodo, el que hizo la peticin guardar la informacin obtenida en una cache ARP, para o a o as no preguntar por lo mismo cada vez que env un paquete a ese nodo. Sin embargo, no e podemos guardar esa direccin para siempre ya que puede perder su validez (por ejemplo, o si cambiamos la tarjeta de red a los nodos por aver sus nuevas direcciones f a, sicas sern a distintas). Por ello, cada cierto tiempo, lo que hay en la cache ARP pierde su validez, obligando a realizar de nuevo la pregunta ARP. A veces, un nodo necesita tambin conocer su direccin IP a partir de su direccin e o o f sica. Por ejemplo, en terminales X o PCs sin disco, que cuando arrancan solo saben la direccin de su tarjeta pues est grabada en memoria no voltil. Para ello, se usa el o a a 7 : la peticin RARP la hace el nodo Protocolo de Resolucin Inversa de Direcciones o RARP o o cuando arranca, mediante mensaje broadcast, y es contestado por un servidor de direcciones que, a partir de la direccin f o sica, consulta su base de datos y conoce la direccin IP o 8 , que correspondiente. Existe adems otro protocolo, el BOOTP o protocolo de arranque a permite a las mquinas sin disco conocer cmo ponerse en marcha en la red. a o
N. del T.: Address Resolution Protocol N. del T.: Reverse Address Resolution Protocol 8 N. del T.: Del ingls Boot Protocol e
7 6

2.4. Encaminamiento IP

24

2.4
2.4.1
3

Encaminamiento IP
Redes IP

Cuando escribimos una carta a alguien, normalmente incluimos la direccin completa en el o sobre: pa provincia, cdigo postal, etc. De este modo el servicio de correos podr llevar s, o a la carta a su destino: un servicio la enviar al del pa que corresponda, y ste ultimo la a s e entregar al de la provincia o ciudad de destino. La ventaja de este esquema jerrquico es a a que el servicio postal del remitente apenas tiene que saber acerca del destino nal, sino solo a qu pa entregarla. e s Las redes IP se organizan de manera similar. Internet consta de varias redes, conocidas como sistemas autnomos y cada una realiza por su cuenta el encaminamiento interno o entre sus nodos miembro. Cuando un paquete tiene como destino un nodo de otra red, se entregar al encaminador correspondiente, sin preocuparse del destino nal del paquete. a

2.4.2

Subredes

La estructura de subredes se obtiene al dividir las direcciones IP en parte del nodo y parte de la red, como ya hemos explicado. Por defecto, la red de destino se deriva de la parte de red de la direccin IP. Es decir, los nodos con la misma direccin de red se encontrarn en o o a 9. la misma red TCP/IP Pero en una red puede interesar hacer una divisin en cientos de peque as redes, por o n ejemplo segmentos de Ethernet. Para ello se subdivide la red en subredes. Una subred tiene la responsabilidad de la entrega de los datagramas a un determinado rango de direcciones IP de la red en la que se encuentra. Como sucede con las clases A, B o C, se identica en la parte del n mero IP correspondiente a la red. Sin embargo, esa u parte incluir ahora algunos bits de la parte del nodo. Los bits que se interpretan como a direccin de subred se obtienen con la llamada mscara de red. Es un n mero de 32 bits o a u que especica una mscara para identicar los bits de la subred. a La red del campus de la Universidad de Groucho Marx es un ejemplo de red de clase B, poseedora de la red 149.76.0.0, con mscara 255.255.0.0. a Internamente, la red de la UGM se divide en peque as subredes, como las LAN de cada n departamento. Concretamente se divide en 254 subredes, desde la 149.76.1.0 hasta la 149.76.254.0. Por ejemplo, el Departamento de F sica Terica tendr asignada la subred o a 149.76.12.0. La dorsal del campus es en s mismo una subred, la 149.76.1.0. Las subredes
9

Los sistemas autnomos son algo ms generales. Pueden tener ms de una red IP. o a a

2.4. Encaminamiento IP

25

Parte de la Red

Parte del Nodo

149

76

12

149

76

12

Parte de la Red

Parte del Nodo

Figura 2.1: Divisin de una red clase B en subredes o comparten el m smo n mero de red, pero se usa el tercer octeto de sta para distinguir las u e distintas subredes. Por lo tanto, tendrn una mscara de subred igual a 255.255.255.0. a a En la gura 2.1 se muestra cmo el nodo quark (149.76.12.4) se ve de distinta forma o seg n se vea desde el punto de vista de la red de clase B, o desde el punto de vista de las u subredes. Ntese que la divisin en subredes es visible slo internamente a la red. Normalmente las o o o organiza el administrador de red para reejar diferentes ubicaciones geogrcas, distinguir a segmentos de red, o bien por motivos administrativos (departamentos, redes de alumnos, etc). Pero esta divisin es totalmente invisible desde fuera de la organizacin. o o

2.4.3

Pasarelas

La organizacin en subredes no solo se hace por motivos administrativos, tambin es cono e secuencia de cuestiones del hardware. Lo que ve un nodo en una red es limitado: slo ve o los nodos con los que directamente est conectado (por ejemplo, en la Ethernet), mientras e que a los dems los accede a travs de lo que se conoce como pasarela 10 , que no es mas que a e un nodo conectado a dos o ms redes f a sicas, congurado para pasar paquetes de una red a otra. Para reconocer si una direccin IP se encuentra en la red local f o sica, cada LAN debe tener una direccin de red IP diferente. Por ejemplo, las mquinas de la (sub)red 149.76.4.0 o a ser las que estn en la LAN del Departamento de Matemticas. Cuando se env un an a a a datagrama a la mquina quark, el software de red de erdos ve que su direccin de red a o es otra (149.76.12.4) con lo que sabe que tiene que enviar los datagramas a travs de la e pasarela (sophus por defecto). sophus se encuentra conectado a dos subredes: la del Departamento de Matemticas a
10

N. del T.: Del ingls gateway e

2.4. Encaminamiento IP

26

y la de la dorsal del campus, accediendo a cada una a travs de una interfaz diferente, e respectivamente eth0 y fddi0. Nos preguntaremos entonces, qu direccin IP debe tener la e o pasarela, una de la subred de Matemticas o bien una de la dorsal. a Pues bien, la respuesta es ambas. Cuando la pasarela comunique con un nodo de la LAN de Matemticas, usar la direccin 149.76.4.1, mientras que si lo hace con un nodo a a o de la dorsal, usar 149.76.1.4. a Es decir, la pasarela tiene tantas direcciones IP como conexiones a redes f sicas tenga. En denitiva, ste ser el esquema de interfaces, direcciones y mscara de sophus, nuestra e a a pasarela: interfaz eth0 fddi0 lo direccin o 149.76.4.1 149.76.1.4 127.0.0.1 mscara a 255.255.255.0 255.255.255.0 255.0.0.0

La ultima entrada describe el dispositivo loopback, que se coment anteriormente. o En la gura 2.2 se muestra una parte de la topolog de la red de la Universidad de a Groucho Marx (UGM). Los nodos que estn en dos subredes tendrn dos direcciones IP. a a

2.4.4

Tablas de Encaminamiento

Vamos ahora a centrarnos en cmo se selecciona una pasarela para entregar un datagrama o a una red remota. Hemos visto que erdos, cuando env un datagrama para quark, comprueba que la a direccin destino no se encuentra en la red local, por lo que lo env a la pasarela, sophus, o a quien bsicamente hace lo mismo: ve que quark no est en una de las redes a las que a a se conecta directamente y busca otra pasarela a quien entregarle el paquete. La eleccin o correcta es niels, la pasarela del Departamento de F sicas. sophus necesita informacin o para poder tomar estas decisiones. La informacin de encaminamiento que se usa en IP es bsicamente una tabla donde se o a relacionan (sub)redes y pasarelas. Adems, debe incluirse una entrada de encaminamiento a por defecto, que se asocia en la tabla a la red 0.0.0.0. Todos los paquetes que van a una red desconocida, se enviarn a la pasarela del encaminamiento por defecto. As pues, sta a e ser la tabla para sophus: a

2.4. Encaminamiento IP

27

Departamento de Matemticas a

Departamento de Fsica Terica o

4.23 gauss

4.17

12.4

4.0

erdos

12.0

quark

4.1 sophus 1.4 1.12 1.1 2.1 gcc1

12.1 niels

Dorsal del Campus

1.0

Centro de Clculo de la UGM a

Figura 2.2: Vista parcial de la topolog de la red de la UGM. a

2.4. Encaminamiento IP

28

Red 149.76.1.0 149.76.2.0 149.76.3.0 149.76.4.0 149.76.5.0 ... 0.0.0.0

Pasarela 149.76.1.2 149.76.1.3 149.76.1.5 ... 149.76.1.2

Interfaz fddi0 fddi0 fddi0 eth0 fddi0 ... fddi0

Las rutas a una red a la que sophus est directamente conectado no necesitan pasarela, e sino que los datagramas se entregan directamente. Esto se indica en la tabla anterior cuando en lugar de la pasarela aparece un -. Las tablas de encaminamiento pueden construirse de varias formas. Para redes peque as, ser ms eciente construirlas a mano usando el comando route de Linux (vase el n a a e cap tulo 5). Para redes ms grandes, las tablas se mantienen y modican automticamente a a mediante los demonios de encaminamiento. Estos corren en nodos centrales e intercambian informacin de encaminamiento entre ellos para tener en todo momento las rutas ptimas o o entre subredes. Dependiendo del tama o de la red, se utilizan distintos protocolos de encaminamienn to. Dentro de los sistemas autnomos (como la Universidad Groucho Marx) se utilizan o 11 . El ms utilizado es RIP12 o protocolo de informacin de los protocolos internos o IGP a o encaminamiento, que implementa el demonio routed de BSD. Para encaminamiento entre redes se usan protocolos EGP13 , como BGP. Se implementan en programas como gated de la Universidad de Cornell.14 .

2.4.5

Mtricas de Encaminamiento e

El encaminamiento dinmico basado en RIP elige la mejor ruta a un determinado nodo a o red a partir del n mero de saltos, es decir, las pasarelas que tiene que atravesar el u datagrama hasta llegar a su destino. La ruta ms corta ser la elegida, y si hay 16 o ms a a a saltos se descartar por exceso de distancia. a Para usar RIP tiene que ejecutar gated en todas las mquinas. Al arrancar, gated a comprueba cuntas interfaces estn activas. Si hay ms de una (sin contar la de loopback) a a a asumir que el nodo es una pasarela. Si no, entrar en modo pasivo, dedicndose a recibir a a a cualquier actualizacin RIP y cambiando sus tablas en consecuencia. o
N. del T.: Internal Gateway Protocol N. del T.: Routing Information Protocol 13 N del T.: External Gateway Protocol 14 gated tambin implementa RIP y en general se recomienda usarlo en lugar de routed e
12 11

2.5. Protocolo de Mensajes de Control de Internet (ICMP)

29

Para enviar a las dems pasarelas la informacin de su tabla local de rutas, gated cuenta a o la longitud de cada una a partir de una mtrica espec e ca (que es decidida por el administrador del sistema y debe reejar el coste de esa ruta). As la mtrica de una ruta a , e una subred con conexin directa ser siempre cero, mientras que una ruta que atraviese dos o a pasarelas deber tener un coste de dos. a

2.5

Protocolo de Mensajes de Control de Internet (ICMP)

IP tiene otro protocolo a n no mencionado. Es el protocolo de mensajes de control de u 15 , y lo usa el software de gestin de red para comunicar mensajes de error Internet o ICMP o entre nodos. Por ejemplo, si estamos en la mquina erdos y hacemos un telnet al puerto a 12345 del nodo quark y no hay procesos escuchando en ese puerto, recibir un mensaje a ICMP de puerto inalcanzable. Hay ms mensajes ICMP, muchos de ellos referidos a condiciones de error. Sin embargo, a hay uno interesante que es el de redireccin. Lo genera el mdulo de encaminamiento al o o detectar que otro nodo est usndolo como pasarela, a pesar de existir una ruta mucho a a ms corta. Por ejemplo, tras congurarse la tabla de encaminamiento de sophus, sta a e puede estar incompleta, conteniendo rutas a travs del encaminador por defecto gcc1. Por e lo tanto, los paquetes enviados inicialmente a quark irn por gcc1 en lugar de niels. a En este caso gcc1 noticar a sophus que est usando una ruta costosa y reenviar el a a a datagrama a niels, al mismo tiempo que devolver un mensaje ICMP de redireccin a a o sophus informndole de la nueva ruta. a Con lo visto, queda claro que se puede evitar tener que establecer las rutas a mano. Sin embargo, usar solo esquemas de encaminamiento dinmico no es siempre una buena a idea. La redireccin de ICMP y el protocolo RIP no incluyen mecanismos de vericacin o o de la autenticidad de los mensajes. Esto permite a los piratas corromper el trco de la a red mediante mensajes ICMP. Por ello, algunas versiones del cdigo de Linux tratan los o mensajes de redireccin que afectan a rutas de red como si fueran redirecciones de rutas a o nodos.

2.6
2.6.1
3

El sistema de nombres DNS


Resolucin de nombres o

Como se coment antes, el direccionamiento en TCP/IP se basa en n meros de 32 bits. o u Evidentemente, esos n meros no son fciles de recordar, mientras que s lo es el nombre que u a
15

N. del T.: Internet Control Message Protocol

2.6. El sistema de nombres DNS

30

se le asigna a cada mquina, como gauss o strange. Existe una aplicacin que es capaz de a o traducir nombres a direcciones IP, y es conocida como sistema de resolucin de nombres o o 16 . DNS Una aplicacin que desee encontrar la direccin IP correspondiente a una mquina de o o a la que conoce su nombre, no tiene que incluir rutinas para ello, ya que en las librer as estndares (libc) existen ya rutinas preparadas, como gethostbyname(3) o gethostbyaddr(3). a En otros sistemas se encuentran en otras librer distintas de la libc pero esto no sucede as en Linux. Al conjunto de rutinas que hacen estas tareas se les conoce como sistema de resolucin. o En una red peque a no es dif mantener una tabla /etc/hosts en cada mquina, y n cil a modicarla al agregar, eliminar o modicar nodos. Pero resulta complicado cuando hay muchas mquinas ya que, en principio, cada una necesita una copia de /etc/hosts. a Una solucin a esto es compartir sta y otras bases de datos con el NIS, o sistema o e 17 , desarrollado por Sun Microsystems y conocido tambin como de informacin de red o e pginas amarillas. En este caso, las bases de datos como la de /etc/hosts se mantienen en a un servidor NIS central y los clientes accedern a ellas de forma transparente al usuario. En a todo caso, esta solucin solo es aconsejable para redes peque as o medianas, ya que implican o n mantener un chero central /etc/hosts que puede crecer mucho, y luego distribuirlo entre los servidores NIS. En Internet, se comenz almacenando la informacin en un chero similar al hosts, o o mantenido por el NIC, y obtenido regularmente por los dems servidores. Cuando la red a creci comenzaron los problemas de sobrecarga de servidores, adems de que el NIC ten o a a que ocuparse de todos los nombres de los nodos de Internet, y evitar la duplicidad de los mismos. Por esto, en 1984 se dise o y adopt ocialmente un nuevo sistema, el DNS o sistema n o de nombres por dominios, dise ado por Paul Mockapetris. n

2.6.2

Introduccin al DNS o

DNS organiza los nombres de los nodos en una jerarqu de dominios. Un dominio es una a coleccin de nodos relacionados de alguna manera, como estar en la misma red o pertenecer a o una misma organizacin o pa Por ejemplo, las universidades norteamericanas se agrupan o s. en el dominio edu, y cada universidad mantiene un subdominio dentro de edu. Nuestro ejemplo, la Universidad de Groucho Marx, mantendr el dominio gmu.edu y las mquinas a a del departamento de Matemticas se encontrar dentro del dominio maths.gmu.edu. a an
16 17

N. del T.: Domain Name System N. del T.: Network Information System

2.6. El sistema de nombres DNS

31

De este modo el nombre completo de la mquina erdos ser erdos.maths.gmu.edu. El a a nombre completo se conoce como nombre totalmente cualicado o FQDN 18 , e identica a ese nodo en todo el mundo.
.

com

edu

net

groucho

maths

physics

gauss

erdos

sophus

theory

collider

quark

otto

niels

up

down

strange

Figura 2.3: Parte del espacio de dominios En la gura 2.3 se muestra una seccin del espacio de dominios. La entrada de la ra o z del arbol, que se indica con un punto, se puede denominar dominio raz, y agrupa al resto de los dominios. Para indicar que un nodo se expresa en notacin FQDN, se puede terminar o el nombre en un punto, indicando as que el nombre incluye al del dominio ra z. Dependiendo de su localizacin en la jerarqu un dominio puede ser de primer, segundo o a, o tercer nivel. Pueden existir otros niveles pero no son frecuentes. Por ejemplo, algunos dominios de primer nivel muy usuales son los siguientes:

edu

Aqu se incluyen casi todas las universidades o centros de investigacin nor o teamericanos. Compa u organizaciones con nes comerciales. nas Organizaciones no comerciales. Las redes UUCP privadas se encuentran aqu . Pasarelas y otros nodos administrativos de la red. Nodos militares norteamericanos.

com org

net mil
18

N. del T.: Fully Qualied Domain Name

2.6. El sistema de nombres DNS

32

gov uucp

Nodos del gobierno norteamericano. Ocialmente, todos los nombres de nodos UUCP sin dominio han sido movidos a este nuevo dominio, .uucp.

En general, los dominios anteriores pertenecen a redes norteamericanas. Algo especialmente cierto con los dominios mil o gov. Fuera de los Estados Unidos, existe un dominio de primer nivel para cada pa de dos s, letras seg n se dene en la norma ISO-3166. Finlandia, por ejemplo, usa el dominio ; u el dominio de corresponde a Alemania y el dominio es corresponde a Espa a. Cada pa n s organiza por debajo del primer nivel, los dominios de segundo nivel, de manera parecida a los americanos en algunos casos (por ejemplo, con dominios com.au o edu.au) o directamente por organizaciones, como sucede en Espa a (con dominios como upm.es para la Universidad n Politcnica de Madrid). e Por supuesto, un nodo dentro del dominio de un pa puede no estar f s sicamente en l. e El dominio unicamente identica al nodo como registrado en el NIC de ese pa As un s. , comerciante sueco puede tener una delegacin en Australia, y tener sus nodos australianos o registrados dentro del dominio de primer nivel sueco, se. Esta organizacin por dominios soluciona el problema de la unicidad de nombres. o Adems, los nombres totalmente cualicados no son dif a ciles de recordar. Pero DNS tiene otras ventajas: permite delegar la autoridad sobre un determinado subdominio a sus administradores. Por ejemplo, los subdominios maths y physics de la UGM son creados y mantenidos por el Centro de Clculo de dicha universidad. Y si el a mantenimiento del subdominio maths.gmu.edu fuese complicado (por n mero elevado de u nodos, existencia de subdominios internos, etc), el Centro de Clculo de la UGM puede a delegar la autoridad sobre ese subdominio al departamento de Matemticas. La delegacin a o de un subdominio implica el control total del mismo por parte de la organizacin en la o que se deleg, con total libertad para crear nuevos subdominios internos, asociar nombres o a nodos, etc. Para este n, el espacio de nombres se divide en zonas, cada una asociada a un dominio. Ntese que existe una diferencia entre zona y dominio: el dominio groucho.edu o incluye todos los nodos de la UGM, mientras que la zona groucho.edu incluye slo los o nodos que mantiene directamente el Centro de Clculo, ya que los nodos del subdominio a physics.groucho.edu pertenecen a la zona controlada por el Departamento de F sicas. En la gura 2.3 se marca el inicio de una zona con un peque o c n rculo a la derecha del nombre del dominio.

2.6. El sistema de nombres DNS

33

2.6.3

Bsquedas de nombres con DNS u

Trataremos aqu el problema de cmo resolver el nombre de un determinado nodo. o DNS es una gigantesca base de datos distribuida. Se implementa a travs de los llamados e servidores de nombres. Cada uno de stos mantiene la informacin de uno o varios dominios. e o Para cada zona hay al menos dos (o ms) servidores de nombres que mantienen informacin a o autorizada sobre los nodos de esa zona. Para obtener la direccin IP del nodo erdos, lo o que hay que hacer es contactar con el servidor de nombres de la zona para groucho.edu y ste nos devolver los datos pedidos. e a Esto parece fcil de decir pero dif de implementar pues nos preguntaremos cmo a cil o localizar al servidor de nombres de la UGM. Si su ordenador no implementa un adivino, le ayudar el DNS. Cuando su aplicacin desea encontrar informacin acerca de era o o dos, contactar en primer lugar con un servidor de nombres local, quien realizar una a a b squeda por otros servidores. Empieza por preguntar a un servidor de nombres ra por u z erdos.maths.groucho.edu. Al comprobar ste ultimo que l no mantiene ese dominio, e e contactar con los servidores del dominio edu y les preguntar las direcciones de los servia a dores de nombres, que retornar al servidor local. Ahora nuestro servidor preguntar a estos a a ultimos y stos a su vez irn haciendo llegar a nuestro servidor hasta los que mantienen la e a zona groucho.edu. Finalmente, se preguntar a uno de estos ultimos por el nodo erdos y a se enviar la respuesta al usuario. a Aparentemente esto provoca mucho trco, aunque en todo caso siempre ser menor que a a preguntar siempre a los mismos servidores que manten el chero HOSTS.TXT antes de an que se dise ara el DNS. n Sin embargo, a n se puede mejorar algo ms. La informacin obtenida en una b squeda u a o u puede que se necesite despus. Por ello, el servidor de nombres local la guardar en una e a cache local. As cuando volvamos a preguntar por un nodo de groucho.edu, el servidor , local ya podr dirigirse directamente el servidor de nombres de esa zona sin pasar por los a servidores ra z. Por supuesto, el servidor de nombres no puede mantener la cache eternamente; debe descartarla cada cierto tiempo. Este tiempo de expiracin se conoce como TTL 19 o tiempo o de vida. En la base de datos del DNS queda especicado este parmetro. a

2.6.4

Servidores de Nombres

Cuando un servidor de nombres mantiene toda la informacin acerca de una zona se le o llama autorizado para esa zona. Cualquier peticin para esa zona ser enviada a uno de o a
19

N. del T.: Time To Live

2.6. El sistema de nombres DNS

34

esos servidores maestros. Para tener una representacin coherente de la zona, sus servidores maestros deben estar o sincronizados. Para ello, a uno de ellos se le nombra servidor primario, que obtiene la informacin de zona a partir de unos cheros locales, y a los dems se les nombra servidores o a secundarios. Estos ultimos cargan la informacin de la zona pidindosela al primario cada o e cierto tiempo. Las razones para que existan varios servidores autorizados por cada zona son dos: repartir la carga de trabajo y lograr tolerancia a fallos. As si un servidor cae, todas las , peticiones se repartirn entre los dems servidores autorizados que haya. Por supuesto, a a esto no protege contra fallos internos o bugs del propio software DNS. Pero adems, tambin es posible tener servidores de nombres que no mantengan infora e macin autorizada de ning n dominio 20 . Este tipo de servidores es util pues, al mantener o u una cache con los nombres que resuelven, disminuye la carga de la red y de otros servidores.

2.6.5

La Base de Datos DNS

En las bases de datos del DNS se mantiene ms informacin que la necesaria para traducir a o nombres a direcciones IP. Dicho de otra forma, en DNS se mantienen distintos tipos de registros. La unidad de informacin en el DNS se conoce como registro de recurso o RR. Cada o registro tiene un tipo asociado a l, describiendo qu clase de datos contiene, y una clase e e indicando el tipo de red al que se aplica. Se trata de acomodarse a diferentes esquemas de red, aunque para direcciones IP se usa siempre la clase IN (INternet), pero hay otras como las redes Hesiod (que se usan en el MIT 21 ). El registro ms habitual es el de tipo A, que a relaciona un nombre totalmente cualicado con una direccin IP. o Un nodo puede admitir ms de un nombre. Pero slo uno de ellos ser ocial o a o a cannico, mientras que los dems son alias del primero. La diferencia es que el cannico se o a o dene en un registro de tipo A, mientras que los alias se denen en registros CNAME que apuntan al nombre cannico. o En un cap tulo posterior se trata todo esto en profundidad. Aqu nos vamos a limitar a ver algunos ejemplos. En la gura 2.4 se muestra una parte de la base de datos para la zona physics.groucho.edu. Adems de los registros A y CNAME, se puede ver que hay un registro especial al a
Aunque al menos deber tener informacin autorizada para el localhost y la resolucin inversa de a o o 127.0.0.1 21 Instituto Tecnolgico de Massachusets o
20

2.6. El sistema de nombres DNS

35

; ; Informacion Autorizada de physics.groucho.edu @ IN SOA ( niels.physics.groucho.edu. hostmaster.niels.physics.groucho.edu. 1034 ; serial no 360000 ; refresh 3600 ; retry 3600000 ; expire 3600 ; default ttl ) ; ; Servidores de nombres autorizados IN NS niels IN NS gauss.maths.groucho.edu. gauss.maths.groucho.edu. IN A 149.76.4.23 ; ; Fisica Teorica (subred 12) niels IN A 149.76.12.1 IN A 149.76.1.12 nameserver IN CNAME niels otto IN A 149.76.12.2 quark IN A 149.76.12.4 down IN A 149.76.12.5 strange IN A 149.76.12.6 ... ; Laboratorio Collider (subred 14) boson IN A 149.76.14.1 muon IN A 149.76.14.7 bogon IN A 149.76.14.12 ...

Figura 2.4: Extracto del chero named.hosts del departamento de F sicas.

2.6. El sistema de nombres DNS

36

principio del chero, con varias l neas. Se trata del registro SOA o de inicio de autoridad, que mantiene informacin general sobre el servidor de nombres. Por ejemplo, el tiempo de o vida por defecto de todos los registros que mantiene. Ntese que aquellos nombres que no nalicen en un punto sern interpretados como reo a lativos al dominio en cuestin. El nombre especial @ usado en el registro SOA representa o al dominio completo. Hemos visto que los servidores para el dominio groucho.edu deben tener conocimiento sobre los servidores de la zona physics para poder reenviarles las peticiones para sta. Esto e se suele incluir en los registros NS que incluyen el nombre de los servidores en notacin o FQDN, y un registro A que da la direccin IP para ese servidor. Vase, por ejemplo, la o e gura 2.5.
; ; Datos de zona para groucho.edu. @ IN SOA vax12.gcc.groucho.edu. hostmaster.vax12.gcc.groucho.edu. 233 ; serial no 360000 ; refresh 3600 ; retry 3600000 ; expire 3600 ; default ttl )

.... ; ; Registros de la zona. physics IN NS niels.physics.groucho.edu. IN NS gauss.maths.groucho.edu. niels.physics IN A 149.76.12.1 gauss.maths IN A 149.76.4.23 ...

Figura 2.5: Extracto del chero named.hosts de la UGM.

2.6.6

Resolucin inversa o

Adems de la obtencin de una direccin IP a partir del nombre, a veces interesa lo contrario: a o o conocida la direccin, obtener el nombre cannico. Esto se conoce como traduccin inversa o o o y la utilizan algunas aplicaciones de red para vericar la identidad del llamante. Cuando se usa un chero hosts, la resolucin inversa supone una simple b squeda en el mismo. o u En cambio, para el DNS se ha creado un dominio especial, el in-addr.arpa, que contiene

2.6. El sistema de nombres DNS

37

direcciones de los nodos en notacin de puntos divisorios invertida. Por ejemplo, a la o direccin IP 149.76.12.4 le corresponde el nombre 4.12.76.149.in-addr.arpa. El tipo de o registro para estos datos se llama PTR. Cuando se crea una zona de autoridad suele signicar que sus administradores tienen control total sobre cmo asignan sus nombres. Pero a una subred se le puede delegar un o subdominio. Esto sucede con la UGM, donde se delega la zona de F sicas (subdominio physics) al correspondiente Departamento. Las direcciones de resolucin inversa tambin se delegan. o e En la gura 2.6 se muestra el contenido del chero de zona para el servidor de la subred 12. Los registros importantes de delegacin se muestran en la gura 2.7. o
; ; Dominio 12.76.149.in-addr.arpa @ IN SOA ( niels.physics.groucho.edu. hostmaster.niels.physics.groucho.edu. 233 360000 3600 3600000 3600 ) 2 IN PTR otto.physics.groucho.edu. 4 IN PTR quark.physics.groucho.edu. 5 IN PTR down.physics.groucho.edu. 6 IN PTR strange.physics.groucho.edu.

Figura 2.6: Extracto del chero named.rev de la subred 12. Una importante consecuencia de esto es que las zonas slo pueden crearse como supero conjuntos de redes IP, y adems, las mscaras de red debern redondearse a nivel de octeto. a a a Es decir, las subredes de la UGM tendrn una mscara 255.255.255.0, y para cada subred a a deber existir una zona in-addr.arpa. Sin embargo, si la mscara fuese 255.255.255.128, a a la creacin de zonas para la subred 149.76.12.128 ser imposible ya que no hay forma o a de decir en DNS que el dominio 12.76.149.in-addr.arpa ha sido dividido en dos zonas de autoridad, con nombres de nodos desde el 1 al 127, y desde el 128 al 255, respectivamente.

2.6. El sistema de nombres DNS

38

; ; Dominio 76.149.in-addr.arpa domain @ IN SOA vax12.gcc.groucho.edu. hostmaster.vax12.gcc.groucho.edu. 233 360000 3600 3600000 3600 )

... ; subred 4: Departamento de Matematicas 1.4 IN PTR sophus.maths.groucho.edu. 17.4 IN PTR erdos.maths.groucho.edu. 23.4 IN PTR gauss.maths.groucho.edu. ... ; subred 12: Departamento de fisicas, zona separada 12 IN NS niels.physics.groucho.edu. IN NS gauss.maths.groucho.edu. niels.physics.groucho.edu. IN A 149.76.12.1 gauss.maths.groucho.edu. IN A 149.76.4.23 ...

Figura 2.7: Extracto del chero named.rev de la red 149.76.

Cap tulo 3

Conguracin del Hardware de o Red


3.1 Dispositivos, Controladores, y todo lo dems a

Hasta ahora, hemos estado hablando bastante sobre los interfaces de red pero sin explicar realmente qu es lo que pasa cuando el cdigo de red en el n cleo accede a una parte del e o u hardware. Para ello, y antes que nada, tenemos que hablar un poco sobre los conceptos de interface y controladores. Primero, evidentemente, est el hardware por s mismo; por ejemplo, una tarjeta Eta hernet es: una oblea de Silicio, atiborrada de montones de peque os chips con est pidos n u n meros en el lomo e insertada en una ranura de su PC. Esto es lo que por lo general u denominamos un dispositivo. Para poder utilizar la tarjeta Ethernet son necesarias una serie de funciones especiales denidas en el n cleo de Linux que sern capaces de entender la forma particular de acceso al u a dispositivo. Esta serie de funciones son los denominados controladores 1 del dispositivo. Por ejemplo, Linux tiene controladores de dispositivos para varias marcas de tarjetas Ethernet que son muy parecidas en su funcionamiento. Son conocidos como los Controladores de la Serie Becker, debido a su autor, Donald Becker. Otro ejemplo puede ser el del controlador D-Link, que gestiona un adaptador de bolsillo D-Link conectado a un puerto paralelo. Pero qu es lo que queremos decir con que un controlador gestione un dispositivo? e Volvamos a la tarjeta Ethernet que examinamos antes. El controlador tiene que ser capaz de comunicarse de alguna forma con la lgica interna de la tarjeta: tiene que enviar ordenes o y datos a la tarjeta, mientras que la tarjeta debe transmitir al controlador cualquier dato
1

N. del T.: Con frecuencia, la bibliograf especializada en espaol tambin los llama manejadores a n e

39

3.1. Dispositivos, Controladores, y todo lo dems a

40

Cdigo de Red en N cleo o u

Interfaz Red

eth0

eth2

eth1

eth3

Manejador Dispositivo

Manejador SMC

Manejador 3Com

Hardware

Figura 3.1: Relacin entre controladores, interfaces, y hardware. o recibido. En un PC, esta comunicacin tiene lugar a travs de un area de memoria de E/S que se o e corresponde con los registros internos de la tarjeta y a la inversa. Todas las ordenes y datos que el n cleo env a la tarjeta tienen que ir a travs de estos registros. El area de memoria u a e de E/S de la tarjeta se describe por lo general mediante su direccin base o de comienzo. o Direcciones habituales para tarjetas Ethernet son la 0x300 o la 0x360. Normalmente no hay que preocuparse por factores de hardware como las direcciones base, ya que en tiempo de arranque el n cleo hace un intento para detectar la localizacin u o 2 , que implica que el n cleo lea varias de la tarjeta. Esto se denomina autovericacin o u posiciones de memoria y compare los datos le dos con los que deber haber si existiese a una tarjeta Ethernet instalada all De todas maneras, puede haber tarjetas Ethernet que . no sean detectadas automticamente; esto ocurre a veces con tarjetas Ethernet baratas a que no son rplicas exactas de tarjetas estndar de otros fabricantes. Por otro lado, el e a n cleo intentar detectar un unico dispositivo Ethernet al arrancar. Si se utiliza ms de u a a una tarjeta, hay que indicrselo expl a citamente al n cleo. u Otro de los parmetros que se pueden decir de forma expl a cita al n cleo es el canal de u peticin de interrupcin. Los componentes hardware normalmente interrumpen al n cleo o o u cuando tienen necesidad de que ste se ocupe de ellos, por ejemplo cuando han llegado datos, e
2

N. del T.: Del ingls autoprobing e

3.1. Dispositivos, Controladores, y todo lo dems a

41

o se presenta una condicin especial. En un PC, las interrupciones pueden comunicarse o mediante uno de los 15 canales de interrupcin numerados 0,1 y del 3 al 15. El n mero de o u interrupcin asignado a un componente hardware se denomina su nmero de peticin de o u o 34 . interrupcin, o IRQ o Como se explicaba en el cap tulo 2, el n cleo accede a un dispositivo mediante lo que u llambamos una interfaz. Las interfaces ofrecen un conjunto abstracto de funciones que a es el mismo para todo tipo de hardware. Por ejemplo, con funciones para enviar o recibir datagramas. Los interfaces se identican mediante nombres. Estos nombres se denen internamente en el n cleo, y no son cheros de dispositivos del directorio /dev. Nombres t u picos para los interfaces Ethernet son eth0, eth1, etc. La asignacin de interfaces a los dispositivos o depende normalmente del orden en el que los dispositivos son congurados; por ejemplo la primera tarjeta Ethernet instalada ser eth0, la siguiente eth1, y as sucesivamente. Una a excepcin a esta regla son las interfaces SLIP y algunas otras, que son asignadas de forma o dinmica; es decir, al establecerse una conexin SLIP, se asigna una interface al puerto serie. a o El grco de la gura 3.1 muestra la relacin entre el hardware, los controladores de a o dispositivos e interfaces. Al arrancar, el n cleo muestra cada dispositivo que es detectado, y qu interfaces se u e estn instalando. Lo siguiente es un extracto de la pantalla de arranque: a
. . This processor honours the WP bit even when in supervisor mode. Good. Floppy drive(s): fd0 is 1.44M Swansea University Computer Society NET3.010 IP Protocols: ICMP, UDP, TCP PPP: version 0.2.1 (4 channels) OPTIMIZE FLAGS TCP compresssion code copyright 1989 Regents of the University of California PPP line discipline registered. SLIP: version 0.7.5 (4 channels) CSLIP: code copyright 1989 Regents of the University of California dl0: D-Link DE-600 pocket adapter, Ethernet Address: 00:80:C8:71:76:95 Checking 386/387 coupling... Ok, fpu using exception 16 error reporting. Linux version 1.1.11 (okir@monad) #3 Sat May 7 14:57:18 MET DST 1994

Esta indica que el n cleo ha sido compilado para TCP/IP, y se incluyen los controladores u para SLIP, CSLIP, y PPP. La tercera l nea antes del nal indica que se ha detectado un
Los IRQs 2 y 9 son los mismos debido a que el PC tiene dos procesadores de interrupciones en cascada con 8 IRQs cada uno; el procesador secundario est conectado al IRQ 2 del primario. a 4 N. del T.: Del ingls Interrupt ReQuest e
3

3.2. Conguracin del n cleo o u

42

adaptador de bolsillo D-Link e instalado como el interface dl0. Si usted tiene un tipo diferente de tarjeta Ethernet, el n cleo mostrar normalmente una l u a nea comenzando por eth0, seguida por el tipo de tarjeta detectado. Si usted tiene una tarjeta Ethernet instalada pero no se reeja en ning n mensaje, signica que el n cleo es incapaz de detectar su tarjeta u u adecuadamente. Trataremos este problema posteriormente.

3.2

Conguracin del n cleo o u

La mayor de las versiones de Linux se distribuyen con discos de arranque que funcionan en a casi cualquier PC. Esto signica que el n cleo tiene en esos discos todo tipo de controladores u congurados que rara vez utilizar, pero que ocupan un espacio innecesario en el sistema a de memoria ya que con el n cleo no puede hacerse swapping. Por tanto ser conveniente u a crear un n cleo propio, incluyendo slo los controladores que realmente necesite o desee. u o Al trabajar con un sistema Linux, le deber resultar familiar el proceso de construccin a o del n cleo. Los conceptos bsicos de cmo realizarlo se explican en la Gu de Matt Welsh: u a o a Instalacin y primeros pasos, que tambin forma parte de la serie de Documentacin del o e o Proyecto Linux. Por tanto, en esta seccin solo trataremos las opciones de conguracin o o que afectan a la red. Al ejecutar make config, se le preguntar por una serie de conguracines generales, a o por ejemplo si desea emulacin matemtica del n cleo o no, etc. Una de las preguntas o a u ser si desea o no soporte para red TCP/IP. Si desea un n cleo capaz de trabajar con la a u red debe ser contestada con y (SI).

3.2.1

Opciones del ncleo de Linux 1.0 o Versiones Posteriores u

Tras completar la parte de opciones generales, se pasar a congurar distintos componentes: a controladores SCSI, etc. La siguiente lista contiene las preguntas que son sobre el soporte de red. Ntese que el conjunto de opciones de conguracin est en constante cambio debido o o a al continuo desarrollo. Una lista t pica de opciones que ofrecen los n cleos de versiones u entre la 1.0 y la 1.1 se parece a sta (los comentarios estn en cursiva): e a
* * Network device support * Network device support? (CONFIG ETHERCARDS) [y]

A pesar de que se muestre la contestacin por defecto entre corchetes, la pregunta debe o ser contestada con y si desea utilizar cualquier tipo de dispositivos de red, no importa si

3.2. Conguracin del n cleo o u

43

son Ethernet, SLIP o PPP. Si contesta a la pregunta con y, se activar automticamente a a el soporte para dispositivos tipo Ethernet. El soporte para otros tipos de controladores de red debe ser activado por separado:
SLIP (serial line) support? (CONFIG SLIP) [y] SLIP compressed headers (SL COMPRESSED) [y] PPP (point-to-point protocol) support (CONFIG PPP) [y] PLIP (parallel port) support (CONFIG PLIP) [n]

Estas preguntas conciernen a los diversos protocolos de nivel de enlace soportados por Linux. SLIP permite transportar datagramas IP a travs de l e neas serie. La opcin de o compresin de cabecera proporciona el soporte CSLIP, una tcnica que reduce las cabeceras o e TCP/IP a tres bytes. Tenga en cuenta que esta opcin del n cleo no activa automticamente o u a el soporte para CSLIP, solamente proporciona las funciones necesarias del n cleo para ello. u PPP es otro de los protocolos para enviar trco a la red a travs de lineas serie. Es a e mucho ms exible que SLIP, y no se limita a IP, sino que, una vez que se implemente, a tambin soportar IPX. Ya que el soporte para PPP ha sido incluido hace poco, esto opcin e a o puede no aparecer en su n cleo. u PLIP proporciona una forma de enviar datagramas IP a travs de un puerto paralelo. Se e utiliza generalmente para comunicar dos PCs bajo DOS. El resto de las preguntas son acerca de tarjetas Ethernet de diversos fabricantes. A medida que se desarrollan ms controladores, a la lista de preguntas se hace mayor. Si desea construir un n cleo que quiera utilizar en varias u mquinas, tiene la posibilidad de activar ms de un controlador. a a
NE2000/NE1000 support (CONFIG EN2000) [y] WD80*3 support (CONFIG WD80x3) [n] SMC Ultra support (CONFIG ULTRA) [n] 3c501 support (CONFIG EL1) [n] 3c503 support (CONFIG EL3) [n] HP PCLAN support (CONFIG HPLAN) [n] AT1500 and EN2100 (LANCE and PCnet-ISA) support (CONFIG LANCE) [n] AT1700 support (CONFIG AT1700) [n] DEPCA support (CONFIG DEPCA) [n] D-Link DE600 pocket adaptor support (CONFIG DE600) [y] AT-LAN-TEC/RealTek pocket adaptor support (CONFIG ATP) [n] * * CD-ROM drivers * ...

Por ultimo, en la seccin del sistema de cheros, el script de conguracin le preguntar, o o a entre otras cosas, si desea soporte para NFS (networking lesystem), el sistema de cheros

3.2. Conguracin del n cleo o u

44

en red. NFS le permitir exportar sistemas de cheros a diversos nodos, de forma que a parezcan como si estuviesen en un disco duro normal conectado a la mquina local. a
NFS filesystem support (CONFIG NFS FS) [y]

3.2.2

Opciones del ncleo de Linux 1.1.14 y Versiones Posteriores u

Comenzando con Linux 1.1.14, que inclu una versin alpha de IPX, el proceso de cona o guracin vari muy poco. Ahora las opciones de carcter general preguntan si se desea o o a soporte de red en general. A continuacin aparecen un par de preguntas adicionales. o
* * Networking options * TCP/IP networking (CONFIG INET) [y]

Para utilizar protocolos TCP/IP, se debe contestar con y. Pero aunque conteste de forma negativa todav ser capaz de poder compilar el n cleo para que soporte IPX. a a u
IP fordwarding/gatewaying (CONFIG IP FORWARD) [n]

Tendr que activar esta opcin si su sistema act a como un puente entre dos redes Ethernet, a o u o entre una red Ethernet y un enlace SLIP, etc. Aunque no cuesta nada activar esta opcin o por defecto, podr querer desactivarla para congurar la mquina como un cortafuegos 5 . a a Los cortafuegos son nodos que se conectan a una o ms redes, pero no encaminan trco a a entre ellos. Se utilizan normalmente para proporcionar a los usuarios en una empresa acceso a Internet con un riesgo m nimo para la red interna. A los usuarios se les permitir acceder al a cortafuegos y utilizar servicios Internet, pero las mquinas de la empresa estarn protegidas a a de ataques externos ya que cualquier conexin entrante no puede cruzar el cortafuegos. o
* * (it is safe to leave these untouched) PC/TCP compatibility mode (CONFIG INET PCTCP) [n]

Esta opcin evita incompatibilidades con algunas versiones de PC/TCP, una implemeno tacin comercial de TCP/IP basada en DOS para PCs. Si activa esta opcin, todav o o a ser capaz de comunicarse con mquinas un x normales, pero bajar el rendimiento cuana a a do el enlace sea lento.
5

N. del T.: Del ingls rewall e

3.2. Conguracin del n cleo o u

45

Reverse ARP (CONFIG INET RARP) [n]

Esta funcin activa RARP, Protocolo de Resolucin de Direcciones Inverso. RARP se o o utiliza en clientes sin disco y terminales X para pedir su direccin IP al arrancar. Deber aco a tivar RARP slo cuando planee que su mquina sea un servidor para este tipo de clientes. o a El ultimo paquete de utilidades de red (net-0.32d) contiene una peque a utilidad llamada n rarp que permite a adir direcciones de nodos a una cache RARP. n
Assume subnets are local (CONFIG INET SNARL) [y]

Al mandar datos TCP, el n cleo tiene que dividir los env en diversos paquetes antes de u os pasrselo al nivel IP. Para mquinas accesibles en redes locales como Ethernet , se utilizarn a a a paquetes ms grandes que para mquinas cuyos datos son enviados a travs de enlaces de a a e larga distancia.6 Si no se activa la opcin SNARL, el n cleo asumir como locales slo a o u a o aquellas redes con las que en ese momento tenga una interface. Si revisa la red de clase B en la Universidad Groucho Marx, toda la red de clase B es local pero la mayor de los a hosts mantienen una interface con slo una o dos subredes. Si se activa la opcin SNARL, o o el n cleo asumir todas las subredes como locales y utilizar paquetes grandes cuando se u a a comunique con todos los nodos del campus. Si no desea utilizar tama os de paquete peque os para enviar datos a mquinas esn n a pec cas (si, por ejemplo, utiliza un enlace SLIP para la transmisin de datos), tendr que o a hacerlo mediante la opcin mtu del encaminamiento (route), que se describe brevemente al o nal de este cap tulo.
Disable NAGLE algorithm (normally enabled) (CONFIG TCP NAGLE OFF) [n]

La frmula de Nagle es un mtodo heur o e stico para evitar enviar paquetes IP particularmente peque os, tambin denominados pequegramas 7 . Los pequegramas son utilizados n e normalmente por herramientas de red interactivas que transmiten pulsaciones unicas de teclas, como telnet o rsh (remote shell). Los pequegramas pueden llegar a ser particularmente inecientes bajo enlaces de banda estrecha como SLIP. El algoritmo de Nagle intenta evitarlos reteniendo por poco tiempo la transmisin de datos TCP en algunas circustancias. o Es recomendable desactivar el algoritmo de Nagle si tiene graves problemas por paquetes perdidos.
The IPX protocol (CONFIG IPX) [n]
6 7

Esto evita la fragmentacin por enlaces que tienen un tamao de paquete mximo muy pequeo. o n a n N. del T.: Del ings tinygrams e

3.3. Una Visita a los Dispositivos de Red de Linux

46

Activa la capacidad de soportar el protocolo IPX, el protocolo de transporte utilizado por Novell Networking; que sigue todav bajo desarrollo, y a n no es realmente util. Una a u ventaja de esto ser cuando alg n d se intercambien datos con utilidades IPX basadas a u a en DOS, y encaminen trco entre redes Novell mediante un enlace PPP. El soporte para a protocolos de alto nivel de redes Novell no esta todav a la vista, ya que las especicaciones a de estos protocolos tienen un coste econmico muy elevado. o A partir de la versin 1.1.16 del n cleo, Linux soporta otro tipo de controlador: el o u controlador vac (dummy). La siguiente pregunta aparece hacia el comienzo de la seccin o o de controladores de dispositivos:
Dummy net driver support (CONFIG DUMMY) [y]

El controlador vac no hace realmente gran cosa, pero es bastante util en mquinas o a aisladas o conectadas mediante SLIP. Es bsicamente un interface en bucle cerrado. La a razn de tener este tipo de interface es que en las mquinas que se conectan con SLIP o a que no disponen de Ethernet, es necesario tener un interface que continuamente maneje las direcciones IP. Esto se discute ms profundamente en las seccin La Interface Comod del a o n cap tulo 5.

3.3

Una Visita a los Dispositivos de Red de Linux

El n cleo de Linux soporta controladores de hardware de diversas clases. En esta seccin se u o introducen brevemente las familias de controladores disponibles, y los nombres de interfaces que utilizan. Hay un conjunto de nombres estndares para los interfaces en Linux, que se enumeran a a continuacin. La mayor de los controladores soportan ms de un interface, en cuyo caso o a a las interfaces se numeran de la forma: eth0, eth1, etc. lo Interface de bucle local o de lazo. Se utiliza para realizar pruebas, y para un par de aplicaciones de red. Funciona como un circuito cerrado en el que cualquier datagrama que se le pase como parmetro ser inmediatamente a a devuelto a la capa de red del sistema. En el n cleo siempre hay un dispositivo u de bucle local, no tiene sentido tener ms de uno. a Tarjeta Ethernet n -sima. Este es el nombre de interface genrico para la e mayor de las tarjetas Ethernet. a Esta interface accede a un adaptador de bolsillo D-Link DE-600, otro dispositivo Ethernet. Tiene un carcter un poco especial ya que esta conectado a a

ethn

dln

3.4. Instalacin Ethernet o

47

un puerto paralelo. sln Interface SLIP n -sima. Las interfaces SLIP se asocian a l neas serie en el orden en el que son instalados; por ejemplo, sl0, ser la primera l a nea serie en ser congurada para SLIP, etc. El n cleo soporta hasta cuatro interfaces u SLIP. Interface PPP n -sima. Como ocurre con las interfaces SLIP, una interface PPP se asocia a una l nea serie una vez que se ha convertido a modo PPP. De momento, se pueden soportar hasta cuatro interfaces de este tipo. Interface PLIP n -sima. PLIP transporta datagramas IP en l neas paralelas. Se soportan hasta tres interfaces PLIP. El controlador PLIP asigna las interfaces en tiempo de arranque, y se mapean a los puertos paralelos.

pppn

plipn

Para otros controladores de interfaces que puedan ser a adidos en el futuro como RDSI n (Red Digital de Servicios Integrados) o AX.25, se utilizarn otros nombres. Controladores a como el de IPX (protocolo Novell de red) o AX.25 (utilizado por radio acionados) estn a ya en desarrollo, aunque todav en versiones preliminares (alpha). a En las secciones siguientes se discutirn los detalles de uso de los controladores anteriores. a

3.4

Instalacin Ethernet o

El cdigo de red actual de Linux soporta diversas marcas de tarjetas Ethernet. Donald o Becker (becker@cesdis.gsfc.nasa.gov) desarroll la mayor de los controladores, una o a familia para tarjetas basadas en el chip 8390 de National Semiconductor; y se la conoce como los la Serie de Controladores Becker. Tambin hay un par de productos de D-Link, e entre ellos el adaptador de bolsillo D-Link que permite acceder a una red Ethernet a travs e de un puerto paralelo. Un controlador para este dispositivo fu programado por Bjrn e Ekwall (bjorn@blox.se), mientras que el controlador DEPCA lo program David C. Davies o (davies@wanton.lkg.dec.com).

3.4.1

Cableado de Ethernet

Si usted est instalando una red Ethernet por primera vez en su vida, son necesarios ala gunos comentarios respecto al cableado. Ethernet tiene una caracter sticas muy especiales de cableado. El cable debe terminar en ambos extremos con una resistencia de 50 Ohm, y no debe tener ninguna ramicacin (p.e. tres cables conectados en estrella). Si est utilio a zando cable coaxial no con conectores BNC en forma de T, estos conectores deben estar

3.4. Instalacin Ethernet o

48

directamente conectados al de la tarjeta; no debe insertarse el cable directamente. Si se conecta a una instalacin con cable grueso, debe conectar el ordenador utilizando o un transceptor (a veces denominado Unidad de Conexin Ethernet). Puede conectarse el o transceptor a un puerto AUI de 25 pines de la tarjeta mediante un cable protegido.

3.4.2

Tarjetas Compatibles

Una lista completa de las tarjetas compatibles est disponible en los Ethernet HOWTOs, a publicada mensualmente en comp.os.linux.announce por Paul Gortmaker. 8 Inclu mos una lista de las tarjetas ms conocidas y utilizadas que soporta Linux. La a lista actual del HOWTO es casi tres veces mayor. Aunque encuentre su tarjeta en esta lista, b squela tambin en el HOWTO; a veces hay detalles importantes sobre el modo de u e operacin de estas tarjetas. Por ejemplo, algunas tarjetas Ethernet basadas en DMA que o utilizan los mismos canales DMA que los que el controlador de SCSI Adaptec 1542 usa por defecto. Si no se cambia el canal de DMA en alguno de las dos, la tarjeta Ethernet podr a escribir paquetes de datos en posiciones arbitrarias del disco duro. 3Com EtherLink Se soporta 3Com EtherLink tanto 3c503 como 3c503/16, adems de las vera siones 3c507 y 3c509. La 3c501 tambin se soporta aunque es demasiado e lenta como para merecer la pena. Novell Eagle Se soportan Novell Eagle NE1000 y NE2000, as como diversas clnicas. o Tambin soporta las NE1500 y NE2100. e

Western Digital/SMC Hay que incluir entre las compatibles a la Western Digital/SMC WD8003 y WD8013 (igualmente la SMC Elite y la SMC Elite Plus), y tambin la nueva e SMC Elite 16 Ultra. Hewlett Packard Las HP 27252, HP 27247B, y la HP J2405A. D-Link El adaptador de bolsillo D-Link DE-600, DE-100, DE-200 y DE-220-T. Tambin hay un kit de ampliacin para la DE-650-T, denominado tarjeta PCMe o 9. CIA DEC DE200 (32K/64K), DE202, DE100, y DEPCA rev E.

DEC
8 9

Paul puede ser localizado en gpg109@rsphysse.anu.edu.au. Puede conseguirse junto con otro material relacionado con Laptop en tsx-11.mit.edu, en packages/laptops.

3.4. Instalacin Ethernet o

49

Allied Teliesis AT1500 y AT1700. Para utilizar cualquiera de estas tarjetas con Linux, debe utilizar un n cleo precompilado u de una de las distribuciones de Linux. Estas versiones incluyen normalmente controladores para todas las tarjetas. Aunque a la larga ser mejor confeccionarse su propio n cleo y a u compilarlo slo con los controladores que se necesiten en ese momento. o

3.4.3

Autovericacin de red Ethernet o

En tiempo de arranque, el cdigo para Ethernet intentar localizar la tarjeta y determinar o a su tipo. Se comprueban por orden las siguientes direcciones:

Tarjeta WD/SMC SMC 16 Ultra 3c501 3c503 NEx000 HP DEPCA

Vericacin de las direcciones o 0x300, 0x280, 0x380, 0x240 0x300, 0x280 0x280 0x300, 0x310, 0x330, 0x350, 0x250, 0x280, 0x2a0, 0x2e0 0x300, 0x280, 0x320, 0x340, 0x360 0x300, 0x320, 0x340, 0x280, 0x2C0 0x200, 0x240 0x300, 0x320, 0x340, 0x360

El cdigo de autovericacin tiene dos limitaciones. Una de ellas es que no reconoce o o todas las tarjetas correctamente. Esto ocurre frecuentemente con algunas de las tarjetas clnicas ms baratas, pero tambin con algunas tarjetas WD80x3. La otra limitacin es que o a e o el n cleo no vericar ms de una tarjeta por defecto. Esto se hace as porque se asume u a a que se desea tener control sobre qu tarjeta es asignada a qu interface. e e Si est utilizando ms de una tarjeta, o si el proceso de autovericacin no consigue a a o detectar su tarjeta, debe indicar explic tamente al n cleo el nombre y direccin base de la u o tarjeta. Con Net-3, se tienen dos posibilidades diferentes ante un caso de fallo en la autovericacin. Una de ellas es cambiar o a adir informacin en el chero del cdigo fuente del o n o o n cleo drivers/net/Space.c, que contiene toda la informacin sobre controladores. Slo es u o o recomendable en el caso de que el codigo de red le sea familiar. Una forma mucho mejor es proporcionar al n cleo esta informacin en tiempo de arranque. Si utiliza lilo al arrancar el u o sistema, puede pasarle parmetros al n cleo, especicndolos mediante la opcin append en a u a o

3.4. Instalacin Ethernet o

50

el chero lilo.conf. Por ejemplo, para informar al n cleo sobre la existencia de un dispositivo u Ethernet, puede pasarse el siguiente parmetro: a
ether=irq , dir base , param1 ,param2 ,nombre

Los cuatro primeros argumentos son numricos, mientras que el ultimo es el nombre de e un dispositivo. Todos los valores numricos son opcionales: si se omiten o se dejan a cero, e el n cleo intentar averiguar su valor mediante autovericacin, o utilizando un valor por u a o defecto. El primer parmetro indica el IRQ asignado al dispositivo. Por defecto, el n cleo intena u tar autodetectar el canal IRQ del dispositivo. El controlador 3c503 tiene un funcionamiento a especial seleccionando un canal libre IRQ de la lista 5, 9, 3, 4, y congura la tarjeta para utilizar esta l nea. El parmetro dir base dene la direccin base de E/S de la tarjeta; si vale cero, el a o n cleo probar con las direcciones de la lista anterior. u a Los dos parmetros restantes pueden ser utilizados de forma diferente por controladores a diferentes. Para tarjetas de memoria compartida como la WD80x3, especican la direccin o de comienzo y de n del area de memoria compartida. Otras tarjetas utilizan normalmente el param1 para seleccionar el nivel de informacin de depuracin para el usuario. Los o o valores del 1 al 7 denotan niveles de detalle en la informacin, mientras que el valor 8 o desactiva todos; por defecto se toma el valor cero. El controlador 3c503 utiliza el param2 para seleccionar el transceptor interno (por defecto) o un transceptor externo (valor 1). El primero utiliza un conector de tarjeta tipo BNC; el ultimo utiliza su puerto AUI. Si se tienen dos tarjetas Ethernet, puede hacerse que Linux autodetecte una de ellas, y pasar los parmetros de la segunda mediante lilo. Sin embargo, hay que estar seguros a de que el controlador accidentalmente no encuentra la segunda tarjeta primero, en cuyo caso la otra no se detectar. Esto se consigue pasando la opcin reserve a lilo, que indica a o expl citamente al n cleo que no verique el espacio de E/S reservado para la segunda tarjeta. u Por ejemplo, para hacer que Linux instale una segunda tarjeta Ethernet en la direccin o (0x300) como eth1, hay que pasarle los siguientes parmetros al n cleo: a u
reserve=0x300,32 ether=0,0x300,eth1

La opcin reserve asegura que ning n controlador accede al espacio de E/S del n cleo o u u cuando verica alg n dispositivo. Tambin pueden utilizarse los parmetros del n cleo para u e a u evitar realizar la vericacin para eth0 : o

3.5. El controlador PLIP

51

reserve=0x340,32 ether=0,340,eth0

Para evitar completamente la fase de autovericacin, se especica el argumento o dir base a -1:
ether=0,-1,eth0

3.5

El controlador PLIP

PLIP permite trabajar con una Lnea Paralela IP, y es una forma barata de interconexin o cuando se desea conectar solamente dos mquinas. Utiliza un puerto paralelo y un cable a especial, alcanzando velocidades entre 10kBps a 20 kBps. PLIP fue desarrollado en principio por Crynwr, Inc. Su dise o es ms que ingenioso (o, n a si se preere, ms propio de un hacker): durante muchos a os, los puertos paralelos del PC a n se utilizaban como puertos para impresora unidireccionales; es decir las ocho l neas de datos podr ser utilizados solamente para env desde el PC al dispositivo perifrico, pero no an os e en sentido inverso. El PLIP saca un mejor provecho utilizando la l nea de estado n mero u cinco del puerto, que se limita a transferir todos los datos simplemente como nibbles (es decir medio byte). Hoy en d estos puertos unidireccionales no son muy utilizados. Por a, tanto tambin hay una extensin denominada modo 1 que utiliza la interface completa de e o 8 bits. Actualmente Linux slo soporta el modo 0. A diferencia de versiones ms antiguas del o a cdigo que maneja el PLIP, ahora se intenta hacerlo compatible con las implementaciones o PLIP de Cynwr, y para el controlador PLIP en el NCSA telnet 10 . Para conectar dos mquinas utilizando PLIP, se necesita un cable especial que se vende en algunas tiendas a como cable de Impresora Nula (Null Printer) o Turbo Laplink. Es posible fabricarlo de forma casera, en el Apndice A se indica cmo. e o El controlador PLIP para Linux es el trabajo de un n mero casi incontable de personas. u Actualmente esta mantenido por Niibe Yutaka. Si se compila en el n cleo, congura una u interface de red para cada posible puerto de impresora, con plip0 correspondiendo al puerto paralelo lp0, plip1 correspondiendo a lp1, etc. El mapeado del interface a los puertos es ahora mismo el siguiente:
El NCSA telnet es un programa bastante conocido para DOS que trabaja con TCP/IP en redes Ethernet o PLIP, y soporta telnet, FTP y algunas otras aplicaciones sencillas.
10

3.6. Los controladores SLIP y PPP

52

Interface plip0 plip1 plip2

Puerto E/S 0x3BC 0x378 0x278

IRQ 7 7 5

Si se tiene congurado el puerto de la impresora de forma diferente, hay que cambiar estos valores en el chero drivers/net/Space.c del cdigo fuente de Linux, y construir un o nuevo n cleo. u Este mapeado no implica que no se puedan utilizar los puertos paralelos de forma normal. Slo son accedidos por el controlador de PLIP cuando el interface correspondiente ha sido o congurado como activo.

3.6

Los controladores SLIP y PPP

SLIP (Serial Line IP, Protocolo Internet en L nea Serie), y PPP (Point-to-Point Protocol, Protocolo Punto-a-Punto) son protocolos muy utilizados para enviar paquetes IP a travs e de enlaces serie. Varias instituciones ofrecen acceso telefnico SLIP y PPP a mquinas o a conectadas a Internet: esto proporciona conectividad IP a los particulares (algo que de otra forma ser dif de conseguir debido al elevado coste de otros tipos de conexiones). a cil Para trabajar con SLIP o PPP, no son necesarias modicaciones en el hardware; puede utilizarse cualquier puerto serie. Ya que es espec ca la conguracin del puerto serie para o interconexin TCP/IP, se le dedicar un cap o a tulo aparte. Para ms informacin consultar a o el cap tulo 4.

Cap tulo 4

Conguracin del Software Serie o


Casi todo el mundo dispone de un PC, pero no siempre hay dinero para gastarlo en un enlace Internet T1. Para conseguir su dosis diaria de noticias y mensajes, mucha gente depende de enlaces SLIP, redes UUCP y BBS, que usan las redes telefnicas p blicas. o u Este cap tulo pretende ayudar a todas aquellas personas que dependen del mdem o para mantener sus comunicaciones. Sin embargo, hay muchos detalles que no podemos abordar, como por ejemplo cmo congurar el mdem para marcar. Todos esos teo o mas estn contemplados en el Serial HOWTO 1 de Greg Hankins2 , que es enviado a a comp.os.linux.announce regularmente.

4.1

Software de Comunicaciones con Mdem o

Existen varios paquetes de comunicaciones disponibles para Linux. Muchos de ellos son emuladores de terminal, que permiten a un usuario conectarse a otro ordenador como si estuviera frente a uno de sus terminales. El emulador de terminal tradicional en sistemas un x es kermit. Sin embargo resulta algo duro de usar. Hay programas disponibles ms a cmodos que soportan agenda telefnica y guiones para llamar y entrar en ordenadores o o remotos. Uno de estos es el minicom, muy parecido a los primitivos programas emuladores de terminal a los que tan acostumbrados estn los usuarios de DOS. Hoy tambin existen a e paquetes de comunicaciones bajo X-11 como por ejemplo seyon. Adems, existe un buen n mero de programas para instalar BBS bajo Linux disponibles a u para aquellos que quieran ofrecer dicho servicio. Varios de esos paquetes se encuentran en sunsite.unc.edu, en el directorio /pub/Linux/system/Network.
1 2

N. del T.: Disponible en castellano como SERIE-COMO, en http://lucas.ctv.es/ disponible en gregh@cc.gatech.edu.

53

4.2. Introduccin a los Dispositivos Serie o

54

Aparte de los programas de terminal, hay tambin software que usa la l e nea serie de forma no interactiva para el transporte de datos hasta su ordenador. Normalmente se invierte bastante ms tiempo en visitar un BBS leyendo toda su informacin en la que a o podemos incluir las noticias y los mensajes, que el que se necesita empleando este tipo de software. La unica desventaja es que se requiere ms espacio de disco debido a la a transferencia de cierta cantidad de informacin que al usuario le resulta in til, y que de o u forma interactiva no se tranmitir a. El compendio de esta clase de software de comunicaciones es UUCP. Este es un conjunto de programas que copian cheros de una mquina a otra, ejecutan programas en un ordenaa dor remoto, etc. Se utiliza frecuentemente para transferir mensajes y noticias (news) entre redes privadas. El paquete UUCP de Ian Taylor, que funciona bajo Linux, ser descrito en a el cap tulo 12 de este libro. Otro tipo de software de comunicaciones no interactivo es el utilizado en Fidonet, para el que tambin podemos encontrar algunos paquetes de software, e como ifmail. SLIP, el protocolo de Internet para l nea serie, est de alg n modo a medio camino: pera u mite tanto el uso interactivo como el no interactivo. Mucha gente usa SLIP para telefonear a la red de su campus o alg n otro tipo de servidor p blico y poder ejecutar sesiones FTP, u u etc. Sin embargo, SLIP tambin puede ser usado en conexiones permanentes o semipermae nentes para uniones de LAN a LAN, aunque esto ultimo slo resulta interesante utilizando o RDSI u otros enlaces de ancho de banda mayor.

4.2

Introduccin a los Dispositivos Serie o

Los dispositivos proporcionados por un n cleo un x para el acceso a dispositivos serie u son llamados normalmente ttys. Esta es una abreviatura de Teletype TM , quienes eran unos de los mayores productores de terminales en los primeros d de Unix. El trmino se usa as e actualmente para cualquier terminal de texto. En este cap tulo, lo usaremos exclusivamente para referirnos a los dispositivos del n cleo. u Linux distingue tres clases de ttys: consolas (virtuales), pseudo terminales (similares a las tuber de doble v usadas por aplicaciones tales como X11), y dispositivos serie. as a, Estos ultimos son considerados tambin como ttys, porque permiten sesiones interactivas e sobre conexiones serie, ya sea ste un terminal conectado por cable o un ordenador remoto e a travs de la l e nea telefnica. o Los ttys tienen cierto n mero de parmetros congurables mediante la llamada al sistema u a ioctl(2). Muchos de estos parmetros sirven unicamente con dispositivos serie, ya que son a stos los que necesitan una mayor exibilidad para poder manejar la gran variedad de tipos e de conexin que son capaces de controlar. o

4.3. Acceso a los Dispositivos Serie

55

Entre los parmetros ms destacados para la l a a nea se encuentran la velocidad y la paridad. Pero hay tambin elementos para la conversin de caracteres entre may scula y e o u min scula, de retorno de carro, de avance de l u nea, etc. El controlador de tty puede tambin soportar varias lneas dedicadas, las cuales hacen que el controlador de dispositivo se e comporte de forma diferente. Por ejemplo, el controlador de SLIP para Linux est implea mentado como si fuera una l nea dedicada. Existe algo de ambig edad sobre cmo medir la velocidad de la l u o nea. El trmino correcto e es bit rate, el cual est relacionado con la velocidad de transferencia de la l a nea medida en bits por segundo (bps para abreviar). Algunas veces se oye a la gente referirse a ella como velocidad en baudios, lo cual no es muy correcto, ya que estos dos trminos no son sinnimos. e o La velocidad en baudios se reere a una caracter stica f sica de algunos dispositivos serie. En concreto, a la velocidad de reloj a la que se transmiten los impulsos. En cambio, el bit rate, indica el estado actual de una conexin serie existente entre dos puntos, a saber, el o n mero medio de bits transferidos por segundo. Es importante saber que estos dos valores u suelen ser diferentes, ya que la mayor de los dispositivos codican ms de un bit por cada a a impulso elctrico. e

4.3

Acceso a los Dispositivos Serie

Como ocurre con todos los dispositivos de un sistema un x, se accede a los puertos serie a travs de cheros especiales de dispositivo, localizados en el directorio /dev. Cada puerto e tiene su chero de dispositivo. Hay dos tipos de cheros de dispositivos relacionados con los controladores serie. Dependiendo del chero por el que se acceda el dispositivo se comportar de forma diferente. a El primer tipo se utiliza para las llamadas entrantes y tiene un nmero principal de u 3 igual a 4. Sus cheros son nombrados ttyS0, ttyS1, etc. El segundo tipo se dispositivo utiliza para llamadas de salida a travs de un puerto. Sus cheros son llamados cua0, etc y e tienen un n mero principal de dispositivo igual a 5. u Los nmeros secundarios4 son los mismos para los dos tipos. Si tiene su mdem en uno u o cualquiera de los puertos COM1 a COM4, su n mero secundario ser el n mero de puerto u a u COM ms 63. Si su conguracin es diferente a sta, como sucede, por ejemplo, en placas a o e que soportan m ltiples l u neas serie, debe en tal caso buscar en el documento COMO-SERIE o SERIAL-HOWTO. Asumamos que su modem est en el COM2. En este caso su n mero secundario ser 65, a u a y su n mero principal ser 5 para realizar llamadas. Deber existir por ello, un dispositivo u a a
3 4

N. del T.: Del ingls major number e N. del T.: Del ingls minor number e

4.4. Hardware Serie

56

cua1 que tuviera dichos n meros de dispositivo. A continuacin vemos una lista de ttys u o serie del directorio /dev. Las columnas 5 y 6 muestran los n meros principal y secundario u respectivamente.
$ ls -l /dev/cua* crw-rw-rw1 root crw-rw-rw1 root crw-rw-rw1 root crw-rw-rw1 root

root root root root

5, 5, 5, 5,

64 65 66 67

Nov Nov Oct Mar

30 19:31 /dev/cua0 30 22:08 /dev/cua1 28 11:56 /dev/cua2 19 1992 /dev/cua3

Si no existiesen tales dispositivos, entonces tendr que crearlos. Para ello, convirtase a e en superusuario y teclee comandos como el siguiente:
# mknod -m 666 /dev/cua1 c 5 65 # chown root.root /dev/cua1

Hay quien propone la creacin de un enlace simblico del puerto serie en dnde tenga su o o o mdem, a un chero /dev/modem. De esta forma no es necesario recordar el poco intuitivo o cua1. Sin embargo, podemos encontrarnos con problemas si empleamos el nombre real del dispositivo en unos programas y el simblico en otros. La explicacin es que las aplicaciones o o en Unix usan un convenio de cheros cerrojo para indicar que cierto dispositivo est siendo a utilizado por un proceso y evitar as que pueda ser utilizado por otro al mismo tiempo. Por convenio, el nombre del chero de bloqueo para cua1, es LCK..cua1. El uso de distintos cheros de dispositivo para el mismo puerto implica que se puede producir ausencia de exclusin mutua en el acceso al puerto si un programa usa un nombre de dispositivo y otro o programa usa el otro nombre (el simblico). Esto puede provocar un acceso simultneo de o a ambos procesos al mismo puerto y que, por tanto, ninguna de ellas funcione correctamente.

4.4

Hardware Serie

Linux soporta, hoy por hoy, una amplia variedad de placas serie que utilizan el estndar a RS-232. RS-232 es, en la actualidad, el estndar ms com n para comunicaciones serie a a u en el mundo del PC. Este usa un conjunto de circuitos tanto para transmitir simples bits as como para establecer sincronizacin. Pueden utilizarse cables adicionales para se alar o n la presencia de una portadora y para el control de ujo. Aunque el control de ujo por hardware es opcional, resulta muy util ya que permite a cada una de las dos estaciones se alar cundo est lista para recibir ms datos, o si la otra n a a a estacin debe parar hasta que el receptor procese los datos de entrada. Las l o neas usadas

4.4. Hardware Serie

57

para esto son las llamadas Clear to Send, despejado para env (CTS) y Ready to Send, ios, listo para enviar (RTS), respectivamente. En ordenadores PC, el interfaz RS-232 es controlado generalmente por un chip UART descendiente del chip 16450 de National Semiconductor, o bien de una nueva versin de o 5 . Algunas marcas (principalmente los modems internos equipados con ste: el NSC 16550A e un chip Rockwell) tambin usan chips completamente diferentes que han sido programados e para comportarse como si fueran un 16550. La principal diferencia entre los 16450 y los 16550 estriba en que el primero tiene un buer de 1 byte mientras que el segundo lo tiene de 16 bytes. Esto hace al 16450 vlido para a velocidades mximas de 9600 baudios, mientras que para velocidades superiores se requiere a un chip compatible con el 16550. Adems de estos chips, Linux tambin soporta el chip a e 8250, que era el chip UART original de los PC de IBM. En la conguracin por defecto, el n cleo comprueba los cuatro puertos serie estndar, o u a es decir, del COM1 hasta el COM4, a los que les asignar los numeros secundarios desde el a 64 hasta el 67, tal y como se ha descrito anteriormente. Si desea congurar su puerto serie adecuadamente, tendr que incluir la orden setserial a de Ted Tso en el chero de comandos rc.serial, el cual es invocado durante el arranque del sistema desde el chero de comandos de inicializacin /etc/rc. Este primer chero, usa o setserial para congurar los dispositivos serie del n cleo. Un t u pico chero de comandos rc.serial tendr el siguiente aspecto: a
# /etc/rc.serial - guion de configuracion de la linea serie # # Deteccion de interrupciones libres /sbin/setserial -W /dev/cua* # Configurar dispositivos /sbin/setserial /dev/cua0 /sbin/setserial /dev/cua1 /sbin/setserial /dev/cua2 /sbin/setserial /dev/cua3 serie auto_irq auto_irq auto_irq auto_irq

skip_test skip_test skip_test skip_test

autoconfig autoconfig autoconfig autoconfig

# Muestra la configuracion de dispositivos serie /sbin/setserial -bg /dev/cua*

Si desea conocer ms sobre los parmetros de setserial, por favor, consulte la documentacin a a o que acompa a al programa. n
5

Hab tambin un NSC 16550, pero este chip FIFO nunca funcion realmente. a e o

4.4. Hardware Serie

58

Si su tarjeta serie no es detectada, o la orden setserial -bg muestra una conguracin o incorrecta, tendr que forzar la conguracin suministrando expl a o citamente los valores correctos. Est comprobado que los modems internos equipados con los chips de Rockwell a experimentan este tipo de problemas. As por ejemplo, si se obtiene que el chip de una , UART es el NSC 16450, siendo en cambio del tipo NSC 16550, se tendr que cambiar la a conguracin del puerto implicado de la forma siguiente: o
/sbin/setserial /dev/cua1 auto irq skip test autoconfig uart 16550

Existen opciones similares para forzar los puertos COM, direcciones base, y conguracin o de peticin de interrupcin (IRQ). Por favor consulte la pgina del manual de setserial(8) o o a para ms informacin. a o Si su mdem soporta control de ujo mediante hardware, aseg rese de activarlo. Soro u prendentemente, la mayor de los programas de comunicaciones no intentan activarlo por a defecto. Por ello, lo mejor es realizarlo manualmente, y la mejor forma de lograrlo es incluirlo en el chero de comandos rc.serial usando la orden stty:
$ stty crtscts < /dev/cua1

Para comprobar si el control de ujo por hardware est activo use: a


$ stty -a < /dev/cua1

Este comando le devolver el estado de todos los parmetros de dicho dispositivo. Un a a parmetro precedido con un signo menos como en -crtscts signica que ha sido desactia vado.

Cap tulo 5

Conguracin del Protocolo o TCP/IP


En este cap tulo recorreremos todos los pasos necesarios para congurar el protocolo TCP/IP en su mquina. Empezando en la asignacin de direcciones IP, iremos describiendo a o la conguracin de las interfaces TCP/IP e introduciremos unas cuantas herramientas que o resultan bastante utiles a la hora de resolver problemas surgidos durante la instalacin de o la red. La mayor de las tareas descritas en este cap a tulo, generalmente, slo habr de ejecuo a tarlas una unica vez. Una vez hecho esto, slo tendr que tocar alguno de los cheros de o a conguracin cuando a ada un nuevo sistema a su red, o si decide recongurar el sistema o n completamente. Algunos de los comando usados para congurar el protocolo TCP/IP, sin embargo, deben ser ejecutados cada vez que se arranca el sistema. La forma usual de llevar esto a cabo es a travs de los scripts /etc/rc. e Generalmente, las partes espec cas de la red estn contenidas en una macro llamada a rc.net o rc.inet. A veces tambin son llamadas rc.inet1 o rc.inet2, siendo la primera la e encargada de inicializar la parte del n cleo que se ocupa de las comunicaciones, mientras u que la segunda es la que se encarga de arrancar los servicios bsicos y las aplicaciones. En a todo lo que sigue, asumir que es sta la estructura presente en el sistema. e e Ms abajo describir las acciones llevadas a cabo por rc.inet1, mientras que las aplicacioa e nes son cubiertas por los cap tulos posteriores. Al nalizar este cap tulo, deber usted haber a establecido la secuencia de comandos que conguran correctamente el protocolo TCP/IP en su ordenador. Substituya los comandos de ejemplo en rc.inet1 por los suyos propios; aseg rese de que rc.inet1 es ejecutada en el arranque y rearranque su mquina. Los scripts u a rc que acompa en a su distribucin de Linux favorita deber ser un buen ejemplo. n o an

59

5.1. Conguracin del Sistema de Ficheros proc o

60

5.1

Conguracin del Sistema de Ficheros proc o

Algunas de las herramientas de conguracin de Net-2 utilizan el sistema de cheros proc o para comunicarse con el n cleo. Se trata de una interface que permite el acceso a la u informacin del kernel en funcionamiento a travs de un sistema de cheros. Una vez ha o e sido montado, se pueden listar los cheros y ver su contenido como en cualquier otro sistema de cheros. Normalmente aparecen cheros como loadavg, que contiene la carga media del sistema, o meminfo, que contiene informacin sobre la memoria f o sica y virtual. El cdigo de redes a ade a esto el directorio net. Este directorio contiene una serie de o n cheros con informacin sobre las tablas ARP del n cleo, el estado de las conexiones TCP o u y las tablas de encaminamiento. La mayor de las herramientas de administracin de redes a o utilizan estos cheros para acceder a la informacin que precisan. o El sistema de cheros proc (tambin llamado procfs) es montado generalmente en /proc e durante el arranque. El mejor mtodo consiste en a adir la siguiente l e n nea al chero /etc/fstab:
# Lugar de montaje de procfs: none /proc

proc

defaults

y ejecutar mount /proc desde uno de los macros /etc/rc. El procfs viene congurado actualmente en la mayor de los n cleos por defecto. Si no a u tiene el procfs en su n cleo, al intentar montarlo obtendr el mensaje mount: fs type u a procfs not supported by kernel. De ser as tiene que recompilar el n cleo asegurndo u a se de congurarlo incluyendo el soporte para procfs.

5.2

Instalacin de los Ejecutables o

Si est utilizando alguna de las distribuciones de Linux, probablemente incluir las aplia a caciones y utilidades de red fundamentales as como un conjunto coherente de cheros de conguracin de ejemplo. El unico caso en el que tendr que conseguir e instalar las nuevas o a utilidades es en el caso de instalar una nueva versin del n cleo. De forma ocasional, esto o u supone cambios en la capa de comunicaciones del n cleo. Eso signicar tener que actuau a lizar tambin las herramientas de conguracin. Esto se traduce en, al menos, la necesidad e o de recompilar, aunque a veces es posible conseguir un conjunto de ejecutables actualizados en cheros llamados net-XXX.tar.gz, donde XXX es la versin de que se trate. En el caso de o Linux 1.0 es la n mero 0.32b, y la versin del n cleo en el momento en que se escribi este u o u o libro (1.1.12 y posterior) requiere 0.32d.

5.3. Otro Ejemplo

61

Si quiere compilar e instalar las aplicaciones estndar de comunicaciones TCP/IP, puede a obtener los cheros fuente de la mayor de los servidores FTP de Linux. Se trata de a versiones modicadas de las fuentes de Net-BSD y otros. Otras aplicaciones, como Xmosaic, xarchie, o Gopher y los clientes IRC deben obtenerse por separado. La mayor compila sin a necesidad de modicaciones si se siguen las instrucciones particulares. El servidor FTP ocial de Net-3 es sunacm.swan.ac.uk, que es replicado en sunsite.unc.edu bajo system/Network/sunacm. El ultimo parche y los ejecutables de Net-2e estn disponibles en ftp.aris.com. El cdigo derivado de BSD, de Matthias Urlichs, se a o encuentra en ftp.ira.uka.de, en el directorio /pub/system/linux/netbsd.

5.3

Otro Ejemplo

Para lo que queda de este libro, voy a utilizar un ejemplo menos complejo que el de la Universidad Groucho Marx, y que puede acercarse ms a las tareas que realmente tendr que a a realizar. La Cervecera Virtual, es una peque a compa ia que produce, como su nombre inn n dica, cerveza virtual. Para gestionar su negocio ms ecientemente, los cerveceros virtuales a quieren conectar sus ordenadores, que casualmente son PCs bajo Linux 1.0, en red. En el mismo piso, justo al otro lado del edicio se, encuentra la Vinatera Virtual, que trabaja de cerca con la cervecera. La vinatera tiene una red Ethernet propia. Naturalmente, ambas compa quieren unir sus redes una vez que stas se encuentren operacionales. nas e Como un primer paso, quieren establecer una pasarela que pase los datagramas de una subred a otra. Para ms tarde, tienen planeado establecer un enlace UUCP con el exterior, a a travs del cual intercambiarn noticias y correo electrnico. A largo plazo, quieren establecer e a o una conexin ocasional usando SLIP con la Internet. o

5.4

Establecimiento del Nombre de la Mquina a

La mayor de las aplicaciones de red, si no todas, asumen que el nombre dado a la mquina a a local tiene un valor razonable. Este proceso tiene lugar durante el arranque cuando se ejecuta el comando hostname. Para llamar nodo1 a un ordenador ejecutar a
# hostname nodo1

Es una prctica com n usar el nombre sin cualicarlo con el dominio de red. As pues, a u supongamos que las mquinas de la Cervecera Virtual se llamaran vale.vbrew.com, a

5.5. Asignacin de una direccin IP o o

62

vlager.vbrew.com, etc. Estos son los nombres ociales, los nombres completamente cualicados de dominio (FQDN1 ). Los nombres locales ser por tanto unicamente el primer an componente del nombre, como por ejemplo vale. Sin embargo, dado que el nombre local se usa frecuentemente para buscar la direccin IP correspondiente, debe asegurarse de que la o tabla que contiene esa informacin sea capaz de encontrarla. Esto generalmente equivale a o a adir el nombre local al chero /etc/hosts (ver ms abajo). n a Algunas personas sugieren la utilizacin del comando domainname para jar el valor del o dominio para el n cleo. As para obtener el FQDN combinar u , amos la salida de hostname y domainname. Sin embargo esto es, en el mejor de los casos, una verdad a medias. domainname se usa por lo general para establecer el domino NIS al que pertenece la mquina que a puede ser completamente diferente al del servidor de nombres (DNS). Hablaremos de NIS en el cap tulo 10.

5.5

Asignacin de una direccin IP o o

Si congura su software de red para operar su mquina de forma aislada (por ejemplo con a el objeto de utilizar el software de noticias de red INN) puede saltarse esta seccin pues o slo necesita la direccin de la interface de lazo. o o Las cosas son algo ms complicadas en redes reales como las Ethernets. Si quiere a conectar su ordenador a una red, tiene que pedir a los administradores de la misma que le asignen una direccin IP para esa red. Cuando es usted mismo el que est estableciendo la o a red, tendr que ser usted quien asigne las direcciones IP seg n se describe a continuacin. a u o Las mquinas de una red local deben generalmente compartir direcciones de una subred a lgica. Por ello lo primero es asignar una direccin IP para la red. Si tiene varias redes o o f sicas, deber asignar n meros de red completamente diferentes a cada una o dividir el a u rango de direcciones IP disponibles en varias subredes. Si su red no esta conectada con Internet, es libre de elegir cualquier direccin (vlida). o a Slo tiene que asegurarse de elegir una de entre los tipos A, B, o C, o, de otro modo, no o irn bien las cosas. Sin embargo, si planea conectarse a la Internet en un futuro cercano, a tiene usted que obtener una direccin IP ocial ya. La mejor forma es pedir ayuda a su o proveedor de servicios de Internet. Si quiere pedir una direccin ocial en previsin de que o o se conecte a la Internet alg n d pida un formulario de solicitud de direccin de red a u a, o hostmaster@internic.net. Para operar varias redes Ethernet (o de otro tipo una vez que el controlador correspondiente est disponible), debe dividir su red en subredes. Es importante notar que esto es e
1

N. del T.: Del ingls fully qualied domain name e

5.5. Asignacin de una direccin IP o o

63

191 72

191 72

191 72

Subred Cervecera

Pasarela

Subred Vinatera

Figura 5.1: Cervecera Virtual y Vinatera Virtual las dos subredes. unicamente necesario si tiene ms de una direccin de difusin(broadcast) en la red; las a o o conexiones punto-a-punto no cuentan. As por ejemplo, si tiene una red Ethernet y uno o , ms enlaces SLIP con el exterior no hace falta que divida su red. La razn se explica en el a o cap tulo 7. A modo de ejemplo, el administrador de la red de la cervecera solicita al NIC una direccin de red de tipo B, sindole asignada la n mero 191.72.0.0. Para acomodar dos redes o e u ethernet, decide usar ocho bits de la parte de la direccin correspondiente a los ordenadores o como direccin de subred. Eso deja otros ocho bits para las mquinas lo que equivale a 254 o a por cada subred. La red de la cervecera se convierte as en la subred 1 y la de la vinatera en la subred 2. Las direcciones de red sern por tanto 191.72.1.0 y 191.72.2.0. La mscara a a de red ser 255.255.255.0. a A vlager, que act a de pasarela entre las redes, se le asigna el n mero de mquina u u a 1 en ambas redes, lo que signica que tiene las direcciones IP, 191.72.1.1 y 191.72.2.1, respectivamente. La gura 5.1 muestra las dos subredes y la mquina que act a de enlace. a u Es importante notar que en este ejemplo estamos usando una red de clase B para simplicar; una red de tipo C ser ms realista. Con el nuevo cdigo de red, la divisin en a a o o subredes no est limitada a nivel de byte, de forma que incluso una red de clase C puede a dividirse en varias subredes. Por ejemplo, podr usar 2 bits del byte de los nodos para a designar la subred lo que permite implementar cuatro subredes de 64 mquinas cada una. 2 a
La ultima direccin en realidad se reserva como direccin de difusin, aquella a la que se env mensajes o o o an destinados a todas las mquinas de la red correspondiente, lo cual en realidad deja slo 63 por subred. a o
2

5.6. Preparacin de los cheros hosts y networks o

64

5.6

Preparacin de los cheros hosts y networks o

Una vez ha dividido su red en subredes, debe habilitar un mecanismo simple de resolucin o de nombres usando el chero /etc/hosts. Si no va a usar los sistemas DNS o NIS para la resolucin de nombres, debe poner todos los nombres de las diferentes mquinas en el o a chero hosts. Incluso si planea utilizar los servicios DNS y NIS en condiciones normales de operacin, o es conveniente tener un reducido n mero de mquinas en /etc/hosts. Por un lado, hay u a situaciones en las que es necesario resolver algunos nombres incluso cuando no hay servicios de red ejecutndose. Este es el caso del arranque. Se trata, no slo de una cuestin de a o o conveniencia, sino que permite el uso de nombres simblicos para las mquinas citadas en o a las macros rc.inet. De esta forma, para cambiar las direcciones IP, slo tiene que copiar el o chero hosts modicado a todas las mquinas y rearrancar, en vez de tener que modicar un a gran n mero de macros rc por separado. Generalmente, tambin debe incluir los nombres u e y direcciones locales en hosts, a adiendo los de las mquinas que enlacen varias redes y los n a 3 servidores NIS si existen. Tambin, en la fase inicial de pruebas, deber asegurarse de que el subsistema de e a resolucin utiliza la informacin del chero hosts unicamente. Su software DNS o NIS o o puede incluir cheros de conguracin a modo de ejemplo que pueden producir resultados o extra os si son usados. Para forzar a que todas las aplicaciones utilicen /etc/hosts de forma n exclusiva cuando buscan una direccin IP, debe editar el chero /etc/host.conf. Desactive o con comentarios cualquier l nea que comience por order a adiendo una almohadilla (#) e n incluya la siguiente l nea
order hosts

La conguracin de la librer de resolucin se describe en detalle en el cap o a o tulo 6. El chero hosts contiene un registro por linea, consistente en una direccin IP, un nombre o de mquina y de forma opcional, una lista de alias para esa mquina. Los campos se separan a a por tabuladores o espacios y el campo con la direccin debe empezar en la primera columna. o Cualquier cosa a continuacin de una almohadilla (#) es interpretado como un comentario o y es consecuentemente ignorado. Los nombres de las mquinas pueden ser con cualicacin completa, o relativos al doa o minio actual. Para la mquina vale, el registro generalmente incluir el nombre con cuaa a
Slo necesita incluir las direcciones de los servidores NIS si utiliza el servidor NYS de Peter Eriksonn. o Otras implementaciones de servidores NIS son capaces de localizar los servidores cuando estn siendo ejea cutados, utilizando ypbind.
3

5.7. Conguracin de la Interface para IP o

65

licacin completa, vale.vbrew.com, y vale en el chero hosts, de forma que pueda ser o referido usando el nombre ocial y el nombre local que es ms corto. a Este es un ejemplo del aspecto que el chero hosts de la Cervecera Virtual podr tener. a Hay dos nombres especiales vlager-if1 y vlager-if2, correspondientes a las direcciones de ambas interfaces de la mquina existentes en vlager. a
# # Fichero Hosts # # IP # 127.0.0.1 # 191.72.1.1 191.72.1.1 191.72.1.2 191.72.1.3 # 191.72.2.1 191.72.2.2 191.72.2.3 191.72.2.4

de la Cervecera Virtual/Vinatera Virtual local localhost vlager vlager-if1 vstout vale vlager.vbrew.com vstout.vbrew.com vale.vbrew.com fully qualified domain name

vlager-if2 vbeaujolais vbeaujolais.vbrew.com vbardolino vbardolino.vbrew.com vchianti vchianti.vbrew.com

Del mismo modo que con las direcciones IP, a veces tambin puede interesarle usar e nombres simblicos para los n meros de red. Con este objeto, el chero hosts tiene un como u pa ero llamado /etc/networks, que asocia nombres de red con los n meros correspondientes n u y viceversa. En la Cervecera Virtual, podr mos instalar un chero networks como ste: 4 e
# /etc/networks para la Cervecera Virtual brew-net 191.72.1.0 wine-net 191.72.2.0

5.7

Conguracin de la Interface para IP o

Una vez ha congurado su hardware seg n se ha explicado en el cap u tulo anterior, debe asegurarse de que el software de red del n cleo conoce esos dispositivos. Hay una serie de u comandos que se usan con objeto de congurar las interfaces de red e inicializar la tabla de encaminamiento. Esas tareas son ejecutadas generalmente por la macro rc.inet1 cada
Es importante notar que los nombres en networks no deben coincidir con nombres de mquinas en hosts, a o algunos programas pueden producir resultados extraos. n
4

5.7. Conguracin de la Interface para IP o

66

vez que el sistema es arrancado. Las herramientas bsicas son ifcong (donde if signica a interface), y route. ifcong se usa para dar dar acceso al n cleo a una interface. Esto incluye la asignacin u o de una direccin IP y otros parmetros, as como la activacin de la interface. Por activacin o a o o nos referimos a permitir que el n cleo env y recibe datagramas IP a travs de la interface. u a e El modo ms sencillo de invocar esta herramienta es a
ifconfig interface direccion-ip

que asigna direccion-ip a interface y la activa. Los otros parametros toman valores asignados por defecto. Por ejemplo, la mscara de subred toma el valor correspondiente al a tipo de red al que pertenece la direccin IP. As tendr o , amos 255.255.0.0 para una direccin o de clase B. ifcong es descrito en detalle al nal del cap tulo. route permite a adir o quitar rutas de la tabla de encaminamiento del n cleo. Se puede n u invocar como
route [add|del] destino

donde los argumentos add y del determinan, respectivamente si se debe a adir o borrar la n ruta hacia destino .

5.7.1

La Interface de Bucle o Loopback

La primera interface en ser activada es la interface de lazo o loopback:


# ifconfig lo 127.0.0.1

Ocasionalmente, tambin ver que el nombre comod localhost es usado en vez de la e a n direccin de IP. ifcong buscar el nombre en el chero hosts que debe contener un registro o a declarando localhost como nombre vlido para la direccin 127.0.0.1: a o
# Registro ejemplo de localhost en /etc/hosts localhost 127.0.0.1

Para ver la conguracin de una interface, basta ejecutar el programa ifcong usando o el nombre de la interface como argumento:

5.7. Conguracin de la Interface para IP o

67

$ ifconfig lo lo Link encap Local Loopback inet addr 127.0.0.1 Bcast [NONE SET] Mask 255.0.0.0 UP BROADCAST LOOPBACK RUNNING MTU 2000 Metric 1 RX packets 0 errors 0 dropped 0 overrun 0 TX packets 0 errors 0 dropped 0 overrun 0

Como podr observar, la mscara asignada a la interface de lazo es 255.0.0.0, debido a a a que 127.0.0.1 es una direccin de clase A. La interface no tiene establecida ninguna o direccin de difusin, ya que sta no suele ser demasiado util para lazos. Sin embargo, si o o e va a ejecutar el demonio rwhod en su mquina, tendr seguramente que jar la direccin a a o de difun del dispositivo de lazo para que rwho funcione correctamente. El modo de jar o dicha direccin se explica en la seccin 5.8, ms abajo. o o a Ahora, ya casi puede empezar a jugar con su mini-red. Slo resta a adir una entrada o n en la tabla de encaminamiento que comunique al IP que puede usar esa interface como ruta hacia 127.0.0.1. Para llevar esto a cabo, basta escribir:
# route add 127.0.0.1

Tambin aqu puede usar localhost en lugar de la direccin IP. e o Lo siguiente es comprobar que todo funciona como es debido, por ejemplo usando ping. ping es el equivalente a un sonar en una red 5 y se usa para vericar que una direccin dada o es accesible y para medir el retraso entre el env de un datagrama y su recepcin de vuelta. o o Este tiempo es conocido como tiempo de ida y vuelta.
# ping localhost PING localhost (127.0.0.1): 56 data 64 bytes from 127.0.0.1: icmp_seq=0 64 bytes from 127.0.0.1: icmp_seq=1 64 bytes from 127.0.0.1: icmp_seq=2 ^C

bytes ttl=32 time=1 ms ttl=32 time=0 ms ttl=32 time=0 ms

--- localhost ping statistics --3 packets transmitted, 3 packets received, 0% packet loss round-trip min/avg/max = 0/0/1 ms

Cuando se ejecuta ping seg n se muestra aqu la emisin de paquetes contin a a menos u , o u que sea interrumpida por el usuario. El ^C marca el momento en el que se apret Ctrl-C. o
5

Alguno recuerda Echoes de Pink Floyd?

5.7. Conguracin de la Interface para IP o

68

Este ejemplo muestra que los paquetes dirigidos a la mquina 127.0.0.1 estn siendo a a entregados correctamente y la respuesta a ping es recibida de forma casi instantnea. Esto a signica que ha establecido con xito su primera interface de red. e Si la salida de ping no se parece a la de ms arriba, tiene usted problemas. Compruebe la a posibilidad de que alg n chero no haya sido instalado correctamente. Compruebe que los u ejecutables ifcong y route son compatibles con la versin del n cleo que usa y sobre todo o u que ste ha sido compilado con la opcin de red activada (esto se puede ver comprobando e o que existe el directorio /proc/net). Si el mensaje de error es Network unreachable(red inaccesible), seguramente ejecut el comando route incorrectamente. Aseg rese de que es o u la misma direccin que la que us con ifcong. o o Los pasos descritos arriba son sucientes para poder ejecutar aplicaciones de red en una mquina aislada. Una vez esas lineas son a adidas a rc.inet1 y despus de asegurarse de que a n e las dos macros rc.inet son ejecutadas desde /etc/rc, puede proceder a rearrancar su mquina a y probar las diferentes aplicaciones de red. Por ejemplo telnet localhost deber establecer a una conexin telnet con su mquina, pidindole el nombre de usuario y la contrase a. o a e n Sin embargo, la interface de lazo es util, no slo como ejemplo en libros de redes, o como o mtodo de pruebas durante el desarrollo: tambin la utilizan algunas aplicaciones como e e 6 Por ello, debe usted congurarla siempre, independientemente modo normal de operacin. o de que su mquina est conectada a una red o no. a e

5.7.2

Interfaces Ethernet

La conguracin de una interface Ethernet es ms o menos igual que la de la interface de o a lazo. Slo requiere algunos parmetros ms cuando est usando varias subredes. o a a a En la Cervecera Virtual, hemos dividido la red IP, originalmente de clase B, en subredes de clase C. Para que la interface reconozca esto, el comando usando ifcong ser a:
# ifconfig eth0 vstout netmask 255.255.255.0

Esto asigna a la interface eth0 la direccin IP de la mquina vstout(191.72.1.2). Si o a hubisemos omitido la mscara de red, ifcong habr deducido la mscara de la clase de e a a a la red IP, tomando por tanto 255.255.0.0. Una comprobacin rpida nos da: o a
# ifconfig eth0 eth0 Link encap 10Mps Ethernet HWaddr
6

00:00:C0:90:B3:42

Por ejemplo, todas las aplicaciones basadas en RPC utilizan la interface de lazo para registrarse en el demonio portmapper (mapa de puertos) durante el arranque.

5.7. Conguracin de la Interface para IP o

69

inet addr 191.72.1.2 Bcast 191.72.1.255 Mask 255.255.255.0 UP BROADCAST RUNNING MTU 1500 Metric 1 RX packets 0 errors 0 dropped 0 overrun 0 TX packets 0 errors 0 dropped 0 overrun 0

Puede ver que ifcong ha jado la direccin de difusin automticamente (el campo o o a Bcast de arriba) a su valor usual, que es el de la red con todos los bits de la mquina a activados. Adems se ja la unidad de transferencia de mensajes (tama o mximo que el a n a n cleo va a generar para esa interface) a un mximo de 1500 bytes. Todos estos valores u a pueden ser especicados mediante opciones especiales que se explican ms tarde. a De forma semejante al caso de la interface de lazo, debe tambin ahora establecer una e entrada en la tabla de encaminamiento que informe al n cleo de que la red es accesible u mediante eth0. Para la Cervecera Virtual, ejecutar a
# route add -net 191.72.1.0

Inicialmente podr parecer algo mgico, pues no est claro cmo route detecta cul es a a a o a la interface que debe usar. Sin embargo el truco es sencillo: el n cleo comprueba todas las u interfaces que han sido conguradas hasta el momento y compara la direccin de destino o (191.72.1.0 en este caso) con la parte de red de las direcciones de las interfaces (o, lo que es lo mismo, ejecuta un Y lgico de la direccin de la interface y la mscara de red). La o o a unica interface que cumple esto es eth0. Veamos, qu signica la opcin -net? Esta opcin es necesaria porque el programa e o o route es capaz de trabajar con rutas a redes o a mquinas concretas (como vimos arriba en el a caso de localhost). Cuando la direccin es dada en notacin de cuaterna, intenta adivinar o o si se trata de una red o una mquina jndose en los bits de mquina de la direccin. Si esa a a a o parte es nula, route asume que se trata de una red, y de otro modo lo toma como direccin o de una mquina. Por tanto, route supondr que 191.72.1.0 es la direccin de una mquina a a o a en vez de una red, debido a que no sabe que hemos dividido el espacio de direcciones en subredes. Por tanto hemos de dec rselo de forma expl cita utilizando el indicador -net. Por supuesto, escribir el comando route es tedioso y susceptible de muchos errores de escritura. Un mtodo ms conveniente es usar los nombres denidos en /etc/networks como e a vimos ms arriba. Esto hace el comando ms inteligible; de este modo incluso podemos a a evitar escribir el indicador -net, porque route sabe que 191.72.1.0 representa una red.
# route add brew-net

5.7. Conguracin de la Interface para IP o

70

Una vez nalizados los pasos bsicos de conguracin, debemos asegurarnos de que a o la interface Ethernet esta funcionando correctamente. Elija una mquina de su red, por a ejemplo vlager, y escriba
# ping vlager PING vlager: 64 byte packets 64 bytes from 191.72.1.1: icmp_seq=0. 64 bytes from 191.72.1.1: icmp_seq=1. 64 bytes from 191.72.1.1: icmp_seq=2. 64 bytes from 191.72.1.1: icmp_seq=3. ^C

time=11. ms time=7. ms time=12. ms time=3. ms

----vstout.vbrew.com PING Statistics---4 packets transmitted, 4 packets received, 0% packet loss round-trip (ms) min/avg/max = 3/8/12

Si el resultado no es similar a ste, algo va mal, obviamente. Una tasa de prdida de e e 7 inusualmente alta, sugiere un problema de hardware, como terminaciones en mal paquetes estado o incluso la ausencia de las mismas, etc. Si no recibe ning n paquete, debe comprobar u la conguracin de la interface mediante netstat. Las estad o sticas de paquetes producidas por ifcong le indican si alg n paquete ha sido enviado mediante esa interface. Si tiene u acceso a una mquina remota, tambin deber dirigirse a esa mquina y comprobar las a e a a estad sticas de la interface. De este modo puede determinar exactamente en qu momento e se han descartado los paquetes. Adems, debe consultar la informacin de encaminamiento a o con route para ver si ambas mquinas han registrado sta correctamente en sus tablas. route a e imprime la tabla de encaminamiento del n cleo completa si se ejecuta sin argumentos (la u opcin -n hace que utilice la notacin de cuaternas en vez de los nombres de las mquinas): o o a
# route -n Kernel routing table Destination Gateway 127.0.0.1 * 191.72.1.0 *

Genmask Flags Metric Ref Use Iface 255.255.255.255 UH 1 0 112 lo 255.255.255.0 U 1 0 10 eth0

El signicado de cada uno de los campos se detalla ms adelante en la seccin Comproa o bacin mediante netstat. La columna Flags contiene una lista de los indicadores activos o en cada interface. U indica que la interface est activa y H indica que la direccin de destino a o es una mquina. Si encuentra que el indicador H se ha activado para una ruta que pretend a a usar para una red, entonces debe usar la opcin -net con el comando route. Para como probar si alguna ruta est siendo usada o no, debe mirar si el campo Use en la pen ltima a u columna se incrementa entre dos ejecuciones sucesivas de ping.
7

N. del T.: Del ingls packet loss rate e

5.7. Conguracin de la Interface para IP o

71

5.7.3

Encaminamiento a travs de una Pasarela e

En la seccin anterior, cubr slo el caso en el que la mquina slo tiene una unica Ethernet. o o a o Frecuentemente, es posible encontrar redes conectadas unas a otras a travs de pasarelas o e mquinas de enlace. Estas pasarelas pueden simplemente unir dos o ms Ethernets, pero a a pueden tambien servir de enlace con el exterior, con la Internet. Para usar una pasarela, es necesario a adir informacin adicional a la capa de red. n o Por ejemplo, las Ethernets de la Cervecera Virtual y de la Vinatera Virtual estn unidas a a travs de una pasarela, vlager. Suponiendo que la mquina vlager ha sido congurada e a ya, slo tenemos que a adir otro registro a la tabla de encaminamiento de la mquina o n a vstout que le comunique al n cleo que puede acceder a todos las mquinas de la red de la u a Vinatera a travs de vlager. La orden apropiada usando route se muestra a continuacin; e o la palabra clave gw indica que el argumento siguiente es una pasarela:
# route add wine-net gw vlager

Por supuesto, cualquier host en la red de la Vinatera al que quiera dirigirse debe tener un registro anlogo referido a la red de la Cervecera, o de otro modo slo podr enviar a o a datos de vstout a vbardolino, pero la respuesta del segundo ir a parar al cubo de la a basura. Este ejemplo describe unicamente una pasarela que conmuta paquetes entre dos redes Ethernet aisladas. Supongamos ahora que vlager tambin tiene una conexin a la Internet e o (digamos que a travs de un enlace SLIP). Nos gustar que los datagramas destinados a e a cualquier direccin fuera de la red de la Cervecera fueran entregados a vlager. Esto se o puede conseguir convirtindolo en la pasarela por defecto para vstout: e
# route add default gw vlager

El nombre de red default es una abreviatura que representa la red 0.0.0.0, o ruta por defecto. No es necesario a adir este nombre a /etc/networks, porque esta informacin n o est contenida en el cdigo de route. a o Una tasa alta de prdida de paquetes usando ping hacia una mquina situada detrs de e a a una o ms pasarelas, puede deberse a que la red est muy congestionada. La prdida de a a e paquetes no se debe tanto a deciencias tcnicas como a exceso temporal de carga en las e mquinas que act an de enlace, provocando retrasos o incluso el descarte de datagramas a u entrantes.

5.7. Conguracin de la Interface para IP o

72

5.7.4

Conguracin de una Pasarela o

Congurar una mquina para conmutar paquetes entre dos Ethernets es bastante sencillo. a Suponga que nos encontramos en vlager, que contiene dos tarjetas Ethernet, respectivamente conectadas a cada una de las dos redes. Todo lo que necesitar hacer es congurar a ambas interfaces de forma separada, dndole a cada una su direccin IP correspondiente, y a o eso es todo. Es bastante util incluir la informacin de ambas interfaces en el chero hosts del modo o indicado a continuacin, de forma que tengamos nombres para referirnos a ellas tambin: o e
191.72.1.1 191.72.1.1 191.72.2.1 vlager vlager-if1 vlager-if2 vlager.vbrew.com

La secuencia de comandos necesaria para establecer ambas interfaces ser por tanto: a
# # # # ifconfig eth0 vlager-if1 ifconfig eth1 vlager-if2 route add brew-net route add wine-net

5.7.5

La Interface PLIP

Si usa un enlace PLIP para conectar dos mquinas, las cosas son un poco diferentes de lo a visto para una Ethernet. En caso de PLIP se trata de un enlace conocido como puntoa-punto, porque slo requiere dos mquinas (puntos), en contraposicin a las redes de o a o difusin. o A modo de ejemplo, consideremos un ordenador porttil de un empleado en la Cervecera a Virtual que se conecta a vlager mediante PLIP. El porttil se llama vlite, y tiene un unico a puerto paralelo. Durante el arranque, este puerto ser registrado como plip1. Para activar a el enlace, ha de congurar la interface plip1 mediante los siguientes comandos:
# ifconfig plip1 vlite pointopoint vlager # route add default gw vlager

El primer comando congura la interface, dicindole al n cleo que se trata de un enlace e u punto-a-punto, donde la parte remota tiene la direccin vlager. El segundo instala la ruta o por defecto que usa a vlager como pasarela. En vlager, se necesita ejecutar ifcong con argumentos similares para activar el enlace (en este caso no es necesario usar route):

5.7. Conguracin de la Interface para IP o

73

# ifconfig plip1 vlager pointopoint vlite

Es interesante notar que la interface plip1 en vlager no necesita tener una direccin o 8 IP diferente, sino que puede usar la misma direccin 191.72.1.1. o Una vez hemos congurado el encaminamiento desde el porttil a la red de la Cervecera, a slo resta arbitrar un modo para que cualquier mquina en esa red pueda acceder a vlite. o a Un modo particularmente enrevesado ser a adir una ruta a las tablas de encaminamiento a n de cada una de las mquinas de la red para usar vlager como pasarela hacia vlite: a
# route add vlite gw vlager

Una opcin mejor cuando tenemos que trabajar con rutas temporales es usar encamio namiento dinmico. Una forma de conseguirlo es usando gated, un demonio de encaminaa miento, que deber instalar en cada una de las mquinas de la red de modo que distribuya a a la informacin de encaminamiento de forma dinmica. La forma ms sencilla, sin embargo, o a a consiste en usar ARP sustituto ( proxy ARP ). Con ARP sustituto, vlager responde a cualquier pregunta ARP dirigida a vlite enviando su propia direccin Ethernet. El efecto o conseguido es que todos los paquetes dirigidos a vlite terminan yendo a vlager, que se encarga de reenvirselos al porttil. Volveremos a hablar de ARP sustituto en la seccin a a o Comprobacin de las Tablas ARP, ms adelante. o a Las versiones futuras de Net-3 contendrn una herramienta llamada plipcong capaz de a jar el n mero de IRQ del puerto de la impresora. Ms tarde se sustituir por un comando u a a ifcong ms general. a

5.7.6

Las Interfaces SLIP y PPP

A pesar de que los enlaces SLIP y PPP son simples enlaces punto-a-punto igual que las conexiones PLIP, hay mucho ms que decir de ellas. Generalmente, el establecimiento de a un enlace SLIP incluye una llamada a un lugar de conexin remoto y el establecimiento del o modo SLIP en la l nea de comunicaciones serie. El uso de PPP es similar. Las herramientas necesarias para establecer un enlace SLIP o PPP se describen en los cap tulos 7 y 8.

5.7.7

La Interface Comod n

La interface comod (dummy) parece un tanto extica y sin embargo es bastante util. n o Resulta especialmente ventajosa para mquinas aisladas que se conectan a una red IP a
Simplemente por precaucin, deber congurar de todos modos sus enlaces PLIP o SLIP una vez que o a ha completado la conguracin de la tabla de encaminamiento de las Ethernets. Con algunos ncleos ms o u a antiguos, la tabla de encaminamiento para la red puede acabar apuntando a su enlace punto-a-punto.
8

5.8. Todo sobre ifcong

74

mediante un enlace telefnico. Se trata en realidad de mquinas que trabajan de forma o a aislada la mayor parte del tiempo. El dilema con las mquinas aisladas es que el unico dispositivo activo es el de lazo, a al que generalmente se le asigna la direccin 127.0.0.1. En ocasiones, sin embargo, le o resultar necesario enviar datos a la direccin IP ocial de la mquina. Supongamos, por a o a ejemplo, el caso del porttil vlite cuando no est conectado a ninguna red. Una aplicacin en a a o vlite que busque su direccin IP en el chero /etc/hosts dar como resultado 191.72.1.65, o a y por tanto intentar enviar los datos a esa direccin. Como la unica interface activa en ese a o momento es la de lazo, el n cleo no sabe que la direccin se reere a la misma mquina. u o a En consecuencia el n cleo descarta el datagrama y genera un error en la aplicacin. u o En esta situacin es cuando la interface comod es util, resolviendo el dilema actuando o n como alter ego de la interface de lazo. En el caso de vlite, simplemente debe asignarle la direccin 191.72.1.65 y a adir una ruta que apunte a ella. La forma correcta es pues: o n
# ifconfig dummy vlite # route add vlite

5.8

Todo sobre ifcong

El programa ifcong tiene muchos ms parmetros que los descritos hasta ahora. Generala a mente se ejecuta en la forma:
ifconfig interface [[-net|-host] direccion [parametros ]]

interface es el nombre de la interface y direccion es la direccin IP que se asigna o a dicha interface. La direccin puede estar en forma de cuaterna o usando un nombre que o ifcong buscar en /etc/hosts y /etc/networks. La opciones -net y -host fuerzan a ifcong a a tratar las direcciones dadas como direcciones de red o de mquina respectivamente. a Si ifcong es ejecutado a adiendo unicamente el nombre de la interface, presentar la n a informacin de la conguracin de dicha interface. Si se ejecuta sin parametros, presenta o o todas las interfaces conguradas hasta el momento; usando la opcin -a fuerza a ifcong o a incluir la informacin de las interfaces inactivas. A modo de ejemplo, la consulta de la o conguracin de la interface Ethernet eth0 ser o a:
# ifconfig eth0 eth0 Link encap 10Mbps Ethernet HWaddr 00:00:C0:90:B3:42 inet addr 191.72.1.2 Bcast 191.72.1.255 Mask 255.255.255.0

5.8. Todo sobre ifcong

75

UP BROADCAST RUNNING MTU 1500 Metric 0 RX packets 3136 errors 217 dropped 7 overrun 26 TX packets 1752 errors 25 dropped 0 overrun 0

Los campos MTU y Metric informan sobre los valores actuales de la MTU (Unidad Mxima de Transferencia) y de la mtrica para una interface dada. El valor de la mtrica a e e es usado tradicionalmente por algunos sistemas operativos para calcular el coste de una ruta. Linux no usa este valor por el momento, pero lo dene por razones de compatibilidad. Las l neas RX y TX dan idea de los paquetes recibidos o transmitidos sin errores, del n mero de errores ocurridos, de cuntos paquetes han sido descartados, seguramente por u a memoria insuciente, y cuntos han sido perdidos por desbordamiento, condicin que ocurre a o cuando la recepcin de paquetes es demasiado rpida y el n cleo es incapaz de dar servicio o a u al paquete anterior antes de la llegada del nuevo paquete. Los nombres de los campos que genera ifcong coinciden ms o menos con los parametros con los que se puede ejecutar; a estos parmetros son explicados ms abajo. a a A continuacin tenemos una lista de los parmetros reconocidos por ifcong. Los nomo a bres de los indicadores correspondientes aparecen entre parntesis. Las opciones que sime plemente activan alguna caracter stica pueden usarse para desactivarla precedindolas de e un guin (-). o up Marca la interface como up o activa, es decir, disponible para que sea usada por la capa IP. Esta opcin va impl o cita cuando lo que se da en la l nea de comandos es una direccin . Tambin permite reactivar una interface que o e se ha desactivado temporalmente mediante la opcin down. o Esta opcin corresponde a los indicadores UP RUNNING. o down Marca la interface como down o inactiva, es decir, inaccesible a la capa IP. Esto inhabilita cualquier trco IP a travs de la interface. Es importante a e darse cuenta que esto no borra los registros de la tabla de encaminamiento correspondientes a esa interface de forma automtica. Si pretende desaca tivar una interface de forma permanente, deber borrar estos registros de a encaminamiento, aportando rutas alternativas si es posible.

netmask mscara a Esto asigna una mscara de subred a una interface. Se puede dar como un a valor de 32 bits en hexadecimal precedido del prejo 0x, o en notacin de o cuaterna usando n meros decimales separados por puntos. u pointopoint direccin o Esta opcin se usa para enlaces IP punto-a-punto en los que intervienen o

5.8. Todo sobre ifcong

76

unicamente dos mquinas. Esta opcin es necesaria para, por ejemplo, con a o gurar las interfaces SLIP o PLIP. ifcong conrma el establecimiento de una direccin punto-a-punto incluo yendo el indicador POINTOPOINT. broadcast direccin o La direccin de difusin se obtiene, generalmente, usando la parte de red o o de la direccin y activando todos los bits de la parte correspondiente a la o mquina. Algunas implementaciones de los protocolos IP utilizan un esa quema diferente; esta opcin proporciona un mtodo para adaptarse a esos o e entornos ms raros. a (ifcong conrma el establecimiento de una direccin de difusin incluyendo o o el indicador BROADCAST.) metric nmero u Esta opcin puede ser usada para asignar un valor de mtrica a la tabla o e de encaminamiento creada para la interface. Esta mtrica es usada por el e Protocolo de Informacin de Encaminamiento (RIP, como ya hemos visto o en cap tulos anteriores) para construir las tablas de encaminamiento para la red. El valor usado por defecto por ifcong es cero. Si no est ejecutando un a demonio RIP, no necesita usar esta opcin para nada; si por el contrario s lo o usa, al menos slo tendr que modicar este valor en contadas ocasiones. o a mtu bytes Esto ja la unidad mxima de transferencia, o lo que es lo mismo, el mxia a mo n mero de octetos que la interface es capaz de manejar en una unica u transaccin. Para Ethernets, la MTU toma el valor 1500 por defecto; para o interfaces tipo SLIP, el valor por defecto es 296. Esta opcin es espec o ca de redes de difusin como las Ethernets o las de o radio-paquetes. Permite el uso de ARP, el Protocolo de Resolucin de Dio recciones, para detectar la direccin f o sica de las mquinas conectadas a la a red. Para redes de difusin, esta opcin es habilitada por defecto. o o ifcong avisa que ARP ha sido inhabilitado mediante el indicador NOARP. -arp promisc Inhabilita el uso de ARP para esta interface. Pone la interface en modo promiscuo. En una red de difusin, esto hace que o la interface reciba todos los paquetes, independientemente de si eran para ella o no. Esto permite el anlisis del trco de red utilizando utilidades a a como ltros de paquetes, tambin llamado sgar 9 . Se trata de una buena e tcnica para localizar problemas de red que de otra forma resultan dif e ciles.

arp

N. del T.: Del ingls snooping e

5.9. Comprobacin mediante netstat o

77

Por otro lado, esto tambin posibilita ataques, permitiendo al atacante anae lizar el traco de la red en busca de claves u otras cosas peligrosas. Una proteccin posible contra este tipo de ataques es impedir que cualquiera o pueda conectarse a la Ethernet. Otra es la utilizacin de protocolos de auo tenticacin seguros como Kerberos, o los programas SRA de ingreso en el o sistema.10 Esta opcin corresponde al indicador PROMISC. o -promisc allmulti Desactiva el modo promiscuo. Las direcciones de env m ltiple son un tipo de difusin pero a un grupo de o u o mquinas que no tienen necesariamente que pertenecer a la misma subred. El a n cleo no soporta todav direcciones de env m ltiple o de multidifusin 11 . u a o u o Esta opcin corresponde al indicador ALLMULTI. o -allmulti Desactiva las direcciones de env m ltiple. o u

5.9

Comprobacin mediante netstat o

A continuacin describir una herramienta util para comprobar la conguracin y actividad o e o de su red. Se llama netstat, aunque se trata en realidad de una coleccin de herramientas o combinadas. Describiremos cada una de las funciones en las secciones siguientes.

5.9.1

Consulta de la Tabla de Encaminamiento

Si ejecuta netstat usando el indicador -r, puede ver la informacin de la tabla de encamio namiento del n cleo igual que hemos venido haciendo hasta ahora con route. Para vstout, u tendr amos:
# netstat -nr Kernel routing table Destination Gateway 127.0.0.1 * 191.72.1.0 * 191.72.2.0 191.72.1.1

Genmask 255.255.255.255 255.255.255.0 255.255.255.0

Flags UH U UGN

Metric 1 1 1

Ref Use Iface 0 50 lo 0 478 eth0 0 250 eth0

La opcin -n hace que netstat imprima las direcciones IP en notacin de cuaterna en o o vez de usar los nombres simblicos de las mquinas o las redes. Esto es especialmente util o a
10 11

SRA se puede obtener del servidor ftp.tamu.edu en el directorio /pub/sec/TAMU N.T.: Las versiones actuales del ncleo (2.X) s permiten el uso de direcciones de env mltiple. u o u

5.9. Comprobacin mediante netstat o

78

si pretende evitar consultas para esos nombres a travs de la red (por ejemplo consultas a e un servidor NFS o NIS). La segunda columna de la salida producida por netstat informa sobre las pasarelas a las que apunta la informacin de encaminamiento. Si una ruta no usa pasarela, el programa o imprime un asterisco. La tercera columna imprime el nivel de generalizacin de una ruta. o Dada una direccin IP, el n cleo recorre la tabla registro a registro haciendo un Y lgico o u o de la direccin y la mscara de nivel de generalizacin antes de compararla con el destino o a o que muestra dicho registro. La cuarta columna muestra varios indicadores que describen la ruta: G U H La ruta utiliza una pasarela. La interface est activa. a Esta interface permite el acceso a una sola mquina. Este es el caso de la a interface de lazo 127.0.0.1 en nuestro ejemplo. Este indicador se activa cuando el registro es generado por un mensaje de redireccin ICMP (ver seccin 2.5). o o Presente cuando este registro ha sido modicado por un mensaje de redireccin ICMP. o

La columna Ref de la salida de netstat muestra el n mero de referencias a esta ruta, u esto es, cuantas otras rutas dependen de sta (por ejemplo a travs de pasarelas). Las dos e e ultimas columnas muestran el n mero de veces que cada ruta ha sido usada y la interface u que procesa los datagramas para dicha ruta.

5.9.2

Consulta de las Estad sticas de una Interface

Cuando se ejecuta con el indicador -i, netstat presenta las estad sticas de cada una de las interfaces de red conguradas en ese momento. Si se usa tambin la opcin -a, el resultado e o son todas las interfaces presentes en el n cleo, no slo aqullas que ya han sido conguradas. u o e En vstout, netstat producir: a
$ netstat -i Kernel Interface table Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flags lo 0 0 3185 0 0 0 3185 0 0 0 BLRU eth0 1500 0 972633 17 20 120 628711 217 0 0 BRU

5.9. Comprobacin mediante netstat o

79

Los campos MTU y Met informan de los valores de MTU y mtrica congurados en e la interface. Las columnas RX y TX muestran el total de paquetes recibidos y enviados respectivamente sin errores (RX-OK/TX-OK), da ados (RX-ERR/TX-ERR), cuntos han n a sido descartados (RX-DRP/TX-DRP), y cuntos se han perdido por desbordamiento (RXa OVR/TX-OVR). La ultima columna muestra los indicadores activos para cada interface. Se trata de abreviaturas de una sola letra correspondientes a los nombres de los indicadores usados para congurar la interface mediante ifcong. B L M N O P R U Direccin de difusin activa. o o Interface correspondiente a un dispositivo de lazo. Recepcin de todos los paquetes (modo promiscuo). o No se usan pistas12 ARP est desactivado en esta interface. a Se trata de una conexin punto-a-punto. o Interface en uso. Interface activa.

5.9.3

Mostrar Conexiones

netstat soporta una serie de opciones que permiten mostrar los sockets 13 activos y pasivos. Las opciones -t, -u, -w, y -x muestran conexiones con sockets TCP, UDP, RAW, o UNIX. Si, adicionalmente incluye el indicador -a, tambin se muestran sockets en espera de una e conexin (a la escucha). Esto le permite listar todos los servidores que se ejecutan en su o sistema. La ejecucin de netstat -ta en vlager produce lo siguiente: o
$ netstat -ta Active Internet connections Proto Recv-Q Send-Q Local Address
12

Foreign Address

(State)

N.T.: Pistas aqu se reere a un mtodo de encapsulado de los datagramas IP en los que la informacin e o de la cabecera se coloca al nal del paquete. Se usan en redes Ethernet para ayudar en el alineamiento de datos en los bordes de pgina. a 13 N. del T.: Literalmente signica enchufe en ingls, y se reere a los descriptores de chero abiertos para e comunicaciones.

5.10. Comprobacin de las Tablas ARP o

80

tcp tcp tcp tcp tcp tcp tcp tcp tcp tcp tcp tcp

0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0

*:domain *:time *:smtp vlager:smtp *:telnet localhost:1046 *:chargen *:daytime *:discard *:echo *:shell *:login

*:* *:* *:* vstout:1040 *:* vbardolino:telnet *:* *:* *:* *:* *:* *:*

LISTEN LISTEN LISTEN ESTABLISHED LISTEN ESTABLISHED LISTEN LISTEN LISTEN LISTEN LISTEN LISTEN

Vemos que la mayor de los servidores estn simplemente esperando una conexin a a o entrante. Sin embargo, la cuarta l nea muestra una conexin entrante SMTP desde vstout, o y la sexta informa que hay una conexin saliente tipo telnet hacia vbardolino. 14 o El uso del indicador -a unicamente genera informacin de los sockets de todas las clases. o

5.10

Comprobacin de las Tablas ARP o

En ciertas ocasiones, resulta util poder ver o incluso alterar parte de las tablas ARP del n cleo, por ejemplo cuando sospecha que una direccin IP duplicada causa problemas inu o termitentes en su red. La herramienta arp fue creada con este objeto. Sus opciones son:
arp [-v] [-t tipohw ] -a [maquina ] arp [-v] [-t tipohw ] -s maquina direccionhw arp [-v] -d maquina [maquina ...]

Todos los argumentos maquina pueden ser nombres simblicos o direcciones IP en noo tacin de cuaterna. o Si usamos el primer comando, obtendremos el registro de la tabla correspondiente a la direccin IP o mquina especicada o, en el caso de que no se especique ninguna, se o a muestran todas. As si ejecutramos arp en vlager obtendr , a amos:
# arp -a
Para saber si la conexin es entrante o saliente basta mirar los puertos. El puerto correspondiente a o la mquina que llama es siempre un entero simple, mientras que la mquina receptora utiliza el puerto a a correspondiente al servicio en uso y que adems es representado por netstat usando el nombre simblico a o contenido en /etc/services.
14

5.10. Comprobacin de las Tablas ARP o

81

IP address 191.72.1.3 191.72.1.2 191.72.2.4

HW type 10Mbps Ethernet 10Mbps Ethernet 10Mbps Ethernet

HW address 00:00:C0:5A:42:C1 00:00:C0:90:B3:42 00:00:C0:04:69:AA

que muestra las direcciones Ethernet de vlager, vstout y vale. Se puede usar la opcin -t para mostrar la informacin referente a un tipo espec o o co de hardware. Los valores posibles son ether, ax25, o pronet, y se reeren a Ethernet a 10Mbps, AMPR AX.25, y equipos token ring IEEE 802.5, respectivamente. La opcin -s se usa para a adir de forma permanente la direccin de hardware de o n o maquina a las tablas ARP. direccionhw es la direccin de hardware y por defecto se supone o que es Ethernet, especicada como una cadena de seis bytes en hexadecimal separados entre medias por dos puntos. Se puede tambin especicar la direccin de otro tipo de hardware e o usando la opcin -t. o Un tipo de problema que puede requerir a adir una direccin IP manualmente a las n o tablas ARP es cuando, por alguna razn, una consulta ARP a una mquina remota falla, o a por ejemplo debido a que su controlador ARP no funciona correctamente o cuando alguna otra mquina en la red se identica errneamente como si ella misma tuviera esa direccin IP. a o o Tambin es un mdo, aunque algo drstico, de protejerse frente a mquinas que, conectadas e o a a a la misma Ethernet, tratan de hacerse pasar por otras. El uso de arp con el modicador -d borra todos los registros ARP que se reeran a la mquina dada. De este modo se puede forzar a una interface a que intente obtener de a nuevo la direccin Ethernet que corresponda a la direccin IP en cuestin. Esto resulta o o o util cuando un sistema mal congurado ha emitido una informacin ARP incorrecta (por o supuesto, primero habr de asegurarse de que el error de conguracin ha sido subsanado). a o La opcin -s se puede usar tambin para implementar ARP sustituto o proxy ARP. Se o e trata de una tcnica especial en la que una mquina, digamos gate, act a como pasarela e a u para otra diferente llamada fnord, haciendo como que ambas direcciones pertenecen a la misma mquina, en este caso gate. Esto se consigue haciendo p blico un registro ARP a u para fnord que apunta a su propia interface Ethernet. De este modo, cuando cualquier mquina de la red realiza una consulta sobre fnord, gate responde con un registro que a contiene su propia direccin Ethernet. La mquina que ha realizado la consulta enviar los o a a datagramas a gate, quien se los pasa a fnord. Este tipo de cosas puede ser necesario si, por ejemplo, pretende acceder a fnord mediante una mquina DOS que tiene una implementacin de TCP incorrecta que no entiende el a o encaminamiento demasiado bien. Cuando usa ARP sustituto, a todos los efectos la mquina a DOS ve a fnord en la subred local y, por tanto, no necesita preocuparse de cmo realizar o

5.11. El Futuro

82

el encaminamiento a travs de una pasarela. e Otro aplicacin muy util del ARP sustituto es cuando una de sus mquinas act a como o a u pasarela para otra mquina aunque slo de forma temporal, por ejemplo, en el caso de un a o enlace telefnico. En un ejemplo anterior, ya nos encontramos con el porttil vlite que se o a conectaba a vlager mediante un enlace PLIP de vez en cuando. Por supuesto, esto slo o funcionar si la direccin de la mquina para la que quiere actuar de sustituto ARP se a o a encuentra en la misma subred IP que su pasarela. As por ejemplo, vstout podr ser el , a sustituto ARP de cualquier mquina de la subred de la Cervecera (191.72.1.0), pero nunca a para mquinas de la subred de la Vinatera (191.72.2.0). a Abajo vemos el comando correcto para activar un ARP sustituto para fnord; por supuesto, la direccin Ethernet dada debe ser la de gate. o
# arp -s fnord 00:00:c0:a1:42:e0 pub

Para borrar el registro de ARP sustituto bastar: a


# arp -d fnord

5.11

El Futuro

Las comunicaciones en red con Linux estn en continua evolucin. Cambios fundamentales a o en el n cleo permitirn un esquema de conguracin muy exible que permitir que conu a o a gure los dispositivos de red en tiempo de ejecucin. Por ejemplo, ifcong tendr argumentos o a que permitan jar la l nea IRQ y el canal DMA. Otro cambio que se espera pronto es el indicador adicional mtu en el comando route, que permita establecer la Unidad de Transferencia Mxima para una ruta en particular. Esta a MTU espec ca de una ruta invalida el valor especicado para la interface. El uso t pico de esta opcin es para rutas a travs de pasarelas, en las que el enlace entre la pasarela o e y la mquina destinataria requiere un MTU muy bajo. Por ejemplo, supongamos que la a mquina wanderer est conectada a vlager a travs de un enlace SLIP. Entonces, al enviar a e e datos de vstout a wanderer, la capa de red en wanderer enviar paquetes de hasta 1500 a bytes, porque los paquetes son transmitidos mediante una Ethernet. El enlace SLIP, sin embargo, opera con una MTU de 296, as que la capa de red en vlager tendr que dividir a los paquetes IP en fragmentos ms peque os que quepan en 296 bytes. Si en vez de eso, a n congura la interface en vstout para que use una MTU de 296 desde el principio, se puede evitar el proceso de divisin, que es relativamente costoso.: o
# route add wanderer gw vlager mtu 296

5.11. El Futuro

83

Debe notar que la opcin mtu tambin permite que, de forma selectiva, evite los efectos o e de la pol tica las Subredes son locales (SNARL 15 ). Se trata de una opcin de conguracin o o del n cleo descrita en el cap u tulo 3.

15

Del ingls Subnets Are Local Policy e

Cap tulo 6

Servicio de nombres. Conguracin o


Como se coment en el cap o tulo 2, la red TCP/IP puede utilizar diferentes mtodos para e convertir nombres en direcciones IP. El mecanismo ms simple consiste en almacenar los a nombres en una tabla de mquinas en el chero /etc/hosts. Esto es unicamente interesante a en el caso de peque as redes de area local que slo requieran la administracin de una n o o persona, y que no tengan trco IP con el mundo exterior. Recordamos que el formato del a chero hosts fue descrito en el cap tulo 5. Alternativamente, puede utilizarse BIND el servicio de nombres Internet de Berkeley o Berkeley Internet Name Domain para traducir nombres de mquinas a direcciones IP a (cosa que tambin se conoce como resolucin). Congurar BIND puede ser una laboriosa e o tarea pero, una vez hecho, los cambios en la topolog de la red sern mucho ms fciles a a a a de hacer. En Linux, como en muchos otros sistemas Unix, el servicio de nombres se realiza mediante un programa llamado named. Al iniciarse, carga un conjunto de cheros maestros en su cache y espera peticiones de procesos locales o remotos. Existen distintas maneras de preparar BIND, y no es necesario ejecutar un servidor de nombres en cada mquina: a generalmente, uno para toda la red es suciente. Este cap tulo le dar ideas generales acerca de cmo congurar y ejecutar un servidor a o de nombres. Si pretende usar BIND en un entorno ms complejo que una peque a red local a n -tal vez con conexin a Internet- deber echar un vistazo a un buen libro sobre BIND, como o a DNS y BIND de Cricket Liu (vea [AlbitzLiu92]). Adems, le interesar echar un vistazo a a a los comentarios adicionales que aparecen junto a las fuentes de su versin de BIND. Tamo bin existe un grupo de news para cuestiones sobre DNS: el grupo comp.protocols.tcpe ip.domains.

84

6.1. La biblioteca de resolucin o

85

6.1

La biblioteca de resolucin o

Cuando hablamos del sistema de resolucin, no nos referiremos a una aplicacin en paro o ticular, sino a la biblioteca de resolucin: un conjunto de funciones que pueden encontrarse o en las bibliotecas estndar del lenguaje C. Las rutinas principales son gethostbyname(2) y a gethostbyaddr(2), que buscan la direccin IP de una mquina a partir del nombre y vicevero a sa. Es posible congurarlas para que simplemente miren en el chero hosts local (o remoto, si se usa NIS). Otras aplicaciones, como smail, pueden incluir diferentes rutinas para esto y necesitan cierto cuidado.

6.1.1

El chero host.conf

El chero host.conf es fundamental para controlar la conguracin del sistema de resolucin o o de nombres. Se encuentra en el directorio /etc e indica al sistema de resolucin qu servicios o e debe usar y en qu orden. e Las opciones del chero host.conf deben estar en l neas distintas. Los campos deben separarse por blancos (espacios o tabuladores). Un s mbolo almohadillado (#) supone desde ese punto hasta el nal de la l nea un comentario del chero. Las opciones disponibles son las siguientes: order Determina el orden en el que los servicios de resolucin se usan. Opciones o vlidas son bind para usar el servidor de nombres, hosts para buscar en a /etc/hosts y nis para buscar con NIS. Puede especicarse cualquiera de las anteriores, y el orden de aparicin determina qu servicio se prueba en primer o e lugar para intentar resolver el nombre. Va con las opciones on u o. Determina si una mquina del chero /etc/hosts a puede tener distintas direcciones IP o no. Esta opcin no tiene efecto en o peticiones via NIS o DNS. Como se explic en el cap o tulo anterior, DNS le permite encontrar un nombre de mquina perteneciente a una direccin IP dada utilizando el dominio a o in-addr.arpa. Los intentos de los servidores de nombres de proporcionar un nombre falso se conocen en Ingls como spoong 1 . Para evitar esto, el e sistema puede congurarse para comprobar si las direcciones IP originales estn de hecho asociadas con el nombre obtenido. Si no, el nombre ser rea a chazado y se retornar un error. Esta opcin se activa poniendo nospoof a o on.

multi

nospoof

N. del T.: literalmente, burla

6.1. La biblioteca de resolucin o

86

alert

Esta opcin puede ir con las palabras on u o. Si se activa, cualquier intento o de dar nombre falso ser anotado con un mensaje enviado al sistema de a registros syslog. Esta opcin lleva un nombre de dominio como argumento, que se quitar a o a los nombres antes de buscar su direccin. Es util para las entradas del cheo ro hosts, que podrn as ir solos los nombres de mquinas, sin el dominio. a a Cuando se busque una mquina con el nombre de dominio local ste ser elia e a minado, haciendo que la b squeda en el chero /etc/hosts tenga xito. u e Esta opcin puede ir repetida con varios dominios, de modo que su mquina o a podr ser local a diversos dominios. a

trim

Un ejemplo de este chero para la mquina vlager ser a a:


# /etc/host.conf # Tenemos servidor de nombres, pero no NIS (de momento) order bind hosts # Permitir multiples direcciones multi on # Contra los nombres falsos nospoof on # Dominio local por defecto (no necesario). trim vbrew.com.

6.1.2

Variables de entorno

Existen algunas variables de entorno que establecen opciones que tienen ms prioridad sobre a las puestas en el chero host.conf. Estas son:
RESOLV HOST CONF

Especica un chero alternativo a /etc/host.conf.


RESOLV SERV ORDER

Establece la opcin equivalente a la orden order del chero anterior. Los o servicios pueden ser hosts, bind y/o nis, separados por comas, espacios, puntos o puntos y coma.
RESOLV SPOOF CHECK

Determina la pol tica seguida frente a los nombres falsos. Estar completaa mente desactivada con la opcin o. Con las opciones warn y warn o se o realizarn comprobaciones contra los nombres falsos, pero en el primer caso a se mandarn los avisos al registro. Un valor * activa las comprobaciones a

6.1. La biblioteca de resolucin o

87

contra nombres falsos, pero las anotaciones en el registro se dejan como diga el chero host.conf.
RESOLV MULTI

El valor on activa la opcin multi, y el valor o la desactiva. o Esta variable lleva una lista de dominios por defecto, similar a la puesta en el chero host.conf con la opcin trim. o

RESOLV OVERRIDE TRIM DOMAINS

RESOLV ADD TRIM DOMAINS

Esta variable lleva una lista de dominios por defecto que se aade a las que n se dan en el chero host.conf.

6.1.3

Conguracin del chero resolv.conf o

Cuando se congura la librer de resolucin para utilizar los servicios de BIND, tiene a o que indicarse tambin qu servidores utilizar. El chero resolv.conf contiene una lista de e e servidores, que si est vac har considerar al sistema que el servidor est en su mquina. a a a a a Si ejecuta un servidor de nombres en su mquina local, tendr que congurarlo por a a separado, como se explicar despus. Si se encuentra en una red local y puede usar un a e servidor de nombres existente, mejor. La opcin ms importante del chero resolv.conf es nameserver, que tiene la direccin IP o a o del servidor de nombres a usar. Si especican varios servidores poniendo varias l neas nameserver, se intentarn usar en el orden dado; por lo que deber poner en primer lugar a a el servidor de nombres ms rpido o cercano. Actualmente, puede ponerse un mximo de a a a tres servidores distintos. Si no hay ninguna l nea nameserver, se intentar buscar el servidor en la propia mquina a a local. Hay dos opciones ms: domain y search, indicando la primera dominios alternativos a a probar si la b squeda inicial del nombre falla. Estos dominios irn separados por blancos o u a tabuladores. Si no se incluye una opcin search, se construir una lista de b squeda por defecto por o a u el dominio local ms todos los dominios padre hasta el ra El dominio local puede darse a z. con la opcin domain, y si no se da ninguno el sistema de resolucin lo obtendr mediante o o a la llamada al sistema getdomainname(2). Como lo anterior puede resultar confuso, sea el siguiente ejemplo de chero resolv.conf para la Cervecera Virtual:
# /etc/resolv.conf

6.2. Ejecucin de named o

88

# Nuestro dominio domain vbrew.com # # Nuestro servidor principal va a ser vlager: nameserver 191.72.1.1

Cuando se trate de traducir el nombre vale, el sistema empezar por buscar directamente a vale y si falla, probar con vale.vbrew.com y nalmente vale.com. a

6.1.4

Robustez del sistema de resolucin o

Si tiene en funcionamiento una red local dentro de otra ms grande, deber usar servidores a a de nombres principales siempre que sea posible. La ventaja de hacerlo as es que se consiguen generosas memorias cache, ya que todas las peticiones de nombres les llega a ellos. Este esquema, sin embargo, tiene un inconveniente: cuando un incendio inutiliz el cable de red o dorsal de nuestro departamento en la Universidad, no pudimos trabajar, pues ninguno de los servidores de nombres estaban accesibles. No funcionaban ni los terminales X ni las impresoras... Aunque no es muy habitual que las redes dorsales de las universidades sean pasto de las llamas, deber tomarse precauciones para casos como ste. an e Una solucin es poner un servidor de nombres local que se ocupe de sus nombres locales, o y reenv todas las peticiones de otros nombres a los servidores principales. Por supuesto, e esto slo es posible si usted tiene un dominio propio. o Alternativamente, puede mantener una copia de la tabla de nombres para su dominio o red local en el chero /etc/hosts. En el chero /etc/host.conf deber incluir la opcin a o order bind hosts para obligar a usar el chero local si el servidor principal de nombres falla.

6.2

Ejecucin de named o

El programa que proporciona servicio de nombres en las mquinas un x suele ser named 2 . a Es un servidor desarrollado inicialmente para Unix tipo BSD, con el propsito de proporcioo nar servicio de nombres a mquinas clientes y posiblemente a otros servidores de nombres. a La versin actualmente utilizada en casi todos los sistemas Linux es BIND-4.8.3. La o nueva versin, BIND-4.9.3, est en este momento en versin Beta, y pronto estar disponible o a o a para Linux.
2

N. del T.: Pronnciese neim-di: u

6.2. Ejecucin de named o

89

Esta seccin requiere ideas acerca de cmo funciona el Sistema de Nombres y Dominios o o (DNS). Si lo que sigue a continuacin le suena a chino, puede releer el cap o tulo 2, que le dar informacin acerca de cmo funciona bsicamente el DNS. a o o a El programa named suele iniciarse al arrancar la mquina, y ejecutarse hasta que se a apaga. Obtiene la informacin que necesita de un chero llamado /etc/named.boot, y dio versos cheros que contienen datos acerca de nombres de dominio y direcciones, llamados cheros de zona. Los formatos y semntica de estos cheros sern explicados en la siguiente a a seccin. o Para ejecutar named, solo tiene que teclear:
# /usr/sbin/named

El programa named se iniciar y leer el chero named.boot y los cheros de zona a a que se especiquen en l. Su n mero de proceso ser anotado en ASCII en el chero e u a /var/run/named.pid, recibir cheros de zona de los servidores principales si es necesario y a comenzar a escuchar las peticiones de DNS por el puerto 53. 3 a

6.2.1

El chero named.boot

El chero named.boot suele ser muy peque o y contiene punteros a cheros con informacin n o de zonas y a otros servidores de nombres. Los comentarios en este chero comienzan con un punto y coma y se extienden hasta el siguiente n de l nea. Antes de que veamos con ms a detalle el formato de este chero, observaremos el ejemplo para la mquina vlager dado en a 4 la gura 6.1. Los comandos cache y primary sirven para cargar informacin en named. Esta inforo macin se obtiene de los cheros especados en el segundo argumento. Contienen represeno taciones textuales de los registros DNS, que veremos a continuacin. o En este ejemplo, se congura named como el servidor de nombres principal para tres dominios: los que se indican con el comando primary. La primera l nea dice que named act e como servidor principal para vbrew.com, tomando la informacin de zona del chero u o named.hosts. El comando directory dice que todos los cheros de zona se encuentran en el directorio indicado.
Hay varios binarios de named disponibles en los servidores de FTP, cada uno congurado de forma diferente. Algunos anotan su chero de nmero de proceso en el directorio /etc/, otros en /tmp y otros en u /var/tmp. 4 Observar que los nombres de dominio del ejemplo se dan sin el punto nal. Versiones anteriores del programa named parece que traten los puntos al nal como errores y sin avisar descartan la l nea afectada. En la versin BIND-4.9.3 se intenta arreglar este tema. o
3

6.2. Ejecucin de named o

90

; ; Fichero /etc/named.boot para vlager.vbrew.com ; directory /var/named ; ; dominio fichero ;--------------------------------------------------cache . named.ca primary vbrew.com named.hosts primary 0.0.127.in-addr.arpa named.local primary 72.191.in-addr.arpa named.rev

Figura 6.1: El chero named.boot para vlager. La entrada iniciada con la palabra cache es muy especial y debe estar presente en casi todas las mquinas que ejecuten un servidor de nombres. Su funcin es doble: indica a a o named que active su cache, y tambin que cargue la informacin de los servidores ra del e o z chero indicado (en este caso, named.ca). Regresaremos a este concepto ms tarde. a A continuacin se presenta una lista de las opciones ms importantes que podemos poner o a en el chero named.boot: directory Especica un directorio donde estn los cheros de zona. Pueden ponerse vae rios directorios repitiendo el comando directory. De acuerdo con el estndar a de sistema de cheros para Linux, el directorio deber ser /var/named. a Los argumentos que lleva son un nombre de dominio y un nombre de fichero , declarando el servidor local primario para el dominio de named. Como servidor primario, named carga la informacin de zona del chero o dado. Normalmente, siempre habr por lo menos un comando primary en cada a chero named.boot, para traduccin inversa del IP 127.0.0.1, que es el ino terface de bucle o loopback, como ya sabemos. secondary Esta sentencia tiene como parmetros un nombre de dominio , una lista a de direcciones y un nombre de fichero . Declara el servidor local como servidor maestro secundario para el dominio indicado. Un servidor secundario mantiene tambin informacin autorizada como e o el primario, pero en lugar de obtenerla de un chero, la intenta obtener de un servidor primario. Debe proporcionarse al menos una direccin IP de o servidor primario en la lista de direcciones. El servidor local ir contactando a con cada uno de ellos hasta que transera con xito la base datos de zona, que e

primary

6.2. Ejecucin de named o

91

ser almacenada en el chero de respaldo -copia de seguridad o backup- dado a en el tercer argumento del comando. Si ninguno de los servidores primarios responde, se obtendr la informacin de zona del chero de respaldo. a o named intentar entonces refrescar los datos almacenados regularmente. Esa to se explica despus cuando se vean las entradas SOA de los cheros. e cache Tiene como argumentos un dominio y un nombre de fichero . Contiene la lista de servidores de nombres ra Slo se reconocern registros NS y A. z. o a El argumento domain es normalmente el nombre del dominio ra (.). z Esta informacin es fundamental: si el comando cache no existiera, named o no har una cache local. Esto degradar de forma importante el rendia a miento e incrementar la carga de la red si los nombres que se buscan no a estn en la red local. Adems, named tampoco ser capaz de contactar con a a a cualquier servidor de nombres ra y por ello, no podr resolver ninguna diz, a reccin excepto aquellas para las que est autorizado. Una excepcin a esta o e o regla, ocurre cuando se usan servidores redirigidos (con la opcin forwarders o explicada a continuacin). o forwarders Esta opcin lleva una lista de direcciones como argumento. Las direco ciones IP en la lista especican servidores de nombres a los que named puede preguntar si falla una traduccin de un nombre mediante su cache local. Se o intenta preguntar a todos en orden hasta que uno de ellos responda. Esta opcin hace que el servidor sea esclavo. Esto signica que nunca realio zar consultas recursivas, sino que las redirigir a los servidores especicados a a con forwarders.

slave

Hay dos opciones adicionales que no vamos a describir: sortlist y domain. Adems, hay a dos directivas que pueden aparecer en los cheros de zona. Son $INCLUDE y $ORIGIN, que tampoco vamos a describir, ya que raramente se utilizan.

6.2.2

Ficheros de base de datos DNS

Los cheros incluidos con named, como named.hosts, siempre tienen un dominio asociado a ellos llamado origen. Este es el nombre de dominio especicado con los comandos cache y primary. En un chero maestro, se pueden especicar nombres de mquinas y dominios a relativos a este dominio. Un nombre dado en un chero de conguracin se considera o absoluto si termina con un punto. En caso contrario se considera relativo al origen. Al origen en s mismo nos podemos referir con @. Todos los datos en un chero principal se dividen en registros de recursos o RRs. Son

6.2. Ejecucin de named o

92

la unidad de informacin del DNS. Cada RR tiene un tipo. Los registros de tipo A, por o ejemplo, asocian un nombre a una direccin IP. Los registros de tipo CNAME asocian un o alias de una mquina con su nombre ocial. Como ejemplo, obsrvese la gura 6.3 de la a e pgina 96, que muestra el chero named.hosts para nuestro sistema. a La representacin de los RRs en los cheros utiliza el siguiente formato: o
[domain ] [ttl ] [class ] type rdata

Los campos se separan por espacios o tabulaciones. Una entrada puede continuarse en varias l neas si se abre un parntesis antes del primer n de l e nea y el ultimo campo es seguido de un cierre de parntesis. Cualquier cosa entre un punto y coma y el siguiente e salto de l nea ser un comentario. a domain Aqu va el nombre del dominio que se aplica al RR actual. Si no se da nombre de dominio, se asume el mismo que se puso para el RR anterior. Con el n de forzar al sistema DNS a descartar informacin despus de cierto o e tiempo, cada RR lleva asociado un tiempo de vida o ttl 5 . El campo ttl especica, en segundos, el tiempo de validez de la informacin desde que se o obtiene del servidor. Es un n mero decimal de hasta ocho d u gitos. Si no se especica ning n valor, tomar uno por defecto del campo minimum u a del registro SOA precedente. class Aqu se indica la clase de direccin: IN para direcciones IP, HS para objetos o de la clase Hesiod. Trabajando con redes TCP/IP debe usarse siempre la clase IN. Si no se especica ning n valor, se toma el valor del RR anterior. u type Describe el tipo de RR. Los tipos habituales son A, SOA, PTR y NS. En las siguientes secciones comentaremos estos tipos de RRs. Contiene los datos asociados al RR. El formato depende del tipo, y se describirn ms adelante. a a

ttl

rdata

A continuacin se presenta una lista incompleta de RRs que se utilizan en los cheros de o DNS. Hay algunos ms que no vamos a comentar. Son experimentales, y de escaso uso. a
5

N. del T.: Time to Live

6.2. Ejecucin de named o

93

SOA

Describe una zona de autoridad (SOA signica Start of Authority, es decir, Comienzo de Autoridad). Se ala que los registros siguientes contienen n informacin autorizada para el dominio. Cada chero incluido en la opcin o o primary debe tener un registro SOA para esta zona. Los datos asociados contienen los siguientes campos: origin Nombre cannico del servidor de nombres primario para este o dominio. Se suele dar como nombre absoluto. Direccin de correo electrnico de la persona responsable de o o mantener el dominio, reemplazando el carcter @ por un a punto. Por ejemplo, si el responsable de nuestra red fuese janet, este campo contendr: janet.vbrew.com. a Este es el n mero de versin del chero de zona, expresado u o con un n mero decimal. Cuando se cambien datos del chero, u deber incrementarse este n mero. a u El n mero de versin es utilizado por los servidores secundau o rios para saber cundo la informacin de una zona ha cama o biado. Para mantenerse actualizados, los servidores secundarios piden cada cierto tiempo el registro SOA del primario, y comparan el n mero de versin con el que tienen en la cau o che. Si ha cambiado, el servidor secundario pedir de nuevo a la informacin de zona al primario. o refresh Especica el intervalo, en segundos, que esperan los servidores secundarios entre peticiones de registros SOA a los primarios. De nuevo, se trata de un n mero decimal de hasta u ocho d gitos. Normalmente, la topolog de la red no cambia mucho, con a lo que este n mero ser como poco de un d para grandes u a a redes, y de mucho ms tiempo para redes peque as. a n retry Este n mero determina los intervalos de tiempo entre reinu tentos de comunicacin con servidores primarios cuando una o peticin de una zona falla. No debe ser peque o ya que un o n fallo temporal del servidor primario har que el secundario a cargue in tilmente la red. Buenas elecciones son una hora o u como poco media hora. Especica el tiempo, en segundos, que tardar el servidor en a descartar los datos de zona si no ha podido contactar con

contact

serial

expire

6.2. Ejecucin de named o

94

el servidor primario. Normalmente ser grande. As Craig a , Hunt ([Hunt92]) recomienda 42 d as. minimum Valor por defecto para el valor del ttl en los registros de recursos que no lo especiquen. Sirve para indicar a otros servidores de nombres que descarten el RR tras cierto tiempo. No tiene efecto, sin embargo, sobre el tiempo en el que un servidor secundario intenta actualizar la informacin de zona. o El valor de minimum debe ser grande, en especial para redes locales con topolog poco cambiantes. Una buena eleccin as o puede ser de una semana o un mes. En el caso de que haya registros RR que cambien con frecuencia, siempre podr asiga narle valores particulares de ttl . A Asocia direcciones IP con nombres. El campo de datos contiene la direccin o separando los octetos por puntos, como es habitual. Para cada mquina slo puede haber un registro A, que se considera nombre a o ocial o cannico. Cualquier otro nombre ser un alias y debe ser incluido o a con registros CNAME. NS Apunta a un servidor de nombres maestro de una zona subordinada. Vea la seccin 2.6 para obtener informacin de por qu es necesario. El campo o o e de datos contiene el nombre del servidor. Para traducir ese nombre debe proporcionarse un registro A adicional, que se conoce como glue record, al proporcionar la direccin IP del servidor. o Asocia un alias con su nombre cannico. El nombre cannico se determina o o con un registro A. Los alias son indicados mediante registros CNAME. Se usa para asociar nombres del dominio in-addr.arpa con sus nombres normales. Se usa para obtener nombres a partir de direcciones IP (traduccin o inversa). El nombre de la mquina debe ser el cannico. a o Especica el servidor de correo para un dominio. En la seccin Encaminado o de correo en la Internet del cap tulo 13 se explica por qu son necesarios e estos servidores. La sintxis del registro MX es: a
[domain ] [ttl ] [class ] MX preference host

CNAME

PTR

MX

host es el nombre del servidor de correo para el dominio domain . Cada servidor tiene un valor entero de preferencia (preference ) asociado. Un agente de transporte de correo que desee entregar mensajes al dominio indi-

6.2. Ejecucin de named o

95

cado en domain lo intentar con los servidores de estos registros hasta que a uno responda. Se empieza probando con los de menor preferencia. HINFO Este registro da informacin sobre el hardware y el software de la mquina. o a Su sintaxis es:
[domain ] [ttl ] [class ] HINFO hardware software

El campo hardware identica el hardware utilizado. Existe un conjunto de convenciones sobre esto, el cual puede verse en el RFC 1340. Si el campo contiene blancos, debe encerrarse entre comillas dobles. El campo software especica el software utilizado, para el que tambin existen convenciones en e el mismo documento RFC.

6.2.3

Escribiendo los cheros

Las guras 6.2, 6.3, 6.4, y 6.5 son ejemplos de cheros para un servidor de nombres en nuestra red ejemplo, localizado en la mquina vlager. El ejemplo es sencillo dada la simplicidad de a nuestra red. Si tiene requisitos ms complejos, lase el libro DNS and BIND de Cricket a e Liu y Paul Albitz ([AlbitzLiu92]). El chero named.ca mostrado en la gura 6.2 da ejemplos de registros de servidores ra z. Un chero de cache t pico suele tener informacin sobre una docena de servidores. Puede o obtener la lista de servidores del dominio ra mediante el programa nslookup descrito ms z a 6 adelante.
; ; ; ; ; ; ; ; ; ; /var/named/named.ca Fichero de cache. No estamos en Internet, luego no necesitamos servidores raiz. Elimine los puntos y coma si desea activarlos. . NS.NIC.DDN.MIL . NS.NASA.GOV 99999999 99999999 99999999 99999999 IN IN IN IN NS A NS A NS.NIC.DDN.MIL 26.3.0.103 NS.NASA.GOV 128.102.16.10

Figura 6.2: Fichero named.ca.


Esto no podr hacerlo si no ha especicado algn servidor ra Puede en cambio ejecutar nslookup con a u z. un servidor diferente del suyo, o usar el chero de ejemplo de la gura 6.2 y entonces obtener una lista de servidores vlidos. a
6

6.2. Ejecucin de named o

96

; ; /var/named/named.hosts ; ; @ IN SOA

Maquinas locales en nuestra red El origen es vbrew.com vlager.vbrew.com. ( janet.vbrew.com. 16 ; serial 86400 ; refresco: una vez al dia 3600 ; reintentos: una hora 3600000 ; expiracion: 42 dias 604800 ; minimo: 1 semana ) vlager.vbrew.com.

IN

NS

; ; el correo local se distribuye en vlager IN MX 10 vlager ; ; direccion de loopback localhost. IN A 127.0.0.1 ; Nuestra ethernet vlager IN A 191.72.1.1 vlager-if1 IN CNAME vlager ; vlager es tambien un servidor de USENET news news IN CNAME vlager vstout IN A 191.72.1.2 vale IN A 191.72.1.3 ; Otra Ethernet vlager-if2 IN A 191.72.2.1 vbardolino IN A 191.72.2.2 vchianti IN A 191.72.2.3 vbeaujolais IN A 191.72.2.4

Figura 6.3: Fichero named.hosts.

6.2. Ejecucin de named o

97

; ; /var/named/named.local ; ; @ IN SOA

Traduccion inversa para 127.0.0 El origen es 0.0.127.in-addr.arpa. vlager.vbrew.com. ( joe.vbrew.com. 1 ; serial 360000 ; refresco: 100 horas 3600 ; reintento: 1 hora 3600000 ; expiracion: 42 dias 360000 ; minimo: 100 horas ) vlager.vbrew.com. localhost.

IN IN

NS PTR

Figura 6.4: Fichero named.local.

; ; /var/named/named.rev ; ; @ IN SOA

Traduccion inversa de nuestros numeros IP El origen es 72.191.in-addr.arpa. vlager.vbrew.com. ( joe.vbrew.com. 16 ; serial 86400 ; refresco: una vez al dia 3600 ; reintento: una hora 3600000 ; expiracion: 42 dias 604800 ; minimo: 1 semana ) vlager.vbrew.com. vlager.vbrew.com. vstout.vbrew.com. vale.vbrew.com. vlager-if1.vbrew.com. vbardolino.vbrew.com. vchianti.vbrew.com. vbeaujolais.vbrew.com.

IN ; nuestra red 1.1 2.1 3.1 ; la otra red 1.2 2.2 3.2 4.2 IN IN IN IN IN IN IN

NS PTR PTR PTR PTR PTR PTR PTR

Figura 6.5: Fichero named.rev.

6.2. Ejecucin de named o

98

6.2.4

Comprobacin del funcionamiento del servidor de nombres o

Existe una utilidad que resulta interesante para comprobar el funcionamiento del servidor de nombres recin congurado. Se llama nslookup, y puede usarse tanto interactivamente e como desde la l nea de comandos. En el ultimo caso, se invoca simplemente como:
nslookup nombre

y pedir el nombre indicado al servidor de nombres que aparezca en resolv.conf (si aparece a ms de uno, nslookup coger uno al azar). a a El modo interactivo, sin embargo, es mucho ms interesante. Adems de buscar mquia a a nas por su nombre, se puede tambin preguntar por cualquier registro DNS, y transferir la e informacin de zona completa de un dominio. o Cuando se invoca sin argumentos, nslookup mostrar el servidor de nombres en uso y a entrar en modo interactivo. En el prompt > que se mostrar, puede teclear cualquier a a nombre de dominio por el que quiera preguntar. Por defecto, preguntar por registros de a tipo A, es decir, aquellos que dan una direccin IP correspondiente al dominio introducido. o Esto se puede cambiar tecleando set type=tipo, donde tipo es un nombre de registro de recurso (RR) como los descritos antes (en la seccin 6.2) o bien la palabra ANY. o Por ejemplo, esta puede ser una sesin con nslookup: o
$ nslookup Default Name Server: rs10.hrz.th-darmstadt.de Address: 130.83.56.60 > sunsite.unc.edu Name Server: rs10.hrz.th-darmstadt.de Address: 130.83.56.60 Non-authoritative answer: Name: sunsite.unc.edu Address: 152.2.22.81

Si intenta preguntar por un nombre que no tiene direccin IP asociada, pero se encueno tran otros registros relacionados en el DNS, el programa responder con un error No type a A records found (no se encontraron registros de tipo A). Sin embargo, puede hacer preguntas para otro tipo de registros sin ms que usar el comando set type. Por ejemplo, a para obtener el registro SOA de unc.edu, podr escribir lo siguiente: a

6.2. Ejecucin de named o

99

> unc.edu *** No address (A) records available for unc.edu Name Server: rs10.hrz.th-darmstadt.de Address: 130.83.56.60 > set type=SOA > unc.edu Name Server: rs10.hrz.th-darmstadt.de Address: 130.83.56.60 Non-authoritative answer: unc.edu origin = ns.unc.edu mail addr = shava.ns.unc.edu serial = 930408 refresh = 28800 (8 hours) retry = 3600 (1 hour) expire = 1209600 (14 days) minimum ttl = 86400 (1 day) Authoritative answers can be found from: UNC.EDU nameserver = SAMBA.ACS.UNC.EDU SAMBA.ACS.UNC.EDU internet address = 128.109.157.30

De manera similar, se pueden pedir registros MX, etc. Y mediante la palabra ANY se obtendrn todos los RR asociados al nombre escrito. a
> set type=MX > unc.edu Non-authoritative answer: unc.edu preference = 10, mail exchanger = lambada.oit.unc.edu lambada.oit.unc.edu internet address = 152.2.22.80 Authoritative answers can be found from: UNC.EDU nameserver = SAMBA.ACS.UNC.EDU SAMBA.ACS.UNC.EDU internet address = 128.109.157.30

Una aplicacin prctica de nslookup para la depuracin es obtener la lista de servidores o a o ra para el chero named.ca. Esto puede hacerse pidiendo todos los registros NS asociados z al dominio ra z:
> set type=NS > . Name Server: fb0430.mathematik.th-darmstadt.de

6.2. Ejecucin de named o

100

Address:

130.83.2.30

Non-authoritative answer: (root) nameserver = NS.INTERNIC.NET (root) nameserver = AOS.ARL.ARMY.MIL (root) nameserver = C.NYSER.NET (root) nameserver = TERP.UMD.EDU (root) nameserver = NS.NASA.GOV (root) nameserver = NIC.NORDU.NET (root) nameserver = NS.NIC.DDN.MIL Authoritative answers can be found from: (root) nameserver = NS.INTERNIC.NET (root) nameserver = AOS.ARL.ARMY.MIL (root) nameserver = C.NYSER.NET (root) nameserver = TERP.UMD.EDU (root) nameserver = NS.NASA.GOV (root) nameserver = NIC.NORDU.NET (root) nameserver = NS.NIC.DDN.MIL NS.INTERNIC.NET internet address = 198.41.0.4 AOS.ARL.ARMY.MIL internet address = 128.63.4.82 AOS.ARL.ARMY.MIL internet address = 192.5.25.82 AOS.ARL.ARMY.MIL internet address = 26.3.0.29 C.NYSER.NET internet address = 192.33.4.12 TERP.UMD.EDU internet address = 128.8.10.90 NS.NASA.GOV internet address = 128.102.16.10 NS.NASA.GOV internet address = 192.52.195.10 NS.NASA.GOV internet address = 45.13.10.121 NIC.NORDU.NET internet address = 192.36.148.17 NS.NIC.DDN.MIL internet address = 192.112.36.4

El conjunto completo de comandos disponibles en nslookup puede obtenerse con la orden interna help.

6.2.5

Otras utilidades interesantes

Hay algunas utilidades que pueden ayudarle en sus tareas de administrador de BIND. Describiremos dos de ellas. Por favor, eche un vistazo a la documentacin que traen para saber o cmo utilizarlas. o La utilidad hostcvt sirve para obtener una conguracin inicial de BIND a partir del o chero /etc/hosts. Genera tanto los cheros de traduccin directa (registros A) como los de o traduccin inversa (registros PTR) teniendo cuidado con los nombres de alias y otros. Por o supuesto, no har todo el trabajo, pues aun puede que necesite ajustar los registros SOA o a

6.2. Ejecucin de named o

101

a adir registros MX. Suponemos que tambin le ayudar tener cerca algunas aspirinas. El n e a programa hostcvt forma parte de las fuentes de BIND, pero puede obtenerse por separado en algunos servidores FTP dedicados a Linux. Despus de congurar el servidor de nombres, puede que desee comprobar el resultado. e La aplicacin ideal para esto (al menos para m es el programa dnswalk, un paquete basado o ) en perl que navega por la base de datos DNS, buscando errores habituales y vericando que la informacin es consistente. El programa dnswalk ha sido enviado recientemente al grupo o comp.sources.misc de News, y deber estar en los servidores FTP que archiven este a grupo (un servidor que seguro que lo tiene es ftp.uu.net).

Cap tulo 7

SLIP: IP por l nea serie


Los protocolos de l nea serie, SLIP y PPP, permiten a los pobres tener conexin a Intero net. Slo se necesita un mdem y un puerto serie con buer FIFO. Utilizarlo no es ms o o a complicado que usar un buzn, y cada vez existen ms proveedores que le ofrecen acceso o a telefnico IP a un coste asequible para todos. o En Linux hay controladores tanto de SLIP como de PPP. SLIP es ms veterano y por a tanto ms estable. PPP para Linux ha sido recientemente desarrollado por Michael Callahan a y Al Longyear; y se describir en el prximo cap a o tulo 1 .

7.1

Requisitos generales

Para utilizar SLIP o PPP, hay que congurar algunas caracter sticas de red que ya se han descrito en cap tulos anteriores, por supuesto. Por lo menos, debe tener el interfaz de bucle (loopback) y el sistema de traduccin de nombres. Cuando se conecte a Internet, querr usar, o a por supuesto, el DNS. Lo ms fcil es poner la direccin de alg n servidor de nombres en a a o u el chero resolv.conf ; este servidor se usar tan pronto como SLIP conecte. Lo mejor es a poner el servidor de nombres ms cercano. a Sin embargo, esta solucin no es la optima, ya que las b squedas de nombres seguirn o u a yendo por la conexin SLIP o PPP. Si le interesa consumir menos ancho de banda, puede o instalarse un servidor de nombres slo con cache. No requiere un dominio ya que slo o o actuar como relevo, es decir, pasar a otro servidor las peticiones que Vd. realice. La a a ventaja es que construir una cache de modo que al pedir un nombre varias veces seguidas, a slo se contactar con el servidor externo la primera vez. Un chero named.boot que sirva o a
N. del T.: Actualmente, podemos decir que PPP ya es sucientemente estable. De hecho, SLIP cada vez se utiliza menos
1

102

7.2. Utilizacin de SLIP o

103

para esto puede ser el siguiente:


; fichero named.boot para un servidor solo con cache directory /var/named primary cache 0.0.127.in-addr.arpa . db.127.0.0 ; interfaz "loopback" db.cache ; servidores raiz

Adems debe tener un chero db.cache con una lista de servidores ra vlidos. Este a z a chero est descrito al nal del cap a tulo dedicado a la conguracin del servidor de nombres. o

7.2

Utilizacin de SLIP o

Los servidores de IP por telfono suelen ofrecer servicios SLIP mediante cuentas de usuario e especiales. Despus de entrar en una cuenta no se entra en un intrprete de comandos e e normal, sino en un programa o shell script que se ejecuta para activar el manejador SLIP del servidor y congurar la interfaz con la red. En ese momento tiene que hacer lo mismo en su mquina. a En algunos sistemas operativos, el manejador de SLIP es un programa de usuario, pero bajo Linux es parte del n cleo, cosa que lo hace mucho ms rpido. Requiere, sin embargo, u a a que la l nea serie sea expl citamente convertida a modo SLIP. Esto se hace mediante una disciplina de l nea especial llamada SLIPDISC. Mientras que un terminal (tty) est en modo a normal (DISC0), intercambiar datos slo con procesos de usuario, mediante las llamadas a o read(2) y write(2) habituales, y el manejador de SLIP no podr escribir o leer del terminal. a En el modo SLIPDISC se cambian los papeles: ahora los programas de usuario no podrn a acceder a la l nea pero todos los datos que lleguen se pasarn al manejador SLIP. a El manejador de SLIP entiende por s mismo varias versiones del protocolo, incluyendo CSLIP, que realiza la llamada compresin de cabeceras de Van Jacobson en los paquetes IP o 2 Esto aumenta el rendimiento de las sesiones interactivas. Adems, hay versiones salientes. a de seis bits de estos protocolos. Una forma fcil de convertir una l a nea serie a modo SLIP es usar la utilidad slattach. Suponiendo que tenemos un mdem en /dev/cua3 y que se ha entrado correctamente en el o servidor de SLIP, se deber ejecutar: a
# slattach /dev/cua3 &
2

La compresin de cabeceras de Van Jacobson se describe en el RFC 1441. o

7.2. Utilizacin de SLIP o

104

Esto cambiar el modo de l a nea de cua3 a SLIPDISC, y la enganchar a uno de los a interfaces SLIP disponibles. Si es la unica conexin SLIP se enganchar al interface sl1, si o a es la segunda, a sl2, etc. Los n cleos actuales soportan hasta ocho enlaces SLIP simultneos. u a La encapsulacin por defecto que elige slattach es CSLIP. Puede elegirse otra con la o opcin -p. Para usar SLIP sin compresin deber ponerse: o o a
# slattach -p slip /dev/cua3 &

Otros modos son cslip, slip6, cslip6 (para la versin de 6 bits) y adaptive para SLIP o adaptativo, que deja al n cleo averiguar qu encapsulacin de SLIP usa el otro extremo de u e o la comunicacin. o Observe que debe utilizarse el mismo sistema de encapsulacin que use el otro extremo. o Por ejemplo, si cowslip usara CSLIP, tendr que usarlo Vd. tambin. El s a e ntoma t pico de una seleccin incorrecta es que la orden ping a una mquina remota no tendr respuesta. Si o a a la otra mquina le hace ping a Vd, recibir mensajes del tipo Cant build ICMP header a a (no se puede construir la cabecera ICMP) en la consola. Una forma de intentar evitar este tipo de problemas es usar SLIP adaptativo. De hecho, slattach no slo le permite activar SLIP, sino tambin otros protocolos serie o e como PPP o KISS (protocolo que se usa en packet-radio). Para ms detalle, vea el manual a en l nea de slattach(8). Despus de preparar la l e nea para SLIP, tendr que congurar el interfaz de red. De a nuevo, se har esto mediante los programas estndares ifcong y route. Suponiendo que a a desde la mquina vlager hemos llamado al servidor cowslip, se deber ejecutar: a a
# ifconfig sl0 vlager pointopoint cowslip # route add cowslip # route add default gw cowslip

El primer comando congura la interface como un enlace a cowslip punto a punto, mientras que el segundo y el tercero sirven para a adir la ruta correspondiente a cowslip n como ruta por defecto y congurar esa mquina como pasarela de todos nuestros mensajes. a Cuando se quiera terminar el enlace SLIP, debe empezarse por eliminar todas las rutas a travs de cowslip mediante el comando route con la opcin del, desactivar el interface e o y enviar al proceso slattach la se al SIGHUP. Despus de esto se deber colgar el mdem n e a o usando un programa de terminal de nuevo:
# route del default

7.3. Utilizacin de dip o

105

# route del cowslip # ifconfig sl0 down # kill -HUP 516

7.3

Utilizacin de dip o

Lo visto hasta ahora no es dif de hacer. Sin embargo, puede que desee automatizar cil los pasos de modo que slo tenga que invocar un comando. El programa dip hace esto. 3 o La versin que existe en este momento es la 3.3.7. Ha sido parcheada por mucha gente, o con lo que no podremos hablar simplemente de el programa dip. Las modicaciones sern a incorporadas en futuras versiones. dip tiene un intrprete de un lenguaje script sencillo que puede manejar automticamente e a el mdem, convertir la l o nea a modo SLIP y congurar las interfaces. Es bastante restrictivo por lo simple que es, pero suciente para la mayor de los casos. Una nueva versin de este a o programa podr traer una versin ms completa del lenguaje. a o a Para ser capaces de congurar el interfaz SLIP, dip necesita tener permisos de superusuario. Puede hacerse poniendo el programa con el bit setuid y de propiedad del usuario root, de modo que cualquier usuario sin privilegios podr poner en marcha el programa. a Esto es, sin embargo, muy peligroso, ya que una conguracin incorrecta del encaminamieno to de dip puede estropear el encaminamiento de su red local. Adems, dar a los usuarios a a la posibilidad de conectarse a cualquier servidor SLIP, y lanzar ataques peligrosos a la red. Si a n quiere permitir a los usuarios activar conexiones SLIP, escriba peque os programas u n para cada servidor de modo que cada uno invoque a dip con el script espec co. Estos 4 programas pueden tener privilegios sin peligro.

7.3.1

Un script de ejemplo

Un script de ejemplo se encuentra en la gura 7.1. Puede utilizarse para conectarse a cowslip invocando a dip de esta forma:
# dip cowslip.dip DIP: Dialup IP Protocol Driver version 3.3.7 (12/13/93) Written by Fred N. van Kempen, MicroWalt Corporation. conectado a cowslip.moo.com with addr 193.174.7.129 #
3 4

dip signica Dialup IP y fue escrito por Fred van Kempen. diplogin puede (y debe) ser ejecutado como superusuario. Vea la seccin del nal de este cap o tulo.

7.3. Utilizacin de dip o

106

# Script de dip para conectarse al servidor cowslip # Preparar nombres local y remoto get $local vlager get $remote cowslip port cua3 speed 38400 modem HAYES reset flush # # # # # seleccion de puerto serie poner velocidad maxima poner tipo de modem reiniciar modem y terminal (tty) limpiar buffer de respuesta del modem

# Prepararse para marcado. send ATQ0V1E1X1\r wait OK 2 if $errlvl != 0 goto error dial 41988 if $errlvl != 0 goto error wait CONNECT 60 if $errlvl != 0 goto error # Ahora ya estamos conectados sleep 3 send \r\n\r\n wait ogin: 10 if $errlvl != 0 goto error send Svlager\n wait ssword: 5 if $errlvl != 0 goto error send hey-jude\n wait running 30 if $errlvl != 0 goto error # Ahora ya estamos en la cuenta. Lancemos SLIP. print Conectado a $remote with address $rmtip default # Hacer que este enlace sea nuestra ruta por defecto mode SLIP # Pasemos a modo SLIP # en caso de error se ejecuta lo siguiente error: print Fallo de la conextion SLIP con $remote .

Figura 7.1: Un script de ejemplo para dip

7.3. Utilizacin de dip o

107

Despus de conectar a cowslip y activar SLIP, dip pasar a ejecutarse en segundo plano. e a Ahora puede conectarse a travs del enlace SLIP mediante los programas habituales de red. e Para terminar la conexin, ejecute dip con la opcin -k. Esto enviar una se al de colgar o o a n al proceso dip, cuyo n mero se encontrar almacenado en el chero /etc/dip.pid. 5 u a
# dip -k

En el lenguaje que interpreta dip las palabras precedidas con un signo de dlar se o corresponden con nombres de variables. dip tiene un conjunto predenido de variables que se listar a continuacin. $remote y $local, por ejemplo, contienen los nombres de mquina a o a local y remoto, respectivamente, involucrados en el enlace SLIP. Las dos primeras sentencias del ejemplo son los comandos get, que sirven para establecer variables. Aqu las mquinas local y remota han sido vlager y cowslip, respectivamente. , a Las cinco sentencias que siguen preparan la l nea serie y el mdem. La palabra reset o env una cadena de reinicio al mdem; que ser el comando ATZ para mdems compatia o a o bles con Hayes. La siguiente sentencia limpia el buer de salida del mdem, para conseguir o que el dilogo de entrada (login y password) funcione correctamente. Este dilogo es exa a tremadamente simple: llama al n mero 41988, que es el n mero de cowslip, entra en la u u cuenta Svlager mediante la clave de acceso hey-jude. El comando wait hace que se espere a la aparicin de la cadena que sigue a esta orden, mientras que su segundo argumento o especica el tiempo de espera en segundos. Los comandos if sirven para ir comprobando la correccin del procedimiento de entrada en la cuenta. o Los comandos nales, ejecutados tras entrar en la cuenta, son default, que hace que el enlace SLIP sea la ruta por defecto para todos los destinos y mode, que pone la l nea en modo SLIP y congura automticamente el interface y la tabla de encaminamiento. a

7.3.2

Gu de Referencia de dip a

Aunque se utiliza mucho, dip aun no est muy documentado. En esta seccin, daremos a o una peque a gu de referencia de los comandos de dip. Puede obtenerse un resumen de n a los comandos ejecutando dip en modo de prueba (opcin -t), e introduciendo el comando o help. Para obtener ayuda sobre un comando se debe ejecutar sin argumentos; por supuesto esto no funcionar con comandos que no tengan argumentos. a
$ dip -t DIP: Dialup IP Protocol Driver version 3.3.7 (12/13/93) Written by Fred N. van Kempen, MicroWalt Corporation.
5

Vea el grupo alt.tla si desea conocer ms abreviaturas en Ingls que sean pal a e ndromas, como este caso.

7.3. Utilizacin de dip o

108

DIP> help DIP knows about the following commands: databits get mode reset term default goto modem send wait dial help parity sleep echo if print speed flush init port stopbits

DIP> echo Usage: echo on|off DIP> _

En los siguientes apartados, los ejemplos que muestran el prompt DIP> indican cmo o se introducir el comando en modo prueba, y qu salida producir Los ejemplos que no a e a. muestren este prompt deben tomarse como trozos de scripts.

Comandos del mdem o Existe un conjunto de comandos de dip pensados para congurar la l nea serie y el mdem. o Algunos son de uso obvio, como port, que sirve para elegir el puerto serie, y speed, databits, stopbits, y parity, que establecen los parmetros habituales de las l a neas serie. El comando modem selecciona el tipo de mdem. Actualmente slo est soportado el o o a 6 . Debe decirse el tipo, pues si no dip se negar a ejecutar los comandos dial y tipo HAYES a reset. Este ultimo comando env la cadena de reinicio al mdem, la cual depende del tipo a o de mdem elegido. Para modems compatibles Hayes, esta cadena es ATZ. o La orden ush puede utilizarse para vaciar las respuestas anteriores de la memoria del mdem. De otro modo, un script de dilogo con el mdem podr fallar, porque lea la o a o a respuesta OK que proceda de ordenes anteriormente enviadas al mdem. o El comando init selecciona la cadena de inicializacin enviada al mdem antes de marcar, o o que para modems Hayes es, por defecto, la cadena ATE0 Q0 V1 X1 , que activa el eco de los comandos, hace que el mdem d los cdigos de resultado en modo extendido (es decir, o e o por palabras y no n meros de cdigo) y selecciona marcado a ciegas, sin esperar tono de u o marcado. El comando dial env la cadena de inicializacin al mdem y llama al sistema remoto. a o o El comando de marcado por defecto en los modems Hayes es ATD.
6

Deben respetarse las maysculas u

7.3. Utilizacin de dip o

109

Comandos echo y term El comando echo on se usa con propsitos de depuracin, ya que hace que dip copie en la o o consola todo lo que env al puerto serie. Puede desactivarse despus con una orden echo e e o. dip tambin puede salirse temporalmente a un modo terminal, de modo que Vd. pueda e dialogar manualmente con el mdem. Para ello se usa el comando term, y para salir de este o modo se pulsa Ctrl-] .

Comando get La orden get sirve para poner valores a las variables internas. Puede usarse como se vio en ejemplos anteriores, o bien de forma interactiva, a adiendo la palabra ask : n
DIP> get $local ask Enter the value for $local: _

Un tercer uso de este comando es intentar obtener el valor de la mquina remota. a Aunque extra o pueda parecer, resulta util en muchos casos: muchas veces el servidor SLIP n no permite que nosotros nos pongamos cualquier direccin IP, sino que nos la asignar de o a un conjunto predeterminado y nos informar de ello mediante una frase tal como Your a address: 193.174.7.202 (Su direccin: 193.174.7.202). De esta frase querremos que o dip ajuste automticamente nuestra direccin IP, para lo que haremos lo siguiente (observar a o que se usa el parmetro remote): a
... dialogo de entrada en la cuenta .... wait address: 10 get $locip remote

Comando print Este es el comando para enviar textos a la consola. Cualquier variable puede enviarse a la consola mediante comandos de este tipo, por ejemplo:
DIP> print Utilizando puerto $port con velocidad $speed Utilizando puerto cua3 con velocidad 38400

7.3. Utilizacin de dip o

110

Nombres de las variables dip slo entiende un conjunto predenido de variables. Un nombre de variable siempre o empieza con un s mbolo de dlar y debe escribirse en min sculas. o u Las variables $local y $locip contienen respectivamente el nombre de nuestra mquina a y su direccin IP. Poniendo el nombre de la mquina, dip guardar dicho nombre en la o a a variable $local, al tiempo que guardar la direccin IP en la variable $locip. a o Las variables $remote y $rmtip hacen lo mismo pero con la mquina remota. Por otro a lado, $mtu contiene el valor del MTU para la conexin actual. o Esas cinco variables son las unicas que pueden actualizarse mediante un comando get. Otras deben actualizarse mediante comandos espec cos, aunque siempre pueden sacarse por pantalla con el comando print. Esas variables son $modem, $port, y $speed. La variable $errlvl sirve para conocer el resultado del ultimo comando ejecutado, siendo de valor 0 si fue bien, o distinto de 0 si hubo alg n problema. u

Comandos if y goto El comando if es un salto condicional. Su sintaxis es


if variable oper numero goto etiqueta

donde la expresin puede ser una simple comparacin entre una de las variables siguientes: o o $errlvl, $locip, y $rmtip. El segundo operando debe ser un n mero entero; el operador oper u puede ser uno de los siguientes: ==, !=, <, >, <=, y >=. El comando goto lanza la ejecucin a partir de la situacin de la etiqueta, que debe o o ponerse al principio de una l nea seguida de dos puntos.

Comandos send, wait y sleep Estos comandos ayudan a implementar sencillos scripts de dilogo. send env su argumento a a a la l nea serie. No pueden ponerse variables, pero entiende secuencias de escape al estilo del lenguaje C, como \n y \b. El carcter de tilde (~ ) puede usarse como abreviatura del a retorno de carro. El comando wait hace que dip espere a que por la l nea serie se reciba la palabra pasada como primer argumento. El segundo argumento, que es opcional, ja un tiempo

7.4. Funcionamiento en Modo Servidor

111

de espera mximo, en segundos. Si la palabra no se recibe en ese tiempo, el comando a fallar actualizando la variable $errlvl con el valor 1. a La orden sleep puede usarse para esperar cierto tiempo, por ejemplo para esperar pacientemente una invitacin a entrar en la cuenta. Una vez ms, el tiempo se especicar en o a a segundos.

Comandos mode y default Se utilizan para cambiar el puerto entre modo SLIP o normal, y congurar la interface. El comando mode es el ultimo que ejecuta dip antes de pasar al segundo plano (daemon). A menos que suceda un error, de este comando no se retorna. Este comando tiene un argumento, que es el protocolo. Actualmente se reconocen los protocolos SLIP y CSLIP, es decir, la versin actual de dip no soporta SLIP adaptativo. o Despus de poner la l e nea en modo SLIP, dip ejecutar un comando ifcong para cona gurar la interface como enlace punto a punto y otro route para cambiar las tablas de encaminamiento apuntando a la mquina remota. a Si, adems, se ejecuta default antes que mode, el programa har que el camino por a a defecto de nuestros paquetes vaya al enlace SLIP.

7.4

Funcionamiento en Modo Servidor

Curiosamente, congurar su mquina como servidor SLIP va a ser mucho ms sencillo que a a congurarla como cliente. Una forma de hacerlo es usar dip en modo servidor, que puede conseguirse si se ejecuta como diplogin. Su conguracin principal se encontrar en /etc/diphosts, que asocia o a nombres de cuenta con direcciones de mquina asignadas. Alternativamente, puede usar slia plogin, una utilidad procedente de BSD que proporciona un esquema de conguracin que le o permite ejecutar shell scripts cuando las mquinas se conectan y desconectan. Actualmente, a su desarrollo est en fase beta. a Ambos programas necesitan que se tenga una cuenta por cada cliente SLIP. Por ejemplo, si proporcionramos un servicio SLIP a Arthur Dent en dent.beta.com, deber crearse a a una cuenta dent a adiendo la siguiente l n nea al chero /etc/passwd:
dent:*:501:60:Cuenta SLIP de Arthur Dent:/tmp:/usr/sbin/diplogin

7.4. Funcionamiento en Modo Servidor

112

Luego, se pondr la clave usando el programa passwd. a Ahora, cuando dent entre, dip entrar en modo servidor. Para comprobar si est autoa a rizado para usar SLIP, buscar su nombre de usuario en /etc/diphosts. Este chero detalla a derechos de acceso y parmetros de conexin para cada usuario. Una entrada de este chero a o ser tal como: a
dent::dent.beta.com:Arthur Dent:SLIP,296

El primer campo de los separados por dos puntos, es el nombre de la cuenta. El segundo campo puede contener una clave adicional (vea ms adelante). El tercero es el nombre a o direccin IP de la mquina llamante. El siguiente es un campo informativo acerca del o a usuario, por el momento sin utilidad. Por ultimo, se describen separados por comas los parmetros de la conexin: el protocolo (SLIP o CSLIP) seguido del valor de MTU. a o Cuando dent entra en su cuenta, diplogin extrae la informacin acerca de l y si hay o e clave de acceso en la l nea correspondiente de /etc/diphosts, la pedir como clave externa a de seguridad, que se compara con la existente en el chero (que no va encriptada). Si no coinciden, el intento de entrada ser rechazado. a En otro caso, diplogin proceder a cambiar el modo a SLIP o CSLIP, y preparar la a a interfaz y el encaminamiento. Esta conexin permanecer hasta que el mdem opuesto o a o cuelgue, momento en que diplogin dejar la l a nea en modo normal y terminar. a diplogin necesita privilegios de superusuario. Si no tiene puesto el bit setuid, deber coa piar el programa con el nombre diplogin y ponerle a ste los privilegios. A diplogin se le e pueden dar sin miedo, sin afectar al estado de dip en s mismo.

Cap tulo 8

El Protocolo Punto a Punto (PPP)


8.1 Desenredando las Pes

Al igual que el SLIP, el PPP es un protocolo utilizado para enviar datagramas a travs de e una conexin serie, pero mejora algunas de las carencias del anterior. El PPP permite a o las partes comunicantes negociar al principio de la conexin opciones como las direcciones o IP y el tama o mximo de los datagramas, y proporciona mecanismos de autenticacin n a o de los clientes. Para cada una de estas capacidades, el PPP tiene un protocolo concreto. A continuacin, describiremos brevemente estos bloques bsicos que constituyen el PPP. o a Esta descripcin est muy lejos de ser completa; si quiere saber ms sobre el PPP, lea sus o a a especicaciones en el RFC 1548, as como en la docena de RFCs que le acompa an. 1 n En la parte ms baja del PPP est el protocolo de Control de Conexin de Datos de a a o 2 3 , que dene los l Alto-Nivel, abreviadamente HDLC mites de las tramas PPP individuales, y proporciona un control de errores de 16 bit. Al contrario de lo que ocurr con SLIP, una a trama PPP es capaz de llevar paquetes de otros protocolos distintos al IP, como el IPX de Novell o el Appletalk. El PPP consigue esto a adiendo a la trama bsica HDLC un campo n a de control que identica el tipo de paquete contenido en la misma. El LCP, Protocolo de Control de Enlace 4 , es utilizado en la parte ms alta del HDLC a para negociar las opciones concernientes a la conexin de datos, tales como la Unidad o Mxima de Recepcin (MRU) que establece el tama o mximo del datagrama que cada a o n a extremo de comunicacin acepta recibir. o
Los RFCs ms relevantes estn listados en la Bibliograf al nal de este libro. a a a N. del T.: Del ingls High-Level Data Link Control e 3 En realidad, el HDLC es un protocolo mucho ms general publicado por la Organizacin Internacional a o de Estndares (ISO). a 4 N. del T.: Del ingls Link Control Protocol e
2 1

113

8.2. PPP en Linux

114

Un paso importante en la conguracin del enlace PPP corresponde a la autenticacin o o de los clientes. Aunque no es obligatorio, es casi un deber para las l neas telefnicas. o Normalmente el servidor pide al cliente que se identique probando que se sabe alguna clave secreta. Si el llamante se equivoca, la conexin se termina. Con el PPP, las autorizaciones o se producen en los dos sentidos; es decir, el que llama tambin puede pedir al servidor que se e autentique. Estos procedimientos de autenticacin son totalmente independientes entre o s Hay dos protocolos distintos, seg n el tipo de autenticacin, los cuales discutiremos ms . u o a adelante. Se llaman el Protocolo de Autenticacin por Contrase a, o PAP, y el Protocolo o n 5. de Autenticacin por Reto, o CHAP o Cada protocolo de red que es encaminado a travs de la conexin de datos, como el e o IP, el Appletalk, etc; es congurado dinmicamente usando el correspondiente Protocolo de a Control de Red (NCP). Por ejemplo, para enviar datagramas IP a travs del enlace, los dos e nodos tienen que negociar en primer lugar qu direcciones IP van a utilizar. El protocolo e de control utilizado para esto es el IPCP 6 , el Protocolo de Control del IP. Aparte de enviar datagramas IP estndar a travs del enlace, el PPP tambin permite a e e la compresin Van Jacobson de las cabeceras en los datagramas IP. Es una tcnica para o e meter las cabeceras de los paquetes TCP en un espacio de tan solo tres bytes. Tambin e se utiliza en el CSLIP, y es conocida coloquialmente como compresin de cabeceras VJ. La o utilizacin de la compresin puede negociarse tambin al comienzo de la conexin gracias o o e o al IPCP.

8.2

PPP en Linux

En el Linux, la funcionalidad del PPP est dividida en dos partes, un controlador de HDLC a de bajo nivel situado en el kernel, y el demonio pppd del espacio del usuario que controla los diferentes protocolos de control. La versin actual del PPP para Linux es la linux-ppp-1.0.0, o y contiene el mdulo PPP para el kernel, el pppd, y un programa llamado chat utilizado o para llamar al sistema remoto. El controlador del PPP para el kernel fue escrito por Michael Callahan. El pppd fue escrito a partir de una implementacin gratuita del PPP para mquinas Sun y 386BSD o a que a su vez fue escrita por Drew Perkins y otros programadores, y mantenida por Paul Mackerras. Fue transportada a Linux por Al Longyear. 7 El chat fue escrito por Karl Fox.8
N. del T.: Del ingls Challenge Handshake Authentication Protocol e N. del T.: Del ingls IP Control Protocol e 7 Los dos autores han dicho que van a estar muy ocupados por bastante tiempo. As que si tiene alguna pregunta sobre el PPP en general, mejor pregunte a la gente en el canal de la lista de correo de los Linux activists en la RED. 8 karl@morningstar.com.
6 5

8.3. Conexiones con pppd

115

Al igual que el SLIP, el PPP est implementado a travs de una disciplina especial para a e la utilizacin de las l o neas. Para utilizar una l nea de serie como enlace PPP, en primer lugar tendr que establecer la conexin con su mdem, como es usual; y posteriormente a o o pasar la l nea al modo PPP. En este modo, todos los datos que nos llegan son pasados al controlador del PPP, que comprueba la validez de las tramas que llegan (cada trama HDLC trae un cdigo de control de errores de 16 bit), las descompone y las despacha. Actualmente, o es capaz de controlar datagramas IP, utilizando opcionalmente la compresin de cabeceras o Van Jacobson. Tan pronto como Linux acepte IPX, el controlador PPP ser ampliado para a poder controlar tambin los paquetes IPX. e El controlador del kernel es ayudado por el pppd, el demonio del PPP, que realiza toda la fase de inicializacin y autenticacin necesaria antes de que el verdadero trco de red o o a pueda ser enviado a travs del enlace. El comportamiento del pppd puede ser ajustado e utilizando varias opciones. Como el PPP es bastante complejo, es imposible explicar todas ellas en un slo cap o tulo. Por eso, este libro no puede cubrir todos los aspectos del pppd, sino solamente darle una introduccin. Para ms informacin, lea las pginas de manual o a o a y los cheros README de la distribucin con las fuentes del pppd, que deber ayudarle o an a comprender la mayor parte de las cuestiones que este cap tulo no trata. Si su problema persiste incluso despus de leer toda la documentacin, deber pasarse por el grupo de e o a noticias comp.protocols.ppp para solicitar ayuda, que es el lugar donde encontrar a la a mayor parte de la gente envuelta en el desarrollo del pppd.

8.3

Conexiones con pppd

Cuando quiere conectarse a Internet a travs de un enlace PPP, tiene que congurar las e capacidades bsicas de red como el dispositivo de loopback y el sistema de resolucin de a o direcciones. Las dos han sido explicadas en los cap tulos previos. Hay algunas cosas que es necesario decir sobre la utilizacin del DNS en un enlace serie; por favor, lea el cap o tulo del SLIP para ms informacin. a o Como ejemplo introductorio de cmo establecer una conexin PPP con el pppd, suponga o o que est de nuevo en vlager. Ya ha llamado al servidor PPP, c3po, y entrado en la cuenta a del usuario ppp. c3po ya ha lanzado su controlador PPP. Despus de salir del programa e de comunicaciones que utiliz para llamar, se ejecuta el siguiente comando: o
# pppd /dev/cua3 38400 crtscts defaultroute

Esto cambiar a la l a nea de serie cua3 al modo PPP y establecer un enlace IP con a c3po. La velocidad de transferencia utilizada en el puerto de serie ser de 38400bps. La a

8.4. Los Ficheros de Opciones

116

opcin crtscts activa el control de ujo por hardware en el puerto, que es una obligacin o o para velocidades superiores a los 9600 bps. Lo primero que hace el pppd tras ejecutarse es negociar varias caracter sticas para el enlace con el extremo remoto utilizando el LCP. Normalmente, el conjunto de opciones que intenta negociar el pppd funcionar, as que no nos meteremos ms con este asunto. a a Volveremos a tratar el LCP con ms detalle en alguna seccin posterior. a o Hasta ahora, tambin hemos asumido que c3po no necesita ninguna autenticacin de e o nosotros, as que la fase conguracin habr sido completada con xito. o a e El pppd negociar entonces los parmetros IP con su compa ero usando IPCP, el protoa a n colo de control IP. Al no especicar direccin IP alguna, el pppd intentar usar la direccin o a o que se obtiene al resolver el nombre del ordenador local. Decididas las direcciones, cada pppd se lo comunicar al otro extremo. a Normalmente no habr ning n problema con esta conguracin por defecto. Incluso a u o si su mquina est en una Ethernet, puede utilizar la misma direccin IP tanto para la a a o Ethernet como para el interface PPP. No obstante, el pppd le permite utilizar direcciones diferentes, o incluso pedir a su compa ero que utilice alguna direccin espec n o ca. Estas opciones sern discutidas ms adelante. a a Tras pasar por la fase de conguracin IPCP, el pppd congurar la red de su ordenador o a para utilizar el enlace PPP. En primer lugar, congurar el interface de red PPP como un a enlace punto-a-punto, utilizando el ppp0 para el primer enlace PPP que est activo, ppp1 e para el segundo, y as sucesivamente. A continuacin preparar una entrada de la tabla o a de encaminamiento que apunte al ordenador del otro extremo del enlace. En el ejemplo anterior, el pppd har que el encaminamiento de red por defecto apunte a c3po, debido a a que lo especicamos con la opcin defaultroute. 9 Esto provoca que todos los datagramas o dirigidos a ordenadores que no estn en su red sean enviados a c3po. Hay un variado n mero e u de formas de encaminamiento que acepta el pppd, y las cubriremos en mayor detalle ms a adelante.

8.4

Los Ficheros de Opciones

Antes de que el pppd procese los argumentos de su l nea de comandos, echa un vistazo a varios cheros para establecer sus opciones por defecto. Estos cheros pueden contener cualquier argumento de l nea de comando vlido, distribuido a travs de un cierto n mero a e u de l neas. Los comentarios se escriben tras el s mbolo de almohadillado (#). El primer chero de opciones es el /etc/ppp/options, que es le cada vez que el pppd do
9

El encaminamiento por defecto es instalado slamente si no hay ninguno establecido de antes. o

8.5. Realizacin de la Llamada con chat o

117

arranca. El utilizarlo para establecer algunas opciones globales por defecto es una buena idea, pues le permite evitar que sus usuarios hagan ciertas cosas que podr comprometer an la seguridad del sistema. Por ejemplo, para hacer que el PPP necesite alg n tipo de autenu ticacin del otro sistema, a adir la opcin auth a este chero. Esta opcin no puede ser o n a o o evitada por el usuario, de forma que se hace totalmente imposible el establecer una conexin o PPP con cualquier sistema que no est en nuestras bases de datos para la autenticacin. e o El otro chero de opciones, que es le despus del /etc/ppp/options, es el .ppprc do e situado en el directorio home del usuario. Permite que cada usuario especique su propio conjunto de opciones por defecto. Un chero /etc/ppp/options de ejemplo puede parecerse a ste: e
# Opciones globales para el pppd de vlager.vbrew.com auth # obligar a autentificacion usehostname # usar el nombre del ordenador local para el CHAP lock # usar el bloqueo de dispositivo tipo UUCP domain vbrew.com # nombre de nuestro dominio

Las dos primeras opciones se utilizan para la autenticacin y sern explicadas a contio a nuacin. La expresin lock hace que el pppd utilice el mtodo de bloqueo de dispositivos o o e de UUCP. De esta manera, cada proceso que accede a un dispositivo serie, por ejemplo el /dev/cua3, crea un chero de bloqueo llamado LCK..cua3 en el directorio de spool del UUCP para se alizar que ese dispositivo est siendo usado. Esto es necesario para evitar n a que otros programas, como pueden ser el minicom o el uucico, abran el dispositivo de serie mientras ste es usado por el PPP. e La razn de poner stas opciones en el chero de conguracin global es que stas no o e o e pueden ser pasadas por alto, de forma que proporcionan un razonable nivel de seguridad. Pero tenga en cuenta que, a pesar de todo, algunas opciones podrn ser pasadas por alto a ms tarde; un ejemplo de esto es la cadena connect. a

8.5

Realizacin de la Llamada con chat o

Uno de los problemas que puede haberle dado el ejemplo anterior es que ten que establecer a la conexin manualmente antes de poder ejecutar el pppd. Al contrario que el dip, el pppd o no tiene su propio lenguaje de scripts para llamar al sistema remoto y entrar en l, sino e que conf en otro programa externo para que haga esto. El comando que tiene que ser a ejecutado puede drsele al pppd con la opcin connect en la l a o nea de comando. El pppd redirigir la entrada y salida estndar de comandos a la l a a nea de serie. Un programa util

8.5. Realizacin de la Llamada con chat o

118

para esto es el expect, escrito por Don Libes. Tiene un lenguaje muy potente basado en el Tcl, y fue dise ado exactamente para este tipo de aplicacin. n o El paquete pppd incluye un programa similar llamado chat que le permite especicar un script del estilo de los de UUCP. Bsicamente, un script del chat consiste en una secuencia a alterna de cadenas que esperamos recibir del sistema remoto y las respuestas que hemos de enviar. Las llamaremos respectivamente, cadenas esperadas y cadenas enviadas. Este es un extracto de un t pico script del chat:
ogin: b1ff ssword: s3kr3t

Esto le indica al chat que espere a que el sistema remoto le env el mensaje de peticin e o de usuario y entonces le devuelve el nombre del usuario b1. Slo esperamos por ogin: o para que no importe si el mensaje de login empiece por l may scula o min scula, o si llega u u con basura. La siguiente cadena es una cadena esperada que hace que el chat espere al mensaje de peticin de contrase a y la env nuestra contrase a como respuesta. o n e n Esto es bsicamente lo que tienen los scripts del chat. Un script completo para llamar a a un servidor PPP deber adems, incluir los comandos apropiados para el mdem. Suponga a, a o que su mdem entiende los comandos Hayes, y que el n mero de telfono del servidor es o u e el 318714. En ese caso, la l nea completa del chat para que pudisemos establecer una e conexin con c3po ser o a
$ chat -v ATZ OK ATDT318714 CONNECT ogin: ppp word: GaGariN

Por denicin, la primera cadena que damos al chat tiene que ser una cadena esperada, o pero como el mdem no dir nada hasta que hablemos con l, hacemos que el chat la ignore o a e especicando una cadena vac Continuamos enviando ATZ, el comando de inicializain a. o para los modems compatibles Hayes, y esperamos a que nos responda con OK. La siguiente cadena env al chat el comando de marcado junto con el n mero de telfono, y espera a a u e que aparezca el mensaje CONNECT como respuesta. Esto est seguido de otra cadena vac a a otra vez, porque ahora no queremos enviar nada, sino esperar a que aparezca el mensaje de peticin de login. El resto del script del chat funciona exactamente como antes. o La opcin -v hace que el chat capture todas las actividades hacia la facilidad local2 del o demonio syslog.10 El escribir el script de chat directamente en la l nea de comando implica un cierto riesgo, pues los usuarios pueden ver la l nea de comando de un proceso con el comando
Si edita el syslog.conf para redirigir estos mensajes a un chero, asegrese de que ste chero no pueda u e ser le por cualquiera, pues el chat tambin captura todo el script de entrada por defecto incluyendo las do e contraseas. n
10

8.5. Realizacin de la Llamada con chat o

119

ps. Puede evitar esto colocando el script del chat en un chero, por ejemplo llamado dialc3po. Entonces, podr hacer al chat leer el script del chero en vez de la l a nea de comando utilizando la opcin -f, seguida por el nombre del chero. Por lo tanto la invocacin o o completa al pppd tendr ahora un aspecto como ste: a e
# pppd connect "chat -f dial-c3po" /dev/cua3 38400 -detach \ crtscts modem defaultroute

Adems de la opcin connect que se reere al script de llamada, hemos a adido dos a o n opciones ms a la l a nea de comando: -detach, que le indica al pppd que no se separe de la consola ni se vuelva proceso de segundo plano. La palabra modem activa algunas acciones espec cas para mdem sobre el dispositivo de serie, como colgar la l o nea antes y despus de e la llamada. Si no utiliza esta opcin, el pppd no se preocupar de la l o a nea DCD del puerto, y por lo tanto no podr detectar si el extremo remoto cuelga de forma imprevista. a Los ejemplos anteriores eran bastante simples; el chat permite el uso de scripts mucho ms complejos. Una caracter a stica muy util es la capacidad de especicar cadenas frente a las cuales parar el chat con un error. Unas cadenas t picas para parar pueden ser mensajes como BUSY o NO CARRIER, que son los que su mdem produce cuando el n mero al que o u llama comunica o no descuelga. Para hacer que el chat las reconozca inmediatamente en vez de esperar, puede introducirlas al principio del script utilizando la opcin ABORT: o
$ chat -v ABORT BUSY ABORT NO CARRIER ATZ OK ...

De una forma parecida, puede variar el valor del tiempo de espera para algunas partes de los scripts de chat insertando opciones TIMEOUT. Para ms detalles, vea la pgina de a a manual del chat(8). Algunas veces, tambin querr disponer de alg n tipo de ejecucin condicional de ale a u o gunas partes del script de chat. Por ejemplo, cuando reciba el mensaje de peticin de o login desde el extremo remoto, puede que quiera enviar un BREAK, o un retorno de carro. Puede conseguir esto a adiendo un sub-script a la parte esperada del script. Consiste en n en una secuencia de de cadenas de env y esperadas, de la misma forma que el script en o su totalidad, pero separadas por guiones. El sub-script es ejecutado desde el momento en que la cadena esperada a la que estn ligados no es recibida a tiempo. Para este ejemplo, a modicar amos el script del chat de la siguiente manera:
ogin:-BREAK-ogin: ppp ssword: GaGariN

Ahora, cuando el chat no recibe el mensaje de login del sistema remoto, se ejecuta el sub-script enviando un BREAK y esperando de nuevo por el mensaje de login. Si ahora ya aparece, el script contin a como usualmente y si no, termina con un error. u

8.6. Depuracin de la Conguracin PPP o o

120

8.6

Depuracin de la Conguracin PPP o o

Por defecto, el pppd registrar todos los avisos y mensajes de error gracias a las facilidades a daemon del syslog. Tiene que a adir una entrada al syslog.conf que redirija esto a un n chero, o incluso a la consola, pues de otra forma el syslog simplemente desechar estos a mensajes. La siguiente entrada env todos los mensajes a /var/log/ppp-log: a
daemon.* /var/log/ppp-log

Si la conguracin de su PPP no funciona, echar un vistazo a este chero le deber o a dar una primera pista de qu es lo que va mal. Si esto no le ayuda, tambin puede activar e e la salida extra de depuracin utilizando la opcin debug. Esto hace que el pppd registre o o los contenidos de todos los paquetes de control enviados o recibidos a syslog. Todos los mensajes irn a la facilidad daemon. a Finalmente, la opcin ms drstica es el activar la depuracin a nivel de kernel llao a a o mando al pppd con la opcin kdebug. Esto es seguido por un argumento numrico que es o e el O exclusivo (xor) de los siguientes valores: 1 para mensajes de depuracin generales, 2 o para imprimir los contenidos de todas las tramas HDLC que nos llegan, y 4 para hacer al controlador imprimir todas las tramas HDLC salientes. Para capturar los mensajes de depuracin a nivel de kernel, tiene que, o bien ejecutar un demonio syslogd que lea el chero o /proc/kmsg, o si no el demonio klogd. Cualquiera de los dos dirige la depuracin del kernel o a la facilidad kernel del syslogd.

8.7

Opciones de Conguracin IP o

El IPCP se utiliza para negociar un par de parmetros IP a la hora de congurar la conea xin. Normalmente, cada extremo de comunicacin puede enviar un Paquete de Peticin de o o o Conguracin IPCP, indicando qu valores quiere cambiar de los que vienen por defecto, y o e a qu valor. Tras la recepcin, el extremo remoto inspecciona cada opcin sucesivamente, e o o y, o responde que la acepta, o la rechaza. El pppd le da gran control sobre qu opciones intentar negociar el IPCP. Puede ajustar e a esto a travs de varias opciones en la l e nea de comandos de las que hablamos a continuacin. o

8.7.1

Eleccin de las Direcciones IP o

En el ejemplo anterior, hac amos que el pppd llamase a c3po y estableciera una conexin o IP. No nos preocupbamos de elegir una direccin IP particular en ninguno de los extremos a o

8.7. Opciones de Conguracin IP o

121

de la conexin. En vez de ello, tombamos la direccin de vlager como la direccin IP o a o o local, y dejbamos a c3po darse su propia direccin. Algunas veces, sin embargo, es util a o el tener control sobre la direccin utilizada por alguno de los extremos de la conexin. El o o pppd soporta diferentes posibilidades sobre este aspecto. Para pedir direcciones particulares, normalmente d al pppd la siguiente opcin: e o
dir local :dir remota

donde dir local y dir remota pueden ser especicadas en notacin de cudruplas numrio a e 11 Esto hace al pppd intentar usar la primera direccin cas o como nombres de ordenador. o como su propia direccin IP, y la segunda como la de su compa ero. Si el compa ero rechaza o n n alguna de ellas durante la negociacin IPCP, no se establecer ninguna conexin IP. 12 o a o Si slo quiere establecer la direccin local, y aceptar cualquier direccin que utilice o o o el compa ero, simplemente deseche la parte de la dir remota . Por ejemplo, para hacer a n vlager usar la direccin IP 130.83.4.27 en vez de la suya propia, le escribir 130.83.4.27: o a en la l nea de comando. De forma similar, para establecer la direccin remota unicamente, o a dejar el campo de la dir local en blanco. Por defecto, el pppd utilizar entonces la a direccin asociada al nombre de su ordenador. o Algunos servidores PPP que sirven a muchos clientes asignan direcciones dinmicamente: a las direcciones son asignadas a los sistemas slo cuando llaman, y son reclamadas de nuevo o una vez que se desconecta. Cuando llame a uno de stos servidores, debe asegurarse de que e el pppd no solicita una direccin IP particular, sino que acepta la direccin que el servidor o o le pide que utilice. Esto quiere decir que no tiene que poner el argumento dir local . Adems, tendr que utilizar la opcin noipdefault, que hace que el pppd espere a que el a a o compa ero le proporcione la direccin IP en vez de utilizar la direccin IP del ordenador n o o local.

8.7.2

Encaminamiento a travs de una Conexin PPP e o

Tras congurar el interface de red, el pppd preparar un encaminamiento que slamente le a o sirve para comunicarse con el otro extremo. Si el ordenador remoto est en una red de area a local, seguramente usted desear conectar tambin con los ordenadores que estn detrs a e a a de l; para eso, se ha de congurar un encaminamiento de red adecuado. e
El utilizar nombres de ordenador en esta opcin tiene algunas consecuencias a la hora de la autenticacin o o utilizando CHAP. Puede echar un vistazo a la seccin sobre CHAP ms adelante. o a 12 Puede permitir al otro PPP sobreescribir sus ideas de direcciones IP dando al pppd las opciones ipcp-accept-local e ipcp-accept-remote. Eche un vistazo a la pgina del manual para ms detalles. a a
11

8.7. Opciones de Conguracin IP o

122

Ya hemos visto antes que se puede pedir al pppd que congure el encaminamiento por defecto utilizando la opcin defaultroute. Esta opcin es muy util si el servidor PPP al o o que llama va a actuar como su pasarela a Internet. El caso contrario, cuando su sistema act a como un gateway para un slo ordenador, u o es tambin relativamente fcil de llevar a cabo. Por ejemplo, imagine a alg n empleado de e a u la Cervecera Virtual cuyo ordenador de casa se llama loner. Cuando est conectando a e vlager a travs de PPP, l utiliza una direccin de la subred de la Cervecera. Podremos dar e e o al pppd del ordenador vlager la opcin proxyarp, que instalar una entrada proxy-ARP o a para el ordenador loner. Esto har que loner sea automticamente accesible desde todos a a los ordenadores de la Cervecera y la Vinatera. De cualquier manera, las cosas no son siempre tan fciles como esto, por ejemplo cuando a intentamos unir dos redes de area local. Esto requiere normalmente el a adir una ruta de n red espec ca, porque estas redes tendrn ya sus propios encaminamientos por defecto. Por a otra parte, el tener a los dos extremos de comunicacin utilizando la conexin PPP como o o encaminamiento por defecto generar un ciclo sin n, donde los paquetes con destinos a desconocidos rebotar entre los dos ordenadores hasta que su tiempo de vida (TTL) an expirase. Pongamos un ejemplo: suponga que la Cervecera Virtual abre una sucursal en alguna otra ciudad. La sucursal utiliza su propia red Ethernet utilizando el n mero de red IP u 191.72.3.0, que es la subred 3 de la red de clase B de la Cervecera. Quieren conectarse a la red Ethernet principal de la Cervecera a travs de PPP para actualizar las bases de e datos de clientes, etc. De nuevo, vlager actuar como pasarela; la otra mquina se llama a a sub-etha y tiene una direccin IP de 191.72.3.1.. o Cuando sub-etha conecta a vlager, har que el punto de encaminamiento por defecto a sea vlager, como es habitual. En vlager, de todas formas, tendremos que instalar un encaminamiento de red para la subred 3 que vaya a travs de sub-etha. Para esto, utilizamos e una caracter stica del pppd de la que no hemos hablado hasta ahora el comando ip-up. Es un script de shell situado en /etc/ppp que se ejecuta despus de que el interface PPP ha e sido congurado. Cuando est presente, se le llama con los siguientes parmetros: a a
ip-up interface dispositivo velocidad dir local dir remota

donde interface se reere al interface de red usado, dispositivo es la ruta al dispositivo serie utilizado, (/dev/tty si se utiliza la salida y entrada estndar), y velocidad es la a velocidad del dispositivo. dir local y dir remota nos dan las direcciones IP usadas en dos extremos de la conexin en notacin de cuarteto numrico. En nuestro caso, el script o o e ip-up puede contener el siguiente fragmento de cdigo: o

8.8. Opciones de Control de Enlace

123

#!/bin/sh case $5 in 191.72.3.1) # este es sub-etha route add -net 191.72.3.0 gw 191.72.3.1;; ... esac exit 0

De una forma anloga, /etc/ppp/ip-down se utiliza para deshacer todas las acciones de a ip-up despus de que la conexin PPP ha sido cortada. e o A pesar de todo, la tabla de encaminamiento a n no est completa. Hemos congurado u a las entradas de la tabla de encaminamiento para las dos ordenadores con PPP, pero hasta ahora, todos los dems ordenadores de las dos redes no saben nada sobre la conexin PPP. a o Esto no es un gran problema si todos los ordenadores de la sucursal tienen su encaminamiento por defecto encaminado a sub-etha, y todos los ordenadores de la Cervecera encaminan hacia vlager por defecto. Si ste no fuera el caso, su unica posibilidad normalmente e ser usar un demonio de encaminamiento como el gated. Tras crear el encaminamiento de a la red en vlager, el demonio de encaminamiento pasar el nuevo encaminamiento a todos a los ordenadores de las redes dependientes de sta. e

8.8

Opciones de Control de Enlace

Anteriormente, ya hemos tratado sobre el LCP, el protocolo de control de enlace (Link Control Protocol), que se utiliza para negociar las caracter sticas de la conexin y comprobarla. o Las dos opciones ms importantes que pueden ser negociadas por el LCP son la unidad a mxima de recepcin (MRU) y el mapa de caracteres de control as a o ncronos. Tambin e hay varias opciones de conguracin LCP ms, pero son demasiado espec o a cas como para comentarlas aqu Eche un vistazo a la RFC 1548 para ver una descripcin de stas. . o e El mapa de caracteres de control as ncronos, tambin conocido como el mapa as e ncrono, es usado en enlaces as ncronos, como las l neas telefnicas, para identicar los caracteres de o control que deben de ser reemplazados por una secuencia espec ca de dos caracteres 13 . Por ejemplo, puede que quiera evitar los caracteres XON y XOFF utilizados con el control de ujo hardware activado, pues alg n mdem mal congurado puede parar hasta que reciba u o un XOFF. Otro candidato puede ser Ctrl-] (el carcter de escape del telnet). El PPP le a permite rehuir de cualquiera de los caracteres con cdigos ASCII comprendidos entre 0 y o 31 especicndolos en el mapa as a ncrono.
13

N. del T.: Estos caracteres se conocen como rehuidos

8.8. Opciones de Control de Enlace

124

El mapa as ncrono (async map) es un mapa de bits de 32 bits de ancho, y cuyo bit menos signicativo corresponde al carcter ASCII NUL, y cuyo bit ms signicativo corresponde al a a ASCII 31. Si un bit se pone a 1, indica que el caracter correspondiente debe de ser rehuido antes de ser enviado a travs de la conexin. Inicialmente, el mapa as e o ncrono se establece como 0x, lo que signica que todos los caracteres de control sern rehuidos. a Para decir al otro ordenador que no tiene que rehuir de todos los caracteres de control sino slo de algunos, puede establecer un nuevo mapa as o ncrono al pppd utilizando la opcin o asyncmap. Por ejemplo, si slo ^S y ^Q (los cdigos ASCII 17 y 19, normalmente utilizados o o para XON y XOFF) deben de ser rehuidos, utilice la siguiente opcin: o
asyncmap 0x000A0000

La unidad mxima de recepcin, o MRU, se aliza al otro extremo el tama o mximo de a o n n a las tramas HDLC que queremos recibir. Aunque sto puede que le recuerde al valor de la e MTU (unidad mxima de transferencia), tienen poco en com n. El MTU es un parmetro a u a del dispositivo de red del kernel, y describe el tama o mximo de la trama que el interface n a es capaz de soportar. El MRU es ms bien un consejo al ordenador remoto para que no a genere ninguna trama ms grande que la MRU; no obstante, el interface ha de ser capaz de a recibir tramas de hasta 1500 bytes. Por lo tanto, elegir un MRU no es tanto una cuestin de qu es capaz de transmitir o e la conexin, sino de cmo conseguir el mejor rendimiento. Si va a usar la conexin para o o o aplicaciones interactivas, el poner en el MRU valores tan bajos como 296 es una buena idea, de forma que un paquete ocasional mayor (digamos, de una sesin de FTP) no haga a su o cursor saltar. Para decir al pppd que pida un MRU de 296, pondr la opcin mru 296. a o Las MRUs peque as, de todas maneras, slo tienen sentido si no tiene la compresin de n o o cabecera VJ desactivada (est activada por defecto). a El pppd tambin entiende un par de opciones LCP que conguran el comportamiento e general del proceso de negociacin, como es el mximo n mero de peticiones de congurao a u cin que pueden ser intercambiadas antes de que se corte la conexin. A menos que sepa o o exactamente lo que est haciendo, deber dejar este valor jo. a a Finalmente, hay dos opciones que se aplican a los mensajes de eco del LCP. El PPP dene dos mensajes, Peticin de Eco y Respuesta de Eco. El pppd usa esta caracter o stica para comprobar si la conexin est a n operativa. Puede habilitar esto utilizando la opcin o a u o lcp-echo-interval junto con el tiempo en segundos. Si no se reciben tramas del ordenador remoto en este intervalo, el pppd genera una Peticin de Eco, y espera a que el compa ero o n devuelva una Respuesta de Eco. Si el compa ero no produce una respuesta, la conexin es n o cortada despus de que se hayan enviado un cierto n mero de peticiones. Este n mero puede e u u

8.9. Consideraciones Generales sobre Seguridad

125

ser establecido utilizando la opcin lcp-echo-failure. Por defecto, esta caracter o stica tambin est desactivada. e a

8.9

Consideraciones Generales sobre Seguridad

Un demonio de PPP mal congurado puede ser un peligroso agujero en la seguridad. Es equivalente a dejar a cualquiera enganchar su mquina a su red Ethernet (y eso es muy a malo). En esta seccin, discutiremos algunas medidas que deber hacer su conguracin o an o del PPP segura. Uno de los problemas del pppd es que el congurar el dispositivo de red y la tabla de encaminamiento requiere los privilegios de root. Normalmente resolver esto ejecutndolo a a como setuid de root. A pesar de ello, el pppd permite a los usuarios establecer varias opciones de relevancia para la seguridad. Para protegerse contra cualquier ataque que pueda lanzar alg n usuario manipulando estas opciones, se sugiere que establezca un par u de valores por defecto en el chero global /etc/ppp/options, tal como los mostrados en el chero de ejemplo en la seccin Utilizacin de los Ficheros de Opciones. Algunos de o o ellos, como los de las opciones de autenticacin, no pueden ser despus modicados por el o e usuario, as que proporcionan una razonable proteccin contra las manipulaciones. o Por supuesto, tambin tiene que protegerse de los sistemas con los que habla con PPP. e Para evitar que otros ordenadores puedan hacerse pasar por quien no son, debe utilizar siempre alg n tipo de autenticacin con el otro extremo de la comunicacin. Adems, u o o a no deber permitir a ordenadores desconocidos usar cualquier direccin IP que elijan, sino a o restringirlas a unas pocas. La siguiente seccin tratat sobre estos asuntos. o a

8.10
8.10.1

Autenticacin con PPP o


CHAP frente a PAP

Con el PPP, cada sistema puede obligar al otro ordenador a identicarse usando uno de los dos protocolos de autenticacin disponibles. Estos son el Protocolo de Autenticacin por o o Contrase a (PAP), y el Protocolo de Autenticacin por Reto (CHAP). Cuando se establece n o una conexin, cada extremo puede pedir al otro que se autentique, independientemente de o que sea el llamante o el llamado. Ms adelante, utilizar relajadamente cliente y servidor a e cuando quiera distinguir entre el sistema autenticado y el autenticador. Un demonio PPP puede pedir a la otra mquina autenticacin enviando otra peticin ms de conguracin a o o a o de LCP indicando el protocolo de autenticacin deseado. o

8.10. Autenticacin con PPP o

126

El PAP trabaja bsicamente de la misma forma que el procedimiento normal de loa gin. El cliente se autentica a s mismo enviando un nombre de usuario y una contrase a n (opcionalmente encriptada) al servidor, la cual es comparada por el servidor con su base de datos de claves. Esta tcnica es vulnerable a los intrusos que pueden intentar obtener e la contrase a escuchando en una l n nea de serie y a otros que hagan sucesivos intentos de ataque por el mtodo de prueba y error. e El CHAP no tiene estos defectos. Con el CHAP, el autenticador (i.e. el servidor) env a una cadena de reto generada aleatoriamente al cliente, junto a su nombre de ordenador. El cliente utiliza el nombre del ordenador para buscar la clave apropiada, la combina con el reto, y encripta la cadena utilizando una funcin de codicacin de un solo sentido. El o o resultado es devuelto al servidor junto con el nombre del ordenador cliente. El servidor realiza ahora la misma computacin, y advierte al cliente si llega al mismo resultado. o Otra caracter stica del CHAP es que no solicita autenticacin al cliente solamente al o comienzo de la sesin, sino que env retos a intervalos regulares para asegurarse de que el o a cliente no ha sido reemplazado por un intruso, por ejemplo cambiando la l nea telefnica. o El pppd mantiene las claves secretas para el CHAP y el PAP en dos cheros separados, llamados /etc/ppp/chap-secrets y pap-secrets respectivamente. Si introduce un ordenador remoto en alguno de los dos cheros, tiene un buen control de cual de los protocolos CHAP o PAP se utilizar para autenticarnos con l y viceversa. a e Por defecto, el pppd no pide autenticacin al ordenador remoto, pero aceptar el auo a tenticarse a s mismo cuando se lo pida el ordenador remoto. Como el CHAP es mucho ms fuerte que el PAP, el pppd intenta usar el anterior siempre que es posible. Si el otro a ordenador no lo acepta, o el pppd no encuentra una clave CHAP para el sistema remoto es su chero chap-secrets, cambia al PAP. Si tampoco tiene clave PAP para su compa ero, n renunciar a autenticarse. Como consecuencia de esto, se cerrar la conexin. a a o Este comportamiento puede ser modicado de varias formas. Por ejemplo, cuando se a ade la palabra auth, el pppd solicitar al otro ordenador que se autentique. El pppd n a aceptar el uso del CHAP o el PAP para ello, siempre y cuando tenga una clave para su a compa ero en su base de datos CHAP o PAP respectivamente. Hay otras opciones para n activar o no un determinado protocolo de autenticacin, pero no las describir aqu Puede o e . leer la pgina de manual del pppd(8) para ms detalles. a a Si todos los sistemas con los que conversa en PPP estn de acuerdo en autenticarse a con usted, deber poner la opcin auth en el chero global /etc/ppp/options y denir a o contrase as para cada sistema en el chero chap-secrets. Si un sistema no acepta el CHAP, n a ada una entrada para l al chero pap-secrets. De esta forma, puede asegurarse de que n e ning n sistema sin autenticar se conecta a su ordenador. u Las dos secciones siguientes hablan sobre los dos cheros de claves del PPP, pap-secrets

8.10. Autenticacin con PPP o

127

y chap-secrets. Estn situados en /etc/ppp y contienen tripletas de clientes, servidores y a contrase as, seguidas opcionalmente por una lista de direcciones IP. La interpretacin de n o los campos de servidor y cliente es distinta en el CHAP y el PAP, y tambin depende de e si nos autenticamos nosotros con el otro ordenador, o si solicitamos al servidor que se autentique con nosotros.

8.10.2

El chero de claves CHAP

Cuando tiene que autenticarse con alg n servidor utilizando el CHAP, el pppd busca en el u chero chap-secrets una entrada cuyo campo de cliente sea igual al nombre del ordenador local, y cuyo campo de servidor sea igual al nombre del ordenador remoto enviado en el reto del CHAP. Cuando solicita a la otra mquina que se autentique, los roles son simplemente a al revs: el pppd entonces buscar una entrada que tenga el campo de cliente igual al e a nombre del ordenador remoto (enviado en la respuesta del CHAP del cliente), y el campo de servidor igual al nombre del ordenador local. El siguiente es un chero de ejemplo del chap-secrets para vlager: 14
# claves CHAP para vlager.vbrew.com # # cliente servidor clave direccion #---------------------------------------------------------------------vlager.vbrew.com c3po.lucas.com "Use The Source Luke" vlager.vbrew.com c3po.lucas.com vlager.vbrew.com "riverrun, pasteve" c3po.lucas.com * vlager.vbrew.com "VeryStupidPassword" pub.vbrew.com

Cuando se intenta establecer una conexin PPP con c3po, c3po pide a vlager que o se autentique usando el CHAP mediante el env de un reto del CHAP. El pppd entono ces examina chap-secrets buscando una entrada cuyo campo de cliente sea igual a vlager.vbrew.com y el campo de servidor sea c3po.lucas.com, 15 y encuentra la primera l nea mostrada anteriormente. Entonces produce la respuesta del CHAP a partir de la cadena del reto y la clave (Use The Source Luke), y la env de vuelta a c3po. a Al mismo tiempo, el pppd produce un reto del CHAP para c3po, conteniendo una unica cadena de reto y su nombre de ordenador completo vlager.vbrew.com. c3po construye una respuesta del CHAP de la manera que acabamos de decir, y se la devuelve a vlager. El pppd extrae ahora el nombre del cliente (c3po.vbrew.com) de la respuesta, y busca en el chero chap-secrets una l nea que tenga c3po como cliente y vlager como servidor. La
Las comillas no son parte de la contrasea, simplemente sirven para proteger el espacio en blanco del n interior de la contrasea. n 15 Este nombre de ordenador se toma del reto del CHAP.
14

8.10. Autenticacin con PPP o

128

segunda l nea se corresponde con esto, as que el pppd combina el reto del CHAP y la clave riverrun, pasteve, las encripta, y compara el resultado con la respuesta del CHAP de c3po. El cuarto campo opcional lista las direcciones IP que son aceptables por los clientes nombrados en el primer campo. Las direcciones pueden ser dadas en notacin de cuarteto o numrico o como nombres de ordenador que son resueltos posteriormente. Por ejemplo, si e c3po solicita usar una direccin IP que no est en esta lista durante la negociacin IPCP, o a o la peticin ser rechazada, y IPCP se desconectar. En el chero de ejemplo anterior, c3po o a a est limitado a poder usar slo su propia direccin. Si el campo de direccin est vac se a o o o a o, permitir cualquier direccin; un valor de - evita el uso de una cierta direccin IP con un a o o cliente. La tercera l nea del chero chap-secrets de prueba, permite a cualquier ordenador establecer un enlace PPP con vlager, pues si aparece la expresin * en los campos de cliente o o servidor, ser vlido cualquier nombre. El unico requisito es que sepa la clave, y utiliza a a la direccin de pub.vbrew.com. Pueden aparecer perfectamente entradas con comodines o en los nombres en cualquier lugar del chero de claves, pues el pppd siempre utilizar la a entrada ms espec a ca que pueda ser aplicada a un par cliente/servidor. Hay algunas cosas que decir sobre la manera en que el pppd encuentra los nombres de ordenadores que busca en el chero de claves. Como se explic anteriormente, el nombre o del ordenador remoto es siempre proporcionado por el otro ordenador en el paquete de reto o respuesta del CHAP. El nombre del ordenador local ser obtenido por defecto llamando a a la funcin gethostname(2). Si ha congurado el nombre del sistema como el nombre del o ordenador sin calicar, entonces tendr que dar al pppd el nombre del dominio a a adir a n usando la opcin domain: o
# pppd ...domain vbrew.com

Esto a adir el nombre del dominio de la Cervecera a vlager para todas las actividades n a relacionadas con la autenticacin. Otras opciones que modican la idea que tiene el pppd o del nombre del ordenador local son usehostname y name. Cuando da la direccin IP local en o la l nea de comando usando local :remoto , y local es un nombre en vez de un cuarteto numrico, el pppd utilizar ste como el nombre local. Para ms detalles, lea la pgina del e ae a a manual del pppd(8).

8.10.3

El Fichero de Claves PAP

El chero de claves PAP es muy similar al utilizado por el CHAP. Los dos primeros campos siempre contienen un nombre de usuario y un nombre de servidor; el tercero alberga la clave

8.10. Autenticacin con PPP o

129

PAP. Cuando el sistema remoto env una peticin de autenticacin, el pppd usa la entrada a o o en la que el campo de servidor es igual al nombre del ordenador local, y el campo de usuario igual al nombre de usuario enviado en la peticin. Cuando se autentica a s mismo al otro o ordenador, el pppd toma la clave a enviar de la l nea con el nombre de usuario igual al nombre del usuario local, y con el campo de servidor igual al nombre del ordenador remoto. Un chero de claves PAP sencillo puede parecerse a ste: e
# /etc/ppp/pap-secrets # # usuario servidor vlager-pap c3po c3po vlager

clave cresspahl DonaldGNUth

direccion vlager.vbrew.com c3po.lucas.com

La primera l nea se usa para autenticarnos a nosotros mismos cuando hablemos con c3po. La segunda l nea describe cmo un usuario llamado c3po tiene que autenticarse o con nosotros. El nombre vlager-pap de la primera columna es el nombre de usuario que nosotros mandamos a c3po. Por defecto, el pppd tomar el nombre del ordenador local como el a nombre de usuario, pero tambin se puede especicar un nombre diferente dando la opcin e o user, seguida por el nombre deseado. Para escoger una de las entradas del chero pap-secrets para la autenticacin con el o compa ero, el pppd tiene que saber el nombre del ordenador remoto. Como no tiene manera n de averiguarlo, tiene que especicarlo en la l nea de comando usando la palabra remotename, seguida por el nombre del ordenador remoto. Por ejemplo, para usar la entrada comentada anteriormente para la autenticacin con c3po, tenemos que a adir la siguiente opcin a o n o la l nea de comando del pppd:
# pppd ... remotename c3po user vlager-pap

En el cuarto campo (y todos los siguientes), puede especicar qu direcciones IP estn e a permitidas para ese ordenador particular, de la misma forma que en el chero de claves del CHAP. El otro ordenador slo podr pedir direcciones de esa lista. En el chero de ejemplo, o a obligamos a c3po a usar su direccin IP autntica. o e Dese cuenta de que el PAP es un mtodo de autenticacin bastante dbil, y se recoe o e mienda utilizar el CHAP siempre que sea posible. Por eso, no explicaremos el PAP en gran profundidad aqu si est interesado en utilizar el PAP, encontrar algunas caracter ; a a sticas ms de ste comentadas en la pgina del manual del pppd(8). a e a

8.11. Conguracin de un Servidor PPP o

130

8.11

Conguracin de un Servidor PPP o

Hacer funcionar el pppd como servidor es slo cuestin de a adir las opciones adecuadas en la o o n l nea de comando. Idealmente, crear una cuenta especial, digamos ppp, y le adjudicar a a un script o programa como shell de entrada que llame al pppd con estas opciones. Por ejemplo, podr a adir la siguiente l a n nea a /etc/passwd:
ppp:*:500:200:Cuenta PPP Publica:/tmp:/etc/ppp/ppplogin

Por supuesto, puede usar uids y gids diferentes a los mostrados arriba. Tambin e tendr que establecer la contrase a para la cuenta de arriba usando el comando passwd. a n El script ppplogin tendr entonces este aspecto: a
#!/bin/sh # ppplogin - script para lanzar el pppd al entrar mesg n stty -echo exec pppd -detach silent modem crtscts

El comando mesg deshabilita la opcin de que otros usuarios puedan escribir a la tero minal (tty) usada utilizando, por ejemplo, el comando write. El comando stty desactiva el eco de caracteres. Esto es necesario, pues de otra forma todo lo que el otro ordenador env e le ser devuelto a modo de eco. La opcin del pppd ms importante de las incluidas en a o a el script es -detach, porque evita que el pppd se separe de la terminal controlada. Si no especicsemos esta opcin, se ir a segundo plano, haciendo que el script del shell termia o a nase. Esto provocar que la l a nea serie colgase y se perdiera la conexin. La opcin silent o o hace que el pppd espere hasta recibir un paquete del sistema llamante antes de comenzar a enviar. Esto evita la aparicin de timeouts al transmitir cuando el sistema que nos llama o es lento en lanzar su cliente PPP. La opcin modem hace al pppd vigilar la l o nea DTR para ver si el otro sistema ha colgado, y crtscts activa el control de ujo por hardware. Adems de estas opciones, se puede forzar alguna clase de autenticacin, por ejemplo a o especicando auth en la l nea de comando del pppd, o en el chero de opciones globales. La pgina del manual tambin habla sobre opciones ms espec a e a cas para activar o desactivar los protocolos de autenticacin individuales. o

Cap tulo 9

Algunas Aplicaciones de Red


Despus de instalar correctamente el IP y el sistema de resolucin, tiene que dedicarse a los e o servicios que quiera proporcionar a travs de la red. Este cap e tulo trata la conguracin o de algunas sencillas aplicaciones de red, incluyendo el servidor inetd, y los programas de la familia rlogin. El interface de Llamada a Procedimiento Remoto o RPC 1 , en el que estn a 2 y el Sistema de Informacin basados servicios como el Sistema de Ficheros en Red o NFS o de Red o NIS3 , tambin ser tratado brevemente aqu Las conguraciones de NFS y de e a . NIS, sin embargo, ocupan ms espacio y sern descritas en cap a a tulos aparte. Lo mismo sucede con el correo electrnico y el sistema de noticias. o Por supuesto, no podemos cubrir todas las aplicaciones de red en este libro. Si desea instalar alguna no tratada aqu como talk, gopher, o Xmosaic, por favor, rerase a su , e documentacin. o

9.1

El Super-Servidor inetd

Frecuentemente, los servicios son llevados a cabo por los llamados demonios. Un demonio es un programa que abre un determinado puerto, y espera a recibir peticiones de conexin. o Si se recibe una peticin de conexin, lanza un proceso hijo que aceptar la conexin, o o a o mientras el padre continua escuchando a la espera de ms peticiones. Este concepto tiene a el inconveniente de que por cada servicio ofrecido, se necesita ejecutar un demonio que escuche las conexiones a un puerto, lo que generalmente signica un desperdicio de recursos de sistema como, por ejemplo, de espacio de intercambio. Por ello, casi todas las instalaciones un x corren un super-servidor que crea sockets
N. del T.: Del ingls Remote Procedure Call e N. del T.: Del ingls Network File System e 3 N. del T.: Del ingls Network Information System. e
2 1

131

9.1. El Super-Servidor inetd

132

para varios servicios, y escucha en todos ellos simultneamente usando la llamada al sistema a select(2). Cuando un nodo remoto requiere uno de los servicios, el super-servidor lo recibe y llama al servidor especicado para ese puerto. El super-servidor ms usado es inetd, el demonio Internet. Es iniciado en tiempo de a arranque del sistema, y toma la lista de servicios que debe tratar de un chero de conguracin denominado /etc/inetd.conf. Aparte de esos servidores invocados por inetd, hay varios o servicios triviales que el propio inetd se encarga de llevar a cabo, denominados servicios internos. Entre ellos, el chargen que simplemente genera una cadena de caracteres, y el daytime que devuelve la fecha y hora del sistema. Una entrada de este chero consiste en una unica l nea compuesta por los siguientes campos:
servicio tipo protocolo espera usuario servidor linea de comando

El signicado de cada campo es como sigue: servicio Proporciona el nombre del servicio. El nombre del servicio debe ser traducido a un n mero de puerto consultando el chero /etc/services. Este chero u ser descrito ms adelante en la seccin 9.3. a a o Especica un tipo de socket, ya sea stream (para protocolos orientados a la conexin) o dgram (para protocolos no orientados a la conexin). Los Sero o vicios basados en TCP debern, por lo tanto, usar siempre stream, mientras a que los servicios basados en UDP debern usar siempre dgram. a Indica el protocolo de transporte usado por el servicio. Este debe ser un nombre de protocolo vlido que se pueda encontrar en el chero protocols, a tambin descrito ms adelante. e a Esta opcin se aplica slo a sockets de tipo dgram. Puede tomar los valores o o wait o nowait. Si se especica wait, inetd ejecutar slo un servidor cada a o vez para el puerto especicado. De otro modo, continuar escuchando por a el puerto inmediatamente despus de ejecutar el servidor. e Esto es util para servidores single-threaded que leen todos los datagramas que entran hasta que no llegan ms, y despus acaban. La mayor parte de a e los servidores RPC son de este tipo y se deber por ello especicar wait. a El otro tipo de servidores, los multi-threaded, permiten un n mero iliu mitado de instancias corriendo concurrentemente. Con estos servidores se deber especicar nowait. a Para sockets de tipo stream se deber especicar siempre nowait. a

tipo

protocolo

espera

9.2. La herramienta de control de acceso tcpd

133

usuario

Este es el identicador del usuario bajo el que se ejecutar el proceso. Por a lo general, ste suele ser el usuario root, aunque algunos servicios pueden e usar diferentes cuentas. Es una buena idea el aplicar aqu el principio del menor privilegio, que indica que uno no deber ejecutar un comando bajo a una cuenta privilegiada si el programa no lo requiere para funcionar correctamente. Por ejemplo, el servidor de noticias NNTP se ejecutar como a news, mientras que otros servicios que podr signicar un riesgo para la an seguridad (como tftp o nger ) son normalmente ejecutados como nobody. Proporciona el camino completo del programa servidor a ejecutar. Los servicios internos se indican con la palabra internal.

servidor

linea de comando Esta es la l nea de comando a pasar al servidor. Esto incluye el argumento 0, es decir, el nombre del comando. Normalmente, ste ser el nombre de e a programa del servidor, salvo que el programa se comporte de forma distinta cuando se le invoque con un nombre diferente. Este campo se deja vac para los servicios internos. o En la gura 9.1 se muestra un ejemplo de chero /etc/inetd.conf. La l nea del servicio nger est comentada, de forma que no est disponible. Esto se suele hacer normalmente a e por razones de seguridad porque podr ser usado por atacantes para obtener nombres de a usuarios del sistema. El tftp tambin se muestra deshabilitado. tftp implementa el Trivial File Transfer Proe tocol que permite transferir cualquier chero del sistema que tenga permiso de lectura global sin chequeo de passwords, etc. Esto es especialmente peligroso con el chero /etc/passwd, sobre todo si no se usa shadow password. TFTP es usado com nmente por clientes y terminales X sin unidad de discos para u obtener su software de un servidor de arranque. Si necesita ejecutar tftp por sta razn, e o aseg rese de limitar su accin a los directorios de los que los clientes obtendrn los cheros u o a a adiendo esos nombres de directorio a la l n nea de comando del tftpd. Esto se muestra en la segunda l nea tftp del ejemplo.

9.2

La herramienta de control de acceso tcpd

Ya que abrir un ordenador al acceso en red implica muchos riesgos de seguridad, las aplicaciones estn dise adas para protegerse ante varios tipos de ataques. Algunas de stas a n e aplicaciones, sin embargo, pueden ser reventadas (lo que qued bastante demostrado con o el RTM Internet worm), o pueden no distinguir entre un nodo seguro cuyas peticiones de

9.2. La herramienta de control de acceso tcpd

134

# # servicios inetd ftp stream tcp nowait root /usr/sbin/ftpd in.ftpd -l telnet stream tcp nowait root /usr/sbin/telnetd in.telnetd -b/etc/issue #finger stream tcp nowait bin /usr/sbin/fingerd in.fingerd #tftp dgram udp wait nobody /usr/sbin/tftpd in.tftpd #tftp dgram udp wait nobody /usr/sbin/tftpd in.tftpd /boot/diskless login stream tcp nowait root /usr/sbin/rlogind in.rlogind shell stream tcp nowait root /usr/sbin/rshd in.rshd exec stream tcp nowait root /usr/sbin/rexecd in.rexecd # # servicios internos inetd # daytime stream tcp nowait root internal daytime dgram udp nowait root internal time stream tcp nowait root internal time dgram udp nowait root internal echo stream tcp nowait root internal echo dgram udp nowait root internal discard stream tcp nowait root internal discard dgram udp nowait root internal chargen stream tcp nowait root internal chargen dgram udp nowait root internal

Figura 9.1: Un ejemplo de chero /etc/inetd.conf.

9.2. La herramienta de control de acceso tcpd

135

un servicio particular deber ser aceptadas, y otro nodo que no lo es y cuyas peticiones an deber ser rechazadas. Ya hemos discutido brevemente los servicios nger y tftp ms an a arriba. As uno podr querer limitar el acceso a esos servicios solamente a los nodos de , a conanza, lo cual es imposible con la conguracin usual, donde inetd o proporciona un o servicio a todos los clientes, o a ninguno. Una herramienta util para esto es tcpd, 4 el denominado demonio envoltorio5 . Para los servicios TCP que quiera monitorizar o proteger, ste es invocado en lugar del programa e servidor. tcpd informa de la peticin al demonio syslog, chequea si el nodo remoto est auo a torizado para usar ese servicio, y slo si la respuesta es satisfactoria, ejecutar el programa o a servidor real. Observe que esto no funciona con servicios basados en UDP. Por ejemplo, para proteger el demonio nger, debe cambiar la l nea correspondiente en inetd.conf as :
# Proteger el demonio de finger finger stream tcp nowait root

/usr/sbin/tcpd

in.fingerd

As sin a adir ning n control de acceso, esto le har parecer al cliente que es la t , n u a pica conguracin de nger, salvo que toda peticin ser registrada en la facilidad auth del o o a syslog. El control de acceso est implementado mediante dos cheros llamados /etc/hosts.allow a y /etc/hosts.deny. Estos cheros contienen entradas permitiendo y denegando acceso, respectivamente, para ciertos servicios y nodos. Cuando tcpd trata una peticin de un servio cio como nger de un nodo cliente denominado bi.foobar.com, busca en hosts.allow y hosts.deny (en ste orden) una entrada en la que el servicio y el nodo cliente coincidan. Si e la entrada coincidente aparece en hosts.allow, se garantiza el acceso, sin importar lo que haya en hosts.deny. Si la coincidencia se encuentra en hosts.deny, la peticin se rechaza o cerrando la conexin. Si no hay coincidencia en ninguno, la peticin es aceptada. o o Las entradas en los cheros de acceso tienen la siguiente estructura:
lista servicios : lista nodos [:cmd shell ]

lista servicios es una lista de nombres de servicios de /etc/services, o la palabra clave ALL. Para especicar todos los servicios excepto nger y tftp, usa ALL EXCEPT nger, tftp. lista nodos es una lista de nombres de nodos o direcciones IP, o las palabras clave ALL, LOCAL, o UNKNOWN. ALL hace coincidir todos los nodos mientras que LOCAL
4 5

Escrita por Wietse Venema, wietse@wzv.win.tue.nl. N. del T.: Del ingls Wrapper Daemon e

9.3. Los cheros services y protocols

136

hace coincidir todos los nombres de nodos que no contengan un punto 6 . UNKNOWN hace coincidir todos los nodos cuya b squeda de nombre o direccin fall. Un nombre comenzado u o o por un punto incluye a todos los nodos cuyo dominio es el mismo a ese nombre. Por ejemplo, .foobar.com encajar con bi.foobar.com. Tambin hay formas de especicar direcciones a e de red IP y n meros de subred. Por favor, rerase a la pgina del manual de hosts access(5) u e a para ms detalles. a Para denegar acceso a los servicios nger y tftp a todos los nodos menos a los locales, ponga lo siguiente en /etc/hosts.deny, y deje /etc/hosts.allow vac o:
in.tftpd, in.fingerd: ALL EXCEPT LOCAL, .su.dominio

El campo opcional cmd shell puede contener un comando de shell para que sea invocado cuando una b squeda coincida con la entrada. Esto es util para establecer trampas que u puedan delatar a atacantes potenciales:
in.ftpd: ALL EXCEPT LOCAL, .vbrew.com : \ echo "peticion de %d@%h" >> /var/log/finger.log; \ if [ %h != "vlager.vbrew.com" ]; then \ finger -l @%h >> /var/log/finger.log \ fi

Los argumentos %h y %d son expandidos por tcpd al nombre del nodo cliente y al nombre del servicio, respectivamente. Rerase a la pgina del manual de hosts access(5) e a para ms detalles. a

9.3

Los cheros services y protocols

Los n meros de puerto en los que se ofrecen ciertos servicios estndar estn denidos en el u a a 7 . Para permitir a los programas cliente y servidor convertir RFC de N meros Asignados u nombres de servicios en estos n meros, se almacenan en un chero llamado /etc/services. u Una entrada se construye as :
servicio puerto /protocolo [aliases ]

Aqu servicio especica el nombre del servicio, puerto dene el puerto por el que se , ofrece el servicio, y protocolo dene qu protocolo de transporte se usa. Com nmente, e u
Normalmente slo los nombres de nodos locales obtenidos de bsquedas en /etc/hosts no contienen o u puntos. 7 N. del T.: A veces se conocen como Well Known Ports, es decir, Puertos Bien Conocidos
6

9.3. Los cheros services y protocols

137

ste es udp o tcp. Es posible que un servicio sea ofrecido a ms de un protocolo, lo mismo e a que es posible ofrecer distintos servicios por el mismo n mero de puerto, siempre que el u protocolo sea distinto. El campo aliases permite especicar nombres alternativos para el mismo servicio. Usualmente, no se necesita cambiar el chero de servicios que viene con el software de red en su sistema Linux. De todas formas, presentaremos un peque o extracto de ese n chero.
# El fichero services: # # servicios conocidos (well-known) echo 7/tcp echo 7/udp discard 9/tcp sink null discard 9/udp sink null daytime 13/tcp daytime 13/udp chargen 19/tcp ttytst source chargen 19/udp ttytst source ftp-data 20/tcp ftp 21/tcp telnet 23/tcp smtp 25/tcp nntp 119/tcp readnews # # servicios UNIX exec 512/tcp biff 512/udp comsat login 513/tcp who 513/udp whod shell 514/tcp cmd syslog 514/udp printer 515/tcp spooler route 520/udp router routed

# # # # # # # # # # # # #

Eco Descartar Fecha del sistema Generador de caracteres Protocolo Protocolo Protocolo Protocolo Protocolo FTP de ficheros (Datos) FTP de ficheros (Control) de Terminal de Correo de Noticias

# # # # # # # #

rexecd de BSD Notificacion de correo login remoto who y uptime remotos comando remoto, si contrase~na registro remoto del sistema cola de impresion remota informacion de encaminamiento

Observe que, por ejemplo, el servicio echo es ofrecido en el puerto 7 tanto para TCP como para UDP, y que el puerto 512 es usado para dos servicios diferentes; el demonio COMSAT (que notica a los usuarios de correo recin llegado, vea xbi(1x)), mediante e UDP, y la ejecucin remota (rexec(1)), usando TCP. o Ocurre algo similar con el chero de protocolos: la librer de red necesita una forma a de convertir nombres de protocolo por ejemplo, los usados en el chero services a n meros de protocolo entendibles por el nivel IP en otros nodos. Esto se hace buscando u

9.4. Llamada a Procedimientos Remotos

138

el nombre en el chero /etc/protocols. Contiene una entrada por l nea, cada una con un nombre de protocolo y el n mero asociado. Necesitar modicar ste chero es todav ms u e a a improbable que tener que hurgar en /etc/services. Le mostramos un chero ejemplo:
# # Internet (IP) # ip 0 icmp 1 igmp 2 tcp 6 udp 17 raw 255 "

protocols IP ICMP IGMP TCP UDP RAW # # # # # # protocolo internet, pseudo-protocolo protocolo de mensajes de control protocolo para mensajes multidestino protocolo de control de transmision protocolo de datagramas de usuario interfaz IP directa (modo "crudo")

9.4

Llamada a Procedimientos Remotos

Un mecanismo muy general para aplicaciones cliente-servidor lo proporciona RPC, el paquete Remote Procedure Call. RPC fue desarrollado por Sun Microsystems, y es una coleccin o de herramientas y funciones de librer Ejemplos de aplicaciones construidas sobre RPC a. son NFS, el sistema de cheros en red, y NIS, el sistema de informacin de red, que sern o a presentados en prximos cap o tulos. Un servidor RPC consiste en una coleccin de procedimientos a los que el cliente puede o llamar enviando una peticin RPC al servidor, junto con los parmetros del procedimiento. o a El servidor invocar al procedimiento indicado en nombre del cliente, devolviendo el valor a del resultado, si lo hay. Para que sea independiente de la plataforma, todos los datos intercambiados entre el cliente y el servidor son convertidos al formato denominado de Representacin Externa de Datos o XDR 8 por el segundo, y convertidos otra vez a la o representacin de la mquina local por el receptor. o a A veces, las mejoras en una aplicacin RPC introducen cambios incompatibles en el o interface de llamada a procedimiento. Por supuesto, slo cambiando el servidor dejar o a de funcionar cualquier aplicacin que todav espere el comportamiento original. Por ello, o a los programas RPC tienen numeros de versin asignados, normalmente empezando con 1, o y con cada nueva versin del interface RPC ste contador se incrementar. A menudo, o e a un servidor puede ofrecer varias versiones a la vez; entonces los clientes indicarn en sus a peticiones mediante el n mero de versin qu implementacin del servicio desean usar. u o e o
8

N. del T.: del ingls eXternal Data Representation e

9.4. Llamada a Procedimientos Remotos

139

La comunicacin por red entre servidores y clientes RPC es un poco peculiar. Un o servidor RPC ofrece una o ms colecciones de procedimientos; cada conjunto de stos es a e llamado programa, y es identicado un vocamente por un nmero de programa. En /etc/rpc u se suele mantener una lista que mapea nombres de servicios con n meros de programa, u reproducimos un extracto de ste en la gura 9.2. e
# # /etc/rpc - servicios variados basados en RPC # portmapper 100000 portmap sunrpc rstatd 100001 rstat rstat_svc rup perfmeter rusersd 100002 rusers nfs 100003 nfsprog ypserv 100004 ypprog mountd 100005 mount showmount ypbind 100007 walld 100008 rwall shutdown yppasswdd 100009 yppasswd bootparam 100026 ypupdated 100028 ypupdate

Figura 9.2: Un ejemplo de chero /etc/rpc. En redes TCP/IP, los autores de RPC se encontraron con el problema de mapear n meu ros de programa a servicios de red genricos. Decidieron que cada servidor proporcionara e ambos, un puerto TCP y otro UDP, para cada programa y para cada versin. Generalmeno te, las aplicaciones RPC usarn UDP cuando env datos, y slo recaern en TCP cuando a en o a los datos a transferir no quepan en un datagrama UDP sencillo. Por supuesto, los programas clientes tienen que tener una forma de encontrar a qu puere to mapea un n mero de programa. Usando un chero de conguracin para esto ser muy u o a inexible: ya que las aplicaciones RPC no usan puertos reservados, no hay garant de que as un puerto originalmente pensado para ser usado por nuestra aplicacin de base de datos no o haya sido cogido por alg n otro proceso. Por lo tanto, las aplicaciones RPC escogen cualu quier puerto que puedan utilizar, y lo registran con el denominado demonio mapeador de puertos 9 . Este ultimo act a como un distribuidor de servicios para todos los servidores que u corren en su mquina: un cliente que desee contactar con un servicio que tiene un n mero a u de programa dado, preguntar primero al mapeador de puertos del nodo del servidor quin a e devolver los n meros de puerto TCP y UDP por los que el servicio puede ser accedido. a u Este mtodo tiene como mayor inconveniente que introduce un punto de ruptura unico, e muy parecido al que crea el demonio inetd en los servicios Berkeley estndar. De todas a
9

N. del T.: Del ingls Portmapper daemon e

9.5. Congurar los Comandos r

140

formas, ste caso es un poco ms grave, porque cuando el mapeador de puertos cae, toda la e a informacin de puertos RPC se pierde; esto normalmente implica que hay que rearrancar o todos los servidores RPC manualmente, o rearrancar toda la mquina. a En Linux, el mapeador de puertos se llama rpc.portmap y reside en /usr/sbin. Aparte de asegurarse de que es arrancado desde rc.inet2, el mapeador de puertos no necesita ms a trabajo de conguracin. o

9.5

Congurar los Comandos r

Hay varios comandos para ejecutar programas en nodos remotos. Son rlogin, rsh, rcp y rcmd. Todos ellos lanzan un shell en el nodo remoto y permiten al usuario ejecutar comandos. Por supuesto, el cliente necesita tener una cuenta en el nodo en el que se van a ejecutar los comandos. Por ello todos estos comandos llevan a cabo un procedimiento de autorizacin. Normalmente, el cliente indicar el nombre de login del usuario al servidor, o a el cual requerir un password que ser validado de la forma habitual. a a A veces, sin embargo, es deseable el relajar estos chequeos de autorizacin para ciertos o usuarios. Por ejemplo, si usted tiene que entrar frecuentemente en otras mquinas de su a LAN, tal vez desee ser admitido sin tener que escribir su password cada vez. Deshabilitar autorizaciones slo es aconsejable en un n mero reducido de nodos cuyas o u bases de datos de passwords estn sincronizadas, o para un n mero reducido de usuarios prie u vilegiados que necesiten acceder a muchas mquinas por razones administrativas. Siempre a que desee permitir a gente entrar en su nodo sin tener que especicar un login o password, debe asegurarse de que no permite acceso accidentalmente a nadie ms. a Hay dos formas de deshabilitar chequeos de autorizacin para los comandos r. Una es o que el super usuario permita a ciertos o a todos los usuarios el entrar, sin ser preguntados por un password, en ciertos o en todos los nodos (lo cual es ciertamente una mala idea). Este acceso es controlado por un chero denominado /etc/hosts.equiv. Este contiene una lista de nodos y nombres de usuarios que son considerados equivalentes a usuarios en el nodo local. Una opcin alternativa es que un usuario permita acceso a otros usuarios de o ciertos nodos a su cuenta. Estos ser listados en el chero .rhosts en el directorio home an del usuario. Por razones de seguridad, este chero debe pertenecer al usuario o al super usuario, y no debe ser un enlace simblico, de otro modo ser ignorado. 10 o a Cuando un cliente pide un servicio r, su nodo y nombre de usuario son buscados en el chero /etc/hosts.equiv, y despus en el chero .rhosts del usuario con cuyo nombre se e
En un entorno NFS, podr necesitar darle una proteccin de 444, porque el superusuario por lo general a o est muy restringido en el acceso a cheros en discos montados via NFS. a
10

9.5. Congurar los Comandos r

141

pretende entrar. Como ejemplo, asumamos que janet est trabajando en gauss e intenta a entrar en la cuenta de joe en euler. A partir de ahora, nos referiremos a Janet como el usuario cliente, y a Joe como el usuario local. Ahora, cuando Janet escriba
$ rlogin -l joe euler

en gauss, el servidor primero chequear en hosts.equiv 11 si a Janet se le puede proporcionar a acceso libre y, si esto falla, intentar localizarla en el chero .rhosts del directorio home de a joe. El chero hosts.equiv en euler es algo as :
gauss euler -public quark.physics.groucho.edu

andres

Una entrada consiste en un nombre de nodo, seguido opcionalmente por un nombre de usuario. Si aparece un nombre de nodo y nada ms, todos los usuarios de ese nodo sern a a admitidos en sus cuentas locales sin ninguna comprobacin. En el ejemplo anterior, Janet o hubiera sido autorizada a entrar en su cuenta janet si llamaba desde gauss, y lo mismo se aplicar a cualquier otro usuario exceptuando a root. De todas formas, si Janet desea a entrar como joe, se le pedir un password como siempre. a Si un nombre de nodo va seguido de un nombre de usuario, como en la ultima l nea del chero ejemplo, a ese usuario se le permite acceso libre de password a todas las cuentas excepto a la cuenta root. El nombre de nodo tambin puede ir precedido de un signo menos, como en la entrada e -public. Esto requiere autorizacin para todas las cuentas en public, sin importar lo o que permitan los usuarios individuales en sus cheros .rhosts. El formato del chero .rhosts es idntico al del hosts.equiv, pero su signicado es un e poco diferente. Consideremos el siguiente chero .rhosts de Joe en euler:
chomp.cs.groucho.edu gauss janet

La primera entrada permite a joe acceso libre cuando entra desde chomp.cs.groucho.edu, pero no afecta a los permisos de ninguna otra cuenta en
11

Observe que el chero hosts.equiv no es examinado cuando alguien intenta entrar como root.

9.5. Congurar los Comandos r

142

euler o chomp. La segunda entrada es una peque a variacin de esto en que permite a n o janet acceso libre a la cuenta de Joe cuando entra desde gauss. Observe que el nombre de nodo del cliente se obtiene mediante la resolucin inversa de o la direccin del que llama a un nombre, de forma que esta caracter o stica fallar con nodos a deconocidos para el sistema de resolucin. El nombre de nodo del cliente se considera que o coincide con el nombre en los cheros de nodos en uno de los siguientes casos: El nombre cannico del cliente (no un alias) coincide literalmente con el nombre de o nodo en el chero. Si el nombre de nodo del cliente es un nombre de dominio completamente cualicado (como el devuelto por el sistema de resolucin cuando se tiene DNS en marcha), y no o coincide literalmente con el nombre de nodo en el chero de nodos, se compara con el nombre de nodo que se forma al expandirlo con el nombre de dominio local.

Cap tulo 10

El Sistema de Informacin de Red o (NIS)


Cuando se usa una red de area local, su objetivo fundamental es, normalmente, proporcionar a sus usuarios un entorno que haga a la red transparente. Para este n una importante piedra de toque es mantener datos vitales, como la informacin de cuentas de usuario, sincronizadas o entre todos los nodos. Vimos anteriormente que para resolver nombres de nodos existe un potente y sosticado servicio denominado DNS. Para otras tareas, sin embargo, no existe un servicio especializado similar. Ms a n, si usted slo est administrando una peque a a u o a n LAN sin conexin a Internet, puede que no le merezca la pena el esfuerzo de instalar un o DNS. Esta es la razn por la que Sun desarroll NIS, el Sistema de Informacin de Red. NIS o o o proporciona facilidades de acceso genrico a bases de datos que pueden ser usadas para e distribuir informacin como la contenida en los cheros passwd y groups entre todos los o nodos de su red. Esto hace que la red aparezca como un sistema unico, con las mismas cuentas en todos los nodos. De forma similar usted puede usar NIS para distribuir el chero de informacin de nombres de nodos /etc/hosts entre todas las mquinas de la red. o a NIS est basado en RPC, e incluye un servidor, una biblioteca para la parte del cliente, y a varias herramientas de administracin. Originalmente NIS se llamaba Yellow Pages 1 , o YP, o que todav son trminos ampliamente usados para referirse informalmente a este servicio. a e Por otra parte Yellow Pages es una marca registrada de la compa British Telecom, la na cual pidi que Sun dejara de utilizar ese nombre. Pero, como algunos nombres impactan o mucho entre la gente, YP contin a viviendo como prejo en los nombres de la mayor de u a los comandos relacionados con NIS como ypserv, ypbind, etc.
1

N. del T.: Pginas Amarillas a

143

10.1. Familiarizacin con NIS o

144

Hoy en d NIS est disponible en prcticamente todos los sistemas un x, y hay incluso a a a implementaciones gratuitas de l. Una de ellas es de la edicin BSD Net-2, derivada de e o una implementacin de referencia de dominio p blico donada por Sun. El cdigo de la o u o biblioteca cliente de esta versin existe en la GNU libc desde hace mucho tiempo, mientras o que los programas de administracin han sido recientemente portados a Linux por Swen o 2 Falta, sin embargo, un servidor NIS en la implementacin de referencia. Tobias Th mmler. u o Reber ha escrito otro paquete NIS incluyendo todas las herramientas y un servidor; se llama yps.3 Actualmente, el cdigo de NIS est siendo reescrito por completo por Peter Eriksson 4 , o a se denominar NYS y soportar tanto el NIS normal como la revisin ampliada de Sun, a a o el NIS+. NYS no slo proporciona un conjunto de herramientas NIS y un servidor, sino o que tambin a ade un nuevo y completo conjunto de funciones de biblioteca que muy e n probablemente se incluirn con el tiempo en la libc estndar. Esto incluye un nuevo sistema a a de conguracin para resolver nombres de nodos que reemplace el sistema actual que usa o el chero host.conf. Las caracter sticas de estas funciones sern discutidas ms adelante. a a Este cap tulo se centrar en NYS ms que en los otros dos paquetes, a los que nos referia a remos como el cdigo NIS tradicional. Si usted desea utilizar alguno de esos paquetes, las o instrucciones de este cap tulo podr ser sucientes o tal vez no. Para obtener informacin an o adicional, por favor, consiga un libro estndar sobre NIS como el NFS y NIS de Hal Stern a (vase [Stern92]). e Por el momento NYS est todav en desarrollo y por lo tanto las utilidades estndar a a a de Linux como los programas de red o el programa de login todav no tienen en cuenta a el sistema de conguracin de NYS. Por lo tanto, hasta que NYS no sea incluido en la libc o principal tendr que compilar todos esos programas usted mismo si quiere conseguir que a usen NYS. Para ello, en los Makeles de cualquiera de esas aplicaciones deber especicar a -lnsl como la ultima opcin antes de libc al enlazador. Esto enlazar las funciones relevantes o a de libnsl, la biblioteca NYS, en lugar de la biblioteca C estndar. a

10.1

Familiarizacin con NIS o

NIS mantiene informacin de la base de datos en los llamados mapas que contienen pares o clave-valor. Los mapas se almacenan en un nodo central que est ejecutando el servidor a NIS y del que los clientes pueden obtener la informacin a travs de varias llamadas RPC. o e
Que puede ser localizado en swen@uni-paderborn.de. Los clientes NIS estn disponibles como a yp-linux.tar.gz en metalab.unc.edu en el directorio system/Network. 3 La ultima versin (en la fecha en que se escribi este documento) es yps-0.21 y puede obtenerse en o o ftp.lysator.liu.se, en el directorio /pub/NYS. 4 Localizable en pen@lysator.liu.se.
2

10.1. Familiarizacin con NIS o

145

Muy frecuentemente, los mapas se almacenan en cheros DBM. 5 Los mapas en s mismos suelen ser generados a partir de cheros de texto maestros como /etc/hosts o /etc/passwd. Para algunos cheros se crean varios mapas, uno por cada tipo de clave de b squeda. Por ejemplo, usted podr buscar en el chero hosts tanto por u a un nombre de nodo como por su direccin IP. As pues, de l se derivan dos mapas NIS, o e llamados hosts.byname y hosts.byaddr respectivamente. La tabla 10.1 lista los mapas t picos y los cheros de los que son generados. Fichero Maestro /etc/hosts /etc/networks /etc/passwd /etc/group /etc/services /etc/rpc /etc/protocols /usr/lib/aliases Mapa(s) hosts.byname networks.byname passwd.byname group.byname services.byname rpc.byname protocols.byname mail.aliases hosts.byaddr networks.byaddr passwd.byuid group.bygid services.bynumber rpc.bynumber protocols.bynumber

Tabla 10.1: Algunos mapas NIS estndar y los cheros correspodientes. a Hay otros cheros y mapas para los que puede encontrar soporte en uno u otro pa quete NIS. Estos pueden contener informacin sobre aplicaciones no tratadas en este libro, o 6 que puede ser usado por algunos servidores BOOTP, o mapas como el mapa bootparams que actualmente no tienen ninguna funcin en Linux (como los mapas ethers.byname y o ethers.byaddr ). La gente usa habitulamente apodos para algunos mapas, ya que son ms cortos y por lo a tanto ms faciles de escribir. Para obtener una lista completa de los apodos 7 reconocidos a por sus herramientas NIS, ejecute el siguiente comando:
$ ypcat -x NIS map nickname translation table: "passwd" -> "passwd.byname" "group" -> "group.byname" "networks" -> "networks.byaddr" "hosts" -> "hosts.byname" "protocols" -> "protocols.bynumber"
DBM es una biblioteca de manejo de bases de datos sencillas que usa tcnicas hashing para acelerar e operaciones de bsqueda. Existe una implementacin gratuita de DBM perteneciente al proyecto GNU u o llamada gdbm, que forma parte de la mayor de las distribuciones de Linux. a 6 N. del T.: relacionado con los parmetros de arranque a 7 N. del T.: del ingls nicknames e
5

10.1. Familiarizacin con NIS o

146

"services" -> "services.byname" "aliases" -> "mail.aliases" "ethers" -> "ethers.byname" "rpc" -> "rpc.bynumber" "netmasks" -> "netmasks.byaddr" "publickey" -> "publickey.byname" "netid" -> "netid.byname" "passwd.adjunct" -> "passwd.adjunct.byname" "group.adjunct" -> "group.adjunct.byname" "timezone" -> "timezone.byname"

El servidor NIS suele llamarse ypserv. Para una red de tipo medio un unico servidor suele ser suciente; en redes mayores pueden elegir ejecutar varios en mquinas diferentes a y en diferentes segmentos para aliviar la carga en los servidores y en los encaminadores. Estos servidores estn sincronizados haciendo que uno de ellos sea el servidor maestro y que a los dems sean servidores esclavos. Los mapas se crearn slo en la mquina del servidor a a o a maestro. A partir de ah son distribuidos a todos los esclavos. Habr notado usted que hemos estado hablando de redes todo el rato muy vagamente; a por supuesto existe un concepto diferenciado en NIS sobre lo que es un dominio en la red: es el conjunto de todos los nodos que comparten parte de sus datos de conguracin del o sistema mediante NIS. Desafortunadamente los dominios NIS no tienen absolutamente nada que ver con los dominios que podemos encontrar en DNS. Por ello, para evitar cualquier tipo de ambig edad a lo largo de este cap u tulo, especicaremos en todo momento el tipo de dominio al que nos estemos reriendo. Los dominios NIS tienen slo una funcin puramente administrativa. Son adems invio o a sibles para los usuarios. Por ello el nombre dado a un dominio NIS es slo relevante para o administradores. Por lo general cualquier nombre valdr con tal de que sea distinto de a cualquier otro nombre de dominio NIS de su red local. Por ejemplo, el administrador de la Cervecera Virtual puede decidir crear dos dominios NIS, uno para la Cervecera en s y otro , para la Vinatera, a los que llama cervecera y vinatera respectivamente. Otra idea bastante utilizada es usar simplemente el nombre de dominio DNS tambin para el NIS. Para e establecer y ver el nombre de dominio NIS de su nodo puede usar el comando domainname. Cuando se ejecuta sin ning n argumento, muestra el nombre de dominio NIS actual; para u establecer el nombre de dominio, debe usted entrar como superusuario y escribir:
# domainname cervecera

Los dominios NIS determinan a qu servidor NIS preguntarn las aplicaciones. Por e a ejemplo, el programa login de un nodo de la Vinatera deber por supuesto, pedir infora, macin de la contrase a de un usuario slo al servidor NIS de la Vinatera (o a uno de o n o

10.2. NIS frente a NIS+

147

ellos si es que hay varios), mientras que una aplicacin de un nodo de la Cervecera deber o a arreglrselas con el servidor de la Cervecera. a Queda un misterio por resolver: cmo sabe un cliente a qu servidor conectarse. La o e solucin ms simple ser tener un chero de conguracin que diga el nodo en el que o a a o encontrar el servidor. Sin embargo, esta solucin es bastante inexible porque no permite a o los clientes usar servidores diferentes (del mismo dominio, se entiende), dependiendo de su disponiblidad. Por ello las implementaciones tradicionales de NIS se apoyan en un demonio especial denominado ypbind para detectar un servidor NIS adecuado dentro de su dominio NIS. Cualquier aplicacin, antes de poder realizar cuaquier consulta NIS, debe averiguar o primero, a travs de ypbind, qu servidor usar. e e ypbind busca los servidores mandando un mensaje de difusin por toda la red IP local. o El primero en responder se supone que ser el ms rpido potencialmente y ser el que se a a a a use en todas las consultas NIS subsiguientes. Despus de un cierto intervalo de tiempo, o e si el servidor se vuelve inaccesible, ypbind volver a buscar los servidores activos. a Ahora bien, hay dos aspectos discutibles sobre el enlazado dinmico: uno es que raa ramente es necesario y el otro es que introduce un problema de seguridad: ypbind cree a ciegas a cualquiera que conteste, que podr ser lo mismo un humilde servidor NIS que a un intruso malicioso. No hace falta decir que esto es especialmente problemtico si usted a maneja sus bases de datos de contrase as a travs de NIS. Para protegerse contra esto, NYS n e no usa ypbind por defecto, sino que obtiene el nombre de nodo del servidor de un chero de conguracin. o

10.2

NIS frente a NIS+

NIS y NIS+ comparten poco ms que su nombre y un objetivo com n. NIS+ est estruca u a turado de una forma completamente diferente. En lugar de un simple espacio de nombres con dominios NIS inconexos, usa un espacio de nombres jerrquico similar al de DNS. En a lugar de mapas, usa tablas que estn compuestas por las y columnas, donde cada la a representa un objeto en la base de datos NIS+, mientras que las columnas cubren aquellas propiedades de los objetos que NIS+ conoce y que le interesan. Cada tabla de un dominio NIS+ dado incluye las de sus dominios padre. Adems, una entrada en una tabla puede a contener un enlace a otra tabla. Todas estas caracter sticas hacen posible la estructuracin o de la informacin de muchas formas. o El NIS tradicional tiene un n mero de versin RPC de 2, mientras que NIS+ tiene un u o n mero de versin RPC de 3. u o

10.3. El lado cliente de NIS

148

NIS+ no parece ser ampliamente usado todav 8 , y no conozco tanto sobre l realmente a e (bueno, prcticamente nada). Por esta razn, no lo trataremos aqu Si est interesado en a o . a aprender ms sobre l, por favor, rerase al manual de administracin de NIS+ de Sun a e e o ([NISPlus]).

10.3

El lado cliente de NIS

Si est usted familiarizado con la escritura o el portado de aplicaciones de red, notar que a a la mayor de los mapas NIS listados arriba corresponden a funciones de la biblioteca C. a Por ejemplo, para obtener informacin del chero passwd, se suelen usar normalmente las o funciones getpwnam(3) y getpwuid(3) que devuelven informacin de la cuenta asociada al o nombre de usuario dado, o al identicador de usuario dado, respectivamente. En circunstancias normales, estas funciones realizarn la b squeda requerida en el chero estndar a u a /etc/passwd. Una implementacin de estas funciones que tenga en cuenta NIS, sin embargo, modio car este comportamiento, y realizar una llamada RPC para que sea el servidor NIS el que a a realice la b squeda del nombre o identicador de usuario. Esto ocurre de forma completau mente transparente a la aplicacin. La funcin podr a adir el mapa NIS o sustituir el o o a n chero original con l. Por supuesto, esto no implica una modicacin real del chero, slo e o o signica que a la aplicacin le parece que el chero ha sido sustituido o que le han a adido o n algo. En las implementaciones tradicionales de NIS sol haber ciertas convenciones sobre a qu mapas se sustitu y cules eran a adidos a la informacin original. Alguno, como e an a n o el mapa passwd, requer modicaciones extra as del chero passwd que, si se hac mal, a n an podr abrir agujeros de seguridad. Para evitar estos obstculos, NYS usa un modo general an a de conguracin que determina si un conjunto de funciones cliente en particular usa los o cheros originales, NIS o NIS+, y en qu orden. Esto ser descrito en otra seccin ms e a o a adelante en este mismo cap tulo.

10.4

Ejecucin de un servidor NIS o

Despus de todo este parloteo tcnico terico, ya empieza a ser hora de que metamos mano e e o al verdadero trabajo de conguracin. En esta seccin cubriremos la conguracin de un o o o servidor NIS. Si ya hay un servidor NIS corriendo en su red, no necesita congurar su propio servidor; en este caso puede usted saltarse esta seccin. o
N. del T.: En el momento de escribirse este manual esta armacin era cierta. Sin embargo, hoy en d o a NIS+ es ampliamente usado por sus ventajas frente a NIS.
8

10.4. Ejecucin de un servidor NIS o

149

Observe que si unicamente va usted a experimentar con el servidor, tiene que asegurarse de que no lo congura con un nombre de dominio NIS que ya est en e uso en su red. Ello podr desbaratar todo el servicio de red y hacer a mucha a gente desdichada, y muy enfadada. Actualmente hay disponibles dos servidores NIS de forma gratuita para Linux, uno contenido en el paquete yps de Tobias Reber, y el otro en el paquete ypserv de Peter Eriksson. No deber importar cul utilice usted, independientemente de que usted use a a NYS o el cdigo de cliente NIS estndar que existe actualmente en libc. En el momento o a de escribir esto, el cdigo para manejar servidores NIS esclavos parece ser ms completo en o a yps. As que si tiene que tratar con servidores esclavo, yps puede ser una opcin mejor. o Tras instalar el programa servidor (ypserv ) en /usr/sbin, deber crear el directorio que a va a contener los cheros mapa que su servidor va a distribuir. Al establecer un dominio NIS para el dominio cervecera, los mapas ir al chero /var/yp/cervecera. El servidor an determina si est sirviendo un dominio NIS en particular comprobando si el directorio mapa a est presente. Si va a deshabilitar el servicio para alg n dominio NIS, aseg rese de eliminar a u u el directorio tambin. e Los mapas normalmente se almacenan en cheros DBM para acelerar las b squedas. u Se crean a partir de los cheros maestro usando un programa llamado makedbm (para el servidor de Tobias) o dbmload (para el servidor de Peter). Estos pueden no ser intercambiables. Transformar un chero maestro a una forma entendible por dbmload normalmente requiere un poco de magia awk o sed, lo que tiende a ser un poco tedioso de escribir y dif cil de recordar. Por ello, el paquete ypserv de Peter Eriksson contiene un Makele (llamado ypMakele) que realiza todos esos trabajos por usted. Deber instalarlo como Makele en a su directorio de mapas, y editarlo para que reeje los mapas que desee distribuir. Hacia el principio del chero encontrar la etiqueta all que lista los servicios que ypserv ofrece. Por a defecto, la l nea es algo parecido a esto:
all: ethers hosts networks protocols rpc services passwd group netid

Si no desea producir los mapas ethers.byname y ethers.byaddr, por ejemplo, simplemente elimine la palabra ethers de la l nea. Para probar su conguracin, puede ser suciente con o empezar con slo uno o dos mapas, como los mapas services.*. o Tras editar el Makele, y sin salir del directorio de mapas, teclee make. Esto generar e a instalar automticamente los mapas. Debe asegurarse de actualizar los mapas cada vez a a que cambie los cheros maestros, de otro modo los cambios seguirn siendo invisibles para a la red.

10.5. Congurar un Cliente NIS con NYS

150

La siguiente seccin explica cmo congurar el cdigo de cliente NIS. Si su conguracin o o o o no funciona, deber comprobar si llega alguna peticin a su servidor o no. Si especica el a o parmetro -D al servidor NYS, ste imprimir mensajes de depuracin en la consola sobre a e a o todas las peticiones NIS entrantes, y los resultados devueltos. Esto deber darle una idea a sobre dnde puede estar el problema. El servidor de Tobias no tiene esa opcin. o o

10.5

Congurar un Cliente NIS con NYS

A lo largo de lo que queda de este cap tulo, cubriremos la conguracin de un cliente NIS. o Su primer paso deber ser indicarle a NYS qu servidor usar para el servicio NIS, a e establecindolo en el chero de conguracin /etc/yp.conf. Un chero de ejemplo muy e o sencillo para un nodo en la red de la Vinatera ser algo as a :
# yp.conf - Configuracion YP para la biblioteca NYS. # domainname vinatera ypserver vbardolino

La primera sentencia indica a los clientes NIS que pertenecen al dominio NIS vinatera. Si omite esta l nea, NYS usar el nombre de dominio que usted asign a su sistema con a o el comando domainname. La sentencia ypserver indica el servidor a usar. Por supuesto, la direccin IP correspondiente a vbardolino debe estar establecida en el chero hosts; o alternativamente, podr usar directamente la direccin IP en la sentencia ypserver. a o En el chero mostrado arriba, el comando ypserver indica a NYS que use el servidor indicado sea cual sea el dominio NIS actual. Sin embargo, si mueve frecuentemente su mquina entre diferentes dominios NIS, tal vez le interesar mantener la informacin de a a o varios dominios en el chero yp.conf. Puede tener informacin sobre los servidores para o varios dominios NIS en yp.conf a adiendo el nombre de dominio NIS a la sentencia ypserver. n Por ejemplo, podr cambiar el chero del ejemplo anterior para que sea algo as a :
# yp.conf - Configuracion YP para la biblioteca NYS. # ypserver vbardolino vinatera ypserver vstout cervecera

Esto le permite mover su mquina a cualquiera de los dos dominios simplemente con a establecer el dominio NIS deseado durante el arranque con el comando domainname.

10.6. Eleccin de los Mapas Correctos o

151

Una vez creado este chero de conguracin bsico y de asegurarse de que tiene permiso o a de lectura para todo el mundo, deber realizar su primera prueba para comprobar si puede a conectar con su servidor. Aseg rese de elegir cualquier mapa que su servidor distribuya, u como hosts.byname, e intente obtenerlo usando la utilidad ypcat. ypcat, como todas las dems herramientas NIS, debe encontrarse en /usr/sbin. a
# ypcat hosts.byname 191.72.2.2 vbeaujolais 191.72.2.3 vbardolino 191.72.1.1 vlager 191.72.2.1 vlager 191.72.1.2 vstout 191.72.1.3 vale 191.72.2.4 vchianti

vbeaujolais.linus.lxnet.org vbardolino.linus.lxnet.org vlager.linus.lxnet.org vlager.linus.lxnet.org vstout.linus.lxnet.org vale.linus.lxnet.org vchianti.linus.lxnet.org

La salida que obtenga debe ser algo parecido a lo expuesto arriba. Si recibe un mensaje de error en su lugar que diga Cant bind to server which serves domain (no se puede conectar al servidor del dominio), o algo similar, entonces, o el nombre de dominio NIS que ha establecido no tiene denido su servidor correspondiente en yp.conf, o el servidor, por alguna razn, no est disponible. En este ultimo caso, aseg rese de que un ping a o a u esa mquina da un resultado positivo, y de que est en efecto ejecutando un servidor NIS. a a Puede vericar esto ultimo usando rpcinfo, que deber producir la siguiente salida: a
# rpcinfo -u servidor ypserv program 100004 version 2 ready and waiting

10.6

Eleccin de los Mapas Correctos o

Una vez que est seguro de que puede llegar al servidor NIS, debe decidir qu cheros de e e conguracin sustituir o aumentar con mapas NIS. Normalmente desear usar mapas NIS o a para las funciones de busqueda de nodos y de claves de usuario. El primero es especialmente util si no utiliza DNS. El segundo permite a todos los usuarios entrar en su cuenta desde cualquier sistema dentro del dominio NIS; esto suele requerir compartir un directorio /home central entre todos los nodos mediante NFS. Todo esto se explica en detalle en la seccin 10.7 o ms abajo. Otros mapas, como services.byname, no proporcionan una ganancia tan clara, a pero ahorran algo de trabajo de edicin si instala alguna aplicacin de red que use un o o nombre de servicio que no est en el chero services estndar. e a Por lo general, usted desear tener alguna libertad de eleccin acerca de cundo una a o a funcin de b squeda usar cheros locales y cundo har una peticin al servidor NIS. o u a a a o

10.6. Eleccin de los Mapas Correctos o

152

NYS le permite congurar el orden en que una funcin accede a estos servicios. Esto se o controla mediante el chero /etc/nsswitch.conf, que quiere decir Selector del Servicio de Nombrado 9 pero por supuesto no est limitado a los servicios de nombres. Para cualquiera a de las funciones de b squeda de datos soportadas por NYS, contiene una l u nea citando los servicios a usar. El orden correcto de los servicios depende del tipo de datos. Es improbable que el mapa services.byname contenga entradas diferentes que las que se encuentran en el chero services local; unicamente podr contener ms. As que una buena eleccin ser consultar a a o a los cheros locales primero, y probar con NIS slo si el nombre del servicio no fue encontrado. o Por otro lado, la informacin de nombres de nodos puede cambiar muy frecuentemente, de o forma que el DNS o el servidor NIS tendr siempre la informacin ms precisa, mientras an o a que el chero hosts local slo se mantiene como copia de respaldo por si el DNS y NIS o fallasen. En este caso, habr que comprobar el chero local en ultimo lugar. a El siguiente ejemplo muestra cmo congurar las funciones gethostbyname(2), gethostbo yaddr(2), y getservbyname(2) de la forma descrita anteriormente. Probarn los servicios a listados por orden; si una busqueda es satisfactoria, se devuelve el resultado, si no, se intentar con el siguiente servicio. a
# /etc/nsswitch.conf de ejemplo # hosts: nis dns files services: files nis

Ms abajo se muestra la lista completa de servicios que pueden ser usados en una entrada a del chero nsswitch.conf. Los mapas, cheros, servidores y objetos que se pueden consultar dependen del nombre de la entrada. nisplus o nis+ Usa el servidor NIS+ para este dominio. La situacin del servidor se obtiene o del chero /etc/nis.conf. nis Usa el servidor NIS actual de este dominio. La situacin del servidor cono sultado est congurada en el chero yp.conf como se mostr en la seca o cin previa. Para la entrada hosts se consultan los mapas hosts.byname y o hosts.byaddr. Usa el servidor de nombres DNS. Este tipo de servicio slo es util con la o entrada hosts. Los servidores de nombres consultados siguen estando determinados por el chero estndar resolv.conf. a
N. del T.: del ingls Name Service Switch. e

dns

10.7. Uso de los mapas passwd y group

153

les dbm

Usa el chero local. Como el chero /etc/hosts para la entrada hosts. Busca la informacin en cheros DBM localizados en /var/dbm. El nombre o usado para el chero es el del mapa NIS correspondiente.

Actualmente NYS soporta las siguientes entradas en nsswitch.conf : hosts, networks, passwd, group, shadow, gshadow, services, protocols, rpc y ethers. Es probable que se a adan n ms entradas. a La gura 10.1 muestra un ejemplo ms completo que introduce otra caracter a stica del chero nsswitch.conf : la palabra clave [NOTFOUND=return] en la entrada hosts indica a NYS que retorne si el elemento deseado no pudo ser encontrado en la base de datos NIS o DNS. Esto es, NYS continuar y buscar en los cheros locales slo si las llamadas a a a o los servidores NIS y DNS fallaron por alguna otra razn. Los cheros locales sern usados o a entonces slo durante el arranque y como copia de respaldo cuando el servidor NIS se haya o ca do.
# /etc/nsswitch.conf # hosts: nis dns [NOTFOUND=return] files networks: nis [NOTFOUND=return] files services: files nis protocols: files nis rpc: files nis

Figura 10.1: Fichero nsswitch.conf de ejemplo.

10.7

Uso de los mapas passwd y group

Uno de las usos ms importantes de NIS es sincronizar usuarios e informacin de cuentas a o en todos los nodos de un dominio NIS. Para este n, slo se suele mantener un peque o o n chero local /etc/passwd, al que se le a ade informacin de todas las dems cuentas men o a diante los mapas NIS. Sin embargo, slo con habilitar b squedas NIS para este servicio en o u nsswitch.conf no es suciente. Cuando se base en la informacin de contrase as distribuida por NIS, debe primero o n cerciorarse de que los n meros identicadores de cualquier usuario que tenga en su chero u passwd local coincidan con la idea que tiene el servidor NIS de identicadores de usuarios. Usted tambin desear esto para otros propsitos, como montar vol menes NFS de otros e a o u nodos de su red.

10.7. Uso de los mapas passwd y group

154

Si alguno de los n meros de usuario de /etc/passwd o de /etc/group son distintos de u los que aparecen en los mapas, tiene que ajustar el propietario de todos los cheros que pertenezcan a ese usuario. Primero deber cambiar todos los n meros de uid y gid en a u passwd y group a los nuevos valores; despus, encontrar todos los cheros que pertenezcan e a los usuarios recin modicados, y nalmente cambiarles el propietario. Supongamos que e news ten un n mero de usuario de 9, y que okir ten un n mero de usuario de 103, y que a u a u stos fueron cambiados a alg n otro valor; entonces deber teclear los siguientes comandos: e u a
# # # # find / -uid 9 -print >/tmp/uid.9 find / -uid 103 -print >/tmp/uid.103 cat /tmp/uid.9 | xargs chown news cat /tmp/uid.103 | xargs chown okir

Es importante que ejecute estos comandos con el nuevo chero passwd ya instalado, y que recoja todos los nombres de cheros antes de cambiar el propietario de cualquiera de ellos. Para cambiar el grupo propietario de los cheros, se usar un comando similar. a Una vez hecho esto, los n meros de uid y gid de su sistema estarn de acuerdo con los de u a los dems nodos de su dominio NIS. El siguiente paso ser a adir las l a a n neas de conguracin o a nsswitch.conf que habiliten las b squedas NIS de informacin de usuario y grupo. u o
# /etc/nsswitch.conf - tratamiento de contrase\~na y grupo passwd: nis files group: nis files

Esto hace que el comando login y otros de esta familia consulten primero los mapas NIS cuando un usuario intenta entrar, y si esta b squeda falla, sigan con los cheros locales. u Normalmente usted borrar la mayor parte de los usuarios de sus cheros locales y slo a o dejar en ellos entradas para root y para cuentas genricas como mail. Esto es porque a e algunas tareas vitales del sistema pueden requerir mapear uids a nombres de usuario o viceversa. Por ejemplo, las tareas cron administrativas pueden ejecutar el comando su para convertirse temporalmente en news, o el subsistema UUCP puede enviar un informe de estado en un mensaje. Si news y uucp no tienen entradas en el chero passwd local, estas tareas fallarn miserablemente durante un apagn de NIS. a o Dos observaciones importantes: por un lado, la conguracin descrita hasta aqu slo o o funciona para sistemas de login que no usan contrase a shadow, como los incluidos en el n paquete util-linux. Los intrincados mtodos para usar contrase as shadow con NIS sern e n a cubiertos ms adelante. Por otro lado, los comandos login no son los unicos que acceden al a chero passwd por ejemplo la orden ls que la mayor parte de la gente usa constantemente. Cada vez que se saca un listado con la opcin -l, ls mostrar los nombres simblicos del o a o

10.8. Uso de NIS con Soporte Shadow

155

propietario y del grupo; esto es, por cada uid y gid que encuentre, deber hacer una peticin a o al servidor NIS. Esto ralentizar mucho todo el sistema cuando su red local se atasque, o, a a n peor, cuando el servidor NIS no est en la misma red f u e sica, de forma que los datagramas tengan que pasar a travs de un encaminador o puente. e Y esto no es todo. Imagine lo que pasa si un usuario quiere cambiar su contrase a. n Normalmente invocar el comando passwd, que leer la nueva contrase a y actualizar el a a n a chero passwd local. Esto es imposible con NIS, puesto que ese chero no est disponible a localmente, y tampoco es una opcin que los usuarios entren en el servidor NIS cada vez o que quieran cambiar la clave. Por ello, NIS proporciona un sustituto para passwd llamado yppasswd, que realiza una tarea anloga en NIS. Para cambiar la contrase a en la mquina a n a servidora, contacta con el demonio yppasswdd en ese nodo mediante RPC, y le proporciona informacin de la contrase a actualizada. Generalmente, yppasswd se instala sobre el o n programa normal haciendo algo as :
# cd /bin # mv passwd passwd.old # ln yppasswd passwd

Al mismo tiempo tendr que instalar rpc.yppasswdd en el servidor y arrancarlo desde los a guiones rc. Esto ocultar de forma efectiva todas las complicaciones de NIS a sus usuarios. a

10.8

Uso de NIS con Soporte Shadow

Todav no existe soporte NIS para instalaciones que usan el conjunto de utilidades shadow a password. John F. Haugh, el autor del conjunto shadow, public recientemente una versin o o de las funciones de biblioteca shadow en comp.sources.misc, cubiertas por la licencia LGPL de GNU. Ya tiene alg n soporte para NIS, pero no est completa, y los cheros no u a han sido a adidos todav a la biblioteca C estndar. Por otro lado, publicar la informacin n a a o de /etc/shadow via NIS rompe de alguna manera con el propsito del conjunto shadow. o Aunque las funciones de b squeda de contrase a en NYS no usan un mapa shau n dow.byname ni nada parecido, NYS soporta el uso de un chero /etc/shadow local de forma transparente. Cuando la implementacin NYS de getpwnam es llamada para buscar o informacin relacionada con un login dado, se consultan las facilidades especicadas por la o entrada passwd en nsswitch.conf. El servicio nis seguir mirando en el mapa passwd.byname a del servidor NIS. En cambio, el servicio les mirar si existe /etc/shadow y lo intentar abrir. a a Si no existe, o si el usuario no tiene privilegios de root, volver al comportamiento tradia cional de mirar la informacin del usuario slo en /etc/passwd. Sin embargo, si el chero o o shadow existe y puede ser abierto, NYS extraer la contrase a del usuario de shadow. La a n

10.9. Uso del Cdigo NIS Tradicional o

156

funcin getpwuid se implementa similarmente. De esta forma, los binarios compilados con o NYS funcionarn de forma transparente con una instalacin shadow local. a o

10.9

Uso del Cdigo NIS Tradicional o

Si est usando el cdigo de cliente existente en la libc estndar, la conguracin de un a o a o cliente NIS es un poco diferente. Por un lado, se usa un demonio ypbind para buscar por la red servidores activos en vez de obtener esta informacin de un chero de conguracin. o o Usted tendr por ello que cerciorarse de que arranca ypbind durante la inicializacin del a o sistema. Debe ser invocado despus de que el dominio NIS haya sido establecido y de e que el mapeador de puertos RPC haya sido arrancado. Despus podr invocar ypcat para e a comprobar el servidor como se mostr ms arriba. o a Recintemente ha habido numerosos informes de error indicando que NIS falla con e un mensaje de error que dice: clntudp create: RPC: portmapper failure - RPC: unable to receive. Estos mensajes de error son debidos a un cambio incompatible en el modo en que ypbind comunica la informacin de enlazado a las funciones de biblioteca. Con o obtener las fuentes ms recientes de las utilidades NIS y recompilarlas se deber solucionar a a 10 este problema. Del mismo modo, la forma en que el NIS tradicional decide si hay que mezclar informacin NIS, y cmo, con la de los cheros locales es distinta que la usada por NYS. Por o o ejemplo, para usar los mapas de contrase a NIS, debe incluir la siguiente l n nea en alg n u lugar de su mapa /etc/passwd:
+:*:0:0:::

Esto marca el lugar donde las funciones de b squeda de contrase as insertan los u n mapas NIS. Insertando una l nea similar (menos los dos ultimos dos puntos) en /etc/group obtenemos lo mismo para los mapas group.*. Para usar los mapas hosts.* distribuidos por NIS, cambie la l nea order del chero host.conf. Por ejemplo, si desea usar NIS, DNS, y el chero /etc/hosts (por ese orden), necesita cambiar esa l nea por:
order yp bind hosts

La implementacin NIS tradicional no soporta ning n otro mapa ms por el momento. o u a

El cdigo fuente de yp-linux o /pub/Linux/LOCAL.

10

puede obtenerse de ftp.uni-paderborn.de,

en el directorio

Cap tulo 11

El Sistema Ficheros en Red (NFS)


NFS, acrnimo de Network File System, que nosotros llamaremos Sistema de Ficheros en o Red, es probablemente el servicio ms complejo de los que se ofrecen usando RPC. Permite a acceder a los cheros remotos exactamente igual que si fueran locales. Esto se hace programando parte de la funcionalidad a nivel del n cleo (en el lado del cliente) y la otra parte u como un demonio servidor. El acceso a los cheros es totalmente transparente al cliente, funcionando con muchas arquitecturas de servidores. NFS ofrece numerosas ventajas: Los datos accedidos por todo tipo de usuarios pueden mantenerse en un nodo central, con clientes que montan los directorios en el momento de arrancar. Por ejemplo, puede mantener todas las cuentas de usuario en una mquina, y hacer que las dems monten a a dichas cuentas en su directorio /home por NFS. Si adems se instala NIS, los usuarios a podr entrar y trabajar de forma transparente en cualquiera de las mquinas. an a Los datos que consumen grandes cantidades de espacio de disco pueden mantenerse A en un nodo. Por ejemplo, mantener una sola copia de L TEX en lugar de copiarlo en cada nodo. Los datos de administracin pueden tambin mantenerse en un solo nodo. Ya no o e ser necesario usar rcp para instalar el mismo chero en 20 mquinas distintas. a a El NFS de Linux es, principalmente, obra de Rick Sladkey, 1 , pues escribi el cdigo o o que corresponde al n cleo y buena parte del cdigo del servidor NFS. Este ultimo es una u o modicacin del servidor unfsd que corre en espacio de usuario, escrito originalmente por o Mark Shand, y el servidor hnfs (Harris NFS) escrito por Donald Becker.
1

Puede contactar con Rick en la direccin jrs@world.std.com o

157

10.9. Uso del Cdigo NIS Tradicional o

158

Veamos ahora un poco cmo funciona NFS: un cliente puede solicitar montar un direco torio desde un servidor remoto, de forma similar a como montar un directorio local. Sin a embargo, la sintaxis no es exactamente igual. Por ejemplo, para montar el directorio /home del nodo vlager en el directorio /users de vale, el administrador escribir el siguiente a comando en vale:2
# mount -t nfs vlager:/home /users

mount intentar conectar con el demonio remoto mountd mediante RPC. El servidor a comprobar si la mquina vale tiene permiso para montar el directorio pedido, y si es a a as retornar un descriptor de chero. Este descriptor se utilizar en todas las peticiones a a que sobre cheros de /users se realicen posteriormente. Cuando alguien accede a un chero remoto, el n cleo manda una llamada RPC al u programa nfsd (demonio de NFS) del nodo remoto. Esta llamada incluye el descriptor de chero, el nombre del chero a acceder y los identicadores de usuario y de grupo del demandante. Estos identicadores se usan para chequear permisos de acceso en la mquina a remota, con lo que los usuarios de ambas mquinas deber ser los mismos. a an En varias implementaciones de un x, las funcionalidades de cliente y servidor NFS se realizan como demonios de nivel de n cleo que se arrancan desde el espacio de usuario al u arrancar la mquina. Se trata del programa nfsd en el servidor y del programa biod (Block a I/O Daemon, o demonio de E/S3 por bloques) en el cliente. Para aumentar el rendimiento, biod realiza E/S as ncrona, y a veces corren concurrentemente varios servidores de NFS. La implementacin de NFS en Linux es algo diferente: el cdigo de cliente est integrado o o a en la capa de sistema de cheros virtual (VFS) y no requiere control adicional mediante el programa biod. Por otro lado, el cdigo de servidor corre totalmente en el espacio de o usuario, por lo que ejecutar varias copias del nfsd resulta imposible debido a los problemas de sincronizacin que originar o a. El mayor problema con el cdigo NFS de Linux es que el n cleo 1.0 no puede manejar o u bloques de memoria de ms de 4Kb, por lo que el cdigo de red no puede manejar datagraa o mas de un tama o mayor que 3500 octetos una vez eliminadas las cabeceras. Esto signica n que las transferencias con servidores NFS que utilicen datagramas grandes por defecto (por ejemplo, los 8Kb de SunOS) necesitan ser reducidos articialmente. Esto produce prdie 4 Esta limitacin desapareci en los n cleos das de rendimiento en ciertas circunstancias. o o u posteriores al 1.1, reescribindose el cdigo del cliente para aprovechar la nueva situacin. e o o
Observar que puede omitirse la opcin -t nfs, ya que el programa mount sabe por la aparicin de los o o dos puntos (:) que se trata de un sistema NFS. 3 N. del T.: E/S es Entrada/Salida 4 Como me explic Alan Cox: La especicacin de NFS requiere que el servidor guarde cada escritura o o en disco antes de retornar un reconocimiento al cliente (ACK). Como los ncleos de BSD slo manejan u o
2

11.1. Preparacin de NFS o

159

11.1

Preparacin de NFS o

Antes de usar NFS, sea en cliente o servidor, debe asegurarse de que el n cleo tiene el u soporte incluido. Los n cleos modernos informan de ello a travs del sistema /proc, con un u e comando como el siguiente:
$ cat /proc/filesystems minix ext2 msdos nodev proc nodev nfs

Si no aparece la palabra nfs, tendr que recompilar el n cleo con el soporte NFS habia u litado. Sobre cmo congurar el n cleo hablamos en la seccin Conguracin del N cleo o u o o u del cap tulo 3. Con versiones del n cleo anteriores a la 1.1, la forma de comprobarlo es intentar montar u un sistema NFS de prueba, de la siguiente forma:
# mkdir /tmp/test # mount localhost:/etc /tmp/test

Si el comando mount falla con el mensaje fs type nfs no supported by kernel (sistema tipo NFS no soportado por el ncleo), deber recompilar el n cleo habilitando u a u NFS. Otro tipo de errores no implican recompilar el n cleo, ya que se producen al no estar u corriendo el programa nfsd.

11.2

Montaje de un volumen NFS

Los vol menes NFS5 se montan como los sistemas de cheros usuales. Se trata de llamar u al comando mount con la sintaxis:
# mount -t nfs volumen nfs directorio local opciones
escrituras del tamao de pgina (4 Kb), escribir en 4 veces 1Kb cada una en un servidor NFS basado en n a BSD tiene como consecuencia hacer cuatro operaciones de escritura de 4 Kb cada una. 5 Hablamos de volmenes, y no de sistemas de cheros, porque no lo son realmente: pueden ser slo u o directorios de un sistema.

11.2. Montaje de un volumen NFS

160

La parte volumen nfs se especica con la sintaxis nodo remoto :directorio remoto . Dado que esta notacin es propia del NFS, la opcin -t nfs resulta redundante. o o Hay otras opciones que pueden incluirse en el programa mount, que van tras el modicador -o en la l nea de comando o en el campo de opciones de la entrada correspondiente en el chero /etc/fstab. En ambos casos, las distintas opciones deben separarse por comas. Las opciones que se especiquen en la l nea de comandos tendrn preferencia sobre otras a que se indiquen en /etc/fstab. Una entrada de ejemplo del chero /etc/fstab podr ser a
# volumen directorio news:/usr/spool/news /usr/spool/news tipo nfs opciones timeo=14,intr

Ahora el volumen anterior puede montarse con la orden


# mount news:/usr/spool/news

Ante la ausencia de una entrada en fstab, las llamadas al programa mount se hacen ms a incmodas. Por ejemplo, puede que tenga que teclear cosas como sta, para especicar que o e se limite el tama o del datagrama a 2 Kb: n
# mount moonshot:/home /home -o rsize=2048,wsize=2048

La lista de todas las opciones vlidas para mount se encuentra descrita en la pgina de a a ayuda nfs(5) que viene con la utilidad de montaje de Rick Sladkey, que forma parte del paquete util-linux de Rik Faith. Las opciones ms interesantes son las siguientes: a rsize=n y wsize=n Especican el tama o de datagrama utilizado por el cliente NFS en las pen ticiones de lectura y escritura, respectivamente. Por defecto, cada una de ellas vale 1024 octetos, dados los l mites del tama o de datagrama UDP ya n comentados. timeo=n Esta opcin establece el tiempo mximo de espera de respuesta a una petio a cin del cliente NFS; en centsimas de segundo. Por defecto, este valor es o e de 0.7 segundos. Marca el montaje del volume como f sico. Es un valor por defecto. Hace que el montaje sea slo lgico (opuesto al anterior). o o

hard soft

11.3. Demonios de NFS

161

intr

Esta opcin habilita la posibilidad de que una se al interrumpa una espera o n por NFS. Es util para poder abortarla cuando el servidor no responde.

Cuando el cliente realiza una peticin al servidor NFS, esperar un tiempo mximo (el o a a que se especica en la opcin timeout). Si no hay conrmacin tras ese tiempo (tiempo que o o se denomina de expiracin o timeout) tiene lugar otra espera, de expiracin secundaria o o o minor timeout, en el que la operacin se reintenta pero doblando el tiempo de expiracin o o inicial. Tras 60 segundos, se retorna a la expiracin principal o major timeout. o Por defecto, la expiracin principal har que el cliente env un mensaje a la consola o a e y empiece de nuevo, con una expiracin del doble de tiempo. Potencialmente, esto podr o a mantenerse eternamente. En este caso se habla de montaje f sico o hard-mount. La otra variedad, el montaje lgico o soft-mount, genera un mensaje de error de E/S al proceso o llamante cuando se produce la expiracin principal. El error no se propaga al proceso hasta o que hace una nueva llamada a write(2), por lo que esto, junto con la pol tica de escritura desde la cache, hace que no se sepa realmente si una operacin de escritura ha tenido xito o e o no, a menos que el volumen est montado de forma f e sica. En general, se recomienda el montaje f sico salvo en caso de tratarse de informacin no o cr tica, como la de servidores de FTP o particiones de noticias. En entornos cr ticos (por ejemplo, estaciones de trabajo X con dependencia de servidores de aplicaciones X Window) no debe usarse el montaje lgico a riesgo de perder las conexiones si en un momento se o satura o desactiva la red por alg n motivo. Una solucin alternativa a usar montajes f u o sicos es aumentar el valor de la opcin timeo, o bien usar montajes f o sicos pero permitiendo el env de se ales para interrumpir las esperas en caso de necesidad. o n Normalmente, el demonio mountd llevar de alguna forma un registro de qu directorios a e estn montados desde qu mquinas. El programa showmount, incluido en el paquete de a e a aplicaciones NFS, permite consultar esta informacin. De todas formas, el mountd de Linux o aun no lleva estos registros.

11.3

Demonios de NFS

Si desea proporcionar un servicio NFS a otras mquinas, deber ejecutar en el servidor los a a programas nfsd y mountd. Son programas basados en RPC, por lo que no son arrancados desde el inetd, sino lanzados como demonios en tiempo de arranque, y registrados en el mapeador de puertos de RPC. Por lo tanto, debe asegurarse que previamente ha sido lanzado el programa rpc.portmap. Normalmente, esto implica las siguientes l neas en los scripts de arranque rc:
if [ -x /usr/sbin/rpc.mountd ]; then

11.4. El chero exports

162

/usr/sbin/rpc.mountd; echo -n " mountd" fi if [ -x /usr/sbin/rpc.nfsd ]; then /usr/sbin/rpc.nfsd; echo -n " nfsd" fi

La informacin de propiedad de los cheros que un servidor NFS proporciona a sus o clientes viene dada en valores numricos de identicador de usuario (uid) y de grupo (gid). e Por lo tanto, esto resultar util si clientes y servidores tienen el mismo mapa de usuarios y a grupos, lo que sucede cuando dicho mapa se obtiene en todos los nodos desde un servidor NIS central. Sin embargo, hay veces que esto no sucede. En lugar de actualizar los uids y gids del cliente para ponerse de acuerdo con los del servidor, puede usarse el demonio ugidd para e a hacer este trabajo. Utilizando la opcin map daemon explicada despus, se indicar a nfsd o que establezca una correspondencia entre uid/gid del servidor y del cliente, con la ayuda, en el cliente, de ugidd. ugidd es un servidor basado en RPC, y se inicia tambin en los scripts rc, con una l e nea:
if [ -x /usr/sbin/rpc.ugidd ]; then /usr/sbin/rpc.ugidd; echo -n " ugidd" fi

11.4

El chero exports

Mientras que las opciones anteriores se aplican a la conguracin del cliente NFS, hay otras o opciones que se aplican al servidor, que afectan a su relacin con cada posible cliente. Estas o opciones se incluyen en el chero de sistemas exportados /etc/exports. Por defecto, mountd no permitir a nadie montar directorios de su mquina. Para a a permitir que alg n nodo monte un directorio, ste debe estar exportado, es decir, especicado u e en el chero de exportacin. Un ejemplo de dicho chero es el siguiente: o
# Fichero de exportacion para vlager (/etc/exports) /home vale(rw) vstout(rw) vlight(rw) /usr/X386 vale(ro) vstout(ro) vlight(ro) /usr/TeX vale(ro) vstout(ro) vlight(ro) / vale(rw,no_root_squash) /home/ftp (ro)

11.4. El chero exports

163

Cada l nea dene un directorio, y la lista de mquinas que pueden acceder a l por a e NFS. Un nombre de mquina puede especicarse con su nombre internet completo, aunque a tambin se permite el uso de los comodines * y ?, que se interpretan como en el shell de e Bourne. Por ejemplo, lab*.prueba.com encaja con cualquier nodo con nombre similar a laboratorio.prueba.com o lab12.prueba.com, etc. Cuando en una l nea de /etc/exports no se indique el nombre del nodo, se asume que cualquier mquina podr montar el directorio a a (as sucede en nuestro ejemplo con /home/ftp). mountd usa la llamada gethostbyaddr(2) para comprobar si el cliente demandante tiene un nombre de los que aparecen en /etc/exports. Con DNS, la llamada retorna el nombre cannico con lo que debe evitar usar nombres de alias en el chero de exportacin 6 . Si no o o usa DNS, el nombre devuelto por la llamada anterior ser el primer nombre que coincida a con el IP del demandante, en el chero /etc/hosts. Tras el nombre del nodo autorizado, se puede encerrar entre parntesis un conjunto de e opciones separadas por comas. Dichas opciones son: insecure unix-rpc Permitir acceso no autenticado desde ese nodo. Requerir autenticacin RPC del dominio Unix para este nodo. Se trata o simplemente de que las peticiones se originen en un puerto reservado (es decir, inferior al 1024). Esta opcin est activa por defecto. o a Requerir autenticacin RPC segura para este nodo. A n no est implemeno u a tado. Se sugiere ver la documentacin de Sun al respecto (vase, Secure o e RPC). Requerir autenticacin Kerberos. Tampoco se ha implementado a n. Se o u sugiere consultar la documentacin del MIT. o Se trata de una opcin de seguridad que deniega acceso a nivel de superuo suario, traduciendo el identicador uid recibido (0) al del usuario nobody. Es decir, cualquier peticin NFS del usuario root ser tomada como si fuera o a del usuario nobody. Evita la restriccin anterior. Es una opcin por defecto. o o ro Monta la jerarqu de cheros en modo de slo lectura. Es una opcin por a o o defecto. Monta el directorio con permiso para leer y escribir en l. e
6

secure-rpc

kerberos

root squash

no root squash

rw

Ver cap tulo 6

11.5. El sistema de automontado en Linux

164

link relative

Convierte enlaces simblicos absolutos (que empiezan con una barra de dio rectorio, /) en enlaces relativos colocando los prejos ../ que sean necesarios para hacer que apunten a la ra del servidor. Esta opcin slo z o o tiene sentido cuando se monta un sistema de cheros completo y no slo un o directorio. As si montamos dicho sistema bajo /mnt y existe en /mnt/sub , un enlace chero /tmp/chero se convertir a chero ../tmp/chero a logrando as que el enlace sirva para algo. Es una opcin activa por defecto. o

link absolute

Deja los enlaces absolutos como estaban (es la opcin habitual en servidores o NFS de Sun). La opcin map identity indica al servidor que asuma que el cliente utiliza el o mismo mapa de uids y gids que el servidor. Es una opcin por defecto. o Esta opcin indica al servidor NFS que no comparte el mapa de usuarios con o el del cliente. Con ello, las comparaciones de uids y gids se harn mediante a una lista de mapeado entre ambos que se construir llamando al demonio a ugidd del cliente.

map identity

map daemon

Cualquier error analizando el chero de exportaciones durante el arranque del servidor nfsd o mountd ser enviado a nivel de noticacin (notice) al registro del sistema (syslogd). a o Obsrvese que los nombres de los nodos se obtienen a partir de las direcciones IP mee diante resolucin inversa, con lo que el sistema de resolucin deber tener una adecuada o o a conguracin en este punto. Si utiliza BIND y la seguridad le preocupa especialmente, o deber activar chequeo de nombres falsos (spoong) en el chero host.conf. a

11.5

El sistema de automontado en Linux

A veces es ineciente mantener montados todos los vol menes NFS de uso potencial. Una alu ternativa es usar un demonio de automontado. Se trata de un demonio que automticamente a monta los vol menes cuando se necesitan y los desmonta tras un tiempo de inactividad. u Adems, sirve para poder montar los mismos cheros de un lugar diferente. Por ejemplo, a puede mantener varias copias de las utilidades de X Window y a la hora de ser necesitadas, intentar montar cada copia hasta conseguirlo. El programa de automontado para Linux se llama amd. Ha sido escrito inicialmente por Jan-Simon Pendry para luego encargarse Rick Sladkey de portarlo a Linux. La versin o actual es la 5.3.

11.5. El sistema de automontado en Linux

165

Explicar el uso de amd excede los objetivos de este cap tulo. El mejor manual se encuentra en las fuentes: un chero texinfo con informacin muy detallada. o

Cap tulo 12

Administracin de Taylor UUCP o


12.1 Historia

UUCP fue dise ado a nales de los a os setenta por Mike Lesk en los laboratorios Bell de n n AT&T con el objetivo de crear una simple red sobre l neas de telfonos para conectarse e mediante llamadas telefnicas. Dado que la mayor de la gente que quiere tener correo o a electrnico y noticias de Usenet en sus ordenadores personales todav se comunican por o a mdem, UUCP ha seguido siendo muy popular. Aunque hay muchas implementaciones o funcionando en una gran variedad de plataformas y sistemas operativos, todas son bastante compatibles. Sin embargo, como con cualquier programa que se ha convertido en estndar con el a tiempo, no hay un UUCP que se pueda denominar el UUCP. Ha sufrido un continuo proceso de evolucin desde la primera versin que fue implementada en 1976. En la actualidad hay o o dos especies principales que se diferencian principalmente en su soporte del hardware y en su conguracin. A su vez, hay varias implementaciones de estas dos clases, todas con ligeras o diferencias respecto a sus familiares. Una de las clases es la llamada UUCP Versin 2, que es una implementacin de 1977 o o de Mike Lesk, David A. Novitz, y Greg Chesson. Aunque es bastante antigua, todav se a usa frecuentemente. Las implementaciones ms recientes de la Versin 2 ofrecen muchas de a o las caracter sticas de los tipos ms nuevos de UUCP. a La segunda clase de UUCP se desarroll en 1983, y se conoce com nmente como BNU o u 1 , HoneyDanBer UUCP, o HDB abreviado. El nombre fue (Utilidades Bsicas de Red) a derivado de los nombres de los autores, P. Honeyman, D. A.Novitz, y B. E. Redman. HDB fue creado para eliminar algunas deciencias de la Versin 2. Por ejemplo, se a adieron o n
1

N. del T.: BNU son las siglas de Basic Network Utilities.

166

12.1. Historia

167

nuevos protocolos de transferencia, y el directorio de cola fue dividido de manera que ahora slo haya un directorio para cada ordenador con el que mantega trco de UUCP. o a La implementacin de UUCP que se distribuye con Linux es Taylor UUCP 1.04, 2 que es o la versin en la que se basa este cap o tulo. La versin 1.04 de Taylor UUCP esta disponible o desde Febrero de 1993. Ademas de los tradicionales cheros de conguracin, Taylor UUCP o tambien se puede compilar para que use cheros de conguracin de un nuevo estilo: el estilo o Taylor. La versin 1.05 ha aparecido recientemente, y pronto se incluir en la mayor de las o a a distribuciones. Las diferencias entre estas versiones afectan en su mayor parte a aspectos que usted nunca usar, as que con lo poco que contamos aqu le deber bastar para congurar a a Taylor UUCP 1.05 en su sistema. Tal y como se incluye en la mayor de las distribuciones de Linux, el Taylor UUCP viene a compilado para ser compatible con BNU, con el estilo de conguracin de Taylor, o ambos. o Dado que el segundo es mucho ms exible, y probablemente mas fcil de entender que los a a usualmente oscuros cheros de conguracin de BNU, describir aqu el estilo Taylor. o e El propsito de este cap o tulo no es ofrecer una explicacin exhaustiva de las opciones o de la l nea de comando para los comandos de UUCP y lo que hacen, sino darle una introduccin sobre cmo poner en marcha un nodo de UUCP. La primera seccin presenta una o o o introduccin de cmo UUCP implementa ejecucin remota y transmisin de cheros. Si o o o o usted tiene ya algunos conocimientos de UUCP, quiz desee saltarse esto y continuar con a la seccin Ficheros de conguracin de UUCP, que explica los distintos cheros usados o o para congurar UUCP. Sin embargo, asumiremos que usted est familiarizado con los programas de usuario a del paquete UUCP. Estos son uucp y uux. Si no los conoce sucientemente, consulte las correspondientes pginas de manual. a Aparte de los programas de usuario, uux y uucp, el paquete UUCP contiene algunos comandos ms, usados solamente para nes administrativos. Se usan para observar el a trco de UUCP en su nodo, deshacerse de viejos cheros de registro, o crear estad a sticas. No describiremos ninguna de estas utilidades, porque son perifricas a las tareas principales e de UUCP. Dichas utilidades estn bien documentadas y son bastante fciles de entender. a a Sin embargo, hay una tercera categor que forma los motores del UUCP. Estas son a, uucico (donde cico signica copy-in copy-out), y uuxqt, que ejecuta trabajos enviados desde sistemas remotos.
2

Escrito por Ian Taylor en 1993.

12.2. Introduccin o

168

12.1.1

Ms Informacin Sobre UUCP a o

Aquellos que no encuentren todo lo que necesiten en este cap tulo pueden leer la documentacin que viene con el paquete. Viene en un grupo de cheros de texinfo que describen o la conguracin usando el estilo de conguracin de Taylor. Los cheros texinfo se pueden o o convertir a DVI y a cheros GNU info usando tex y makeinfo respectivamente. Si quiere usar cheros de conguracin de BNU o incluso de la Versin 2 (!), existe un o o libro muy recomendable, Managing UUCP and Usenet ([OReilly89]). Es muy util. Otra buena fuente de informacin sobre UUCP en Linux es el UUCP-HOWTO de Vince Skahan, o que aparece regularmente en comp.os.linux.announce. Tambin hay un grupo de noticias sobre UUCP, llamado comp.mail.uucp. Si usted e tiene preguntas espec cas sobre Taylor UUCP, puede que sea mejor que las pregunte en ese grupo, en vez de en los grupos comp.os.linux.

12.2
12.2.1

Introduccin o
Disposicin de Transferecias de UUCP y Ejecucin Remota o o

El concepto de trabajos es vital para entender el UUCP. Cada transferencia que un usuario inicia con uucp o uux se denomina un trabajo. Se compone de un comando para ser ejecutado en un sistema remoto, y una coleccin de cheros para ser transferidos entre o redes. Una de estas partes puede faltar. Por ejemplo, el siguiente comando describe un trabajo UUCP, que conlleva copiar el chero netguide.ps en el ordenador pablo, y ejecutar luego el comando lpr para imprimir el chero.
$ uux -r pablo!lpr !netguide.ps

Generalmente UUCP no llama al sistema remoto inmediatamente para ejecutar el trabajo (se puede hacer con kermit). En lugar de esto, UUCP guarda la descripcin del trabajo o 3 El arbol de directorios en el que se almacenan temporalmente. Esto se denomina spooling. los trabajos se llama directorio de cola, y se encuentra normalmente en /var/spool/uucp. En nuestro ejemplo, la descripcin del trabajo contendr informacin sobre el comando o a o remoto que hay que ejecutar (lpr ), el usuario que ha iniciado la ejecucin, y otro par de o
N. del T.: spooling puede traducirse por poner en una cola. Spooling se reere a la accin de poner o varios trabajos en una cola para ser usados ms tarde. a
3

12.2. Introduccin o

169

cosas. Ademas de la descripcin del trabajo, UUCP tiene que guardar el chero de datos o netguide.ps. La localizacin exacta y la nomenclatura de los cheros de cola puede variar, dependieno do de las opciones de compilacin. Los UUCPs que son compatibles con HDB generalmente o guardan los cheros de cola en un directorio llamado /var/spool/uucp/mquina, donde a mquina es el nombre del ordenador remoto. Si fue compilado para usar cheros de cona guracin de Taylor, UUCP crea subdirectorios bajo el directorio de cola espec o co a un ordenador para diferentes tipos de cheros de cola. En intervalos regulares UUCP se conecta al sistema remoto. Cuando se ha establecido una conexin, UUCP transere los cheros que describen el trabajo, junto con los cheros o de datos. Los trabajos que entran en el ordenador remoto no se ejecutan de inmediato, sino despues de que la conexin haya nalizado. Esto lo hace uuxqt, que tambin se ocupa de o e reenviar cualquier trabajo que est designado para otro ordenador diferente. e Para diferenciar trabajos importantes y trabajos menos importantes, UUCP asocia un nivel a cada trabajo. El nivel es una sola letra o d gito, de 0 a 9, de A a Z y de a a z, con precedencia decreciente. El correo se suele poner en cola con nivel B o C, mientras que las noticias se suelen poner con nivel N. Los trabajos con un nivel ms alto se transeren ms a a pronto. Los niveles pueden ser asignados usando la opcin -q cuando se ejecuta uucp o uux. o Tambin se puede prohibir la transferencia de trabajos bajo un cierto nivel a horas detere minadas. Esto tambin se llama mximo nivel de cola permitido durante una conversacin e a o y el valor por defecto es z. Perctese de la ambig edad de esta terminolog un chero se a u a: transere slo si es igual o mayor que el mximo nivel de cola. o a

12.2.2
3

El Funcionamiento Interno de uucico

Para comprender por qu uucico necesita saber ciertas cosas, hemos de revisar cmo se e o conecta a un sistema remoto. Cuando usted ejecuta uucico -s sistema desde la l nea de comandos, primero tiene que conectarse f sicamente. Las acciones a tomar dependen del tipo de conexin a usar o por ejemplo, cuando se usa una l nea telefnica, tiene que encontrar un mdem, y marcar o o un n mero de telfono. Sobre TCP, tiene que llamar gethostbyname(3) para convertir el u e nombre a una direccin de red, averiguar qu puerto abrir, y conectar la direccin al puerto o e o correspondiente. Una vez que se ha establecido la conexin, hay que pasar un proceso de autorizacin. o o Normalmente consiste en que el sistema remoto pide un nombre de usuario y posiblemente una clave. Esto se llama el dilogo de entrada. El proceso de autorizacin se lleva a a o cabo mediante el usual getty/login, o en conexiones TCP por el propio uucico. Si la

12.2. Introduccin o

170

autorizacin es permitida, la parte remota de la conexin ejecuta uucico. La copia local de o o uucico que inici la conexin se denomina maestro, y la copia remota se denomina esclavo. o o A continuacin viene la fase de negociacin 4 : El maestro env su nombre, ademas de o o a varias opciones. El esclavo comprueba el nombre para ver si tiene permiso para conectarse, para enviar y recibir cheros, etc. Las opciones describen (entre otras cosas) el nivel mximo a de cheros de cola que hay que transferir. Si esta opcin est activada, tiene lugar una cuenta o a de conversacin, o comprobacin de la secuencia de llamada. Con esta caracter o o stica, ambos ordenadores mantienen una cuenta de conexiones exitosas, que se comparan. Si las cuentas no son iguales, la negociacin de protocolos no tendr lugar. Esto es util para protegerse o a de impostores. Finalmente los dos uucico tratan de ponerse de acuerdo en un protocolo de transferencia com n. Este protocolo gobierna la manera en que los datos se transeren, la manera en u que se comprueba la consistencia de los datos, y la manera en que se retransmiten en caso de error. Hacen falta protocolos diferentes debido a los diferentes tipos de conexiones que se soportan. Por ejemplo, las l neas de telefono precisan un protocolo seguro que es pesimista respecto a errores, mientras que una transmisin de TCP es able y puede usar o un protocolo ms eciente que carece de la mayor de las comprobaciones de errores. a a Una vez que las negociaciones se han completado, comienza la fase de la verdadera transmisin. Ambos extremos ponen en funcionamiento el controlador del protocolo elegido. o Los controladores posiblemente lleven a cabo alguna secuencia espec ca del protocolo para la inicializacin. o Primero el maestro env todos los cheros en la cola de este sistema remoto cuyo nivel a de cola es sucientemente alto. Cuando ha nalizado, informa al esclavo que ha terminado, y que el esclavo puede ahora colgar. El esclavo puede entonces colgar, o tomar el control de la conversacin. Esto es un cambio de papeles: ahora el sistema remoto se convierte o en maestro y el local en esclavo. El nuevo maestro env ahora sus cheros. Cuando ha a terminado, ambos uucicos intercambian mensajes de terminacin, y cierran la comunicacin. o o No vamos a profundizar en ms detalle: para esto, dir a jase a las fuentes o a cualquier buen libro sobre UUCP. Tambien existe un art culo muy antiguo en la red, escrito por David A. Novitz, que da una descripcin detallada del protocolo UUCP. La FAQ 5 de Taylor UUCP o tambin trata algunos detalles de cmo UUCP esta implementado. Se puede encontrar e o regularmente en comp.mail.uucp.
N. del. T.: Literalmente, del ingls handshake o apretn de manos. En este contexto signica e o negociacin de protocolos, fase en la que los programas uucico de cada extremo de comunicacin deciden o o qu protocolo comn usar para enviar los cheros. e u 5 N. del T.: Del ingls Frecuently Asked Questions o Lista de Preguntas Comunes. e
4

12.3. Ficheros de conguracin de UUCP o

171

12.2.3

Opciones de la l nea de comandos de uucico

En esta seccin de describen las opciones ms importantes de la l o a nea de comandos del programa uucico. Para obtener una lista completa, consulte la pgina del manual de uucico(1). a -s sistema Llamar al mencionado sistema si no est prohibido por restriccin de la a o hora de llamada. Llamar al sistema incondicionalmente. Comenzar uucico en modo master. Este es el valor por defecto cuando se usa -s o -S. Por s sola, la opcin -r1 hace que uucico intente llamar todos o los sistemas en sys, a no ser que est prohibido por la hora de llamada o el e n mero permitido de reintentos. u Comenzar uucico en modo esclavo. Este es el valor por defecto cuando no se usan -s ni -S. En modo esclavo, las entrada y salida estndar se suponen a conectadas a un puerto serie, o al puerto de TCP especicado por la opcin o -p si se usa sta. e

-S sistema -r1

-r0

-x tipo , -X tipo Activar la informacin para resolver problemas del tipo especicado. Se pueo den especicar varios tipos en una lista separada por comas. Los siguientes son tipos vlidos: abnormal, chat, handshake, uucp-proto, proto, port, cong, a spooldir, execute, incoming y outgoing. Usando all, todas las opciones se activan. Por razones de compatibilidad con otras implementaciones de UUCP, se puede especicar un n mero en vez del tipo, lo cual activa las n primeras u opciones de la anterior lista. Los mensajes generados /var/spool/uucp. se registran en el chero Debug bajo

12.3

Ficheros de conguracin de UUCP o

Al contrario que programas de transferencia de cheros ms simples, UUCP fue dise ado a n para ser capaz de llevar a cabo todas las tranferencias automticamente. Una vez que a est correctamente congurado, no es necesaria una constante participacin del administraa o dor. La informacin necesaria para esto se guarda en un par de cheros de conguracin o o que residen en el directorio /usr/lib/uucp. La mayor de estos cheros se usan slo para a o conectarse a otro ordenador.

12.3. Ficheros de conguracin de UUCP o

172

12.3.1

Una Ligera Introduccin a Taylor UUCP o

Decir que la conguracin de UUCP es dif ser una descripcin insuciente. Es cierto o cil a o que es un asunto peliagudo, y el formato a veces demasiado conciso de los cheros de conguracin no hace las cosas ms fciles (aunque el formato de Taylor es casi fcil de leer o a a a comparado con los formatos ms antiguos en HDB o Versin 2). a o Para darle una idea de cmo se interact a con estos cheros, le introduciremos los ms o u a importantes, y echaremos un vistazo a algunos ejemplos. No explicaremos ahora todo en detalle; una explicacin mas precisa se describe en secciones posteriores. Si quiere cono gurar su ordenador para UUCP, puede comenzar con los cheros de ejemplo, y adaptarlos gradualmente. Puede elegir los que se muestran a continuacin, o los que se incluyen en su o distribucin de Linux preferida. o Todos los cheros descritos en esta seccin se guardan en /usr/lib/uucp o un subdirectoo rio de ste. Algunas distribuciones de Linux contienen programas de UUCP que tienen soe porte para ambos cheros de HDB y Taylor, y usan diferentes subdirectorios para cada grupo de cheros de conguracin. Normalmente hay un chero README en /usr/lib/uucp. o Para que UUCP funcione correctamente, estos cheros tienen que pertenecer al usuario uucp. Algunos de ellos tienen claves y n meros de telfono, y por lo tanto deber tener u e an 6 permisos de 600. El chero central de conguracin es /usr/lib/uucp/cong, y se usa para establecer los o parmetros generales. El ms importante de ellos (y por ahora, el unico), es el nombre de su a a ordenador antrin de UUCP. En la Cervecera Virtual, se usa vstout como su ordenador o de conexin a UUCP. o
# /usr/lib/uucp/config - Fichero principal de configuracion de UUCP hostname vstout

El siguiente chero de conguracin en importancia es el chero sys. Este contiene toda o la informacin espec o ca al sistema de los ordenadores con los que usted se conecta. Esto incluye el nombre del ordenador, e informacin sobre la propia conexin, tal como el n mero o o u de telfono cuando se usa una conexin por mdem. Un ejemplo t e o o pico para un ordenador llamado pablo que se conecta por mdem ser o a:
# /usr/lib/uucp/sys - Vecinos UUCP # system: pablo
Aunque la mayor de los comandos de UUCP tienen que tener el setuid a uucp, tiene que asegurarse a de que el programa uuchk no lo es. Si no, los usuarios ser capaces de ver las claves aunque tengan modo an 600.
6

12.3. Ficheros de conguracin de UUCP o

173

system time phone port speed chat

pablo Any 123-456 serial1 38400 ogin: neruda ssword: lorca

port especica el puerto a usar, y time especica las horas a las que se puede llamar a ese ordenador. chat describe la macro del dilogo de entrada la secuencia de caracteres a que hay que intercambiar para permitir a uucico que conecte con pablo. Volveremos a las macros ms tarde. El comando port no usa un nombre de chero de un dispositivo como a /dev/cua1, sino que usa el nombre de una entrada en el chero port. Se pueden asignar estos nombres como se desee siempre y cuando hagan referencia a una entrada vlida en a port. El chero port contiene informacin espec o ca a la propia conexin. Para conexiones o por mdem, describe el chero de dispositivo a usar, el conjunto de velocidades soportadas, o y el tipo de equipo de marcacin conectado al puerto. La entrada a continuacin describe o o /dev/cua1 (o sea, el puerto COM 2), en el cual hay un mdem NakWell conectado que es o capaz de funcionar a velocidades de hasta 38400 bps. El nombre de la entrada se puede elegir para que coincida con el nombre usado en el chero sys.
# /usr/lib/uucp/port - puertos de UUCP # /dev/cua1 (COM2) port serial1 type modem device /dev/cua1 speed 38400 dialer nakwell

La informacin que afecta al propio marcador se mantiene en otro chero, llamado dial. o Para cada tipo de marcador, contiene bsicamente la secuencia de comandos necesarios para a llamar a otro ordenador, dado el n mero de telfono. Una vez ms, esto se especica como u e a una macro de dilogo. Por ejemplo, la entrada para el anterior NakWell puede parecerse a a esta:
# /usr/lib/uucp/dial - informacion por marcador. # NakWell modems dialer nakwell chat "" ATZ OK ATDT\T CONNECT

La l nea que empieza con chat especica el dilogo del mdem, que no es sino la secuencia a o de comandos enviados y recibidos del mdem para inicializarlo, y para hacerle marcar el o

12.3. Ficheros de conguracin de UUCP o

174

Fichero sys Fichero port system port speed ... pablo serial1 38400 port type speed device dialer ... serial1 modem 38400 /dev/cua1 nakwell

dialer nakwell chat ATZ .. chat-fail BUSY ...

Fichero dial

Figura 12.1: Interacciones de los Ficheros de Conguracin de Taylor UUCP. o n mero deseado. La secuencia \T ser reemplazada con el n mero de telfono por el u a u e programa uucico. Para darle una idea a grandes rasgos de cmo uucico utiliza estos cheros de congurao cin, suponga que utiliza el comando o
$ uucico -s pablo

en la l nea de comandos. Lo primero que uucico hace es buscar pablo en el chero sys. A partir de la entrada en el chero sys para pablo, el programa ve que deber usar el puerto a serial1 para establecer la conexin. El chero port le dice que ese puerto es un puerto de o mdem, y que tiene un mdem NakWell conectado. o o uucico busca ahora en dial la entrada que describe el mdem NakWell, y al encontrar o una, abre el puerto serie /dev/cua1 y ejecuta el dilogo de marcacin. Esto es, env ATZ, a o a espera a que el mdem responda con OK, etc. Cuando se encuentre los caracteres \T , o sustituye el n mero de telfono (123456) obtenido del chero sys. u e Cuando el mdem devuelve CONNECT, la conexin se ha establecido, y el dilogo de o o a marcacin se ha completado. uucico ahora vuelve al chero sys y ejecuta el dilogo de o a entrada. En nuestro ejemplo, esperar la pregunta login:, enviar su nombre de usuario a a

12.3. Ficheros de conguracin de UUCP o

175

(neruda), esperar la pregunta password:, y enviar la clave, lorca. a a Tras completar la autorizacin, se suponde que el sistema remoto ejecuta su propio o uucico. Los dos entrarn entonces en la fase de negociacin de protocolos descrita en la a o seccin anterior. o La relacin de dependencia de los cheros de conguracin se puede ver en la gura 12.1. o o

12.3.2

Lo que UUCP necesita saber

Antes de empezar a escribir los cheros de conguracin, debe conseguir cierta informacin o o que UUCP necesita. Primero tiene que saber en qu dispositivo serie est su mdem. Normalmente, los e a o puertos (de DOS) COM1 hasta COM4 se corresponden con los cheros de dispositivos /dev/cua0 hasta /dev/cua3. La mayor de las distribuciones, como Slackware, crean un a enlace simblico /dev/modem al chero de dispositivo donde esta el mdem, y conguran o o kermit, seyon, etc, para que usen este chero. En este caso, usted tambin deber usar e a usar /dev/modem en la conguracin de UUCP. o La razn para esto es que todos los programas, para llamar por telfono, usan unos o e cheros cerrojo para indicar cundo un puerto serie est en uso. Los nombres de estos a a cheros cerrojo son una concatenacin del texto LCK.. y el nombre del chero de dispositivo, o por ejemplo, LCK..cua1. Si los programas usasen nombres diferentes para un mismo dispositivo, no podr reconocer los cheros cerrojo de los otros programas. En consecuencia, an perturbar la sesin de conexin de cada uno si se ejecutan a la vez. Esto no es raro que an o o ocurra cuando organiza sus llamadas de UUCP usando una entrada en el chero crontab. Para obtener ms detalles sobre cmo congurar sus puertos serie, lea el cap a o tulo 4. A continuacin tiene que averiguar a qu velocidad se comunicarn su mdem y Linux. o e a o Tendr que ajustar este valor a la velocidad de transferencia efectiva mxima que espere a a obtener. La velocidad efectiva puede ser mucho mayor que la velocidad f sica de tranferencia de su mdem. Por ejemplo, muchos modems env y reciben datos a 2400bps (bits por o an segundo). Usando protocolos de compresin como V.42bis, la velocidad real de transferencia o puede alcanzar los 9600bps. Por supuesto, si quiere que UUCP sirva de algo, necesitar el n mero de telfono al que a u e llamar. Tambin necesitar un nombre de usuario vlido y probablemente una clave en el e a a 7 sistema remoto.
Si solo quiere probar UUCP, obtenga el nmero de un sistema cercano a usted. Apunte el nombre de u usuario y la clave son pblicos para permitir posibles transferencias annimas. En la mayor de los casos, u o a son algo como uucp/uucp o nuucp/uucp.
7

12.3. Ficheros de conguracin de UUCP o

176

Tambin necesitar saber exactamente cmo entrar en el sistema. Por ejemplo, tiene e a o que pulsar la tecla BREAK antes de que aparezca la pregunta de nombre de usuario?. Muestra el sistema remoto un login: o user:?. Esto es necesario para escribir la macro de dilogo, que es un script que le dice a uucico cmo entrar. Si no lo sabe, o si la macro a o de dilogo normal no funciona, intente llamar al sistema con un programa como kermit o a minicom, y apunte exactamente lo que tiene que hacer.

12.3.3

Nomenclatura de nodos

Al igual que en redes basadas en TCP/IP, todas las mquinas necesitan tener un nombre a para la red de UUCP. Mientras slo quiera usar UUCP para transferencia de cheros desde o y a ordenadores que usted llama directamente, o en una red local, el nombre no tiene que ajustarse a ninguna regla.8 Sin embargo, si usa UUCP para tener una conexin a correo y noticias, se deber pensar o a en registrar el nombre con el proyecto de Mapa de UUCP, que se describe en el cap tulo 13. Incluso si usted participa en un dominio, podr considerar el tener un nombre ocial de a UUCP para su ordenador. Frecuentemente la gente elige su nombre de UUCP para que corresponda con el primer componente de su nombre de dominio completamente cualicado. Suponga que la direccin o de su dominio es swim.twobirds.com, entonces su nombre de UUCP podr ser swim. a Piense en los nodos de UUCP como si se conociesen entre ellos por el nombre propio. Por supuesto, tambin puede usar un nombre de UUCP completamente desvinculado de su e nombre de dominio, y por consiguiente, un nombre no cualicado. Sin embargo, aseg rese de no usar el nombre no cualicado en direcciones de correo a u no ser que lo haya registrado como su nombre de UUCP ocial. 9 Lo mejor que puede pasar es que el correo dirigido a un nombre de UUCP no registrado se pierda en alg n agujero u negro digital. Si utiliza un nombre que alguien ya est usando, este correo ser dirigido a a a ese sitio, y le causar al administrador del correo un sinf de dolores de cabeza. a n Los programas de UUCP usan el nombre devuelto por hostname como el nombre de UUCP por defecto. Este nombre se encuentra normalmente en la macro /etc/rc.local. Si su nombre de UUCP es diferente del que le di a su ordenador, tiene que usar la opcin o o hostname en el chero cong para indicar a uucico su nombre de UUCP. Esto se describe a continuacin. o
La unica limitacin es que no puede ser ms largo que 7 caracteres, para no confundir a algunos nodos o a con sistemas de cheros que imponen un estrecho l mite en los nombres de cheros. 9 El Proyecto de Mapa de UUCP registra todos los nodos de UUCP de todo el mundo y comprueba que sean unicos. Para registrar su nombre de UUCP, pregntele a los responsables del nodo que gestiona su u correo; ellos podrn ayudarle. a
8

12.3. Ficheros de conguracin de UUCP o

177

12.3.4

Ficheros de conguracin Taylor o

Volvemos ahora a los cheros de conguracin. Taylor UUCP obtiene su informacin de los o o siguientes cheros: cong Este es el chero principal de conguracin. Aqu puede denir el nombre o de UUCP de su ordenador. Este chero describe todos los nodos conocidos por el sistema. Por cada nodo, especica su nombre, a qu horas llamarlo, que n mero marcar, que e u tipo de dispositivo usar, y cmo entrar. o Contiene entradas que describen cada puerto disponible, junto con la velocidad de l nea soportada y las instrucciones de marcacin. o Describe las instrucciones de marcacin usados para establecer una conex o on telefnica. o Contiene expansiones simblicas para cdigos de marcacin. o o o Contiene el nombre de usuario y la clave a usar cuando llame a un sistema. No se suele usar. Contiene nombres de usuario y claves que los sistemas pueden usar cuando entren en su ordenador. Este chero se usa slo cuando uucico hace su o propia comprobacin de claves. o

sys

port

dial

dialcode call

passwd

Los cheros de conguracin de Taylor se componen generalmente de l o neas que contienen pares palabra - valor. Una almohadilla (#) indica un comentario que ocupa toda una l nea. Para usar una almohadilla por s misma, puede poner una barra invertida delante de la almohadilla. Hay unas cuantas opciones que puede ajustar con estos cheros de conguracin. No o podemos repasar todos los parmetros, sino que cubriremos slo los ms importantes. Con a o a stos usted podr congurar una conexin de UUCP por mdem. Otras secciones descrie a o o birn las modicaciones necesarias si quiere usar UUCP en TCP/IP o sobre una l a nea serie. Junto con el cdigo fuente de Taylor UUCP se incluye una referencia de comandos completa o en los documentos Texinfo. Cuando crea que ha congurado su sistema de UUCP completamente, puede comprobarlo usando la utilidad uuchk (que se encuentra en /usr/lib/uucp). uuchk lee sus cheros de conguracin, e imprime un informe detallado de los valores de conguracin usados o o para cada sistema.

12.3. Ficheros de conguracin de UUCP o

178

12.3.5

Opciones Generales de Conguracin el Fichero cong o

Normalmente no usar este chero para otra cosa que describir su nombre de nodo UUCP. a Por defecto, UUCP usar el nombre establecido con el comando hostname, pero generala mente es una buena idea congurar el nombre de UUCP expl citamente. A continuacin o mostramos un chero de ejemplo:
# /usr/lib/uucp/config - fichero principal de configuracion de UUCP hostname vstout

Por supuesto, tambin existen otros parmetros congurables aqu como los referentes e a , al nombre del directorio de colas, o los derechos de acceso para el UUCP annimo. Esto o ultimo se describir en una seccin posterior. a o

12.3.6

Cmo informar a UUCP sobre otros sistemas el chero sys o

El chero sys describe los sistemas que su ordenador conoce. Una entrada comienza con la palabra system; las l neas siguientes hasta la siguiente system proporcionan detalles sobre los parmetros espec a cos sobre ese sistema o nodo. Com nmente, una entrada de un u sistema denir parametros tales como el n mero de telfono y el dilogo de entrada. a u e a Los parmetros antes de la primera l a nea con system determinan los valores por defecto usados para todos los sistemas. Lo normal es que los parmetros de protocolos y similares a se incluyan en la seccin por defecto. o A continuacin se tratan los campos ms importantes con cierto detalle. o a

Nombre del sistema El comando system especica el nombre del sistema remoto. Tiene que especicar el nombre correcto del sistema remoto, no un alias que usted se invente, porque uucico lo vericar con a 10 la informacin que reciba del otro sistema una vez se conecte. o Cada nombre de sistema puede aparecer una sola vez. Si quiere usar varias conguraciones para un mismo sistema (por ejemplo, n meros de telfono diferentes que uucico puede u e usar alternativamente), puede especicar alternavias, que se describen ms adelante. a
Algunas de las versiones 2 de UUCP antiguas no env su nombre cuando son llamadas; sin embargo, an las implementaciones ms recientes s lo hacen, y Taylor UUCP tambin. a e
10

12.3. Ficheros de conguracin de UUCP o

179

N mero de telfono u e Si para conectar con el sistema remoto hace falta una l nea de telfono, el campo phone e especica el n mero que tiene que marcar el mdem. Puede incluir varios separadores que u o son interpretados por el proceso de marcacin efectuado por uucico. Un signo igual (=) o signica esperar un tono secundario, y un guin genera una pausa de un segundo. Por o ejemplo, algunas instalaciones de telfono se atascan si no deja una pausa entre un prejo e de una compa y el n mero de telfono. na u e Cualquier lista de caracteres se puede usar para esconder informacin que depende de o cada nodo, como el prejo de provincia. Estos caracteres se traducen en un cdigo de o marcacin usando el chero dialcode. Suponga que tiene el siguiente chero dialcode: o
# /usr/lib/uucp/dialcode - traduccion de codigos de marcacion Bogoham 024881 Coxton 035119

Con estas traducciones, se puede usar un n mero de telfono como Bogoham7732 en el u e chero sys, lo cual hace las cosas un poco ms legibles. a

Puerto y Velocidad Las opciones port y speed se usan para elegir el dispositivo usado para llamar al sistema remoto, y la velocidad mxima del dispositivo. 11 Una entrada system puede usar cualquiera a de las dos opciones solas, o ambas. Cuando se busca un dispositivo apropiado en el chero port, slo se eligen aquellos puertos cuyo nombre y/o velocidad coinciden. o Normalmente es suciente con usar la opcin speed. Si solo tiene un dispositivo serie o denido en port, uucico, de cualquier modo, siempre escoger el correcto, as que slo tiene a o que especicar la velocidad deseada. Si tiene varios modems conectados a su sistema, tampoco es una buena idea nombrar un puerto en particular, porque si uucico encuentra que hay varios puertos con el mismo nombre, trata de usarlos todos hasta que encuentra uno que no est en uso. a

El dilogo de entrada a Antes ya nos encontramos con la macro del dilogo de entrada, que le dice a uucico cmo a o entrar en el sistema remoto. Consiste de una lista de palabras clave, que especican el
La velocidad en baudios del terminal (tty) tiene que ser por lo menos igual o mayor que la velocidad mxima de transmisin. a o
11

12.3. Ficheros de conguracin de UUCP o

180

texto que se espera y el que se env por el proceso local de uucico. El objetivo es hacer a que uucico espere hasta que la mquina remota env una l a e nea pidiendo el nombre de usuario, y entonces enviar el nombre de usuario, luego esperar a que pida la palabre clave, y enviar dicha clave. Los textos de espera y de env se dan alternativamente. uucico o automticamente a ade un avance de l a n nea (\r ) a cualquier texto enviado. Por lo tanto, una macro de dilogo sencilla ser parecida a esta: a a
ogin: vstout ssword: catch22

Dse cuenta de que los campos de texto de espera (ogin: y ssword:) no contienen el e texto completo. Esto es as para asegurarse de que el proceso de entrada se lleve a cabo aunque el sistema remoto nos env Login: en vez de login:. e uucico tambin permite usar estructuras condicionales, por ejemplo en el caso de que e el programa getty de la mquina remota necesite ser reinicializado antes de enviar una a pregunta. Por esta razon, usted puede a adir un sub-dilogo a un texto de espera, separado n a con un guin. El sub-dilogo se ejecuta slo si el primer texto de espera falla, ej. si expira o a o un temporizador (timeout). Una manera de usar esta caracter stica es enviar un BREAK si el sistema remoto no env una pregunta de nombre de usuario. El siguiente ejemplo a muestra un ejemplo de una macro de dilogo que deber funcionar tambin en el caso de a a e que usted tenga que pulsar return antes de que aparezca la pregunta de entrada.
"" \n\r\d\r\n\c ogin:-BREAK-ogin: vstout ssword: catch22

Hay un par de tiras de caracteres especiales y caracteres de escape que pueden aparecer en la macro de dilogo. Esta es una lista incompleta de caracteres legales en la pregunta a de espera: "" La tira vac Le dice a uucico que no espere nada, sino que siga con la a. siguiente tira de enviado immediatamente. Un carcter de tabulador. a Un carcter de retorno de l a nea. El carcter de espacio. Lo necesitamos para incluir espacios en un dilogo. a a Carcter de nueva l a nea. Carcter de barra invertida. a

\t \r \s \n \\

En tiras de caracteres de env se pueden incluir, ademas de los mencionados anteriormente, o los siguientes caracteres:

12.3. Ficheros de conguracin de UUCP o

181

EOT BREAK \c \d \E

Carcter de n de la trasmisin (^D). a o Carcter Break. a Suprime el env del carcter nueva l o a nea al nal de cada tira de caracteres. Retrasar el env 1 segundo. o Activar la comprobacin de eco. De esta forma, uucico esperar a leer el eco o a de todo lo que escribe en el dispositivo antes de que contin e con el dilogo. u a Se usa principalmente en dilogos de modems (que veremos ms adelante). a a La comprobacin de eco est desactivada por defecto. o a Desactivar la comprobacin de eco. o Lo mismo que BREAK. Pausa de una fraccin de un segundo. o

\e \K \p

Alternativas A veces es deseable tener m ltiples entradas para un mismo sistema, por ejemplo si se puede u acceder al sistema en diferentes l neas de mdem. Con Taylor UUCP se puede hacer esto o deniendo una alternativa. Una entrada alternativa mantiene todas las caracter sticas de la entrada principal, y especica solamente aquellos valores que tienen que ser cambiados, o a adidos. Una aln ternativa est separada de la entrada principal por una l a nea que contiene la palabre clave alternate. Para usar dos n meros de telfono para pablo, habr que modicar su entrada sys de u e a la siguiente manera:
system phone ... lo mismo alternate phone pablo 123-456 que antes ... 123-455

Ahora, cuando llame a pablo, el programa uucico marcar primero el 123-456, y si no a funciona, probar la alternativa. La entrada alternativa retiene toda la otra informacin de a o la entrada de sistema principal, y altera slo el n mero de telfono. o u e

12.3. Ficheros de conguracin de UUCP o

182

Restringir horas de llamada Taylor UUCP proporciona varios mtodos para restringir las horas a las que se pueden e efectuar llamadas a un sistema remoto. Una razn para hacer esto ser por las limitaciones o a que el sistema remoto impone en sus servicios durante horas de ocina, o simplemente para evitar las horas ms caras. Siempre se pueden desactivar las restricciones con la opcin -S a o o -f en el programa uucico. Por defecto, Taylor UUCP no permite conexiones a ninguna hora, as que usted tiene que especicar alg n horario en el chero sys. Si no le importan las restricciones, puede u especicar la opcin time con un valor de Any en su chero sys. o La manera ms sencilla de restringir horas de llamada es con la entrada time, seguida de a una tira de caracteres que consta de dos campos, d y hora. El d puede ser cualquiera de a a los siguientes: Mo, Tu, We, Th, Fr, Sa, Su (que corresponden a Lunes, Martes, Mircoles, e Jueves, Viernes, Sbado y Domingo, respectivamente) combinados, Any (cualquiera), Never a (nunca), o Wk para los d laborables. La hora consiste en dos n meros de un reloj de as u 24 horas, separados por un guin. Especican el grupo de horas durante las que se pueden o efectuar llamadas. La combinacin de los s o mbolos se escribe sin ning n espacio en blanco u entre ellos. Se pueden especicar varios grupos de d a-hora separados por comas. Por ejemplo,
time MoWe0300-0730,Fr1805-2000

permite llamadas en Lunes y Miercoles, de 3 de la ma ana a 7:30, y los Viernes entre las n 6:05 y las 8:00 de la tarde. Cuando un campo de hora incluye la medianoche, como Mo18300600, en realidad quiere decir el Lunes, entre medianoche y las 6 de la ma ana, y entre las n 6:30 de la tarde y medianoche. Las palabras especiales Any y Never signican que se pueden hacer llamadas siempre o nunca, respectivamente. El comando time tiene un segundo argumento opcional que describe el tiempo a esperar para reintentar en minutos. Cuando un intento de conexin falla, uucico no permitir otro o a intento de llamar al ordenador remoto hasta que transcurra un cierto tiempo. Por defecto, uucico usa un algoritmo de espera exponencial, seg n el cual el intervalo de espera se u incrementa con cada intento fallido. Por ejemplo, si especica un tiempo de reintento de 5 minutos, uucico no aceptar llamar otra vez en los 5 minutos despus del ultimo intento a e fallido. El comando timegrade le permite a adir un rango mximo de cola a un calendario. n a Por ejemplo, asumiendo que usted tiene los siguientes comandos timegrade en una entrada system:

12.3. Ficheros de conguracin de UUCP o

183

timegrade timegrade

N Wk1900-0700,SaSu C Any

Esto permite que los trabajos con rango de cola de C o mayor (normalmente el correo se pone en la cola con rango B o C) sean transferidos siempre que se establece una comunicacin, mientras que las noticias (news) (normalmente con rango N) sern transferidas slo o a o durante la noche y los nes de semana. Al igual que time, el comando timegrade acepta un intervalo de reintento en minutos como un tercer argumento opcional. Sin embargo, hay que hacer una observacin: la opcin timegrade slo se aplica a lo que o o o su sistema env el sistema remoto puede transferir todo lo que le plazca. Usted puede a; usar la opcin call-timegrade para forzar expl o citamente que env solamente trabajos sobre e cierto rango de cola; pero no hay ninguna garant de que obedecer esta peticin. 12 a a o Igualmente, el campo timegrade no se comprueba cuando un sistema remoto hace una llamada a ste, de manera que cualquier trabajo puesto en la cola para el sistema que e llama al nuestro ser enviado. Sin embargo, el sistema remoto puede pedir expl a citamente a nuestro uucico que se mantenga a s mismo en un cierto rango de cola.

12.3.7

Qu dispositivos hay el chero port e

El chero port indica a uucico qu puertos tiene disponibles. Pueden ser puertos de mdem, e o pero cualquier otro tipo, como l neas serie directas o sockets de TCP tambin se pueden e usar. Al igual que el chero sys, el chero port consta de entradas separadas que empiezan con la palabra port, seguida del nombre del puerto. Este nombre puede ser usado por la palabra port en el chero sys. El nombre no tiene por qu ser unico; si hay varios puertos e con el mismo nombre, uucico intentar cada uno de los puertos hasta que encuentre uno a que no est siendo utilizado. a El comando port tiene que estar seguido por el comando type que especica qu tipo de e puerto se est describiendo. Tipos vlidos son modem, direct para comunicaciones directas, a a y tcp para sockets de TCP. Por defecto, cuando el comando port no se incluye en el chero, el tipo de puerto asumido ser modem. a En esta seccin slo hablaremos de puertos de mdem; los puertos de TCP y las l o o o neas directas sern tratados en una seccin posterior. a o
12

Si el sistema remoto esta ejecutando Taylor UUCP, obedecer. a

12.3. Ficheros de conguracin de UUCP o

184

Para puertos directos y de mdem, tiene que especicar el dispositivo para llamar usando o la directiva device. Usualmente es el nombre de un chero de dispositivo en el directorio /dev, como por ejemplo /dev/cua1.13 En el caso de un dispositivo de mdem, la directiva port tambin determina qu tipo de o e e mdem est conectado al puerto. Cada tipo de mdem tiene que congurarse de manera o a o diferente. Incluso los modems que dicen ser compatibles con Hayes no tienen por qu ser e realmente compatibles entre s mismos. Por lo tanto, tiene que decirle a uucico cmo o inicializar el mdem y cmo hacer que marque el n mero deseado. Taylor UUCP mantiene o o u las descripciones de todos los marcadores en un chero llamado dial. Para usar cualquiera de stos, tiene que especicar el nombre del marcador usando el comando dialer. e Es posible que usted quiera usar el mdem de maneras diferentes, dependiendo del o sistema al que est llamando. Por ejemplo, algunos modems antiguos no entienden cundo a a un mdem rpido trata de conectar a 14400bps; simplemente desconectan la l o a nea en vez de negociar la conexin a 9600bps por ejemplo. Si sabe que el ordenador plasta usa un o mdem tan tonto, usted tiene que congurar su mdem de manera diferente cuando llame o o a ese ordenador. Para hacer esto, necesita una entrada adicional del comando port en el chero port que especica un marcador diferente. Ahora puede dar un nombre diferente al nuevo puerto, como por ejemplo serial1-lento, y usar la directiva port en la entrada del sistema plasta en el chero sys. Otra manera de distinguir los puertos es por la velocidad que usan. Por ejemplo, las dos entradas port de la situacin anterior pueden ser as o :
# NakWell modem; conexion a velocidad alta. port serial1 # nombre del puerto type modem # puerto modem device /dev/cua1 # esto es COM2 speed 38400 # velocidad soportada dialer nakwell # marcador normal # NakWell modem; conexion lenta port serial1 type modem device /dev/cua1 speed 9600 dialer nakwell-slow

# # # # #

nombre del puerto puerto modem esto es COM2 velocidad soportada no intentar alta velocidad

La entrada de sistema para el ordenador plasta usar ahora serial1 como el nombre del a puerto, pero pedir usar la velocidad de 9600bps solamente. uucico usar automticamente a a a
13

Hay quien usa los dispositivos ttyS*, que son solamente para aceptar llamadas.

12.3. Ficheros de conguracin de UUCP o

185

la segunda entrada de port. Todos los otros ordenadores con velocidad de 38400bps en la entrada de sistema sern llamados usando la primera entrada de port. a

12.3.8

Cmo marcar un nmero el chero dial o u

El chero dial describe cmo se usan los distintos marcadores. Tradicionalmente, UUCP o habla de marcadores en vez de modems, porque en los viejos tiempos era normal que un dispositivo de marcacin automtico (que era caro) sirviese un banco entero de modems. o a Hoy, la mayor de los modems tienen soporte para marcar incluido, as que la distincin a o tiende a desaparecer. De cualquier modo, cada marcador o mdem puede necesitar una conguracin diferente. o o Se puede describir cada uno de ellos en el chero dial. Las entradas en dial empiezan con el comando dialer que indica el nombre del marcador. La entrada ms importante, aparte de sta, es el dilogo del mdem, especicado por el a e a o comando chat. Similar al dilogo de entrada (login), consta de una secuencia de caracteres a que uucico env al marcador y de la secuencia que espera recibir como respuesta. Se a usa normalmente para reiniciar el mdem a un estado conocido, y marcar el n mero. El o u siguiente ejemplo de una entrada de un marcador muestra un dilogo t a pico para un mdem o compatible con Hayes:
# NakWell modem; conexion a alta velocidad dialer nakwell # nombre del marcador chat "" ATZ OK\r ATH1E0Q0 OK\r ATDT\T CONNECT chat-fail BUSY chat-fail ERROR chat-fail NO\sCARRIER dtr-toggle true

El dilogo del mdem comienza con "", es decir, que espera una cadena vac uucico a o a. entonces env el primer comando (ATZ) de inmediato. ATZ es el comando de Hayes para a reiniciar el mdem. Entonces espera hasta que el mdem env OK, y a continuacin env el o o e o a siguiente comando que desactiva el eco local, y cosas parecidas. Despus de que el mdem e o env OK otra vez, uucico env el comando de marcacin (ATDT). La secuencia de escape \T e a o en esta cadena es reemplazada con el n mero de telfono obtenido de la entrada de sistema u e en el chero sys. uucico espera a que el mdem devuelva la cadena CONNECT, que indica que o se ha establecido una conexin exitosa con el mdem remoto. o o A menudo el mdem no puede conectarse con el sistema remoto, por ejemplo si el o otro sistema esta conectado con otro ordenador y la l nea est ocupada. En este caso, a el mdem devuelve alg n mensaje de error indicando la razn. Los dilogos de mdem o u o a o

12.3. Ficheros de conguracin de UUCP o

186

no pueden detectar estos mensajes; uucico seguir esperando la cadena esperada hasta a que un temporizador se agote. El chero de recopilacin de informacin (log) de UUCP o o mostrar solamente el mensaje timed out in chat script (tiempo agotado en la macro de a dilogo) en vez de la razn real. a o Sin embargo, Taylor UUCP le permite informar a uucico sobre estos mensajes de error usando el comando chat-fail como se ve en el ejemplo. Cuando uucico detecta una cadena de caracteres de error en el dilogo mientras lo ejecuta, interrumpe la llamada y anota el a error en el chero log de UUCP. El ultimo comando en el ejemplo anterior indica a UUCP que cambie la l nea DTR antes de empezar el dilogo de mdem. La mayor de los modems se pueden congurar para a o a conectarse cuando detectan un cambio en la l nea DTR, y entrar en modo de comando. 14

12.3.9

UUCP sobre TCP

Por muy absurdo que suene en principio, el uso de UUCP para transferir datos sobre TCP no es una idea tan mala, especialmente cuando se transeren grandes cantidades de datos como los grupos de noticias Usenet. En conexiones basadas en TCP, los grupos de noticias se transmiten generalmente usando el protocolo NNTP, seg n el cual los art u culos se piden y se transmiten individualmente, sin compresin ni ninguna otra optimizacin. Aunque es o o una tcnica adecuada para ordenadores grandes con varias fuentes de grupos de noticias e simultneas, esta tcnica no es favorable para peque os sistemas que reciben los grupos a a e n travs de una conexin lenta, como RDSI. Estos ordenadores normalmente desean combinar e o las cualidades de TCP con las ventajas de enviar art culos en grandes lotes, que se pueden comprimir y por lo tanto transferir con muy poco gasto. Un mtodo estndar de enviar e a estos lotes es usando UUCP sobre TCP. En el chero sys, hay que especicar al sistema a llamar con TCP de la siguiente forma:
system address time port chat gmu news.groucho.edu Any tcp-conn ogin: vstout word: clouseau

El comando address da la direccin de internet (IP) del ordenador, o su nombre de o dominio completo (FQDN). La entrada correspondiente en el chero port ser as a :
Tambin se pueden congurar algunos modems para que se reinicien a s mismos cuando detecten una e transicin en DTR. Sin embargo, a algunos modems no parece gustarles esto y en ocasiones se bloquean. o
14

12.4. Los s y noes de UUCP Ajuste de Permisos es

187

port type service

tcp-conn tcp 540

Esta entrada indica que hay que usar una conexin de TCP cuando una entrada en el o chero sys hace referencia a tcp-conn, y que el programa uucico deber tratar de conectarse a al puerto TCP 540 en el sistema remoto. Este es el puerto por defecto del servicio UUCP. En vez del n mero de puerto, tambin se puede especicar un nombre de puerto simblico. u e o El numero de puerto correspondiente ser buscado en el chero /etc/services. a

12.3.10

Uso de una conexin directa o

Supongamos que usted usa una l nea directa que conecta su sistema vstout con el ordenador tiny. Al igual que en el caso del mdem, tiene que escribir una entrada de sistema en el o chero sys. El comando port identica el puerto serie en el que tiny est conectado. a
system time port speed chat tiny Any direct1 38400 ogin: cathcart word: catch22

En el chero port, tiene que describir el puerto serie para la conexin directa. La entrada o dialer no hace falta porque no hay que marcar ning n n mero. u u
port type speed direct1 direct 38400

12.4
12.4.1

Los s y noes de UUCP Ajuste de Permisos es


Ejecucin de comandos o

La tarea de UUCP es copiar cheros de un sistema a otro, y pedir la ejecucin de ciertos o comandos en sistemas remotos. Por supuesto, usted como administrador querr control a sobre los derechos que concede a otros sistemas permitirles que ejecuten cualquier comando en su sistema no es una buena idea en absoluto. Los unicos comandos que Taylor UUCP permite a otros sistemas ejecutar en su or denador son rmail y rnews, que se usan com nmente para intercambiar correo y noticias u

12.4. Los s y noes de UUCP Ajuste de Permisos es

188

de Usenet sobre UUCP. El directorio en el que uuxqt busca es una opcin que se elige al o compilar el programa, pero normalmente incluye /bin, /usr/bin, y /usr/local/bin. Para cambiar el conjunto de comandos para un sistema en particular, se puede usar la palabra commands en el chero sys. Igualmente, el directorio de b squeda se puede cambiar con u el comando command-path. Por ejemplo, usted puede querer dar acceso al sistema pablo para que ejecute el comando rsmtp adems de mail y rnews: 15 a
system ... commands pablo rmail rnews rsmtp

12.4.2

Transferencias de Ficheros

Taylor UUCP tambin le permite ajustar, en gran medida, las tranferencias de cheros. Por e un lado, usted puede desactivar las transferencias hacia y desde un sistema determinado. Simplemente necesita dar el valor no al comando request, y el sistema remoto no ser capaz a de obtener cheros de su sistema ni de poner otros cheros. De igual modo, puede prohibir que sus usuarios transeran cheros desde o hacia otro sistema poniendo la palabra no en el campo transfer. Por defecto, los usuarios del sistema local y el remoto pueden enviar y obtener cheros. Adems, usted puede congurar los directorios de y a los que quiere que se puedan a copiar cheros. Usualmente se prohibe el acceso de sistemas remotos a una sola estructura de directorios, pero aun as se permite a los usuarios locales que env cheros de sus en directorios. Com nmente, a los usuarios remotos se les permite que reciban cheros slo u o del directorio p blico de UUCP, /var/spool/uucppublic. Este es el lugar tradicional para u poner los cheros disponibles p blicamente; muy parecido a un servidor de FTP en Internet. u Normalmente se reere a este directorio con el carcter tilde. a Por lo tanto, Taylor UUCP provee cuatro comandos diferentes para congurar los direc torios para enviar y recibir cheros. Estos son local-send, que especica la lista de directorios desde los que un usuario puede pedir a UUCP que env cheros; local-receive, que da la e lista de directorios donde un usuario puede pedir que se reciban los cheros; y remote-send y remote-receive, que hacen lo correspondiente para las peticiones que vienen de un sistema remoto. Consideremos el siguiente ejemplo:
system ... local-send
15

pablo /home ~

El programa rsmtp se usa para manejar el correo con SMTP por lotes. Esto se explica en los cap tulos sobre correo.

12.4. Los s y noes de UUCP Ajuste de Permisos es

189

local-receive /home ~/recibir remote-send ~ !~/entrada !~/recibir remote-receive ~/entrada

El comando local-send permite a los usuarios de su sistema que env cualquier chero en bajo /home y en el directorio p blico de UUCP al sistema pablo. El comando localu receive les permite recibir cheros bien en el directorio recibir con permiso de escritura universal en uucppublic, o en cualquier directorio que tenga permiso de escritura universal bajo /home. La directiva remote-send permite que el sistema pablo obtenga cheros de /var/spool/uucppublic, excepto los cheros bajo los directorios entrada y recibir. Esto se indica a uucico poniendo un signo de exclamacin delante de los nombres de los directorios. o Finalmente, la ultima l nea permite que pablo ponga cheros en entrada Uno de los mayores problemas con la transferencia de cheros usando UUCP es que slo o recibe cheros en los directorios con permiso de escritura universal. Esto puede tentar a algunos usuarios a poner trampas para otros usuarios, etc. Sin embargo, no hay salida a este problema excepto la desactivacin total de la transferencia de cheros por UUCP. o

12.4.3

Reenv o

UUCP provee un mecanismo para que otros sistemas ejecuten transferencias de cheros por usted. Por ejemplo, esto le permite que el sistema seci obtenga un chero de uchile por usted, y lo env a su sistema. El siguiente comando har esto: e a
$ uucp -r seci!uchile!~/find-ls.gz ~/uchile.files.gz

Esta tcnica de pasar un trabajo a travs de varios sistemas se llama forwarding e e (reenv o). En el ejemplo anterior, la razn para usar el reenv puede ser que seci tieo o ne acceso por UUCP a uchile, pero su sistema no lo tiene. Sin embargo, si usted tiene un sistema de UUCP, es deseable limitar el servicio de reenv a unos pocos sistemas en que o usted conf para que no se le acumule una factura telefnica horrenda cuando alguien use a, o su sistema para obtener la ultima versin de X11R6. o Por defecto, Taylor UUCP no permite el reenv Para permitirlo para un sistema en o. particular, puede usar el comando forward. Este comando especica una lista de ordenadores desde y hacia los cuales el sistema remoto puede pedirle que reenv trabajos. Por ejemplo, e el administrador de UUCP del sistema seci tendr que a adir las siguientes l a n neas al chero sys para permitir que pablo obtenga cheros de uchile:
####################

12.5. Conguracin de su sistema para ser llamado. o

190

# pablo system pablo ... forward uchile #################### # uchile system uchile ... forward-to pablo

La entrada forward-to para uchile es necesaria para que cualquier chero devuelto por l sea en efecto pasado a pablo. De otro modo, UUCP se deshar del chero. Esta entrada e a usa una variacin del comando forward que permite que uchile slo env cheros a pablo o o e a travs de seci, no al revs. e e Para permitir el reenv a cualquier sistema, use el comando especial ANY (tiene que o estar en may sculas). u

12.5

Conguracin de su sistema para ser llamado. o

Si quiere congurar su sistema para que otros se conecten a ste llamndole, tiene que e a permitir conexiones en su puerto serie, y modicar ciertos cheros del sistema para proveer cuentas de UUCP. Este es el tema de esta seccin. o

12.5.1

Conguracin de getty o

Si quiere usar una l nea serie como un puerto de entrada, tiene que activar un proceso getty en ese puerto. Sin embargo, algunas implementaciones de getty no son vlidas para esto a porque normalmente se desea usar un puerto para entrada y para salida. Por lo tanto tiene que asegurarse de usar un getty que es capaz de compartir la l nea con otros programas como uucico, o minicom. Un programa que se comporta as es uugetty del paquete getty ps. La mayor de las distribuciones de Linux lo tienen; busque uugetty en el directorio /sbin. Otro a programa que existe es mgetty, de Gert Doering, que adems hace recepcin de facs a o miles. Tambien puede obtener la ultima versin de estos programas en sunsite.unc.edu, tanto o en binario como en cdigo fuente. o La explicacin de las diferencias de cmo uugetty y mgetty manejan la entrada al sistema o o est ms all del alcance de esta peque a seccin; para ms informacin, vea el HOWTO a a a n o a o 16 , as como la documentacin que viene con getty ps y mgetty. Serial de Greg Hankins o
16

Tambin disponible en Castellano (Serial-COMO), en LuCAS e

12.5. Conguracin de su sistema para ser llamado. o

191

12.5.2

Proveer Cuentas de UUCP

A continuacin tiene que congurar las cuentas de usuarios que permiten a sistemas reo motos entrar en su sistema y establecer una conexin de UUCP. Generalmente tendr que o a suministrar un nombre de usuario para cada sistema que se conecte con usted. Cuando congura una cuenta para el sistema pablo, puede darle el nombre de usuario Upablo. Para los sistemas que se conectan con el suyo a travs del puerto serie, usualmente tiene e que a adir estas cuentas al chero de claves del sistema, /etc/passwd. Es buena idea poner n todos los usuarios de UUCP en un grupo especial como uuguest. El directorio ra de z cada cuenta de UUCP tiene que ser el directorio p blico /var/spool/uucppublic; el shell de u entrada tiene que ser uucico. Si tiene el paquete de claves ocultadas (shadow password) instalado, podremos hacer esto con el comando useradd:
# useradd -d /var/spool/uucppublic -G uuguest -s /usr/lib/uucp/uucico Upablo

Si no utiliza la aplicacin de claves ocultas, probablemente tendr que editar /etc/passwd o a a mano, a adiendo una l n nea como la siguiente, donde 5000 y 150 son el n mero de idenu ticacin de usuario (uid) y el n mero de grupo asignado al usuario Upablo y al grupo o u uuguest, respectivamente.
Upablo:*:5000:150:Cuenta de UUCP:/var/spool/uucppublic:/usr/lib/uucp/uucico

Una vez creada la cuenta, tiene que activarla asignndole una clave con el comando a passwd. Para servir a sistemas de UUCP que se conectan a su sistema por TCP, tiene que congurar inetd para que reconozca correctamente conexiones en el puerto uucp. Esto se consigue a adiendo la siguiente l n nea al chero /etc/inetd.conf : 17
uucp stream tcp nowait root /usr/sbin/tcpd /usr/lib/uucp/uucico -l

La opcin -l hace que uucico haga su propia autorizacin de entrada. Pedir un nomo o a bre de usuario y una clave, igual que el programa estndar login, pero usar su propia a a base de datos de claves, en vez de /etc/passwd. Este chero privado de claves se llama /usr/lib/uucp/passwd y contiene pares de nombres de entrada y claves:
Normalmente, tcpd tiene modo 700, as que tiene que invocarlo como usuario root, no como usuario uucp, como har normalmente. a
17

12.5. Conguracin de su sistema para ser llamado. o

192

Upablo Ulorca

IslaNegra cordoba

Por supuesto, este chero tiene que pertenecer al usuario uucp y tener permiso 600. Si esta base de datos parece una idea tan buena que le gustar usarla en vericacin a o normal de entrada (login) por serie tambin, se desilusionar al saber que esto no es posible e a por el momento de manera sencilla. Para empezar, necesita Taylor UUCP 1.05 para hacer esto, porque permite a getty que pase el nombre del usuario que llama al programa uucico usando la opcin -u.18 Luego tiene que enga ar al programa getty que est usando para que o n e llame a uucico en vez del usual login. Con getty ps, esto se puede hacer poniendo la opcin o LOGIN en el chero de conguracin. Sin embargo, esto desactiva los logins interactivos o por completo. mgetty, por otro lado, tiene una caracter stica atractiva que le permite invocar diferentes comandos de entrada (login) seg n el nombre de usuario suministrado. u Por ejemplo, puede decirle a mgetty que use uucico para todos los usuarios cuyo nombre de usuario comienze con una U may scula, pero dejar que todos los demas usen el comando u estndar login. a Para proteger a sus usuarios de UUCP de otros que den un nombre de sistema falso y les lean todo el correo, tiene que a adir comandos called-login a cada entrada de sistema n en el chero sys. Esto se describe en la seccin siguiente. o

12.5.3

Proteccin contra estafadores o

Uno de los mayores problemas con UUCP es que el sistema que nos llama puede mentir acerca de su nombre; comunica su nombre al sistema que llama despus de entrar, pero el e servidor no tiene manera de comprobarlo. Por consiguiente, un atacante podr entrar con a su propia cuenta de UUCP, pretender ser otra persona, y coger el correo de esa otra persona. Esto representa un grave problema, especialmente si usted ofrece entrada mediante UUCP annimo, que tiene una clave p blica. o u A menos que usted sepa que puede conar en todos los sistemas que llaman al suyo, usted tiene que protegerse de esta clase de impostores. La cura de esta enfermedad es requerir que cada sistema use un nombre de entrada particular, poniendo un comando called-login en el chero sys. Un ejemplo de esto podr ser as a :
system pablo ... opciones usuales ... called-login Upablo
18

La opcin -u tambin existe en 1.04, pero no hace nada. o e

12.5. Conguracin de su sistema para ser llamado. o

193

La ventaja de este mtodo es que cuando un sistema entra y pretende ser pablo, el e programa uucico comprobar que haya entrado como usuario Upablo. Si no es as el a , sistema que nos llama ser desconectado. Deber acostumbrarse a incluir el comando a a called-login en todas las entradas de sistema que a ada a su chero sys. Es importante n que haga esto para todos los sistemas, independientemente de si llamarn a su sistema o a no. Para aquellos sistemas que nunca le llamarn, usted puede indicar en called-login un a mombre cticio, como nuncallama.

12.5.4

Vulvase Loco Comprobacin de Secuencia de Llamadas e o

Otra manera de defenderse de impostores es usando la comprobacin de secuencia de llao madas. La comprobacin de secuencia de llamadas le ayuda a protegerse de intrusos que o de alguna manera consiguieron la clave con la que usted entra en su sistema de UUCP. Cuando usa comprobacin de secuencia de llamadas, ambas mquinas mantienen una o a cuenta del n mero de conexiones establecidas hasta el momento. Se incrementa con cada u conexin. Despus de entrar, el llamador env su n mero de secuencia de llamadas y o e a u el sistema llamado lo comprueba con su propio n mero. Si no son iguales, el intento de u conexin es rechazado. Si el n mero inicial se elige aleatoriamente, los atacantes lo tendrn o u a ms dicil para adivinar el n mero de secuencia de llamadas correcto. a u Pero la comprobacin de la secuencia de llamada sirve para ms que esto: aunque una o a persona muy inteligente descubriese su n mero de secuencia de llamada as como su clave, u usted sabr que esto ha ocurrido. Cuando el atacante llama al sistema de UUCP que le a provee el correo a usted y roba su correo, esto incrementa el n mero de secuencia de llamada u en uno. La siguiente vez que usted se conecta con su proveedor de correo e intenta entrar, el uucico remoto le rechazar, porque los n meros de secuencia ya no son iguales. a u Si usted activa la comprobacin de secuencia de llamadas, deber comprobar los cheo a ros histricos regularmente para buscar mensajes de error que puedan signicar posibles o ataques. Si su sistema rechaza el n mero de secuencia de llamada que el sistema remoto le u ofrece, uucico pondr un mensaje en el chero histrico que dir algo como Out of sequena o a ce call rejected (Llamada fuera de secuencia rechazada). Si su sistema es rechazado por el proveedor de correo porque los n mero de secuencia no estn sincronizados, pondr un u a a mensaje en el chero histrico que dice Handshake failed (RBADSEQ) (Negociacin o o fallida (RBADSEQ) ). Para activar la comprobacin del n mero de secuencia, tiene que a adir el siguiente o u n comando en la entrada de sistema:
# activar comprobacion de numero de secuencia sequence true

12.5. Conguracin de su sistema para ser llamado. o

194

Aparte de esto, tiene que crear el chero que contiene el n mero de secuencia. Taylor u UUCP mantiene el n mero de secuencia en un chero llamado .Sequence en el directorio u de cola (spool) del sistema remoto. Tiene que pertenecer al usuario uucp, y debe tener permisos 600 (es decir, visible y escribible slo por uucp). Lo mejor es inicializar este chero o con un valor arbitrario que ambas partes hayan acordado. De otro modo el atacante podr a apa arselas para adivinar el numero probando todos los valores menores que, digamos, 60. n
# # # # cd /var/spool/uucp/pablo echo 94316 > .Sequence chmod 600 .Sequence chown uucp.uucp .Sequence

Por supuesto, el sistema remoto tambin tiene que activar la comprobacin del n mero e o u de secuencia, y empezar usando el mismo n mero que usted. u

12.5.5

UUCP Annimo o

Si quiere ofrecer aceso annimo de UUCP a su sistema, primero tiene que establecer una o cuenta especial como se describi anteriormente. Es prctica com n darle a esta cuenta el o a u nombre y la clave uucp. Adems, tiene que especicar algunas opciones de seguridad para sistemas desconocidos. a Por ejemplo, usted podr querer prohibirles que ejecuten comandos en su sistema. Sin a embargo, estos parmetros no se pueden poner en una entrada del chero sys, porque el a comando system requiere el nombre del sistema, que en este caso no tenemos. Taylor UUCP resuelve este dilema con el comando unknown. unknown se puede usar en el chero cong para especicar cualquier comando que puede aparecer normalmente en una entrada de sistema:
unknown unknown unknown unknown unknown remote-receive ~/incoming remote-send ~/pub max-remote-debug none command-path /usr/lib/uucp/anon-bin commands rmail

Esto limita a los sistemas desconocidos a que se bajen cheros del directorio pub y que dejen cheros en el directorio incoming bajo /var/spool/uucppublic. La siguiente l nea hace que uucico ignore cualquier peticin del sistema remoto de activar la comprobacin de o o errores (debugging) localmente. Las dos ultimas l neas permiten que los sistemas desconocidos ejecuten rmail; pero el camino de busqueda de comandos especicado hace que uucico

12.6. Protocolos de bajo nivel de UUCP

195

busque el comando rmail solamente en un directorio privado llamado anon-bin. Esto le permite a usted suminitrar algun programa rmail especial que, por ejemplo, reenv todo e el correo al superusuario para examinarlo. Esto permite a los usuarios annimos contactar o con el administrador del sistema, pero al mismo tiempo evita que ellos manden correo a otros sistemas. Para activar UUCP annimo, tiene que especicar por lo menos un comando unknown o en el chero cong. Si no, uucico rechazar cualquier sistema desconocido. a

12.6

Protocolos de bajo nivel de UUCP

Para negociar el control de la sesin y las transferencias de cheros con el sistema remoto, o uucico usa un grupo de mensajes estndar. Esto es lo que se llama normalmente protocolo a de alto nivel. Durante la fase de inicializacin y la fase de desconexin stos se env o o e an simplemente como tiras de caracteres. Sin embargo, durante la fase de transferencia, se usa tambin un protocolo de bajo nivel, que resulta transparente para los niveles superiores. De e esta manera es posible comprobar errores cuando se usan l neas poco ables, por ejemplo.

12.6.1

Resumen del protocolo

Dado que UUCP se usa sobre diferentes tipos de conexiones, como l neas serie, TCP, o incluso X.25, es preciso usar protocolos de bajo nivel espec cos. Adems, varias implemena taciones de UUCP han introducido diferentes protocolos para hacer lo mismo. Los protocolos se pueden dividir en dos categor as: de corriente o ujo (streaming) y por paquetes. La primera clase de protocolos transere un chero entero, posiblemente calculando una suma de comprobacin (checksum). Esto apenas supone un gasto extra o de tiempo, pero precisa una conexin able, porque cualquier error causar que todo el o a chero tenga que volver a ser enviado. Estos protocolos se suelen usar sobre conexiones de TCP, pero no sobre l neas telefnicas. Aunque los modems modernos hacen un buen o trabajo corrigiendo errores, no son perfectos, y tampoco lo es la deteccin de errores entre o el ordenador y el mdem. o Por su lado, los protocolos por paquetes parten el chero en varias partes de igual tama o. Cada paquete se env y recibe por separado, se realiza una suma de comprobacin, n a o y se devuelve al origen un paquete de conrmacin. Para que sea ms eciente, se inventaron o a protocolos de ventanas deslizantes, que permiten un n mero limitado (una ventana) de u paquetes sin esperar conrmacin en un momento dado. Esto reduce considerablemente la o cantidad de tiempo que uucico tiene que esperar durante una transmisin. A n as todos o u , los clculos extra necesarios en comparacin a un protocolo de ujo hace que los protocolos a o

12.6. Protocolos de bajo nivel de UUCP

196

de paquetes sean inecientes sobre TCP. El ancho de los datos tambin supone una diferencia. A veces, el env de caracteres e o de ocho bits sobre una conexin serie es imposible, por ejemplo si la conexin atraviesa o o un est pido servidor de terminales. En este caso, los caracteres con el octavo bit igual a u uno tienen que ser especialmente tratados. Cuando se env caracteres de ocho bits sobre an una conexion de siete bits, tienen que estar bajo la suposicin del peor caso posible. Esto o duplica la cantidad de datos a transmitir, aunque la compresin que se hace por hardware o puede compensar esto. Las l neas que pueden transmitir caracteres de ocho bits se llaman preparadas para ocho bits. Este es el caso de todas las conexiones TCP, as como la mayor a de los modems. Existen los siguientes protocolos con Taylor UUCP 1.04: g Este es el protocolo ms com n y deber ser entendido por prcticamente a u a a todos los uucicos. Hace comprobacin de errores en profundidad y es, por o lo tanto, apropiado para las ruidosas conexiones telefnicas. g require una o conexin preparada para ocho bits. Es un protocolo orientado a paquetes o que usa una tcnica de ventana deslizante. e Este es un protocolo bidireccional de paquetes que puede enviar y recibir cheros al mismo tiempo. Requiere una conexin que permita comunicacin o o bidireccional simultnea (full-duplex) y preparada para ocho bits. Actuala mente slo es usado por Taylor UUCP. o Este es un protocolo dise ado para usarse sobre una conexin de TCP, u n o otras redes libres de errores. Usa paquetes de 1024 bytes y requiere una conexin de ocho bits. o Este protocolo bsicamente hace lo mismo que t. La principal diferencia es a que e es un protocolo de ujo. Este protocolo est pensado para usarse sobre conexiones ables X.25. Es a un protocolo de ujo y espera una conexin de siete bits. Los caracteres de o ocho bits son codicados, lo cual lo hace muy ineciente. Esta es la versin del Unix SVR419 del protocolo g. Tambin se utiliza en o e algunas otras versiones de UUCP. Este protocolo es similar a ZMODEM. Requiere una conexin de ocho bits, o pero codica ciertos caracteres como XON y XOFF.
19

N. del T.: Unix Sistema V Version 4

12.6. Protocolos de bajo nivel de UUCP

197

12.6.2

Ajuste del protocolo de transmisin o

Todos los protocolos permiten alguna variacin en el tama o de los paquetes, el cronmetro o n o y similares. Usualmente, los valores por defecto funcionan bien, pero puede no ser optimo para su conguracin. El protocolo g, por ejemplo, usa tama os de ventanas de 1 a 7, y o n tama os de paquetes en potencias de 2 desde 64 a 4096. 20 Si su l n nea telefnica es tan o ruidosa que ignora el 5 por ciento de los paquetes, probablemente deber disminuir el a tama o de los paquetes y de la ventana. Sin embargo, en l n neas de telfono muy buenas el e hecho de enviar acuses de recibo por cada 128 bytes puede resultar un desperdicio, as que podr incrementar el tama o de los paquetes a 512 o incluso 1024. a n Taylor UUCP provee un mecanismo para satisfacer sus necesidades mediante el ajuste de estos parmetros con el comando protocol-parameter en el chero sys. Por ejemplo, para a ajustar el tama o de los paquetes del protocolo g a 512 cuando se conecte con el sistema n pablo, tiene que a adir: n
system pablo ... protocol-parameter g packet-size 512

Los parmetros ajustables y sus nombres var entre protocolos. Para ver una lista a an completa de stos puede consultar la documentacin que acompa a al cdigo fuente de e o n o Taylor UUCP.

12.6.3

Seleccin de protocolos espec o cos

No todas las implementaciones de uucico hablan y entienden cada protocolo, de modo que durante la fase de negociacin de protocolos, ambos procesos tienen que ponerse de acuerdo o en uno com m. El uucico maestro ofrece al esclavo una lista de protocolos soportados u enviando Pprotlist , de la cual el esclavo elige uno. Seg n el tipo de puerto usado (mdem, TCP o directo), uucico crea una lista por defecto u o de protocolos. Para mdem y conexiones directas, esta lista normalmente incluye i, a, g, o G, y j. Para conexiones TCP, la lista es t, e, i, a, g, G, j, y f. Esto se puede cambiar con el comando protocols, que se puede especicar en una entrada de sistema o en una de puerto. Por ejemplo, usted podr modicar la entrada del chero port para su puerto de mdem a o de esta manera:
port
20

serial1

La mayor de los programas incluidos en las distribuciones de Linux usan por defecto un tamao de a n ventana de 7 y paquetes de 128 bytes.

12.7. Solucin de problemas o

198

... protocols

igG

Esto requiere que cualquier conexin entrante o saliente en este puerto use i, g o G. Si o el sistema remoto no soporta ninguno de stos, la negociacin fallar. e o a

12.7

Solucin de problemas o

Esta seccin describe lo que puede ir mal con su conexin de UUCP y sugiere dnde buscar o o o el error. Sin embargo, slo he puesto las preguntas que se me han ocurrido, por lo que o pueden surgir otras muchas cosas que no diga aqu . En cualquier caso, active la opcin de encontrar errores con -xall, y observe el reo sultado en el chero Debug del directorio de cola. Esto deber ayudarle rpidamente a a a reconocer dnde reside el problema. Siempre me ha servido de ayuda el activar el altao voz del mdem cuando no se conecta. Con un mdem compatible Hayes, esto se consigue o o a adiendo ATL1M1 OK en el dilogo del mdem en el chero dial. n a o La primera cosa a comprobar siempre deber ser si todos los permisos de los cheros a estn ajustados correctamente. uucico debe tener identicacin de usuario uucp, y todos los a o cheros en /usr/lib/uucp, /var/spool/uucp y /var/spool/uucppublic tienen que pertenecer a uucp. Tambin hay algunos cheros ocultos 21 en el directorio de cola que tienen que e pertenecer a uucp. uucico dice constantemente Wrong time to call: Esto probablemente signica que en la entrada de sistema en sys, usted no especic el comando time que determina a o qu horas se puede llamar al sistema remoto, o bien especic unas horas que en realidad e o prohiben llamar en este momento. Si no se especica cundo se puede llamar, uucico asume a que no se puede llamar nunca a ese sistema. uucico se queja de que el sistema ya est en uso: Esto signica que uucico dea tect un chero cerrojo (lock) para el sistema remoto en /var/spool/uucp. El chero cerrojo o puede pertenecer a una llamada anterior al sistema que fue interrumpida. Sin embargo, tambin es posible que haya otro uucico ejecutandose en el sistema que est intentando llamar e e al sistema remoto y se atasc en una macro de dilogo, etc. Si este uucico no consigue o a conectarse al sistema remoto, mtelo con una se al de colgar (SIGHUP), y borre cualquier a n chero de bloqueo que haya dejado. Me puedo conectar al sistema remoto, pero la macro de dilogo falla: Mire el a texto que recibe del sistema remoto. Si est salteado, esto puede ser un problema relacionado a
Es decir, cheros cuyo nombre empieza con un punto. Estos cheros normalmente no aparecen con un comando ls.
21

12.7. Solucin de problemas o

199

con la velocidad. Si no, conrme que realmente env lo que su macro de dilogo espera a a recibir. Recuerde, la macro de dilogo empieza con una cadena de caracteres esperada. Si a usted recibe la invitacin de entrada al sistema (login), despues env su nombre pero luego o a no se le pregunta por la clave de acceso, inserte un retraso antes de enviarlo, o incluido entre las letras. Puede ser que usted sea demasiado rpido para su mdem. a o Mi mdem no marca: Si su mdem no indica que la l o o nea DTR ha sido elevada cuando uucico hace una llamada, posiblemente no le ha dado el dispositivo correcto a uucico. Si su mdem reconoce DTR, compruebe con un programa terminal que usted o puede escribir comandos. Si esto funciona, active el eco con el comando \E al comienzo del dilogo del mdem. Si esto no produce un eco de sus comandos durante el dilogo del a o a mdem, compruebe si la velocidad de la l o nea es demasiado alta o demasiado baja para su mdem. Si s que ve el eco, compruebe si ha desactivado las respuestas del mdem, o las o o ha congurado como cdigos numricos. Verique que la macro de dilogo en s misma es o e a vlida. Recuerde que tiene que poner dos barras invertidas para enviar una al mdem. a o Mi mdem intenta marcar, pero la llamada no sale: Inserte un retraso en el o n mero de telfono. Esto es especialmente util cuando se llama fuera de la red interna de u e una compa Para la gente en Europa, que normalmente marca con pulsos (pulse-tone), na. pruebe con tonos (touch-tone). En ciertos paises, los servicios telefnicos han actualizado o sus redes recientemente. touch-tone ayuda a veces. El chero de registro (log) dice que tengo un ratio de paquetes perdidos extremadamente alto: Esto parece un problema de velocidad. Puede ser que la conexin entre su ordenador y su mdem sea demasiado lenta (recuerde adaptarla a la mayor o o velocidad efectiva posible). O puede ser que su hardware sea demasiado lento para servir las interrupciones a tiempo. Con un chip NSC 16550A en su puerto serie, 38kbps puede funcionar razonablemente bien; sin embargo, sin FIFOs (como el chip 16450), el l mite es 9600. Tambin tiene que asegurarse de que la negociacin hardware est incluida en la l e o a nea serie. Otra posible causa es que la negociacin hardware no est activada en el puerto. Tayo e lor UUCP 1.04 no tiene mecanismos para activar la negociacin de RTS/CTS. Tiene que o activarla expl citamente en el chero rc.serial usando el siguiente comando:
$ stty crtscts < /dev/cua3

Puedo entrar en el otro sistema, pero la negociacin falla: Bien, puede ser o debido a muchas causas. Los mensajes en el chero de registro deber decirle un montn an o de cosas. Mire qu protocolos ofrece el sistema remoto (env un Pprotlist durante la e a negociacin). A lo mejor no tienen nada en com m (selecion alg n protocolo en sys o o u o u port?).

12.8. Archivos de registro histrico (Log Files) o

200

Si el sistema remoto env RLCK, hay un chero de bloqueo (lock) para su sistema en el a sistema remoto. Si no es porque usted ya est conectado al sistema remoto en otra l a nea, pida que lo borren. Si env RBADSEQ, el otro sistema tiene la comprobacin de la cuenta de conversacin a o o activada para su sistema, pero los n meros no se corresponden. Si env RLOGIN, no le fue u a permitido entrar con ese nombre de usuario.

12.8

Archivos de registro histrico (Log Files) o

Cuando se compila el paquete de UUCP para usar cheros de registro al estilo TaylorUUCP, se tendrn tres cheros histricos globales, y todos residirn en el directorio de a o a cola. El chero principal se llama Log y contiene toda la informacin sobre las conexiones o establecidas y los cheros transferidos. Un extracto t pico podr ser como el siguiente a (despues de formatearlo para que quepa en la pgina): a
uucico pablo - (1994-05-28 17:15:01.66 539) Calling system pablo (port cua3) uucico pablo - (1994-05-28 17:15:39.25 539) Login successful uucico pablo - (1994-05-28 17:15:39.90 539) Handshake successful (protocol g packet size 1024 window 7) uucico pablo postmaster (1994-05-28 17:15:43.65 539) Receiving D.pabloB04aj uucico pablo postmaster (1994-05-28 17:15:46.51 539) Receiving X.pabloX04ai uucico pablo postmaster (1994-05-28 17:15:48.91 539) Receiving D.pabloB04at uucico pablo postmaster (1994-05-28 17:15:51.52 539) Receiving X.pabloX04as uucico pablo postmaster (1994-05-28 17:15:54.01 539) Receiving D.pabloB04c2 uucico pablo postmaster (1994-05-28 17:15:57.17 539) Receiving X.pabloX04c1 uucico pablo - (1994-05-28 17:15:59.05 539) Protocol g packets: sent 15, resent 0, received 32 uucico pablo - (1994-05-28 17:16:02.50 539) Call complete (26 seconds) uuxqt pablo postmaster (1994-05-28 17:16:11.41 546) Executing X.pabloX04ai (rmail okir) uuxqt pablo postmaster (1994-05-28 17:16:13.30 546) Executing X.pabloX04as (rmail okir) uuxqt pablo postmaster (1994-05-28 17:16:13.51 546) Executing X.pabloX04c1 (rmail okir)

El siguiente chero importante es Stats, que lista las estad sticas de transferencias de cheros. La seccin de Stats que corresponde a la transferencia anterior se muestra aqu o :
postmaster pablo (1994-05-28 17:15:44.78) received 1714 bytes in 1.802 seconds (951 bytes/sec) postmaster pablo (1994-05-28 17:15:46.66)

12.8. Archivos de registro histrico (Log Files) o

201

received 57 bytes in 0.634 seconds (89 bytes/sec) postmaster pablo (1994-05-28 17:15:49.91) received 1898 bytes in 1.599 seconds (1186 bytes/sec) postmaster pablo (1994-05-28 17:15:51.67) received 65 bytes in 0.555 seconds (117 bytes/sec) postmaster pablo (1994-05-28 17:15:55.71) received 3217 bytes in 2.254 seconds (1427 bytes/sec) postmaster pablo (1994-05-28 17:15:57.31) received 65 bytes in 0.590 seconds (110 bytes/sec)

Como en el caso anterior, las l neas han sido partidas para que quepan en la pgina. a El tercer chero es Debug. Este es el sitio donde se incluye toda la informacin para o buscar errores. Si usted usa deteccin de errores (debugging), tiene que asegurarse de que o este chero tenga modo de proteccin de 600. Dependiendo del modo de b squeda de errores o u que haya elegido, este chero puede incluir el nombre de usuario y la clave que usted usa para conectarse al sistema remoto. Algunos programas de UUCP que incluyen algunas distribuciones de Linux han sido compilados para usar el estilo de chero de registro histrico de HDB. HDB UUCP usa muo chos cheros de registro archivados bajo /var/spool/uucp/.Log. Este directorio contiene tres directorios ms, llamados uucico, uuxqt y uux. Estos contienen el resultado de informacin a o histrica generada por cada uno de los comandos correspondientes, ordenada en diferentes o cheros para cada sistema. Por lo tanto, la salida del programa uucico cuando se llama a pablo acabar en .Log/uucico/pablo, mientras que el uuxqt correspondiente escribir en a a .Log/uuxqt/pablo. Las l neas escritas a cada uno de estos cheros son sin embargo iguales que en Taylor UUCP. Cuando active la opcin de b squeda de errores con el estilo HDB, la informacin o u o ser escrita en el directorio .Admin bajo /var/spool/uucp. Durante llamadas salientes, la a informacin se env al chero .Admin/audit.local, mientras que la salida de uucico cuando o a alguien nos llama se graba en .Admin/audit.

Cap tulo 13

Correo Electrnico o
Uno de los usos ms comunes de las redes informticas desde sus or a a genes ha sido el correo electrnico. Empez siendo un simple servicio que copiaba un chero de una mquina a o o a otra, y lo a ad al chero mailbox (buzn de correo) del destinatario. Bsicamente, en esto n a o a sigue consistiendo el e-mail (correo electrnico), aunque el crecimiento continuo de la red o y, consiguientemente, el aumento de la complejidad de encaminado, ha hecho necesario un esquema ms elaborado. a Se han dise ado varios estndares de intercambio de correo. Los nodos conectados a n a la Internet cumplen uno recogido en el RFC 822, complementado en algunos RFCs que describen un mtodo independiente de la mquina para transferir caracteres especiales, y e a similares. Mucho se ha discutido recientemente sobre el correo multi-media, que tiene que ver con incluir imgenes y sonido en los mensajes de correo. Otro estndar, X.400, ha a a sido denido por el CCITT. Hay ya una gran cantidad de programas de transporte de correo para sistemas un x. Uno de los ms conocidos es el sendmail, de la Universidad de Berkeley, que se usa en diversas a plataformas. El autor original fue Eric Allman, que esta trabajando activamente en el equipo sendmail de nuevo. Hay dos adaptaciones para Linux del sendmail-5.56c disponibles, una de las cuales se describir en el cap a tulo 15. La versin de sendmail actualmente en desarrollo o es la 8.6.5. El agente de correo de uso ms com n en Linux es el smail-3.1.28, escrito por Curt a u Landon Noll y Ronald S. Karr y con Copyright de los mismos autores. Este es el que se incluye en la mayor de las distribuciones de Linux. En lo sucesivo nos referiremos a a l simplemente como smail, aunque hay otras versiones del mismo programa que son e totalmente diferentes, y que no describiremos aqu . Comparado con sendmail, smail es bastante joven a n. Si se ocupan del correo de un u

202

13.1. Qu es un mensaje de correo? e

203

nodo peque o sin necesidades de direccionamiento complicadas, sus capacidades son muy n parecidas. Para nodos grandes, sin embargo, sendmail siempre gana, porque su mtodo de e conguracin es mucho ms exible. o a Ambos smail y sendmail admiten un conjunto de cheros de conguracin que deben o ser adaptados a cada caso particular. Aparte de la informacin que se necesita para hacer o funcionar el subsistema de correo (como puede ser el nombre del ordenador local), hay muchos ms parmetros que pueden ajustarse. El chero principal de conguracin de a a o sendmail es muy dif de entender a la primera. Parece como si el gato se hubiese echado cil una siesta sobre el teclado con la tecla de may sculas pulsada. Los cheros de conguracin u o de smail estn ms estructurados y son ms fciles de entender que los del sendmail, pero a a a a no dan al usuario tanto poder a la hora de ajustar el comportamiento del gestor de correo. De todos modos, para nodos peque os de UUCP o Internet, el trabajo que se necesita para n poner a punto cualquiera de ellos es prcticamente el mismo. a En este cap tulo trataremos sobre qu es el e-mail y qu temas tendr que abordar usted e e a como administrador del sistema. Los cap tulos 14 y 15 darn instrucciones para poner a a punto smail y sendmail por primera vez. La informacin que se suministra debe bastar o para poner en marcha peque os nodos, pero hay muchas ms opciones y usted podr pasar n a a muchas horas felices frente a su ordenador congurando las caracter sticas ms superciales. a Hacia el nal de este cap tulo nos ocuparemos brevemente de cmo poner a punto elm, o un programa para usuario de correo muy com n en muchos sistemas un x, incluyendo u Linux. Para ms informacin sobre temas espec a o cos de correo electrnico sobre Linux, o por favor, consulte el Electronic Mail HOWTO de Vince Skahan, que aparece en comp.os.linux.announce con regularidad. Las distribuciones fuente de elm, smail y sendmail contienen tambin una documentacin muy extensa que debe solucionar la mayor de e o a sus dudas sobre instalacin y puesta a punto. Si busca informacin sobre correo electrnico o o o en general, hay varios RFCs que tratan espec camente este tema. Una lista de ellos se encuentra en la bibliograf al nal del libro. a

13.1

Qu es un mensaje de correo? e

Un mensaje de correo consta de un contenido (body), que es el texto que ha escrito el remitente, y datos especiales que especican el destinatario o destinatarios, el medio de transporte, etc., de manera similar a lo que aparece en el sobre de una carta ordinaria. Estos datos administrativos se clasican en dos categor en la primera categor estn as; a a los datos que son espec cos del medio de transporte, como son las direcciones del remitente

13.1. Qu es un mensaje de correo? e

204

y del destinatario. A esto se le llama el sobre (envelope). Puede ser modicado por el software de transporte a medida que el mensaje es transmitido. La segunda variedad es cualquier dato necesario para la manipulacin del mensaje, que o no es propio de ning n mecanismo de transporte, como es la l u nea del encabezado en la que indicamos el tema del mensaje (Subject), la lista de todos los destinatarios, y la fecha en la que se envi el mensaje. En muchas redes, se ha convertido en un estndar incluir estos o a datos al comienzo del mensaje, formando lo que se denomina encabezado del mensaje (mail header). Se separa del contenido del mensaje (mail body) por una l nea en blanco. 1 La mayor del software para transporte de correo que se usa en el mundo un x usa a un formato de encabezado denido en el RFC 822. Su propsito original era especicar un o estndar para usar en la ARPANET, pero dado que fue dise ado para ser independiente a n del entorno de uso, ha sido fcilmente adaptado a otras redes, incluyendo muchas basadas a en UUCP. Pero RFC 822 es slo el mximo denominador com n. Otros estndares ms recieno a u a a tes han sido concebidos para dar respuesta a las crecientes necesidades como pueden ser, por ejemplo, encriptacin de datos, soporte de conjuntos de caracteres internacionales, y o extensiones de correo multimedia (multi-media mail extension, MIME). En todos esos estndares, el encabezado consiste en varias l a neas, separadas por caracteres de retorno de carro. Cada l nea consiste en un nombre de campo, que comienza en la columna uno, y el campo en s separados por dos puntos (:) o un espacio. El formato , y la semntica de cada campo var dependiendo del nombre del mismo. Un campo del a a encabezado se puede continuar ms all de una l a a nea, si la l nea siguiente comienza con un carcter de tabulacin. Los campos pueden aparecer en cualquier orden. a o Un encabezado de correo t pico puede ser algo as :
From brewhq.swb.de!ora.com!andyo Wed Apr 13 00:17:03 1994 Return-Path: <brewhq.swb.de!ora.com!andyo> Received: from brewhq.swb.de by monad.swb.de with uucp (Smail3.1.28.1 #6) id m0pqqlT-00023aB; Wed, 13 Apr 94 00:17 MET DST Received: from ora.com (ruby.ora.com) by brewhq.swb.de with smtp (Smail3.1.28.1 #28.6) id <m0pqoQr-0008qhC>; Tue, 12 Apr 94 21:47 MEST Received: by ruby.ora.com (8.6.8/8.6.4) id RAA26438; Tue, 12 Apr 94 15:56 -0400 Date: Tue, 12 Apr 1994 15:56:49 -0400 Message-Id: <199404121956.PAA07787@ruby> From: andyo@ora.com (Andy Oram) To: okir@monad.swb.de Subject: Re: Tu parte de RPC
Se suele aadir una rma (signature) o .sig a un mensaje, usualmente conteniendo informacin sobre el n o autor, junto con un chiste o cita clebre. Se separa del resto del mensaje con una l e nea conteniendo -- .
1

13.1. Qu es un mensaje de correo? e

205

Usualmente, todos los campos del encabezado necesarios son generados por la interface con el servidor de correo que usted use, como elm, pine, mush, o mailx. Algunos, sin embargo, son opcionales, y pueden ser a adidos por el usuario. elm, por ejemplo, permite n editar parte del encabezado del mensaje. Otros campos son a adidos por el software de n transporte de correo. Una lista de campos de encabezado comunes y su signicado se da a continuacin: o From: Contiene la direccin de correo electrnico del remitente, y posiblemente el o o nombre real. Un verdadero zoolgico de formatos distintos se usa aqu o . Esta es la direccin de e-mail del destinatario. o Describe el contenido del mensaje en pocas palabras. Al menos eso es lo que debiera hacer. La fecha en la que el mensaje fue enviado. Especica la direccin a la que el remitente desea que el destinatario le o conteste. Esto puede ser util si se tienen varias direcciones, pero se desea recibir la mayor parte del correo solo en aqulla que se usa ms a menudo. e a Este campo es opcional.

To: Subject:

Date: Reply-To:

Organization: La organizacin que posee la mquina desde la que se ha enviado el mensaje. o a Si la mquina usada es la suya propia no incluya este campo, o bien indique a privado o cualquier trivialidad sin sentido. Este campo es opcional. Message-ID: Una cadena generada por el transporte de correo en el sistema remitente. Es unica para cada mensaje. Received: Cada nodo que procesa su correo (incluyendo las mquinas del remitente y a el destinatario) insertan este campo en el encabezado, dando el nombre del nodo, una identicacin de mensaje, hora y fecha a la que lo recibieron, de o qu nodo procede, y qu software de transporte ha sido usado. Esto se hace e e as para que usted pueda conocer la ruta que su mensaje ha seguido, y pueda protestar a la persona responsable si algo ha ido mal.

X-cualquier-cosa: Ning n programa relacionado con el correo debe protestar sobre cualquier u encabezado que comience con X-. Esto se usa para implementar caracter sticas adicionales que aun no han sido incluidas en un RFC, o que no lo sern a nunca. Esto se usa, por ejemplo, en la lista de correo de los Activistas de Linux, donde el canal a usar se selecciona con el campo de encabezado X-Mn-Key:.

13.2. Cmo se reparte el correo? o

206

La unica excepcin a esta estructura es la primera l o nea. Comienza con la palabra clave From seguida de un espacio en blanco, en vez de dos puntos. Para distinguirlo del campo ordinario From: se suele denotar como From . Contiene la ruta que ha seguido el mensaje, escrita al estilo ruta bang de UUCP (explicado ms adelante), la hora y la fecha en que fue a recibido por la ultima mquina que lo ha procesado, y una parte opcional que especica a desde qu mquina ha sido recibido. Como este campo es regenerado por cada sistema que e a procesa el mensaje, alguna veces queda incluido en los datos del sobre. El campo From contin a existiendo por compatibilidad con procesadores de correo u antiguos, pero no se usa demasiado en la actualidad excepto por algunos interfaces de usuario de correo que se basan en l para marcar el comienzo de un mensaje en el buzn e o del usuario. Para evitar problemas potenciales con l neas del contenido del mensaje que comiencen tambin con From , se ha convertido en prctica com n distinguir este ultimo e a u caso precedindolo de un >. e

13.2

Cmo se reparte el correo? o

Generalmente, usted escribir su correo usando un interface de correo como mail o mailx ; a u otros ms sosticados como elm, mush, o pine. Estos programas se denominan agentes a de usuario de correo (mail user agents), o MUAs para abreviar. Si usted env un mensaje a de correo, el programa interface en la mayor de los casos se lo pasar a otro programa a a para que lo transmita. Este programa se denomina el agente de transporte de correo (mail transport agent), o MTA. En algunos sistemas hay agentes de transporte de correo distintos para env locales o lejanos; en otros hay slo un MTA. El comando para env lejanos se os o os denomina usualmente rmail, el otro se denomina lmail (si existe). Un env local de correo es, por supuesto, algo ms que a adir el mensaje al buzn o a n o del destinatario. Usualmente el MTA local entender cmo usar alias (denir direcciones a o locales de destinatarios que dirigen a otras direcciones) y cmo usar redirecciones 2 , es decir, o dirigir el correo de un usuario a otra direccin). Tambin, los mensajes que no pudieron ser o e enviados deben ser normalmente devueltos (bounced) al remitente junto con alg n mensaje u de error. Para env lejanos, el software de transporte usado depende del tipo de enlace. Si el os correo debe enviarse a travs de una red que usa TCP/IP, se usara normalmente SMTP. e SMTP son las siglas de Simple Mail Transfer Protocol, o Protocolo Simple de Trasferencia de Correo que se dene en el RFC 788 y RFC 821. SMTP usualmente conecta con la mquia na del destinatario directamente, negociando la transferencia del mensaje con el demonio SMTP del otro lado.
2

N. del T.: Del ingls forwarding e

13.3. Direcciones de correo electrnico o

207

En redes tipo UUCP, el correo no suele ser enviado directamente, sino que es redirigido hasta su destino a travs de un conjunto de mquinas intermedias. Para enviar un mensaje e a a travs de un enlace UUCP, el MTA remitente ejecutar usualmente rmail en la mquina e a a intermedia usando uux, y suministrndole el mensaje en la entrada estndar. a a Dado que esto se hace para cada mensaje por separado, puede producir una carga considerable de trabajo en un nodo procesador de correo grande, adems de inundar las colas a UUCP con cientos de peque os mensajes que ocupan una cantidad de disco desproporcion 3 Por esto algunos MTAs permiten recopilar varios mensajes de un sistema remoto nada. en un solo lote. El chero de lotes contiene los comandos SMTP que el nodo local ejecutar a normalmente si usara una conexin SMTP directa. A esto se le llama BSMTP, o batched o SMTP (SMTP por lotes). El lote es suministrado al programa rsmtp o bsmtp en el sistema remoto, que procesar la entrada como si una conexin SMTP normal hubiese ocurrido. a o

13.3

Direcciones de correo electrnico o

Para el correo electrnico, una direccin consiste en, al menos, el nombre de la mquina o o a que maneja el correo del destinatario, y una identicacin de usuario reconocida por ese o sistema. Puede ser el nombre de acceso del destinatario, pero puede ser tambin cualquier e otra cosa. Otros esquemas de direcciones, como el X.400, usan un conjunto ms general a de atributos que se utilizan para buscar la mquina del destinatario en un servidor de a directorio X.500. La forma en que se interpreta un nombre de mquina, es decir, a qu nodo va a llegar a e nalmente nuestro mensaje, y cmo combinar este nombre con el nombre de usuario del o destinatario depende enormemente de la red en la que nos encontremos. Los nodos en la Internet siguen el estndar RFC 822, que requiere una notacin usuaa o rio@mquina.dominio, donde mquina.dominio es el nombre de dominio totalmente a a cualicado (Fully Qualied Domain Name, o FQDN) de la mquina. El signo de arroba que a 4 . Dado que esta notacin no indica la aparece entre medias se suele denominar signo at o ruta hasta la mquina de destino, sino que da el nombre ( nico) de dicha mquina, a esto a u a se le suele llamar una direccin absoluta. o En el entorno UUCP original, la forma predominante era ruta!mquina!usuario, dona de ruta describ una secuencia de mquinas a travs de las cuales deb viajar el mensaje a a e a n se llama la ruta bang, porque un sigpara llegar a mquina, su destino nal. Esta notaci a no de exclamacin se denomina coloquialmente bang. Hoy en d muchas redes basadas o a
Esto es as porque el espacio de disco se asigna usualmente en bloques de 1024 Bytes. Incluso un mensaje de como mucho 400 Bytes ocupar 1 Kb completo. a 4 N. del T. de la preposicin inglesa at, que signica en o
3

13.3. Direcciones de correo electrnico o

208

en UUCP han adoptado el RFC 822, y entendern ese tipo de direccin. a o Estos dos tipos de direcciones no se mezclan muy bien. Supongamos una direccin o mquinaA!usuario@mquinaB. No queda claro si el signo @ tiene precedencia sobre a a la ruta o viceversa: Hemos de enviar el mensaje a mquinaB, que lo enviar a mquia a a naA!usuario, o debe ser enviado mquinaA, que lo redirigir a usuario@mquinaB? a a a Las direcciones que mezclan diferentes tipos de operadores de direccin se denominan o direcciones hbridas. El ms notorio es el ejemplo anterior. Se resuelve usualmente dndole a a precedencia al signo @ sobre la ruta. En el ejemplo anterior, esto signica enviar el mensaje a mquinaB primero. a De todos modos, hay una forma de especicar rutas acorde con RFC 822: <@mquia naA,@mquinaB:usuario@mquinaC> denota la direccin de usuario en mquinaC, a a o a indicando que se debe llegar a mquinaC a travs de mquinaA y mquinaB (en ese a e a a orden). Este tipo de direccin se suele llamar una direccin route-addr (de route, ruta y o o address, direccin). o Y tambin existe el operador de direccin %: usuario%mquinaB@mquinaA e o a a ser enviado primero a mquinaA, que sustituir el signo de tanto por ciento que se a a a encuentre ms a la derecha en la expresin (en este caso el unico) por un signo @. La a o direccin quedar ahora usuario@mquinaB, y el gestor de correo redirigir alegremente o a a a el mensaje a la mquinaB que lo entregar a usuario. Este tipo de direccin se suele a a o denominar a veces como Ye Olde ARPANET Kludge (La Vieja Chapuza de ARPANET) y su uso est desaconsejado. Aun as muchos agentes de transporte de correo generan este a tipo de direcciones. Otras redes tienen ms formas de expresar direcciones. Las redes basadas en el proa tocolo DECnet, por ejemplo, usan dos signos de dos puntos como separador, dando lugar a direcciones como mquina ::usuario . 5 Finalmente, el estndar X.400 usa un esquema a a totalmente distinto, describiendo a un destinatario por un conjunto de pares atributo-valor, como pa u organizacin. s o En FidoNet, cada usuario se identica por un cdigo como 2:320/204.9, que consiste en o cuatro n meros que denotan la zona (2 es Europa), red (320 es Par y Banlieve), nodo (el u s repetidor/BBS local), y punto (el PC del usuario). Las direcciones Fidonet se pueden traducir a RFC 822: la anterior se escribir Thomas.Quinot@p9.f204.n320.z2.donet.org. a No he dicho antes que los nombres de dominio son fciles de recordar? a Hay algunas implicaciones al usar esos tipos diferentes de direcciones que sern descritas a a lo largo de las prximas secciones. De todos modos, en un entorno RFC 822 raramente o
Cuando se intente llegar a una direccin DECnet desde un entorno RFC 822 se puede usar o mquina::usuario.@relevo, donde relevo es el nombre de una pasarela Internet-DECnet conocida. a
5

13.4. Cmo funciona el encaminado del correo? o

209

se usar otra cosa que direcciones absolutas como usuario@mquina.dominio. a a

13.4

Cmo funciona el encaminado del correo? o

El proceso de dirigir un mensaje a la mquina del destinatario se denomina encaminado. a Adems de encontrar una ruta desde el nodo emisor al receptor, este proceso incluye tambin a e chequeo de errores as como optimizacin de velocidad y coste. o Hay mucha diferencia en la forma en la que un nodo UUCP maneja el encaminado y la forma en que lo hace un nodo Internet. En la Internet, el trabajo principal de dirigir datos al nodo del destinatario (una vez que se conoce por su direccin IP) se realiza por la capa o IP de control de red, mientras que en UUCP, la ruta debe ser suministrada por el usuario, o generada por el agente de transporte de correo.

13.4.1

Encaminado de correo en la Internet

En la Internet, depende enteramente del nodo de destino el que se realice alg n encaminado u espec co de correo. El comportamiento por defecto consiste en enviar el mensaje al nodo de destino buscando su direccin IP, y dejando el encaminado de los datos en s a la capa o IP de transporte. Generalmente, la mayor de los nodos querrn que todo el correo entrante se dirija a a a un servidor de correo fcilmente accesible que sea capaz de procesar todo ese trco, y que a a distribuir ese correo localmente. Para anunciar ese servicio, el nodo publica el llamado a campo MX para su dominio local en la base de datos DNS. MX signica Mail Exchanger (Intercambiador de correo) y bsicamente quiere decir que el servidor va a actuar como un a redistribuidor de correo para todas las mquinas de este dominio. Los campos MX tambin a e pueden usarse para manipular el trco dirigido a mquinas que no estn ellas mismas a a a conectadas a la Internet, como redes UUCP o redes corporativas que contienen informacin o condencial. Los campos MX tambin tienen una preferencia asociada. Es un entero positivo. Si e existen varios intercambiadores de correo para una mquina, el agente de transporte de a correo intentar enviar el mensaje al intercambiador con menor valor de preferencia, y slo a o si ste falla probar uno con mayor valor. Si el nodo local es l mismo un intercambiador e a e de correo para la direccin de destino, no redirigir los mensajes a cualquier mquina MX o a a que tenga un valor de preferencia mayor que el suyo propio: sta es una forma segura de e evitar bucles de correo. Supongamos que una organizacin, digamos la Sociedad ACME, quiere que todo su o

13.4. Cmo funciona el encaminado del correo? o

210

correo sea manipulado por su mquina llamada mailhub. Entonces tendrn un campo MX a a como el siguiente en su base de datos DNS:
acme.com IN MX 5 mailhub.acme.com

Esto anuncia que mailhub.acme.com es un intercambiador de correo para acme.com con un valor de preferencia de 5. Una mquina que desee enviar un mensaje a a joe@greenhouse.acme.com buscar el registro DNS de acme.com, y encontrar el a a campo MX apuntando hacia mailhub. Si no hay ning n MX con un valor de preferencia u menor que 5, el mensaje ser enviado a mailhub, que lo entregar a greenhouse. a a Lo anterior es slo un esbozo de cmo funcionan los campos MX. Para ms informacin o o a o sobre encaminado de correo en la Internet, por favor consulte el RFC 974.

13.4.2

Encaminado de correo en el mundo UUCP

El encaminado de correo en redes UUCP es mucho ms complicado que en la Internet, a porque el software de transporte no realiza ning n encaminado. Al principio, todo el correo u ten que ser dirigido usando rutas bang. Las rutas bang especican, como hemos dicho a ya, una lista de nodos a travs de los cuales enviar el mensaje, separados por signos de e admiracin, y seguida del nombre del usuario. Para dirigir una carta a Juanita, usuaria o de una mquina llamada moria, deber a amos usar la ruta eel!swim!moria!juanita. Esto enviar el correo desde nuestro nodo a eek, desde all a swim y nalmente a moria. a El inconveniente obvio de esta tcnica es que obliga a que recordemos mucho sobre la e topolog de la red, enlaces rpidos, etc. Aun peor, cualquier cambio en la topolog de la a a a red como enlaces que se eliminan o nodos que se quitan puede causar que el mensaje no llegue al destino simplemente porque no se estaba al tanto del cambio. Y nalmente en caso de que nos mudemos a otro lugar, deberemos actualizar todas esas rutas. Sin embargo, un hecho que hizo que fuese necesario el uso del encaminado manual fue la presencia de nombres de nodo ambiguos: por ejemplo, supongamos que hay dos mquinas a llamadas moria, una en los EE.UU., y otra en Francia. A cual de ellas nos referimos con moria!juanita? Esto puede quedar claro especicando que ruta seguir para llegar a moria. El primer paso para eliminar ambig edades en nombres de nodos fue la fundacin del u o Proyecto de Cartografa UUCP (The UUCP Mapping Project). Se encuentra en la Universi dad de Rutgers, y lleva el registro de todos los nombres de nodos ociales UUCP, junto con informacin de sus vecinos UUCP y su localizacin geogrca, asegurndose de que ning n o o a a u nombre se repite. La informacin recogida por el Proyecto de Cartograf se publica como o a

13.4. Cmo funciona el encaminado del correo? o

211

los Mapas de Usenet, que se distribuyen regularmente en Usenet. 6 Una entrada t pica para un sistema en un mapa (despus de eliminar los comentarios) ser algo as e a :
moria bert(DAILY/2), swim(WEEKLY)

Esta entrada dice que moria tiene un enlace con bert, al que llama dos veces al d a (DAILY=diariamente), y con swim, al que llama una vez a la semana (WEEKLY). Volveremos de nuevo al formato del chero mapa ms adelante. a Usando la informacin sobre conectividad proporcionada en los mapas, se pueden geneo rar automticamente las rutas completas de nuestra mquina a cualquier nodo de destino. a a Esta informacin se almacena usualmente en el chero paths, tambin llamado base de dao e tos de alias de rutas (pathalias database). Suponiendo que los mapas indican que se puede llegar a bert a travs de ernie, entonces una entrada de alias de ruta para moria generada e a partir del fragmento de mapa anterior quedar tal que as a :
moria ernie!bert!moria!%s

Si ahora damos una direccin de destino de juanita@moria.uucp, nuestro MTA escoo ger la ruta mostrada anteriormente, y enviar el mensaje a ernie con una direccin en el a a o sobre de bert!moria!juanita. De todos modos, construir un chero paths a partir de los mapas completos de Usenet no es una buena idea. La informacin proporcionada en ellos normalmente est bastante o a distorsionada, y a veces es obsoleta. As slo unos pocos nodos grandes usan los mapas , o mundiales completos de UUCP para construir su chero paths. La mayor de los nodos slo a o mantienen informacin de encaminado hacia los nodos en sus cercan y env cualquier o as, an correo dirigido a nodos que no encuentran en sus bases de datos a un nodo ms inteligente, a con una informacin de encaminado ms completa. Este esquema se denomina encaminado o a por nodo inteligente (smart-host routing). Las mquinas que tienen un solo enlace de correo a UUCP (llamadas nodos hoja) no realizan ning n encaminado propio; conf enteramente u an en su nodo inteligente para esta tarea.

13.4.3

Mezcla de UUCP y RFC 822

La mejor cura contra los problemas vistos con el encaminado en redes UUCP es la adopcin o del sistema de nombres de dominio en ellas. Por supuesto, no se pueden hacer peticiones
Los mapas de nodos registrados en el Proyecto de Cartograf UUCP se distribuyen en el grupo de a noticias comp.mail.maps; otras organizaciones pueden publicar mapas separados para su red.
6

13.4. Cmo funciona el encaminado del correo? o

212

a un servidor de nombres usando UUCP. Aun as muchos nodos UUCP han formado pe, que os dominios que coordinan su encaminado internamente. En los mapas, estos dominios n publican uno o dos nodos como sus pasarelas de correo, de modo que no tenga que haber una entrada en el mapa para cada nodo en el dominio. Las pasarelas pueden distribuir todo el correo que uye hacia dentro y hacia fuera del dominio. El esquema de encaminado dentro del dominio es completamente invisible para el resto del mundo. Esto funciona muy bien con el esquema de encaminado por nodo inteligente descrito anteriormente. La informacin de encaminado global se encuentra slo en las pasarelas; a o o los nodos menores dentro de un dominio les basta con un peque o chero paths escrito a n mano que contiene la lista de las rutas dentro de su dominio, y la ruta al concentrador de correo. Incluso las pasarelas de correo no tienen por qu incluir informacin de encaminado e o hacia cada una de las mquinas UUCP en el mundo. Aparte de la informacin completa de a o encaminado para el dominio al que sirven, ahora slo necesitan tener en sus bases de datos o rutas a dominios completos. Por ejemplo, la siguiente entrada alias de ruta encaminar todo a el correo para nodos del dominio sub.org a smurf :
.sub.org swim!smurf!%s

Cualquier correo dirigido a claire@jones.sub.org ser enviado a swim con una direca cin en el sobre tal como smurf !jones!claire. o La organizacin jerrquica del espacio de nombres de dominio permite a los servidoo a res de correo mezclar rutas ms espec a cas con otras menos espec cas. Por ejemplo, un sistema en Francia puede tener rutas espec cas hacia subdominios de fr, pero encaminar cualquier correo dirigido a mquinas del dominio us hacia alg n sistema en los EE.UU. a u De esta forma, el encaminado basado en dominios (que es como se denomina esta tcnica) e reduce enormemente el tama o de las bases de datos de encaminado, as como las tareas de n administracin requeridas. o El mayor benecio de usar nombres de dominio en un entorno UUCP, de todos modos, es que al cumplir con RFC 822 se pueden fcilmente usar pasarelas entre redes UUCP y la a Internet. Hoy en d muchos dominios UUCP tienen un enlace con una pasarela a Internet a, que act a como su nodo inteligente. Enviar mensajes a travs de la Internet es ms rpido, u e a a y la informacin de encaminado es mucho ms able porque los nodos en la Internet pueden o a usar DNS en vez de mapas Usenet. Para poder ser alcanzables desde la Internet, los dominios basados en UUCP usualmente hacen que su pasarela a Internet anuncie una entrada MX para ellos (las entradas MX que fueron descritas anteriormente). Por ejemplo, supongamos que moria pertenece al dominio orcnet.org y que gcc2.groucho.edu act a como su pasarela a Internet. Entonces moria u usar gcc2 como su nodo inteligente, de modo que todo el correo hacia dominios remotos a

13.5. Formatos de Fichero Mapa y Alias de Ruta

213

ser enviado a travs de la Internet. Por otro lado, gcc2 anunciar una entrada MX para a e a orcnet.org, y enviar todo el correo entrante para nodos de orcnet a moria. a El unico problema que queda es que los programas de transporte UUCP no pueden ma nejar nombres de dominio totalmente cualicados. La mayor de los paquetes integrados de a UUCP fueron dise ados para tratar con nombres de nodos de ocho caracteres como mximo, n a algunos incluso menos, y usar caracteres no alfanumricos, como puntos, est totalmente e a fuera de lugar para la mayor a. As es imprescindible disponer de alguna forma de relacionar nombres RFC 822 y UUCP. , La forma en que esto se hace es totalmente dependiente de la implementacin. Una manera o com n de relacionar FQDNs con nombres UUCP es usar el chero de alias de ruta para u esto:
moria.orcnet.org ernie!bert!moria!%s

Esto producir una ruta bang al estilo UUCP puro a partir de una direccin que especia o ca un nombre de dominio totalmente cualicado. Algunos programas de correo suministran un chero especial para esto; sendmail, por ejemplo, usa el chero uucpxtable. La transformacin inversa (llamada coloquialmente dominizar) se necesita a veces cuano do se env correo desde una red UUCP a la Internet. Mientras el remitente use el nombre a de dominio totalmente cualicado en la direccin de destino, este problema se puede evitar o no eliminando el nombre del dominio de la direccin del sobre cuando se redirige el meno saje al nodo inteligente. De todos modos, siguen existiendo algunos nodos UUCP que no son parte de ning n dominio. Estos se dominizan usualmente a adiendo el pseudo-dominio u n uucp.

13.5

Formatos de Fichero Mapa y Alias de Ruta

La base de datos de alias de ruta ofrece la informacin de encaminado principal en redes o basadas en UUCP. Una entrada t pica ser como sigue (nombre del nodo y ruta separadas a por tabuladores):
moria.orcnet.org ernie!bert!moria!%s moria ernie!bert!moria!%s

Esto hace que cualquier mensaje a moria sea enviado v ernie y bert. Ambos nombres a de moria (su nombre totalmente cualicado y su nombre UUCP) deben ser suministrados si el programa no tiene una forma separada de relacionar ambos.

13.5. Formatos de Fichero Mapa y Alias de Ruta

214

Si se quieren dirigir los mensajes destinados a mquinas dentro de alg n dominio a su a u concentrador de correo, se debe tambin especicar un camino en la base de datos de alias e de ruta, dando el nombre del dominio como objetivo, precedido de un punto. Por ejemplo, si todas las mquinas de sub.org pueden ser alcanzadas a travs de swim!smurf, la entrada a e de alias de ruta debe ser:
.sub.org swim!smurf!%s

Escribir un chero de alias de ruta es aceptable slo cuando se est manejando un nodo o a que no necesita hacer demasiados encaminados. Si se tienen que hacer encaminados hacia un gran n mero de mquinas, una manera mejor es usar el comando pathalias para crear el u a chero a partir de los cheros de mapa. Los mapas se pueden mantener con ms facilidad, a porque slo hay que a adir o quitar un sistema editando la entrada de dicho sistema en el o n mapa, y volver a crear el chero de mapa. Aunque los mapas publicados por el Proyecto de Cartograf de Usenet ya no se usan demasiado para encaminar, las redes UUCP peque as a n pueden suministrar informacin de encaminado en su propio conjunto de mapas. o Un chero de mapa consiste principalmente en una lista de nodos, junto con los nodos que cada sistema registra o lo registran. El nombre del sistema comienza en la columna uno, y sigue una lista de enlaces separados por comas. La lista se puede continuar en varias l neas, comenzando cada nueva l nea con un tabulador. Cada enlace consiste en el nombre del nodo enlazado, seguido del coste, entre corchetes. El coste es una expresin aritmtica, o e consistente en n meros y costes simblicos. Las lineas que comienzan con un signo hash u o (#) se ignoran. Como ejemplo, consideremos moria, que registra a swim.twobirds.com dos veces al d y a bert.sesame.com una vez a la semana. Adems el enlace con bert usa slo un a, a o mdem lento de 2400bps. moria publicar la siguiente entrada en los mapas: o a
moria.orcnet.org swim.twobirds.com(DAILY/2), bert.sesame.com(WEEKLY+LOW) moria.orcnet.org = moria

La ultima l nea lo har ser conocido bajo su nombre UUCP tambin. Obsrvese que a e e debe ser DAILY/2, porque llamar dos veces al d reduce a la mitad el coste de ese enlace. a Usando la informacin de dichos cheros de mapa, pathalias puede calcular rutas optimas o para cualquier destino que aparezca en el chero de rutas, y producir una base de datos de alias de ruta a partir de ste, que se puede usar para encaminar hacia esos nodos. e

13.6. Conguracin de elm o

215

pathalias proporciona varias posibilidades ms, como esconder nodos (es decir, hacerlos a accesibles slo a travs de una pasarela), etc. Vase la pgina del manual sobre pathalias o e e a para ms detalles, adems de una lista completa de costes de enlace. a a Los comentarios en el chero de mapa contienen generalmente informacin adicional o sobre los nodos descritos en l. Existe un formato r e gido para especicar sta, de manera e que pueda ser recuperada de los mapas. Por ejemplo, un programa llamado uuwho usa una base de datos creada a partir de los cheros de mapa para presentar esta informacin de o una manera elegante. Cuando se registra un nodo con una organizacin que distribuye cheros de mapa a sus o miembros, generalmente se debe rellenar una de esas entradas de mapa. A continuacin hay una entrada de mapa de ejemplo (de hecho, es la del nodo del autor): o
#N monad, monad.swb.de, monad.swb.sub.org #S AT 486DX50; Linux 0.99 #O private #C Olaf Kirch #E okir@monad.swb.de #P Kattreinstr. 38, D-64295 Darmstadt, FRG #L 49 52 03 N / 08 38 40 E #U brewhq #W okir@monad.swb.de (Olaf Kirch); Sun Jul 25 16:59:32 MET DST 1993 # monad brewhq(DAILY/2) # Domains monad = monad.swb.de monad = monad.swb.sub.org

El espacio en blanco detrs de los primeros dos caracteres es un tabulador. El signicado a de la mayor de los campos es bastante obvio; recibiremos una descripcin detallada del a o dominio con el que vayamos a registrarnos. El campo L es el ms divertido de averiguar: da a nuestra posicin geogrca en latitud/longitud y se usa para dibujar los mapas postscript o a que muestran todos los nodos de cada pa as como los del mundo entero. 7 s,

13.6

Conguracin de elm o

elm signica electronic mail (correo electrnico) y es una de las utilidades un x ms o a razonablemente bautizadas. Proporciona una interface de pantalla completa con una buena
7

Aparecen regularmente en news.lists.ps-maps. Cuidado: son enormes.

13.6. Conguracin de elm o

216

utilidad de ayuda. No vamos a explicar aqu como se usa elm, slo nos detendremos en sus o opciones de conguracin. o Tericamente, se puede usar elm sin congurar, y todo funciona bien con suerte. Pero o hay algunas opciones que deben denirse, aunque slo se necesitan en contadas ocasiones. o Cuando comienza, elm lee un conjunto de variables de conguracin desde el chero o elm.rc en /usr/lib/elm. Entonces, intentar leer el chero .elm/elmrc en nuestro directorio a personal. Normalmente este chero no se genera a mano. Se crea cuando se escoge save options (grabar opciones) desde el men de opciones de elm. u El conjunto de opciones para el chero privado elmrc tambin est disponible en el e a chero global elm.rc. La mayor de las deniciones en el chero privado elmrc sustituirn a a a las del chero global.

13.6.1

Opciones Globales de elm

En el chero global elm.rc, se deben denir las opciones que pertenecen a nuestro nombre de mquina. Por ejemplo, en la Cervecera Virtual, el chero para vlager contendr lo a a siguiente:
# # El nombre del nodo local hostname = vlager # # Nombre del dominio hostdomain = .vbrew.com # # Nombre de dominio totalmente cualificado (FQDN) hostfullname = vlager.vbrew.com

Estas opciones denen la idea que tiene elm sobre el nombre de la mquina local. a Aunque esta informacin se usa raramente, debemos denir estas opciones. Obsrvese que o e estas opciones slo tienen efecto cuando se dan en el chero global de conguracin; cuando o o se encuentran en nuestro elmrc privado, sern ignoradas. a

13.6.2

Conjuntos de Caracteres Nacionales

Recientemente, han habido propuestas para corregir el estndar RFC 822 para soportar a varios tipos de mensajes, como texto simple, datos binarios, cheros Postscript, etc. El conjunto de estndares y RFCs que cubren estos aspectos se suelen conocer como MIME, a

13.6. Conguracin de elm o

217

o Extensiones de Correo Internet Multipropsito (Multipurpose Internet Mail Extensions). o Entre otras cosas, esto permite al destinatario saber si un conjunto de caracteres distinto del estndar ASCII ha sido usado al escribir el mensaje, por ejemplo usando los acentos o a diresis del castellano. Esto tiene soporte en elm hasta cierto punto. e El conjunto de caracteres usado por Linux internamente para representar caracteres se suele denominar ISO-8859-1, que es el nombre del estndar que cumple. Tambin se conoce a e como Latin-1. Cualquier mensaje que use caracteres de ese conjunto debe llevar la siguiente l nea en su encabezado:
Content-Type: text/plain; charset=iso-8859-1

El sistema que recibe el mensaje debe reconocer este campo y tomar las medidas apropiadas cuando muestra el mensaje. El valor por defecto para mensajes text/plain (texto simple) es un valor de charset (conjunto de caracteres) de us-ascii. Para poder mostrar mensajes con conjuntos de caracteres distintos al ASCII, elm debe saber cmo mostrar esos caracteres. Por defecto, cuando elm recibe un mensaje con un o campo charset distinto de us-ascii (o un tipo de contenido distinto de text/plain, a todos los efectos), intenta mostrar el mensaje usando un comando llamado metamail. Los mensajes que requieren metamail para ser mostrados aparecen con una M en la primera columna en la pantalla de listado de mensajes (overview). Como el conjunto de caracteres nativo de Linux es ISO-8859-1, llamar a metamail no es necesario para mostrar mensajes que usen dicho conjunto. Si se le dice a elm que la pantalla entiende ISO-8859-1, no usar metamail sino que mostrar el mensaje directamente. Esto a a se puede hacer deniendo la siguiente opcin en el elm.rc global: o
displaycharset = iso-8859-1

Obsrvese que se puede denir esta opcin incluso cuando nunca vayamos a enviar o e o recibir mensajes que realmente contengan caracteres distintos del ASCII. Esto es as porque la gente que env esos mensajes, usualmente congura su programa de correo para que a incluya el campo Content-Type: (tipo de contenido) adecuado en el encabezado de correo por defecto, vayan o no a enviar mensajes slo ASCII. o De todos modos, denir esta opcin en elm.rc no es suciente. El problema es que o cuando muestra los mensajes con el paginador incorporado, elm llama a una funcin de o biblioteca por cada carcter para determinar si es mostrable o no. Por defecto, esta funcin a o slo reconoce caracteres ASCII como mostrables, y muestra todos los dems como ^?. o a Debemos solucionar esto deniendo la variable de entorno LC CTYPE como ISO-8859-1,

13.6. Conguracin de elm o

218

que le indica a la biblioteca que acepte caracteres Latin-1 como mostrables. El soporte para esta y otras caracter sticas est disponible a partir de la libc-4.5.8. a Cuando enviamos mensajes que contienen caracteres especiales del ISO-8859-1, debemos asegurarnos de denir dos variables ms en el chero elm.rc: a
charset = iso-8859-1 textencoding = 8bit

Esto hace que elm dena el conjunto de caracteres como ISO-8859-1 en el encabezado de correo, y lo env como valores de 8 bit (el comportamiento por defecto es recortar todos e los caracteres a 7 bit). Por supuesto, cualquiera de estas opciones se puede denir tambin en el chero elmrc e privado en lugar de en el global.

Cap tulo 14

Cmo congurar y poner en o marcha smail


Este cap tulo es una breve introduccin a la forma de congurar smail y adems dar una o a a idea general de la funcionalidad que este programa prove. Aunque smail es muy similar e en comportamiento a sendmail, sus archivos de conguracin son totalmente diferentes. o El archivo de conguracin principal es /usr/lib/smail/cong. Este archivo es el que o se debe editar para ajustar los valores espec cos al sistema que se est congurando. Si a unicamente es un ordenador terminal de UUCP, sern relativamente pocas las opciones a a cambiar. Hay adems otros archivos que conguran las opciones de encaminamiento y a transporte que se pueden modicar; se hablar brevemente sobre la forma de hacerlo. a La forma de operacin normal de smail hace que procese y entregue todo el correo de o entrada inmediatamente. Si se tiene un trco relativamente alto, se puede preferir que a smail guarde todos los mensajes en una cola, y los procese a intervalos regulares. Cuando se trabaja con correo dentro de una red TCP/IP, es frecuente que smail funcione como demonio: en el momento de arrancar la mquina, se invoca desde el archivo rc.inet2, a y se coloca en segundo plano, desde donde espera que haya una conexin TCP que entre por o el puerto SMTP (el puerto 25 es lo normal). Este esquema es muy bueno cuando se espera una gran cantidad de trco, pues smail no se lanza por separado para cada conexin que a o ingresa. La alternativa es usar a inetd como el administrador del puerto SMTP, y lanzar una copia de smail cada vez que haya una conexin en este puerto. o El programa smail tiene muchas opciones que se usan para controlar su comportamiento; describirlas una por una en detalle no es de gran utilidad. Afortunadamente smail tiene varios modos estndar de operacin que se habilitan cuando es invocado con un nombre a o espec co tal como rmail o smtpd. Es com n que estos nombres espec u cos sean enlaces

219

14.1. Conguracin de UUCP o

220

simblicos al binario de smail. Se vern ms de stos cuando se discutan algunas otras o a a e caracter sticas de smail. Hay dos enlaces /usr/sbin/sendmail.1 a smail que deben existir siempre: /usr/bin/rmail y

Cuando se crea y se env un mensaje de correo con un agente de usuario tal como elm, a el mensaje se pasar a rmail para su entrega, con la lista de destinatarios dada en la l a nea de comandos. Lo mismo sucede con el correo que entra v UUCP. Algunas versiones de rmail, a sin embargo, invocan a /usr/sbin/sendmail en vez de a rmail, por lo que son necesarios ambos enlaces. Por ejemplo, si smail est en /usr/local/bin, se debe escribir lo siguiente en a la l nea de comandos:
# ln -s /usr/local/bin/smail /usr/bin/rmail # ln -s /usr/local/bin/smail /usr/sbin/sendmail

Si se quiere investigar ms sobre los detalles de conguracin de smail, se debe buscar a o en las pginas del manual smail(1) y smail(5). Si no estuviesen incluidas en su distribucin a o preferida del Linux, se pueden obtener junto con el cdigo fuente de smail. o

14.1

Conguracin de UUCP o

Para usar smail en un entorno que slo tiene UUCP, la instalacin bsica es muy sencilla. o o a Primero se debe asegurar de que estn los dos enlaces simblicos a rmail y sendmail mene o cionados anteriormente. Si se espera recibir conexiones de SMTP de otros sitios, tambin e se debe hacer un enlace de rsmtp a smail. En la distribucin de smail de Vince Skahan, se encuentra un archivo muestra de cono guracin. Su nombre es cong.sample y est en /usr/lib/smail. Se debe copiar a cong y o a editarlo para ajustar los valores espec cos de su sistema. Suponiendo que su mquina se llama swim.twobirds.com, y est registrado en los mapas a a UUCP como swim y su relevo UUCP es ulysses, entonces el archivo cong podr ser como a el siguiente:
# # Los nombres de nuestros dominios visible_domain=two.birds:uucp #
Esta es la nueva ubicacin estndar de sendmail de acuerdo con el Estndar del Sistema de Archivos de o a a Linux. Otra ubicacin comn es /usr/lib. o u
1

14.1. Conguracin de UUCP o

221

# Nuestro nombre en los mensajes que viajan al exterior visible_name=swim.twobirds.com # # Tambien se usa este nombre uucp uucp_name=swim.twobirds.com # # Nuestro relevo UUCP smart_host=ulysses

La primera instruccin le indica a smail los dominios a los que su sistema pertenece. o Se deben insertar sus nombres aqu separados con signos de punto y coma. Si el nombre , de su sistema est registrado en los mapas de UUCP, ser necesario agregar adems la a a a palabra uucp. Cuando se manipula un mensaje de correo, smail determina el nombre de su nodo usando una llamada de sistema hostname(2) y revisa la direccin del destinatario con o respecto al nombre del nodo, revisando cada uno de los nombres de la lista. Si la direccin o coincide con cualquiera de estos nombres, o el nombre del sistema no est calicado, el a receptor se considera local y smail intenta entregar el mensaje a un usuario o alias dentro del sistema local. En cualquier otro caso, el receptor se considera remoto y se intenta entregar al nodo adecuado. La palabra clave visible name debe contener un solo nombre de dominio totalmente calicado de la mquina que se desea utilizar para los mensajes que se env hacia afuera. a an Este nombre se usa cuando se genera la direccin de quien env el correo en todos los o a mensajes de salida. Es importante asegurarse de que el nombre que se use sea reconocido por smail como una referencia al sistema local (i.e. el nombre del ordenador con uno de los dominios listados en el atributo visible domain). Si no se hiciese de esta forma, las respuestas a los mensajes enviados rebotarn hacia afuera del nodo local. a La ultima instruccin pone la ruta utilizada para el encaminamiento del relevo UUCP o (descrito en la seccin 13.4). Con este cambio mostrado, smail enviar cualquier correo o a dirigido hacia direcciones remotas al relevo. Como los mensajes sern entregados a travs a e de UUCP, el atributo debe especicar un sistema conocido para los programas UUCP que corran en su sistema. Consulte el cap tulo 12 sobre el tema de cmo hacer que su nodo sea o conocido por UUCP. Hay una opcin que se utiliza en el archivo anterior que a n no ha sido explicada; sta o u e es uucp name. La razn para utilizar esta opcin es la siguiente: normalmente smail utiliza o o el valor que devuelve hostname(2) para cosas que hace el UUCP tales como poner en el encabezado From el camino de regreso del correo. Si el nombre del nodo no est registrado a en el mapa de UUCP, es necesario indicar a smail que en vez de ste utilice el nombre de e dominio completamente calicado.2 Esto se puede hacer agregando la opcin uucp name al o
2

La razn de esto es: Suponga que el nombre de su sistema es monad y que no est registrado en los o a

14.2. Conguracin para una red local o

222

archivo de conguracin cong. o Hay otro archivo en /usr/lib/smail, que se llama paths.sample. Este es un ejemplo de la forma que tiene un archivo de caminos, paths. Sin embargo, este archivo no es necesario a menos que se tengan enlaces de correo a ms de un lugar. Si fuese necesario hacerlo, se a debe escribir uno nuevo o generar uno partiendo de los mapas de Usenet. El archivo paths se describir ms adelante, en este mismo cap a a tulo.

14.2

Conguracin para una red local o

Si est funcionando una instalacin con dos o ms nodos conectados por medio de una a o a red local, es necesario designar a uno de ellos para que maneje la conexin UUCP con o el mundo exterior. Entre las mquinas de la red local, es muy probable que se quiera a intercambiar correo con SMTP sobre TCP/IP. Suponga que se tiene nuevamente el ejemplo de la Cervecera Virtual, y vstout se congura como una pasarela UUCP. En un entorno de red, es preferible mantener todos los archivos con el correo de los usuarios en un solo sistema de archivos, que puede ser montado con NFS desde todas las dems mquinas. Esto permite a los usuarios desplazarse de mquina en mquina sin tener a a a a que mover su correo por todos lados (o peor, revisar tres o cuatro ordenadores para ver su correo recin recibido cada ma ana). As mismo, es deseable hacer que las direcciones de los e n usuarios sean independientes del ordenador en la cual el correo se almacena. Es una prctica a com n utilizar el nombre del dominio como la direccin de quien env el correo en vez de u o a utilizar el nombre de la mquina servidora del correo. El usuario Janet, por ejemplo, podr a a especicar su direccin como janet@vbrew.com en vez de janet@vale.vbrew.com. A o continuacin se explicar como hacer que el servidor reconozca el nombre del dominio como o a un nombre vlido para su instalacin. a o Otra forma de mantener todos los apartados postales en un antrin central es utilizar o POP o IMAP. POP quiere decir, por sus siglas en ingls Post Oce Protocol, es decir, e Protocolo de Ocina Postal y permite a los usuarios tener acceso a sus archivos de correo a travs de una conexin TCP/IP. IMAP, o Protocolo de Acceso Interactivo al Correo por e o sus siglas en ingls de Interactive Mail Access Protocol, es similar a POP, excepto que es e ms general. Ambos clientes y servidores para IMAP y POP han sido portados a Linux, y a estn disponibles en sunsite.unc.edu bajo el directorio /pub/Linux/system/Network. a
mapas y adems hay un lugar registrado en los mapas que se llama monad. Cada correo que se dirija a a monad!root, an cuando haya sido enviado desde un vecino directo UUCP, viajar hasta el otro monad. Esto u a es una molestia para todos.

14.2. Conguracin para una red local o

223

14.2.1

Cmo escribir los archivos de conguracin o o

La conguracin para la Cervecera funciona de la siguiente forma: todos los nodos, con o excepcin del servidor de correo vstout, encaminan todo el correo que va hacia el exterior o hacia este servidor, utilizando la tcnica de encaminamiento al relevo de correo. vstout e encamina todo el correo que va hacia el exterior al verdadero nodo de relevo que, a su vez, env todo el correo de la Cervecera; este ultimo nodo se llama moria. a El archivo estndar cong para todas las mquinas con la excepcin de vstout es como a a o sigue:
# # Nuestro dominio: visible_domain=vbrew.com # # El nombre que usamos: visible_name=vbrew.com # # Encaminamiento al relevo: via SMTP hacia vstout smart_path=vstout smart_transport=smtp

Esto es muy parecido a lo que se ha hecho para congurar un sistema que slo funciona o con UUCP. La diferencia principal es que el medio de transporte utilizado para enviar el correo al nodo de relevo es SMTP. El atributo visible domain hace que smail utilice el nombre del dominio en vez de utilizar el nombre del sistema local en todo el correo de salida. En la pasarela de correo UUCP vstout el archivo cong es ligeramente distinto:
# # Los nombres de nuestros sistemas: hostnames=vbrew.com:vstout.vbrew.com:vstout # # La forma en que nos llamamos a nosotros mismos: visible_name=vbrew.com # # En el mundo uucp, somos conocidos como vbrew.com uucp_name=vbrew.com # # Transporte inteligente: via uucp hacia moria smart_path=moria smart_transport=uux #

14.2. Conguracin para una red local o

224

# somos la autoridad para nuestro dominio auth_domains=vbrew.com

Este archivo de conguracin, cong, utiliza un esquema diferente para indicar a smail o cmo se llama el sistema local. En vez de dar una lista de dominios y permitir que busque o el nombre del nodo con una llamada al sistema, se especica una lista expl citamente. La lista de arriba contiene tanto el dominio completamente calicado como el del sistema no calicado, y el nombre del dominio completo en s mismo. Esto hace que smail reconozca a janet@vbrew.com como una direccin local, y entregue el mensaje a janet. o La variable auth domains indica el nombre de los dominios para los cuales vstout es considerado como autoridad. Esto es, si smail recibe cualquier correo con una direccin o hacia host .vbrew.com en donde host no corresponde a ninguna mquina existente, se a rechaza el mensaje y se devuelve al remitente del mismo. Si esta l nea no est, cualquier a mensaje rechazado ser enviado nuevamente al relevo de correo, quien lo mandar a vstout, a a y as sucesivamente hasta que se descarte por exceder la cuenta mxima de saltos. a

14.2.2

Cmo ejecutar smail o

La primera cosa que se debe hacer es decidir si se ejecutar smail como un demonio indea pendiente, o si se permitir que inetd administre el puerto SMTP e invoque a smail cuando a un cliente solicite una conexin SMTP. Normalmente es preferible la operacin como un o o demonio independiente en el servidor de correo, debido a que esto carga la computadora menos que lanzar una copia nueva de smail cada vez que se solicite una conexin indivio dual. Cuando un servidor de correo entrega casi todo el correo que recibe directamente a los usuarios, es preferible optar por la operacin con inetd. o Independientemente del modo de operacin que se haya elegido para cada antrin ino o dividual, es importante asegurarse que se tiene la siguiente l nea en el archivo /etc/services:
smtp 25/tcp # Simple Mail Transfer Protocol

Esto dene el n mero del puerto TCP que smail utilizar para las conexiones SMTP. u a 25 es el puerto estndar denido por el RFC de N meros de Puerto Asignados. a u Cuando se ejecuta como demonio, smail se coloca a s mismo en segundo plano, y esperar a que ocurra una conexin en el puerto SMTP. Cuando haya una conexin, lanza a o o un proceso y conduce una conversacin SMTP en dicho puerto. El demonio smail se lanza o normalmente invocndolo desde el script rc.inet2 con la siguiente instruccin: a o
/usr/local/bin/smail -bd -q15m

14.3. Si no logra pasar. . .

225

El modicador -bd indica que se funcionar como demonio, y -q15m hace que se procesen a los mensajes acumulados en la cola cada 15 minutos. Si en cambio, se quiere utilizar inetd, el archivo /etc/inetd.conf deber contener una a l nea como la siguiente:
smtp stream tcp nowait root /usr/sbin/smtpd smtpd

smtpd debe ser un enlace simblico al binario de smail. Recuerde que tiene que forzar o a que inetd relea inetd.conf envindole una se al HUP despus de hacer estos cambios. a n e El modo demonio y el modo inetd son mutuamente excluyentes. Si se ejecuta smail como demonio, aseg rese de que est comentada cualquier l u e nea en inetd.conf para el servicio smtp. De manera similar, cuando se tenga a inetd como administrador de smail, aseg rese u de que rc.inet2 no lanza al demonio smail.

14.3

Si no logra pasar. . .

Si algo va mal con la instalacin, hay algunas herramientas que pueden ayudar a encontrar o cul es la ra del problema. El primer lugar que se debe revisar es el conjundo de archivos a z de registro de smail. Estn en /var/spool/smail/log, y se llaman logle y paniclog, respectia vamente. El primero lista todas las transacciones, mientras que el ultimo slo se usa cuando o haya mensajes de error relacionados con errores en la conguracin y similares. o Un ejemplo t pico de una l nea en el logle es el siguiente:
04/24/94 07:12:04: | from: | program: | size: 04/24/94 07:12:04: | via: | to: | orig-to: | router: | transport: [m0puwU8-00023UB] received root sendmail 1468 bytes [m0puwU8-00023UB] delivered vstout.vbrew.com root@vstout.vbrew.com root@vstout.vbrew.com smart_host smtp

Esto muestra que un mensaje de root a root@vstout.vbrew.com ha sido correctamente entregado al sistema vstout a travs de SMTP. e Los mensajes que smail no pudo entregar generan una l nea similar en el archivo de registro, pero con el mensaje de error en vez de la parte que dice entregado (delivered):

14.3. Si no logra pasar. . .

226

04/24/94 07:12:04: [m0puwU8-00023UB] received | from: root | program: sendmail | size: 1468 bytes 04/24/94 07:12:04: [m0puwU8-00023UB] root@vstout.vbrew.com ... deferred (ERR_148) transport smtp: connect: Connection refused

El error de arriba es t pico para una situacin en la cual smail reconoce correctamente o que el mensaje deber ser entregado a vstout pero que no fue posible establecer la coa nexin al servicio SMTP en vstout. Si esto sucede, es posible que tenga un problema de o conguracin o bien que el soporte TCP est ausente de los binarios del smail. o e Este problema no es tan raro de encontrar. Hay varios binarios de smail que vienen con distribuciones de Linux y que no tienen soporte de red TCP/IP. Si este es su caso, debe recompilar el programa smail. Una vez instalado smail, se debe revisar si se tiene soporte de red TCP haciendo un telnet al puerto SMTP de su mquina. Una conexin exitosa al a o servidor SMTP se muestra a continuacin (la entrada por teclado se marca con este tipo o de letra ):
$ telnet localhost smtp Trying 127.0.0.1... Connected to localhost. Escape character is ^]. 220 monad.swb.de Smail3.1.28.1 #6 ready at Sun, 23 Jan 94 19:26 MET QUIT 221 monad.swb.de closing connection

Si esta prueba no produce el mensaje de SMTP (la l nea que comienza con el cdigo 220), o debe asegurarse de que su conguracin es verdaderamente correcta antes de recompilar o smail, como se describir a continuacin. a o Si hay alg n problema con smail que no se pueda localizar con el mensaje de error que u smail genera, se pueden activar los mensajes de depuracin. Para hacer esto, se debe utilizar o el modicador -d, seguido de un n mero opcional que especique el nivel de detalle de la u informacin (no se debe dejar ning n espacio entre el modicador y el argumento numrico). o u e Entonces, smail mostrar un informe de su operacin en la pantalla que dar ms pistas a o a a acerca de lo que puede estar mal.

14.3.1

Cmo compilar smail o

Si est seguro de que su smail carece de soporte de red TCP, es necesario obtener el cdigo a o fuente. Es posible que ya est inclu en su distribucin si la obtuvo en CD-ROM, si no e do o

14.4. Modos de entrega de correo

227

fuese as se puede conseguir en la red v FTP. 3 , a La mejor forma de compilar smail, es comenzar con el conjunto de archivos de conguracin de la distribucin de Vince Skahan. Para incluir el controlador de TCP dentro o o de la compilacin, se debe poner la macro DRIVER CONFIGURATION en el archivo o conf/EDITME con el parmetro bsd-network o arpa-network. El primero se utiliza para las a instalaciones de red local, pero cuando se est en Internet es necesario usar arpa-network. a La diferencia entre estas dos es que la segunda tiene un manejador especial para el servicio BIND que permite reconocer registros MX, lo cual la primera no puede hacer.

14.4

Modos de entrega de correo

Como se mencion anteriormente, smail es capaz de entregar los mensajes inmediatamente o o encolarlos para un proceso posterior. Si se decide encolar los mensajes, smail guardar todo a el correo en el directorio messages debajo de /var/spool/smail. No se procesarn hasta que a se le indique expl citamente que lo haga (a este proceso se le conoce como ejecutar la cola). Se puede selecionar uno de tres modos de entrega deniendo el atributo delivery mode en el archivo cong para que est como foreground, background, o queued. Es decir, proe ceso normal, proceso en segundo plano, o proceso en cola. Estas opciones seleccionan la entrega normal (procesamiento inmediato de los mensajes de entrada), en segundo plano (los mensajes son entregados por medio de un hijo del proceso receptor: el proceso padre muere inmediatamente despus de la creacin del hijo), y el encolado. El correo de entrada e o siempre ser encolado independientemente de esta opcin si la variable booleana queue only a o est puesta en el archivo cong. a Si se activa el modo de cola, se debe asegurar de que las colas se revisen regularmente; probablemente cada 10 o 15 minutos. Si se ejecuta smail como demonio, se debe agregar la opcin -q10m en la l o nea de comandos para procesar la cola cada 10 minutos. De forma alternativa, se puede invocar runq desde el cron en esos intervalos de tiempo. runq deber ser a un enlace a smail. Se puede revisar la cola del correo al invocar smail con la opcin -bp. De manera o equivalente, se puede hacer que mailq sea un enlace a smail, e invocar mailq:
$ mailq -v m0pvB1r-00023UB From: root (in /var/spool/smail/input) Date: Sun, 24 Apr 94 07:12 MET DST
Si compr una distribucin Linux a un proveedor comercial, se puede solicitar el cdigo fuente con un o o o cargo de env nominal (que slo cubra los gastos), de acuerdo con las condiciones de copia de smail. o o
3

14.5. Otras opciones del chero cong

228

Args: -oem -oMP sendmail root@vstout.vbrew.com Log of transactions: Xdefer: <root@vstout.vbrew.com> reason: (ERR_148) transport smtp: connect: Connection refused

Esto muestra un solo mensaje que est esperando en la cola de mensajes. El registro de a transacciones (que slo se mostrar si se da a mailq la opcin -v) puede dar una explicacin o a o o adicional de por qu el mensaje est esperando para su entrega. Si a n no se ha intentado e a u entregar el mensaje, no se mostrar la informacin del registro. a o A n cuando no se utilice el modo de cola, smail pondr de forma ocasional los mensajes u a en la cola cuando falle la entrega inmediata por una razn transitoria. Para las conexiones o SMTP, esto puede ser debido a que el nodo siguiente sea un inalcanzable; pero los mensajes pueden tambin ser pospuestos cuando el sistema de archivos del receptor est lleno. En e e cualquier caso, debe poner una cola que se revise, por ejemplo, cada hora (utilizando runq), porque si no, cualquier mensaje pospuesto se quedar encolado indenidamente. a

14.5

Otras opciones del chero cong

Hay otras muchas opciones en el archivo cong, algunas poco usadas en sistemas sencillos. Sin embargo, mencionaremos algunas que s que sern utiles con frecuencia: a error copy postmaster Si esta variable boleana se pone, cualquier error generar un mensaje al a administrador de correo. Normalmente esto slo se hace para los errores o que se deben a una conguracin incorrecta. La variable puede activarse o ponindola en el archivo cong, precedida por un signo de suma (+). e max hop count Si la cuenta de saltos para un mensaje (i.e. el n mero de nodos que se u han atravesado) es igual o excede a este n mero, los intentos de entrega u producirn un mensaje de error que ser enviado a quien gener el mensaje. a a o Esto se utiliza para prevenir que los mensajes entren en un ciclo innito. La cuenta de saltos se calcula generalmente a partir del n mero de campos u Received: que se encuentran en el encabezado del correo. Adems, esta a cuenta tambin puede ser ajustada de forma manual utilizando la opcin -h e o en la l nea de comandos. Esta variable tiene como valor por defecto 20. postmaster La direccin del administrador de correo. Si la direccin Postmaster no o o puede ser resuelta como direccin local vlida, entonces sta se utiliza como o a e

14.6. Encaminamiento de mensajes y entrega

229

ultimo recurso. El valor por defecto es root.

14.6

Encaminamiento de mensajes y entrega

smail divide la entrega del correo en tres partes, la ruta, el mdulo de entrega local y el o mdulo de transporte. o El mdulo de encaminamiento resuelve todas las direcciones remotas, determinando el o nodo al que el mensaje ser enviado y el transporte que ser utilizado. Dependiendo de la a a naturaleza del enlace, se utilizarn transportes diferentes tales como UUCP o SMTP. a Las direcciones locales se dan al mdulo de entrega local que resuelve cualquier reenv o o o alias. Por ejemplo, la direccin podr ser un alias o una lista de correo, o el usuario podr o a a querer reenviar su correo a otra direccin. Si la direccin resultante es remota, se maneja o o de nuevo en el mdulo de encaminamiento, de otra forma se asigna a un transporte para su o entrega local. Normalmente, la accin a realizar ser entregar a un archivo de correo, pero o a los mensajes tambin pueden ser pasados a la entrada de un comando (por ejemplo, un ltro e de correo que el usuario quiera establecer) o agregados a un archivo arbitrario cualquiera. El mdulo de transporte, nalmente, es el responsable de la entrega, independientemente o del mtodo que se haya escogido. Intenta entregar el mensaje y en caso de problemas, puede e devolver un mensaje al remitente o posponer la entrega para intentarlo de nuevo ms tarde. a Con smail se tiene mucha exibilidad para congurar estas tareas. Para cada una de ellas, hay varios controladores4 disponibles, de los cuales se puede elegir el ms adecuado. a Se debe indicar a smail la eleccin a travs de los siguientes archivos: routers, directors y o e transports, que se encuentran en /usr/lib/smail. Si estos archivos no existiesen, se toman valores por defecto razonables que funcionan en la mayor parte de los sistemas que utilizan SMTP o UUCP como transporte. Si se quiere cambiar la pol tica de encaminamiento de smail, o modicar un transporte, es conveniente obtener los archivos ejemplo que vienen con la distribucin de los programas fuente de smail 5 , copiar los archivos ejemplo a o /usr/lib/smail, y modicarlos de acuerdo con sus necesidades. Los archivos de ejemplos de conguracin estn tambin en el Apndice B. o a e e
Aqu conocemos por controladores a los distintos mdulos internos de smail capaces de utilizar un , o mtodo de entrega de mensajes u otro. As tenemos controladores para UUCP o para SMTP e , 5 Los archivos de conguracin por defecto se encuentran en samples/generic bajo el subdirectorio de los o programas fuente.
4

14.7. Mensajes de encaminamiento

230

14.7

Mensajes de encaminamiento

Cuando se le da un mensaje, smail revisa primero si el destino est en el sistema local o en a un nodo remoto. Si la direccin del ordenador destino corresponde a uno de los nodos locales o congurados en el archivo cong, el mensaje es tratado por el mdulo de entrega local. Si no o fuese as smail transmite la direccin del destino a varios controladores de encaminado para , o encontrar a qu mquina se debe transmitir el mensaje. Los controladores se pueden indicar e a en el archivo routers; si este archivo no existe, se utiliza un conjunto de encaminadores por defecto. El nodo destino se pasa a todos los encaminadores por turno, y aqul que encuentra la e ruta ms espec a ca es seleccionado. Por ejemplo, suponga que hay un mensaje dirigido a joe@foo.bar.com y que un encaminador conoce una ruta para todos los nodos que pertenecen al dominio bar.com, mientras que otro tiene la informacin sobre el camino directo o al sistema foo.bar.com. Como el segundo es ms espec a co, es elegido sobre el primero. Si hubiese dos encaminadores que proveen una solucin correcta e igual de espec o ca, se elige al primero que est en el archivo routers. e A continuacin, el encaminador elegido especica qu transporte utilizar, por ejemplo o e a UUCP, y genera as una nueva direccin destino. La nueva direccin se pasa al transporte o o junto con el nombre del sistema a quien se le debe pasar el mensaje. En el ejemplo anterior, smail podr encontrar que foo.bar.com se puede encontrar v UUCP utilizando la trayeca a toria ernie!bert. As generar un nuevo destino bert!foo.bar.com!user, y utilizar esta a a direccin, a travs del transporte UUCP, como la que ser transmitida a ernie. o e a Cuando se utilice la conguracin por defecto, los siguientes encaminadores estarn o a disponibles: Si la direccin del nodo destino se puede resolver utilizando las llamadas de biblioteca o gethostbyname(3) o gethostbyaddr(3), el mensaje ser entregado v SMTP. La unica a a excepcin es si la direccin que se encuentra se reere al sistema local, en cuyo caso o o ser enviado al mdulo de entrega local. a o smail tambin reconoce las direcciones IP escritas como cuarteto de puntos como e nombre legal de mquina, siempre y cuando pueda ser resuelto a travs de una llamada a e a gethostbyaddr(3). Por ejemplo scrooge@[149.76.12.4] podr ser vlida aunque a a muy rara como direccin para scrooge en quark.physics.groucho.edu. o Si su mquina est en el Internet, estos encaminadores no son lo que usted necesita, a a debido a que no soportan registros MX. Vea ms adelante lo que se debe hacer en este a caso. Si la base de datos de alias de trayectorias, /usr/lib/smail/paths existe, smail tratar de buscar en el archivo al nodo destino (restndole la extensin .uucp si la a a o

14.7. Mensajes de encaminamiento

231

hubiera). El correo a una direccin que coincida con este encaminador ser entregado o a utilizando UUCP, a travs de la trayectoria que se haya encontrado en la base de e datos. La direccin del nodo (restndole la extensin .uucp si la hubiera) se compara con la o a o salida de la instruccin uuname para revisar si el sistema destino es un vecino UUCP. o Si ste es el caso, el mensaje ser entregado utilizando el transporte UUCP. e a Si la direccin no coincide en ninguno de los encaminadores citados anteriormente, o ser entregado utilizando un relevo de correo. La trayectoria al nodo de relevo as como a el medio de transporte que ser utilizado se ponen en el archivo cong. a Los valores por defecto funcionan para la mayor parte de las instalaciones sencillas, pero no son utiles si las necesidades de encaminamiento son algo ms complejas. Si se enfrenta a con uno de los problemas que se discutirn a continuacin, es necesario instalar su propio a o archivo routers para cambiar los valores por defecto. Un archivo ejemplo routers con el que se puede empezar est en el apndice B. Algunas distribuciones de Linux traen adems, un a e a conjunto de archivos de conguracin hechos a la medida para solventar esas dicultades. o Es probable que el peor de los problemas surja cuando su mquina viva en un universo a dual con enlaces de marcado telefnico v IP y UUCP. Entonces se tendrn nombres de o a a nodos en el archivo hosts con los cuales slo se comunica ocasionalmente a travs de un o e enlace SLIP, y smail intentar entregar cualquier correo por medio de estos sistemas usando a SMTP. Este comportamiento no es deseable normalmente debido a que, si el enlace SLIP se activa de forma regular, SMTP es mucho ms lento que mandar el correo con UUCP. a Con los valores por defecto, no se puede evitar que smail se porte mal. Este problema se puede evitar revisando con smail el archivo paths antes de preguntar por el sistema de resolucin, y poner a todos los nodos a los que se quiera forzar la entrega o v UUCP en el archivo paths. Si nunca se quiere enviar ning n mensaje sobre SMTP, se a u pueden eliminar poniendo como comentarios todos los encaminadores que estn basados en a el sistema de resolucin. o Otro problema es que las opciones por defecto no proporcionan encaminado de correo Internet verdadero, debido a que un encaminador basado en un DNS no eval a los registros u MX. Para habilitar el soporte completo para el encaminamiento de correo Internet, es necesario eliminar al encaminador ponindolo como comentario, y quitar el comentario de e aqul que utiliza BIND. Sin embargo, algunas distribuciones de Linux incluyen binarios de e smail que no tienen el soporte para BIND incluido y, si se habilita BIND, se obtendr un a mensaje en el archivo paniclog que dice router inet hosts: driver bind not found, es decir, no se encuentra el controlador de bind, por lo que ser necesario obtener el cdigo a o fuente y recompilar smail (vea la seccin 14.2 ms arriba). o a

14.8. Cmo entregar mensajes a las direcciones locales o

232

Para concluir, generalmente no es buena idea utilizar el controlador uuname. Por una parte, generar un error de conguracin cuando no se tenga UUCP instalado, debido a a o que no encontrar al programa uuname. Por la otra, es que se tienen ms sistemas listados a a en su archivo Systems de UUCP que aqullos con los que se mantiene correo. Estos pueden e ser nodos con los cuales unicamente se intercambian noticias, o sistemas de los cuales se bajan archivos ocasionalmente v UUCP annimo, pero no se tiene ms trco que ste. a o a a e Para resolver el primer problema, se puede sustituir el programa uuname con un script que haga un simple exit 0. La solucin ms general es, sin embargo, editar el archivo routers o a y borrar todo el driver.

14.7.1

La base de datos de trayectorias paths

El programa smail espera encontrar una base de datos de alias de trayectorias en el archivo paths en el subdirectorio /usr/lib/smail. Este archivo es opcional, por lo que si no se quiere hacer ning n encaminamiento por medio de alias de trayectorias, simplemente se borra el u archivo paths. El archivo paths debe ser un archivo ASCII ordenado que contiene l neas que mapeen los nombres de los nodos destino a trayectorias UUCP con signos de admiracin. El archivo o tiene que estar ordenado debido a que smail utiliza b squeda binaria para encontrar un sitio. u No se permiten comentarios en este archivo, y el nombre del sitio debe estar separado de la trayectoria utilizando un carcter de tabulacin. Las bases de datos de alias de trayectorias a o se discuten con ms detalle en el cap a tulo 13. Si se genera este archivo a mano, es importante asegurarse de incluir todos los nombres vlidos para un sistema. Por ejemplo, si a una mquina se le conoce por un nombre simple a a UUCP y un nombre de dominio totalmente calicado, se debe a adir una l n nea para cada uno de ellos. El archivo debe estar ordenado (para ello, enviarlo al comando sort(1)). Si su nodo es simplemente terminal, no ser necesario tener un archivo paths: basta con a ajustar los atributos de nodo de relevo en su archivo cong, y dejarle todo el trabajo de encaminamiento que su correo genere.

14.8

Cmo entregar mensajes a las direcciones locales o

Es com n que una direccin local de correo sea slo el nombre del usuario, en cuyo caso u o o el mensaje se entrega en su archivo de correo, /var/spool/mail/usuario. En otros casos se incluyen alias y nombres de la lista de correo, y correo redirigido por el usuario. En estos casos, la direccin local se expande a una nueva lista de direcciones que pueden ser locales o o remotas.

14.8. Cmo entregar mensajes a las direcciones locales o

233

Independientemente de estas direcciones normales, smail puede manejar otros tipos de destino para los mensajes locales tales como nombres de archivos o comandos (que reciben el mensaje por su entrada estndar). Estas no son propiamente direcciones, de tal forma que a no se puede mandar correo, por ejemplo a /etc/passwd@vbrew.com; slo son vlidas si o a se han tomado de un archivo alias o de redireccionamiento. Un nombre de archivo es cualquier cosa que comience con una diagonal (/ ) o un tilde (~ ). El segundo se reere al directorio inicial del usuario, y es posible slo si el nombre del o archivo ha sido tomado de .forward o una l nea de redireccin del archivo de correo (ver o ms abajo). Cuando smail manda el mensaje a un archivo, lo a ade al nal del archivo y, a n de ser necesario, lo puede tambin crear. e Una instruccin por tubera puede ser cualquier comando un x precedido por el s o mbolo (|). Esto hace que smail env el comando al shell junto con sus argumentos, pero sin el e | que lo encabeza; pasando el mensaje a la entrada estndar del comando. a Por ejemplo, para meter una lista de correo en un grupo de noticias local, se podr a utilizar un script llamado gateit y congurar un alias local que entregue todos los mensajes de esta lista de correo al script, utilizando gateit. Si la invocacin contiene un espacio en blanco, se debe encerrar entre comillas dobles. o Debido a los problemas de seguridad que pueden ser ocasionados aqu es importante cuidar , que no se ejecute el comando si la direccin ha sido obtenida de alguna forma dudosa (por o ejemplo, si el archivo de alias del cual la direccin se ha obtenido puede ser escrito por o cualquiera).

14.8.1

Usuarios locales

El caso ms com n para una direccin local es mostrar el archivo de correo del usuario. a u o Este apartado postal est en /var/spool/mail y tiene el nombre del usuario. Tambin es a e propiedad de ste, con grupo mail y tiene el modo 660. Si no existe, smail lo crea. e Observe que aunque /var/spool/mail es el lugar estndar para poner los archivos de a correo, algunas aplicaciones tienen diferentes trayectorias compiladas en ellos, por ejemplo /usr/spool/mail. Si la entrega a los usuarios en su sistema falla constantemente, se puede intentar hacer un enlace simblico a /var/spool/mail para ver si esta situacin mejora. o o Hay dos direcciones que smail necesita para funcionar: MAILER-DAEMON y Postmaster. Cuando se devuelve un mensaje de informe debido a un correo que no pudo ser entregado, se env una copia a la cuenta del administrador postal (el postmaster) para su a revisin (en el caso de que este mensaje pudiera ser debido a un problema de conguracin). o o El usuario MAILER-DAEMON se utiliza como la direccin del remitente del mensaje o devuelto.

14.8. Cmo entregar mensajes a las direcciones locales o

234

Si estas direcciones no tienen nombres de cuentas vlidas en su sistema, smail mapea a impl citamente MAILER-DAEMON a postmaster, y postmaster a root. Es conveniente cambiar esto dndole un alias postmaster al responsable del mantenimiento de los a programas de correo.

14.8.2

Reenv o

Un usuario puede redirigir su correo a una direccin alternativa utilizando uno de los dos o mtodos que soporta smail. Una opcin es poner e o
Forward to receptor ,...

en la primera l nea de su archivo de correo. Esto enviar todo el correo que se reciba a a la lista de receptores especicada all La otra es crear un archivo .forward en el directorio . principal del usuario, que contenga una lista de los receptores separados por comas. Con este sistema de redireccionamiento, todas las l neas del archivo son le das e interpretadas. Observe que cualquier tipo de direccin puede ser utilizada. As un ejemplo prctico o , a del archivo .forward para cuando se tome unas vacaciones puede ser
janet, "|vacation"

La primera direccin entrega el mensaje que llega al archivo de correo de janet, mientras o que la instruccin vacation provoca la devolucin de un mensaje que informa al remitente o o que janet est de vacaciones. a

14.8.3

Archivos de alias

El programa smail entiende los archivos de alias compatibles con los del sendmail de Berkeley. Las l neas en el archivo de alias pueden ser de la forma
alias: receptores

receptores es una lista de direcciones separadas por comas que ser sustituida por el a alias. La lista de receptores puede continuar a travs de varias l e neas si la siguiente l nea comienza con un carcter de tabulacin. a o

14.8. Cmo entregar mensajes a las direcciones locales o

235

Hay una caracter stica especial que permite que smail maneje listas de correo desde un archivo de alias: si se especica :include:nombrearchivo como receptor, smail leer el a archivo especicado, y sustituir su contenido con una lista de receptores. a El archivo de alias principal es /usr/lib/aliases. Si se decide hacerlo escribible por todo el mundo, smail no entregar ning n mensaje a los comandos de shell que pudiese contener a u el archivo. Un archivo de ejemplo se muestra a continuacin: o
# vbrew.com archivo /usr/lib/aliases hostmaster: janet postmaster: janet usenet: phil # La lista de correo de desarrollo de programas. development: joe, sue, mark, biff /var/mail/log/development owner-development: joe # Los anuncios de interes general seran enviados # a todo el personal (lista staff) announce: :include: /usr/lib/smail/staff, /var/mail/log/announce owner-announce: root # pasarela a la lista de correos foobar a un grupo de noticias local ppp-list: "|/usr/local/lib/gateit local.lists.ppp"

Si hay un error cuando se entrega a una direccin generada por el archivo aliases, smail o intentar enviar una copia del mensaje de error al due o del alias. Por ejemplo, si la a n entrega a bi no se logra cuando se envi un mensaje a la lista de correo development, o se enviar una copia del mensaje de error al remitente, as como tambin al postmaster y a e a owner-development. Si la direccin del due o no existe, no se generar el mensaje de o n a error adicional. Cuando se entrega a un archivo o cuando se invocan programas en el archivo aliases, smail se convierte en el usuario nobody para evitar problemas de seguridad 6 . En especial cuando se entrega a un archivo esto constituye una verdadera molestia. En el archivo de ejemplo que se dio anteriormente, los archivos de registro .log deben ser propiedad y ser escribibles por el usuario nobody, o la entrega hacia ellos fallar. a
N. del T.: nobody signica nadie, y es un usuario que se utiliza cuando no se identica al dueo de un n proceso, y si bien se desea su ejecucin, tambin es cierto que no deseamos crear un agujero en nuestros o e mecanismos de seguridad, por lo cual nobody es un usuario con los privilegios reducidos al m nimo.
6

14.9. Transportes basados en UUCP

236

14.8.4

Listas de correo

En vez de utilizar el archivo aliases, las listas de correo tambin pueden ser administradas e por medio de archivos en el directorio /usr/lib/smail/lists. Una lista de correo llamada nagbugs se debe describir en el archivo lists/nag-bugs, el cual deber contener las direcciones a de los miembros separadas por comas. La lista puede estar en varias l neas, con l neas de comentarios que comienzan con el s mbolo #. Para cada lista de correo, un usuario (o alias) llamado owner-nombredelista debe existir; cualquier error que ocurra cuando se resuelva una direccin ser enviado a este o a usuario. Esta direccin se usa tambin como la direccin del remitente en todos los mensajes o e o de salida en el campo de encabezado Sender:.

14.9

Transportes basados en UUCP

Hay varios transportes compilados en smail que utilizan el conjunto de programas UUCP. En un entorno UUCP, los mensajes se pasan normalmente al invocar rmail en el siguiente nodo, dndole el mensaje en la entrada estndar y la direccin a quien va dirigido en la a a o l nea de argumentos. En el sistema, rmail deber ser un enlace al programa smail. a Cuando se maneja un mensaje con el transporte UUCP, smail convierte la direccin o destino a una trayectoria UUCP con s mbolos de admiracin. Por ejemplo, user@host se o transformar en host!user. Cualquier ocurrencia del operador de direcciones % ser cona a servada, de tal forma que user%host@gateway se convertir en gateway!user%host. a Sin embargo, mail nunca generar esa direccin por s mismo. a o De manera alternativa, smail puede enviar y recibir lotes de BSMPT v UUCP. Con a BSMTP, uno o ms mensajes son empaquetados en un solo lote que contiene las instruca ciones para que el controlador del correo local funcione como si se hubiera establecido una conexin SMTP real. BSMTP se utiliza frecuentemente en redes de guardar-y-enviar o (por ejemplo las basadas en UUCP) para ahorrar espacio en disco. El archivo de ejemplo transports del apndice B contiene un transporte doblado bsmtp que genera lotes parciae les BSMTP en un directorio de colas. Luego, deben ser combinados en los lotes nales utilizando un script de shell que agrega las instrucciones apropiadas HELO y QUIT. Para habilitar el transporte bsmtp para enlaces UUCP espec cos se deben utilizar los archivos llamados mtodo (revise la pgina del manual smail(5) para ms detalles). Si se e a a tiene unicamente un enlace UUCP, y se utiliza un encaminado a relevo, se puede habilitar el env de lotes SMTP poniendo la variable de conguracin smart transport a bsmtp en o o vez de uux.

14.10. Transportes basados en SMTP

237

Para recibir lotes SMTP sobre UUCP, se debe asegurar que se tiene el mismo programa de decodicacin de lotes que el sistema remoto que env los lotes. Si el nodo remoto o a utiliza smail tambin, es necesario hacer un enlace llamado rsmtp a smail. Si el sistema e remoto corre sendmail, se debe adems instalar un script llamado /usr/bin/bsmtp que haga a un simple exec rsmtp (una enlace simblico no funcionar). o a

14.10

Transportes basados en SMTP

El smail soporta actualmente un controlador de SMTP para entregar el correo sobre conexiones TCP.7 Es capaz de entregar un mensaje a cualquier n mero de direcciones de una u mquina, con el nombre de la misma especicado como nombre de dominio totalmente calia cado que puede ser resuelto por el software de red, o con la notacin de cuarteto de puntos o encerrados entre corchetes. En general, las direcciones se resuelven con los controladores de encaminamiento del BIND, gethostbyname(3), o gethostbyaddr(3) que lo entregarn al a transporte SMTP. El manejador de SMTP intentar conectarse al sistema remoto inmediatamente a travs a e del puerto smtp como est listado en /etc/services. Si no puede ser alcanzado, o expira el a tiempo mximo de espera, la entrega del correo se reintentar posteriormente. a a La entrega en Internet requiere que las rutas al nodo destino estn especicadas e en el formato route-addr descrito en el cap tulo 13, en vez de utilizar una trayec8 toria de signos de admiracin. o smail transformar user%host@gateway, en dona de gateway se alcanza v host1!host2!host3, en la direccin de la ruta-fuente a o <@host2,@host3:user%host@gateway> la cual ser enviada como la direccin del remia o tente a host1. Para habilitar dicha transformacin (utilizando el controlador incluido de o BIND), se debe editar la l nea del controlador smtp en el archivo transports. Un archivo de muestra transports se da en el Apndice B. e

14.11

Calicacin de nombre de antrin o o

Algunas veces se desean capturar los nombres de sistema no calicados (i.e. aquellos que no tienen un nombre de dominio) escritos en la direccin del remitente o del receptor, por o ejemplo cuando se pasa a travs de dos redes, en donde una requiere de nombres de dominio e totalmente calicados. En un relevo Internet-UUCP, los nombres de nodo no calicados
Los autores llaman a este soporte simple. Para una versin futura de smail, han anunciado un o mecanismo completo que menejar esto de manera ms eciente. a a 8 Sin embargo, el uso de rutas en Internet se desaconseja totalmente. En cambio, se deben utilizar nombres de dominio totalmente calicados.
7

14.11. Calicacin de nombre de antrin o o

238

deben ser mapeados al dominio uucp por defecto. Cualquier otro cambio de direccin o distinto a los anteriores son cuestionables. El archivo /usr/lib/smail/qualify indica a smail qu nombres de dominios debe cambiar e a qu nombres de nodo. Las l e neas del archivo qualify consisten en el nombre del sistema comenzando en la columna uno, seguidos del nombre del dominio. Las l neas conteniendo un s mbolo # como su primer caracter no blanco se consideran comentarios. Las l neas se buscan en el orden en el que aparecen. Si no existe el archivo qualify, no se hace ninguna calicacin de nombres de nodos. o Un nombre de antrin especial (*) indica que todos son nombres de nodos. As se o , puede habilitar un mapeo a todos los sistemas no mencionados antes en un dominio por defecto. Debe ser utilizado slo en la ultima l o nea. En la Cervecera Virtual, todos los sistemas han sido congurados para utilizar nombres de dominio totalmente calicados en las direcciones de los remitentes. Las direcciones de los receptores no calicadas se considera que estn en el dominio uucp, de tal forma que a slo una l o nea en el archivo qualify es necesaria.
# /usr/lib/smail/qualify, cambiado por janet el 12 Feb 1994 # * uucp

Cap tulo 15

Sendmail+IDA
15.1 Acerca del autor

Vince Skahan (vince@victrola.wa.com) ha estado administrando un gran n mero de u sistemas unix desde 1987, y actualmente hace funcionar sendmail+IDA en aproximadamente 300 estaciones de trabajo unix para unos 2000 usuarios. Admite haber perdido considerablemente el sue o editando unos cuantos cheros sendn mail.cf por la fuerza bruta antes de descubrir sendmail+IDA en 1990. Admite asimismo que aguarda ansiosamente la llegada de la primera versin en Perl de sendmail, para todav o a mayor disfrute.

15.2

Reconocimientos

Gracias a Neil Rickert y Paul Pomes por la gran cantidad de ayuda proporcionada a lo largo de los a os en lo que se reere al cuidado y mantenimiento de sendmail+IDA y a Rich n Braun por hacer el porte inicial a Linux. Las mayores gracias son de lejos para mi mujer Susan, por todo el apoyo en este y otros proyectos.

15.3

Introduccin a Sendmail+IDA o

Se dice que no se es un verdadero administrador de sistemas Unix hasta que se haya editado el archivo sendmail.cf. Se dice asimismo que se est loco si se intenta hacer dos veces. a Sendmail es un programa incre blemente potente. Y tambin, para la mayor de la e a gente, incre blemente dif de aprender y comprender. Un programa cuyo manual de refecil 239

15.4. Archivos de conguracin Preliminares o

240

rencia denitiva ocupa 792 pginas es suciente para espantar justicadamente a cualquiera. a (Sendmail, editado por OReilly and Associates) Con sendmail+IDA es distinto. Se elimina la necesidad de editar el siempre cr ptico archivo sendmail.cf, permitiendo al administrador denir la conguracin de las rutas y o direcciones particulares de una mquina espec a ca, por medio de archivos de apoyo relativamente sencillos de entender, llamados tables. Cambiar a sendmail+IDA puede ahorrarle muchas horas de trabajo y estrs. e En comparacin con los dems agentes principales de transporte de correo, es probable o a que no haya nada que no se pueda hacer ms rpida y fcilmente que con sendmail+IDA. a a a Las actividades ms comunes, necesarias para hacer funcionar sistemas Internet o UUCP a usuales, pasan a ser tareas fciles de llevar a cabo. a Conguraciones que normalmente ser extremadamente dif an ciles, son ahora simples de crear y mantener. Cuando se escribi este manual, la versin actual de sendmail5.67b+IDA1.5 estaba o o disponible por FTP annimo en vixen.cso.uiuc.edu. Esta versin compila sin parches ni o o modicaciones bajo Linux. Todos los archivos de conguracin necesarios para poder compilar, instalar y o hacer funcionar los fuentes de sendmail+IDA bajo Linux se hallan en el archivo newspak-2.2.tar.gz, disponible por FTP annimo en sunsite.unc.edu, en el directorio o /pub/Linux/system/Mail.

15.4

Archivos de conguracin Preliminares o

El sendmail tradicional se congura a travs de un archivo de conguracin de sistema e o (t picamente /etc/sendmail.cf o /usr/lib/sendmail.cf ), que no se asemeja ni de lejos a cualquier otro lenguaje que haya podido ver antes. Editar el archivo sendmail.cf para proporcionar un comportamiento personalizado puede ser una experiencia humillante. Sendmail+IDA hace que este suplicio sea algo del pasado, siendo todas las opciones de conguracin controladas por cheros con formato de listados (tables), con una sintaxis o bastante fcil de comprender. Estas opciones son conguradas mediante el procesado de a ciertos archivos de informacin, que son proporcionados con los fuentes, v Makeles que o a invocan a m4 (analizador de macros) o dbm (procesador de bases de datos). El archivo sendmail.cf dene unicamente el comportamiento por omisin del sistema. o Virtualmente, todos los ajustes especiales se hacen a travs de un n mero de tablas opcioe u nales en vez de editar directamente el archivo sendmail.cf. La gura 15.1 muestra todas las

15.5. El archivo sendmail.cf

241

tablas que utiliza sendmail. mailertable dene un comportamiento especial para nodos o dominios remotos. fuerza a UUCP a entregar el correo a los nodos que estn en a formato DNS. dene rutas de rebote UUCP a nodos o dominios remotos. cortocircuita el camino pathalias a nodos remotos bien conocidos. convierte direcciones internas a genricas visibles para el mundo e exterior. convierte direcciones genricas de/a direcciones internas vlidas. e a convierte direcciones RFC-822 a direcciones de tipo DECnet. Figura 15.1: Archivos de apoyo de sendmail.

uucpxtable

pathtable uucprelays genericfrom

xaliases decnetxtable

15.5

El archivo sendmail.cf

El archivo sendmail.cf que utiliza sendmail+IDA no se edita directamente, sino que se genera desde un archivo de conguracin m4 proporcionado por el administrador del sistema o local. De aqu en adelante, siempre nos referiremos a l simplemente como sendmail.m4. e Este archivo contiene algunas deniciones y en otros casos simplemente apunta a las tablas en donde se lleva realmente a cabo el trabajo. En general, slo es necesario especicar: o las trayectorias y nombres de archivos utilizados en el sistema local. el o los nombres de los sistemas conocidos para propsitos e-mail. o cul ser el gestor de correo por defecto deseado (y quiz tambin alg n nodo intelia a a e u 1 de correo) gente de reenv o Hay una gran variedad de parmetros que pueden ser denidos para establecer el coma portamiento del sistema local o para ir ms all del comportamiento precompilado. Estas a a opciones de conguracin se identican en el archivo ida/cf/OPTIONS del directorio fuente. o
1

N. del T.: estos nodos se conocen tambin como relevos, del ingls relay e e

15.5. El archivo sendmail.cf

242

Un archivo sendmail.m4 para una conguracin m o nima (UUCP o SMTP conando todo el correo externo a antriones inteligentes conectados directamente) puede ser tan escueto como 10 o 15 l neas de texto excluyendo los comentarios.

15.5.1

Un ejemplo del archivo sendmail.m4

A continuacin se muestra un ejemplo del archivo sendmail.m4 para vstout en la Cervecera o Virtual. vstout utiliza SMTP para hablar con todos los antriones de la red local de la Cervecera, y env todo el correo para otros destinos a moria, su nodo de reenv de a o Internet, v UUCP. a

15.5.2

Parmetros de uso comn en sendmail.m4 a u

Algunas partes del archivo sendmail.m4 son necesarias siempre; otras pueden ser ignoradas si se acepta la conguracin por defecto. Las siguientes secciones describirn cada una de o a las partes del archivo ejemplo sendmail.m4 con ms detalle. a

Partes que denen los directorios


dnl #define(LIBDIR,/usr/local/lib/mail)dnl # el directorio en donde estan # los archivos de soporte

LIBDIR dene el directorio en donde sendmail+IDA espera encontrar los archivos de conguracin, las diversas tablas dbm, y deniciones especiales de o ndole local. En una t pica distribucin ejecutable, esto est ya compilado en el ejecutable de sendmail y no es o a necesario ponerlo expl citamente en el archivo sendmail.m4. El ejemplo anterior tiene una l nea inicial dnl que signica que esta l nea es unica y esencialmente un comentario informativo. Para modicar la localizacin de los archivos de soporte a un lugar distinto, elimine el o dnl inicial de la l nea superior, y ajuste el directorio deseado, luego recompile y reinstale el archivo sendmail.cf.

Cmo denir un sistema de correo local (mailer) o


define(LOCAL_MAILER_DEF, mailers.linux)dnl # gestor de correo para entrega local

15.5. El archivo sendmail.cf

243

dnl #------------------ EJEMPLO DE UN ARCHIVO SENDMAIL.M4 --------dnl # (la cadena dnl es la forma de escribir un comentario en m4) dnl # en general usted no debera ignorar LIBDIR de las trayectorias compiladas dnl #define(LIBDIR,/usr/local/lib/mail)dnl # lugar de los arch. de soporte define(LOCAL_MAILER_DEF, mailers.linux)dnl # gestor de correo para la # entrega local define(POSTMASTERBOUNCE)dnl # el gestor de correo obtiene los rebotes define(PSEUDODOMAINS, BITNET UUCP)dnl # no intente usar DNS # en estos casos dnl #------------------------------------------------------------dnl # define(PSEUDONYMS, vstout.vbrew.com vstout.UUCP vbrew.com) dnl # los nombres seran conocidos por define(DEFAULT_HOST, vstout.vbrew.com)dnl # nuestro nombre primario, # nombre para el correo define(UUCPNAME, vstout)dnl # nuestro nombre uucp dnl # dnl #------------------------------------------------------------dnl # define(UUCPNODES, |uuname|sort|uniq)dnl # nuestros vecinos uucp define(BANGIMPLIESUUCP)dnl # aseguran que el correo define(BANGONLYUUCP)dnl # uucp sea tratado correctamente define(RELAY_HOST, moria)dnl # nuestro sistema de # relevo inteligente define(RELAY_MAILER, UUCP-A)dnl # alcanzamos moria via uucp dnl # dnl #-------------------------------------------------------------------dnl # dnl # varias tablas de busqueda dbm dnl # define(ALIASES, LIBDIR/aliases)dnl # alias del sistema define(DOMAINTABLE, LIBDIR/domaintable)dnl # distribucion de dominios # entre nodos define(PATHTABLE, LIBDIR/pathtable)dnl define(GENERICFROM, LIBDIR/generics)dnl # de direcciones define(MAILERTABLE, LIBDIR/mailertable)dnl # nodo o dominio define(UUCPXTABLE, LIBDIR/uucpxtable)dnl # que alimentamos define(UUCPRELAYS, LIBDIR/uucprelays)dnl # base de datos de trayectorias # directorio generico

# gestores de correo por

# trayectorias a los nodos

# trayectorias de cortocircuito

dnl # dnl #-------------------------------------------------------------------dnl # dnl # incluye el codigo real que hace que todo funcione dnl # (provisto con el codigo fuente) dnl # include(Sendmail.mc)dnl # LINEA INDISPENSABLE !!! dnl # dnl #------------ FIN DEL ARCHIVO EJEMPLO DE SENDMAIL.M4 -------

Figura 15.2: Un archivo muestra de sendmail.m4 para vstout.

15.5. El archivo sendmail.cf

244

La mayor parte de los sistemas operativos tienen un programa encargado de la gestin o de correo local. Los programas ms comunes para la mayor parte de las variantes de Unix a estn ya compiladas en el ejecutable de sendmail. a En Linux, es necesario denir expl citamente el gestor local de correo correspondiente, ya que, en algunas distribuciones, puede no estar incluido. Esto se lleva a cabo especicando LOCAL MAILER DEF en el chero sendmail.m4 Por ejemplo, para que el popular programa deliver 2 gestione este servicio, se debe especicar en LOCAL MAILER DEF mailers.linux. El siguiente archivo deber ser instalado como mailers.linux en el directorio al que a apunta LIBDIR. Esto dene expl citamente el programa deliver, como gestor de correo interno Mlocal; por lo que con los parmetros adecuados, sendmail se encargar de entregar a a correctamente el correo cuyo destino es el sistema local. A menos que se sea un experto de sendmail, es probable que no se desee modicar el siguiente ejemplo.
# -- /usr/local/lib/mail/mailers.linux -# (gestores de correo locales para su uso en Linux) Mlocal, P=/usr/bin/deliver, F=SlsmFDMP, S=10, R=25/10, A=deliver $u Mprog, P=/bin/sh, F=lsDFMeuP, S=10, R=10, A=sh -c $u

Hay tambin una opcin compilada por defecto para deliver en el archivo sendmail.mc e o incluida en el archivo sendmail.cf. Si se opta por ella, se debe evitar el uso del archivo mailers.linux y en cambio denir lo siguiente en el archivo sendmail.m4 :
dnl --- (en sendmail.m4) --define(LOCAL_MAILER_DEF, DELIVER)dnl

# gestor de correo para entrega local

Desafortunadamente, Sendmail.mc asume que el programa deliver est instalado en a /bin, lo cual no es el caso con Slackware 1.1.1 (que lo instala en /usr/bin). En este caso es necesario, ya sea enga arlo con un enlace simblico o recompilar deliver a partir del cdigo n o o fuente para que resida en /bin.

Gestin de correo rechazado o


define(POSTMASTERBOUNCE)dnl # el correo rechazado ira dirigido # al postmaster o administrador de correo.
deliver fue escrito por Chip Salzenberg (chip%tct@ateng.com). Es parte de varias distribuciones de Linux y se puede encontrar en los sistemas de FTP annimo ms comunes como ftp.uu.net. o a
2

15.5. El archivo sendmail.cf

245

Muchos sistemas consideran importante asegurar que el correo que se env y se recibe a tenga un 100% de abilidad. A n cuando es util que se examinen los cheros de registro u syslogd(8), en general, el administrador del correo necesitar ver las cabeceras del correo a rechazado, de tal forma que pueda determinar si el correo no fue entregado debido a un error del usuario, o a un error de conguracin en alguno de los sistemas involucrados. o La denicin de POSTMASTERBOUNCE hace que se env una copia de cada mensaje o e rechazado a la persona que ha sido denida como Postmaster para el sistema. Desafortunadamente, al denir este parmetro, tambin se incluir el texto en el mensaje a e a enviado al Postmaster, lo cual en potencia, podr inquietar a los usuarios de correo del a sistema en cuanto a su intimidad se reere. Es conveniente que los postmasters de sistema se autodisciplinen (o lo hagan por la v a de medios tcnicos a travs de programitas del shell que borren el texto de los mensajes e e rechazados que ellos reciben) a no leer el correo que no est dirigido a ellos. a

Asuntos relacionados con el servidor de nombres o Domain Name Service


define(PSEUDODOMAINS, BITNET UUCP)dnl # no intente usar DNS aqui

Hay varias redes bien conocidas que son punto de referencia com n en las direcciones u de correo por razones histricas, pero que no son vlidas a efectos DNS. El denir PSEUo a DODOMAINS evita intentos de b squeda infructuosos por parte del DNS, que siempre u resultarn fallidos. a

Cmo denir los nombres por los que se conoce al sistema local o
define(PSEUDONYMS, vstout.vbrew.com vstout.UUCP vbrew.com) dnl # nombres por los cuales se nos conoce define(DEFAULT_HOST, vstout.vbrew.com)dnl # nuestro nombre primario para el correo

Frecuentemente, los sistemas quieren ocultar su verdadera identidad, o servir como pasarelas de correo, o recibir y procesar correo dirigido a los nombres anteriores por los cuales se les conoc an. PSEUDONYMS especica la lista de todos los nombres de sistema para los cuales el sistema local aceptar el correo. a o a DEFAULT HOST especica la direccin de sistema que aparecer en los mensajes que se originan en el nodo local. Es importante que este parmetro sea ajustado a un valor a vlido o todo el correo de retorno no podr ser entregado. a a

15.5. El archivo sendmail.cf

246

Temas relacionados con UUCP


define(UUCPNAME, vstout)dnl define(UUCPNODES, |uuname|sort|uniq)dnl define(BANGIMPLIESUUCP)dnl define(BANGONLYUUCP)dnl # nuestro nombre uucp # nuestros vecinos uucp # asegurandonos que el correo # uucp sea tratado correctamente

Con frecuencia, los sistemas son conocidos por un nombre a efectos DNS y otro para propsitos de UUCP. UUCPNAME permite denir que aparezca un nombre de sistema o distinto en los encabezados del correo enviado a travs de UUCP. e UUCPNODES dene las instrucciones que proporcionan como resultado una lista con las direcciones de sistemas con los cuales se est conectado directamente a travs de conexiones a e UUCP. BANGIMPLIESUUCP y BANGONLYUUCP aseguran que el correo direccionado con la sintaxis bang de UUCP sea tratado de acuerdo con el comportamiento de UUCP en vez de utilizar el DNS, ms com n hoy en d en Internet. a u a

Sistemas de relevo y de correo


define(RELAY_HOST, moria)dnl define(RELAY_MAILER, UUCP-A)dnl # nuestro sistema de relevo inteligente # alcanzamos moria a traves de UUCP

Muchos administradores de sistema no quieren molestarse en llevar a cabo todo el trabajo necesario para asegurar que su sistema sea capaz de encontrar todas las redes (y por supuesto otros sistemas) existentes en el mundo. En lugar de hacer esto, preeren conar todo el correo saliente a otro sistema reconocido como inteligente. RELAY HOST dene el nombre UUCP del sistema vecino inteligente. RELAY MAILER dene el gestor de correo utilizado para enviar los mensajes hacia dicho sistema. Es importante hacer notar que el ajuste de esos parmetros redunda en que todo el correo a de salida ser redirigido a ese sistema remoto, lo cual afectar la carga de ese sistema. Es a a necesario asegurarse de obtener el consentimiento expl cito del Administrador de correo del sistema remoto antes de congurar el nuestro para que utilice a otro como nodo de reenv o de correo a efectos generales.

Tablas de conguracin variadas o


define(ALIASES, LIBDIR/aliases)dnl # alias del sistema

15.5. El archivo sendmail.cf

247

define(DOMAINTABLE, LIBDIR/domaintable)dnl define(PATHTABLE, LIBDIR/pathtable)dnl define(GENERICFROM, LIBDIR/generics)dnl define(MAILERTABLE, LIBDIR/mailertable)dnl define(UUCPXTABLE, LIBDIR/uucpxtable)dnl define(UUCPRELAYS, LIBDIR/uucprelays)dnl

# # # # # #

maquinas bajo el dominio base de datos de los caminos direccion generica del remitente gestores de correo por nodo o dominio caminos a los maquinas que surtimos caminos de cortocircuito

Con estas macros, se puede cambiar la localizacin donde sendmail+IDA busca las o diversas tablas dbm que denen el comportamiento real del sistema. Es aconsejable depositarlos en LIBDIR.

El archivo maestro Sendmail.mc


include(Sendmail.mc)dnl # LINEA INDISPENSABLE!!!

Los autores de sendmail+IDA proporcionan el archivo Sendmail.mc que contiene las verdaderas tripas, que sern convertidas al archivo sendmail.cf. Peridicamente, se sacan a o nuevas versiones que corrigen errores en el cdigo, o agregan funcionalidad sin necesidad de o una nueva versin y la recompilacin general de sendmail. o o Es importante no editar este archivo.

Bueno, entonces cules son las l a neas indispensables? Cuando no se estn utilizando ninguna de las tablas dbm opcionales, sendmail+IDA entrega a el correo v el gestor de correo por omisin DEFAULT MAILER (y posiblemente el sistema a o de reenv RELAY HOST y el gestor de correo de reenv RELAY MAILER) denidos en o o el archivo sendmail.m4 utilizado para generar sendmail.cf. Es posible modicar fcilmente a este comportamiento cambiando ciertas l neas en los archivos domaintable o uucpxtable. Un sistema genrico que est en Internet y se comunique por DNS, o uno que sea e e slo UUCP y env todo su correo v UUCP a travs de un RELAY HOST inteligente, o e a e probablemente no necesite de ninguna modicacin en una table espec o ca. Virtualmente todos los sistemas deber congurar el DEFAULT HOST y las macros an PSEUDONYMS, de tal modo que denan el nombre cannico de sistema, y alias, por los o que es conocido, y su DEFAULT MAILER. Si todo lo que se tiene es un nodo de reenv o y un gestor de correo de reenv no es necesario ajustar estos valores por defecto ya que o, trabajar automticamente. a a Los nodos UUCP probablemente necesiten ajustar su UUCPNAME a su nombre ocial UUCP. Tambin es probable que ajusten su RELAY MAILER y su RELAY HOST los e

15.6. Un viaje por las tablas de Sendmail+IDA

248

cuales habilitarn el encaminado de nodo inteligente a travs de un reenv de correo. El a e o transporte del correo a emplear se dene en RELAY MAILER y normalmente es UUCP-A para sistemas UUCP. Si su sistema es slo SMTP y emplea Domain Name Service o DNS, se podr cambiar o a el DEFAULT MAILER a TCP-A y probablemente borrar las l neas RELAY MAILER y RELAY HOST.

15.6

Un viaje por las tablas de Sendmail+IDA

Sendmail+IDA proporciona varias tablas que permiten modicar el comportamiento por defecto de sendmail (especicado en el archivo sendmail.m4 ) y denir un comportamiento especial para situaciones singulares, sistemas remotos y redes. Estas tablas son luego procesadas con dbm, utilizando un Makele que es parte de la distribucin. o Muchos sistemas necesitarn algunas de estas tablas, otros ninguna. Si su sistema no a precisa estas tablas, lo ms sencillo es, probablemente, crearlas con longitud cero (con la a instruccin touch) y utilizar el archivo Makele por defecto localizado en LIBDIR en lugar o de editar el Makele en s mismo.

15.6.1

mailertable

El archivo mailertable dene un tratamiento especial para mquinas espec a cas o dominios que estn basados en el nodo o nombre de la red remota. Se utiliza de forma frecuente en los a sistemas Internet para seleccionar un nodo de reenv de correo intermedio, o una pasarela o a travs de la cual alcanzar una red remota, y para especicar el protocolo en particular e (UUCP o SMTP) que se utilizar. Los sistemas UUCP por lo general no necesitan este a archivo. El orden es importante: sendmail lee el archivo desde el principio hacia el n, y procesa el mensaje de acuerdo con la primera regla que encuentra. Por tanto, lo lgico normalmente o es poner las reglas ms expl a citas al comienzo del archivo y las ms genricas al nal. a e Supongamos que se quiere redirigir todo el correo para el departamento de Ciencias de la Computacin de la Universidad Groucho Marx v UUCP a un sistema de relevo, ada. o a Para hacer eso, se debe agregar una l nea en mailertable como la siguiente:
# (in mailertable) # # redirige todo el correo para el dominio .cs.groucho.edu via UUCP a ada UUCP-A,ada .cs.groucho.edu

15.6. Un viaje por las tablas de Sendmail+IDA

249

Suponga que se quiere redirigir todo el correo al dominio ms grande groucho.edu para a que vaya a otro sistema de relevo, bighub, para la resolucin de sus direcciones y posterior o entrega. La expansin de las l o neas que van en el archivo mailertable ser la siguiente: a
# (en mailertable) # # redirige todo el UUCP-A,ada # # redirige todo el UUCP-A,bighub

correo para el dominio cs.groucho.edu via UUCP a ada .cs.groucho.edu correo para el dominio groucho.edu via UUCP a bighub .groucho.edu

Como se mencion anteriormente, el orden es importante. Invertir el orden de las dos o reglas mostradas anteriormente tendr como consecuencia que todo el correo dirigido a a .cs.groucho.edu fuese a travs del camino ms genrico bighub en vez de utilizar la e a e trayectoria expl cita ada que es la que se quiere.
# (en mailertable) # # redirige todo el correo para el dominio .groucho.edu via UUCP a bighub UUCP-A,bighub .groucho.edu # # (es imposible alcanzar la siguiente linea porque # la norma que esta arriba sera cumplida primero) UUCP-A,ada .cs.groucho.edu #

En los ejemplos de mailertable anteriores, el gestor de correo UUCP-A hace que sendmail utilice UUCP como medio de entrega con cabeceras dominizadas. La coma entre el gestor de correo y el sistema remoto indica que el mensaje se debe redirigir a ada para la resolucin de su direccin y posterior entrega. o o Las l neas que van en mailertable tienen el siguiente formato:
mailer delimitador sistema de relevo maquina o dominio

Existen diferentes gestores de correo posibles. Las diferencias radican generalmente en cmo tratarn las direcciones. Los gestores de correo t o a picos son: TCP-A (TCP/IP con direcciones estilo Internet), TCP-U (TCP/IP con direcciones estilo UUCP), y UUCP-A (UUCP con direcciones estilo Internet).

15.6. Un viaje por las tablas de Sendmail+IDA

250

El carcter que separa al gestor de correo de la porcin del nodo en la parte izquierda a o de la l nea de mailertable dene cmo ser modicada la direccin por la mailertable. Lo o a o importante aqu es que unicamente se reescribe el sobre (para obtener el correo en el sistema remoto). Reescribir cualquier otra cosa ms que el sobre es desaconsejable debido a a la alta probabilidad de arruinar la conguracin del correo. o ! Un signo nal de exclamacin elimina el nombre del nodo receptor antes o de redirigirlo al gestor de correo. Esto se puede usar cuando lo que se desea, esencialmente, es forzar al correo a entrar en un sistema remoto mal congurado. Una coma no cambia la direccin en modo alguno. El mensaje simplemente o es redirigido v el gestor de correo especicado al nodo o sistema de reenv a o especicado. Dos puntos eliminan el nombre del sistema receptor si hay sistemas intermedios entre usted y el destino. As foo!bar!joe eliminar foo, mientras que , a xyzzy!janet permanecer sin cambios. a

15.6.2

uucpxtable

Es com n que el correo dirigido a sistemas con nombres de dominio plenamente cualicau dos se entregue v formato Internet (SMTP) utilizando un servidor de DNS, o mediante a un sistema de reenv El archivo uucpxtable fuerza la entrega mediante encaminamiento o. UUCP, al convertir el nombre de formato dominio a un nombre de nodo con estilo UUCP sin formato de dominio. Esto se utiliza frecuentemente cuando se es un repetidor 3 de correo para un sistema o dominio, o cuando se desea enviar el correo a travs de un enlace UUCP directo y seguro en e lugar de arriesgarse a pasar potencialmente por muchos saltos 4 si hacemos uso del gestor de correo por omisin y cualesquiera de los sistemas intermedios y redes. o Los sistemas UUCP que se comunican con sus vecinos UUCP, que utilizan cabeceras de correo dominizadas, podr utilizar este archivo para forzar la entrega del correo, a an travs del enlace directo UUCP punto a punto entre los dos sistemas, en lugar de emplear e la ruta menos directa a travs del RELAY MAILER y el RELAY HOST o a travs del e e DEFAULT MAILER. Los sistemas Internet que no empleen UUCP probablemente no utilicen el archivo uucpxtable.
3 4

Un anlogo de lo que se entiende por repetidor en telecomunicaciones. a N. del T. Como hop o salto se entiende cada vez que atravesamos un sistema intermedio.

15.6. Un viaje por las tablas de Sendmail+IDA

251

Supongamos que usted proporciona servicio de reenv de correo a un sistema llamado o sesame.com en DNS y sesame en los mapas UUCP. Necesitar la siguiente l a nea en uucpxtable para forzar el direccionamiento del correo para ellos a travs de nuestra conexin e o UUCP directa.
#============== /usr/local/lib/mail/uucpxtable ============ # El correo enviado a joe@sesame.com se reescribe a # sesame!joe y luego se entrega via UUCP # sesame sesame.com # #----------------------------------------------------------

15.6.3

pathtable

El archivo pathtable se utiliza para denir el encaminamiento expl cito a sistemas o redes remotas. El archivo pathtable debe escribirse en orden alfabtico con una sintaxis similar al e estilo de pathalias. Los dos campos de cada l nea deben estar separados por un TAB real; si no es as dbm podr protestar. a La mayor parte de los sistemas no precisarn ninguna l a nea en pathtable.
#=============== /usr/local/lib/mail/pathtable ================ # # Este archivo tiene el estilo de pathalias en cuanto a trayectorias, # y permite encauzar el correo dirigido a los vecinos UUCP a traves de un camino # directo, de tal forma que no se tenga que hacer un rodeo hasta el # nodo inteligente, que se encarga de otro trafico. # # Es deseable que se utilicen espacios de tabulacion reales en cada linea o # m4 podria quejarse. # # Se debe encaminar el correo a traves de uno o mas sistemas intermedios # a un sistema remoto utilizando el estilo de direcciones UUCP. # sesame!ernie!%s ernie # # reenviado a un sistema UUCP vecino de un sistema Internet # alcanzable. # swim!%s@gcc.groucho.edu swim # # Lo que sigue manda todo el correo para dos redes a traves de

15.6. Un viaje por las tablas de Sendmail+IDA

252

# distintos gateways (observe el . que comienza la linea). # En este ejemplo, "uugate" y "byte" son sistemas especificos que son # utilizados como gateways de correo a los pseudo dominios .UUCP y # .BITNET respectivamente. # %s@uugate.groucho.edu .UUCP byte!%s@mail.shift.com .BITNET # #=================== fin de pathtable =======================

15.6.4

domaintable

El archivo domaintable se utiliza generalmente para forzar cierto comportamiento tras una b squeda DNS. Permite al administrador hacer disponible una lista de abreviaturas de los u nombres disponibles para sistemas o dominios a los que hagamos referencia con asiduidad, reemplazando la abreviatura con el nombre apropiado automticamente. Tambin puede a e ser utilizado para sustituir los nombres de un nodo o dominio incorrectos con la informacin o correcta. La mayor parte de los sistemas no necesitan l neas en domaintable. El siguiente ejemplo muestra cmo reemplazar una direccin personal errnea, ino o o tentndose enviar con la correcta: a
#============= /usr/local/lib/mail/domaintable ================= # # maquina_mal_configurada.dominio.correcto maquina_mal_c.dominio.erroneo # # #=================== fin de domaintable ========================

15.6.5

alias

Los alias posibilitan lo siguiente: Permiten que una abreviatura o trmino fcil de recordar act e como una direccin e a u o de correo, que remite lo recibido a una o varias personas. Invocan a un programa que tomar como entrada el mensaje. a Env correo a un archivo. an

15.6. Un viaje por las tablas de Sendmail+IDA

253

Todos los sistemas precisan alias para el Postmaster y el MAILER-DAEMON a n de cumplir con el RFC. Se debe ser extremadamente cuidadoso con respecto a la seguridad cuando se denan alias que invoquen a programas o escriban a programas ya que el sendmail generalmente se ejecuta con los permisos setuid-root. Los cambios al archivo de aliases no tienen efecto hasta que el comando
# /usr/lib/sendmail -bi

se ejecuta para construir las tablas dbm necesarias. Esto tambin puede hacerse ejecutando e el comando newaliases, normalmente mediante el comando cron. Para ms detalles concernientes a los alias de correo, se puede encontrar ms informacin a a o en la pgina man aliases(5). a
#--------------------- /usr/local/lib/mail/aliases -----------------# # muestra de tipos de alias comunes # usenet: janet # alias para una persona admin: joe,janet # alias para varias personas newspak-users: :include:/usr/lib/lists/newspak # lee los receptores de un archivo changefeed: | /usr/local/lib/gup # alias que invoca un programa complaints: /var/log/complaints # alias que escribe el # correo recibido a un archivo # # Los siguientes dos alias deben estar presentes para cumplir con el RFC. # Es importante tenerlos para asignar a una persona que lea el correo # rutinariamente. # postmaster: root # linea indispensable MAILER-DAEMON: postmaster # linea indispensable # #-------------------------------------------------------------------

15.6.6

Tablas utilizadas en raras ocasiones

Las siguientes tablas estn disponibles, pero se utilizan muy rara vez. Consulte la docua mentacin que viene con el cdigo fuente de sendmail+IDA para ms detalles. o o a

15.7. Instalacin de sendmail o

254

uucprelays

El archivo uucprelays se utiliza para corto-circuitar la trayectoria del UUCP a sistemas especialmente bien conocidos en vez de utilizar una trayectoria multi-salto o insegura generada por el procesamiento de los mapas UUCP con pathalias.

genericfrom y xaliases El archivo genericfrom oculta los nombres y direcciones de los usuarios locales del mundo exterior convirtiendo automticamente los nombres de usuaa rios locales a direcciones genricas de env no coincidentes con los nombres e o internos de usuarios. La utilidad asociada xalparse automatiza la generacin de genericfrom y el o archivo aliases de tal forma que las traducciones de los nombres del usuario de entrada y salida tengan lugar desde el archivo maestro xaliases. decnetxtable El archivo decnetxtable reescribe las direcciones con formato dominio a direcciones estilo DECnet muy similares al archivo domaintable, que se utiliza para reescribir direcciones sin dominizar a direcciones estilo SMTP con formato dominizado.

15.7

Instalacin de sendmail o

En esta seccin se ver cmo instalar una distribucin ejecutable t o a o o pica de sendmail+IDA y un recorrido por lo necesario para personalizarla y hacerla funcionar. La distribucin binaria actual de sendmail+IDA para Linux puede obtenerse de sunsio te.unc.edu en /pub/Linux/system/Mail. Incluso si se tiene una versin anterior de sendo mail es muy recomendable utilizar la versin sendmail5.67b+IDA1.5 ya que todos los paro ches espec cos para Linux estn en fuentes poco revisados, y varios e importantes agujeros a de seguridad han sido enmendados (algunos de ellos datan del primero de diciembre de 1993). Si se est compilando sendmail desde el cdigo fuente, se deben seguir las instrucciones a o que estn en los archivos README que estn incluidos en la distribucin de los fuentes. a a o El cdigo fuente actual de sendmail+IDA est disponible en vixen.cso.uiuc.edu. Pao a ra construir sendmail+IDA en Linux, tambin se necesitan los archivos de conguracin e o especiales para Linux newspak-2.2.tar.gz que estn en sunsite.unc.edu en el directorio a /pub/Linux/system/Mail. Si ten instalado anteriormente smail u otro gestor de entrega de correo, probablemente a quiera borrar o renombrar todos los cheros pertenecientes a smail para mayor seguridad.

15.7. Instalacin de sendmail o

255

15.7.1

Desempaquetado de la distribucin ejecutable o

Lo primero es desempaquetar el archivo comprimido en alg n lugar seguro: u


$ gunzip -c sendmail5.65b+IDA1.5+mailx5.3b.tgz | tar xvf -

Si se tiene un tar moderno, por ejemplo de una distribuicin de Slackware reciente, o probablemente baste con un tar -zxvf fichero .tgz y se obtendrn los mismos resultados. a Al despempaquetar el archivo se genera un directorio llamado sendmail5.65b+IDA1.5+mailx5.3b. En este directorio encontrar la instalacin completa a o de sendmail+IDA ms un programa binario del agente para usuario mailx. Todos los a directorios donde se encuentran los archivos reejan la ubicacin donde deben ser instalados o stos, as que es ms seguro utilizar la aplicacin tar para moverlos a otra parte: e a o
# cd sendmail5.65b+IDA1.5+mailx5.3b # tar cf - . | (cd /; tar xvvpoof -)

15.7.2

Elaboracin del chero sendmail.cf o

Para elaborar un chero sendmail.cf personalizado para su sistema, se ha de escribir un chero sendmail.m4, y procesarlo posteriormente con m4. En /usr/local/lib/mail/CF puede encontrar un archivo de ejemplo llamado sample.m4. Cpielo a nombredesusistema .m4, y ed o telo a n de que reeje la situacin de su sistema. o El chero de ejemplo est congurado para un sistema slo UUCP con cabeceras domia o nizadas y que se comunica con un sistema inteligente. Los sistemas como ste precisan de e pocas variaciones. En esta seccin se se alaran las macros a cambiar. Si quiere tener una descripcin o n o completa de lo que hacen, dir jase a la seccin anterior, Discusin del chero sendmail.m4 . o o LOCAL MAILER DEF Dene el chero que especica los agentes de correo para gestin local. Vea o la seccin previa Denicin del gestor local de correo para saber de qu va. o o e PSEUDONYMS Especica todos los nombres por los que es conocido su sistema. DEFAULT HOST Escriba su nomenclatura de dominio plenamente cualicado. Este nombre aparecer como su nombre de sistema en todo el correo saliente. a

15.7. Instalacin de sendmail o

256

UUCPNAME Ponga su nombre de sistema sin cualicar. RELAY HOST y RELAY MAILER Si se comunica mediante UUCP con un sistema inteligente, dena RELAY HOST como el nombre UUCP del repetidor inteligente de su vecino UUCP. Haga uso del gestor de correo UUCP-A si desea que las cabeceras de sus mensajes contengan su dominio. DEFAULT MAILER Si est conectado a Internet y se comunica mediante DNS, deber denir a a esto como TCP-A. Esto le dice a sendmail que emplee TCP-A como gestor de correo, que entregar el correo via SMTP haciendo uso del estilo a RFC normal en las direcciones de los receptores de correo. Los sistemas conectados permanentemente a Internet probablemente no precisen denir RELAY HOST o RELAY MAILER. Para crear el chero sendmail.cf, ejecutar la orden
# make nombredesusistema .cf

Esto procesa el chero nombredesusistema y crea el chero nombredesusistema .cf a partir de l. e Lo prximo ser comprobar si el chero que acaba de crear hace lo que se espera de l o a e o no. Esto se explica en las prximas dos secciones. o Una vez se est contento con su comportamiento, cpielo en su sitio con el comando: a o
# cp nombredesusistema .cf /etc/sendmail.cf

Llegados a este punto, su sistema sendmail est listo para funcionar. Escriba la siguiente a l nea en el chero de arranque adecuado (generalmente /etc/rc.inet2 ). Puede ejecutarlo a mano para que empiece a funcionar en este momento.
# /usr/lib/sendmail -bd -q1h

15.7.3

Comprobando el chero sendmail.cf

Para hacer que sendmail funcione en modo test, ha de ejecutarlo con la opcin -bt. La o conguracin por defecto es el chero sendmail.cf que est instalado en el sistema. Puede o e probar un chero de conguracin alternativo mediante la opcin -Cfichero alternativo . o o

15.7. Instalacin de sendmail o

257

En los siguientes ejemplos, probamos vstout.cf, el chero de conguracin generado a o partir del chero vstout.m4 que puede ser examinado en la gura 15.2.
# /usr/lib/sendmail -bt -Cvstout.cf ADDRESS TEST MODE Enter <ruleset> <address> [Note: No initial ruleset 3 call] >

Las siguientes comprobaciones aseguran que sendmail es capaz de gestionar el correo de todos los usuarios del sistema. En todos los casos, el resultado de la comprobacin o deber ser el mismo, y apuntar al nombre del sistema local como el gestor de correo en a LOCAL. Comprobemos primero cmo se gestionar el env a un usuario local: o a o

# /usr/lib/sendmail -bt -Cvstout.cf ADDRESS TEST MODE Enter <ruleset> <address> [Note: No initial ruleset 3 call] > 3,0 me rewrite: ruleset 3 input: me rewrite: ruleset 7 input: me rewrite: ruleset 9 input: me rewrite: ruleset 9 returns: < me > rewrite: ruleset 7 returns: < > , me rewrite: ruleset 3 returns: < > , me rewrite: ruleset 0 input: < > , me rewrite: ruleset 8 input: < > , me rewrite: ruleset 20 input: < > , me rewrite: ruleset 20 returns: < > , @ vstout . vbrew . com rewrite: ruleset 8 returns: < > , @ vstout . vbrew . com rewrite: ruleset 26 input: < > , @ vstout . vbrew . com rewrite: ruleset 26 returns: $# LOCAL $@ vstout . vbrew . rewrite: ruleset 0 returns: $# LOCAL $@ vstout . vbrew .

, me , me , me com $: me com $: me

El resultado muestra cmo sendmail procesa las direcciones internamente. Esto es llevao do a cabo por varias rulesets que las analizan, llaman a otras involucradas, y descomponen la direccin en sus componentes. o En nuestro ejemplo, le pasamos la direccin me a las rulesets 3 y 0 (esto es lo que o signica el trmino 3,0 introducido antes de la direccin). e o

15.7. Instalacin de sendmail o

258

La ultima l nea muestra la direccin interpretada tal y como la devuelve la ruleset 0, que o contiene el gestor de correo al que se le encomendar el mensaje, y la mquina y usuario a a proporcionados al mismo. A continuacin, comprobaremos el env de correo a un usuario de nuestro sistema con o o sintaxis UUCP.

# /usr/lib/sendmail -bt -Cvstout.cf ADDRESS TEST MODE Enter <ruleset> <address> [Note: No initial ruleset 3 call] > 3,0 vstout!me rewrite: ruleset 3 input: vstout ! me [...] rewrite: ruleset 0 returns: $# LOCAL $@ vstout . vbrew . com >

$: me

A continuacin, comprobamos el correo dirigido a un usuario de nuestro sistema con o sintaxis Internet, a nuestro nombre de sistema plenamente cualicado (FQDN)

# /usr/lib/sendmail -bt -Cvstout.cf ADDRESS TEST MODE Enter <ruleset> <address> [Note: No initial ruleset 3 call] > 3,0 me@vstout.vbrew.com rewrite: ruleset 3 input: me @ vstout . vbrew . com [...] rewrite: ruleset 0 returns: $# LOCAL $@ vstout . vbrew . com $: me >

Deber repetir los anteriores dos pasos con cada uno de los nombres especicados como a parmetros PSEUDONYMS y DEFAULT NAME del chero sendmail.m4. a Por ultimo, comprobar que puede enviar correo a su nodo de reenv o.

# /usr/lib/sendmail -bt -Cvstout.cf ADDRESS TEST MODE Enter <ruleset> <address>

15.7. Instalacin de sendmail o

259

[Note: No initial ruleset 3 call] > 3,0 fred@moria.com rewrite: ruleset 3 input: fred @ moria . com rewrite: ruleset 7 input: fred @ moria . com rewrite: ruleset 9 input: fred @ moria . com rewrite: ruleset 9 returns: < fred > @ moria . com rewrite: ruleset 7 returns: < @ moria . com > , fred rewrite: ruleset 3 returns: < @ moria . com > , fred rewrite: ruleset 0 input: < @ moria . com > , fred rewrite: ruleset 8 input: < @ moria . com > , fred rewrite: ruleset 8 returns: < @ moria . com > , fred rewrite: ruleset 29 input: < @ moria . com > , fred rewrite: ruleset 29 returns: < @ moria . com > , fred rewrite: ruleset 26 input: < @ moria . com > , fred rewrite: ruleset 25 input: < @ moria . com > , fred rewrite: ruleset 25 returns: < @ moria . com > , fred rewrite: ruleset 4 input: < @ moria . com > , fred rewrite: ruleset 4 returns: fred @ moria . com rewrite: ruleset 26 returns: < @ moria . com > , fred rewrite: ruleset 0 returns: $# UUCP-A $@ moria $: < @ moria . com > , fred >

15.7.4

Integracin global - Prueba de integracin del chero sendmail.cf o o y las tablas.

Llegados a este punto, ya ha vericado que el sistema de correo tendr el comportamiento a por defecto deseado, y que ser capaz tanto de enviar como de recibir correo con direccin a o vlida. Para terminar la instalacin, puede ser necesario crear las tablas dbm apropiadas a o para conseguir nalmente los resultados deseados. Tras crear las tablas necesarias para su sistema, deber procesarlas a travs de dbm a e mediante la ejecucin de la orden make en el directorio que contenga las tablas. o Si su sistema es slo UUCP, no necesita crear ninguna de las tablas mencionadas en el o chero README.linux. Slo tendr que modicar los cheros de tal modo que funcione el o a Makele. Si su sistema es slo UUCP y habla con ms sistemas adems de su nodo de reenv o a a o inteligente, necesitar a adir entradas uucpxtable para cada uno (o el correo destinado a a n ellos se encaminar tambin a travs del nodo inteligente) y ejecutar dbm sobre el recin a e e e modicado chero uucpxtable. Para empezar, necesita asegurarse de que el correo que ha de pasar por su RELAY HOST

15.7. Instalacin de sendmail o

260

se env mediante el RELAY MAILER. a

# /usr/lib/sendmail -bt -Cvstout.cf ADDRESS TEST MODE Enter <ruleset> <address> [Note: No initial ruleset 3 call] > 3,0 fred@sesame.com rewrite: ruleset 3 input: fred @ sesame . com rewrite: ruleset 7 input: fred @ sesame . com rewrite: ruleset 9 input: fred @ sesame . com rewrite: ruleset 9 returns: < fred > @ sesame . com rewrite: ruleset 7 returns: < @ sesame . com > , fred rewrite: ruleset 3 returns: < @ sesame . com > , fred rewrite: ruleset 0 input: < @ sesame . com > , fred rewrite: ruleset 8 input: < @ sesame . com > , fred rewrite: ruleset 8 returns: < @ sesame . com > , fred rewrite: ruleset 29 input: < @ sesame . com > , fred rewrite: ruleset 29 returns: < @ sesame . com > , fred rewrite: ruleset 26 input: < @ sesame . com > , fred rewrite: ruleset 25 input: < @ sesame . com > , fred rewrite: ruleset 25 returns: < @ sesame . com > , fred rewrite: ruleset 4 input: < @ sesame . com > , fred rewrite: ruleset 4 returns: fred @ sesame . com rewrite: ruleset 26 returns: < @ sesame . com > , fred rewrite: ruleset 0 returns: $# UUCP-A $@ moria $: < @ sesame . com > , fred >

Si tiene ms vecinos UUCP, adems de su RELAY HOST, necesita asegurarse de que a a el correo para ellos experimenta un procesamiento adecuado. El correo con direcciones de sintaxis tipo UUCP dirigido a otro sistema con el que se comunique tambin mediante e UUCP, ir a ellos directamente (a menos de que lo impida expl a citamente mediante una entrada domaintable). Asumimos que el sistema swim es un vecino UUCP directo para nosotros. Pasar a sendmail un mensaje swim!fred deber producir el siguiente resultado: a

# /usr/lib/sendmail -bt -Cvstout.cf ADDRESS TEST MODE Enter <ruleset> <address> [Note: No initial ruleset 3 call] > 3,0 swim!fred rewrite: ruleset 3 input: swim ! fred [...lines omitted...] rewrite: ruleset 0 returns: $# UUCP $@ swim $: < > , fred

15.8. Trucos y trivialidades sobre administracin de correo o

261

>

Si tiene entradas uucpxtable para forzar la gestin de correo UUCP a ciertos vecinos o UUCP que env su correo con cabeceras dominizadas tipo Internet, tamb tiene que an en vericarlo.

# /usr/lib/sendmail -bt -Cvstout.cf ADDRESS TEST MODE Enter <ruleset> <address> [Note: No initial ruleset 3 call] > 3,0 dude@swim.2birds.com rewrite: ruleset 3 input: dude @ swim . 2birds . com [...lines omitted...] rewrite: ruleset 0 returns: $# UUCP $@ swim . 2birds $: < > , dude >

15.8

Trucos y trivialidades sobre administracin de correo o

Ahora que ya se ha discutido la teor sobre conguracin, instalacin y comprobacin de a o o o un sistema sendmail+IDA, dediquemos unos instantes al anlisis de las cosas que suceden a rutinariamente en la vida de un administrador de correo. Los sistemas remotos fallan a veces. Los modems o l neas telefnicas fallan o las denio ciones DNS son elaboradas incorrectamente debido a un error humano. En estos casos, los administradores de correo han de saber cmo reaccionar de forma rpida, efectiva y segura o a para mantener el trco del correo a travs de rutas alternativas hasta que los sistemas a e remotos o los proveedores de acceso puedan restablecer sus servicios habituales. El resto de este cap tulo pretende proporcionarle soluciones para las emergencias con el correo electrnico ms frecuentes. o a

15.8.1

Reenv de correo a un sistema inteligente o

Para redirigir el correo para un sistema o dominio particular hacia el sistema de reenv o inteligente designado, se emplear normalmente el chero mailertable. a Por ejemplo, para redirigir el correo para backwood.org a su sistema de pasarela UUCP backdoor, tendr que poner la siguiente entrada en mailertable: a

15.8. Trucos y trivialidades sobre administracin de correo o

262

UUCP-A,backdoor

backwood.org

15.8.2

Env de correo a Sistemas Remotos mal congurados o

Los sistemas Internet tendrn frecuentemente problemas a la hora de hacer entrar el correo a en sistemas mal congurados. Existen varios casos, pero el s ntoma general es que el correo es devuelto por el sistema remoto o que nunca lo alcanza. Estos problemas pueden colocar al administrador local del sistema en una situacin o cr tica, ya que sus usuarios generalmente no tienen en cuenta que usted no administra todos los sistemas a lo largo y ancho del mundo (o que usted no sepa cmo hacer que el o administrador remoto solucione el problema). Ellos tan slo sabrn que su correo no lleg al o a o destinatario deseado en el otro extremo, y usted ser la persona ms cercana a la que pedir a a responsabilidades. La conguracin de un sistema remoto es problema de sus administradores, no de uso ted. En cualquier caso, aseg rese de no estropear la conguracin de su sistema a n de u o comunicarse con un sistema remoto mal congurado. Si no puede ponerse en contacto con el administrador (Postmaster ) del sistema remoto a n de que arreglen su conguracin lo o antes posible, tiene dos opciones: Generalmente es posible forzar el correo hacia el interior del sistema remoto con xito, e aunque el sistema remoto est mal congurado; las respuestas provenientes del otro e extremo posiblemente no funcionen. . . pero ese es problema del administrador remoto. Puede corregir las cabeceras errneas de sus destinatarios de correo saliente simpleo mente usando una entrada domaintable para su sistema/dominio, lo que redundar en a que la informacin no vlida sea corregida en el correo originado desde su sistema: o a
descerebrado.dominio.correcto.com descerebrado.dominio.erroneo.com

Los sistemas mal congurados devuelven con frecuencia el correo al sistema que lo origin, argumentando que este correo no es para este sistema ya que no tienen o debidamente congurado su PSEUDONYMNS o equivalente. Es posible quitar toda informacin relativa al nombre y dominio del sistema en los destinatarios de correo o saliente de nuestro sistema hacia ellos. El ! de la siguiente mailertable gestiona el correo hacia su sistema remoto
TCP!descerebrados.dominio.correcto.com descerebrados.dominio.erroneo.com

No obstante, y aunque se consiga que el correo entre en su sistema, no hay garant de as que ellos puedan responder a nuestros mensajes (su sistema est mal congurado, recurdea e

15.8. Trucos y trivialidades sobre administracin de correo o

263

lo. . . ) pero para entonces sus usuarios estarn quejndose a sus administradores, que es a a mejor que los suyos se enfaden con usted.

15.8.3

Env Forzado de correo a travs de UUCP o e

En un mundo ideal (desde la perspectiva Internet), todas las mquinas tendrn registro a a en el Servicio de Nombres de Dominio (DNS) y env su correo con nombres de dominio an plenamente cualicados. Si se da la circunstancia de que se comunica v UUCP con un sistema de estas caraca ter sticas, puede forzar el correo a ser enviado directamente a travs de la conexin puntoe o a-punto UUCP en lugar de hacerlo a travs de su gestor de correo habitual, esencialmente e desdominizando su nombre de sistema mediante el chero uucpxtable. Para forzar el env de correo a la mquina sesame.com, deber poner lo siguiente en o a a el chero uucpxtable:
# desdominizamos sesame.com para forzar el envio UUCP sesame sesame.com

El resultado es que sendmail determinar entonces (a travs de UUCPNODES del chero a e sendmail.m4 ) que se est conectado directamente al sistema remoto, y encolar el correo a a saliente para ser enviado v UUCP. a

15.8.4

Prevencin de que el correo sea enviado v UUCP o a

La condicin contraria tambin se da. Con frecuencia, los sistemas tienen cierto n mero de o e u conexiones UUCP que rara vez se emplean o que no siempre son tan ables, o que no estn a tan disponibles como el gestor de correo por defecto o el sistema de reenv o. Por ejemplo, en el area de Seattle hay varios sistemas que intercambian las distintas distribuciones Linux v UUCP annimo conforme se van liberando las distribuciones. Estos a o sistemas se comunican mediante UUCP slo cuando es necesario, por lo que es generalmente o ms rpido y able enviar el correo a travs de m ltiples saltos muy ables y nodos de a a e u reenv (que siempre estn disponibles). o a Se puede evitar fcilmente el env directo de correo a una mquina a la que se est dia o a a rectamente conectado. Si el sistema remoto posee un nombre de dominio plenamente cualicado, se puede a adir una entrada como sta en el chero domaintable: n e
# Evitamos que se envie el correo via UUCP a un sistema vecino snorkel.com snorkel

15.8. Trucos y trivialidades sobre administracin de correo o

264

Esto reemplazar cualquier aparicin del nombre UUCP con el nombre FQDN, impidiena o do por tanto cualquier concordancia con la l nea UUCPNODES del chero sendmail.m4. El resultado es, generalmente, que el correo se enviar v RELAY MAILER y RELAY HOST a a (o DEFAULT MAILER).

15.8.5

Procesado de la cola de correo a voluntad

Para procesar los mensajes de la cola de correo saliente inmediatamente, no hay ms que a 5 . Esto llamar a sendmail con las opciones apropiadas para hacer teclear /usr/lib/runq a que procese inmediatamente la cola de procesos pendientes en lugar de esperar al prximo o procesamiento programado.

15.8.6

Informe sobre las estad sticas de correo

Muchos administradores de sistema (y las personas para las que trabajan) estn interesados a en el volumen de correo que es enviado, recibido o que pasa a travs de nuestro sistema. e Hay varios mtodos de cuanticar el trco de correo. e a El paquete sendmail incorpora una utilidad llamada mailstats que lee un chero llamado /usr/local/lib/mail/sendmail.st 6 e informa sobre el n mero de mensajes y bytes u transferidos por cada uno de los gestores de correo que se empleen y que aparezcan en el chero sendmail.st. Este chero debe ser creado manualmente por el administrador local para que el registro tenga lugar por parte de sendmail. Los totales se reinicializan borrando y volviendo a crear el chero sendmail.st. Un mtodo para hacer esto e es el siguiente;
# cp /dev/null /usr/lib/local/mail/sendmail.st

Probablemente la mejor forma de obtener informes de calidad acerca de quin usa e el correo y la cantidad de volumen que pasa hacia, por, y a travs del sistema local e sea activar el depurado de correo (debugging) mediante el uso de syslogd(8). Esto generalmente conlleva el tener que arrancar el demonio syslogd desde su chero de inicializacin del sistema (de todos modos lo deber estar haciendo), y a adir una o a n l nea al chero /etc/syslog.conf(5) que tiene el siguiente aspecto:
mail.debug
5 6

/var/log/syslog.mail

La llamada a sendmail con el parmetro -q tiene idnticos efectos (sendmail -q) a e N. del T.: En ciertas distribuciones actuales, como por ejemplo RedHat, la localizacin es o /var/log/sendmail.st; esto depender de la losof de la distribucin que emplee; el LFS (Linux Filesystem a a o Standards, anterior FSSTND) al ser un chero de log o de registro, recomienda el directorio /var/log

15.9. Integracin y puesta a punto de Distribuciones Ejecutables o

265

Si emplea mail.debug, y recibe un volumen de correo medio/alto, el resultado proporcionado por syslog puede hacerse bastante grande. Los cheros de registro generados por syslogd necesitan generalmente ser purgados rutinariamente por crond(8). Existen cierto n mero de utilidades disponibles com nmente que pueden resumir el u u resultado del registro de correo procedente de syslogd. Una de las ms conocidas es a syslog-stat.pl, un script en Perl que se distribuye con los fuentes de sendmail+IDA.

15.9

Integracin y puesta a punto de Distribuciones Ejecuo tables

A pesar de que el Estndar de Sistema de Ficheros de Linux est en desarrollo, todav no a a a est ni terminado ni aceptado universalmente. Mi intencin aqu es mostrar que todav a o a 7 un estndar, y proporcionar una idea de cules son los lugares donde aparecen no somos a a problemas con mayor frecuencia No existe ninguna conguracin autnticamente estndar del transporte de correo o e a electrnico y sus agentes, as como no hay una nica estructura de directorios. o u De acuerdo con esto, es necesario asegurarse de que todas las distintas partes del sistema (USENET news, mail, TCP/IP) estn de acuerdo con la localizacin del gestor de correo a o local (lmail, deliver, etc.), el gestor de correo remoto (rmail), y el programa de transporte de correo (sendmail o smail). Estas suposiciones generalmente no estn documentadas; no a obstante, el uso del comando strings puede ayudarnos a determinar qu cheros y directorios e son los esperados. A continuacin vienen algunos problemas que hemos observado en el o pasado con algunas de las distribuciones ejecutables y fuentes disponibles com nmente u para Linux. Algunas versiones de la distribucin de NET-2 de TCP/IP tienen servicios denidos o para un programa llamado umail en lugar de para sendmail. Existen varios portes de elm y mailx que buscan al gestor de correo (env o) /usr/bin/smail en lugar de a sendmail. Sendmail+IDA tiene un gestor de correo local interno para deliver, pero espera que est en /bin en lugar de la localizacin ms t e o a pica en Linux /usr/bin. En lugar de pasar por la trabajosa tarea de compilar todos los clientes de correo a partir de sus fuentes, generalmente los enga aremos con los enlaces simblicos apropiados. n o
N. del T.: Esto ha cambiado desde que esta gu fue escrita, el LFS (Linux Filesystem Standards) o a anterior FSSTND est en v de ser aceptado, si es que no lo est ya. a as a
7

15.10. Dnde obtener ms informacin o a o

266

15.10

Dnde obtener ms informacin o a o

Existen muchos lugares donde buscar ms informacin sobre sendmail. Si se quiere un a o listado completo, vea el Linux MAIL Howto, que se env regularmente a comp.answers. a Tambin est disponible por FTP en rtfm.mit.edu. De todos modos, el lugar denitivo e a son los fuentes de sendmail+IDA. Busque en el directorio ida/cf que cuelga del directorio de los fuentes, los cheros DBM-GUIDE, OPTIONS, y Sendmail.mc.

Cap tulo 16

Netnews
16.1 Historia de Usenet

La idea de las noticias en red naci en 1979, cuando dos estudiantes de graduado, Tom o Truscott y Jim Ellis, pensaron en usar UUCP para conectar ordenadores con el propsito o de intercambiar informacin entre usuarios de un x. Instalaron una peque a red de tres o n ordenadores en Carolina del Norte. Inicialmente el trco de informacin era manejado por cierto n mero de shell scripts a o u (ms tarde reescritos en C), pero que nunca fueron hechos p blicos. Fueron rpidamente a u a reemplazados por A news, la primera edicin p blica de programas para news. o u A news no estaba dise ado para manejar ms que unos pocos art n a culos por grupo y d Cuando el volumen de informacin continu creciendo, fue reescrito por Mark Horton a. o o y Matt Glickman, quienes lo denominaron la versin B (tambin conocido como Bnews). o e El primer lanzamiento p blico de Bnews fue la versin 2.1, en 1982. Se fue expandiendo u o continuamente, conforme se le a ad nuevas prestaciones. La versin actual es Bnews 2.11. n an o Poco a poco se va quedando obsoleta, habindose pasado a INN su ultimo mantenedor ocial. e Geo Collyer y Henry Spencer reescribieron y lanzaron en 1987 otra nueva versin, o conocida como versin C o Cnews. En el tiempo transcurrido desde entonces ha habido o algunos parches para Cnews, siendo el ms notable de ellos la Cnews Performance Release. a En sistemas que transportan un gran n mero de grupos, el consumo de recursos producido u al ejecutar frecuentemente relaynews (el programa encargado de procesar los art culos) es bastante signicativo. La Performance Release a ade una opcin que permite ejecutar n o relaynews en modo daemon, es decir, ejecutndose como tarea de fondo. a La Performance Release es la versin de Cnews que se incluye en la mayor de las o a distribuciones de Linux actuales. 267

16.2. Qu es, en denitiva, Usenet? e

268

Todas las versiones hasta la C estn principalmente dise adas para utilizarse en redes a n UUCP, aunque igualmente pueden utilizarse en otros entornos. La transferencia eciente de noticias sobre redes tipo TCP/IP, DECNet o similares, requiere otro planteamiento. Esta es la razn por la que en 1986 se introdujo el Network News Transfer Protocol (NNTP) o o Protocolo de Transferencia de Noticias a travs de la Red. Este protocolo est basado en e a conexiones de red, y especica cierto n mero de comandos para transferir los art u culos de forma interactiva. Hay bastantes aplicaciones basadas en el NNTP disponibles en la Red. Una de ellas es el paquete nntpd, de Brian Barber y Phil Lapsley, que puede usarse, entre otras cosas, para proporcionar un servicio de lectura de noticias a distintos nodos de una red local. nntpd fue dise ado para complementarse con Bnews o Cnews y darles prestaciones NNTP. n Otra aplicacin NNTP diferente es INN, o Internet News. No es simplemente un interfaz, o sino un sistema de noticias por derecho propio. Consta de un sosticado demonio de noticias que es capaz de mantener varias conexiones NNTP simultneas, y es por lo tanto, el software a elegido por muchos servidores en Internet.

16.2

Qu es, en denitiva, Usenet? e

Una de las cosas ms asombrosas de Usenet es que no forma parte de ninguna organizacin, a o ni tiene ninguna clase de autoridad central. De hecho, parte del saber popular de Usenet consiste en que excepto por una descripcin tcnica, no se puede denir qu es, tan slo o e e o qu no es. Si tiene Vd. a mano el excelente Zen and the Art of the Internet (disponible e en Internet o a travs de Prentice-Hall, ver [Kehoe92]), de Brendan Kehoe, encontrar una e a sorprendente lista de impropiedades de Usenet. A riesgo de sonar tonto, podr denirse Usenet como la colaboracin de servidores a o separados que intercambian noticias de Usenet. Para ser un servidor en Usenet, todo lo que hay que hacer es encontrar otro servidor Usenet y llegar a un acuerdo con sus propietarios y administradores para intercambiar noticias con ellos. Proporcionar art culos a otro servidor se denomina tambin alimentacin o feeding, de dnde se origina otro axioma com n de e o o u Usenet: Consigue alguien que te pase las noticias, y ya eres parte de Usenet. La unidad fundamental de las noticias de Usenet es el art culo. Es un mensaje que un usuario escribe y publica en la red. Para posibilitar que los sistemas de noticias lo manejen, est precedido de informacin administrativa, conocida como cabecera del art a o culo. Es muy similar a la cabecera utilizada para el correo que se describe en el estndar RFC 822, a y como sta, consiste en varias l e neas de texto, cada una de las cuales comienza con el nombre de un campo terminado en dos puntos, siguiendo despus el valor de dicho campo. 1 e
1

El formato de los mensajes de noticias de Usenet se especica en la RFC 1036, Standard for interchange

16.3. Cmo maneja Usenet las noticias? o

269

Los art culos son enviados a uno o ms grupos de noticias. Podr considerarse a a an los grupos como foros para art culos relativos a una misma temtica. Todos los grupos a estn organizados en una jerarqu en la cual el nombre de cada grupo indica su lugar en a a, la misma. Esto a menudo hace ms fcil ver sobre qu versa un grupo de noticias. Por a a e ejemplo, todo el mundo puede deducir por el nombre que comp.os.linux.announce se usa para anuncios relativos a un sistema operativo para computadoras llamado Linux. Estos art culos son intercambiados entre todos los servidores de Usenet a los que interese tener noticias de este grupo. Cuando dos servidores acuerdan intercambiar noticias, son libres de intercambiar cualquier grupo que deseen, y pueden incluso a adir sus pron pias jerarqu locales. Por ejemplo, groucho.edu puede tener un enlace de noticias con as barnyard.edu, un gran servidor de noticias, y varios enlaces con servidores menores a los que alimenta con noticias. El Colegio Barnyard puede recibir todos los grupos de Usenet, mientras que la UGM slo quiere algunas jerarqu mayores como sci, comp, rec, etc. o as Algunos servidores situados ms abajo en esta cadena, digamos un servidor UUCP llamaa do brewhq, querrn incluso menos grupos, ya que no tendrn los sucientes recursos de a a hardware o de red. Por otro lado, brewhq puede querer recibir grupos de la jerarqu fj a que la UGM no tiene. Por lo tanto, mantiene otro enlace con gargleblaster.com, quien tiene todos los grupos fj y se los pasa a brewhq. El ujo de noticias se muestra en la gura 16.1. Las etiquetas en las echas que parten de brewhq pueden requerir ciertas explicaciones. Por defecto, brewhq quiere que todas las noticias generadas localmente sean enviadas a groucho.edu. Sin embargo, ya que groucho.edu no lleva los grupos fj, no hay razn para o enviar ning n art u culo de estos grupos. Por tanto, la alimentacin de brewhq a la UGM o est etiquetada all,!fj, lo que signica que se env todos los grupos excepto los fj. a an

16.3

Cmo maneja Usenet las noticias? o

Hoy en d Usenet ha crecido hasta alcanzar dimensiones enormes. Los servidores que a, llevan la totalidad de los grupos suelen tener que transferir unos sesenta megabytes por d 2 Por supuesto esto requiere mucho ms que enredar con unos cuantos cheros. Veamos a. a cmo se las apa an la mayor de sistemas un x para manejar las noticias. o n a Las noticias se distribuyen por la red de varias formas. El medio histrico sol ser o a UUCP, pero hoy en d el caudal principal es llevado por servidores permanentemente a conectados a Internet. El algoritmo para encaminar se denomina inundacin: cada servidor o mantiene cierto n mero de enlaces con otros servidores. Cualquier art u culo generado o
of USENET messages. 2 Un momento: 60 Mb a 9600 bps, o sea, 60 millones por 1200, eso es. . . murmullo, murmullo,. . . Eh! Son 34 horas!

16.3. Cmo maneja Usenet las noticias? o

270

Usenet

barnyard.edu

gargleblaster.com

all

comp,sci, rec

fj

fj

groucho.edu

all,!fj

brewhq

comp.os, comp.periphs

Figura 16.1: Flujo de noticias a travs de la Universidad Groucho Marx e recibido por el sistema local de noticias es enviado a estos servidores, a no ser que ya haya pasado por ellos. Se puede saber por qu servidores ha pasado un art e culo mirando el campo Path: de la cabecera. Este campo contiene una lista con todos los sistemas por los que el art culo ha pasado, separados por un signo de admiracin. o Para distinguir entre los art culos y reconocer los duplicados, los art culos de Usenet llevan un identicativo (especicado en el campo Message-Id: de la cabecera) que combina el nombre del servidor donde se public y un n mero de serie <num-serie@servidor>. o u Cada vez que se procesa un art culo, el sistema de noticias registra su identicativo en un chero (generalmente llamado history) con el que despus se coteja cualquier nuevo art e culo. El ujo entre dos servidores puede ser limitado por dos criterios: por un lado, al art culo se le asigna una distribucin (campo Distribution: de la cabecera) que puede ser usada o para connarlo a cierto grupo de servidores. Por otro lado, los grupos de noticias intercambiados pueden limitarse tanto en el sistema emisor como en el receptor. El conjunto de grupos y distribuciones que se permite transmitir a un sistema se suelen especicar en el chero sys. Debido al gran n mero de art u culos, habitualmente se necesita mejorar el esquema anterior. En las redes UUCP, lo natural es recoger los art culos durante un cierto per odo de tiempo y combinarlos en un solo chero, que posteriormente es comprimido y enviado a un

16.3. Cmo maneja Usenet las noticias? o

271

sistema remoto. Esto se llama batching. 3 Una tcnica alternativa es la del protocolo ihave/sendme (tengo/envame) que evita e que los duplicados sean enviados en primer lugar, ahorrando ancho de banda. En vez de empaquetar todos los art culos en cheros y enviarlos, slo se env los identicativos de los o an mensajes en un gigantesco mensaje ihave. El sistema remoto lee el mensaje, lo compara con su chero histrico (history), y env un mensaje sendme con la lista de art o a culos que quiere. De este modo, slo se enviarn estos art o a culos. Por supuesto, el protocolo ihave/sendme slo tiene sentido si ata e a dos grandes sisteo n mas que reciben noticias desde varios sitios independientes, y que se intercambian art culos entre s con la suciente frecuencia como para mantener un ujo de noticias eciente. Los sevidores conectados a Internet generalmente se basan en programas bajo TCP/IP que usan el protocolo NNTP4 , mencionado anteriormente. Con este protocolo se transeren art culos entre servidores y se da acceso a Usenet a usuarios individuales en sistemas remotos. NNTP contempla tres formas diferentes de transferir las noticias. Una es una versin o en tiempo real de ihave/sendme, tambin conocida como empujar las noticias. La segunda e tcnica se denomina tirar de las noticias. El cliente solicita una lista de art e culos de un grupo o jerarqu determinado que ha llegado al servidor despus de una fecha especicada, a e y elige los que no puede encontrar en su chero histrico. La tercera forma es para lectura o interactiva, y permite al lector escoger art culos de grupos especicados, as como publicar art culos con cabeceras incompletas. En cada sistema, las noticias se guardan en una estructura de directorios bajo /var/spool/news, cada art culo en un chero separado, y cada grupo en un directorio separado. El nombre del directorio se crea a partir del nombre del grupo, donde los componentes del mismo son los componentes de la ruta. As pues, los art culos de comp.os.linux.misc se guardan en /var/spool/news/comp/os/linux/misc. A cada art culo se le asigna un n mero u seg n su orden de llegada. Este n mero sirve como nombre de chero. El rango de art u u culos vigentes en un momento dado se guarda en un chero llamado active, que al mismo tiempo sirve como lista de grupos disponibles en el sistema. Puesto que el espacio en disco es un recurso nito, 5 uno tiene que empezar a desechar los art culos de cierta antig edad. Esto se denomina expiracin. Generalmente, los art u o culos de un determinado grupo o jerarqu expiran al transcurrir un n mero determinado de a u d desde de su llegada. El autor puede modicar este valor especicando una fecha de as expiracin en el campo Expires: de la cabecera del art o culo.
3

La regla de oro de las noticias de red, segn Geo Collyer: Empaquetars tus art u a culos. Descrito en la RFC 977. 5 Alguna gente arma que Usenet es un conspiracin entre vendedores de modems y discos duros. o

Cap tulo 17

C-News
Uno de los paquetes de software ms populares para las NetNews es C-News. Fue dise ado a n para servidores que llevan noticias sobre enlaces UUCP. Este cap tulo discutir los conceptos a centrales de C-News, y las tareas de instalacin bsica y de mantenimiento. o a C-News almacena sus cheros de conguracin en /usr/lib/news, y la mayor de o a sus cheros binarios en el directorio /usr/lib/news/bin. Los art culos se guardan en /var/spool/news. Ud. debe estar seguro de que todos los cheros en estos directorios son propiedad del usuario news, grupo news. La mayor de los problemas surgen de la a inaccesibilidad de los cheros por C-News. Ud. debe tener como regla general el ser usuario news usando su antes de tocar nada ah La unica excepcin es setnewsids, que se usa para . o establecer la identicacin real del usuario de algunos programas de noticias. Este debe ser o propiedad del root y debe tener el bit setuid activado. A continuacin, describimos todos los cheros de conguracin de C-News en detalle, y o o le mostraremos lo que tiene que hacer para mantener su servidor en funcionamiento.

17.1

Entrega de Noticias

Los art culos deben ser suministrados a C-News de varias maneras. Cuando un usuario local env un art a culo, el lector de noticias usualmente lo entrega al comando inews, el cual completa la informacin de cabecera. Las noticias del servidor remoto, tanto si es un unico o mensaje como un lote entero, son entregadas al comando rnews, el cual lo almacena en el directorio /var/spool/news/in.coming, de donde lo coger newsrun ms tarde. Sin embara a go, con cualquiera de estas dos tcnicas el art e culo ser nalmente entregado al comando a relaynews. Para cada art culo, el comando relaynews consulta primero si el art culo ha sido visto 272

17.1. Entrega de Noticias

273

en el servidor local buscando el identicador del mensaje en el chero history. Los art culos duplicados sern eliminados. Entonces, relaynews mira la l a nea de cabecera del Newsgroup: para averiguar si el servidor local solicita art culos de cualquiera de estos grupos. Si lo hace, y el grupo de noticias est listado en el chero active, relaynews intenta almacenar el art a culo en el correspondiente directorio en el area de cola de noticias. Si no existe este directorio, se crea. El identicador del mensaje del art culo ser entonces registrado en el chero history. a De otra manera, relaynews elimina el mensaje. Si relaynews falla al almacenar un art culo entrante porque un grupo al que sido enviado no est listado en su chero activo, el art a culo ser movido al grupo junk. 1 relaynews tama bin comprobar art e a culos caducados o mal fechados y los rechazar. Los lotes entrantes que a fallan por cualquier razn son movidos a /var/spool/news/in.coming/bad, y es registrado o un mensaje de error. Despus de esto, el art e culo ser transmitido a todos los otros servidores que soliciten a noticias de estos grupos, usando el transporte especicado para cada servidor determinado. Para estar seguro de que no es enviado a un servidor que ya lo ha visto, cada servidor de destino es comparado con el campo Path: de cabecera del art culo, el cual contiene la lista de servidores hasta los que el art culo ha llegado, escritos en notacin de camino UUCP con o signos de admiracin. Slo si el nombre del servidor de destino no aparece en esta lista el o o art culo le ser enviado. a C-News es usado com nmente para transmitir noticias entre servidores UUCP, aunque u es tambin posible usarlo bajo un entorno NNTP. Para entregar noticias a un servidor e remoto UUCP tanto un solo art culo como lotes enteros uux es usado para ejecutar el comando rnews en el servidor remoto, y entregarle el art culo o lote por su entrada estndar. a Cuando el proceso por lotes est permitido para un servidor dado, C-News no manda a inmediatamente ning n art u culo entrante, sino que anexiona su nombre de camino a un chero, usualmente out.going/nodo/togo. Peridicamente, un programa por lotes es ejecuo tado desde la l nea de una tabla de tareas planeadas , 2 3 lo que situa a los art culos en uno o ms cheros, opcionalmente los comprime, y los manda a rnews en el servidor a remoto. La gura 17.1 muestra las noticias uyendo a travs de relaynews. Los art e culos deben ser transmitidos al servidor local (denotado por ME ), a alg n servidor llamado ponderosa u v correo electrnico, y a un servidor llamado moria, para el cual el proceso por lotes a o
Debe haber una diferencia entre los grupos que existen en su servidor, y aquellos que su servidor est a preparado para recibir. Por ejemplo, la lista de subscripcin debe especicar comp.all, lo que signica o todos los grupos de noticias bajo la jerarqu comp, pero en su servidor, solo un nmero de grupos comp a u son listados en activo. Los art culos enviados a esos grupos sern movidos a junk. a 2 N. del T.: crontab 3 Note que esto deber ser la tabla de tareas planeadas del usuario noticias, para no destrozar los a permisos de los cheros.
1

17.2. Instalacin o

274

est permitido. a

art culo

relaynews historia

ME

ponderosa

moria

correo activo dir. spooling


out.going/ moria/togo

Figura 17.1: Flujo de noticias mediante relaynews.

17.2

Instalacin o

Para instalar C-News, descomprima con tar los cheros en el lugar apropiado, si no lo ha hecho todav y edite los cheros de conguracin listados abajo. Todos estn situados en a, o a /usr/lib/news. Sus formatos sern descritos en las siguientes secciones. a sys Probablemente Ud. tendr que modicar la l a nea ME que describe su sistema, aunque usar all/all es tambin una apuesta segura. Ud. tambin e e tendr que a adir una l a n nea por cada servidor al que quiera mandar noticias. Si Ud. es un servidor hoja, slo necesita una l o nea que mande todos los art culos generados localmente a su fuente. Suponga que su fuente es moria, entonces su chero sys deber parecerse a: a
ME:all/all:: moria/moria.orcnet.org:all/all,!local:f:

organization

El nombre de su organizacin. Por ejemplo, Cervecera Virtual, Inc.. o En su mquina de casa, introduzca sitio privado, o cualquier cosa que a desee. La mayor de la gente no dir que su servidor est congurado a a a correctamente hasta que no haya congurado este chero.

17.2. Instalacin o

275

newsgroups mailname whoami El nombre de su servidor de correo, por ejemplo vbrew.com. El nombre de su servidor para propositos de noticias. Con frecuencia, se usa, por ejemplo, el nombre del servidor UUCP. vbrew. Probablemente Ud. deber editar este chero para reejar sus tiempos de a expiracin preferidos para alg n grupo de noticias en especial. El espacio de o u disco debe jugar un importante papel en esto.

explist

Para crear una jerarqu inicial de grupos de noticias, obtenga un chero active y un a chero newsgroups del servidor que le provee, e instlelos en /usr/lib/news, asegurndose a a de que son propiedad del usuarios news y tienen un modo de proteccin 664. Elimine todos o los grupos to.* del chero active, y a ada to.mi servidor y to.sitio proveedor , al igual n que junk y control. Los grupos to.* se usan normalmente para intercambiar mensajes ihave/sendme 4 , pero Ud. deber crearlos tanto si planea usar ihave/sendme como si a no. Despus, sustituya todos los numeros de los art e culos en el segundo y tercer campo de active usando el siguiente comando:
# cp active active.old # sed s/ [0-9]* [0-9]* / 0000000000 00001 / active.old > active # rm active.old

El segundo comando es una invocacin de sed(1), uno de mis comandos un x favoritos. o Esta invocacin sustituye dos cadenas de d o gitos por una cadena de ceros y la cadena 000001, respectivamente. Finalmente, cree el directorio de cola de noticias y los directorios usados para noticias entrantes y salientes:
# # # # cd /var/spool mkdir news news/in.coming news/out.going chown -R news.news news chmod -R 755 news

Si Ud. est usando una versin de C-News ms reciente, deber crear el directorio a o a a out.master en el directorio de cola de noticias. Si est usando lectores de noticias de una distribucin diferente de la de C-News, puede a o descubrir que algunos de ellos esperan encontrar la cola de noticias en /usr/spool/news en
4

N. del T.: Tengo/Envame

17.3. El chero sys

276

vez de en /var/spool/news. Si su lector de noticias no parece encontrar ning n art u culo, cree un enlace simblico de /usr/spool/news a /var/spool/news. o Ahora, Ud. est preparado para recibir noticias. Note que no tiene que crear ning n a u otro directorio ms que los vistos arriba, porque cada vez que C-News recibe un art a culo de un grupo para el que todav no hay directorio de cola, lo crea. a En particular, esto le ocurre a todos los grupos a los que se ha enviado un art culo cruzado. As que, despus de un cierto tiempo, encontrar su cola de noticias llena con e a directorios para grupos de noticias a los que Ud. nunca se ha subscrito, como alt.lang.teco. Puede evitar esto tanto borrando todos los grupos no deseados de active, como ejecutando regularmente un script del shell que borre todos los directorios vac de /var/spool/news os (excepto out.going y in.coming, por supuesto). C-News necesita un usuario a quien mandar los mensajes de error y los informes de estado. Por defecto, ste es usenet. Si usa el valor por defecto, tiene que establecer e un alias para l, el cual remite todo su correo a una o ms personas responsables. (Los e a cap tulos 14 y 15 explican cmo hacerlo para smail y sendmail). Tambin puede modicar o e este comportamiento estableciendo la variable de entorno NEWSMASTER con el nombre apropiado. Debe hacerlo en el chero de la tabla de tareas planeadas de noticias, asi como cada vez que invoque manualmente una herramienta administrativa, por lo que instalar un alias es probablemente ms fcil. a a Aprovechando que est modicando /etc/passwd, aseg rese de que cada usuario tiene a u n e su nombre real en el campo pw gecos del chero de contrase a (ste es el cuarto campo). Es una cuestin de normas de etiqueta de Usenet el que el nombre real del remitente aparezca o en el campo From: del art culo. Por supuesto, Ud. querr hacerlo de cualquier manera a cuando use el correo.

17.3

El chero sys

El chero sys, situado en /usr/lib/news, controla qu jerarqu recibe y remite a otros e as servidores. Aunque hay herramientas de mantenimiento llamadas addfeed y delfeed, creo que es mejor mantener este chero a mano. El chero sys contiene entradas para cada servidor al que Ud. reenv noticias adems a a de descripciones de los grupos de noticias que Ud. acepta. Una entrada se parece a:
sitio [/exclusiones ]:listagrupos [/listadist ] [:flags [:cmds ]]

Las entradas pueden continuar a lo largo de varias l neas usando una barra invertida (\). Una almohadilla (#) denota un comentario.

17.3. El chero sys

277

sitio

Este es el nombre de los servidores a los que se aplica la entrada. Usualmente se elige el nombre del servidor UUCP para esto. Tiene que haber tambin e una entrada para su servidor en el chero sys, si no no recibir ning n a u art culo. El nombre especial de servidor ME indica su servidor. La entrada ME dene todos los grupos de noticias que Ud. est preparado para almacenar a localmente. Los art culos que no concuerden con la l nea ME irn al grupo a junk. Puesto que C-News compara el servidor con los nombres de los servidores en la cabecera del campo Path:, hay que estar seguro de que realmente coinciden. Algunos servidores usan su nombre de dominio completamente cualicado en este campo, o un alias como news.sitio.dominio . Para prevenir que cualquier art culo regrese a estos servidores, tiene que a adir n esto a la lista de exclusin, separada por comas. o Por ejemplo, para la entrada aplicada al servidor moria, el campo del servidor contendr moria/moria.orcnet.org. a

listagrupos Esta es una lista de subscripcin, separada por comas, de grupos y jerarqu o as para ese servidor en particular. Una jerarqu debe especicarse dando el a prejo de la jerarqu (como comp.os para todos los grupos cuyos nombres a empiezan con este prejo), seguido opcionalmente por la palabra clave all (por ejemplo, comp.os.all). Para excluir una jerarqu o grupo de reemisin, debe ser precedido con una a o exclamacin. Si un grupo de noticias encaja con ms de una denicin de la o a o lista, se aplica el emparejamiento ms larga. Por ejemplo, si la listagrupos a contiene
!comp,comp.os.linux,comp.folklore.computers

ning n grupo de la jerarqu comp excepto comp.folklore.computers y u a todos los grupos bajo comp.os.linux sern administrados a ese servidor. a Si el servidor requiere que se le reenv todas las noticias que Ud. recibe, en introduzca all como listagrupos . listadist est separado de listagrupos por un barra inclinada, y contiene una lista a de distribuciones para ser reenviada. Ud. puede de nuevo excluir ciertas distribuciones precedindolas con una exclamacin. Todas las distribuciones e o se denotan con all. El omitir listadist implica una lista de all. Por ejemplo, puede usar una lista de distribucin de all,!local para impedir o que las noticias de uso slo local sean enviadas a servidores remotos. o

17.3. El chero sys

278

Usualmente hay al menos dos distribuciones: world, que es a menudo la distribucin por defecto usada cuando el usuario no especica nada, y loo cal. Puede haber otras distribuciones que se empleen para una cierta regin, estado, pa etc. Finalmente, hay dos distribuciones usadas solamente o s, por C-News; stas son sendme y ihave, y son usadas para el protocolo ihae ve/sendme. El uso de distribuciones es materia de debate. Para unos, algunos lectores de noticias crean falsas distribuciones simplemente usando la jerarqu de ala to nivel, por ejemplo comp cuando se env un mensaje a comp.os.linux. a Las distribuciones que se emplean en regiones son a menudo tambin cuese tionables, porque las noticias deben viajar fuera de su regin cuando son o 5 Sin embargo, las distribuciones empleadas enviadas a travs de Internet. e para una organizacin, son muy signicativas, por ejemplo para evitar la o salida de informacin condencial de la red de la compa No obstante, o na. este proposito generalmente se consigue mejor creando un grupo de noticias o una jerarqu separados. a flags este campo describe ciertos parmetros para la fuente. Puede estar vac o a o, ser una combinacin de lo siguiente: o F f Este ag permite el proceso por lotes. Este es casi idntico al ag F, pero permite a C-News calcular e el tama o de los lotes salientes con ms precisin. n a o Este ag hace que C-News produzca una lista de art culos apta para ser usada por el protocolo ihave/sendme. Hay que hacer modicaciones adicionales al chero sys y al chero batchparms para habilitar ihave/sendme. Este ag crea cheros por lotes para clientes de transferencia NNTP activa como nntpxmit (ver cap tulo 18). Los cheros por lotes contienen el nombre de chero del art culo junto con su identicador de mensaje. Este ag indica a C-News que slo transmita los mensajes o generados en su servidor. Este ag puede ir ser seguido por un n mero decimal n , el cual hace que C-News slo transera u o art culos generados a n saltos desde su servidor. C-News determina el numero de saltos a partir del campo Path:.

No es infrecuente para un art culo enviado en, digamos Hamburgo, ir a Frankfurt v reston.ans.net a en Holanda, o inclusive v algn servidor en E.E.U.U. a u

17.3. El chero sys

279

Este ag indica a C-News que procese por lotes slo los art o culos de los grupos no moderados. Este ag indica a C-News que procese por lotes slo los art o culos de los grupos moderados.

Debe usar a lo sumo uno de F, f, I, o n. cmds Este campo contiene un comando a ser ejecutado para cada art culo, a menos que el proceso por lotes est habilitado. El art e culo ser suministrado al a comando a travs de la entrada estndar. Esto solo deber usarse para e a a fuentes muy peque as; de otra manera la carga en ambos sistemas ser n a demasiado alta. El comando por defecto es
uux - -r -z system !rnews

lo que invoca rnews en el sistema remoto, administrando el art culo mediante la entrada estndar. a El camino de b squeda por defecto para los comandos indicados en este camu po es /bin:/usr/bin:/usr/lib/news/bin/batch. El ultimo directorio contiene un un cierto n mero de guiones del intrprete de comandos cuyos nombres u e empiezan por via; se describen brevemente ms adelante en este mismo a cap tulo. Si el proceso por lotes est habilitado usando bien los ags F o f, I o n, a C-News espera encontrar un nombre de chero en este campo en vez de un comando. Si el nombre de chero no empieza con una barra inclinada (/ ), se supone que es relativo a /var/spool/news/out.going. Si el campo est vac a o, su valor por defecto es system /togo. Cuando congure C-News, probablemente tendr que escribir su propio chero sys. Para a ayudarle con ello, incluimos abajo un chero de ejemplo para vbrew.com, del cual puede copiar lo que necesite.
# Tomamos lo que nos dan. ME:all/all:: # Enviamos todo lo que recibimos a moria, excepto los articulos locales y # relacionados con cerveceras. Usamos proceso por lotes. moria/moria.orcnet.org:all,!to,to.moria/all,!local,!brewery:f: # Mandamos comp.risks a jack@ponderosa.uucp

17.4. El chero active

280

ponderosa:comp.risks/all::rmail jack@ponderosa.uucp # swim obtiene solo algunos grupos swim/swim.twobirds.com:comp.os.linux,rec.humor.oracle/all,!local:f: # Guardar los articulos de mapas de correo para procesarlos luego usenet-maps:comp.mail.maps/all:F:/var/spool/uumaps/work/batch

17.4

El chero active

El chero active est situado en /usr/lib/news y lista todos los grupos conocidos en su a servidor, y los art culos disponibles actualmente. Rara vez tendr que tocarlo, pero, sin a embargo, lo explicamos por completitud. Las entradas tiene la siguiente forma:
gruponoticias alto bajo perm

gruponoticias es, por supuesto, el nombre del grupo. bajo y alto son los n meros u ms bajo y ms alto de los art a a culos actualmente disponibles. Si no hay ninguno disponible en ese momento, bajo es igual a alto +1. Al menos, eso es lo que el campo bajo pretende hacer. Sin embargo, por razones de eciencia, C-News no actualiza este campo. Esto no ser una gran perdida si no hubiera a algunos lectores de noticias que dependen de l. Por ejemplo, trn comprueba este campo e para ver si puede purgar cualquier art culo de su base de datos de hilos. Para actualizar el campo bajo , tiene por lo tanto que ejecutar regularmente el comando updatemin (o, en una versin ms antigua de C-News, la macro upact). o a perm es un parmetro que detalla el tipo de acceso que los usuarios tienen concedido en a el grupo. Toma uno de los siguientes valores: y n Se permite a los usuarios enviar art culos a este grupo. No est permitido a los usuarios enviar art a culos a este grupo. Sin embargo, el grupo puede todav ser le a do. Este grupo ha sido deshabilitado localmente. Esto ocurre algunas veces cuando los administradores de noticias (o sus superiores) se ofenden por art culos enviados a ciertos grupos. Los art culos recibidos para estos grupos no son almacenados localmente aunque son reenviados a los servidores que los piden.

17.5. Procesado de art culos por lotes

281

Esto denota un grupo moderado. Cuando un usuario intenta enviar un art culo a este grupo, un lector de noticias inteligente lo noticar al usuario, a y en su lugar enviar el art a culo al moderador. La direccin del moderador o se toma del chero moderators de /usr/lib/news. Esto marca a newsgroup como un alias local para otro grupo, a saber real-group . Todos los art culos enviados a gruponoticias sern rediria gidos a l. e

=real-group

En C-News, generalmente no tendr que acceder directamente a este chero. Los grua pos deben ser a adidos o borrados localmente usando addgroup y delgroup (ver abajo en n la seccin Herramientas y Tareas de Mantenimiento). Cuando se a aden o borran gruo n pos para la Usenet entera, esto se hace habitualmente por medio de un mensaje de control newgroup o rmgroup, respectivamente. Nunca enve Ud. un mensaje de este tipo! Para saber como crear un grupo de noticias, lea los mensajes enviados mensualmente a news.announce.newusers. Un chero estrechamente relacionado con active es active.times. Cada vez que se crea un grupo, C-News registra un mensaje en este chero, conteniendo el nombre del grupo creado, la fecha de creacin, si fue hecho por un mensaje de control newgroup o localmente, o y quin lo hizo. Esto es para facilitar la vida a los lectores de noticias, quienes pueden e noticar al usuario los grupos recin creados. Tambin lo usa el comando NEWGROUPS e e de NNTP.

17.5

Procesado de art culos por lotes

Los lotes de noticias siguen un formato particular, el cual es el mismo para Bnews, C-News, e INN. Cada art culo est precedido por una l a nea como esta:
#! rnews cuenta

donde cuenta es el numero de bytes en el art culo. Cuando se usa la compresin de lotes, o el chero resultante es comprimido como un todo, y precedido por otra l nea, que indica el mensaje a ser usado por la descompresin. La herramienta de compresin estndar es o o a compress, la cual se indica con:
#! cunbatch

17.5. Procesado de art culos por lotes

282

Algunas veces, cuando hay que enviar los lotes usando un software de correo que elimina el octavo bit de todos los datos, se puede proteger un lote usando lo que se llama codicacin o C7; estos lotes sern marcados por c7unbatch. a Cuando se le administra un lote a rnews en el servidor remoto, comprueba esas marcas y procesa el lote apropiadamente. Algunos servidores tambin usan otras herramientas de e compresin, como gzip, y en su lugar preceden sus cheros comprimidos con zunbatch. Co News no reconoce cabeceras no estndares como esas; Ud. tiene que modicar el cdigo a o fuente para soportarlas. En C-News, el proceso por lotes de archivos lo realiza /usr/lib/news/bin/batch/sendbatches, el cual recoje la lista de art culos del chero site /togo, y los pone en varios lotes de noticias. Deber ejecutarse una vez cada hora, o a incluso ms a menudo, dependiendo del volumen del trco. a a Su operacin es controlada por el chero batchparms situado en /usr/lib/news. Este o chero describe el mximo tama o de lote permitido para cada servidor, el tipo de proceso a n por lotes y opcionalmente el programa de compresin a ser usado, y mtodo de transporte o e para entregarlo al servidor remoto. Ud. puede especicar los parmetros del proceso por a lotes para cada servidor, adems de un conjunto de parmetros por defecto para servidores a a no mencionados expl citamente. Para llevar a cabo el proceso por lotes para un servidor espec co, se invoca como:
# su news -c "/usr/lib/news/bin/batch/sendbatches site "

Cuando es invocado sin argumentos, sendbatches maneja todas las colas de lotes. La interpretacin de todas depende de la presencia de una entrada por defecto en batchparms. o Si se encuentra una, se comprueban todos los directorios de /var/spool/news/out.going, si no, recorre todas las entradas de batchparms. Note que sendbatches, cuando explora el directorio out.going, toma slo aquellos directorios que no contienen ning n punto o o u arroba (@) como nombre de servidor. Cuando instale C-News, seguramente hallar un chero batchparms en su distribucin a o que contenga una entrada por defecto razonable, as que es muy probable que no tenga que tocar el chero. No obstante, describimos su formato por si acaso. Cada l nea consta de seis campos, separados por espacios o tabuladores:
site size max batcher muncher transport

El signicado de estos campos es el siguiente:

17.5. Procesado de art culos por lotes

283

site es el nombre del servidor al que se aplica la entrada. El chero togo para este servidor debe residir en out.going/togo bajo la cola de las noticias. El nombre de servidor /default/ denota la entrada por defecto. size es el tama o mximo de los lotes creados (antes de la compresin). Para aquellos n a o art culos que son mayores que este valor C-News hace una excepcin y los pone en un lote o ellos solos. max es el mximo n mero de lotes creados y programados para la transferencia antes de a u que el proceso por lotes se pare para este servidor particular. Esto es util en el caso de que el servidor remoto no est disponible durante un largo per e odo de tiempo, porque previene que C-News ateste sus directorios de cola UUCP con millones de lotes de noticias. C-News determina el n mero de lotes que hay en cola usando el script queulen de u /usr/lib/news/bin. La versin newspak de Vince Skahan deber contener un guin para o a o UUCPs compatibles con BNU. Si usa una clase diferente de directorios de cola, por ejemplo UUCP de Taylor, tendr que escribir el suyo propio. 6 a El campo batcher contiene el comando usado para producir un lote a partir de la lista de art culos del chero togo. Para las fuentes habituales, ste es generalmente batcher. e Puede que se proporcionen otros empaquetadores para otros propsitos. Por ejemplo, el o protocolo ihave/sendme requiere que la lista de art culos sea convertida en mensajes de control ihave/sendme, los cuales se env al grupo to.site. Los comandos encargados de an esto son batchih y batchsm. El campo muncher especica el comando a usar para la compresin de los lotes. Geneo ralmente, se usa compcun, que es un guin que produce un lote comprimido. 7 Alternatio vamente, puede proporcionar un muncher que use gzip, digamos gzipcun (para ser claros: tiene que escribirlo Ud. mismo). Debe asegurarse de que uncompress en el servidor remoto est parcheado para reconocer cheros comprimidos con gzip. a Si el servidor remoto no tiene un comando uncompress, debe especicar nocomp lo que implica el no hacer ninguna compresin. o El ultimo campo, transport , describe el transporte a utilizar. Hay disponibles varios comandos estndar para diferentes transportes cuyos nombres empiezan por via. sendbata ches les pasa el nombre del servidor de destino en la l nea de comandos. Si la entrada batchparms no era /default/, el nombre del servidor se obtiene del campo site suprimiendo
Si no le importa el numero de cheros de cola (porque Ud. es la unica persona usando el ordenador, y no escribe art culos de megabytes), puede reemplazar los contenidos del guin por una simple sentencia exit o 0. 7 Tal como se distribuye con C-News, compcun usa compress con la opcin 12 bit, ya que ste es el o e m nimo comn denominador de la mayor de servidores. Ud. puede hacer una copia de l, llammosla u a e e compcun16, y usar la compresin 16 bit. De todas formas, la mejora no es muy impresionante. o
6

17.6. Noticias caducadas

284

cualquier cosa despus e incluyendo el primer punto o barra inclinada. Si la entrada era e /default/, se usan los nombres de directorio de out.going. Hay dos comandos que usan uux para ejecutar rnews en el servidor remoto; viauux y viauuxz. El ultimo establece el ag -z para (las versiones ms antiguas de) uux para evitar a que devuelva mensajes de xito por cada art e culo entrgado. Otro comando, viamail, manda lotes de art culos al usuario rnews en el sistema remoto v correo. Por supuesto, esto a requiere que el sistema remoto administre de alguna manera todo el correo para rnews a su sistema local de noticias. Para obtener una lista completa de estos transportes, rerase e a la pagina del manual newsbatch(8). Todos los comandos de los tres ultimos campos deben estar situados, bien en out.going/ site o bien en /usr/lib/news/bin/batch. La mayor de ellos son scripts, de a tal forma que Ud. pueda confeccionar fcilmente nuevas herramientas para sus necesidades a personales. Son invocados con tuberas . Se administra la lista de art culos al batcher a travs de la entrada estndar, quien produce el lote en su salida estndar. Esta a su vez se e a a entuba en el muncher , y as sucesivamente. Abajo se ofrece un chero de ejemplo.
# fichero batchparms para la cervecera # site | size |max |batcher |muncher |transport #-------------+--------+-------+---------+-----------+----------/default/ 100000 22 batcher compcun viauux swim 10000 10 batcher nocomp viauux

17.6

Noticias caducadas

En Bnews, la caducidad de las noticias sol realizarse por medio de un programa llamado a expire, el cual recib como argumento una lista de grupos de noticias, junto con una a especicacin del tiempo despus del cual los art o e culos caducaban. Para hacer que diferentes jerarqu caducaran en momentos distintos, Ud. ten que escribir un script que invocara as a a expire para cada uno de ellos de forma individual. C-News ofrece una solucin ms o a conveniente a esto: en un chero llamado explist, Ud. puede especicar los grupos de noticias y los intervalos de caducidad. Una vez al d se suele ejecutar desde cron un a comando llamado doexpire, que procesa todos los grupos de acuerdo a esta lista. Ocasionalmente, Ud. puede querer mantener art culos de ciertos grupos incluso despus e de que hayan caducado; por ejemplo, podr querer mantener los programas enviados a a comp.sources.unix. A esto se le llama archivado. explist le permite marcar grupos para el archivado.

17.6. Noticias caducadas

285

Una entrada en explist se parece a esto:


grouplist perm times archive

grouplist es una lista separada por comas de los grupos de noticias a los que aplica la entrada. Se pueden especicar jerarqu completas indicando el prejo del nombre del as grupo, a adiendo opcionalmente all. Por ejemplo, para una indicar una entrada que se n aplique a todos los grupos de comp.os, puede introducir en grouplist o bien comp.os o bien comp.os.all. Cuando se van a caducar las noticias de un grupo, se contrasta el nombre del grupo con todas las entradas de explist en el orden dado. La entrada empleada es la primera que concuerda. Por ejemplo, para eliminar la mayor de comp despus de cuatro d excepto a e as, comp.os.linux.announce que quiere mentener durante una semana, debe simplemente tener una entrada para lo ultimo, que especique un periodo de caducidad de siete d as, seguida por una para comp que especique cuatro d as. El campo perm detalla si la entrada se aplica a grupos moderados, no moderados, o a cualquier grupo. Debe tomar los valores m, u, o x, lo que designa moderados, no moderados, o cualquier tipo. El tercer campo, times , contiene usualmente un solo n mero. Este es el n mero de d u u as despus de los cuales caducarn los art e a culos si no se les ha asignado una fecha de caducidad articial en el campo Expires: de la cabecera del art culo. Dse cuenta de que este es el e n mero de d contando desde la llegada a su servidor, no desde la fecha de emisin. u as o Sin embargo, el campo times puede ser ms complejo que eso. Puede ser una combia nacin de hasta tres n meros, separados unos de otros por un guin. El primero designa o u o el n mero de d que tienen que pasar antes de que el art u as culo sea considerado candidato para estar caducado. Rara vez es util usar otro valor que no sea cero. El segundo campo es el valor mencionado arriba, es decir, el n mero por defecto de d despus de los cuales u as e caducar. El tercero es el n mero de d despus de los cuales un art a u as e culo caducar incona dicionalmente, sin reparar en si tiene un campo Expires: o no. Si slo se indica el n mero o u de en medio, los otros dos toman valores por defecto. Estos pueden especicarse usando la entrada especial /bounds/, que se describe ms abajo. a El cuarto campo, archive , designa si el grupo de noticias tiene que archivarse, y dnde. o Si no se desea archivarlo, deber usar un guin. De lo contrario, use un nombre de caa o mino absoluto (apuntando a un directorio), o una arroba (@). La arroba designa el directorio de archivo por defecto, cuyo valor debe darse a doexpire usando el ag -a en la l nea de comandos. El directorio de archivo debe ser propiedad de news. Cuando doexpire archiva un art culo de, digamos, comp.sources.unix, lo almacena en el directorio

17.6. Noticias caducadas

286

comp/sources/unix bajo el directorio de archivo, crendolo si no existe. Sin embargo, no a se crear el propio directorio de archivo. a Hay dos entradas especiales en su chero explist de las que depende doexpire. En vez de una lista de grupos de noticias, tienen las palabras clave /bounds/ y /expired/. La entrada /bounds/ contiene los valores por defecto para los tres valores del campo times descrito arriba. El campo /expired/ determina cunto tiempo guardar C-News las l a a neas del chero history. Esto es necesario porque C-News no borrar una l a nea del chero de historial una vez que el (los) art culo(s) correspondiente(s) hayan caducado, pero lo guardar por si acaso a llega un duplicado trs esa fecha. Si recibe las noticas de solo un servidor, puede mantener a este valor peque o. De lo contrario, un par de semanas es un valor aconsejable para las n redes UUCP, dependiendo de los retrasos que Ud. experimente con los art culos de esos servidores. A continuacin se reproduce un chero explist de ejemplo con unos intervalos de expio racin bastante ajustador. o
# Mantiene las lineas de historial durante dos semanas. Nadie consigue mas # de tres meses /expired/ x 14 /bounds/ x 0-1-90 # Los grupos que queremos mantener mas tiempo que el resto comp.os.linux.announce m 10 comp.os.linux x 5 alt.folklore.computers u 10 rec.humor.oracle m 10 soc.feminism m 10 # Archiva los grupos *.sources comp.sources,alt.sources

# valores por defecto para los grupos de tecnologia comp,sci x 7 # bastante para un fin de semana largo misc,talk x # desecha rapidamente lo inservible junk x

# los mensajes de control tambien son de escaso interes control x 1 -

17.7. Ficheros diversos

287

# para el resto de ellos la entrada comodin all x 2

Hay un cierto n mero de problemas potenciales con la caducidad en C-News. Uno es que u su lector de noticias puede depender del tercer campo del chero active, el cual contiene el n mero del art u culo ms bajo disponible. Cuando C-News caduca los art a culos no actualiza este campo. Si Ud. necesita (o quiere) que este campo represente la situacin real, necesita o ejecutar un programa llamado updatemin despus de cada ejecucin de doexpire. 8 e o Segundo, C-News no caduca los art culos examinando el directorio de los grupos de noticias, sino que simplemente comprueba en el chero history si el art culo debe caducar. 9 Si su chero de historia consigue de alguna manera estar fuera de sincronismo, sus art culos pueden permanecer en su disco duro para siempre, porque C-News los ha olvidado literalmente.10 Puede reparar esto usando el script addmissing de /usr/lib/news/bin/maint, el cual a adir los art n a culos perdidos al chero history, o mkhistory, el cual reconstruye el chero desde cero. No olvide ser news antes de invocarlo, o de lo contrario terminar con a un chero history imposible de leer por C-News.

17.7

Ficheros diversos

Hay algunos cheros que controlan el comportamiento de C-News, pero no son esenciales para su funcionamiento. Todos ellos residen en /usr/lib/news. Los describiremos brevemente. newsgroups Se trata de un chero que acompa a al chero active y contiene una lista de n nombres de grupos de noticias, junto con una descripcin, en una sola l o nea, de su tema principal. Este chero se actualiza automticamente cuando a C-News recibe un mensaje de control checknews (ver seccin 17.8). o Si Ud. tiene grupos locales de los que no quiere que C-News se queje cada vez que Ud. recibe un mensaje checknews, ponga sus nombres y una descripcin o en este chero, justo como aparecer en el chero newsgroups. an Este chero contiene la direccin del moderador para cada grupo moderado. o Cada l nea contiene el nombre del grupo, seguido por la direccin de correo o electrnico del moderador (separada por un tabulador). o

localgroups

mailpaths

En versiones anteriores de C-News, esto era hecho por un un script llamado upact. La fecha de llegada del art culo se almacena en el campo de en medio de la l nea de historia, dado en segundos desde el 1 de Enero de 1970. 10 No se por qu ocurre esto, a m me lo hace de vez en cuando. e
9

17.7. Ficheros diversos

288

Hay dos entradas especiales que son proporcionadas por defecto. Estas son backbone e internet. Ambas proporcionan en notacin UUCP de signos o de admiracin el camino al servidor principal ms cercano y el servidor o a que reconoce direcciones del estilo RFC 822 (user@host). Las entradas por defecto son
internet backbone

Ud. no tendr que cambiar la entrada internet si no tiene instalado smail o a sendmail, porque entienden direccionamiento RFC 822. La entrada backbone se usa cada vez que un usuario env un mensaje a un a grupo moderado cuyo moderador no est listado explic e tamente. Si el nombre del grupo de noticias es alt.sewer, y la entrada backbone contiene path!%s, C-News enviar por correo el art a culo a path!alt-sewer, esperando que la mquina principal pueda reenviar el art a culo. Para averiguar qu camino e usar, pregunte al administrador de noticias del servidor que le pasa las mismas. Como ultimo recurso, puede usar tambin uunet.uu.net!%s. e distributions Este chero no es realmente un chero C-News, pero es usado por algunos lectores de noticias y nntpd. Contiene la lista de distribuciones reconocida por su servidor, y una descripcin de su efecto (deseado). Por ejemplo, la o Cervecera Virtual tiene el siguiente chero:
world local nl mugnet fr de brewery cualquier lugar del mundo slo local a este servidor o slo Holanda o slo MUGNET o slo Francia o slo Alemania o slo Cerveceria Virtual o

log

Este chero contiene un registro de todas las actividades de C-News. Se recorta regularmente ejecutando newsdaily; las copias de cheros de los registro antiguos se guardan en log.o, log.oo, etc. Este es un registro de todos los mensajes de error creados por C-News. Estos no incluyen art culos desechados debido a grupos incorrectos, etc. De no estar vac en el momento de ejecutar newsdaily, ser enviado por correo o a al administrador de las noticias (usenet por defecto) automticamente. a newsdaily se encarga de limpiar errlog. Las copias antiguas se guardan en errlog.o y compa na.

errlog

17.8. Mensajes de Control

289

batchlog

Este chero registra todas las ejecuciones de sendbatches. Normalmente no tiene inters su contenido. Tambin es atendido por newsdaily. e e Este es un chero vac que se crea cada vez que se ejecuta newswatch. o

watchtime

17.8

Mensajes de Control

El protocolo de noticias Usenet reconoce art culos de una categor especial, los cuales a provocan ciertas respuestas o acciones del sistema. Estos son los llamados mensajes de control. Se reconocen por la presencia de un campo Control: en la cabecera del art culo, el cual contiene el nombre de la operacin de control a realizar. Existen varios tipos de ellas, o todas ellas manejadas por guiones del intrprete de comandos situados en /usr/lib/news/ctl. e La mayor de stos realizarn su accin automticamente en el momento en que C-News a e a o a procese el art culo, sin noticar al administrador de noticias. Por defecto, slo los mensajes o 11 pero Ud. puede cambiar esto checkgroups sern entregados al administrador de noticias, a editando los scripts.

17.8.1

El Mensaje cancel

El mensaje ms conocido es cancel, con el cual un usuario puede cancelar un art a culo enviado por l en otro momento. Esto borra el art e culo de los directorios de cola, si existe. El mensaje cancel se reenv a todos los servidores que reciben noticias de los grupos afectados, sin a reparar en si el art culo ha sido visto ya o no. Esto es para tener el cuenta la posibilidad de que el art culo original se haya retrasado sobre el mensaje de cancelacin. Algunos sistemas o de noticias permiten a los usuarios cancelar los mensajes de otras personas. Por supuesto esto es algo que no se deber hacer. a

17.8.2

newgroup y rmgroup

Dos mensajes que se ocupan de la creacin y borrado de grupos de noticias son los meno sajes newgroup y rmgroup. Los grupos de noticias bajo las jerarqu usuales slo pueas o de ser creados despus de que se haya mantenido una discusin y voto entre los lectoe o res de Usenet. Las reglas aplicadas a la jerarqu alt permiten algo similar a la anara qu Para ms informacin, ver los mensajes regulares de news.announce.newusers y a. a o
Hay una errata divertida en el RFC 1036 (pag.12): Los implementadores y administradores pueden elegir el permitir que los mensajes de control se lleven a cabo automticamente, o encolarlos para su proceso a anual.
11

17.8. Mensajes de Control

290

news.announce.newgroups. Nunca mande un mensaje newgroup o rmgroup usted mismo a menos que sepa con seguridad que tiene permiso para hacerlo.

17.8.3

El Mensaje checkgroups

Los mensajes checkgroups son mandados por los administradores de noticias para hacer que todos los servidores de una red sincronicen sus cheros active con la realidad de Usenet. Por ejemplo, los proveedores de servicio de Internet deber mandar tal mensaje a los servidoan res de sus clientes. Una vez al mes, el moderador del grupo comp.announce.newgroups env el mensaje ocial checkgroups para las principales jerarqu a as. Sin embargo, se env como un art a culo ordinario, no como un mensaje de control. Para realizar la operacin checkgroups, salve este art o culo en un chero, digamos /tmp/check, borre todo hasta el principio del mismo mensaje de control, y env elo al programa checkgroups usando el siguiente comando:
# su news -c "/usr/lib/news/bin/ctl/checkgroups" < /tmp/check

Esto actualizar su chero newsgroups, a adiendo los grupos listados en localgroups. El a n antiguo chero newsgroups ser movido a newsgroups.bak. Note que rara vez funciona el a enviar el mensaje localmente, porque inews rechaza aceptar un art culo tan grande. Si C-News encuentra desigualdades entre la lista checkgroups y el chero active, producir una lista de comandos que actualizar su servidor, y lo enviar por correo al adminisa a a trador de noticias. T picamente la salida se parece a esto:
From news Sun Jan 30 16:18:11 1994 Date: Sun, 30 Jan 94 16:18 MET From: news (News Subsystem) To: usenet Subject: Problems with your active file The following newsgroups are not valid and should be removed. alt.ascii-art bionet.molbio.gene-org comp.windows.x.intrisics de.answers You can do this by executing the commands: /usr/lib/news/bin/maint/delgroup alt.ascii-art /usr/lib/news/bin/maint/delgroup bionet.molbio.gene-org /usr/lib/news/bin/maint/delgroup comp.windows.x.intrisics /usr/lib/news/bin/maint/delgroup de.answers

17.8. Mensajes de Control

291

The following newsgroups were missing. comp.binaries.cbm comp.databases.rdb comp.os.geos comp.os.qnx comp.unix.user-friendly misc.legal.moderated news.newsites soc.culture.scientists talk.politics.crypto talk.politics.tibet

Cuando reciba un mensaje como ste de su sistema de noticias, no lo crea ciegamente. e Dependiendo de quin envi el mensaje checkgroups, puede que carezca de unos pocos grupos e o e incluso de jerarqu enteras; por lo tanto deber tener cuidado al borrar cualquier grupo. as a Si Ud. encuentra grupos listados como no presentes que quiera tener en su servidor, tiene que a adirlos usando la herramienta addgroup. Salve la lista de grupos que le faltan en un n chero y pseselo al siguiente guin: a o
#!/bin/sh cd /usr/lib/news while read group; do if grep -si "^$group[[:space:]].*moderated" newsgroup; then mod=m else mod=y fi /usr/lib/news/bin/maint/addgroup $group $mod done

17.8.4

sendsys, version, y senduuname

Finalmente, hay tres mensajes que pueden usarse para averiguar la topolog de la red. a Estos son sendsys, version, y senduuname. Respectivamente, hacen que C-News devuelva al remitente el chero sys, una cadena con la versin del software, y la salida de uuname(1). o C-News es muy lacnica con respecto a los mensajes version; devuelve una simple C, sin o adornos. Insistimos de nuevo, Ud. nunca deber distribuir tal mensaje, a menos que est seguro a e de que no puede dejar su red (regional). Las respuestas a los mensajes sendsys pueden

17.9. C-News en un Entorno NFS

292

hacer caer rpidamente una red UUCP. 12 a

17.9

C-News en un Entorno NFS

Una manera simple de distribuir noticias en una red local es guardar todas las noticias en un nodo central, y exportar los directorios relevantes v NFS, de manera que los lectores a de noticias puedan examinar los art culos directamente. La ventaja de este mtodo sobre e NNTP es que la sobrecarga implicada en recuperar y enhebrar art culos es signicativamente ms baja. Por otra parte, NNTP gana en una red heterognea donde el equipamiento var a e a mucho entre nodos, o donde los usuarios no tienen cuentas equivalentes en la mquina a servidora. Cuando se usa NFS, los art culos enviados al nodo local tienen que ser reenviados a la mquina central, porque de otro modo el acceso a los cheros administrativos expondr a a al sistema a condiciones de carrera y dejar los cheros inconsistentes. Tambin Ud. an e podr querer proteger su area de cola de noticias exportndola como solo-lectura, lo cual a a requiere tambin el reenv a la mquina central. e o a C-News maneja esto transparentemente. Cuando env un art a culo, su lector de noticias normalmente llamar a inews para inyectar el art a culo en el sistema de noticias. Este comando ejecuta algunas comprobaciones sobre el art culo, completa la cabecera, y comprueba el chero server en /usr/lib/news. Si este chero existe y contiene un nombre de nodo diferente del nombre del sistema local, se invoca inews en ese servidor remoto v rsh. a Puesto que el guin inews usa comandos binarios y cheros de apoyo de C-News, Ud. tiene o que tener C-News instalado localmente, o montar el software de noticias desde el servidor. Para que la invocacin de rsh funcione correctamente, cada usuario debe tener una o cuenta equivalente en el sistema del servidor, esto es, una a la que pueda acceder sin necesitar contrase a. n Aseg rese de que el nombre del sistema indicado en server coincida literalmente con la u salida del comando hostname(1) en la mquina servidora, si no C-News entrar en un bucle a a innito cuando intente entregar el art culo.

17.10

Herramientas y Tareas de Mantenimiento

A pesar de la complejidad de C-News, la vida de un administrador de noticias puede ser bastante fcil, porque C-News proporciona una amplia variedad de herramientas de mantea nimiento. Es deseable que algunos de stos sean ejecutados regularmente desde cron, como e
12

Yo tampoco intentar esto en Internet. a

17.10. Herramientas y Tareas de Mantenimiento

293

newsdaily. El uso de estos programas reduce drsticamente los requisitos diarios de cuidado a y administracin de su instalacin de C-News. o o A menos que se indique lo contrario, estos comandos estn situados en a /usr/lib/news/bin/maint. Note que Ud. debe ser el usuario news antes de invocar estos comandos. Ejecutndolos como super-usuario puede volver estos cheros inaccesibles a a C-News. newsdaily El nombre ya lo dice: ejecutar esto una vez al d Es un guin importana. o te que le ayuda a mantener los cheros de registro peque os, conservando n copias de cada todos ellos de las tres ultimas ejecuciones. Tambin intenta e detectar cualquier anomal como lotes atascados en los directorios de ena, trada y salida, env a grupos de noticias moderados o desconocidos, etc. os Los mensajes de error resultantes sern enviados por correo al administrador a de noticias. Se trata de un script que deber ejecutarse regularmente para buscar anoa mal en el sistema de noticias, una vez cada hora ms o menos. Est desas a a tinado a detectar problemas que tendrn efectos inmediatos en la operatibia lidad de su sistema de noticias y enviar un informe de problemas al administrador de noticias. Las cosas comprobadas incluyen cheros de bloqueo pasados que no fueron borrados, lotes de entrada desatendidos y la falta de espacio de disco. A ade un grupo localmente a su servidor. La invocacin adecuada es n o
addgroup groupname y|n|m|=realgroup

newswatch

addgroup

El segundo argumento tiene el mismo signicado que el modicador del chero active, signicando que cualquiera puede enviar un art culo al grupo (y), que nadie puede enviar (n), que es moderado (m), o que es un alias para otro grupo (=realgroup ). Ud. podr querer usar addgroup cuando los primeros art a culos de un grupo recin creado lleguen antes que el mensaje de control newgroup destinado a e crearlo. delgroup Le permite borrar localmente un grupo. Invquelo como o
delgroup groupname

Todav tiene que borrar los art a culos que permanecen el directorio de cola del grupo de noticias. Aunque se puede dejar esta tarea al proceso natural de expiracin de los art o culos.

17.10. Herramientas y Tareas de Mantenimiento

294

addmissing

A ade art n culos perdidos al chero historial. Ejecute este guin cuando haya o 13 art culos que parezcan quedarse para siempre. Este guin se deber ejecutar cuando arranca el sistema. Elimina cualquier o a chero de bloqueo que se dej atrs cuando se mataron los procesos al apagar, o a y cierra y ejecuta cualquier lote dejado por las conexiones NNTP que se cerraron cuando se apag el sistema. o Este reside en /usr/lib/news/bin/input, y puede ser usado para deshabilitar el desempaquetado de los lotes de noticias entrantes, por ejemplo durante las horas de trabajo. Ud. puede desconectar el desempaquetado de lotes invocando
/usr/lib/news/bin/input/newsrunning off

newsboot

newsrunning

Se conecta usando on en vez de o.

Alguna vez se ha preguntado cmo librarse del art o culo Ayuda! No puedo hacer que las X11 funcionen con 0.97.2!!!?

13

Cap tulo 18

Una descripcin de NNTP o


18.1 Introduccin o

El NNTP proporciona una forma de intercambio de noticias totalmente diferente de Cnews, para adaptarse a los protocolos de transporte usados en la Red. NNTP son las siglas de Network News Transfer Protocol (Protocolo de Transferencia de Noticias de Red), y no consiste en un paquete de programas en particular, sino que es un estndar de Internet 1 a Est basado en una comunicacin orientada a la conexin generalmente sobre TCP a o o entre un cliente en alg n lugar de la red, y un servidor que almacena las noticias en disco. u La conexin de ujo permite al cliente y al servidor negociar la transferencia de art o culos interactivamente, sin apenas retrasos, manteniendo bajo el n mero de art u culos duplicados. Junto con los altos ratios de transferencia de Internet, esto supone un transporte de noticias que supera ampliamente a las redes UUCP originales. Mientras que hace algunos a os no n era extra o que un art n culo tardase dos semanas o ms en llegar hasta el ultimo rincn de a o Usenet, ahora suele tardar menos de dos d en la propia Internet, es incluso cuestin de as; o minutos.2 Varios comandos permiten a los clientes obtener, enviar y publicar art culos. La diferencia entre enviar y publicar es que esto ultimo puede incluir a art culos con cabeceras 3 La obtencin de art incompletas. o culos puede ser usada por clientes de transporte de noticias o por lectores de noticias. Esto hace del NNTP una excelente herramienta para proporcionar acceso a muchos clientes de una red local sin tener que pasar por las dicultades que implica usar NFS.
Especicado formalmente en la RFC 977. N. del T.: Parece ser que el autor tiene la fortuna de no conocer los servidores espaoles. n 3 Cuando se publica un art culo mediante NNTP, el servidor siempre aade como m n nimo un campo en la cabecera: NNTP-Posting-Host:, que contiene el nombre del sistema del cliente.
2 1

295

18.1. Introduccin o

296

El NNTP tambin proporciona una forma activa y otra pasiva de transmitir las noticias, e llamadas coloquialmente empujar y tirar. Empujar es bsicamente lo mismo que el a protocolo ihave/sendme de Cnews. El cliente ofrece un art culo al servidor a travs del e comando IHAVE <msgid>, a lo que el servidor responde con un cdigo que indica si ya o tiene el art culo o si lo quiere. En el ultimo caso, el cliente env el art a culo, terminado en un solo punto en una l nea separada. Empujar las noticias tiene la unica desventaja de que consume muchos recursos del servidor, ya que ste tiene que buscar en su archivo histrico para cada art e o culo. La tcnica opuesta es tirar de las noticias, en la que el cliente solicita una lista de todos e los art culos disponibles en un grupo que hayan llegado despus de una fecha especicada. e La consulta es llevada a cabo por el comando NEWNEWS. De la lista de identicativos de mensaje obtenida, el cliente selecciona aqullos que a n no tenga, usando el comando e u ARTICLE para obtener cada uno de ellos. El problema de esta tcnica es que necesita un estricto control por parte del servidor, que e debe tener en cuenta qu grupos y distribuciones permite solicitar al cliente. Por ejemplo, e debe asegurarse de que ning n material condencial de sus grupos locales sea enviado a u clientes no autorizados. Existe tambin cierto n mero de comandos convenientes para los lectores de noticias e u que permiten obtener la cabecera del art culo y el cuerpo del mismo separadamente, o incluso slo ciertos campos de la cabecera de un rango de art o culos. Esto permite mantener todas las noticias en un servidor central, con todos los usuarios de la red (presumiblemente local) utilizando programas clientes basados en el NNTP para leer y publicar. Esto es una alternativa a exportar los directorios mediante NFS tal como se describe en el cap tulo 17. Un problema extendido en NNTP es que permite a gente con los conocimientos sucientes insertar art culos con remitentes falsos en el ujo de noticias. Esto se conoce como falsicar las noticias.4 Una extensin del NNTP permite requerir autenticacin del usuario o o para ciertos comandos. Hay cierto n mero de paquetes NNTP disponibles. Uno de los ms conocidos es el u a demonio NNTP, tambin conocido como la implementacin de referencia. Fue escrito orie o ginalmente por Stan Barber y Phil Lapsley para ilustrar los detalles de la RFC 977. Su versin ms reciente es nntpd-1.5.11, que se describir a continuacin. Usted puede obtener o a a o el cdigo fuente y compilarlo por su cuenta, o usar el nntpd del paquete binario net-std de o Fred van Kempen. No se proporcionan ejecutables del nntpd listos para funcionar, ya que varios valores espec cos de cada sistema deben ser introducidos antes de la compilacin. o
El mismo problema existe con el SMTP, el Simple Mail Transfer Protocol (Protocolo Simple para Transferencia de Correo).
4

18.2. Instalacin del servidor NNTP o

297

El paquete nntpd consiste en un servidor y dos clientes para empujar y tirar de las noticias, respectivamente, as como un sustituto para inews. Estn pensados para trabajar a en el entorno de Bnews, pero trabajndoselo un poco lo harn con Cnews sin demasiada a a dicultad. Sin embargo, si planea Vd. usar el NNTP para algo ms que ofrecer acceso a a su servidor a los lectores de noticias, la implementacin de referencia no es realmente o una opcin. Por tanto, discutiremos solamente el demonio NNTP contenido en el paquete o nntpd, dejando de lado los programas clientes. Tambin hay un paquete llamado InterNet News, o INN para abreviar, escrito por e Rich Salz. Este paquete proporciona tanto transporte NNTP como UUCP, y es el ms adea cuado para grandes servidores. En lo que a transporte NNTP se reere, es denitivamente mejor que nntpd. La versin actual de INN es inn-1.4sec. Existe un paquete de Arjan de o Vet para construir INN en una mquina Linux; est disponible en sunsite.unc.edu en a a el directorio system/Mail. Si quiere congurar INN, por favor rem tase a la documentacin que acompa a al cdigo fuente, as como al FAQ de INN, publicado regularmente en o n o news.software.b.

18.2

Instalacin del servidor NNTP o

El servidor NNTP se llama nntpd, y puede ser compilado de dos maneras, seg n el trco u a que se espera que soporte el sistema de noticias. No hay versiones compiladas disponibles, ya que algunos valores por defecto dependientes del sistema en que se vaya a instalar deben ser especicados antes de la compilacin. Toda la conguracin se hace a travs de macros o o e #define en common/conf.h. nntpd puede ser congurado como un servidor independiente que se inicie desde rc.inet2 al arrancar, o como un demonio controlado por inetd. En el ultimo caso se tendr que a a adir la siguiente entrada en /etc/inetd.conf : n
nntp stream tcp nowait news /usr/etc/in.nntpd nntpd

Si congura Vd. nntpd como servidor independiente, aseg rese de que la l u nea anterior est comentada en inetd.conf. En cualquier caso, tendr Vd. que asegurarse de que existe a a la siguiente l nea en /etc/services:
nntp 119/tcp readnews untp # Network News Transfer Protocol

Para almacenar temporalmente los art culos que llegan al sistema, etc, nntpd tambin e necesita un subdirectorio .tmp en el directorio de almacenamiento de noticias. Puede Vd. crearlo usando

18.3. Restricciones de acceso NNTP

298

# mkdir /var/spool/news/.tmp # chown news.news /var/spool/news/.tmp

18.3

Restricciones de acceso NNTP

El acceso a los recursos NNTP se rige por el chero nntp access en /usr/lib/news. Las l neas del chero describen los derechos de acceso para ordenadores ajenos. Cada l nea tiene el siguiente formato:
site read|xfer|both|no post|no [!exceptgroups]

Si un cliente se conecta al puerto NNTP, nntpd intenta obtener su nombre completo en la red a partir de su direccin IP. El nombre del ordenador del cliente y su direccin IP son o o contrastados con el campo site de cada entrada, en el mismo orden en el que aparecen en el chero. Las coincidencias pueden ser parciales o exactas. Si una entrada coincide exactamente, se aplica; si la coincidencia es parcial, slo se aplica si no hay otra entrada o posterior igual o mejor. site puede especicarse de una de las siguientes formas: nombre del ordenador Este es el nombre completo del ordenador. Si coincide literalmente con el nombre cannico del cliente, se aplica directamente esta entrada ignorndose o a las siguientes. direccin IP o Esta es la direccin IP representada por cuatro n meros separados por puno u tos. Si la direccin IP del cliente coincide con ella, se aplica la entrada o ignorndose las siguientes. a nombre del dominio Esto es un nombre de dominio, especicado como *.dominio . Si el dominio del cliente coincide con l, se aplica la entrada. e nombre de la red Esto es el nombre de una red tal y como se especica en /etc/networks. Si el n mero de red de la direccin IP del cliente coincide con el n mero de red u o u asociado al nombre de la red, se aplica la entrada. default Es la entrada por omisin; se aplica a cualquier cliente. o

Las entradas con especicaciones ms generales deber ser introducidas al principio a an del chero, ya que despus pueden ser descartadas al encontrarse mejores coincidencias en e entradas posteriores.

18.4. Autorizacin NNTP o

299

Los campos segundo y tercero describen los derechos de acceso que se otorgan al cliente. El segundo detalla los permisos de lectura (read) y transmisin por empuje (xfer ) de noticias. o El valor both habilita ambos, el valor no niega el acceso a los dos. El tercer campo detalla si el cliente puede publicar art culos, es decir, enviar art culos con informacin incompleta o en la cabecera que ser completada por los programas de noticias. Si el segundo campo a contiene no, el tercero es ignorado. El cuarto campo es opcional. Contiene una lista de grupos separados por comas a los que el cliente no puede acceder. A continuacin se muestra un chero nntp access de ejemplo: o
# # por defecto, cualquiera puede transferir noticias, pero no # leerlas o publicarlas default xfer no # # public.vbrew.com ofrece acceso publico via modem, asi que les # dejamos leer y publicar en cualquier grupo menos en los local.* public.vbrew.com read post !local # # el resto de ordenadores de vbrew.com puede leer y publicar *.vbrew.com read post

18.4

Autorizacin NNTP o

Al poner en may sculas los elementos del chero nntp acces, tales como xfer o read, nntpd u exige que el cliente est autorizado para realizar dichas operaciones. Por ejemplo, si se e especica el permiso Xfer o XFER, nntpd no dejar transmitir art a culos al cliente a menos que ste acredite que est autorizado. e a El proceso de autorizacin se lleva a cabo por un nuevo comando del NNTP llamao do AUTHINFO. Usando este comando, el cliente transmite un nombre de usuario y una contrase a al servidor NNTP. nntpd los validar comprobando el chero /etc/passwd, y n a vericando que el usuario pertenece al grupo nntp. Lo actual implementacin de la autorizacin NNTP es slo experimental, por lo que no o o o se ha hecho muy portable. Por ello slo funcionar con cheros /etc/passwd normales; el o a shadow password no est soportado. a

18.5. Interaccin de nntpd con Cnews o

300

18.5

Interaccin de nntpd con Cnews o

Cuando recibe un art culo, nntpd debe pasarlo al sistema de noticias. Dependiendo de si lo recibi mediante el comando IHAVE o el POST, lo enviar a rnews o inews, respectivameno a te. En vez de llamar a rnews, nntpd tambin puede congurarse (antes de la compilacin) e o para empaquetar los art culos entrantes, y dejar los paquetes resultantes en el directorio /var/spool/news/in.coming, donde sern procesados por relaynews la prxima vez que se a o le invoque. Para llevar a cabo con xito el protocolo ihave/sendme, nntpd tiene que poder acceder e al chero histrico history. Por tanto, antes de la compilacin hay que asegurarse de que o o la ruta a dicho chero est correctamente especicada. Tambin hay que asegurarse de que a e Cnewsy nntpd usen el mismo formato de chero histrico. Cnewsusa funciones dbm para o acceder al chero; sin embargo hay bastantes implementaciones ligeramente incompatibles de la librer dbm. Si Cnewsest enlazado con una librer dbm distinta a la de libc, tambin a a a e deber enlazarse nntpd con dicha librer a a. Un s ntoma t pico de que nntpd y Cnewsdiscrepan en el formato del chero histrico son o los mensajes de error de que nntpd no puede abrirlo, o la recepcin de art o culos duplicados por NNTP. Una prueba conveniente es coger un art culo del sistema, hacer telnet por el puerto del nntpd, y ofrecrselo a nntpd tal como se muestra en el ejemplo de abajo. e Por supuesto, deber reemplazarse <msg@id> con el identicativo del art a culo que quiera ofrecerse a nntpd.
$ telnet localhost nntp Trying 127.0.0.1... Connected to loalhost Escape characters is ^]. 201 vstout NNTP[auth] server version 1.5.11t (16 November 1991) ready at Sun Feb 6 16:02:32 1194 (no posting) IHAVE <msg@id> 435 Got it. QUIT

Este dilogo muestra la reaccin correcta de nntpd: el mensaje Got it indica que ya a o tiene dicho art culo. En cambio, si se obtuviese un mensaje como 335 Ok, signicar que a nntpd no ha podido acceder adecuadamente al chero histrico. Cierre la sesin telnet con o o Ctrl-D. Puede comprobar qu ha ido mal revisando el archivo de registro (log) del sistema; e nntpd env todo tipo de mensajes a syslog. El uso de una librer dbm incompatible suele a a reejarse en un mensaje que indica que dbminit ha fallado.

Cap tulo 19

Conguracin del lector de noticias o


Los lectores de noticias estn pensados para ofrecer al usuario un acceso fcil a las funciones a a de un sistema de noticias, tales como publicar art culos, o purgar los contenidos de un grupo de una manera cmoda. El mayor o menor acierto en cumplir este objetivo es objeto de o interminables discusiones en los grupos de noticias. Algunos de los lectores disponibles que han sido portados a Linux. A continuacin se o describir la instalacin bsica para tres de los ms populares: tin, trn, y nn. a o a a Uno de los lectores ms efectivos es a
$ find /var/spool/news -name [0-9]* -exec cat {} \; | more

As es como los unixeros a ultranza leen sus noticias. La mayor de los lectores de noticias, sin embargo, son mucho ms sosticados. Genea a ralmente ofrecen un interfaz a pantalla completa con niveles separados para mostrar todos los grupos a los que el usuario est suscrito, para mostrar una lista de todos los art a culos de un grupo, y para art culos individuales. En el nivel del grupo, la mayor de los lectores muestran una lista de art a culos en la que aparece el tema de los mismos y el autor. En los grupos grandes es imposible para el usuario caer en la cuenta de los art culos que se reeren unos a otros, aunque es posible identicar las respuestas a un art culo anterior. Una respuesta normalmente repite el t tulo del art culo original precedido por Re: . Adicionalmente, el identicativo del mensaje al que se responde puede indicarse en el campo References:. Ordenar los art culos por esos dos criterios genera peque os arboles llamados n 1 . Una de las tareas al escribir un lector de noticias es dise ar un algoritmo eciente hebras n
1

N. del T.: Son los llamados popularmente threads

301

19.1. Conguracin de tin o

302

para ordenar los art culos, ya que el tiempo requerido para ello es proporcional al cuadrado del n mero de art u culos. No discutiremos aqu cmo se construyen los interfaces de usuario. Todos los lectores o actualmente disponibles para Linux tienen una buena funcin de ayuda, as que el usuario o puede apa arselas solo. n En lo sucesivo, slo trataremos cuestiones administrativas. La mayor de ellas relacioo a nadas con la creacin de bases de datos y contabilidad. o

19.1

Conguracin de tin o

El lector ms verstil en lo que al tratamiento de las hebras se reere es tin. Fue escrito a a por Iain Lea siguiendo el modelo de un lector anterior llamado tas. 2 Ordena las hebras en el momento en el que el usuario accede al grupo, y es muy rpido hacindolo, salvo que se a e haga por NNTP. En un 486DX50 se tarda unos 30 segundos en ordenar mil art culos, leyndolos die rectamente desde el disco. Mediante NNTP con un servidor ocupado, rondar los cinco a 3 Se puede mejorar este tiempo actualizando regularmente los cheros minutos. ndice con la opcin -u, o llamando a tin con la opcin -U. o o Normalmente tin guarda la informacin sobre las hebras en el directorio del usuario, bajo o .tin/index. Esto puede ser costoso en trminos de espacio en disco, as que es posible que e quiera Vd. mantener una sola copia para todos los usuarios. Esto se puede lograr haciendo a tin setuid news, por ejemplo, o alg n otro usuario sin privilegios. 4 tin guardar todos los u a cheros ndice bajo /var/spool/news/.index. Para los accesos a cheros o salidas al shell, volver a ser del usuario real que lo invoc. 5 a o Una solucin mejor es instalar el demonio indexador tind, que se ejecuta como tarea de o fondo y actualiza regularmente los cheros ndice. Sin embargo, este demonio no se incluye en ninguna distribucin para Linux, as que tendr que compilarlo Vd. mismo. Si est Vd. o a a trabajando con una red local con un servidor central de noticias, puede ejecutar tind en el servidor, y hacer que los clientes reciban los ndices por NNTP. Esto, por supuesto, requiere una extensin del NNTP. Los parches necesarios para que nntpd soporte esta extensin se o o incluyen en las fuentes de tin.
Escrito por Rich Skrenta. El tiempo se reduce drsticamente si el servidor NNTP crea las hebras por s mismo y permite al cliente a recibir estos datos. Un servidor que permite hacer esto es INN-1.4, por ejemplo. 4 Sin embargo, no utilice el usuario nobody. Como norma, ningn chero o programa deber ser asociado u a con este usuario. 5 Esta es la razn por la que se obtendrn feos mensajes de error al invocar a tin como superusuario. De o a todas formas, no se deber trabajar como root, es una cuenta para administracin. a o
3 2

19.2. Conguracin de trn o

303

La versin de tin incluida en algunas distribuciones de Linux no tiene soporte NNTP, o pero la mayor s lo incorporan. Cuando se le invoca como rtin o con la opcin -r, tin a o trata de conectar con el servidor especicado en el chero /etc/nntpserver o en la variable de entorno NNTPSERVER. El chero nntpserver simplemente contiene el nombre del servidor en una
sola l nea.

19.2

Conguracin de trn o

trn es tambin el sucesor de un programa anterior, rn (siglas de read news6 ). La t en su nombre e signica threaded7 . Fue escrito por Wayne Davidson. Al contrario que tin, trn no tiene opcin para generar bases de datos sobre las hebras en el o momento de ejecucin. En cambio, usa las bases de datos creadas por un programa llamado mthreads, o el cual debe ser ejecutado regularmente desde cron para actualizar los cheros ndice. No ejecutar mthreads, sin embargo, no signica que no se pueda acceder a los art culos nuevos, solo signica que tendr Vd. todos esos art a culos sobre Novell compra Linux!! esparcidos por el men de seleccin de art u o culos en vez de una sola hebra que pueda evitar fcilmente. a Para activar la ordenacin en hebras de un grupo particular, mthreads se invoca con la lista de o grupos desde la l nea de comandos. La lista se hace exactamente de la misma manera que la del chero sys: mthreads comp,rec,!rec.games.go ordenar en hebras todos los grupos comp y rec, excepto rec.games.go (la gente que juega al Go a no necesita bonitas hebras). Despus de esto, simplemente se le invoca sin ninguna opcin para que e o ordene todos los art culos que vayan llegando. El ordenamiento de todos los grupos del chero active puede ser activado llamando al programa mthreads con la lista de grupos all. Si recibe Vd. las noticias durante la noche, bastar con ejecutar mthreads una vez por la a maana, pero tambin puede hacerlo ms frecuentemente si es necesario. En sistemas con un trco n e a a muy denso, puede ser deseable ejecutar mthreads como tarea de fondo (modo daemon). Si se le llama al arrancar con la opcin -d, se pone como tarea de fondo, comprobando cada diez minutos si o han llegado nuevos art culos, y ordenndolos si este es el caso. Para ejecutar mthreads como tarea a de fondo, ponga la siguiente l nea en el script rc.news: /usr/local/bin/rn/mthreads -deav La opcin -a hace que mthreads ordene automticamente los nuevos grupos segn se vayan o a u creando. La opcin -v habilita los mensajes largos en el archivo de registro, llamado mt.log y o situado en el directorio donde est instalado trn. e
6 7

N. del T.: Leer noticias. N. del T.: Ordenado en hebras.

19.3. Conguracin de nn o

304

Los art culos viejos que ya no estn disponibles en el sistema deben ser eliminados de los cheros e ndice regularmente. Por defecto, slo los art o culos cuyo nmero est por debajo de la l u e nea de 8 otacin sern eliminados. Los art o a culos que a pesar de estar por encima de este nmero hayan u caducado (porque tengan el campo Expires: en la cabecera) pueden ser purgados usando la opcin o -e del programa mthreads. Cuando mthreads est ejecutndose como tarea de fondo, esta opcin a a o hace que use un modo mejorado de purga una vez al d poco despus de la media noche. a, e

19.3

Conguracin de nn o

nn, escrito por Kim F. Storm, proclama ser un lector cuya ultima nalidad es no leer noticias. Su nombre signigica No News9 , y su lema es falta de noticias, buenas noticias. nn es mejor. Para alcanzar su ambiciosa meta, nn viene equipado con gran cantidad de herramientas de mantenimiento que no slo permiten la creacin de hebras, sino tambin comprobaciones extensivas o o e de la consistencia de tales bases de datos, contabilidad, recopilacin de estad o sticas, y restricciones de acceso. Existe tambin un programa de administracin llamado nnadmin, que permite llevar a e o cabo estas tareas interactivamente. Es muy intuitivo, por lo que no profundizaremos estos aspectos, sino que nos limitaremos a la creacin de los cheros o ndice. El programa encargado de manejar las bases de datos para nn se llama nnmaster. Generalmente trabaja en modo daemon, invocado desde el script rc.news o rc.inet2. Se le invoca de la siguiente manera: /usr/local/lib/nn/nnmaster -l -r -C Esto habilita la indexacin para todos los grupos presentes en el chero active. o De manera equivalente, se puede ejecutar nnmaster peridicamente desde cron, pasndole la o a lista de grupos sobre la que actuar. Esta lista es muy parecida a la lista de subscripciones del chero sys, salvo que usa espacios en blanco en vez de comas. En vez del nombre all, se debe usar un argumento vac de "" para referirse a todos los grupos. Un ejemplo es: o # /usr/local/lib/nn/nnmaster !rec.games.go rec comp Tenga en cuenta que el orden es signicativo: la especicacin de grupo que concuerde y est ms o e a a la izquierda es la que vale. Por tanto, si ponemos !rec.games.go despus de rec, los art e culos de este grupo se indexar de todos modos. an nn ofrece varios mtodos para borrar los art e culos caducados de sus bases de datos. El primero es actualizar la base comprobando los directorios de los grupos, y desechando las entradas cuyo art culo correspondiente ya no est disponible. Este es el mtodo por defecto obtenido al invocar a e e nnmaster con la opcin -E. Es razonablemente rpido, a menos que se haga por NNTP. o a
Tenga en cuenta que Cnewsno actualiza su l nea de otacin automticamente; hay que ejecutar updao a temin para ello. Vase el cap e tulo 17. 9 N. del T.: Sin noticias.
8

19.3. Conguracin de nn o

305

El segundo mtodo acta exactamente como la opcin por defecto de mthreads: slo elimina e u o o las entradas referidas a art culos cuyo nmero est por debajo de la l u a nea de otacin en el chero o active. Puede ser habilitado con la opcin -e. o Finalmente, el tercer mtodo consiste en desechar toda la base de datos y catalogar todos los e art culos. Esto puede hacerse pasndole la opcin -E3 a nnmaster. a o La lista de grupos sobre los que actuar se especica mediante la opcin -F, del mismo modo que o se describi anteriormente. Sin embargo, si nnmaster est ejecutndose como tarea de fondo, hay o a a que matarlo (con la opcin -k) antes de proceder a purgar, y reiniciarlo despus con las opciones o e originales. Por lo tanto, los comandos apropiados para purgar los ndices de todos los grupos usando el primer mtodo es: e # nnmaster -kF "" # nnmaster -lrC Hay muchas ms opciones que pueden ser utilizadas para ajustar el comportamiento de nn. Si a le interesa saber cmo eliminar art o culos errneos o agrupar los art o culos resumen, lea la pgina de a manual de nnmaster. nnmaster se gu usando un chero llamado GROUPS, situado en /usr/local/lib/nn. Si no a existe inicialmente, se crea. Para cada grupo, contiene una l nea que comienza con el nombre del mismo, opcionalmente seguido de una anotacin de tiempo y diversos indicadores. Es posible editar o dichos indicadores para habilitar un determinado comportamiento para el grupo en cuestin, pero o 10 no se debe cambiar el orden en que aparecen los grupos. Los indicadores permitidos y sus efectos tambin vienen detallados en la pgina de manual de nnmaster. e a

10

Esto se debe a que el orden debe coincidir con el del chero binario MASTER.

Apndice A e

Un Cable de Impresora para PLIP


En la construccin de un cable de impresora tipo nulo para usar en una conexin PLIP, se necesitarn o o a dos conectores de 25 patillas (de los llamados DB-25) y un cable de 11 hilos. El cable no puede tener ms de 15 metros de largo. a Si mira el conector, podr ver pequeos nmeros en la base de cada patilla, que van desde el a n u 1 en la patilla superior izquierda (si coloca el lado ms ancho arriba) hasta el 25 para la patilla de a abajo a la derecha. Para tener un cable de impresora tipo Nulo, se debern conectar las siguientes a patillas entre ambos conectores: D0 D1 D2 D3 D4 GROUND ERROR SLCT PAPOUT ACK BUSY 215 313 412 510 611 2525 15 2 13 3 12 4 10 5 11 6 ERROR SLCT PAPOUT ACK BUSY GROUND D0 D1 D2 D3 D4

Todas las patillas restantes quedarn desconectadas. Si el cable posee una malla externa, la a misma se conectar a la carcasa metlica del conector DB-25 en uno solo de los extremos. a a

306

Apndice B e

Ejemplos de Archivos de Conguracin para smail o


Este apndice muestra ejemplos de archivos de conguracin para un sistema UUCP terminal en e o una red de area local. Estn basados en los archivos de ejemplo que se incluyen en la distribucin a o de las fuentes de smail-3.1.28. An cuando se intenta explicar someramente cmo trabajan dichos u o archivos, le aconsejo que lea la pgina de manual de smail(8), que trata acerca de estos archivos con a gran detalle. Una vez que Ud. comprendi la idea bsica de la conguracin de smail, merece la o a o pena leerla. Es fcil! a El primer archivo que se muestra es el routers, mediante el cual se establecen los encaminadores de smail. Cuando smail tiene que enviar un mensaje a una direccin dada, prueba con las direcciones o de todos los encaminadores, uno por vez, hasta que concuerda con la de uno de ellos. La concordancia signica que el encaminador encuentra el nodo de destino en su base de datos, sea en el archivo paths, en el /etc/hosts, o en cual sea el mecanismo de encaminamiento que se utilice. Las entradas en los archivos de conguracin de smail siempre comienzan con un nombre unico o que identica el encaminador, transporte, o programa de entrega local. Luego le sigue una lista de atributos que denen su comportamiento. Esta lista consta de un conjunto de atributos globales, tales como el controlador utilizado, y atributos privados que slo tienen sentido para ese controlador o particular. Los atributos estn separados mediante comas. El conjunto de atributos globales se a separa de los privados mediante un punto y coma. Intentemos clasicar estas distinciones. Supongamos que Ud. quiere mantener dos archivos de alias de caminos distintos; uno que contiene la informacin de encaminamiento para su dominio, y o otro que almacena la informacin de encaminamiento global, generada probablemente por los mapas o de UUCP. Con smail, puede especicar dos encaminadores en el archivo routers, y ambos utilizarn a el controlador pathalias. Este controlador busca los nombres de nodo en la base de datos pathalias. # # base de datos de alias de caminos para el encaminamiento dentro del dominio domain_paths:

307

APENDICES

308

driver=pathalias, transport=uux; file=paths/domain, proto=lsearch, optional, required=vbrew.com,

# busca el nodo en el archivo de caminos # si lo encuentra lo envia a traves de UUCP # # # # el archivo es /usr/lib/smail/paths/domain el archivo no esta ordenado (busqueda lineal) si el archivo no existe, no importa buscar solo los nodos tipo *.vbrew.com

# # base de datos de pathalias para encaminamientos fuera de nuestro dominio world_paths: driver=pathalias, # busca el nodo en el archivo de caminos transport=uux; # si lo encuentra, lo envia a traves de UUCP file=paths/world, proto=bsearch, optional, -required, domain=uucp, # # # # # el archivo es /usr/lib/smail/paths/world el archivo fue clasificado con sort(1) si el archivo no existe, no importa no es obligatorio tener dominio quitar el ".uucp" final antes de la busqueda

El segundo atributo global que se ha mostrado en cada una de las dos entradas de routers dene el transporte que se deber utilizar cuando el encaminador haga concordar las direcciones. a En nuestro caso, el mensaje se enviar utilizando el transporte uux. Los transportes se denen en a el archivo transports, que se explica ms adelante. a Se puede hacer un ajuste ms no con respecto a qu transporte se utilizar para enviar un a e a mensaje si especica un archivo de mtodo en lugar del atributo transport. Los archivos de mtodo e e son una forma de traducir los nombres de nodo a los transportes necesarios. No los trataremos aqu . El siguiente archivo routers dene los encaminadores para una red de area local que utiliza la biblioteca de resolucin. Sin embargo, en un nodo Internet Ud. querr utilizar un encaminador o a que maneje registros MX. Por lo tanto, deber quitar los caracteres de comentario del encaminador a alternativo inet bind que usa el controlador BIND incorporado en smail. En un contexto en el cual se utilizan UUCP y TCP/IP a la vez, puede Ud. encontrarse con el problema de que haya ciertos nodos que guran en su archivo /etc/hosts con los cuales se contacta slo ocasionalmente mediante SLIP o PPP. En general, el correo hacia estos sistemas se debe o enviar mediante UUCP. Para evitar que el controlador inet hosts concuerde con dichas mquinas, a deber agregarlos al archivo paths/force. Este archivo es otra base de datos del estilo de alias de a caminos, y se consulta antes de que smail consulte al sistema de resolucin. o # Ejemplo de archivo /usr/lib/smail/routers # # force - obliga a enviar mediante UUCP a ciertos nodos, aun en el caso # en que esten en nuestro /etc/hosts force:

APENDICES

309

driver=pathalias, transport=uux; file=paths/force, optional, proto=lsearch, -required, domain=uucp,

# busca el nodo en el archivo de caminos # si lo encuentra, envio a traves de UUCP # # # # # # el archivo es /usr/lib/smail/paths/force si el archivo no existe, no importa el archivo no esta ordenado (busqueda lineal) no es obligatorio tener dominio quitar el ".uucp" final antes de la busqueda

# inet_addrs - encuentra literales de dominio que contienen literales # de direcciones de IP, como por ejemplo janet@[191.72.2.1] inet_addrs: driver=gethostbyaddr, # controlador para encontrar literales # de dominios IP transport=smtp; # enviar utilizando SMTP sobre TCP/IP fail_if_error, check_for_local, # fallar si la direccion esta mal formada # enviar directamente si nosotros somos # el nodo

# inet_hosts - encuentra nombres de nodo con gethostbyname(3N) # Quitelo de los comentarios si desea usar en su lugar la version BIND inet_hosts: driver=gethostbyname, # busca nodos con la funcion de biblioteca transport=smtp; # usar SMTP de forma predeterminada -required, -domain, -only_local_domain, # no es obligatorio tener dominio # no hay sufijos de dominio definidos # no se restrinja a los dominios definidos

# inet_hosts - version alternativa usando BIND para acceder al DNS #inet_hosts: # driver=bind, # utilizar el controlador BIND incorporado # transport=smtp; # usar TCP/IP SMTP para el envio # # defnames, # usar busqueda de dominio estandar # defer_no_connect, # intentar de nuevo si el servidor de # nombres no esta activo # -local_mx_okay, # # # base de datos tipo pathalias para el encaminamiento dentro del dominio domain_paths: driver=pathalias, # busca el nodo en el archivo de caminos transport=uux; # si lo encuentra, envio a traves de UUCP

APENDICES

310

file=paths/domain, proto=lsearch, optional, required=vbrew.com,

# # # # #

el archivo es /usr/lib/smail/paths/domain el archivo no esta ordenado (busqueda lineal) si el archivo no existe, no importa buscar solo los nodos tipo *.vbrew.com

# # base de datos tipo pathalias p/encaminar hacia nodos fuera de nuestro dominio world_paths: driver=pathalias, # busca el nodo en el archivo de caminos transport=uux; # si lo encuentra, envio a traves de UUCP file=paths/world, proto=bsearch, optional, -required, domain=uucp, # # # # # el archivo es /usr/lib/smail/paths/world el archivo fue clasificado con sort(1) si el archivo no existe, no importa no es obligatorio tener dominios quitar el ".uucp" final antes de la busqueda

# smart_host - redireccionador de nodo inteligente parcialmente especificado # Si el atributo smart_path no se define en # /usr/lib/smail/config, se ignorara este encaminador. # La variable global smart_transport tiene precedencia sobre # el atributo transport smart_host: driver=smarthost, # controlador para el caso especial transport=uux; # si no hay otra especificacion, # envio a traves de UUCP -path, # usar la variable del archivo # de configuracion smart_path

El manejo del correo para las direcciones locales se congura en el archivo directors. Este se construye de la misma manera que el archivo routers, y consta de una lista de entradas que denen los redirectores respectivos. Los redirectores no env los mensajes, sino que solamente realizan an todas las redirecciones que sean posibles, por ejemplo a travs de alias, reenv de correo y cosas por e o el estilo. Cuando se env correo a una direccin local, como janet, smail pasa el nombre del usuario a a o todos los redirectores del mdulo de entrega local, uno por vez. Si un redirector concuerda, entonces o o bien especica el transporte a travs del cual el mensaje debe enviarse (por ejemplo, el nombre de e archivo del buzn del usuario) o, si no, genera una nueva direccin (por ejemplo al evaluar un alias). o o Por las cuestiones de seguridad involucradas, los redirectores generalmente realizan varios controles para ver si los archivos que se usan son archivos sensibles del sistema. Las direcciones que se

APENDICES

311

obtienen a partir de medios dudosos (por ejemplo desde un archivo aliases con permisos de escritura para todo el mundo) se indican como inseguras. Algunos controladores de transporte se negarn a a utilizar dichas direcciones, por ejemplo el transporte que env mensajes a un archivo. a Adems, smail tambin asocia un usuario con cada direccin. Cualquier operacin de lectura o a e o o escritura se realizan operando con los permisos y privilegios del usuario correspondiente. Para enviar un mensaje a, por ejemplo el buzn de janet, la direccin est asociada por supuesto a janet. Las o o a otras direcciones, tales como las que se obtienen del archivo aliases, tienen otros usuarios asociados a ellas, por ejemplo, el usuario nobody. Para ms detalles de estas caracter a sticas, rerase por favor a la pgina de manual de smail(8). e a

# Ejemplo de archivo /usr/lib/smail/directors # aliasinclude - expande las direcciones ":include:filename" # producidas por los archivos de alias aliasinclude: driver=aliasinclude, # use este controlador para caso especial nobody; # si es inseguro, acceder al archivo como # usuario nobody copysecure, copyowners, # # # # obtener los permisos desde el redireccionador de alias obtener los propietarios a partir del redireccionador de alias

# forwardinclude - expande las direcciones ":include:filename" # producidas por los archivos de reenvio (forward) forwardinclude: driver=forwardinclude, # use este controlador de caso especial nobody; # si es inseguro, acceder al archivo como # usuario nobody checkpath, copysecure, copyowners, # # # # # controlar la accesibilidad del camino obtener los permisos desde el redireccionador de reenvios obtener los propietarios desde el redireccionador de reenvios

# aliases - buscar las expansiones de alias almacenadas en la base de datos aliases: driver=aliasfile, # redireccionador de alias de proposito general -nobody, # de manera predeterminada, todas las direcciones # estan siempre asociadas a nobody sender_okay, # no quitar el remitente de las expansiones owner=owner-$user; # los problemas se mandan a la direccion

APENDICES

312

# del propietario file=/usr/lib/aliases, modemask=002, optional, proto=lsearch, # # # # predeterminado: compatible con sendmail no debe ser de escritura para todo el mundo si el archivo no existe, no importa archivo ASCII sin ordenar .forward de los directorios home

# dotforward - expande los archivos # de los usuarios dotforward: driver=forwardfile, # # owner=real-$user, # nobody, # sender_okay; # file=~/.forward, checkowner,

redireccionador de reenvios de proposito general los problemas se envian al buzon del usuario usar usuario nobody, si es inseguro nunca se quita el remitente en la expansion

# archivo .forward en los directorios home # el usuario puede ser el propietario # de este archivo owners=root, # o el root puede serlo modemask=002, # no debe ser de escritura para todo el mundo caution=0-10:uucp:daemon, # no correr como root o daemon # hay que ser extremadamente cuidadoso con los directorios home # que se acceden remotamente unsecure="~ftp:~uucp:~nuucp:/tmp:/usr/tmp", # forwardto - expande la linea "Forward to " al frente # del archivo buzon del usuario forwardto: driver=forwardfile, owner=Postmaster, # errores al Postmaster nobody, # usar usuario nobody, si es inseguro sender_okay; # no quitar remitente en la expansion file=/var/spool/mail/${lc:user}, # posicion del buzon del usuario forwardto, # habilitar el control "Forward to " checkowner, # el usuario puede ser propietario # de este archivo owners=root, # o el root puede serlo modemask=0002, # bajo System V, el grupo mail puede escribirlo caution=0-10:uucp:daemon, # no corra como root o daemon # user - encuentra usuarios en el nodo local con envio a sus respectivos buzones user: driver=user; # controlador para encontrar nombres de usuario transport=local, # el transporte local es hacia los buzones

APENDICES

313

# real_user - encuentra nombres de usuario cuando estan prefijados # con la cadena "real-" real_user: driver=user; # controlador para encontrar nombres de usuario transport=local, prefix="real-", # el transporte local es hacia los buzones # por ejemplo, encontrar real-root

# lists - expande listas de correo almacenadas debajo de /usr/lib/smail/lists lists: driver=forwardfile, caution, # marcar todas las direcciones con prudencia nobody, # y luego asociarlas al usuario nobody sender_okay, # NO quitar el remitente owner=owner-$user; # el propietario de la lista # pasar a minusculas el nombre de la lista de correo file=lists/${lc:user},

Despus de encaminar o redireccionar un mensaje, smail lleva el mensaje al transporte especie cado por el encaminador o redireccionador que concord con la direccin. Estos transportes estn o o a denidos en el archivo transports. Nuevamente, se dene un transporte mediante un conjunto de opciones globales y privadas. La opcin ms importante que se dene para cada entrada se reere al controlador que realiza el o a transporte, por ejemplo el controlador pipe, que invoca el comando especicado en el atributo cmd. Adems de ste, existen una cierta cantidad de atributos globales que puede utilizar un transporte, a e que realizan varias transformaciones en la cabecera del mensaje, y posiblemente en su cuerpo. El atributo return path, por ejemplo, hace que el transporte inserte un campo return path en la cabecera del mensaje. El atributo unix from hack hace que se preceda toda ocurrencia de la palabra From al principio de una l nea con el signo >.

# Ejemplo de archivo /usr/lib/smail/transports # local - envia correo a los usuarios locales local: driver=appendfile, # agrega el mensaje al archivo return_path, # incluir un campo Return-Path: from, # proveer una linea de sobre con From_ unix_from_hack, # insertar > antes de From en el cuerpo local; # usar formatos locales para el envio file=/var/spool/mail/${lc:user}, # posicion del archivo buzon group=mail, # el grupo propietario del archivo # para System V mode=0660, # el grupo mail puede acceder

APENDICES

314

suffix="\n",

# agregar un cambio de linea extra

# pipe - enviar el correo a traves de comandos de shell pipe: driver=pipe, # encauzar el mensaje hacia otro programa return_path, # incluir un campo Return-Path: from, # proveer una linea de sobre con From_ unix_from_hack, # insertar > antes de From en el cuerpo local; # usar formatos locales para el envio cmd="/bin/sh -c $user", # enviar las direcciones al shell Bourne parent_env, # info de entorno a partir de la direccion # del padre pipe_as_user, # usar user-id asociado con la direccion ignore_status, # ignore un status de salida distinto de cero ignore_write_errors, # ignore errores de escritura, # por ejemplo: tuberia cortada umask=0022, # umask para el proceso hijo -log_output, # no registrar stdout/stderr en el # archivo de registro # file - enviar el correo a archivos file: driver=appendfile, return_path, # incluir un campo Return-Path: from, # proveer una linea de cabecera con From_ unix_from_hack, # insertar > antes de From en el cuerpo local; # usar formatos locales para el envio file=$user, append_as_user, expand_user, suffix="\n", mode=0600, # # # # # # el nombre del archivo se toma de la direccion usar el user-id asociado con la direccion expandir ~ y $ dentro de la direccion agregar un cambio de linea extra poner los permisos en 600

# uux - envios al programa rmail de una instalacion UUCP remota uux: driver=pipe, uucp, # usar formatos de direcciones estilo UUCP from, # proveer una linea de sobre con Form_ max_addrs=5, # maximo 5 direcciones por invocacion max_chars=200; # maximo 200 caracteres en direccion cmd="/usr/bin/uux - -r -a$sender -g$grade $host!rmail $(($user)$)", pipe_as_sender, # que los registros uucp registren al llamador log_output, # guardar las salidas de error para # los mensajes rebotados defer_child_errors, # reintentar si uux retorna un error

APENDICES

315

# demand - envios al programa rmail remoto, el sondeo es inmediato demand: driver=pipe, uucp, # usar formatos de direcciones estilo UUCP from, # proveer una linea de sobre con Form_ max_addrs=5, # maximo 5 direcciones por invocacion max_chars=200; # maximo 200 caracteres en direccion cmd="/usr/bin/uux - -a$sender -g$grade $host!rmail $(($user)$)", pipe_as_sender, # que los registros uucp registren al llamador log_output, # guardar las salidas de error para # los mensajes rebotados defer_child_errors, # reintentar si uux retorna un error

# hbsmtp - half-baked BSMTP. Los archivos de salida deben procesarse # regularmente y enviarse via UUCP. hbsmtp: driver=appendfile, inet, # usar direccionamiento RFC 822 hbsmtp, # SMTP por lotes sin HELO ni QUIT -max_addrs, -max_chars; # no hay limite en el numero de direcciones file="/var/spool/smail/hbsmtp/$host", user=root, # el archivo es propiedad de root mode=0600, # solo legible-escribible por root. # smtp - envios utilizando SMTP sobre TCP/IP smtp: driver=tcpsmtp, inet, -max_addrs, -max_chars; # no hay limite en el numero de direcciones # timeout para operaciones breves # timeout para operaciones SMTP # de mayor duracion service=smtp, # conectar a este puerto de servicio # Para uso en internet: descomente las siguientes 4 lineas # use_bind, # resolver MX y registros A multiples # defnames, # usar busqueda de dominio estandar # defer_no_connect, # reintentar si el servidor de nombres # # no esta activo # -local_mx_okay, # no usar MX con el sistema local short_timeout=5m, long_timeout=2h,

Apndice C e

The GNU General Public License


Printed below is the GNU General Public License (the GPL or copyleft), under which Linux is licensed. It is reproduced here to clear up some of the confusion about Linuxs copyright status Linux is not shareware, and it is not in the public domain. The bulk of the Linux kernel is copyright c 1993 by Linus Torvalds, and other software and parts of the kernel are copyrighted by their authors. Thus, Linux is copyrighted, however, you may redistribute it under the terms of the GPL printed below. GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 675 Mass Ave, Cambridge, MA 02139, USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.

C.1

Preamble

The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free softwareto make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundations software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights

316

C.2. Terms and Conditions

317

or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) oer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each authors protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modied by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reect on the original authors reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in eect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyones free use or not licensed at all. The precise terms and conditions for copying, distribution and modication follow.

C.2

Terms and Conditions for Copying, Distribution, and Modication

0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The Program, below, refers to any such program or work, and a work based on the Program means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modications and/or translated into another language. (Hereinafter, translation is included without limitation in the term modication.) Each licensee is addressed as you. Activities other than copying, distribution and modication are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Programs source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option oer warranty protection in exchange for a fee.

C.2. Terms and Conditions

318

2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a. You must cause the modied les to carry prominent notices stating that you changed the les and the date of any change. b. You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c. If the modied program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modied work as a whole. If identiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a. Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b. Accompany it with a written oer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c. Accompany it with the information you received as to the oer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and

C.2. Terms and Conditions

319

only if you received the program in object code or executable form with such an oer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface denition les, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by oering access to copy from a designated place, then oering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of

C.2. Terms and Conditions

320

protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may dier in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program species a version number of this License which applies to it and any later version, you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are dierent, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM AS IS WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO

C.3. How to Apply These Terms

321

USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS

C.3

Appendix: How to Apply These Terms to Your New Programs

If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source le to most eectively convey the exclusion of warranty; and each le should have at least the copyright line and a pointer to where the full notice is found. one line to give the programs name and a brief idea of what it does. Copyright c 19yy name of author This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) 19yy name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type show w. This is free software, and you are welcome to redistribute it under certain conditions; type show c for details.

C.3. How to Apply These Terms

322

The hypothetical commands show w and show c should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than show w and show c; they could even be mouse-clicks or menu itemswhatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a copyright disclaimer for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program Gnomovision (which makes passes at compilers) written by James Hacker. signature of Ty Coon , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License.

Glosario
[Nota: Este glosario est lgicamente incompleto, as que estoy abierto a cualquier a o sugerencia.] Una de las mayores dicultades del estudio de las redes de ordenadores, es recordar todas las abreviaturas y trminos que rodean la teleinformtica. Aqu se tratar de mostrar los trminos que e a a e se han usado en este libro, junto a una pequea explicacin.1 n o ACU ARP Automatic Call Unit, Unidad de Llamada Automtica. Un mdem.2 a o Address Resolution Protocol, Protocolo de Resolucin de Direcciones. Se utiliza o para conocer la correspondencia entre direcciones IP y direcciones Ethernet. Advanced Research Project Agency, posteriormente DARPA. En Castellano ser a algo as como Instituto de Proyectos Avanzados de Investigacin. Es la creadora de o Internet. Antecesora de lo que hoy es Internet: era una red experimental norteamericana, fundada por el DARPA (Defense Advanced Research Project Agency) que es como el instituto ARPA pero con nes militares.

ARPA

ARPANET

Assigned Numbers T tulo del RFC publicado regularmente y que lista la correspondencia convenida entre nmeros de puerto y similares, con respecto a su signicado. Por ejemplo, u incluye los nmeros de servicios bien conocidos (well known) como el puerto de u rlogin o SMTP. La ultima versin de este RFC es la 1340. o BBS Bulletin Board System, Sistema de Boletn electrnico. Es un nodo de noticias y o correo al que se accede por telfono. e Border Gateway Protocol, Protocolo para Pasarelas de Extremo. Es un protocolo que sirve para intercambiar informacin de encaminamiento entre los sistemas o autonmos. o

BGP

N. del T.: Algunos trminos han sido incluidos por el traductor, y otros actualizados a los tiempos que e corren. Algunas traducciones de los nombres de protocolos pueden no ser correctas, as que ruego nos hagan llegar cualquier sugerencia al respecto. 2 Tambin puede signicar un adolescente con un telfono en sus manos. e e

323

Glosario

324

BIND

Berkeley Internet Name Domain, servidor de Nombres de Dominios de Berkeley. Es una implementacin del servicio DNS. o Basic Networking Utilities, Utilidades Bsicas de Red. Es el paquete de aplicacioa nes UUCP ms usual en este momento; que tambin se conoce como UUCP de a e HoneyDanBer. El nombre se deriva de sus autores: P. Honeyman, D.A. Novitz, y B.E. Redman. Berkeley Software Distribution. Es una versin de un x producida en la Universio dad de Berkeley. Comite Consultatif International de Tlgraphique et Tlphonique, Comit Cone ee ee e sultivo Internacional de Telefona y Telegrafa3 . Es una organizacin internacional o que estudia los estndares para los servicios de telefon redes, etc. a a, Compressed Serial Line IP, IP por Lnea Serie con Compresin. Protocolo para el o intercambio de paquetes IP por una l nea serie, aadiendo compresin de cabeceras n o a la mayor parte de los datagramas TCP/IP.

BNU

BSD

CCITT

CSLIP

demonio de encaminamiento La topolog de las redes grandes no es esttica y resulta dif el mantenimiento a a cil de adaptacin de todos los nodos a esos cambios. Por ello se trata de automatizar o mediante demonios de encaminamiento usando protocolos como RIP. DNS Domain Name System, Sistema de Nombres de Dominios. Es una base de datos distribuida que se utiliza en Internet para obtener las direcciones IP asociadas a los nombres. External Gateway Protocol, Protocolo para Encaminadores Externo. Es un protocolo con el mismo n que el mencionado BGP, es decir, intercambiar informacin o de encaminamiento entre sistemas autnomos. o En sentido coloquial, es el nombre que se le da a una instalacin de red (La ethernet o de la Universidad, etc). En realidad, Ethernet es parte de un conjunto de estndares a propuestos por el IEEE. Los dispositivos de conexin Ethernet utilizan un solo cable, o normalmente coaxial, que permite transferencias de 10 Mbits/segundo. El protocolo utilizado determina cmo las mquinas tienen acceso al cable.4 o a Fully Qualied Domain Name, Nombre de Nodo Totalmente Calicado. Es un nombre de nodo completo, es decir, incluyendo el dominio al que pertenece: se encuentra en la base de datos del sistema DNS. File Transfer Protocol, Protocolo de Transferencia de Ficheros. Es uno de los protocolos de TCP/IP ms conocido, pues es el que se usa para enviar cheros de un a lugar a otro de la red.

EGP

Ethernet

FQDN

FTP

Hoy conocido como ITU, International Telecommunication Union o Unin Internacional de Telecomuo nicaciones. 4 Adems, el protocolo de Ethernet usado normalmente con TCP/IP no es exactamente el que se deni a o en la norma IEEE 802.3, ya que donde ste habla del campo longitud, el otro habla del campo tipo. e

Glosario

325

FYI

For Your Information, para su informacin. Documentos ms o menos informales o a que tratan sobre temas de Internet. Groucho Marx University, la Universidad de Groucho Marx. Universidad que nos hemos inventado en este libro para los ejemplos que ilustran los conceptos que se dan a conocer en ste. e GNUs not Unix, GNU No es Unix. Acrnimo recursivo del proyecto de la Fundao cin del Software Libre (FSF) que pretende proporcionar un conjunto de utilidades o tipo un x, que pueden usarse y distribuirse libremente. Todo el software de GNU est cubierto por la Licencia Pblica General de GNU, o Copyleft. En el apndice C a u e se reproduce dicha Licencia. Nombre de una variedad de UUCP. Vase BNU. e En general, un host es un nodo de red, es decir, algo que es capaz de recibir y enviar algn tipo de mensajes en la red. Normalmente ser un ordenador, pero puede ser u a tambin un terminal X o una impresora de red. e Internet Control Message Protocol, Protocolo de Mensajes de Control de Internet. Es un protocolo utilizado por TCP/IP para devolver informacin de errores al nodo o que env el paquete, etc. a Institute of Electrical and Electronics Engineers, Instituto de Ingenieros Elctricos e y Electrnicos. Es otra organizacin que establece estndares. Desde el punto de o o a vista del usuario de UNIX, lo que interesa es que establece los estndares POSIX a que denen aspectos que van desde las llamadas al sistema hasta qu comandos de e administracin deben existir. o Adems, el IEEE desarroll las especicaciones para las redes de difusin Ethernet, a o o las de paso de testigo en bus (TokenBus) y en anillo (TokenRing). Finalmente, la representacin interna de coma otante ms utilizada tambin es un o a e estndar propuesto por el IEEE. a

GMU

GNU

HoneyDanBer host

ICMP

IEEE

IETF internet Internet IP ISO

Internet Engineering Task Force, Grupo de Ingeniera en Internet. Red de redes: unin de pequeas redes de ordenadores. o n El nombre que se le ha dado a la Internet distribuida por todo el mundo. Internet Protocol, protocolo de internet. International Standards Organization, Organizacin Internacional de Estandarizao cin. o Integrated Services Digital Network, Red Digital de Servicios Integrados. Nueva tecnolog para comunicaciones que utiliza circuitos digitales, y est llamada a susa a tituir a la telefon tradicional. a HiperText Markup Language, Lenguaje de Descripcin de Hipertexto. Es el lenguaje o en el que se escriben los documentos que luego se van a transmitir en la WWW

ISDN

HTML

Glosario

326

(vanse, WWW y HTTP). e HTTP HiperText Transfer Protocol, Protocolo para Transferencia de HiperTexto. Es el protocolo que se utiliza para transmitir documentos de la WWW a los programas de usuario conocidos como navegadores.5 Local Area Network, red de area local. Mail Exchanger, Intercambiador de Correo. Un tipo de registro DNS que se utiliza para indicar cul es el servidor de correo asociado a un dominio. a Network File System, Sistema de Ficheros en Red. Es un protocolo estndar junto a con un conjunto de programas que permite acceder a los datos de discos remotos de manera transparente, como si fueran discos locales. Network Information System, Sistema de Informacin de Red. Es una aplicacin o o basada en RPC que permite compartir cheros de conguracin como el /etc/passwd o entre distintas mquinas. Vase tambin YP. a e e Network News Transfer Protocol, Protocolo de Transferencia de Noticias. Se utiliza para transmitir noticias a travs de conexiones TCP. e

LAN MX

NFS

NIS

NNTP

nombre cannico de nodo o En un sistema DNS, es el nombre principal de una mquina, es decir, establecido a mediante un registro DNS tipo A, y es el que se devuelve cuando se hace una peticin de nombre a partir de la direccin IP. o o octeto En la Internet, este trmino se reere a la cantidad de ocho bits. Se usa en lugar e de byte (palabra) debido a que en algunas se tienen palabras de ms de 8 bits. a Open Systems Interconnection, Interconexin de Sistemas Abiertos. Es un estndar o a del ISO acerca del software de red. En UUCP es sinnimo a ruta (camino seguido por los mensajes). Es tambin lo o e que hemos llamado ruta de signos de admiracin. o Parallel Line IP, IP por Lnea Paralela. Es un protocolo que permite intercambiar paquetes IP usando el puerto de la impresora.

OSI

path

PLIP

puerto, TCP o UDP En TCP y UDP, un puerto es lo que en OSI se conoce como punto de acceso al servicio. Antes de que un proceso acceda o d un servicio de red, debe pedir un e puerto (bind). Junto con la direccin IP, identica totalmente los dos extremos de o una conexin TCP. o portmapper El portmapper o mapeador de puertos, es el programa que traduce entre nmeros de u programa RPC y los puertos TCP o UDP por los que escuchan dichos programas. Point-to-point Protocol, Protocolo Punto-a-Punto. Es un protocolo rpido y exia

PPP
5

Algunas voces se han alzado ya, culpando a HTTP y a su descuidado diseo, de la actual lentitud de la n

red.

Glosario

327

ble, usado para intercambiar paquetes IP e IPX a travs de una l e nea serie (telfono) e o incluso sobre un protocolo de nivel de enlace HDLC para su uso en la RDSI. RARP Reverse Address Resolution Protocol, Protocolo de Resolucin Inversa de Direccioo nes. Permite a las mquinas preguntar a la red por su direccin IP cuando se ponen a o en marcha.

Red de almacenamiento-y-reenv o Opuesto al concepto de conmutacin de paquetes. Estas redes transeren paquetes o pero no tienen conexiones permanentes. En su lugar, las mquinas conectan de vez a en cuando con el otro extremo y transmiten los datos de una vez. Esto requiere que el nodo tenga capacidad de almacenamiento. Red de Conmutacin de Paquetes o Es un tipo de red formada por nodos que se limitan a intercambiarse paquetes entre s de forma segura, de tal forma que en ella se establecen circuitos virtuales permanentes o semipermanentes. red de difusin Es una red que permite a las estaciones enviar datagramas y que sean vistos por o varias estaciones a la vez. registro de recurso, RR Es la unidad de informacin en la base de datos DNS. Cada registro es de un tipo, o por ejemplo, contiene la direccin IP de una mquina (registro tipo A), o el servidor o a de correo de un dominio (registro tipo MX). resolutor, sistema de resolucin o Es un conjunto de funciones de biblioteca que permiten a los programas obtener las direcciones IP de las mquinas por su nombre, y viceversa. a resolucin inversa o El acto de obtener un nombre dada la direccin IP. En DNS, dichas direcciones se o devuelven como parte del dominio in-addr.arpa. RFC Request for Comments, Peticin de Sugerencias. Son documentos que describen los o estndares de Internet. Su nombre procede de que inicialmente eran solo propuesa tas de los autores, para ser discutidas. Routing Information Protocol, Protocolo de Informacin de Encaminamiento. Es o un protocolo de encaminamiento dinmico, utiles en redes no muy grandes. a Secuencia de mquinas por las que una unidad de informacin debe pasar para a o llegar al nodo destino. El proceso de encontrar una ruta apropiada se conoce como encaminamiento.

RIP

ruta

ruta de signos de admiracin o En las redes UUCP, la ruta de un sistema a otro se nota mediante nombres y signos de admiracin. Por ejemplo, nodo0!nodo1!nodo2!nodo3 denota que la ruta al o sistema nodo3 pasa por nodo0, nodo1 y nodo2. RPC Remote Procedure Call, Llamada a Procedimiento Remoto. Es el mecanismo por el cual se pide la ejecucin de procedimientos en mquinas remotas. o a

Glosario

328

RR RS-232 RTS/CTS

Abreviatura de registro de recurso, en DNS. Estndar habitual para enlaces serie. a Nombre coloquial que recibe el control de ujo por hardware, realizado entre dos mquinas que se comunican usando RS-232. El nombre procede de los dos circuitos a utilizados, RTS (Request To Send) y CTS (Clear To Send).

RTM Internet Worm Un programa a modo de virus que utiliza ciertas caracter sticas de VMS y Unix BSD 4.3 para propagarse por la red. RTM son las siglas de su autor (Robert T. Morris). sitio Conglomerado de nodos que desde fuera se ven como un nodo de la red. Por ejemplo, desde fuera vemos como nodo de Internet a la Universidad de Groucho Marx, cuando en realidad es una red de ordenadores bastante compleja6 . Serial Line IP, IP por Lnea Serie. Es un protocolo para intercambiar paquetes IP usando una l nea serie. Vase tambin CSLIP. e e Simple Mail Transfer Protocol, Protocolo Simple para Transferencia de Correo. Es un protocolo usado para transportar correo mediante conexiones TCP, as como correo por lotes en UUCP (BSMTP). Start of Authority, Inicio de Autoridad. Es un tipo de registro que existe en la base de datos del DNS. Una versin de un x. o Transmission Control Protocol, Protocolo de Control de la Conexin. Es un protoo colo de red orientado a la conexin. o Abreviatura usada para denotar los protocolos de Internet. User Datagram Protocol, Protocolo de Datagramas de Usuario. Es un protocolo de red no orientado a la conexin. o Unix to Unix Copy, Copiador de Unix a Unix. Es un conjunto de comandos para transporte en red, usado en redes de marcado telefnico. o

SLIP

SMTP

SOA

System V TCP

TCP/IP UDP

UUCP

UUCP Versin 2 o Versin evolucionada de UUCP. o cerveza virtual Es la bebida preferida de todo Linuxero7 . La primera vez que recuerdo verlo escrito fue en la nota sobre la versin 0.98.X del ncleo de Linux, donde Linus inclu o u a la Oxford Beer Trolls en los crditos como sitio desde donde enviaban cervezas e virtuales a cualquiera. well-known services, servicios bien-conocidos El trmino se usa para referirse a los servicios de red habituales como telnet o ftp. e
6 7

N. del T: Actualmente, por sitio tambin se conocen a los servidores de WWW o FTP. e O casi cualquier Linuxero. El traductor, por ejemplo, preere la cerveza real.

Glosario

329

Tcnicamente, son servicios que tienen un nmero de puerto asignado en el RFC e u de Asignacin de Nmeros. o u YP Yellow Pages, Pginas Amarillas. Es el antiguo nombre de lo que hoy se conoce a como NIS, dado que el trmino Yellow Pages es marca registrada de la British e Telecom. Sin embargo, muchas utilidades de NIS se nombran empezando con yp, como los comandos ypcat o ypwhich. World Wide Web, la Telaraa de Ambito Mundial. Es el servicio que ha catapultado n a la Internet a la fama. El la WWW se distribuye documentacin de todo tipo, en o formato de hipertexto (usando el lenguaje de descripcin HTML), con imgenes, o a sonido y acceso a cheros. La WWW se est convirtiendo en el escaparate con el a que muchas empresas pueden dar a conocer sus productos al mundo ciberntico. e

WWW

Bibliograf Comentada a
Libros
A continuacin se incluye una lista de libros a los que puede referirse si le interesa saber ms sobre o a alguno de los temas cubiertos por la Gu de Administracin de Redes con Linux. No se trata de una a o lista completa o sistemtica, simplemente son libros que he le y que encuentro bastante utiles. a do Se agradece cualquier informacin o mejora de esta lista. o

Libros sobre Internet en general


[Kehoe92] Brendan P. Kehoe: Zen and the Art of the Internet. . La Zen fue probablemente la primera gu sobre la Internet, o al menos una a de las primeras. Es una introduccin para el usuario novato a las costumbres, o los servicios y el folklore de la Internet. Se trata de un tomo de unas 100 pginas a que cubre temas que van desde el correo electrnico o las noticias Usenet al virus o Worm de la Internet. Est disponible via FTP annimo en muchos servidores a o FTP y puede ser distribuido e impreso libremente. Tambin hay un tomo editado e por Prentice-Hall.

Temas de Administracin o
[Hunt92] Craig Hunt: TCP/IP Network Administration. OReilly and Associates, 1992. ISBN 0-937175-82-X. Si la Gu de Administracin de Redes con Linux no es suciente, cons a o gase este libro. Trata todo tipo de temas, desde cmo conseguir una direccin de IP o la o o solucin de problemas de la red o la seguridad. o Se centra en establecer TCP/IP, conguracin de la interface, establecimiento o de las tablas de encaminamiento y resolucin de nombres. Incluye una descripo cin detallada de las opciones disponibles en los demonios routed y gated, que o implementan encaminamiento dinmico. a Tambin describe la conguracin de aplicaciones y demonios de red como inetd, e o

330

Temas de Administracin o

331

los comandos r, NIS, y NFS. El apndice contiene una referencia detallada de gated, y named, y una descripe cin del proceso de conguracin del sendmail de Berkeley. o o

[Stern92]

Hal Stern: Managing NIS and NFS. OReilly and Associates, 1992. ISBN 0937175-75-7. Se trata de un libro que complementa a TCP/IP Network Administration de Craig Hunt. Cubre con detalle el uso de NIS (Sistema de informacin de red) y o NFS (sistema de cheros de red), incluyendo la conguracin de automontado o de sistemas de cheros y PC/NFS.

[OReilly89]

Tim OReilly y Grace Todino: Managing UUCP and Usenet, 10th ed. OReilly and Associates, 1992. ISBN 0-93717593-5. Es el estndar para redes UUCP. Cubre la versin 2 de UUCP y la de BNU. Le a o servir de ayuda desde el principio cuando establezca su nodo UUCP, dndole a a consejos prcticos y soluciones a mltiples problemas, como la vericacin de a u o conexiones o cmo escribir buenas macros para conectar mediante chat. Tambin o e trata temas ms exticos como el establecimiento de un nodo UUCP mvil o las a o o sutilezas presentes en los distintos tipos de UUCP. La segunda parte del libro trata del software de noticias de red y Usenet. Explica la conguracin tanto de Bnews (version 2.11) como C-News, y sirve de o introduccin a las tareas de mantenimiento de noticias de red. o

[Spaf93]

Gene Spaord y Simson Garnkel: Practical UNIX Security. OReilly and Associates, 1992. ISBN 0-937175-72-2. Se trata de un libro imprescindible para cualquiera que administre sistemas con acceso de red o de otra ndole. El libro discute temas relevantes en seguridad de ordenadores, incluyendo las caracter sticas bsicas de seguridad f a sica que proporciona un x. A pesar de que es necesario atender a la seguridad en todas las areas del sistema, la explicacin de redes y seguridad es la parte ms interesante o a del libro en nuestro contexto. Adems de las tcnicas de seguridad que conciera e nen a los servicios de Berkeley (telnet, rlogin, etc), NFS y NIS, tambin trata de e sistemas ms sosticados como Kerberos del MIT, RPC Seguro de Sun y el uso a de los cortafuegos como proteccin frente a ataques desde la Internet. o

Conocimientos Bsicos a

332

[AlbitzLiu92]

Paul Albitz y Cricket Liu: DNS and BIND. OReilly and Associates, 1992. ISBN 1-56592-010-4. Este libro resulta util para todos aquellos que administren un servicio de nom bres DNS. Explica con gran detalle las caracter sticas de DNS y da ejemplos que explican las opciones que a primera vista resultan extraas en BIND. Me n divirti mucho leerlo y aprend much o simo de l. e

[NISPlus]

Rick Ramsey: All about Administering NIS+. Prentice-Hall, 1993. ISBN 0-13068800-2.

Conocimientos Bsicos a
A continuacin hay una lista de libros que pueden resultar de inters para aquellas personas que o e quieran saber ms sobre cmo funciona TCP/IP y sus aplicaciones pero no quieren leer los RFCs. a o

[Stevens90]

Richard W. Stevens: UNIX Network Programming. Prentice-Hall International, 1990. ISBN 0-13-949876-X. Se trata probablemente del libro ms usado sobre programacin en redes TCP/IP a o que, al mismo tiempo, explica las entraas de los protocolos de Internet.8 n

[Tanen89]

Andrew S. Tanenbaum: Computer Networks. Prentice-Hall International, 1989. ISBN 0-13-166836-69. Este libro trata de temas sobre redes en general. A travs del Modelo de Ree ferencia OSI, explica los problemas de diseo de cada una de las capas, y los n algoritmos que pueden usarse para solucionarlos. Para cada capa, compara diferentes implementaciones incluyendo la de ARPAnet. El unico problema de este libro es que el uso abundante de abreviaturas diculta a veces la comprensin de lo que quiere decir el autor10 . Aunque seguramente o sta es una caracter e stica inherente a los libros de redes.

Stevens acaba de escribir otro libro sobre TCP/IP, titulado TCP/IP Illustrated, Volume 1, The Protocols y publicado por Addison Wesley aunque no he tenido tiempo de echarle un vistazo. 9 El nmero de ISBN en otros paises puede ser diferente. u 10 N. del T.: De este libro existe una traduccin al castellano editada por la propia Prentice-Hall. Sin o embargo, no se la recomendar a nadie: se entiende peor que la original en Ingls. a e

HOWTOs

333

[Comer88]

Douglas R. Comer: Internetworking with TCP/IP: Principles, Protocols, and Architecture. Prentice-Hall International, 1988.

HOWTOs
A continuacin hay un extracto del o ndice HOWTO-INDEX, version 2.0 (17 de Marzo de 1994), escrito por Matt Welsh.

Cules son los HOWTOs de Linux? a


Los HOWTOs de Linux son pequeos documentos disponibles electrnicamente que describen con n o detalle cietos aspectos de cmo congurar o usar el sistema Linux. Por ejemplo, existe una Instao llation HOWTO, que cuenta cmo instalar Linux, una Mail HOWTO, que describe como establecer o y congurar el servicio de correo electrnico en Linux. Otros ejemplos incluyen el NET-2-HOWTO o (lo que antes eran las NET-2-FAQ) y el Printing HOWTO. La informacin de los HOWTOs es generalmente ms detallada y profunda de lo que se pueda o a incluir en las FAQ de Linux. Por esta razn las FAQ estn siendo reescritas. Gran parte de la o a informacin contenida en ellas ser relegada a los diferentes documentos HOWTO. Las FAQ quedan o a como una lista ms breve de las preguntas ms habituales sobre Linux, cubriendo escuetamente a a temas espec cos. La mayor de la informacin ms til en las FAQ se incluir en los HOWTOs. a o a u a Los HOWTOs son documentos extensos, parecidos a unas FAQ, aunque en general no responden a un formato de pregunta-respuesta. Sin embargo muchos HOWTOs incluyen una pequea seccin de n o FAQ al nal. Por ejemplo, las NET-2-FAQ simplemente cambiaron el nombre por NET-2-HOWTO, ya que nunca fueron escritas en este formato. Aunque se cite al NET-2-HOWTO como NET-2-FAQ en muchos sitios, se trata del mismo documento.

Dnde se consiguen los HOWTOs de Linux? o


Los HOWTOs pueden obtenerse via FTP annimo desde cualquiera de los siguientes servidores: o sunsite.unc.edu:/pub/Linux/docs/HOWTO tsx-11.mit.edu:/pub/linux/docs/HOWTO as como en cualquiera de los mirrors de estos servidores citados en las META-FAQ de Linux. El ndice, impreso a continuacin, contiene los HOWTOs existentes en la actualidad. o Los HOWTOs se publican regularmente en los grupos de noticias comp.os.linux y comp.os.linux.announce. Muchos son publicados tambin en news.answers. Por tanto se puee den obtener los HOWTOs en el archivo del news.answers en el servidor rtfm.mit.edu.

Indice de HOWTOs

334

Indice de HOWTOs
A continuacin hay una relacin de los HOWTOs disponibles actualmente11 . o o Linux Busmouse HOWTO, escrito por mike@starbug.apana.org.au (Mike Battersby). Informacin sobre la compatibilidad del ratn bus en Linux. o o Linux CDROM HOWTO, escrito por tranter@software.mitel.com (Je Tranter). Informacin sobre la compatibilidad de los lectores de CD-ROM en Linux. o Linux DOSEMU HOWTO, escrito por deisher@enws125.EAS.ASU.EDU (Michael E. Deisher). HOWTO sobre el emulador de MS-DOS bajo Linux, DOSEMU. Linux Distribution HOWTO, escrito por mdw@sunsite.unc.edu (Matt Welsh). Lista de distribuciones de venta por correo y otros servicios comerciales. Linux Ethernet HOWTO, escrito por Paul Gortmaker gpg109@rsphysse.anu.edu.au. Informacin sobre la compatibilidad del hardware Ethernet en Linux. o Linux Ftape HOWTO, escrito por ftape@mic.dth.dk (Linux ftape-HOWTO maintainer). Informacin sobre los grabadores de cinta y su compatibilidad con Linux. o Linux HOWTO Index, escrito por mdw@sunsite.unc.edu (Matt Welsh). Indice de los documentos HOWTO en Linux. Linux Hardware Compatibility HOWTO, escrito por erc@apple.com (Ed Carp). Lista casi completa del hardware que funciona con Linux. Linux Installation HOWTO, escrito por mdw@sunsite.unc.edu (Matt Welsh). Describe cmo obtener e instalar el Linux. o Linux JE-HOWTO, escrito por Yasuhiro Yamazaki hiro@rainbow.physics.utoronto.ca. Informacin sobre JE, un conjunto de extensiones de Linux en lengua japonesa. o Linux Keystroke HOWTO, escrito por Zenon Fortuna (zenon@netcom.com). Describe como asociar macros a las diferentes teclas en Linux. Linux MGR HOWTO, escrito por broman@Np.nosc.mil (Vincent Broman). Informacin o sobre la interface grca MGR para Linux. a Linux Electronic Mail HOWTO, escrito por vince@victrola.wa.com (Vince Skahan). Informacin sobre servidores y clientes de correo electrnico disponibles en Linux. o o Linux NET-2 HOWTO, escrito por terryd@extro.ucc.su.oz.au (Terry Dawson). Explica cmo congurar las comunicaciones via TCP/IP en Linux y en particular SLIP, PLIP y PPP. o Linux News HOWTO, escrito por vince@victrola.wa.com (Vince Skahan). Informacin o sobre el software servidor y cliente de noticias USENET disponibles para Linux. Linux PCI-HOWTO, escrito por Michael Will michaelw@desaster.student.unituebingen.de. Informacin sobre la compatibilidad de la arquitectura PCI en Linux. o
N. del T.: Actualmente hay muchos ms HOWTOs, que cubren nuevos e interesantes temas como el a PCI, el uso de disquetes ZIP, etc. No deje de revisar las nuevas distribuciones de Linux por si acaso.
11

Asuntos varios y cuestiones legales

335

Linux Printing HOWTO, escrito por gtaylor@cs.tufts.edu (Grant Taylor). Trata del sofware de impresin en Linux. o Linux SCSI HOWTO, escrito por Drew Eckhardt drew@kinglear.cs.Colorado.EDU. Informacin sobre la compatibilidad del manejador SCSI de Linux. o Linux Serial HOWTO, escrito por gregh@cc.gatech.edu (Greg Hankins). Informacin sobre o el uso de dispositivos serie y sobre el software de comunicaciones. Linux Sound HOWTO, escrito por tranter@software.mitel.com (Je Tranter). Software y hardware, relacionado con el sonido, disponible para el sistema operativo Linux. Linux Term HOWTO, escrito por Bill Reynolds bill@goshawk.lanl.gov. Explica el uso del paquete de comunicaciones term con sistemas Linux. Linux Tips HOWTO, escrito por Vince Reed reedv@rpi.edu. HOWTO con trucos y consejos varios sobre Linux. Linux UUCP HOWTO, escrito por vince@victrola.wa.com (Vince Skahan). Informacin o sobre software UUCP para Linux. Linux XFree86 HOWTO, escrito por geyer@polyhymnia.iwr.uni-heidelberg.de (Helmut Geyer). Explica la instalacin del servidor XFree86 (X11R5) para Linux. o

Asuntos varios y cuestiones legales


Si tiene usted alguna pregunta, por favor no dude en ponerse en contacto por correo electrnico con o mdw@sunsite.unc.edu. El proceso de reescritura de las FAQ de Linux esta siendo coordinado por Ian Jackson, ijackson@nyx.cs.du.edu, con ayuda de otras personas. Salvo mencin expresa en contra, los derechos de copyright de los documentos HOWTO de Linux o pertenecen a sus respectivos autores. Los documentos HOWTO de Linux pueden ser reproducidos de forma completa o en parte, en cualquier medio f sico o electrnico sin permiso del autor. Igualmente, o cualquier traduccin o trabajo derivado est permitido sin necesidad de un permiso expreso del autor. o a La redistribucin con nes comerciales est permitida e incluso se anima a ello; sin embargo, el autor o a querr ser avisado si semejante distribucin tuviera lugar. a o En resumen, queremos promocionar la diseminacin de esta informacin a travs de tantos canao o e les como sea posible. No obstante, queremos retener los derechos de copyright sobre los documentos HOWTO y nos gustar ser noticados de cualquier plan de redistribuir los HOWTOs. Si tiene a alguna pregunta, por favor pngase en contacto con Matt Welsh, el coordinador de los HOWTOs o de Linux en mdw@sunsite.unc.edu.

Los HOWTOs en Castellano


Como contbamos en la introduccin, actualmente existe otro grupo que trabaja junto con LuCAS; a o y se ocupa de traducir los HOWTOs al Castellano; que se han venido a denominar COMOs. Son muchos los COMOs disponibles actualmente, con lo que creemos que le resultar util a a numerosos lectores.

RFCs

336

Los COMOs traducidos se pueden encontrar en el mismo servidor principal de LuCAS (http://lucas.hispalinux.es/) aunque su servidor principal es el siguiente: WWW: http://www.insflug.org/ FTP: ftp.insflug.org La coordinacin de este grupo corre a cargo de Francisco Jos Montilla, pacopepe@insug.org. o e

RFCs
A continuacin hay una lista de los RFCs mencionados a lo largo del libro. Todos los RFCs estn o a disponibles via FTP annimo en los servidores nic.ddn.mil, ftp.uu.net. Para obtener un RFC o via correo electrnico, env un mensaje a service@nic.ddn.mil, incluyendo la peticin send o e o RFC-numero .TXT en el asunto12 . 1340 Nmeros Asignados, Postel, J., y Reynolds, J. El RFC de Nmeros Asignados dene u u el signicado de los nmeros empleados por los diferentes protocolos, tales como los u nmeros de puertos estndar atendidos por los servidores TCP y UDP, as como u a los nmeros de protocolo contenidos en la cabecera del datagrama IP. u Compresin de cabeceras TCP/IP para enlaces tipo serie de baja velocidad, Jacobo son, V. Este documento describe el algoritmo usado para comprimir las cabeceras TCP/IP en CSLIP y PPP. Realmente merece la pena leerlo! Gu de los Administradores de Dominio, Lottor, M. Junto con los RFCs complea mentarios, RFC 1034 y RFC 1035, es la fuente de informacin ms completa sobre o a DNS, el sistema de resolucin de nombres de dominio. o Nombres de Dominios - Conceptos y Caracter sticas, Mockapetris, P.V. Complemento de la RFC 1033. Nombres de Dominios - Implementacin y Especicacin, Mockapetris, P.V. Como o plemento de la RFC 1033. Distribucin de Correo Electrnico y el Sistema de Dominios, Partridge, C. Este o o RFC describe la distribucin de correo en Internet. Lea esto para conocer la historia o completa de los registros MX. Protocolo de Transferencia de Noticas de Red, Kantor, B., y Lapsley, P. Denicin o del NNTP, el mtodo ms comn de transporte de noticias de red en Internet. e a u NFS: Especicacin del Protocolo de Sistema de Fichero de Red Nowicki, B. Espeo cicacin formal de NFS y del protocolo de montaje (version 2). o

1144

1033

1034

1035

974

977

1094
12

N. del T.: subject en programas de correo anglosajones.

RFCs

337

1055

No-estndar de Transmisin de Datagramas de IP sobre lineas de Comunicacin a o o Serie: SLIP, Romkey, J.L. Describe SLIP, el Protocolo de Comunicacin via linea o Serie de Internet. RPC: Especicacin del Protocolo de Llamada a Procedimiento Remoto: Version 2, o Sun Microsystems, Inc Protocolo de Informacin de Encaminamiento, Hedrick, C.L. Describe RIP, protoo colo usado para el intercambio de informacin de rutas en LANs y MANs. o Protocolo Simple de Transferencia de Correo,Postel, J.B. Dene SMTP, el protocolo de transporte de correo sobre TCP/IP. Estndar para el Intercambio de mensajes USENET, Adams, R. y Horton, M.R. a Este RFC describe el formato de los mensajes de noticias USENET, y cmo son o intercambiados tanto en la Internet como en redes UUCP. Se espera que pronto haya una revisin de este protocolo. o Estndar sobre el Formato de mensajes de texto en la Internet de ARPA, Crocker, a D. Es la ms completa fuente de sabidur sobre el correo que cumple el estndar a a a RFC. Todo el mundo lo conoce, aunque son pocos los que realmente lo han le do. Twas The Night Before Startup13 , Cerf, V. Quin dice que los heroes de las redes e no son poetas?

1057

1058

821

1036

822

968

13

N. del T.: Al tratarse de un poema, hemos preferido no traducir su t tulo

Indice de Materias
/proc/net, 60 16450 UART, 57 16550 UART, 57 8250 UART, 57 A (registro DNS), 94 acceso concesin, 105, 112, 162 o NNTP, 298, 299 PPP, 125 restriccin, 163 o restringiendo, 128 restringir, 17, 133 UUCP, 187194 acceso a una mquina, 67 a acceso telefnico IP, 102 o acessing remote les, 159 Adaptador de bolsillo D-Link, 47 address registro de recurso DNS, 94 administrador del correo, 228 algoritmo de Nagle, 45 alias and C News, 277 correo, 234 nombre, 34 nombre de mquina, 94 a alias, 234 aliases, 235 Allman, Eric, 202 amd, 164 archivo de correo, 233 archivos de correo montaje v NFS, 222 a ARP, 2223 consulta de las tablas, 80 habilitacin, 76 o proxy, 73, 81, 122 sustituto, 73, 81 ARPANET, 5 assignacin de la direccin IP, 62 o o auto-IRQ, 50 automontado, 164 autorizacin o con NNTP, 299 autorizacion y comandos r, 140 autorizaciones con PPP, 113, 125129 autovericacin, Ethernet, 49 o AX.25, 8, 47 bsqueda de direcciones, 36 u Barber, Stan, 296 batching news, 270 Baudios, 55 BBS, 53 Becker, Donald, 47 BIND, 84, 88101 Biro, Ross, 14 Bits por segundo, 55 BNU, vase UUCP, HDB e BOOTP, 23 BSMTP, 207 bulletin board, 53 C News, 267, 272294 active le, 281 actualizar el chero active, 290 archivando, 284 archivos de registro, 288 caducado, 284 caducando, 287 compressing batches, 283

338

INDICE DE MATERIAS

339

crear conguracin inicial, 275 o directorio de cola, 272 env de noticias, 281 o excluyendo servidores, 277 active le, 280 active le, 272, 275276 history le, 272, 287 sys le, 274, 276 togo le, 279 grupos moderados, 287 intercambiando noticias, 277, 279 LAN, 292 limitar una fuente, 277, 288 linea de otacin, 303 o lista de grupos actuales, 287 lista de los grupos actuales, 280 mandando noticias, 279, 284 NNTP support, 278 nombres de antriones con alias, 277 parmetros del proceso por lotes, 282284 a procesado por lotes, 281 procesando por lotes, 273, 278, 284 proceso por lotes, 279 receiving news, 274 recibiendo noticias, 272277 relaynews, 272 rnews, 279 sending news, 282 servidor maestro de noticias, 276 soporte NNTP, 300 sys le, 280 usenet, 276 UUCP, 273, 283 yotengo/env ame, 278, 283 C-News actualizar la marca baja de agua, 280 actualizar las marcas de agua bajas, 287 cmo encolar el correo, 227 o cache (opcin BIND), 91 o Cervecera Virtual, 61 Cervecera, Virtual, 61 CHAP, vase Protocolo CHAP de Autentie cacin por Reto o chargen, 132 chat PPP, 117

chat, 118119 checking sendmail, 261 chequear NIS, 149, 150 clientes sin discos, 23 CNAME (registro DNS), 94 colisin, Ethernet, 8 o Collyer, Geo, 267 COM puerto, 55 Comienzo de Autoridad, 34 compatibilidad PC/TCP, 44 Compresin de cabeceras de Van Jacobson, o 103 compresin de cabeceras Van Jacobson, 114 o compresin de paquetes TCP/IP, 103, 114 o Compressed Serial Line IP, vase CSLIP e Comprobacin o sendmail, 256 comprobacin o nombre de mquinas, 98 a PPP, 120 servidor de nombres, 98 Comprobacin o interface Ethernet, 80 tablas ARP, 80 comprobacin o accesibilidad, 67, 69 actividad del servidor TCP, 79 conexiones de red, 79 conguracin de red, 67, 69 o interface de red, 66, 78 tabla de encaminamiento, 77 tabla de encaminamiento de IP, 70 comprobacin de la conguracin de red, 67, o o 69 comprobaciones NNTP, 300 comprobar UUCP, 177 conectando Redes de Area Local, 122 Conector BNC, 47 conexiones, consulta, 79 conguracin o correo en una red local, 222225 correo UUCP, 220

INDICE DE MATERIAS

340

dip, 105 DNS junto a SLIP/PPP, 102 dominio por defecto, 87 elm, 215 hardware de red, 39 ), 52 lector de noticias, 301 NNTP, 295300 pasarela de correo, 223 PPP, 113 sendmail, 239266 serie puerto, 5758 servidor de nombres, 88101 servidor de nombres slo con cache, 102 o servidor SLIP, 111 SLIP, 102112 smail, vase smail e traduccin de nombres, 84101 o uso del servidor de nombres, 87 conguracin de red del ncleo, 42 o u conguracin manual (Ethernet), 49 o conguracin manual (PLIP), 51 o conguracib o pasarela IP, 72 conguracin o dominio, nombre de, 62 Ethernet, 68 hostname, 61 interface de bucle, 66 interface de lazo, 66 interfaces de red, 65 loopback, 66 nombre de la mquina, 61 a PLIP, 72 PPP, 73 resolucin del nombre de una mquina, 64 o a SLIP, 73 congurando C News, 274294 C News en una LAN, 292 elm, 218 Ethernet, 42, 4751 IPX, 46 ncleo, 42 u NFS, 43 noticias Usenet, 274294

PLIP, 42, 51 PPP, 42, 130 SLIP, 42 congurando el PPP, 116 congurar los comandos r, 140142 NIS, 143156 servicios de red, 131 UUCP, 166201 conjuntos de caracteres en elm, 216 conjuntos de caracteres nacionales en elm, 216 connector BNC, 7 consulta conguracin de interface, 74 o estad sticas de una interface, 78 IP - tabla de encaminamiento, 77 tabla de encaminamiento IP, 70 tablas ARP, 80 consutla conexiones activas, 79 passwd nombres reales de usuario, 276 contraseas n network-wide, 153155 control de ujo, hardware, 56, 115 control de ujo, por hardware, 58 controlador D-Link, 47 Ethernet, 47 PLIP, 51 PPP, 52 RDSI, 47 SLIP, 52 correo, 202 administrador, 228 administrador del correo, 228 alias, 234235 centralizado, 209, 211, 213 cola, 219, 227228 demonio, 219 devuelto, 206 direcciones con ruta bang, 207, 210 direcciones route-addr, 208 en una red local, 222 encabezados, 203

INDICE DE MATERIAS

341

encaminado basado en dominios, 209, 213 encaminado de, 209213 basado en dominios, 211 entre Internet y UUCP, 209 Internet, 209 nodo inteligente, 211 redes UUCP, 210 Enviar correo a un archivo, 233 escribiendo, 206 chero paths, 211, 213215 formato de un mensaje, 203 formatos de direcciones, 207209 mapas, 210, 214 mensaje rebotado, 228 multi-media, 202 ocultamiento de mquinas, 222 a pasar el correo a un comando, 233 pasarela de, 209 postmaster, 228 proceso por lotes, 207 rechazo, 244 reenv 234 o, reparto, 206207 ruta por defecto, 211 sobre UUCP, 206 correo electrnico, 202 o correo multi-media, 202 Cox, Alan, 14 creacin o subdominios, 32 subredes, 37 zonas DNS, 37 creacin o subredes, 62 crear mapas NIS, 149 CSLIP, 11, 103, 104, 112, 114 Davies, David C., 47 Dawson, Terry, xii daytime, 132 DDI, 15 delegacin o subdominios DNS, 32, 37 subredes IP, 25 demonio mapeador de puertos, 139

Dent, Arthur, 111 depuracin o base de datos DNS, 101 conguracin PPP, 120 o /dev/cua*, 5556 /dev/modem, 56 /dev/ttyS*, 5556 devolver correo, 206 dilogo con mdem a o SLIP, 107 dialin device, 55 dialout chero, 55 dip, 105112 diphosts, 112 diplogin, 111 direccin o broadcast, 22 Ethernet, 7 Ethernet vs. direccin IP, 9 o IP, 9 IP vs. nombre de nodo, 9 negociacin con PPP, 116, 120, 128 o nombre de nodo UUCP, 176 traduccin a nombre, 36 o direccin o broadcast, 68 difusin, 76 o eligiendo (IP), 62 direccin de difusin, 76 o o direcciones correo, 207209 h bridas, 208 route-addr, 208 ruta bang, 207, 210 disciplina de l nea, 103 disciplina de las l neas, 114 dispositivo, serie, 5358 DNS, 2937 bsqueda, 33 u base de datos, 34 comprobacin, 98 o conguracin del servidor, 88101 o conversin de /etc/hosts, 100 o creacin de zonas, 37 o depuracin de la base de datos, 101 o lookup, 33

INDICE DE MATERIAS

342

peticin, 33 o registro de recursos, 91 registros, 34 registros de recursos, 34 resolucin inversa, 3637 o RR, vase DNS, registros e servidores del dominio ra 95 z, servidores ra 99 z, tiempo de vida, 33, 92 ttl, vase DNS, tiempo de vida e utilidades, 100 zona, 3234, 37, 92 dnswalk, 101 domainname, 146 dominio por defecto, 87 dominio in-addr.arpa, 36 dominio, nombre de NIS vs. DNS, 62 domainname, 62 dominios encaminado de correo, 211 primer nivel, 31 ISO-3166, 32 driver PPP, 114 Ekwall, Bjrn, 47 El Protocolo CHAP de Autenticacin por o Reto, 127 eleccin o direccin IP, 62 o Elegir mapas NIS, 151 elegir nombre de nodo UUCP, 176 un dominio NIS, 146 elm, 215218 conjuntos de caracteres nacinales, 216 email, vase correo e encaminado correo, vase correo, encaminado de e nodo inteligente, 211 encaminado por nodo inteligente, 211 encaminamiento a travs de PPP, 121 e

ARP , 81 datagramas IP, vase IP, encaminamiento e demonio, 28 dinmico, 28, 29, 123 a dinmico, 73 a evitar ciclos, 228 IP, 44 mtrica, 28 e mtrica, 76 e metrica, 75 pasarela IP, 71 protocolos, 28 Redireccin ICMP, 29 o tabla, 26, 77 encaminamiento dinmico, 28 a encaminamiento IP por defecto, vase encae minamiento, defecto encaminamiento, defecto, 22 encaminamiento, por defecto, 116 enlace punto-a-punto, 72, 73, 113 Ensamblador/Desensamblador de Paquetes, 8 entrega news, 270271 entregando noticias, 272 Enviar correo a un archivo, 233 envoltorio, TCP, 133 Eriksson, Peter, 144 escribiendo correo, 206 espacio de nombres (DNS), 30 Estndar de Sistema de Ficheros, xviii a establecer dominio NIS, 146, 150 estableciendo la conexin, 117 o establecimiento hostname, 61 nombre de la mquina, 61 a eth0 (interface Ethernet), 68 Ethernet, 78 autovericacin, 4951 o cableado, 47 colisin, 8 o conguracin, 68 o controladores Becker, 47 direccin, 7, 22 o no, 7, 47

INDICE DE MATERIAS

343

instalacin, 47 o mediante un puerto paralelo, 47 modo promiscuo, 76 evitar ciclos en el encaminamiento, 228 evitar spoong, 85 evitar tinygrams, 45 exchanging news, 270 exportar un volumen NFS, 162 exports, 162 Faith, Rik, ix fallo del mapeador de puertos(mensaje de error), 156 fallo en la autovericacin, 49 o FDDI, 8 feed, news, 270 chero hosts, 64 chero paths, 211, 213215 cheros de bloqueo y PPP, 117 FidoNet, 53 le sharing, 157 File System Standard, xviii nger, 133 ooding algorithm, 270 fstab, 60, 160 FTP, localizacin del cdigo de Linux, 15 o o FTP, ubicacin de cdigo de Linux, 61 o o gated, 28, 73, 123 generar un chero paths, 213 getty, 190 Gortmaker, Paul, 48 Groucho Marx University, 24 group.bygid, 153 group.byname, 153 junk newsgroup, 273 habilitacin de ARP, 76 o ham radio, 8 Hankins, Greg, 53 hardware control de ujo, 56, 58, 115 interconexin, 39 o ), 52 serie, 5358

hardware de acceso a la red, vase interfaz e HDB, vase UUCP, HDB e HDLC, 113 HoneyDanBer, vase UUCP, HDB e host.conf, 85, 144, 156 hostcvt, 100 hostname establecimiento, 61 hosts, 64 hosts.byaddr, 145 hosts.byname, 145, 152 hosts.equiv, 140 HOWTO, x Ethernet, 48 Networking, xii Redes, xii Serial, 53 UUCP, 168 ICMP, 29 Puerto inalcanzable, 29 Redireccin, 29 o IDA, vase sendmail, IDA e ifcong, 65, 74 IMAP, 222 ientd, 225 inetd, 131, 139 inetd.conf, 132133 inews, 272 inhabilitacin de ARP, 76 o inicializando la red, 59 INN, 268, 297, 302 instalacin o ejecutables de comunicaciones en red, 60 Interactive Mail Access Protocol, 222 Intercambiador de Correo (campo de DNS), 209 intercambio correo, 206207 noticias, 268, 269 interface, 39, 41, 46 comod 73 n, conguracin, 65 o D-Link DE-600, 46 estad sticas, 78 Ethernet, 46, 68

INDICE DE MATERIAS

344

loopback, 46, 66 mscara de red, 62, 68, 75 a PLIP, 47, 72 PPP, 47, 73, 116 SLIP, 47, 73 interface comod 73 n, interface del controlador de dispositivo, vase e DDI interfaz, 20 mscara de red, 24 a internacionalizacin para elm, 216 o Internet, 5 conectando a, 115 conexin a, 102, 113 o encaminado de correo, 209 vs. internetworking, 9 Internet Control Message Protocol, 29 InterNet News (INN), 268 Internet Protocol, vase IP e internetworking, 9, 25 IP, 911 acceso telefnico, 102 o conguracin de interface, 65 o direccin, 9, 2122 o negociacin con PPP, 116 o negociacin en PPP, 120, 128 o y nombre de mquina, 29 a y nombre del nodo, 36 direccin o assignacin, 62 o direccin de broadcast, 68 o direccin de difusin, 68, 76 o o direcciones de env mltiple, 77 o u encaminamiento, 9, 2429, 44, 45, 71, 72 encaminamiento dinmico, 28 a encaminamiento por defecto, 22 interface, 41 l nea de serie, 113 l nea paralela, vase PLIP e l nea serie, 102 see SLIP, 52 llamadas, 113 mscara de red, 24 a mtrica, 28 e mscara de red, 62, 68, 75 a mtrica, 76 e

MTU, vase Unidad de Transferencia e Mxima a pasarela, 9, 71, 72 Protocolo de Control, 114, 120 Protocolo NCP de Control de Red (PPP), 114 protocolos de encaminamiento, 28 red, 36 redes, 21, 24 reenv 9 o, route, 26 ruta por defecto, 71 sub-redes, vase IP, subred e subred, 2425, 37, 45, 71, 72 tabla de encaminamiento, 26, 70, 77 tinygrams, 45 IP en l nea serie, vase SLIP e IP en l neas serie, vase PPP e IP en Linea Paralela, vase PLIP e IP por linea serie, comprimida, 103 IPCP, vase IP, Protocolo de Control e IPX, 46 IRQ, 40, 50 ISO-3166 dominios de primer nivel, 32 ISO-8859-1, 216 Johnson, Michael K., ix Karr, Ronald S., 202 Kempen, Fred van, 5, 14 l nea de serie protegiendo caracteres, 123 l nea dedicada, 54 LAN, 4 comandos r, 140 contraseas, 153, 156 n noticias, 292 passwords, 140 resolucin de nombres de nodos, 156 o Lapsley, Phil, 296 Latin-1, conjunto de caracteres, 216 LCP, vase Protocolo LCP de Control de Ene lance (PPP) LDP, vase Linux Documentation Project e librer de sockets BSD, 13 a

INDICE DE MATERIAS

345

lilo, 49 Linux Documentation Project, ix, xvi lmail, 206 lo (interface de lazo), 66 loopback direccin, 22 o interface, 66 hosts conversin a cheros BIND, 100 o mtrica, encaminamiento, vase encaminae e miento, mtrica e mdem, velocidad, 55 o mquina a aislada, 73 mquina aislada, 73 a localhost, 66 rc macros, 59 mail Forzado rutado UUCP, 263 manipulacin centralizada del correo, 209, o 211, 213 mantenimiento del sistema, 16 mantenimiento, sistema, 16 mapas, Usenet, 210, 214 Marx, Groucho, 5 mensaje de control cancel, 289 mensaje de control checkgroups, 290 mensaje de control newgroup, 289 mensaje de control rmgroup, 289 mensaje de control checkgroups, 291 mensaje de control checkgroups, 291 mensaje de control checkgroups, 291 Network Unreachable mensaje de error, 68 metamail, 217 mgetty, 190, 192 montaje automtico, 164 a solo lectura, 163 montando El sistema de cheros proc, 60 mostrar conguracin de UUCP, 177 o mountd, 161, 162 mounting an NFS volume, 159

MRU, vase PPP, Unidad Mxima de Recepe a cin o mthreads, 303 MTU, vase Unidad de Transferencia Mxima e a MX (campo de DNS), 209 MX (registro DNS), 94 nmeros de protocolo, 137 u named, 84, 88101 named.boot, 8991 NCP, vase Protocolos NCP de Control de e Red Net-1, 14 Net-2d, 14 Net-2Debugged, 14 Net-2e, 15, 61 Net-3, 15, 61 Net-BSD, 15, 61 netstat, 7780 Network File System, vase NFS e Network News Transfer Protocol, vase e NNTP chero networks, 64 news, 271 alimentacin, 271 o batching, 270 borrado de art culos antiguos, 271 C release, vase C News e cola, 271 distribucin, 270 o exchanging, 270 expiracin de art o culos, 271 feeding, 270 chero active, 271 ooding algorithm, 270 history, 270 ihave/sendme, 271 intercambio, 271 limitar alimentacin, 270 o message id, 270 NNTP, 271 por lotes, 270 pulling, 271 pushing, 271 spool, 271 NFS, 157165

INDICE DE MATERIAS

346

automountado, 164 comparacin de uids y gids, 164 o comprobacin de uids y gids, 162 o expiracin, 161 o exportar un volumen, 162 exports, 162 limitaciones, 158 montaje f sico vs. montaje lgico, 161 o montar un directorio, 157 mounting a volume, 159 restricciones del tamao del bloque, 160 n servidor, 158, 161 timeout, 161 volumen de solo lectura, 163 nfsd, 158, 161 NIS, 143156 apodo, 145 cdigo tradicional, 156 o cliente, 148, 150156 crear mapas, 149 databases, 144 dominio, 146147 localizar servidor, 147 mapa, 144146, 148 mapas passwd, 155, 156 passwd mapas, 153 servidor, 146150 y contraseas shadow, 155 n y resolucin, 85 o NIS+, 147 nn, 304 NNTP, 267, 295 acceso restringido, 298, 299 authorization, 299 y C News, 300 nntp access, 298 nntpd, 296 nodo, 1 hoja, 211 nodo hoja, 211 hosts, 145 Noll, Curt Landon, 202 nombre bsqueda, 33 u obtencin desde la direccin IP, 36 o o totalmente cualicado, 30

y nombre de dominio, 30 nombre cannico, 34 o nombre completos de usuario, 276 nombre de dominio, 3032 establecer NIS, 146 nombre de la mquina a establecimiento, 61 nombre de mquina a alias, 94 bsqueda, 98 u cannico, 94 o captura de los no calicados, 237 nombre de mquina cannico, 94 a o nombre de mquina a resolucin, 64 o nombre de nodo ambiguo, 210 cannico, 34 o conversin a direccin IP, 29 o o resolucin, 29 o UUCP, 176 nombre del host resolucin, 84 o nombres de nodos resolucin, 143, 156 o nombres reales de usuario, 276 notacin de puntos, 9 o noticias, 267 aadir un grupo nuevo, 289 n actualizar el chero active, 290 alimentacin, 268, 269 o archivando art culos, 284 art culo, 268 borrar un grupo antiguo, 289 caducidad, 303, 304 cancelar art culo, 289 distribuciones, 277 empujar, 295 falsicacin, 296 o active le, 272 grupos, 268 history, 272 identicador de mensaje, 272 intercambio, 268, 269 lector, vase noticias, lector de e mensajes de control, 289

INDICE DE MATERIAS

347

nntpd, 295 procesando por lotes, 273, 281 recibiendo, 277 respuestas, 301 servidor maestro de noticias, 276 tirar, 295 Usenet, 268 noticias, lector de conguracin, 301 o creando bases de datos de hebras, 302 304 hebras, 301, 302 nn, 304 tass, 302 tin, 302 trn, 303 nslookup, 98100 nsswitch.conf, 151153 NYS, 144156 obtencin de cdigo fuente, 61 o o obteniendo el cdigo fuente, 15 o orden de uso de servicios de resolucin, 85 o PAD, 8 PAP, vase Protocolo PAP de Autenticacin e o por Contrasea n pasar el correo a un comando, 233 pasarela, 9 conguracin, 72 o de correo, 209 IP, 71 pasarelas, 2526 passwd, 145 passwd.byname, 153 passwd.byuid, 153 passwords y login remoto, 140 pathalias, 211, 214215 pequegramas, 45 ping, 67 PLIP, 51, 72 encaminamiento, 81 plip1 (interface PLIP), 72 point-to-point link, 75 Point-to-Point Protocol, vase PPP e

POP, 222 portmap, 139 Post Oce Protocol, 222 PPP, 11, 73, 102, 113130 asignacin dinmica de direcciones, 121 o a autenticacin, 125129 o compresin, 114 o comprimiendo datos, 124 daemon, 114 direcciones IP, 120121 driver, 114 encaminamiento, 81, 121123 encaminamiento por defecto, 116 cheros de bloqueo, 117 cheros de opciones, 116 informacin de depuracin, 120 o o mapa as ncrono, 123 proxy ARP, 122 rehuyendo caracteres de control, 123 script del chat, 117119 seguridad, 125 servidor, 130 Unidad Mxima de Recepcin, 124 a o usando CHAP, 125, 127128 usando PAP, 125, 128129 y direcciones IP, 116 pppd, 114130 .ppprc, 117 presentar apodos mapas NIS, 145 primary (opcin de BIND), 90 o proc sistema de cheros, 60 procesado por lotes noticias, 281 procesando por lotes noticias, 284 proceso por lotes correo, 207 protocolo, 2 AX.25, 8, 47 CSLIP, 11 Ethernet, 7 IP, vase IP e IPX, 46, 47 NNTP, 295 PPP, 11

INDICE DE MATERIAS

348

SLIP, 11 TCP, 11 UDP, 12 UUCP, 195 X.25, 8 Protocolo CHAP de Autenticacin por Reto, o 113, 125, 128 Protocolo de Informacin de Encaminamiento, o 28 Protocolo de Informacin de Encaminamiento, o 73, 76 Protocolo de Mensajes de Control de Internet, 29 Protocolo de resolucin de direcciones, vase o e ARP Protocolo de resolucin inversa, vase RARP o e Protocolo LCP de Control de Enlace (PPP), 113, 123125 Protocolo PAP de Autenticacin por Contrao sea, 113, 125 n Protocolo Punto-a-Punto, 113 Protocolo Simple de Transferencia de Correo, vase SMTP e protocols, 132, 136138 Protocolos NCP de Control de Red, 114 proxy ARP, 73, 81, 122 Proyecto de Documentacin de Linux, ix o PTR (registro DNS), 94 puerto, vase red, puerto e COM, 55 nmeros, 13 u puerto paralelo Ethernet, 47 IP, 51 punto-a-punto, enlace, 81 Puntos divisorios, 21 Quinlan, Dan, xviii radio paquetes, 23 radioacionado, 8 rail impidiendo el env UUCP, 263 o RARP, 23, 45 rc.inet, 59, 65, 68, 161 rcp, 140

RDSI, 47 Reber, Tobias, 143 recibiendo noticias, 277 red, 1 arranque, 59 conexiones, vase red, puerto e contraseas, 153, 156 n dispositivos, 39 inaccesible, 68 interface de programacin, 13 o interfaz, vase interfaz e mostrar conexiones, 79 nmeros de puerto, 13 u nombres, 64 opciones del ncleo, 42 u protocolos, 2 puerto, 1213 resolucin de nombres de nodos, 156 o servicios, vase puerto e sincronizar contraseas, 143 n TCP/IP, vase TCP/IP e UUCP, vase UUCP e Red de Area Local conecando, 122 red local correo, 222 redes intercambio de paquetes, 5 interconexin, vase internetworking o e Internet, 5 Redes de Area Local, vase LAN e reenv o correo, 234 IP, 9 UUCP, 3 registro de recursos, vase DNS, registros e remote le access, 157 le system, 159 Remote Procedure Call, 138140 mapeando puertos a programas, 139 nmeros de programa, 138 u remoto acceso, 5, 12 acceso a cheros, 3 acceso de cheros, 140

INDICE DE MATERIAS

349

ejecucin, 3 o ejecucucin de comandos, 140 o login, 140 sesin X11, 6 o remoto/a ejecucin, 206 o reparto correo, 206207 Representacin Externa de Datos, 138 o resolucin o conguracin, 8588 o librer 85 a, robustez, 88 uso de NIS, 85 uso de un servidor de nombres, 85 variables de entorno, 86 resolucin de problemas o conguracin de UUCP, 171 o resolucin inversa, 3637 o resolv.conf, 87 restringir acceso, 133 restringir acceso al usuario root, 163 revisin o cola del correo, 227 smail conguracin, 226 o .rhosts, 140 RIP, vase Routing Information Protocol e rlogin, 140 rmail, 187, 206 rnews, 187, 272, 283 route, 65, 82 routed, 28 routing dynamic, 81 Routing Information Protocol, 28 RPC, vase Remote Procedure Call e rpc, 138 rpcinfo, 151 RR, vase DNS, registro de recurso e RS-232, 56 rsh, 140 rsmtp, 207 RTS/CTS, 56 control de ujo, 115 route, 70 ruta de correo por defecto, 211

ruta, por defecto, 71 Salz, Rich, 297 script de entrada UUCP, 179 script del chat, 118 secondary (opcin BIND), 90 o securidad Ethernet, 76 seguridad, 112 comandos r, 140 login de UUCP, 192194 login remoto, 140 nombres de mquina falsos, 85 a PPP, 118, 125129 servidores TCP, 133 sistema, 17 SLIP, 105 spoong, 85 UUCP, 187194 seguridad del sistema, 17 sendbatches, 282 sendmail, 202, 239266 alias, 252 alias de usuarios, 252, 254 CF, 240248, 255256 Comprobacin, 256 o DECnet, 254 ejecutando, 256 deliver, 244 escribiendo el correo a un archivo, 252 estad sticas, 264 forzado de correo, 262 Forzado de rutado UUCP, 263 gnesis de sendmail.cf, 255 e generacin del chero sendmail.cf, 256 o gestor de correo, 248 gestores de correo, 242, 246, 250, 252, 263 IDA, 240 impidiendo el env UUCP, 263 o instalacin, 254 o local hostnames, 245, 246 localizacin de cheros, 265 o mailertable, 248 manipulaciones de la cola de correo, 264

INDICE DE MATERIAS

350

nombre de sistema no cualicado, 252, 263 nomenclatura de dominio plenamente cualicado, 250, 252 nomenclatura de sistema no cualicado, 250, 263 postmaster, 253 postmaster, 244 procesado de la cola de correo, 264 rutado, 251 dominio, 261 Mquinas inteligentes, 246 a UUCP, 250, 254, 263 sendmail.cf, 240 Sistemas de reenv 261 o, Sistemas de relevo, 246 sistemas remotos mal congurados, 262 Sitio Internet, 247 Sitio ramal UUCP, 247 tablas, 246, 253, 259 tables, 240 testing, 261 transporte, vase , gestor de correo242 e UUCP, 246, 250, 263 versin, 254 o sendmail.cf, vase sendmail, sendmail.cf e Sequencia de Arranque, 59 serie l nea control de ujo por handshake, 56 control de ujo por hardware, 58 dispositivo chero, 55 serie serie velocidad, 55 server sendmail, 256 services.byname, 152 servicios, 13 conguracin, 131 o conocidos, 136 reconocidos, 13 restringir acceso, 133 restringir el acceso, 17 y nmeros de puerto, 13 u services, 132, 136138 servidor inetd, 131136

tcpd, 133136 nfsd, 158 NIS, 146 NNTP, 295 UUCP, 190194 ypserv, 146 servidor de nombres, 3334 autorizado, 33, 34, 37 cache, 91 comprobacin, 98 o conguracin, 88101 o primario, 34 primary, 90 ra 95, 99 z, slo con cache, 102 o secondary, 90 secundario, 34 sincronizacin, 34 o slave, 91 solo-cache, 34 servidor de nombres autorizado, 33, 34, 37, 92 servidor de nombres slo con cache, 102 o servidor maestro de noticas, 276 setserial, 57 sincronizacin de servidores de nombres, 34 o Sistema de Informacin de Redes, vase NIS o e Sistema de nombres, vase DNS e Sistema de nombres Internet de Berkeley, 84 site, 1 sl0 (interface PPP), 73 sl0 (interface SLIP), 73 slattach, 103 SLIP, 11, 52, 54, 73, 102112 encaminamiento, 81 iniciacin, 105 o SLIPDISC, 103 smail, 202, 219238 administrador, 228 alias de usuario, 234 archivo cong, 222 archivo cong, 219228 archivo de correo del usuario, 233 archivo paths, 230, 232 archivos de registro, 225 arreglando problemas, 225 BSMTP, 220, 236

INDICE DE MATERIAS

351

cmo encolar el correo, 227 o cmo revisar la cola del correo, 227 o compilacin, 226 o direcciones locales, 232236 ejecutando la cola, 228 en una red local, 222225 routers, 229 encaminamiento, 229232 evitar ciclos, 228 Internet, 231 UUCP, 232 UUCP vs. SLIP, 231 enrutamiento antrin inteligente, 221 o UUCP, 230 Enviar el correo a un archivo, 233 listas de correo, 236 manejo del correo dentro de un dominio, 223 modos de entrega, 227 nombres de mquina no calicados, 237 a nombres locales de antriones, 221 pasar el correo a un comando, 233 directors, 229 SMTP, 224225, 237 transports, 229 usuario alias, 235 utiler 219 as, UUCP, 220222, 231, 232, 236237 y SLIP/PPP, 231 progsmail reenv 234 o, SMTP, 206 lotes, 187 por lotes, 207 servicio, 224 SNARL, vase Pol e tica Toda Subred es Local SOA (registro DNS), 34, 92 SOA (Start of Authority), 34 socket, 13 Space.c, 49, 51 Spencer, Henry, 267 spoong, 85 Storm, Kim F., 304 subdominio (DNS), 32, 37 subred (DNS), 62

subred (IP), 25, 45 Subredes son Locales, Pol tica, 83 sustituto, ARP, 73, 81 syslog, 120, 135, 164 Tso, Theodore, 57 tass, 302 Taylor, Ian, 167 TCP, 1112 programa envoltorio, 133 UUCP, 186 TCP/IP, 414, 2029 tcpd, 133136 telfono, env de datos a travs de, 113 e o e telfono, env de datos sobre, 11 e o telfono, transmitir datos por el, 102 e terminal programas, 53 TFTP, vase Trivial File Transfer Protocol e tftp, 133 thinnet, 7, 47 Thmmler, Swen, 143 u Tiempo de ida y vuelta (IP), 67 tin, 302 tinygrams, 45 Pol tica Toda Subrede es Local, 45 Transmission Control Protocol, vase TCP e tripwire, 18 Trivial File Transfer Protocol, 133 trn, 303 tty, 5458 disciplina de l nea, 103 disciplina de las l neas, 114 l nea dedicada, 54 UART, 57 UDP, 12 Unidad de Transferencia Mxima, 76, 82 a Unidad Mxima de Recepcin (PPP), 124 a o Unidad Mxima de Transferencia, 124 a Unidad Mxima de Transferencia, 75 a Universidad Groucho Marx, 5 Urlichs, Matthias, 15 Usenet, 268 mapas, 210, 214 User Datagram Protocol, vase UDP e Utilidades Bsicas de Red, vase UUCP, HDB a e

INDICE DE MATERIAS

352

uucico, 171 UUCP, 24, 53, 166201 alternativas, 181 annimo, 194 o BNU, 166 comprobacin, 198 o comprobacin de la secuencia de llamada, o 170 comprobacin de secuencia de llamadas, o 193194 comprobar, 177 congurar como servidor, 190195 congurar entradas, 191 congurar logins, 192 correo, 206, 210 cuentas, 191 dilogo de entrada, 179 a directorio de cola, 168 dispositivo, 179, 183185 ejecucin de comandos, 187 o entrada, 179 entrada al sistema, 175 esclavo, 169 estad sticas, 200 chero cong, 178 dial chero, 185 port, chero, 183 chero sys, 178 chero dialcode, 179 chero passwd, 191 cheros de conguracin, 172175 o handshake, 170 HDB, 166, 201 hora de llamada, 182 intervalo para reintentar, 182 l neas directas, 187 llamada, 190 logging y debugging, 200201 mdem, 183, 185186 o maestro, 169 mail, 187 mapas, 214 marcacin de la llamada, 171 o nmero de telfono, 179 u e negociacin, 170 o news, 187

nivel de cola, 169 nombre de nodo, 176, 178 noticias, 273 prioridades, 169, 182183 protocolo, 170, 195198 ajuste, 197 seleccin, 197 o Proyecto de Cartograf 210 a, Proyecto de Mapa, 176 rango de cola, 182183 reenv 3, 189 o, registro de actividad y resolucin de proo blemas, 171 restricciones ejecucin de commandos, 187 o restringir hora de llamada, 182 reenv 189 o, transferencia de cheros, 188 scripts de entrada, 179181 seguridad de login, 192194 sistema remoto, 178183 sobre TCP/IP, 186 solucin de problemas, 198 o Taylor, 167 trabajo, 168, 169 transferencia de cheros, 188 uso de smail, 220 uucico, 169171 Versin 2, 166 o y getty, 190 UUCP annimo, 194 o uugetty, 190 uux, 283 volumen NFS de solo lectura, 163 Welsh, Matt, ix Wirzenius, Lars, ix X.25, 8 XDR, vase External Data Representation e Ye Olde ARPANET kludge, 208 Yellow Pages, vase NIS e YP, vase NIS e yp-linux, 143

INDICE DE MATERIAS

353

yp.conf, 150 ypbind, 147 ypcat, 145, 150 yps, 143 ypserv, 146 Yutaka, Niibe, 51 Zen, 268 zona, DNS, vase DNS, zona e

También podría gustarte