Professional Documents
Culture Documents
Mayo 2004
TESIS DE LINUX
Moiss
Mayo 2004
LINUX
Mayo 2004
OBJETIVOS
Brindar una visin mas amplia del sistema operativo Linux.
Conocer cuales son las ventajas y desventajas que implica su uso.
Desarrollar el procedimiento de configuracin e instalacin del sistema
operativo y algunas utilidades.
JUSTIFICACIN
Como sabemos en la actualidad la conexin de ordenadores para formar una red
local viene siendo habitual para pequeas instalaciones o para grandes empresas
que necesitan intercomunicar sus redes locales utilizando lneas telefnicas o el
Internet por lo cual esto implica hablar de Linux; por supuesto este no es el nico
sistema operativo con capacidad para la administracin o creacin de redes pero
durante muchos aos esta ha sido una de las mejores opciones y seguramente lo
seguir siendo durante mucho tiempo.
Tambin podemos decir que gracias a que Linux es un software libre permite el
crecimiento de las redes y creacin de nuevas implementaciones sin ningn
costo.
LINUX
Mayo 2004
Captulo 1
Conceptos Generales
El desarrollo de sistemas operativos tiene como objetivo el proporcionar una
opcin que se adecue a las necesidades del individuo o empresa. El saber como
funciona, sus ventajas y desventajas ayuda e induce a estar en constante
actualizacin en relacin a las innovaciones que el mismo ser humano desarrolla
para facilitar el trabajo. As mismo el conocer los conceptos fundamentales de
cualquier tpico ayuda a comprender el funcionamiento de cualquier proceso,
sistema o programa.
1.1 Sistemas Operativos
El sistema operativo es el instrumento indispensable para hacer de la computadora
un objeto til. Bajo este nombre se agrupan todos aquellos programas que
permiten a los usuarios la utilizacin de hardware, que de otra manera serian
difciles de controlar. Un sistema operativo se define
como un conjunto de
las tareas
LINUX
Mayo 2004
una
LINUX
Mayo 2004
LINUX
Mayo 2004
el
sistema
operativo
el
encargado
de
ceder
tiempo
de
LINUX
Mayo 2004
LINUX
Mayo 2004
LINUX
Mayo 2004
LINUX
Mayo 2004
Inconvenientes
Requiere ms conocimientos
de informtica
No hay sustituto directo para
todas las aplicaciones
Algunos dispositivos de
continuamente de versiones
de aplicaciones
soportados
Inconvenientes
Es gratis
Es ms flexible y configurable
Es ms eficiente
No requiere hardware caro
No obliga a cambiar
NT est ms extendido en
la empresa
continuamente de versiones
de aplicaciones
Existen sustitutos para todos
los servicios tpicos
LINUX
Mayo 2004
Inconvenientes
Es gratis
No requiere hardware
caro
Est mejor integrado
que otros Unix con
los entornos
Windows
Linux est disponible
para mltiples
plataformas hardware
Qu ventajas tiene Linux sobre Windows?
Es ms seguro
La que la gran mayora de los ataques de hackers son dirigidos a servidores
Windows al igual que los virus los cuales se enfocan principalmente a
servidores con ste sistema operativo.
La plataforma Linux es ms robusta lo cual hace ms difcil que algn
intruso pueda violar el sistema de seguridad de Linux.
Es ms rpido
Al tener una plataforma ms estable, esto favorece el desempeo de
aplicaciones de todo tipo tales como: bases de datos, aplicaciones XML,
multimedia, etc.
11
LINUX
Mayo 2004
requieren
supervisin
tan
estrecha
ni
pagos
de
plizas
de
tienen la
12
LINUX
Mayo 2004
las instrucciones
13
LINUX
Mayo 2004
con el
LINUX
Mayo 2004
mquina son recibidos por todas las dems. Un campo de direccin dentro del
paquete especifica a quin se dirige. Al recibir el paquete, la mquina verifica el
campo de direccin, si el paquete esta dirigido a ella, lo procesa; si esta dirigido a
otra mquina lo ignora.
Los sistemas de difusin generalmente tambin ofrecen la posibilidad de dirigir un
paquete a todos los destinos colocando un cdigo especial en el campo de
direccin. Cuando se transmite un paquete con este cdigo, cada mquina en la
red lo recibe y lo procesa. Este modo de operacin se llama difusin
( Broadcasting ).
Multicast (Multidifusion): Una forma de broadcast en el cual e l paquete es
liberado en base a un conjunto predefinidote posibles direcciones destino.
LINUX
Mayo 2004
considerar que el ejemplo mas comn son las redes en base a la conmutacin de
circuitos, como lo son las redes telefnicas publicas. Como regla general las redes
pequeas, geogrficamente localizadas tienden a usar la difusin y las redes mas
grandes suelen ser punto a punto.
LINUX
Mayo 2004
17
LINUX
Mayo 2004
de
A diferencia de un repetidor , un
LINUX
Mayo 2004
a las estaciones
la
LINUX
Mayo 2004
funcin de adaptador
de la computadora personal
en seales analgicas
y hora
emisor esta autorizado para hacerlo. Su mayo utilidad esta para la expansin
de una red es que permite el acceso remoto de una estacin de trabajo
mvil.
20
LINUX
Mayo 2004
21
LINUX
Mayo 2004
LINUX
Mayo 2004
Puntos a considerar
Instalacin. La topologa anillo es moderadamente simple de instalar. Porque el
anillo requiere un enlace cerrado, mas cable es requerido que la topologa tipo de
bus. De igual forma que la topologa bus usted no debe acceder una capacidad
mxima entre dispositivos repetidores.
Reconfiguracin. La topologa anillo viene a ser difcil de configurar. Los
segmentos de anillo deben ser divididos o reemplazados con dos nuevos
segmentos cada vez que un segmento es cambiado.
El anillo esta limitado a un nmero mximo de dispositivos.
1.7.3 Topologa Estrella
23
LINUX
Mayo 2004
LINUX
Mayo 2004
Bus
Anillo
Las diferentes formas de cmo l trfico puede fluir en un sistemas de calles, es
un ejemplo de topologa lgica. La topologa lgica de red es, en esencia, una
estrategia para direccional el flujo de la seal.
Esta metfora de trfico es una manera muy valida para entender una topologa
lgica. Como se puede ver, el trmino Trfico de red y Colisiones son comnmente
usadas en la terminologa de red.
Las topologas lgicas son una parte fundamental de una red, porque las seales
elctricas deben mantenerse separadas y diferenciadas de las otras, para evitar
choques y distorsiones.
Los dispositivos que envan la seal tambin deben mantener un orden. Los
dispositivos deben hablar para tomar turnos, o mirar el trfico de la red antes de
enviar sus mensajes.
25
LINUX
Mayo 2004
El mensaje enviados a todos los dispositivos en una topologa lgica bus contiene
informacin que dice cul dispositivo debe de recibir el mensaje. El dispositivo que
supuestamente recibi el mensaje, lo recibir. Otros lo ignoran. Una topologa bus
es una buena porque los dispositivos de red no estn enterados de las ubicaciones
fsicas de los otros dispositivos. No se puede dar a un dispositivo instrucciones
para enviar mensajes directamente a otro dispositivo. Por ejemplo un dispositivo
no puede conocer que otro dispositivo esta localizado a tres nodos al sur sobre el
lado derecho. Por tanto, un dispositivo debe enviar el mensaje a todas las
direcciones. Entonces cada dispositivo determina si el mensaje fue precisamente
para ese dispositivo.
26
LINUX
Mayo 2004
La topologa lgica anillo puede ser usada con la topologa fsica anillo y con la
topologa fsica estrella. La diferencia entre el anillo lgico y bus lgico esta en que
la seal enviada en una lgica bus va en todas direcciones. Las seales enviadas
en un anillo lgico pueden solo ir en una direccin. Una topologa fsica estrella
puede manipular una topologa lgica anillo, por que las seales entran en el hub y
son enviados de regreso a los dispositivos de red en un orden predeterminado.
27
LINUX
Mayo 2004
La topologa fsica puede ser usada con cualquiera de las dos topologa. La
estrella fsica es tambin relativamente fcil de instalar y fcil de reconfigurar. La
topologa fsica estrella es muy comn.
1.9 Redes Token Ring
Las redes token ring combinan una topologa fsica estrella y topologa lgica anillo
con el esquema de acceso al medio de token passing. Esta es una configuracin
popular de red.
Cuando una estacin quiere transmitir al anillo, este espera por el Token libre para
comunicar. Cuando se hace eso, la estacin fuente toma el token libre y agrega
data a l. La estacin entonces enva el Token hacia el anillo. Desde ese momento
el Token ocupado es pasado por cada estacin alrededor del anillo, cada estacin
comprueba si la comunicacin esta dirigida hacia l. Si una estacin no es la
receptora del Token, ste la reenva al anillo; si una estacin es la receptora, ste
copia la data de la estacin origen agregada al token.
Finalmente ste agrega data al Token para indicar que ha reconocido la direccin y
que ha copiado la data, entonces la estacin enva el token alterando a anillo.
28
LINUX
Mayo 2004
El Token continua alrededor del anillo hasta que este alcanza la estacin origen,
cuando la estacin ve que el token ha sido recibido y la data ha sido copiada, esta
genera un nuevo Token libre, el cual buscar una siguiente estacin que desea
transmitir datos para repetir el proceso.
29
LINUX
Mayo 2004
Las redes Ethernet usan un esquema de acceso basado en contencin. Las redes
Ethernet mueven mensajes alrededor de la red en paquetes de informacin que
incluyen la direccin de la estacin origen, estacin destino, seales de control y la
data misma. Para enviar paquetes, un dispositivo en la red debe primero escuchar
y ver si algn otro dispositivo esta usando el cable.
30
LINUX
Mayo 2004
CONCLUSIONES
Es bien sabido que el tener lo conocimientos bsicos de cualquier tema da como
pauta es comprender
conforman
31
LINUX
Mayo 2004
32
LINUX
Mayo 2004
Capitulo 2
Instalacin de Linux
El contar con uno o mas sistemas operativos en una PC da como resultado el
tener una visin mucho mas amplia de cmo poder desarrollar trabajos y mas aun
si se puede tener un contacto entre los dos, para esto es necesario conocer las
capacidades o compatibilidades de la PC con la cual se esta trabajando. Por otro
lado el solo conocer el procedimiento de cualquier sistema operativo o software
en general es de gran ayuda para as lograr un correcto funcionamiento del
mismo posterior a la instalacin.
2.1 Instalacin de Linux
2.1.1 Configuracin Hardware Bsica
Se debera tener un conocimiento bsico del hardware instalado en tu ordenador,
incluyendo:
CD-ROM: Sobre todo, el tipo de interfaz (IDE, SCSI, u otro interfaz), y, para
los CD-ROMs no IDE, no SCSI, la marca y numero de modelo.
33
LINUX
Mayo 2004
34
LINUX
Mayo 2004
35
LINUX
Mayo 2004
Una vez realizada la operacin de entre todos los archivos de esta carpeta
deberemos seleccionar el archivo flop1440.bat al seleccionarlo lo que se hace
36
LINUX
Mayo 2004
LINUX
Mayo 2004
LINUX
Mayo 2004
b) Seleccin de teclado:
Despus de seleccionar el tipo de teclado apropiado normalmente <es> , pulsar
[Enter]; el tipo de teclado seleccionado ser cargado automticamente tanto para
el resto del proceso de instalacin como cada vez que arranque el sistema Red
Hat Linux.
39
LINUX
Mayo 2004
CD-ROM
NFS
FTP
LINUX
Mayo 2004
Instalando
El sistema Red Hat Linux se instala normalmente en una o varias
particiones de disco vacas, o bien, sobre otra instalacin de Linux.
Nota: Al instalar Red Hat Linux sobre otra instalacin de Linux (incluyendo
Red Hat Linux) no se guarda ninguna informacin de la instalacin anterior.
Es necesario salvar cualquier fichero considerado importante! Si se va a
realizar una instalacin completa, elegir Install.
Actualizando
El proceso de instalacin de Red Hat Linux 6.0 incluye la posibilidad de
actualizar desde versiones anteriores de Red Hat Linux (versin 2.0 y
posteriores) que estn basadas en la tecnologa RPM. Al actualizar el
sistema se instala el kernel modular 2.0.x as como las versiones
actualizadas de los paquetes que estn instalados en la mquina. El
proceso de actualizacin mantiene los ficheros de configuracin existentes
al
renombrarlos
usando
la
extensin
.rpmsave
(por
ejemplo,
LINUX
Mayo 2004
LINUX
Mayo 2004
43
LINUX
Mayo 2004
Cada lnea de la seccin Particiones Actuales del Disco representa una particin
de disco. Esta seccin tiene una barra de desplazamiento a la derecha, lo cual
significa que podran haber ms particiones que las que pueden estar
presentadas en la pantalla en ese momento. Usando las teclas [\flecha arriba] y
[\flecha abajo], se ve si hay ms particiones.
Cada lnea de esta seccin tiene cinco campos diferentes:
44
LINUX
Mayo 2004
Free: El campo "Free" muestra cuanto espacio de disco est todava sin
asignar. Bar Graph: Este campo presenta una representacin visual del
espacio actualmente usado. Los asteriscos que hay entre corchetes
representan el espacio ocupado, el resto es el espacio libre. En la Figura 4,
la barra grfica muestra que no hay espacio libre.
45
LINUX
Mayo 2004
Aadir: El botn "Aadir" se usa para crear una nueva particin. Cuando es
seleccionado, aparece una ventana de dilogo conteniendo los campos que
deben ser rellenados.
Editar: El botn "Editar" es usado para modificar los atributos de la particin
seleccionada en ese momento en la seccin ``Particiones actuales del disco''.
Seleccionando este botn aparecer una ventana de dilogo. Alguno o todos los
campos de la ventana de dilogo ``Edit Partition'' pueden ser modificado,
dependiendo de si la informacin de la particin ha sido ya escrita al disco o no.
Borrar: El botn "Borrar" es usado para borrar la particin seleccionada en ese
momento en la seccin ``Current Disk Partitions''. Al seleccionar este botn
aparecer una ventana de dilogo preguntando si confirmamos la supresin.
Aceptar: El botn "Aceptar" da lugar a que cualquier cambio hecho en tu tabla de
particiones sea escrito en el disco. Te ser preguntado si deseas confirmar los
cambios antes de que Disk Druid reescriba la(s) tabla(s) de particiones de tu(s)
disco(s). Adems, cualquier punto de montaje que hayas definido ser pasado al
programa de instalacin, y ser usado al final por tu sistema Red Hat Linux para
definir la distribucin del sistema de ficheros.
Cancelar: Este botn causa la salida de Disk Druid sin salvar los cambios
realizados. Cuando este botn es seleccionado, el programa de instalacin
presentar una ventana de dilogo que permite elegir la accin que quieres tomar
a continuacin.
Ahora se ver como se usa Disk Druid para establecer las particiones del sistema
Red Hat Linux.
2.8 Aadiendo una particin
Para aadir una nueva particin, seleccionar el botn Aadir, y pulsar [Espacio] o
[Enter]. Aparecer una ventana titulada ``Editar Nueva Particin''. Esta contiene
los siguientes campos:
46
LINUX
Mayo 2004
Tipo: Este campo contiene una lista de los diferentes tipos de particin.
Seleccionar el tipo apropiado usando las teclas [flecha arriba] y [flecha
abajo]. Lo ms comn y lo que abremos usado en la Demo, ser una
particin tipo Linux Native con un punto de montaje / y una particin
linux swap. Hay que tener en cuenta que el tamao de la particin swap
47
LINUX
Mayo 2004
48
LINUX
Mayo 2004
Para borrar una particin, selarla en la seccin " Particiones actuales del
disco", seleccionar el botn Borrar,. Se ser preguntado para confirmar la
supresin.
Cancelando
LINUX
Mayo 2004
Una vez que se ha terminado de configurar las particiones e introducir los puntos
de montaje, en la pantalla deber aparecer algo como lo que se muestra en la
siguiente figura, selecciona Aceptar
50
LINUX
Mayo 2004
51
LINUX
Mayo 2004
[Enter] (o elegir Edit); entonces insertar el punto de montaje para la particin, por
ejemplo, /usr.
52
LINUX
Mayo 2004
53
LINUX
Mayo 2004
54
LINUX
Mayo 2004
55
LINUX
Mayo 2004
Soporte de Impresora
X Windows
GNOME
KDE
Suit de ofimtica
Herramientas
Acceso Dos/Windows
Gestores de ficheros
Tratamientos grficos
Multimedia
Conexiones telefnicas
News
Servidor NFS
56
LINUX
Mayo 2004
Samba
IPX
Servidor FTP
Servidor Web
Servidor DNS
Servidor SQL
Emacs
Xemacs
Programacin en C
Libreras
Programacin en C ++
Prog X
Prog. GNOME
Prog KERNEL.
LINUX
Mayo 2004
58
LINUX
Mayo 2004
59
LINUX
Mayo 2004
Remote lpd:. Esta impresora est conectada a una red de rea local (ya
sea a travs de otra computadora o directamente), y es capaz de
comunicarse va lpr/lpd.
60
LINUX
Mayo 2004
Local
Remote lpd
LAN Manager
61
LINUX
Mayo 2004
62
LINUX
Mayo 2004
63
LINUX
Mayo 2004
64
LINUX
Mayo 2004
LINUX
Mayo 2004
66
LINUX
Mayo 2004
LINUX
Mayo 2004
68
LINUX
Mayo 2004
69
LINUX
Mayo 2004
Particiones de Arranque :
Se nos pregunta simplemente por la particin donde va a arrancar linux.
Simplemente habr que poner la Linux Native principal.
2.27 Configuracin de la tarjeta de video y monitor; Las X Windows :
Esta versin de instalacin de Red Hat obliga a hacer una configuracin de la
tarjeta de video. Normalmente sta ser detectada automticamente, pero puede
ocurrir que no sea as y por tanto habr que saber cules son los parmetros de
la tarjeta y seleccionarla de una lista.
70
LINUX
Mayo 2004
2.28 Xconfigurator
Lo primero que hay que hacer para configurar X Windows es escoger la tarjeta de
vdeo. Hay que recorrer la lista de las tarjetas soportadas hasta que se encuentre
la de la mquina. Si la tarjeta no est en la lista, podra no estar soportada por
XFree86. En ese caso se puede intentar con la ltima opcin de la lista (Unlisted
Card) o con un servidor comercial XWindows, como Metro X.
El siguiente paso es seleccionar el monitor. En caso de que el monitor no est en
la lista, se puede escoger uno de los monitores genricos o hacerlo a medida e
introducir sus propios parmetros. La configuracin hecha a medida se
recomienda nicamente a aquellas personas que tengan conocimientos del
funcionamiento interno de los monitores CRT. El usuario medio debera usar una
de las selecciones genricas de la lista. Una vez seleccionado el monitor, debe
indicar a Xconfigurator cunta memoria de vdeo se tiene.
Mueva el cursor sobre la opcin adecuada y pulsar [Enter] o [F12] para continuar.
Para el siguiente paso, se recomienda que seleccione la opcin por defecto (No
Clock chip Setting). Aquellos usuarios con experiencia podran querer seleccionar
un chip de chip especfico. Si no se est seguro del chip que tiene, la mejor forma
de averiguarlo es mirando en la tarjeta.
Tras una serie de pruebas una vez visto el mensaje de prueba se encontrar
finalizada la primera parte de la instalacin.
Reiniciando el sistema :
Despus de la configuracin anterior se reinicia el sistema. Para ello hay que
asegurar el no tener insertado el CD de Red Hat en el CD- ROM y de arrancar
con el disco de LILO metido en la disquetera.
Nada ms arrancar la primera configuracin que se realiza es :
Instalacin de MODEM.
LINUX
Mayo 2004
Fin de la instalacin.
Ya se tiene Red Hat 6.0 en castellano instalado y listo para funcionar.
CONCLUSIONES
Es bien sabido que cuando se conoce el procedimiento para la instalacin de
cualquier tipo de dispositivo, programa, etc el ahorro de tiempo es mayor. Por otra
parte se espera que el funcionamiento del mismo sea optimo y por lo tanto la
interaccin. En el siguiente capitulo se hablara de la configuracin de un DNS.
72
LINUX
Mayo 2004
Captulo 3
Configuracin de Hardware y Software de Red
Dentro
de
este
capitulo
abordaremos
cuestiones
importantes
de
configuracin tanto del hardware como del software de los usuarios y del servidor
dentro de nuestra red ; abordaremos temas importantes sobre la configuracin
para redes TCP/IP, conexiones SLIP y Protocolo punto a punto. Se revisara de
forma amplia la configuracin e implementacin del servidor de nombres de
dominio (DNS). Adems se abordaremos una de las partes mas importantes
dentro de la seguridad de redes administradas con Linux que son cuestiones
bsicas sobre la creacin y configuracin de un contrafuegos.
3.1. Configuracin del hardware de red
Explicaremos en esta seccin qu es lo que pasa cuando el cdigo de red del
ncleo accede a una parte del hardware. Para ello, y antes que nada, tenemos
que hablar un poco sobre los conceptos de interfaz y controladores.
Primero, evidentemente, est el hardware por s mismo; por ejemplo, una tarjeta
Ethernet, FDDI o Token Ring: es una oblea de silicio, atiborrada de montones de
pequeos chips con extraos nmeros encima e insertada en una ranura de su
PC. Esto es lo que por lo general denominamos un dispositivo fsico.
Para poder utilizar una tarjeta de red son necesarias una serie de funciones
especiales definidas en el ncleo de Linux que seran capaces de entender la
forma particular de acceso al dispositivo. Al software que implementa estas
funciones se le llama controlador. Linux tiene controladores para muchos tipos de
tarjetas de red: ISA, PCI, MCA, EISA, puerto paralelo, PCMCIA, y ms
recientemente, USB.
Pero qu es lo que queremos decir con que un controlador gestione un
dispositivo? Vamos a tratar sobre esto con una tarjeta Ethernet. El controlador
tiene que ser capaz de comunicarse de alguna forma con la lgica interna de la
tarjeta: tiene que enviar rdenes y datos a la tarjeta, mientras que la tarjeta debe
transmitir al controlador cualquier dato recibido.
En un PC compatible, esta comunicacin se establece por medio de una serie de
direcciones de E/S que son mapeadas a los registros de la tarjeta y/o a travs de
73
LINUX
Mayo 2004
LINUX
Mayo 2004
Donde normalmente deseara ver el tamao del archivo en la salida de ls, en vez
de eso ver dos nmeros, llamados los nmeros de dispositivo "major" y "minor"
(primario y secundario). Estos nmeros indican el dispositivo actual al que est
asociado el archivo de dispositivo.
Cada controlador de dispositivo registra un nico nmero primario para el ncleo.
En cada caso los registros de dispositivos tienen un nico nmero secundario
para dicho dispositivo primario. Los interfaces tty,/dev/tty*, son unos dispositivos
de modo carcter por lo que indica la c, y tienen un maximo nmero de 4, pero
/dev/tty1 tiene un nmero menor de 1, y /dev/tty2 tiene un nmero menor de 2.
Los nombres de las interfaces de Linux son definidos internamente en el ncleo y
no son ficheros de dispositivos del directorio /dev. Algunos nombres de
dispositivos tpicos sern listados despus en Seccin 3.1.2. La asignacin de
interfaces a los dispositivos depende normalmente del orden en que los
dispositivos son configurados. Las interfaces SLIP son manejadas de forma
diferente a otras porque stas son asignadas dinmicamente. Cuando se
establece una conexin SLIP, una interfaz es asignada al puerto serie.
Figura 3-1 Ilustra la relacin entre el hardware, los controladores de dispositivos, y
las interfaces.
75
LINUX
Mayo 2004
Good.
SwanseaUniversityComputerSocietyNET3.035forLinux2.0
NET3:Unixdomainsockets0.13forLinuxNET3.035.
SwanseaUniversityComputerSocietyTCP/IPforNET3.034
IPProtocols:IGMP,ICMP,UDP,TCP
SwanseaUniversityComputerSocietyIPX0.34forNET3.035
IPXPortionsCopyright(c)1995Caldera,Inc.
Serialdriverversion4.13withnoserialoptionsenabled
tty00at0x03f8(irq=4)isa16550A
tty01at0x02f8(irq=3)isa16550A
CSLIP:codecopyright1989RegentsoftheUniversityofCalifornia
PPP:Version2.2.0(dynamicchannelallocation)
PPPDynamicchannelallocationcodecopyright1995Caldera,Inc.
PPPlinedisciplineregistered.
eth0:3c509at0x300tag1,10baseTport,address00a0240ee4e0,/
IRQ10.
3c509.c:1.126/4/97becker@cesdis.gsfc.nasa.gov
LinuxVersion2.0.32(root@perf)(gccVersion2.7.2.1)
#1TueOct2115:30:44EST1997
.
Este ejemplo muestra que el ncleo ha sido compilado con el TCP/IP activado e
incluyendo controladores para SLIP, CSLIP, y PPP. La tercera lnea empezando
desde abajo muestra que una tarjeta Ethernet 3C509 ha sido detectada e
instalada como la interfaz eth0. Si tiene una tarjeta de red instalada pero no
aparece ningn mensaje similar significa que el ncleo es incapaz de detectar su
tarjeta correctamente. Esta situacin ser tratada ms adelante en la seccin
Ethernet Autoprobing.
3.1.1. Configuracin del ncleo
Muchas distribuciones de Linux vienen con discos de arranque que funcionan con
el hardware para PC ms comn. Normalmente, el ncleo suministrado es
altamente modulable e incluye casi cualquier controlador que pueda necesitar. No
es un buen sistema tener almacenados controladores en su disco que nunca va a
usar. Por lo tanto, ser conveniente crear su propio ncleo e incluir slo aquellos
controladores que realmente necesite o desee; de esta forma ahorrar un poco de
espacio en disco y reduce el tiempo que lleva compilar un ncleo nuevo.
76
LINUX
Mayo 2004
LINUX
Mayo 2004
completamente. Aparte puede ver la opcin de mdulo (m) para que dicho
componente sea compilado como un mdulo cargable. Los mdulos necesitan ser
cargados antes para que puedan ser usados.
La siguiente lista de preguntas trata sobre el soporte de red. El juego exacto de
opciones de configuracin cambia constantemente debido al continuo desarrollo.
Una lista tpica de las opciones ofrecidas por la mayora de las versiones del
ncleo puede ser sta:
*
*Networkdevicesupport
*
Networkdevicesupport(CONFIG_NETDEVICES)[Y/n/?]
Debe responder a esta cuestin con ysi quiere usar cualquier tipo de dispositivo de red, ya sea
Ethernet, SLIP, PPP, o el que sea. Cuando conteste a la pregunta con y, el soporte para los
dispositivos Ethernet ser activado automticamente. Deber responder a otras preguntas si quiere
habilitar el soporte de otros tipos de controladores de red:
PLIP(parallelport)support(CONFIG_PLIP)[N/y/m/?]y
PPP(pointtopoint)support(CONFIG_PPP)[N/y/m/?]y
*
*CCPcompressorsforPPPareonlybuiltasmodules.
*
SLIP(serialline)support(CONFIG_SLIP)[N/y/m/?]m
CSLIPcompressedheaders(CONFIG_SLIP_COMPRESSED)[N/y/?](NEW)y
Keepaliveandlinefill(CONFIG_SLIP_SMART)[N/y/?](NEW)y
SixbitSLIPencapsulation(CONFIG_SLIP_MODE_SLIP6)[N/y/?](NEW)y
LINUX
Mayo 2004
necesarias al ncleo para ello. La opcin Keepalive and linefill causa que el
soporte de SLIP genere peridicamente actividad en la lnea para prevenir que
sta sea desconectada por inactividad. La opcin Six bit SLIP encapsulation le
permite ejecutar SLIP sobre lneas y circuitos que no son capaces de transmitir el
grupo de 8-bit de datos correctamente. Esto es similar al uuencoding o la tcnica
binhex usada para enviar archivos binarios por e-mail. PLIP proporciona una
forma de enviar datagramas IP a travs de una conexin por puerto paralelo. Esto
es usado comnmente para comunicarse con PCs que usan DOS. En el hardware
tpico de PC, PLIP puede ser ms rpido que PPP o SLIP, pero requiere mucha
ms capacidad en el CPU para funcionar, adems cuando la tasa de transferencia
sea buena, otras tareas en la mquina podran volverse ms lentas.
A medida que se desarrollan ms controladores, la lista de preguntas en esta
seccin se hace mayor. Si desea compilar un ncleo que se pueda usar en varias
mquinas, o si su mquina tiene ms de un tipo de tarjeta de red instalada, puede
activar ms de un controlador:
.
.
Ethernet(10or100Mbit)(CONFIG_NET_ETHERNET)[Y/n/?]
3COMcards(CONFIG_NET_VENDOR_3COM)[Y/n/?]
3c501support(CONFIG_EL1)[N/y/m/?]
3c503support(CONFIG_EL2)[N/y/m/?]
.3c509/3c579support(CONFIG_EL3)[Y/m/n/?]
3c590/3c900series(592/595/597/900/905)"Vortex/Boomerang"support/
(CONFIG_VORTEX)[N/y/m/?]
AMDLANCEandPCnet(AT1500andNE2100)support(CONFIG_LANCE)[N/y/?]
AMDPCInet32(VLBandPCI)support(CONFIG_LANCE32)[N/y/?](NEW)
WesternDigital/SMCcards(CONFIG_NET_VENDOR_SMC)[N/y/?]
WD80*3support(CONFIG_WD80x3)[N/y/m/?](NEW)
SMCUltrasupport(CONFIG_ULTRA)[N/y/m/?](NEW)
SMCUltra32support(CONFIG_ULTRA32)[N/y/m/?](NEW)
SMC9194support(CONFIG_SMC9194)[N/y/m/?](NEW)
OtherISAcards(CONFIG_NET_ISA)[N/y/?]
CabletronE21xxsupport(CONFIG_E2100)[N/y/m/?](NEW)
DEPCA,DE10x,DE200,DE201,DE202,DE422support(CONFIG_DEPCA)[N/y/m/?]/
(NEW)
EtherWORKS3(DE203,DE204,DE205)support(CONFIG_EWRK3)[N/y/m/?](NEW)
EtherExpress16support(CONFIG_EEXPRESS)[N/y/m/?](NEW)
HPPCLAN+(27247Band27252A)support(CONFIG_HPLAN_PLUS)[N/y/m/?](NEW)
79
LINUX
Mayo 2004
HPPCLAN(27245andother27xxxseries)support(CONFIG_HPLAN)[N/y/m/?]/
(NEW)
HP10/100VGPCLAN(ISA,EISA,PCI)support(CONFIG_HP100)[N/y/m/?](NEW)
NE2000/NE1000support(CONFIG_NE2000)[N/y/m/?](NEW)
SK_G16support(CONFIG_SK_G16)[N/y/?](NEW)
EISA,VLB,PCIandoncardcontrollers(CONFIG_NET_EISA)[N/y/?]
ApricotXenIIoncardethernet(CONFIG_APRICOT)[N/y/m/?](NEW)
IntelEtherExpress/Pro100Bsupport(CONFIG_EEXPRESS_PRO100B)[N/y/m/?]/
(NEW)
DE425,DE434,DE435,DE450,DE500support(CONFIG_DE4X5)[N/y/m/?](NEW)
DECchipTulip(dc21x4x)PCIsupport(CONFIG_DEC_ELCP)[N/y/m/?](NEW)
DigiIntl.RightSwitchSEXsupport(CONFIG_DGRS)[N/y/m/?](NEW)
Pocketandportableadaptors(CONFIG_NET_POCKET)[N/y/?]
ATLANTEC/RealTekpocketadaptorsupport(CONFIG_ATP)[N/y/?](NEW)
DLinkDE600pocketadaptorsupport(CONFIG_DE600)[N/y/m/?](NEW)
DLinkDE620pocketadaptorsupport(CONFIG_DE620)[N/y/m/?](NEW)
TokenRingcontroladorsupport(CONFIG_TR)[N/y/?]
IBMTropicchipsetbasedadaptorsupport(CONFIG_IBMTR)[N/y/m/?](NEW)
FDDIcontroladorsupport(CONFIG_FDDI)[N/y/?]
DigitalDEFEAandDEFPAadaptersupport(CONFIG_DEFXX)[N/y/?](NEW)
ARCnetsupport(CONFIG_ARCNET)[N/y/m/?]
Enablearc0e(ARCnet"EtherEncap"packetformat)(CONFIG_ARCNET_ETH)/
[N/y/?](NEW)
Enablearc0s(ARCnetRFC1051packetformat)(CONFIG_ARCNET_1051)/
[N/y/?](NEW)
.
.
LINUX
Mayo 2004
Ruteadores
Tiene que activar esta opcin si su sistema va a actuar como un ruteador entre
dos redes, entre una red y un enlace SLIP, etc.. Podra querer desactivarla para
configurar el nodo como un cortafuegos. Los cortafuegos (o firewalls) son nodos
que estn conectados a dos o ms redes, pero que no enrutan el trfico entre
ellas.
[*]IP:forwarding/gatewaying
Virtual hosting
Estas opciones permiten configurar ms de una direccin IP para una nica
interfaz. Esto es til si quiere hacer virtual hosting, (alojamiento virtual), con una
sola mquina que puede ser configurada para escuchar y actuar como si esta
fuera varias mquinas separadas entre s, cada una con su propia configuracin
de red. Ms adelante hablaremos acerca del IP aliasing:
[*]Networkaliasing
<*>IP:aliasingsupport
Accounting
Esta opcin le permite recolectar los datos en el caudal del trfico IP enviados o
recibidos en su mquina:
[*]IP:accounting
81
LINUX
Mayo 2004
PC hug
Esta opcin evita incompatibilidades con algunas versiones de PC/TCP, una
implementacin comercial de TCP/IP basada en DOS para PCs.
(itissafetoleavetheseuntouched)
[*]IP:PC/TCPcompatibilitymode
Diskless booting
Esta funcin activa el Protocolo de Resolucin de Direcciones Inverso (RARP).
RARP se utiliza en clientes sin disco y terminales X para pedir su direccin IP al
arrancar. Deber activar RARP si planea ofrecer este tipo de servicios:
<*>IP:ReverseARP
MTU
Cuando enviamos datos sobre TCP, el ncleo tiene que dividir stos en varios
bloques de datos para pasarlos al nivel IP. El tamao de estos bloques es llamado
la Unidad Maxima de Transmisin (Maximum Transmission Unit), o MTU. Para los
nodos accesibles a travs de una red local como una Ethernet, se usa un MTU
tan alto como la mxima longitud permitida para los paquetes Ethernet 1,500
bytes. Cuando enrutamos IP sobre una WAN como Internet, es preferible usar
datagramas de menor tamao para asegurarnos de que no necesitan ser partidos
de nuevo a lo largo de la ruta mediante el proceso llamado fragmentacin IP. El
ncleo es capaz de determinar automticamente el MTU ms bajo de una ruta IP
y configurar automticamente una conexin TCP para usar ste. Este
comportamiento es activado por defecto. Si contesta con y a esta opcin, esta
caracterstica ser deshabilitada.
[]IP:DisablePathMTUDiscovery(normallyenabled)
Security feature
El protocolo IP soporta una caracterstica llamada Source Routing Source Routing
le permite especificar la ruta que un datagrama debe seguir mediante la grabacin
por usted mismo de la ruta dentro del datagrama. Esto fue alguna vez til antes
de que los protocolos de enrutamiento como RIP y OSPF se hicieran usuales.
82
LINUX
Mayo 2004
Novell support
Esta opcin activa el soporte para IPX, el protocolo de transmisin para redes que
usa Novell. Linux podra funcionar fcilmente como un enrutador IPX y su soporte
es til en entornos donde tiene servidores de ficheros Novell.
<*>TheIPXprotocol
Amateur radio
Estas tres opciones seleccionadas dan soporte para los tres protocolos de Radio
soportados por Linux: AX.25, NetRom y Rose:
<*>AmateurRadioAX.25Level2
<*>AmateurRadioNET/ROM
<*>AmateurRadioX.25PLP(Rose)
LINUX
Mayo 2004
plip0, plip1, stas son los interfaces PLIP. PLIP transporta datagramas IP sobre
lneas paralelas.
ax0, ax1, Estas son las interfaces AX.25. AX.25 es el principal protocolo usado por
los radioaficionados.
En las siguientes secciones, se tratara en detalle el uso de los controladores
descritos anteriormente.
3.1.3. Instalacin de una Ethernet
Las versiones actuales de Linux soportan una gran variedad de tarjetas Ethernet.
Actualmente hay algunas tarjetas Ethernet comunes que no estn soportadas por
Linux poro seguramente pronto lo estarn gracias a los desarrolladores.
Para usar cualquiera de las tarjetas Ethernet soportadas con Linux, debe usar un
ncleo precompilado procedente de alguna de las principales distribuciones de
Linux.
Estos
generalmente
tienen
modulos
disponibles
para
todos
los
LINUX
Mayo 2004
LINUX
Mayo 2004
86
LINUX
Mayo 2004
root=/dev/hda2
install=/boot/boot.b
map=/boot/map
vga=normal
delay=20
append="ether=10,300,eth0"
image=/boot/vmlinuz2.2.14
label=2.2.14
readonly
Nota: Despus de que haya editado lilo.conf, debe ejecutar lilo para activar el
cambio.
3.1.4. El controlador PLIP
Parallel Line IP (PLIP) es una forma barata de trabajar en red cuando slo quiere
conectar dos mquinas. Esta usa un puerto paralelo y un cable especial y llega a
alcanzar velocidades desde los 10KB/s hasta los 20KB/s.
Los ncleos Linux version 2.0 e inferiores slo soportan PLIP mode 0, y existe un
controlador para puerto paralelo mejorado en forma de parche para el ncleo 2.0,
y como parte estndar del codigo del ncleo 2.2, para realizar operaciones en
PLIP mode 1. Para conectar dos mquinas usando PLIP, necesitas un cable
especial que se vende en las tiendas como Cable de Impresora Nulor o cable
Laplink Turbo. Puede, adems, hacer usted mismo uno fcilmente; en la ultima
seccin de este trabajo se le muestra como.
El controlador PLIP para Linux es el resultado del trabajo de muchas personas. Si
es compilado dentro del ncleo, ste creara una interfaz de red para cada uno de
los posibles puertos de impresora, plip0 corresponder al puerto paralelo lp0,
plip1, corresponder al lp1, etc. El mapeado de interfaces a puertos cambia de los
ncleos 2.0 a los ncleos 2.2.
En los 2.0, el mapeado estaba especificado en el fichero drivers/net/Spacd.c del
cdigo fuente del ncleo. El mapeado por defecto en este fichero es:
Interface I/O
Port IRQ
plip0
0x3BC 7
plip1
0x378 7
plip2
0x278 5
87
LINUX
Mayo 2004
Cuando el controlador PLIP es inicializado, cada arranque, si ste esta dentro del
ncleo, o cuando el mdulo plip.o es cargado, cada puerto paralelo tendr un
dispositivo de red plip asociado. El plip0 ser asignado al primer dispositivo de
puerto paralelo, plip1 al segundo, etc... Puede evitar manualmente la asignacion
automtica enviando otro parmetro al ncleo. Por ejemplo, para asignar el
parport0 al dispositivo de red plip0, y el parport1 al dispositivo de red plip1, usar
los argumentos del ncleo:
plip=parport1plip=parport0
Este mapeado no significa que aparte no pueda usar esos puertos paralelos para
imprimir u otros propsitos.
El controlador PLIP slo usa el dispositivo de puerto paralelo cuando la
correspondiente interfaz est activada.
3.1.5. Los controladores PPP y SLIP
El Point-to-Point Protocol (PPP) y Serial Line IP (SLIP) son protocolos muy
usados para transportar paquetes IP sobre un enlace serie. Un gran nmero de
88
LINUX
instituciones
Mayo 2004
ofrecen
acceso
Internet
por
conexiones
PPP
SLIP
LINUX
Mayo 2004
LINUX
Mayo 2004
91
LINUX
Mayo 2004
Si no hay ningn dispositivo con nmero mayor 4 y nmero menor 65, necesitar
crear uno. Pase a modo superusuario y escriba:
#mknod -m 666 /dev/ttyS1 c 4 65
#chown uucp.dialout /dev/ttyS1
LINUX
Mayo 2004
93
LINUX
Mayo 2004
Un fichero rc tpico y sencillo para configurar sus puertos serie al arrancar puede
parecerse a lo mostrado en Ejemplo 3-1. Una mayora de distribuciones de Linux
incluirn algo ms sofisticado que este ejemplo
.
Ejemplo 3-1. Ejemplo de rdenes setserial en rc.serial
#/etc/rc.serialscriptdeconfiguracindelneasserie.
#
#Configurardispositivosserie.
/sbin/setserial/dev/ttyS0auto_irqskip_testautoconfig
/sbin/setserial/dev/ttyS1auto_irqskip_testautoconfig
/sbin/setserial/dev/ttyS2auto_irqskip_testautoconfig
94
LINUX
Mayo 2004
/sbin/setserial/dev/ttyS3auto_irqskip_testautoconfig
#
#Mostrarlaconfiguracindedispositivosserie.
/sbin/setserialbg/dev/ttyS*
La Orden stty
El nombre stty probablemente signifique set tty, pero la orden stty tambin puede
ser empleada para mostrar la configuracin de un terminal. Quizs an ms que
setserial, la orden stty proporciona un desconcertante nmero de caractersticas
configurables. Cubriremos las ms importantes en breve.
La orden stty se utiliza principalmente para configurar parmetros del terminal,
tales como qu caracteres sern mostrados, o qu tecla deber generar una
seal de parada. Explicamos anteriormente que los dispositivos serie son
dispositivos tty, y por tanto la orden stty es igualmente aplicable a ellos.
Uno de los usos ms importantes de stty para dispositivos serie es habilitar la
negociacin por hardware en ellos. Esta disposicin permite que los cables serie
de tres hilos funcionen; estos cables no aceptan las seales necesarias para la
negociacin por hardware, y si estuviera activada por defecto, seran incapaces
de transmitir ningn carcter para desactivarla. Sorprendentemente, algunos
programas de comunicacin serie no habilitan la negociacin por hardware, as
que si su mdem la permite, deber configurar el mdem para emplearla (dirjase
al manual de su mdem para averiguar qu orden usar), y tambin deber
configurar el dispositivo serie para utilizar negociacin por hardware. La orden
stty tiene una bandera crtscts que habilita la negociacin por hardware en un
dispositivo; tendr que utilizar esto. El lugar ms apropiado para ejecutar esta
orden probablemente sea el archivo rc.serial (o equivalente) al arrancar, utilizando
sentencias como las mostradas en Ejemplo 3-3.
95
LINUX
Mayo 2004
Antes mencionamos que la orden stty puede ser usada para mostrar los
parmetros de configuracin de un dispositivo tty. Para mostrar todos los
parmetros activos de un dispositivo tty se hace:
stty -a -F /dev/ttyS1
96
LINUX
Mayo 2004
intr=^C;quit=^\;erase=^?;kill=^U;eof=^D;eol=<undef>;
eol2=<undef>;start=^Q;stop=^S;susp=^Z;rprnt=^R;
werase=^W;lnext=^V;flush=^O;min=1;time=0;
parenbparoddcs8hupclcstopbcreadclocalcrtscts
ignbrkbrkintignparparmrkinpckistripinlcrigncricrnlixon
ixoffiuclcixanyimaxbel
opostolcucocrnlonlcronocronlretofillofdelnl0cr0tab0
bs0vt0ff0
isigicanoniextenechoechoeechokechonlnoflshxcasetostop
echoprtechoctlechoke
97
LINUX
Mayo 2004
Lleg a ser muy comn que una instalacin basada en Unix incluyera una
mquina servidor y muchos terminales tontas (sin procesamiento) de caracteres o
mdems para acceso telefnico. Hoy en da este tipo de configuraciones son
menos comunes, lo que supone una buena noticia para mucha gente interesada
en trabajar as, ya que estos terminales sin procesamiento son muy baratos
actualmente. Las configuraciones con mdems de acceso telefnico no han
dejado de ser comunes, pero en estos tiempos probablemente se utilicen como
soporte para ingresos mediante SLIP o PPP ms que para un simple ingreso. En
cualquier caso, cada uno de estos mtodos puede hacer uso de un programa
sencillo llamado programa getty.
El trmino getty es probablemente una abreviatura de get tty (conseguir tty). Un
programa getty abre un dispositivo serie, lo configura apropiadamente, configura
opcionalmente un mdem, y espera a que se realice una conexin. Una conexin
activa en un dispositivo serie se indica normalmente mediante la patilla Data
Carrier Detect (DCD) en el dispositivo serie que ha sido activado. Cuando se
produce esta deteccin, el programa getty llama a un programa que muestra el
punto indicativo login:, y es el que maneja realmente el ingreso al sistema. Cada
uno de los terminales virtuales (por ejemplo, /dev/tty1) en Linux tiene un getty
ejecutndose para l.
Hay varias implementaciones distintas de getty, cada una diseada para
adaptarse a ciertas configuraciones mejor que a otras. El getty que describiremos
aqu se llama mgetty. Es bastante conocido porque proporciona todo tipo de
caractersticas que lo hacen especialmente indicado para uso con mdems,
aceptando incluso programas automticos para fax y mdems de voz. Nos
concentraremos
en
configurar
mgetty
para
responder
las
llamadas
convencionales de datos.
Configuracin del Demonio mgetty
El
demonio
mgetty
est
disponible
en
ftp://alpha.greenie.net/pub/mgetty/source/,
forma
de
cdigo
prcticamente
fuente
todas
en
las
LINUX
Mayo 2004
llamada entrante, espera a la escucha del mensaje RING generado por la mayora
de mdems modernos cuando detectan una llamada entrante y no estn
configurados para responder automticamente.
El ejecutable principal es /usr/sbin/mgetty, y su archivo de configuracin se
llama /etc/mgetty/mgetty.config. Hay otros programas y archivos de configuracin
que cubrirn otros rasgos concretos de mgetty.
La configuracin, en gran parte de los sistemas, es cuestin nicamente de editar
el archivo /etc/mgetty/mgetty.config y aadir las entradas apropiadas a /etc/inittab
para que mgetty se ejecute automticamente.
Ejemplo 3-6 muestra un archivo muy simple de configuracin de mgetty. Este
ejemplo configura dos dispositivos serie. El primero, /dev/ttyS0, se refiere a un
mdem compatible con Hayes a 38.400 bps. El segundo, /dev/ttyS1, se
corresponde con un terminal VT100 conectado directamente, a 19.200 bps.
Ejemplo 3-6. Archivo /etc/mgetty/mgetty.config de ejemplo
#
#archivodeconfiguracindemgetty
#
#esteesunarchivodeejemplodeconfiguracin,veamgetty.infoparaobtener
detalles
#
#laslneasdecomentariocomienzancon"#",laslneasvacassondeshechadas
#
#seccinglobal
#
# En esta seccin van los valores globales por defecto, la configuracin por
puertosvadebajo
#
#accederalmdem(omdems)a38400bps
speed38400
#
#ajustarelnivelglobaldedepuracina"4"(valorpordefectodepolicy.h)
debug4
#
#seccinespecficadepuerto
#
#Aqusepondranlascosasqueseanvlidassloparaunalnea,nolasdems
#
#
#MdemHayesconectadoattyS0:nousarcomofax,menosregistrodeactividad
#
portttyS0
debug3
dataonlyy
#
#conexindirectadeunterminalVT100quenogustadebajadasenlasealDTR
#
portttyS1
directy
99
LINUX
Mayo 2004
speed19200
toggledtrn
#
Cada lnea del archivo /etc/inittab contiene cuatro campos, separados por dos
puntos. El primero es un identificador que etiqueta de forma nica cada entrada
100
LINUX
Mayo 2004
LINUX
Mayo 2004
Y ejecutar mount /proc desde alguno de los scripts /etc/rc. El procfs viene
configurado actualmente en la mayora de los ncleos por omisin. Si no tiene el
procfs en su ncleo, al intentar montarlo obtendr un mensaje como este: mount:
fs type procfs not supported by kernel. De ser as tiene que recompilar el ncleo
asegurndose de configurarlo incluyendo el soporte para procfs.
102
LINUX
Mayo 2004
LINUX
Mayo 2004
mismo el que est estableciendo la red, tendr que ser usted quien asigne las
direcciones IP.
Las mquinas de una red local deben generalmente compartir direcciones de una
subred lgica. Por ello lo primero es asignar una direccin IP para la red. Si tiene
varias redes fsicas, deber asignar nmeros de red diferentes a cada una o
dividir el rango de direcciones IP disponibles en varias subredes.
Cuando se est seleccionando un nmero de red IP, la eleccin depender de si
tiene intencin de conectarse a Internet en un futuro prximo. Si es as, debera
conseguir una direccin IP oficial ahora.
Si su red no est conectada a Internet, y no lo va a estar en un futuro cercano,
usted es libre de elegir cualquier direccin de red legal. nicamente asegrese de
que no haya paquetes de su red interna que escapen a la Internet real. Para
asegurarse de que no haya perjuicio aunque se escapen paquetes, debera usar
uno de los nmeros de red reservados para uso privado.
Seleccionar sus direcciones de una de estos nmeros de red no es slo til para
redes completamente desconectadas de Internet; todava puede implementar un
acceso algo ms restringido usando un ordenador como ruteador o gateway.
Desde la red local, el ruteador es accesible por su direccin IP interna, pero el
mundo exterior la conoce por una direccin oficial (asignada por su proveedor).
Volveremos sobre este concepto en la conexin con IP masquerade en Seccin
3.9.
Durante el resto del trabajo, asumiremos que el administrador de red de la
cervecera usa un nmero de red de tipo B, por ejemplo 172.16.0.0. Usaremos
aqu una red de clase B para simplificar; esto har que los ejemplos de subredes
de la siguiente seccin del captulo sean algo ms sencillos.
LINUX
Mayo 2004
por ejemplo, si tiene una red Ethernet y uno o mas enlaces SLIP con el exterior no
hace falta que divida su red. La razn se explica en Seccin 3.5.
Para ajustar las dos Ethernets, el administrador de red de la cervecera decide
usar ocho bytes la parte de la direccin correspondiente a los ordenadores como
direccin de subred. Eso deja otros ocho bytes para las mquinas lo que equivale
a 254 por cada subred. Asigna entonces el nmero de subred 1 a la cervecera, y
le da a la vinatera el nmero 2. Las direcciones de red sern por tanto 172.16.1.0
y 172.16.2.0. La mscara de subred es 255.255.255.0.
A vlager, que acta de ruteador entre las redes, se le asigna el nmero de
mquina 1 en ambas redes, lo que significa que tiene las direcciones IP
191.72.1.1 y 191.72.2.1, respectivamente. Es importante notar que en este
ejemplo estamos usando una red de clase B para simplificar; una red de tipo C
sera ms realista. Con el nuevo cdigo de red, la divisin en subredes no est
limitada a nivel de byte, de forma que incluso una red de clase C puede dividirse
en varias subredes. Por ejemplo, podra usar 2 bits del byte de los nodos para
designar la subred lo que permite implementar cuatro subredes de 64 mquinas
cada una.
3.3.5. Preparacin de los archivos hosts y networks
Una vez ha dividido su red en subredes, debe habilitar un mecanismo simple de
resolucin de nombres usando el archivo /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 archivo hosts. Debe tener algn tipo de resolucin de
nombres, incluso cuando no hay servicios de red ejecutndose. Este es el caso
del arranque. Se trata, no slo de una cuestin de conveniencia, sino que permite
el uso de nombres simblicos para las mquinas citadas en los scripts de red rc.
De esta forma, para cambiar las direcciones IP, slo tiene que copiar el archivo
hosts actualizado a todas las mquinas y rearrancar, en vez de tener que
modificar un gran nmero de archivos rc por separado.
Generalmente, tambin debe incluir los nombres y direcciones locales en hosts,
aadiendo todas las pasarelas y servidores NIS usados.
Debera asegurarse de que el subsistema de resolucin utiliza la informacin del
archivo hosts nicamente.
105
LINUX
Mayo 2004
Los archivos de ejemplo que vienen con su software DNS o NIS pueden producir
resultados extraos. Para forzar a que todas las aplicaciones utilicen /etc/hosts de
forma exclusiva cuando buscan una direccin IP, debe editar el archivo
/etc/host.conf. Desactive con comentarios cualquier lnea que comience por order
aadiendo una almohadilla (#) e incluya la siguiente lnea
orderhosts
El archivo hosts contiene un registro por lnea, consistente en una direccin IP, un
nombre de mquina y de forma opcional, una lista de alias para esa mquina. Los
campos se separan por tabuladores o espacios y el campo con la direccin debe
empezar en la primera columna. Cualquier cosa a continuacin de una
almohadilla (#) es interpretada como un comentario y es consecuentemente
ignorado.
Los nombres de las mquinas pueden ser con cualificacin completa, o relativos
al dominio local. Para la mquina vale, el registro generalmente incluira el
nombre con cualificacin completa, vale.vbrew.com, y vale en el archivo hosts, de
forma que pueda ser referido usando el nombre oficial y el nombre local que es
ms corto.
Este es un ejemplo del aspecto que el archivo hosts vlager-if1 y vlager-if2,
correspondientes a las direcciones de ambas interfaces de la mquina existentes
en vlager:
#
#ArchivoHostsdelaCerveceraVirtual/VinateraVirtual
#
#IPFQDNaliases
#
127.0.0.1localhost
#
172.16.1.1vlager.vbrew.comvlagervlagerif1
172.16.1.2vstout.vbrew.comvstout
172.16.1.3vale.vbrew.comvale
#
172.16.2.1vlagerif2
172.16.2.2vbeaujolais.vbrew.comvbeaujolais
172.16.2.3vbardolino.vbrew.comvbardolino
172.16.2.4vchianti.vbrew.comvchianti
Del mismo modo que con las direcciones IP, a veces tambin puede interesarle
usar nombres simblicos para los nmeros de red. Con este objeto, el archivo
hosts tiene un compaero llamado /etc/networks, que asocia nombres de red con
106
LINUX
Mayo 2004
Esta orden asigna direccin-ip a interfaz y la activa. Los otros parmetros toman
valores asignados por omisin. Por ejemplo, la mscara de subred por omisin
toma el valor correspondiente al tipo de red al que pertenece la direccin IP. As,
tendramos 255.255.0.0 para una direccin de clase B.
route permite aadir o quitar rutas de la tabla de enrytamiento del ncleo. Se
puede invocar como:
route[add|del][net|host]destino [if]
107
LINUX
Mayo 2004
108
LINUX
Mayo 2004
Tambin aqu puede usar localhost en lugar de la direccin IP, suponiendo que lo
haya introducido en su /etc/hosts.
Lo siguiente es comprobar que todo funciona como es debido, por ejemplo
usando ping. ping es el equivalente a un sonar en una red. Esta orden se usa
para verificar que una direccin dada es accesible y para medir el retraso entre el
envo de un datagrama y su recepcin de vuelta. Este tiempo es conocido como
tiempo de ida y vuelta.
#ping localhost
PINGlocalhost(127.0.0.1):56databytes
64bytesfrom127.0.0.1:icmp_seq=0ttl=255time=0.4ms
64bytesfrom127.0.0.1:icmp_seq=1ttl=255time=0.4ms
64bytesfrom127.0.0.1:icmp_seq=2ttl=255time=0.4ms
^C
localhostpingstatistics
3packetstransmitted,3packetsreceived,0%packetloss
roundtripmin/avg/max=0.4/0.4/0.4ms
#
b) Interfaces Ethernet
La configuracin de una interfaz Ethernet es ms o menos igual que la de la
interfaz de bucle local. Slo requiere algunos parmetros ms cuando est
usando varias subredes.
109
LINUX
Mayo 2004
LINUX
Mayo 2004
LINUX
Mayo 2004
#route -n
Kernelroutingtable
DestinationGatewayGenmaskFlagsMetricRefUseIface
127.0.0.1*255.255.255.255UH10112lo
172.16.1.0*255.255.255.0U1010eth0
Por supuesto, cualquier nodo 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
podra enviar datos a la red de la Vinatera desde la Cervecera, pero las mquinas
de la Vinatera seran incapaces de responder.
112
LINUX
Mayo 2004
Este ejemplo describe nicamente un ruteador que conmuta paquetes entre dos
redes Ethernet aisladas.
Supongamos ahora que vlager tambin tiene una conexin a la Internet (digamos
que a travs de un enlace SLIP). Nos gustara que los datagramas destinados a
cualquier direccin fuera de la red de la Cervecera fueran entregados a vlager.
Esto se puede conseguir convirtindolo en el ruteador por omisin para vstout:
#route add default gw vlager
El nombre de red default es una abreviatura que representa la red 0.0.0.0, o ruta
por omisin. La ruta por omisin analiza cada destino, y es la que ser usada si
no se encuentra ninguna ruta ms especfica. No es necesario aadir este
nombre a /etc/networks, porque esta informacin esta contenida en el cdigo de
route.
d) Configuracin de un Ruteador
Configurar una mquina para conmutar paquetes entre dos Ethernets es bastante
sencillo. 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 configurar ambas interfaces de forma separada, dndole a
cada una su direccin IP correspondiente, y eso es todo.
Es bastante til incluir la informacin de ambas interfaces en el archivo hosts del
modo indicado a continuacin, de forma que tengamos nombres para referirnos a
ellas tambin:
172.16.1.1vlager.vbrew.comvlagervlagerif1
172.16.2.1vlagerif2
113
LINUX
Mayo 2004
e) La interfaz PLIP
Si usa un enlace PLIP para conectar dos mquinas, las cosas son un poco
diferentes de lo visto para una Ethernet. En caso de PLIP se trata de un enlace
conocido como punto-a-punto, lo que significa que slo hay una mquina a cada
extremo del enlace. A las redes como Ethernet se les llama redes de difusin. La
configuracin de enlaces punto a punto es diferente porque a diferencia de las
redes de difusin, los enlaces punto a punto no son una red por s mismos.
PLIP ofrece conexin muy barata y potable entre ordenadores. A modo de
ejemplo, consideremos un ordenador porttil de un empleado en la Cervecera
Virtual que se conecta a vlager mediante PLIP. El porttil se llama vlite, y tiene un
nico puerto paralelo. Durante el arranque, este puerto ser registrado como
plip1. Para activar el enlace, ha de configurar la interfaz plip1 mediante las
rdenes siguientes:
#ifconfig plip1 vlite pointopoint vlager
#route add default gw vlager
Es interesante notar que la interfaz plip1 en vlager no necesita tener una direccin
IP diferente, sino que puede usar la misma direccin 172.16.1.1.
Una vez que hemos configurado el enrutamiento desde el porttil a la red de la
Cervecera, slo resta arbitrar un modo para que cualquier mquina en esa red
pueda acceder a vlite. Un modo particularmente enrevesado sera aadir una ruta
114
LINUX
Mayo 2004
a las tablas de enrutamiento de cada una de las mquinas de la red para usar
vlager como ruteador hacia vlite:
#route add vlite gw vlager
Una opcin mejor cuando tenemos que trabajar con rutas temporales es usar
enrutamiento dinmico.
Una forma de conseguirlo es usando gated, un demonio de enrutamiento, que
deber instalar en cada una de las mquinas de la red de modo que distribuya la
informacin de enrutamiento de forma dinmica. La forma ms sencilla, sin
embargo, consiste en usar proxy ARP. Con la sustitucin ARP, vlager responde a
cualquier pregunta ARP dirigida a vlite enviando su propia direccin Ethernet. El
efecto conseguido es que todos los paquetes dirigidos a vlite terminan yendo a
vlager, que se encarga de reenvirselos al porttil.
f) 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 un enlace SLIP incluye una llamada a un lugar de conexin
remoto a travs de un mdem y el establecimiento del modo SLIP en la lnea de
comunicaciones serie. El uso de PPP es similar. Las herramientas necesarias
para establecer un enlace SLIP o PPP se describen en secciones 3.5. y 3.6..
g) La Interfaz Comodn
La interfaz comodn (dummy) parece un tanto extica y sin embargo es bastante
til. Resulta especialmente ventajosa para mquinas aisladas y para las que se
conectan a una red IP mediante un enlace telefnico. Se trata en realidad de
mquinas que trabajan de forma aislada la mayor parte del tiempo.
El dilema con las mquinas aisladas es que el nico dispositivo activo es el de
bucle local, al que generalmente se le asigna la direccin 127.0.0.1. En
ocasiones, sin embargo, le resultar necesario enviar datos a la direccin IP
oficial de la mquina. Supongamos, por ejemplo, el caso del porttil vlite cuando
no esta conectado a ninguna red. Una aplicacin en vlite puede querer enviar
115
LINUX
Mayo 2004
datos a otra aplicacin en la misma mquina. Buscar vlite en /etc/hosts dar como
resultado 172.16.1.65, y por tanto intentar enviar los datos a esa direccin.
Como la nica interfaz activa en ese momento es la de bucle local, el ncleo no
sabe que la direccin se refiere a la misma mquina. En consecuencia el ncleo
descarta el datagrama y genera un error en la aplicacin.
En esta situacin es cuando la interfaz comodn es til, resolviendo el dilema
actuando como alter ego de la interfaz de bucle local. En el caso de vlite,
simplemente debe asignarle la direccin 172.16.1.65 y aadir una ruta que apunte
a ella. Cada datagrama para 172.16.1.65 es enviado entonces localmente. La
forma correcta es pues:
#ifconfig dummy vlite
#route add vlite
h) Alias de IP
Los nuevos ncleos llevan una funcionalidad que puede sustituir por completo a la
interfaz comodn, y que tiene otras tiles funciones. IP Alias permite configurar
mltiples direcciones IP en un slo dispositivo fsico.
En el caso ms simple, usted puede reproducir la funcin de la interfaz comodn
configurando la direccin del nodo como un alias de la interfaz de bucle local, y
evitar por completo usar la intefaz comodn. Para usos ms complejos, usted
puede configurar su mquina para simular ser varias mquinas, cada una con su
propia direccin IP. Esta configuracin es llamaba a veces Hosting Virtual, aunque
tcnicamente se usa tambin para otras muchas tcnicas.
Para configurar un alias para una interfaz, primero debe asegurarse de que su
ncleo ha sido compilado con soporte para Alias de IP (compruebe que tiene un
fichero /proc/net/ip_alias; si no es as, debe recompilar el ncleo). La
configuracin de un alias de IP es virtualmente idntica a la configuracin de un
dispositivo de red real; se usa un nombre especial para indicar que lo que usted
quiere es un alias. Por ejemplo:
#ifconfig lo:0 172.16.1.1
116
LINUX
Mayo 2004
Esta orden crear un alias para la interfaz de bucle local con la direccin
172.16.1.1. Los alias de IP se sealan anteponiendo :n al dispositivo actual de
red, donde n es un entero. En nuestro ejemplo, el dispositivo de red donde
estamos creando el alias es lo, y estamos creando un alias numerado como cero
para l. De esta forma, un nico dispositivo fsico puede soportar varios alias.
Cada alias debe ser tratado como si fuera un dispositivo diferente, y en lo
referente al software de IP del ncleo, as es; por ms que est compartiendo su
hardware con otro interfaz.
3.3.7. Todo sobre ifconfig
El programa ifconfig tiene muchos ms parmetros que los descritos hasta
ahora. Generalmente se ejecuta en la forma:
ifconfiginterfaz [direccin [parmetros]]
Los campos MTU y Metric informan sobre los valores actuales de la MTU (Unidad
Mxima de Transferencia) y de la mtrica para una interfaz dada.
Las lneas RX y TX dan idea de los paquetes recibidos o transmitidos sin errores,
del nmero de errores ocurridos, de cuntos paquetes han sido descartados
117
LINUX
Mayo 2004
LINUX
Mayo 2004
Las siguientes tres columnas muestran el MSS, tamao de ventana y irtt que
sern aplicados a las conexiones TCP establecidas a travs de esta ruta. El MSS
es el Tamao Mximo de Segmento, y es el tamao del datagrama ms grande
que construir el ncleo para transmitir a travs de esta ruta. La Ventana es la
cantidad mxima de datos que el sistema aceptar de una sola vez desde una
mquina remota. El acrnimo irtt significa tiempo inicial de ida y vuelta, por sus
iniciales en ingls. El protocolo TCP se asegura de que los datos han sido
transmitidos de forma fiable entre mquinas retransmitiendo un datagrama si ste
ha sido perdido. El protocolo TCP mantiene un contador de cunto tarda un
datagrama en ser enviado a su destino, y el "recibo" que se recibe, de forma que
sabe cunto esperar antes de suponer que un datagrama necesita retransmitirse.
Este proceso se llama tiempo de ida y vuelta. El tiempo de ida y vuelta inicial es el
valor que el protocolo TCP usar cuando se establezca una conexin por primera
vez. Para la mayora de los tipos de redes, el valor por omisin es vlido, pero
para algunas redes lentas, especialmente ciertos tipos de redes de radiopaquetes
de aficionados, el tiempo es demasiado pequeo y causa retransmisiones
innecesarias. El valor de irtt puede ajustarse usando el comando route. Los
campos a 0 significan que se est usando el valor por omisin.
Para terminar, el ltimo campo muestra el interfaz de red que usar esta ruta.
Consulta de las estadsticas de una interfaz
Cuando se invoca con el indicador i netstat presenta las estadsticas para las
interfaces de red configuradas en ese momento. Si tambin se pasa la opcin a,
119
LINUX
Mayo 2004
Los campos MTU y Met muestran los valores actuales de MTU y de mtrica para
esa interfaz. Las columnas RX y TX muestran cuntos paquetes han sido
recibidos o transmitidos sin errores (RX-OK/TX-OK) o daados (RX-ERR/TXERR); cuntos fueron descartados (RX-DRP/TX-DRP); y cuntos se perdieron por
un desbordamiento. (RX-OVR/TX-OVR).
La ltima columna muestra los indicadores activos para cada interfaz. Son
abreviaturas del nombre completo del indicador, que se muestran con la
configuracin de la interfaz que ofrece ifconfig:
B
La interfaz funciona.
Mostrar conexiones
netstat ofrece una serie de opciones para mostrar los puertos activos o pasivos.
Las opciones t, u, w, y x muestran conexiones activas a puertos TCP, UDP, RAW,
o Unix. Si incluye adems el indicador a, se mostrarn tambin los puertos que
estn esperando una conexin (es decir, que estn escuchando). Esto le dar una
lista de todos los servidores que estn corriendo actualmente en su sistema.
Llamar a netstat -ta en vlager produce esta salida:
$netstat -ta
ActiveInternetConnections
120
LINUX
Mayo 2004
ProtoRecvQSendQLocalAddressForeignAddress(State)
tcp00*:domain*:*LISTEN
tcp00*:time*:*LISTEN
tcp00*:smtp*:*LISTEN
tcp00vlager:smtpvstout:1040ESTABLISHED
tcp00*:telnet*:*LISTEN
tcp00localhost:1046vbardolino:telnetESTABLISHED
tcp00*:chargen*:*LISTEN
tcp00*:daytime*:*LISTEN
tcp00*:discard*:*LISTEN
tcp00*:echo*:*LISTEN
tcp00*:shell*:*LISTEN
tcp00*:login*:*LISTEN
121
LINUX
Mayo 2004
Que muestra las direcciones Ethernet de vlager, vstout y vale. Se puede limitar el
listado a un tipo de hardware especificado usando la opcin t. Los valores
posibles son ether, ax25, o pronet, y se refieren a Ethernet de 10Mbps, AMPR
AX.25, y equipos token ring IEEE 802.5, respectivamente.
La opcin s se usa para aadir permanentemente la direccin Ethernet de la
mquina especificada a las tablas ARP. El argumento direccin hawdware
especifica la direccin de hardware, que por omisin se supone que es una
direccin Ethernet especificada como seis bytes en hexadecimal separados por
dos puntos. Usted puede incluso definir las direcciones de hardware para otros
tipos de hardware, usando la opcin t. Por alguna razn, las peticiones ARP para
mquinas remotas fallan algunas veces, por ejemplo cuando el controlador ARP
no funciona, o cuando alguna otra mquina se identifica errneamente como si
ella misma tuviera esa direccin IP. Este problema requiere que usted aada
manualmente una direccin IP en la tabla ARP. Tambin es una forma (muy
drstica) de protegerse a s mismo de otras mquinas de su Ethernet que tratan
de hacerse pasar por otras.
El uso de arp con el modificador d borra todas las entradas ARP referentes a la
mquina dada. Este modificador puede ser usado para forzar a la interfaz a
intentar obtener la direccin Ethernet correspondiente a la direccin IP en
cuestin. Esto es til cuando un sistema mal configurado ha emitido una
informacin ARP errnea (por supuesto, usted debe reconfigurar la mquina
estropeada primero). La opcin s tambin puede usarse para implementar un
proxy ARP. Esta es una tcnica especial, en la que una mquina, llammosla
gate, acta como una pasarela a otra mquina llamada fnord simulando que las
dos direcciones hacen referencia a la misma mquina, en este caso gate. Esto se
consigue incluyendo una entrada ARP para fnord que apunte a su propia interfaz
Ethernet. Cuando una mquina enve una peticin ARP para fnord, gate devolver
una respuesta con su propia direccin Ethernet. La mquina que hizo la peticin
enviar entonces todos los datagramas a gate, que se los pasar a fnord.
Otra aplicacin til del proxy ARP es cuando una de sus mquinas acte como un
ruteador para otra mquina slo temporalmente, por ejemplo a travs de un
enlace telefnico. En un ejemplo anterior, ya nos encontramos con que el porttil
vlite se conectaba a vlager a travs de un enlace PLIP de vez en cuando. Por
122
LINUX
Mayo 2004
LINUX
Mayo 2004
124
LINUX
Mayo 2004
Variables de entorno
Existen algunas variables de entorno que establecen opciones que tienen ms
prioridad sobre las puestas en el archivo host.conf. stas son:
RESOLV_HOST_CONF
Especifica un archivo alternativo a /etc/host.conf.
RESOLV_SERV_ORDER
Establece la opcin equivalente a la orden order del archivo anterior. Los servicios
pueden ser hosts, bind y/o nis, separados por comas, espacios, puntos o puntos y
coma.
125
LINUX
Mayo 2004
RESOLV_SPOOF_CHECK
Determina la poltica seguida frente a los nombres falsos. Estar completamente
desactivada con la opcin off. Con las opciones warn y warn off se realizarn
comprobaciones contra los nombres falsos, pero en el primer caso se mandarn
los avisos al registro. Un valor * activa las comprobaciones contra nombres falsos,
pero las anotaciones en el registro se dejan como diga el archivo host.conf.
RESOLV_MULTI
El valor on activa la opcin ``multi'', y el valor off la desactiva.
RESOLV_OVERRIDE_TRIM_DOMAINS
Esta variable lleva una lista de dominios por defecto, similar a la puesta en el
archivo host.conf con la opcin trim.
RESOLV_ADD_TRIM_DOMAINS
Esta variable lleva una lista de dominios por defecto que se aade a las que se
dan en el archivo host.conf.
El archivo nsswitch.conf
El archivo nsswitch.conf permite al administrador de sistemas configurar una
amplia variedad de diferentes bases de datos. Limitaremos nuestra discusin a
opciones que se refieran a la resolucin de nombres de mquina y direcciones IP.
Se puede encontrar fcilmente mucha ms informacin para aprovechar el resto
de las caractersticas de este archivo, sin ms que leer la documentacin de la
biblioteca estndar. Las opciones posibles se encuentran en el apndice
El orden en el que los servicios estn listados es el orden en el que sern
interrogados para buscar un nombre. Es decir, los servicios son interrogados
leyndolos de izquierda a derecha, hasta encontrar la respuesta. Un ejemplo del
archivo nsswitch.conf lo tenemos en Ejemplo 3-8.
Ejemplo 3-8. Ejemplo de archivo nsswitch.conf
#/etc/nsswitch.conf
#
#EjemplodeconfiguraciondelnsswitchdeGNU.
#Enelpaquete`libc6doc'sedocumentanestosficheros.
hosts:dnsfiles
126
LINUX
Mayo 2004
networks:files
Este ejemplo hace que el sistema busque los nodos, primero en el DNS y
despus en /etc/hosts, si no se encuentra. En cambio las redes se buscan
exclusivamente en /etc/networks. Podemos controlar el comportamiento ms
precisamente, usando items de accin que describen qu hacer tras el ltimo
intento de bsquedas. Los items de accin aparecen entre los servicios, y se
encierran entre corchetes, [. La sintaxis general es:
[[!]estado =accin ...]
LINUX
Mayo 2004
Este ejemplo intentar resolver los nodos usando el DNS. Si se devuelve un error
que no sea UNAVAIL, el sistema devolver lo que ha encontrado. En otro caso
intentar buscarlo en /etc/hosts. Esto significa que este archivo solo se usar en
caso de que el DNS no funcione bien.
128
LINUX
Mayo 2004
Descripcin
edu
com
Organizaciones comerciales.
org
net
mil
El ejrcito norteamericano.
gov
El gobierno norteamericano.
uucp
LINUX
Mayo 2004
130
LINUX
Mayo 2004
131
LINUX
Mayo 2004
strangeINA149.76.12.6
...
;Laboratorio(subred14)
bosonINA149.76.14.1
muonINA149.76.14.7
bogonINA149.76.14.12
...
132
LINUX
Mayo 2004
Resolucin inversa
133
LINUX
Mayo 2004
Las zonas de in-addr.arpa slo pueden ser creadas por superconjuntos de redes
IP. Hay una restriccin ms severa: las mscaras de estas redes deben contener
los octetos completos. Es decir, podemos crear una zona para una red con
mscara 255.255.255.0 pero no para una del tipo 255.255.255.128. El motivo es
que para especificar la red delegada 149.76.4.0 tenemos el dominio 4.76.149.inaddr.arpa, pero para la red 149.76.4.128 no tenemos forma de nombrar el dominio
in-addr correspondiente.
134
LINUX
Mayo 2004
LINUX
Mayo 2004
de los servidores raz del fichero indicado (en este caso, named.ca). En el
apndice podemos encontrar una lista de las opciones ms importantes que
podemos poner en el archivo named.boot
II.- El fichero named.conf de BIND 8
En la versin 8 de BIND se han incluido nuevas caractersticas, lo cual ha
requerido una nueva sintaxis del fichero de configuracin principal. El archivo
named.boot ha sido reemplazado por otro, de nombre named.conf, que tiene una
sintaxis similar a la del programa gated y recuerda a la del lenguaje C.
La nueva sintaxis es ms compleja, pero por suerte disponemos de una utilidad
para convertir automticamente los ficheros named.boot de sintaxis antigua. Esta
utilidad es un script de PERL llamado named-bootconf.pl, que encontraremos en
el cdigo fuente de BIND 8; y lee un fichero en sintaxis antigua, devolviendo por
su salida estndar el archivo en sintaxis nueva. Naturalmente, para utilizarlo es
necesario tener correctamente instalado el intrprete de lenguaje PERL. Al script
lo invocaremos, por ejemplo, as:
#cd /etc
#named-bootconf.pl <named.boot >named.conf
136
LINUX
Mayo 2004
zone"0.0.127.inaddr.arpa"{
typemaster;
file"named.local";
};
zone"16.172.inaddr.arpa"{
typemaster;
file"named.rev";
};
137
LINUX
Mayo 2004
[domain][ttl][class]type rdata
Adems de este archivo, hay que tener el correspondiente named.ca, con una
lista vlida de servidores raz. Debemos copiar y usar Ejemplo 3-16 para esto. No
se requieren otros archivos para una configuracin de slo cach.
V.- Cmo hacer los archivos maestros
Ejemplo 3-16, Ejemplo 3-17, Ejemplo 3-18, y Ejemplo 3-19 muestran archivos de
ejemplo para un servidor de nombres de la Cervecera Virtual, localizada en
vlager. Debido a la naturaleza de la red propuesta (una simple LAN), el ejemplo es
muy simple tambin.
El archivo de cach named.ca mostrado en Ejemplo 3-16 contiene ejemplos de
registros de servidores raz. Un fichero tpico de cach contiene como una docena
de servidores de esta clase. Se puede obtener una lista de los servidores raz
usando la utilidad The named.ca cach file shown in nslookup mostrada en la
siguiente seccin.
138
LINUX
Mayo 2004
139
LINUX
Mayo 2004
;Ethernetdelavinateravirtual
vlagerif2INA172.16.2.1
vbardolinoINA172.16.2.2
vchiantiINA172.16.2.3
vbeaujolaisINA172.16.2.4;
;Ethernet(subsidiaria)delosEspiritusVirtuales
vbourbonINA172.16.3.1
vbourbonif1INCNAMEvbourbon
140
LINUX
Mayo 2004
141
LINUX
Mayo 2004
mailaddr=hostreg.ns.unc.edu
serial=1998111011
refresh=14400(4H)
retry=3600(1H)
expire=1209600(2W)
minimumttl=86400(1D)
unc.edunameserver=ns2.unc.edu
unc.edunameserver=ncnoc.ncren.net
unc.edunameserver=ns.unc.edu
ns2.unc.eduinternetaddress=152.2.253.100
ncnoc.ncren.netinternetaddress=192.101.21.1
ncnoc.ncren.netinternetaddress=128.109.193.1
ns.unc.eduinternetaddress=152.2.21.1
Con el tipo ANY obtendremos todos los registros existentes asociados al nombre
dado.
Una aplicacin prctica de nslookup, para depurar un servidor, es obtener la lista
de servidores raz. Para ello no hay ms que pedir los NS del registro raz (.):
>set type=NS
>.
Server:tao.linux.org.au
Address:203.41.101.121
Nonauthoritativeanswer:
(root)nameserver=A.ROOTSERVERS.NET
(root)nameserver=H.ROOTSERVERS.NET
(root)nameserver=B.ROOTSERVERS.NET
(root)nameserver=C.ROOTSERVERS.NET
(root)nameserver=D.ROOTSERVERS.NET
(root)nameserver=E.ROOTSERVERS.NET
(root)nameserver=I.ROOTSERVERS.NET
(root)nameserver=F.ROOTSERVERS.NET
(root)nameserver=G.ROOTSERVERS.NET
(root)nameserver=J.ROOTSERVERS.NET
(root)nameserver=K.ROOTSERVERS.NET
(root)nameserver=L.ROOTSERVERS.NET
(root)nameserver=M.ROOTSERVERS.NET
Authoritativeanswerscanbefoundfrom:
A.ROOTSERVERS.NETinternetaddress=198.41.0.4
H.ROOTSERVERS.NETinternetaddress=128.63.2.53
B.ROOTSERVERS.NETinternetaddress=128.9.0.107
142
LINUX
Mayo 2004
C.ROOTSERVERS.NETinternetaddress=192.33.4.12
D.ROOTSERVERS.NETinternetaddress=128.8.10.90
E.ROOTSERVERS.NETinternetaddress=192.203.230.10
I.ROOTSERVERS.NETinternetaddress=192.36.148.17
F.ROOTSERVERS.NETinternetaddress=192.5.5.241
G.ROOTSERVERS.NETinternetaddress=192.112.36.4
J.ROOTSERVERS.NETinternetaddress=198.41.0.10
K.ROOTSERVERS.NETinternetaddress=193.0.14.129
L.ROOTSERVERS.NETinternetaddress=198.32.64.12
M.ROOTSERVERS.NETinternetaddress=202.12.27.33
LINUX
Mayo 2004
144
LINUX
Mayo 2004
actuales
soportan
hasta
un
mximo
de
256
enlaces
SLIP
simultneamente.
Por omisin slattach usa CSLIP como mtodo de compresin de cabeceras. Con
el parmetro p, usted puede seleccionar cualquier otra disciplina de lnea. Para
utilizar SLIP de forma normal (sin compresin) se debe teclear:
#slattach -p slip /dev/ttyS3 &
LINUX
Mayo 2004
La primera orden realiza un enlace punto a punto con cowslip, mientras que la
segunda y la tercera orden sirven para aadir la ruta correspondiente a cowslip
como ruta predeterminada y configurar a cowslip como ruteador (gateway).
Como referencia, siempre se usar vlager-slip para referirse a su interfase local
SLIP.
Cuando se quiera terminar el enlace SLIP, debe empezarse por eliminar todas las
rutas que pasan por cowslip usando la orden route con la opcin del, luego
desactivar la interfaz, y enviar al proceso slattach la seal de colgar. Despus se
podr colgar el mdem usando el terminal:
#route del default
#route del cowslip
#ifconfig sl0 down
#kill -HUP 516
LINUX
Mayo 2004
como un enlace normal SLIP, accediendo a los servidores con una direccin IP
registrada (probablemente asignada por el proveedor de servicios corriendo
cowslip). Cualquier usuario conectado a vlager puede usar clientes basados en
texto como ftp, telnet, o incluso lynx para usarlos en Internet. Un usuario de la
Cervecera Virtual puede invocar a telnet y teclear a vlager para usar dichos
clientes de forma normal. Para algunas aplicaciones, existen algunas soluciones
para evitar el proceso de registro e identificacin de los usuarios que accedan a
vlager. Para usuarios de Web, por ejemplo, se puede activar un servidor llamado
proxy en vlager, que encaminar todas las peticiones de los usuarios hacia los
servidores respectivos.
Asumiendo que la cervecera ha sido asignada a la direccin IP 192.168.5.74 para
acceso a SLIP. Todo lo que usted debe realizar para la puesta en marcha
discutida anteriormente es teclear la direccin en el archivo /etc/hosts,
nombrndolo como vlager-slip. Este procedimiento no cambiar su enlace SLIP.
3.5.4. Usando dip
Lo visto anteriormente es simple. Sin embargo, se pueden automatizar estas
tareas. Es mucho ms prctico tener solamente una orden que realice los pasos
necesarios para activar la lnea serie, que el mdem llame al proveedor de
Internet, comenzar la sesin, activar la disciplina de lnea SLIP, y por ltimo,
configurar la interfaz de red. Para todo esto esta la orden dip.
dip significa Dialup IP (enlace IP telefnico). Es actualmente utilizado por todo el
mundo.
dip provee un intrprete para un lenguaje de guiones simple que puede manejar
el mdem , convertir la lnea a modo SLIP y configurar las interfaces.
Para poder configurar la interfaz SLIP, dip requiere privilegios de superusuario.
Puede hacerse cambiando al programa dip el bit setuid como root para que todos
los usuarios puedan conectarse a cualquier servidor SLIP sin tener privilegios de
superusuario. Esto es muy peligroso, ya que una configuracin incorrecta del
encaminamiento de dip puede estropear el enrutamiento en su red. Aun peor,
esto dar a los usuarios la posibilidad de conectarse a cualquier servidor SLIP y
lanzar desde all, peligrosos ataques a su red. Si desea que los usuarios puedan
activar conexiones SLIP, escriba pequeos programas empaquetados por cada
147
LINUX
Mayo 2004
Un guin de ejemplo
Asumiendo que el servidor al cual nos queremos conectar va SLIP se llama
cowslip, y que se ha escrito un guin para que dip lo interprete llamado
cowslip.dip, el cual har la conexin. Al programa dip, hay que pasarle como
argumento, el nombre del guin:
#dip cowslip.dip
DIP:DialupIPProtocolDriverversion3.3.7(12/13/93)
WrittenbyFredN.vanKempen,MicroWaltCorporation.
connectedtocowslip.moo.comwithaddr192.168.5.74
#
148
LINUX
Mayo 2004
if$errlvl!=0gotoerror
sendSvlager\n
waitssword:5
if$errlvl!=0gotoerror
sendknockknock\n
waitrunning30
if$errlvl!=0gotoerror
#Secomenzlasesin,ydelextremoremotoseactivSLIP.
printConectadoa$remotecondireccin$rmtip
default#hacerqueesteenlacesealarutapredeterminada
modeSLIP#PasemosamodoSLIP
#encasodeerrorseejecutalosiguiente
error:
printLaonexinSLIPa$remotehafallado.
En el lenguaje de guiones que dip interpreta, las palabras clave precedidas con el
signo de dlar significan nombre de variables. dip tiene un conjunto de variables
que estn listadas a continuacin. $remote y $local, por ejemplo, contienen los
nombres de los computadores remoto y local involucrados en la conexin SLIP.
Las dos primeras declaraciones en el ejemplo, son rdenes get, que es la forma
en que dip declara una variable. Aqu, los nombres de las computadoras local y
remota son vlager y cowslip, respectivamente. las cinco declaraciones siguientes
preparan la terminal de lnea y el mdem . la orden reset enva la cadena de
reinicio al mdem. La siguiente sentencia limpia el bffer de salida del mdem,
para conseguir que el dilogo de registro (login) en las siguientes lneas trabaje
correctamente. Este dialogo es extremadamente simple: simplemente marca
41988, el nmero telefnico de cowslip, y ae regiatra en la cuenta Svlager usando
la contrasea knockknock. La orden wait hace que dip espere una cadena dada
como primer argumento; el nmero dado como segundo argumento es el tiempo
(en segundos) que se debe esperar por esa cadena. La orden if ,en el proceso de
entrada, revisa que no se produzcan errores.
149
LINUX
Mayo 2004
Las rdenes finales, tras un correcto registro, son default, que hace que el enlace
SLIP sea la ruta predeterminada a todos los servidores, y mode, que activa el
modo SLIP en la lnea y configura la interfaz y la tabla de rutas.
Referencia de dip
En esta seccin, se har referencia a las rdenes de dip ms usadas. usted
puede obtener un vistazo de todos los rdenes reconocidos invocando a dip en
modo prueba e introduciendo la orden help. Para conocer ms sobre la sintaxis de
una orden, se debe teclear sin argumentos. Recuerde que esto no funcionar con
rdenes
que
no
aceptan
argumentos.
El
siguiente
ejemplo
ilustra
el
En los prrafos siguientes, los ejemplos que muestran el cursor DIP> indican
como teclear un orden en modo prueba y cual ser su respuesta. Los ejemplos
mostrados sin el cursor, deben tomarse como trozos de guiones.
Dentro del apndice podemos encontrar las caractersticas de las ordenes dentro
de dip.
Despus de poner la lnea en modo SLIP, dip ejecuta ifconfig para configurar la
interfaz como enlace punto a punto, e invocar a route para cambiar el
enrutamiento hacia el servidor remoto.
3.5.5. Funcionamiento en modo Servidor
150
LINUX
Mayo 2004
Configurar su mquina para que acte como servidor SLIP, es mucho ms fcil;
existen dos formas de configurar al servidor SLIP. Las dos requieren que se cree
una cuenta de acceso por cada cliente SLIP. Asuma, por ejemplo, que le desea
conceder acceso al servicio SLIP a Arthur Dent en dent.beta.com. Debera
crearse una cuenta llamada dent aadiendo la siguiente lnea al archivo passwd:
dent:*:501:60:ArthurDent'sSLIPaccount:/tmp:/usr/sbin/diplogin
151
LINUX
Mayo 2004
LINUX
Mayo 2004
LINUX
Mayo 2004
como PAP Y CHAP. La versin actual de PPP para Linux contiene el demonio
PPP pppd y un programa llamado chat utilizado para llamar al sistema remoto.
Al igual que SLIP, PPP est implementado a travs de una disciplina especial para
la utilizacin de las lneas. Para utilizar una lnea serie como enlace PPP, en
primer lugar tendr que establecer la conexin con su mdem, como es usual; y
posteriormente pasar la lnea al modo PPP. En este modo, todos los datos que
nos llegan son pasados al controlador PPP, que comprueba la validez de las
tramas HDLC que llegan (cada trama HDLC trae un cdigo de control de errores
de 16 bit), las descompone y las despacha.
El controlador del ncleo es ayudado por pppd, el demonio del PPP, que realiza
toda la fase de inicializacin y autentificacin necesaria antes de que el verdadero
trfico de red pueda ser enviado a travs del enlace. El comportamiento del pppd
puede ser ajustado utilizando varias opciones.
Probablemente en este trabajo no encuentre toda la informacin sobre PPP, pero
nos enfocaremos en las caractersticas mas importantes de este protocolo; para
encontrar mayor informacin se pueden consultar manuales o el howto de PPP.
3.6.2. Ejecutando pppd
Cuando quiere conectarse a Internet a travs de un enlace PPP, tiene que
configurar las capacidades bsicas de red como el dispositivo de bucle local
(loopback) y el sistema de resolucin de direcciones. Usted puede configurar
simplemente el servidor de nombres de su proveedor de servicios de Internet en
el fichero /etc/resolv.conf, pero esto supondr que cada consulta DNS ser
enviada a travs de su enlace serie. Esta situacin no es ptima; mientras ms
cerca se encuentre de su servidor de nombres, ms rpida ser la bsqueda.
Como ejemplo introductorio de como establecer una conexin PPP con pppd,
suponga que est de nuevo en vlager. Ya ha llamado al servidor PPP, c3po, y
entrado en la cuenta del usuario ppp. c3po ya ha lanzado su controlador PPP.
Despus de salir del programa de comunicaciones que utiliz para llamar, ejecute
la siguiente orden, sustituyendo el nombre del dispositivo serie que usted usa por
el ttyS3 mostrado aqu:
#pppd /dev/ttyS3 38400 crtscts defaultroute
154
LINUX
Mayo 2004
Esto cambiar la lnea serie ttyS3 al modo PPP y establecer un enlace IP con
c3po. La velocidad de transferencia utilizada en el puerto de serie ser de
38400bps. La opcin crtscts activa el control de flujo por hardware en el puerto,
que es una obligacin para velocidades superiores a los 9600 bps. Lo primero que
hace pppd tras ejecutarse es negociar varias caractersticas para el enlace con el
extremo remoto utilizando LCP.
Hasta ahora, tambin hemos asumido que c3po no necesita ninguna
autentificacin de nosotros, as que la fase de configuracin habr sido
completada con xito.
pppd negociar entonces los parmetros IP con su compaero usando IPCP, el
protocolo de control IP. Al no especificar direccin IP alguna, el pppd intentar
usar la direccin que se obtiene al resolver el nombre del ordenador local.
Decididas las direcciones, cada pppd comunicar su direccin al otro extremo.
Normalmente no habr ningn problema con esta configuracin predeterminada.
Incluso si su mquina esta en una Ethernet, puede utilizar la misma direccin IP
tanto para la Ethernet como para el interfaz PPP. No obstante, pppd le permite
utilizar una direccin diferente, o incluso pedir a su compaero que utilice alguna
direccin especfica. Tras pasar por la fase de configuracin IPCP, pppd
configurar la red de su ordenador para utilizar el enlace PPP. En primer lugar,
configurar el interfaz de red PPP como un enlace punto-a-punto, utilizando ppp0
para el primer enlace PPP que est activo, ppp1 para el segundo, y as
sucesivamente. A continuacin preparar una entrada de la tabla de
encaminamiento que apunte al ordenador del otro extremo del enlace.
3.6.3. Usando los Ficheros de Opciones
Antes de que el pppd procese los argumentos de su lnea de rdenes, echa un
vistazo a varios archivos para establecer sus opciones por omisin. Estos
archivos pueden contener cualquier argumento de lnea de rdenes vlido,
distribuidos a travs de un cierto nmero de lneas. Los comentarios se escriben
tras el smbolo de almohadillado (#).
El primer archivo de opciones es el /etc/ppp/options, que es ledo cada vez que el
pppd arranca.
155
LINUX
Mayo 2004
Utilizarlo para establecer algunas opciones globales por omisin es una buena
idea, pues le permite evitar que sus usuarios hagan ciertas cosas que podran
comprometer la seguridad del sistema. Por ejemplo, para hacer que el pppd
necesite algn tipo de autentificacin del otro sistema, aadira la opcin auth a
este archivo.
El otro archivo de opciones, que es ledo despus del /etc/ppp/options, es el
.ppprc situado en el directorio de inicio del usuario. Permite que cada usuario
especifique su propio conjunto de opciones predeterminadas.
Un archivo /etc/ppp/options de ejemplo puede parecerse a ste:
#Opcionesglobalesparaelpppddevlager.vbrew.com
lock#usarelbloqueodedispositivotipoUUCP
auth#obligaraautentificacin
usehostname#usarelnombredelordenadorlocalparaelCHAP
domainvbrew.com#nombredenuestrodominio
LINUX
Mayo 2004
LINUX
Mayo 2004
Si usted est llamando a un servidor y espera que ste le asigne una direccin IP,
debe asegurarse de que pppd no intenta negociar una por s mismo. Para hacer
esto, use la opcin noipdefault y deje la opcin local_addr en blanco. La opcin
noipdefault evitar que pppd intente usar la direccin IP asociada al nombre de
ordenador como la direccin local.
Si slo quiere establecer la direccin local, y aceptar cualquier direccin que
utilice el compaero, simplemente deseche la parte remote_addr. Por ejemplo,
para hacer a vlager usar la direccin IP 130.83.4.27 en vez de la suya propia, le
escribira 130.83.4.27: en la lnea de orden. De forma similar, para establecer la
direccin remota nicamente, dejara el campo de la dir_local en blanco. Por
omisin, pppd utilizar entonces la direccin asociada al nombre de su
ordenador.
Enrutamiento a travs de un enlace PPP
Tras configurar el interfaz de red, pppd preparar un enrutamiento que solamente
le sirve para comunicarse con el otro extremo. Si el ordenador remoto est en una
red de rea local, seguramente usted desear conectar tambin con los
ordenadores que estn "detrs" de l; para eso, se ha de configurar un
enrutamiento de red adecuado.
Ya hemos visto antes que se puede pedir a pppd que configure el enrutamiento
predeterminado utilizando la opcin defaultroute. Esta opcin es muy til si el
servidor PPP al que llama va a actuar como su ruteador a Internet.
El caso contrario, cuando su sistema acta como una ruteador para un slo
ordenador, es tambin relativamente fcil de llevar a cabo. Por ejemplo, imagine a
algn empleado cuyo ordenador de casa se llama oneshot. Cuando est
conectando a vlager a travs de PPP, l utiliza una direccin de la subred de la
Cervecera. Podremos dar a pppd del ordenador vlager la opcin proxyarp, que
instalar una entrada proxy-ARP para el ordenador oneshot. Esto har que
oneshot sea automticamente accesible desde todos los ordenadores de la
Cervecera y la Vinatera.
De cualquier manera, las cosas no son siempre tan fciles como esto, por ejemplo
cuando intentamos unir dos redes de rea local. Esto requiere normalmente el
aadir una ruta de red especifica, porque estas redes tendrn ya sus propios
158
LINUX
Mayo 2004
enrutamientos por defecto. Por otra parte, el tener los dos extremos de
comunicacin utilizando la conexin PPP como enrutamiento por defecto
generara un ciclo sin fin, donde los paquetes con destinos desconocidos
rebotaran entre los dos ordenadores hasta que su tiempo de vida (TTL) 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 nmero
de red IP 172.16.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 datos de clientes, etc. De nuevo, vlager actuar como
pasarela; la otra mquina se llama vbourbon y tiene una direccin IP de
172.16.3.1.
Cuando vbourbon conecta a vlager, har que el punto de enrutamiento
predeterminado sea vlager, como es habitual. En vlager, de todas formas,
tendremos que instalar un enrutamiento de red para la subred 3 que vaya a travs
de vbourbon. Podriamos hacer esto manualmente usando la orden route despus
de que el enlace PPP sea establecido, pero esta no es una solucin muy prctica.
Afortunadamente, podemos configurar la ruta automticamente utilizando una
caracterstica de pppd de la que no hemos hablado hasta ahora la orden ip-up.
Es un script de shell situado en /etc/ppp que se ejecuta despus de que el interfaz
PPP ha sido configurado. Cuando est presente, se le llama con los siguientes
parmetros:
ipupinterface dispositivo velocidad dir_local dir_remota
Propsito
interfaz
dispositivo
LINUX
Mayo 2004
velocidad
dir_local
dir_remota
LINUX
Mayo 2004
Las dos opciones ms importantes que pueden ser negociadas por el LCP son la
unidad mxima de recepcin (MRU) y el mapa de caracteres de control
asncronos.
El mapa de caracteres de control asncronos, tambin conocido como el mapa
asncrono, se usa en enlaces asncronos, como las lneas telefnicas, para
identificar los caracteres de control que deben de ser reemplazados por una
secuencia especfica de dos caracteres, para evitar que sean interpretados por el
equipamiento utilizado para establecer el enlace. Por ejemplo, puede que quiera
evitar los caracteres XON y XOFF utilizados con el control de flujo hardware
activado, pues algn mdem mal configurado puede parar hasta que reciba un
XOFF. Otro candidato puede ser Ctrl-] (el carcter de escape del telnet). PPP le
permite obviar/rehuir de cualquiera de los caracteres con cdigos ASCII
comprendidos entre 0 y 31 especificndolos en el mapa asncrono.
El mapa asncrono (async map) es un mapa de bits de 32 bits de ancho, y cuyo
bit menos significativo corresponde al carcter ASCII NUL, y cuyo bit mas
significativo corresponde al ASCII 31. Estos 32 caracteres ASCII son los
caracteres de control. Si un bit se pone a 1, indica que el carcter correspondiente
debe de ser "escapado" antes de ser enviado a travs de la conexin.
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 asncrono al pppd
utilizando la opcin asyncmap. Por ejemplo, si slo ^S y ^Q (los cdigos ASCII 17
y 19, normalmente utilizados para XON y XOFF) deben de ser "escapados", utilice
la siguiente opcin:
asyncmap0x000A0000
LINUX
Mayo 2004
puede
ser
establecido
utilizando
la
opcin
lcp-echo-failure.
LINUX
Mayo 2004
Para protegerse contra cualquier ataque que pueda lanzar algn usuario
manipulando estas opciones, se sugiere que establezca un par de valores
predeterminado en el archivo global /etc/ppp/options. Algunos de ellos, como los
de las opciones de autentificacin, no pueden ser despus modificados por el
usuario,
as
que
proporcionan
una
razonable
proteccin
contra
las
Por supuesto, tambin tiene que protegerse de los sistemas con los que habla
PPP. Para evitar que otros ordenadores puedan hacerse pasar por quien no son,
debe utilizar siempre algn tipo de autentificacin con el otro extremo de la
comunicacin. Adems, no debera permitir a ordenadores desconocidos usar
cualquier direccin IP que elijan, sino restringirlas a unas pocas. La siguiente
seccin tratar sobre estos asuntos.
3.6.7. Autentificacin con PPP
Con el PPP, cada sistema puede obligar al otro ordenador a identificarse usando
uno de los dos protocolos de autentificacin disponibles. Estos son el Protocolo
de Autentificacin por Contrasea (PAP), y el Protocolo de Autentificacin por
Reto (CHAP). Cuando se establece una conexin, cada extremo puede pedir al
163
LINUX
Mayo 2004
Cuando se intenta establecer una conexin PPP con c3po, c3po pide a vlager que
se autentifique usando el CHAP mediante el envo de un reto de CHAP. El
demonio pppd entonces 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, y encuentra la primera lnea mostrada en el ejemplo. Entonces
produce la respuesta de CHAP a partir de la cadena del reto y la clave (Use The
Source Luke), y la enva de vuelta a c3po. Al mismo tiempo, pppd produce un reto
del CHAP para c3po, conteniendo una nica cadena de reto y su nombre de
ordenador completo vlager.vbrew.com. c3po construye una respuesta de CHAP
de la manera que acabamos de decir, y se la devuelve a vlager. pppd extrae
164
LINUX
Mayo 2004
Esto aadir el nombre del dominio de la Cervecera a vlager para todas las
actividades relacionadas con la autentificacin. Otras opciones que modifican la
165
LINUX
Mayo 2004
idea que tiene el pppd del nombre del ordenador local son usehostname y name.
Cuando da la direccin IP local en la lnea de comando usando local:remote y
local es un nombre en vez de un cuarteto numrico, el pppd utilizar ste como el
nombre local.
El archivo de claves PAP
El archivo de claves PAP es muy similar al utilizado por CHAP. Los dos primeros
campos siempre contienen un nombre de usuario y un nombre de servidor; el
tercero alberga la clave PAP. Cuando el sistema remoto enva una peticin de
autentificacin, pppd usa la entrada 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 autentifica a s mismo al otro ordenador, pppd
toma la clave a enviar de la lnea con el nombre de usuario igual al nombre del
usuario local, y con el campo de servidor igual al nombre del ordenador remoto.
Un archivo de claves PAP sencillo puede parecerse a ste:
#/etc/ppp/papsecrets
#
#userserversecretaddrs
vlagerpapc3pocresspahlvlager.vbrew.com
c3povlagerDonaldGNUthc3po.lucas.com
LINUX
Mayo 2004
LINUX
Mayo 2004
Servidor PPP
Hacer funcionar el pppd como servidor es solo cuestin de configurar un
dispositivo terminal serie para que invoque al pppd con las opciones apropiadas
cuando una llamada entrante es recibida. Una manera de hacer esto es crear una
cuenta especial, digamos ppp, y asociarle un script o programa como shell de
entrada que llame al pppd con esas opciones. De forma alternativa, si quiere
soportar autentificacion PAP o CHAP, puede usar el programa mgetty para
soportar su mdem y explotar su caracterstica /autoPPP/.
Para configurar un servidor usando el mtodo de registro (login), aada una lnea
similar a la siguiente a su archivo /etc/passwd:
ppp:x:500:200:PublicPPPAccount:/tmp:/etc/ppp/ppplogin
Por supuesto, el UID y GID que utilice dependen de que usuario desea que sea
dueo de la conexin, y de cmo lo haya creado. Adems tiene que establecer la
contrasea para la cuenta mencionada usando la orden passwd.
El script ppplogin podra tener este aspecto:
#!/bin/sh
#ppploginscripttofireuppppdonlogin
mesgn
sttyecho
execpppddetachsilentmodemcrtscts
La orden mesg deshabilita la opcin que permite que otros usuarios puedan
escribir en el terminal (tty) usado utilizando, por ejemplo, la orden write. La orden
stty desactiva el eco de caracteres. Esto es necesario, pues de otra forma todo lo
168
LINUX
Mayo 2004
que el otro ordenador enve le ser devuelto a modo de eco. La opcin del pppd
ms importante de las incluidas en el script es detach, porque evita que el pppd
se separe de la terminal controlada. Si no especificsemos esta opcin, se ira a
segundo plano, haciendo que el script del shell terminase. Esto provocara que la
lnea serie colgase y se perdiera la conexin. La opcin silent 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
es lento en lanzar su cliente PPP. La opcin MODEM hace al pppd vigilar la lnea
DTR para ver si el otro sistema ha colgado. Siempre deberia activar esta opcin
cuando use pppd con un modem. La opcin crtscts activa el control de flujo por
hardware.
Adems de estas opciones, se puede forzar alguna clase de autentificacin, por
ejemplo especificando auth en la lnea de rdenes de pppd, o en el archivo de
opciones globales.
Si desea usar mgetty, todo lo que tiene que hacer es configurar mgetty para que
soporte el dispositivo serie al que su mdem est conectado, configurar pppd
bien para autentificacin PAP o CHAP con las opciones apropiadas en sus
archivos options, y finalmente, aadir una seccin similar a la siguiente a su
archivo /etc/mgetty/login.config:
#Configuramgettyparaautomaticamentedetectarllamandasentranteseinvocar
#aldemoniopppdparaquesehagacargodelaconexin.
#
/AutoPPP/ppp/usr/sbin/pppdauthchap+paplogin
El primer campo es una parte especial mgica usada para detectar que la llamada
entrante es una de tipo PPP.
No debe cambiar el aspecto de esta cadena; es sensitivo a minusculas y
mayusculas. La tercera columna en el nombre de usuario que aparece en en el
listado de who cuando alquien a entrado en el sistema. El resto de la lnea es el
comando a invocar. En nuestro ejemplo, nos hemos asegurado de que la
autentificacin por PAP es requerida, deshabilitado CHAP, y especificado que el
archivo del sistema passwd debe ser usado para autentificar usuarios. Esto es
probablemente parecido a lo que usted querr. Recuerde, puede especificar las
opciones en el archivo options o en la linea de comandos si lo prefiere.
169
LINUX
Mayo 2004
Esto es una pequea lista de comprobacin de los pasos que debe realizar y la
secuencia que debe seguir para tener funcionando en su mquina un servidor
PPP. Asegrese de que cada paso funciona correctamente antes de pasar al
siguiente:
1. Configure el mdem para que funcione en modo de auto-respuesta. En los
mdems compatibles Hayes, esto se realiza mediante la orden ATS0=3. Si va a
utilizar el demonio mgetty, esto no ser necesario.
2. Configure el dispositivo serie con una orden tipo getty para que responda a las
llamadas entrantes. Una variante comnmente usada de getty es mgetty.
3. Considere la autentificacin. Como se autentificarn con usted los clientes,
usando PAP, CHAP, o el registro del sistema?
4. Configure pppd como servidor tal como se describe en esta seccin.
5. Considere el encaminamiento. Necesitar proporcionar una ruta de red a los
clientes? El encaminamiento puede realizarse usando el script ip-up.
Llamada bajo demanda
Cuando hay trfico IP para ser transportado a travs del enlace, la llamada en
demanda provoca la llamada de su modem y el establecimiento de una conexin
con un host remoto. La llamada en demanda resulta til cuando no puede dejar su
lnea telefnica permanentemente conectada a su proveedor de Internet. Por
ejemplo, puede que tenga que pagar llamadas locales por tiempo de uso, as le
resultar ms barato tener la conexin establecida slo cuando lo necesite y
desconectada cuando no est usando Internet.
Para configurar pppd para llamada bajo demanda, todo lo que tiene que hacer es
aadir opciones a su archivo /etc/options o a la lnea de rdenes de pppd. La
tabla siguiente resume las opciones relacionadas a la llamada en demanda:
170
LINUX
Mayo 2004
Una configuracin simple de llamada bajo demanda podra ser algo como esto:
demand
holdoff60
idle180
LINUX
Mayo 2004
LINUX
Mayo 2004
ser realizados
al
nivel
de
red
enviando
datagramas
LINUX
Mayo 2004
LINUX
Mayo 2004
la configuracin ms sofistificada descrita arriba. La Figura 3-3 ilustra los dos tipos
ms comunes de configuracin de cortafuegos.
175
LINUX
Mayo 2004
176
LINUX
Mayo 2004
177
LINUX
Mayo 2004
<M>netfilterMARKmatchsupport
<M>Multipleportmatchsupport
<M>TOSmatchsupport
<M>Connectionstatematchsupport
<M>Uncleanmatchsupport(EXPERIMENTAL)
<M>Ownermatchsupport(EXPERIMENTAL)
<M>Packetfiltering
<M>REJECTtargetsupport
<M>MIRRORtargetsupport(EXPERIMENTAL)
.
<M>Packetmangling
<M>TOStargetsupport
<M>MARKtargetsupport
<M>LOGtargetsupport
<M>ipchains(2.2style)support
<M>ipfwadm(2.0style)support
La utilidad ipfwadm
La utilidad ipfwadm (el administrador del cortafuegos de IP) es la herramienta
que se utiliza para construir las reglas del cortafuegos para todos los ncleos
anteriores al 2.2.0. La sintaxis de las rdenes puede resultar muy confusa porque
permite realizar un amplio espectro de cosas.
La utilidad ipfwadm se incluye en la mayora de las distribuciones modernas de
Linux, aunque quizs no por defecto. Puede que haya un paquete de 'software'
especfico que tenga que instalar. La utilidad ipchains
Al igual que la utilidad ipfwadm, la utilidad ipchains puede resultar algo
desconcertante al principio. Proporciona toda la flexibilidad de ipfwadm con una
sintaxis simplificada, y adems proporciona un mecanismo de encadenamiento
que
le
permite
gestionar
mltiples
conjuntos
de
reglas
enlazarlas
conjuntamente.
La orden ipchains aparece en la mayora de las distribuciones de Linux basadas
en los ncleos 2.2.
La migracin de una configuracin preexistente de cortafuegos resulta menos
costosa gracias a este complemento.
La utilidad iptables
La sintaxis de la utilidad iptables es bastante similar a la de ipchains. Los
cambios consisten en mejoras y en el resultado del rediseo de la herramienta
para que sea extensible a travs de bibliotecas dinmicas
178
LINUX
Mayo 2004
LINUX
Mayo 2004
180
LINUX
Mayo 2004
LINUX
Mayo 2004
Se mencion antes que ipfwadm implementa un pequeo truco que permite que
sea ms fcil aadir estos tipos de reglas. Este truco consiste en el uso de la
opcin -b, que convierte a la orden en una regla bidireccional.
El modificador de bidireccionalidad nos permite unir nuestras dos reglas en una
sola como sigue:
#ipfwadm -F -a accept -P tcp -S 172.16.1.0/24 -D 0/0 80 b
Un refinamiento importante
Eche una mirada ms atenta a nuestro conjunto de reglas. Puede apreciar que
todava existe un mtodo de ataque que alguien de fuera podra utilizar para
engaar a nuestro cortafuegos ? Nuestro conjunto de reglas permite que todos los
datagramas procedentes de fuera de nuestra red con un puerto de origen de 80
pasen. Esto incluira a aquellos datagramas cuyo bit de SYN valga 1 . El bit SYN
es lo que declara a un datagrama de TCP que sea una peticin de conexin. Si
una persona de fuera tuviera un acceso privilegiado a un 'host', podra realizar
182
LINUX
Mayo 2004
El modificador -y hace que la regla coincida slo si el bit SYN del datagrama vale
1. As nuestra nueva regla dice: "Deniega cualquier datagrama destinado a
nuestra regla procedente de cualquier sitio con un puerto de origen igual a 80 y bit
SYN igual a 1", o "deniega cualquier peticin de conexsin desde 'hosts' utilizando
el puerto 80"
Listado de nuestras reglas
Despus de haber introducido nuestras reglas, se puede pedir a ipfwadm que las
liste con la orden:
#ipfwadm -F l
Esta orden mostrar todas las reglas de reenvo configuradas. La salida debera
parecerse a algo como esto:
#ipfwadm -F -l
IPfirewallforwardrules,defaultpolicy:accept
typeprotsourcedestinationports
denytcpanywhere172.16.10.0/24www>any
acctcp172.16.1.0/24anywhereany>www
183
LINUX
Mayo 2004
Un ejemplo ms complejo
El ejemplo anterior era un ejemplo simple. No todo los servicios de red son tan
simples de configurar como el servicio de WWW; en la prctica, la configuracin
de un cortafuegos tpico resultara ser mucho ms compleja. Vamos a examinar
otro ejemplo comn, esta vez FTP. Se quiere que los usuarios de la red interna
puedan entrar en servidores de FTP de Internet para leer y escribir archivos. Pero
no se desea que personas de Internet puedan entrar en nuestros servidores de
FTP.
Es sabido que FTP utiliza dos puertos de FTP: el puerto 20 (ftp-data) y el puerto
21 (ftp), por tanto:
#ipfwadm -a deny -P tcp -S 0/0 20 -D 172.16.1.0/24 -y
#ipfwadm -a accept -P tcp -S 172.16.1.0/24 -D 0/0 20 -b
#
#ipfwadm -a deny -P tcp -S 0/0 21 -D 172.16.1.0/24 -y
#ipfwadm -a accept -P tcp -S 172.16.1.0/24 -D 0/0 21 b
Los servidores de FTP pueden operar en dos modos diferentes: el modo pasivo y
el modo activo. En el modo pasivo, el servidor de FTP permanece escuchando en
espera de una conexin desde el cliente. En el modo activo, es el servidor el que
realmente realiza la conexin con el cliente. El modo activo es el habitual por
omisin. Las diferencias se ilustran en la Figura 3-5.
184
LINUX
Mayo 2004
LINUX
Mayo 2004
biblioteca estndar de
escriben 'software' de red que utilice el protocolo de ICMP, tambin define los
tipos de datagrama de ICMP.
Para su conveniencia, se incluyen aqu en la Tabla 3-6. La interfaz de la orden
iptables le permite especificar los tipos de ICMP por su nombre, por lo que
tambin se muestran los nombre nemotcnicos que utiliza.
LINUX
Mayo 2004
Uso de ipchains
Existen dos formas de emplear la utilidad ipchains. La primera forma consiste en
utilizar el guin de "shell" ipfwadm-wrapper, que es bsicamente un sustituto de
la orden ipfwadm y que llama por debajo al programa ipchains.
La segunda forma de utilizar ipchains consiste en aprender su nueva sintaxis y
modificar cualquier configuracin existente que exija utilizar la nueva sintaxis en
lugar de la antigua. Con algunas consideraciones cuidadosas, se dar cuenta de
que puede optimizar su configuracin a la vez que realiza la conversin. La
sintaxis de ipchains es ms fcil de aprender que la de ipfwadm, por lo que
resultar una buena opcin.
La orden ipfwadm manipulaba tres conjuntos de reglas para el propsito de
configurar el cortafuegos. Con el cortafuegos 'IP Chains', podr crear un nmero
arbitrario de conjuntos de reglas, cada una enlazada con otra, pero siguen
estando presentes siempre tres conjuntos de reglas relacionadas con la funcin
del cortafuegos.
Los conjuntos de reglas estndares son los directos equivalentes de los utilizados
con ipfwadm, exceptuando el hecho de que ahora tiene nombre: input, forward y
output.
Veamos primero la sintaxis general de la orden ipchains, despus se ver como
utilizar ipchains en lugar de ipfwadm sin preocuparse acerca de sus
caractersticas avanzadas de encadenamiento. Se har reutilizando nuestros
ejemplos anteriores
Sintaxis de la orden ipchains
La sintaxis de la orden ipchains es bastante directa. Se contemplarn los
ejemplos ms importantes. La sintaxis general de la mayora de las rdenes de
ipchains es:
ipchains orden especificacin_de_regla opciones
LINUX
Mayo 2004
Usted ya sabe que la orden ipchains sustituye a la orden ipfwadm con una
sintaxis de lnea de rdenes ms simple y con algunas mejoras interesantes, pero
sin duda alguna, usted desea saber dnde y por qu se deben utilizar las cadenas
de usuario.
Cadenas de usuario
Los tres conjuntos de reglas del cdigo del cortafuegos de IP tradicional
proporcionan un mecanismo para construir configuraciones de cortafuegos que
eran bastante simples de entender y de gestionar en el caso de pequeas redes
con requisitos simples en cuanto a funcionalidad de cortafuegos. Cuando los
requisitos de configuracin no son tan simples, aparecen numerosos problemas.
En primer lugar, las redes muy grandes requieren con frecuencia un nmero
mucho mayor de reglas de cortafuegos que el pequeo que hemos visto hasta
ahora; de forma inevitable, aparecen necesidades que requieren que se aadan
reglas de cortafuegos para cubrir escenarios con casos especiales. Cuando el
nmero de reglas empieza a crecer, el rendimiento del cortafuegos disminuye ms
y ms segn ms y ms comprobaciones tienen que realizarse sobre cada
datagrama y la facilidad de gestin se convierte en un asunto importante. En
segundo lugar, no es posible habilitar y deshabilitar conjuntos de reglas
atmicamente; en cambio, usted se encontrar inevitablemente expuesto a
ataques mientras se encuentre en medio de una reconstruccin de sus conjuntos
de reglas.
El diseo del cortafuegos 'IP Chains' ayuda a soliviantar estos problemas al
permitir al administrador de la red crear conjuntos arbitrarios de reglas de
cortafuegos que se pueden enlazar con los tres conjuntos de reglas predefinidas.
Se puede utilizar la opcin -N de ipchains para crear una nueva cadena con el
nombre de ocho caracteres o menos que nos plazca. (Probablemente sea buena
idea restringir el nombre a uno formado por minsculas solamente). La opcin -j
configura la accin que se tomar cuando el datagrama coincida con la
especificacin de la regla. La opcin -j especifica que si un datagrama coincide
con una regla, entonces deben realizarse ms comprobaciones contra una
cadena definida por usuario. Se ilustrar esto con un diagrama.
Considrese las siguientes rdenes de ipchains:
188
LINUX
Mayo 2004
ipchainsPinputDENY
ipchainsNtcpin
ipchainsAtcpins!172.16.0.0/16
ipchainsAtcpinptcpd172.16.0.0/16sshjACCEPT
ipchainsAtcpinptcpd172.16.0.0/16wwwjACCEPT
ipchainsAinputptcpjtcpin
ipchainsAinputpall
189
LINUX
Mayo 2004
El datagrama se recibe por la cadena input y cae dentro de las dos reglas porque
coinciden con los protocolos de ICMP y TCP, respectivamente. Coincide con la
tercera regla en la cadena, pero no se especifica ningn blanco por lo que los
contadores de datagramas y bytes se actualizan pero se toma ninguna otra
accin.
El datagrama alcanza el final de la cadena input, se encuentra con la poltica
predeterminada de la cadena input y no se acepta.
Para ver a nuestra cadena de usuario en accin, considrese qu pasa cuando se
recibe un datagrama de TCP destinado al puerto ssh de uno de nuestros 'hosts'.
La secuencia se muestra en la Figura 3-8.
Figura 3-8. Flujo de reglas para un datagrama de TCP recibido para ssh
190
LINUX
Mayo 2004
Esta vez, la segunda regla de la cadena input coincide y especifica como blanco
la cadena tcpin, nuestra cadena de usuario. Especificar una cadena de usuario
como blanco causa que se compruebe el datagrama contra las reglas de esa
cadena, por lo que la siguiente regla que se comprobar ser la primera regla de
la cadena tcpin. La primera regla coincide con cualquier datagrama que tenga una
direccin de origen fuera de nuestra red local y no especifica ningn blanco, por lo
que tambin es una regla de auditora y la comprobacin pasa a la siguiente
regla. La segunda regla de nuestra cadena tcpin s que coincide y especifica un
blanco de ACCEPT. Se ha llegado a un blanco tal que no se realiza ms
procesamiento. El datagrama se acepta.
Por ltimo, veamos lo que pasa cuando se alcanza el final de una cadena de
usuario. Para ver esto, se representar el flujo de un datagrama de TCP destinado
a un puerto distinto de los dos que estamos manejando especficamente, como se
muestra en la Figura 3-9.
Figura 3-9. Flujo de reglas para un datagra de TCP recibido para telnet
191
LINUX
Mayo 2004
#
#creanuestrascadenasdeusuario
ipchainsNsshin
ipchainsNsshout
ipchainsNwwwin
ipchainsNwwwout
#
# Se asegura de que se rechazarn las conexiones provenientes por el camino
incorrecto.
ipchainsAwwwinptcps172.16.0.0/16yjREJECT
ipchainsAwwwoutptcpd172.16.0.0/16yjREJECT
ipchainsAsshinptcps172.16.0.0/16yjREJECT
ipchainsAsshoutptcpd172.16.0.0/16yjREJECT
#
#seaseguraqueloquealcanceelfinaldeunacadenadeusuarioserechaza
ipchainsAsshinjREJECT
ipchainsAsshoutjREJECT
ipchainsAwwwinjREJECT
ipchainsAwwwoutjREJECT
#
#dirigelosserviciosdewwwysshalascadenasdeusuariorelevantes
ipchainsAforwardptcpd172.16.0.0/16sshbjsshin
ipchainsAforwardptcps172.16.0.0/16d0/0sshbjsshout
ipchainsAforwardptcpd172.16.0.0/16wwwbjwwwin
ipchainsAforwardptcps172.16.0.0/16d0/0wwwbjwwwout
#
#Insertanuestrasreglasparabuscarcoincidenciasconlos'hosts'enlasegunda
posicin
#nuestrascadenasdeusuario.
ipchainsIwwwin2d172.16.1.2bjACCEPT
ipchainsIwwwout2s172.16.1.0/24bjACCEPT
ipchainsIsshin2d172.16.1.4bjACCEPT
ipchainsIsshout2s172.16.1.4bjACCEPT
ipchainsIsshout2s172.16.1.6bjACCEPT
#
LINUX
Mayo 2004
LINUX
Mayo 2004
LINUX
Mayo 2004
cortafuegos; dos para cada una de las cadenas 'input, 'forward' y 'output' (una
cubrira el camino en un sentido y la otra en el sentido contrario). Puede
imaginarse cmo esto puede llegar a resultar extremadamente complejo y difcil
de gestionar cuando se mezclan sesiones que pueden ser enrutadas y sesiones
que podran conectarse al 'host' local sin que deban ser enrutadas. 'IP chains' le
permite crear cadenas que le simplificaran esta tarea un poco, pero su diseo no
resulta evidente y requiere de un cierto nivel de experiencia.
En la implementacin de netfilter con iptables, esta complejidad desaparece
completamente. Para que se pueda encaminar por un 'host' cortafuegos un
servicio que se desea prohibir que termine en el propio 'host', slo se necesitan
dos reglas: una para un sentido y otra para el contrario ambas en la cadena
'forward'. Esto es la forma obvia de disear reglas de cortafuegos, y servir para
simplificar enormemente el diseo de las configuraciones del cortafuegos .
Uso de iptables
La utilidad iptables se utiliza para configurar las reglas de filtrado de netfilter. Su
sintaxis se apoya fuertemente en la de la orden ipchains, pero difiere en un
aspecto muy importante: es extensible. Esto quiere decir que su funcionalidad
puede extenderse sin tener que recompilar. Consigue este truco utilizando
195
LINUX
Mayo 2004
LINUX
Mayo 2004
LINUX
Mayo 2004
198
LINUX
Mayo 2004
#TCP
#AceptaremostodoslosdatagramasdeTCPquepertenezcanauna
conexinyaexistente(i.e.cuyobitdeACKvalga1)
#enelcasodelospuertosdeTCPqueestamospermitiendo.
#Estodeberacapturarmsdel95%detodoslospaquetesvlidosdeTCP.
$IPFWADMIaacceptPtcpD$OURNET$TCPINkb
#TCPCONEXIONESENTRANTES
#Aceptaremosnicamentelassolicitudesdeconexindesde
#fueraslamenteenlospuertosdeTCPpermitidos.
$IPFWADMIaacceptPtcpW$ANYDEVD$OURNET$TCPINy
#TCPCONEXIONESSALIENTES
#AceptaremostodaslasconexionessalientesdeTCPhacialospuertos
#deTCPpermitidos.
$IPFWADMIaacceptPtcpW$OURDEVD$ANYADDR$TCPOUTy
#UDPENTRADA
#AceptaremoslaentradadedatagramasUDPporpuertospermitidos
$IPFWADMIaacceptPudpW$ANYDEVD$OURNET$UDPIN
#UDPSALIDA
#Aceptaremoslasalidadedatagramashacialospuertospermitidos.
$IPFWADMIaacceptPudpW$OURDEVD$ANYADDR$UDPOUT
#ICMPENTRADA
#AceptaremoslaentradadelosdatagramasdeICMPdelostipospermitidos.
$IPFWADMIaacceptPicmpW$ANYDEVD$OURNET$ICMPIN
#ICMPSALIDA
#AceptaremoslasalidadelosdatagramasdeICMPdelostipospermitidos.
$IPFWADMIaacceptPicmpW$OURDEVD$ANYADDR$ICMPOUT
#CASOPORDEFECTOyREGISTRO
#Todoslosrestantesdatagramascaendentrodelareglapordefecto
#ysoneliminados.Sernregistradossimsarrribasehaconfigurado
#lavariableLOGGING.
#
if["$LOGGING"]
then
#RegistralospaquetesdeTCPdescartados
$IPFWADMIarejectPtcpo
#RegistralospaquetesdeUDPdescartados
$IPFWADMIarejectPudpo
#RegistralospaquetesdeICMPdescartados
$IPFWADMIarejectPicmpo
fi
#
#fin.
199
LINUX
Mayo 2004
ANYDEV="eth1"
#LosserviciosdeTCPquedeseamospermitirquepasenun""vaco
#significatodoslospuertos
#nota:separadosporespacios
TCPIN="smtpwww"
TCPOUT="smtpwwwftpftpdatairc"
#LosserviciosdeUDPquedeseamospermitirquepasenun""vaco
#significatodoslospuertos
#nota:separadosporespacios
UDPIN="domain"
UDPOUT="domain"
#LosserviciosdeICMPquedeseamospermitirquepasenun""vaco
#significatodoslostipos
#referenciaparalosnmerosdelostipos:/usr/include/netinet/ip_icmp.h
#nota:separadosporespacios
ICMPIN="0311"
ICMPOUT="8311"
#Registro;descomentelasiguientelneaparahabilitarelregistro
#delosdatagramasrechazadosporelcortafuegos
#LOGGING=1
#FINDELASECCINCONFIGURABLEPORELUSUARIO
##########################################################################
#Borralasreglasdelacadenadeentrada
$IPCHAINSFinput
#Pordefecto,queremosdenegarelaccesoalosintentosdeentrada
$IPCHAINSPinputdeny
#SUPLANTACINDEIDENTIDAD
#Nosedeberaaceptarningndatagramaprovenientedefueraconuna
#direcccindeorigencoincidenteconunadelasnuestras,por
#esolasrechazamos.
$IPCHAINSAinputs$OURNETi$ANYDEVjdeny
#'SMURF'
#NosepermitendifusionesdirigidasdeICMPanuestraredparaevitar
#losataquesdelestilodenominado'Smurf'.
$IPCHAINSAinputpicmpw$ANYDEVd$OURBCASTjdeny
#Deberamosaceptarfragmentos,estosedebeexplicitarenipchains.
$IPCHAINSAinputfjaccept
#TCP
#AceptaremostodoslosdatagramasdeTCPquepertenezcanauna
#conexinyaexistente(i.e.cuyobitdeACKvalga1)
#enelcasodelospuertosdeTCPqueestamospermitiendo.
#Estodeberacapturarmsdel95%detodoslospaquetesvlidosdeTCP.
$IPCHAINSAinputptcpd$OURNET$TCPIN!ybjaccept
#TCPCONEXIONESENTRANTES
Aceptaremosnicamentelassolicitudesdeconexindesde
#fueraenlospuertosdeTCPpermitidos.
$IPCHAINSAinputptcpi$ANYDEVd$OURNET$TCPINyjaccept
#TCPCONEXIONESSALIENTES
#AceptaremostodaslasconexionessalientesdeTCPhacialospuertos
#deTCPpermitidos.
$IPCHAINSAinputptcpi$OURDEVd$ANYADDR$TCPOUTyjaccept
#UDPENTRADA
#AceptaremoslaentradadelosdatagramasdeUDPporpuertospermitidos
$IPCHAINSAinputpudpi$ANYDEVd$OURNET$UDPINjaccept
#UDPSALIDA
#Aceptaremoslasalidadedatagramashacialospuertospermitidos.
$IPCHAINSAinputpudpi$OURDEVd$ANYADDR$UDPOUTjaccept
#ICMPENTRADA
#AceptaremoslaentradadelosdatagramasdeICMPdelostipospermitidos
$IPCHAINSAinputpicmpw$ANYDEVd$OURNET$ICMPINjaccept
#ICMPSALIDA
#AceptaremoslasalidadelosdatagramasdeICMPdelostipospermitidos.
200
LINUX
Mayo 2004
$IPCHAINSAinputpicmpi$OURDEVd$ANYADDR$ICMPOUTjaccept
#CASOPORDEFECTOyREGISTRO
#Todoslosrestantesdatagramascaendentrodelareglapordefecto
#ysoneliminados.Sernregistradossimsarribasehaconfigurado
#lavariableLOGGING.
#
if["$LOGGING"]
then
#RegistralospaquetesdeTCPdescartados
$IPCHAINSAinputptcpljreject
#RegistralospaquetesdeUDPdescartados
$IPCHAINSAinputpudpljreject
#RegistralospaquetesdeICMPdescartados
$IPCHAINSAinputpicmpljreject
fi
#
#fin.
201
LINUX
Mayo 2004
UDPOUT="domain"
#LosserviciosdeICMPquedeseamospermitirquepasenun""vaco
#significatodoslostipos
#referenciaparalosnmerosdelostipos:/usr/include/netinet/ip_icmp.h
#nota:separadosporespacios
ICMPIN="0,3,11"
ICMPOUT="8,3,11"
#Registro;descomentelasiguientelneaparahabilitarelregistro
#delosdatagramasrechazadosporelcortafuegos
#LOGGING=1
#FINDELASECCINCONFIGURABLEPORELUSUARIO
###########################################################################
#Borralasreglasdelacadenadeentrada
$IPTABLESFFORWARD
##Pordefecto,queremosdenegarelaccesoalosintentosdeentrada
$IPTABLESPFORWARDdeny
#Rechazatodoslosdatagramasdestinadosaestehostyrecibidos
#desdefuera.
$IPTABLESAINPUTi$ANYDEVjDROP
#SUPLANTACINDEIDENTIDAD
#Nosedeberaaceptarningndatagramaprovenientedefueraconuna
#direcccindeorigencoincidenteconunadelasnuestras,por
#esolasrechazamos.
$IPTABLESAFORWARDs$OURNETi$ANYDEVjDROP
#'SMURF'
#NosepermitendifusionesdirigidasdeICMPanuestraredparaevitar
#losataquesdelestilodenominado'Smurf'.
$IPTABLESAFORWARDmmultiportpicmpi$ANYDEVd$OURNETjDENY
#Deberamosaceptarfragmentos,estosedebeexplicitareniptables.
$IPTABLESAFORWARDfjACCEPT
#TCP
#AceptaremostodoslosdatagramasdeTCPquepertenezcanauna
#conexinyaexistente(i.e.cuyobitdeACKvalga1)
#enelcasodelospuertosdeTCPqueestamospermitiendo.
#Estodeberacapturarmsdel95%detodoslospaquetesvlidosdeTCP.
IPTABLESAFORWARDmmultiportptcpd$OURNETdports$TCPIN/
!tcpflagsSYN,ACKACKjACCEPT
$IPTABLESAFORWARDmmultiportptcps$OURNETsports$TCPIN/
!tcpflagsSYN,ACKACKjACCEPT
#TCPCONEXIONESENTRANTES
#Aceptaremosnicamentelassolicitudesdeconexindesde
#fueraenlospuertosdeTCPpermitidos.
$IPTABLESAFORWARDmmultiportptcpi$ANYDEVd$OURNET$TCPIN/
synjACCEPT
##TCPCONEXIONESSALIENTES
#AceptaremostodaslasconexionessalientesdeTCPhacialospuertos
#deTCPpermitidos
$IPTABLESAFORWARDmmultiportptcpi$OURDEVd$ANYADDR/
dports$TCPOUTsynjACCEPT
#UDPENTRADA
##AceptaremoslaentradayvueltadelosdatagramasdeUDPporpuertos
#permitidos.
$IPTABLESAFORWARDmmultiportpudpi$ANYDEVd$OURNET/
dports$UDPINjACCEPT
$IPTABLESAFORWARDmmultiportpudpi$ANYDEVs$OURNET/
sports$UDPINjACCEPT
#UDPSALIDA
#SeaceptarnlasalidadelosdatagramasdeUDPhacialospuertos
permitidosysuvuelta.
$IPTABLESAFORWARDmmultiportpudpi$OURDEVd$ANYADDR/
dports$UDPOUTjACCEPT
$IPTABLESAFORWARDmmultiportpudpi$OURDEVs$ANYADDR/
202
LINUX
Mayo 2004
sports$UDPOUTjACCEPT
#ICMPENTRADA
#AceptaremoslaentradadelosdatagramasdeICMPdelostipospermitidos
$IPTABLESAFORWARDmmultiportpicmpi$ANYDEVd$OURNET/
dports$ICMPINjACCEPT
#ICMPSALIDA
#AceptaremoslasalidadelosdatagramasdeICMPdelostipospermitidos.
$IPTABLESAFORWARDmmultiportpicmpi$OURDEVd$ANYADDR/
dports$ICMPOUTjACCEPT
#CASOPORDEFECTOyREGISTRO
#Todoslosrestantesdatagramascaendentrodelareglapordefecto
#ysoneliminados.Sernregistradossimsarribasehaconfigurado
#lavariableLOGGING.
#
if["$LOGGING"]
then
#RegistralospaquetesdeTCPdescartados
$IPTABLESAFORWARDmtcpptcpjLOG
#RegistralospaquetesdeUDPdescartados
$IPTABLESAFORWARDmudppudpjLOG
#RegistralospaquetesdeICMPdescartados
$IPTABLESAFORWARDmudppicmpjLOG
fi
#
#fin.
editar
la
seccin
superior
del
fichero
denominado
SECCIN
LINUX
Mayo 2004
Captulo 4
Configuracin de Servicios
En este capitulo veremos cuestiones importantes sobre la configuracin de
servicios dentro de una red como son: aplicaciones de red mediante el
superservidor inetd, el sistema de informacin de red (NIS),y el sistema de
ficheros de red (NFS). Ademas encontraremos informacin sobre como compartir
sistemas Linux con Novell Netware y Windows, esto con la finalidad de compartir
servicios como internet o impresoras y por ltimo revisaremos una pequea
introduccin a la administracin de Taylor UUCP y su implementacin para con
nuestra red.
4.1. Caractersticas Importantes de Redes
Esta seccin cubre la configuracin de unas sencillas aplicaciones de red,
incluyendo el servido rinetd y los programas de la familia rlogin. Tambin
trataremos brevemente el interfaz de Llamada a Procedimiento Remoto (Remote
Procedure Call), sobre el cul servicios como Network File System (NFS) y
Network Information System (NIS) se basan. Las configuraciones de NFS y NIS,
sin embargo, som ms complejas y estn descritas en otras secciones de este
captulo, as como lo estn tanto el correo electrnico y las noticias de red en el
captulo 5.
4.1.1. El Super Servidor inetd
Los programas que proporcionan servicios de aplicacin a travs de la red se
llaman demonio. Un demonio es un programa que abre un puerto, comnmente
un puerto de algn servicio bien conocido, y espera conexiones entrantes en l. Si
ocurre una, el demonio crea un proceso hijo que acepta la conexin, mientras que
el proceso padre contina escuchando ms peticiones. Este mecanismo funciona
bien, pero tiene unas pocas desventajas; al menos una instancia de cada posible
servicio que se quiera proporcionar, debe estar activa en memoria a todas horas.
Adems, la rutina software que hacen la escucha y la gestin del puerto tiene que
ser replicada en cada uno de los demonios de red.
Para superar estas ineficiencias, muchas instalaciones Unix ejecutan un demonio
de red especial, el cual debe ser considerado como un super servidor. Este
204
LINUX
Mayo 2004
demonio crea sockets en nombre de cada uno de los servicios y escucha en todos
ellos simultneamente. Cuando una conexin entrante es recibida en cualquiera
de esos sockets, el super servidor acepta la conexin y replica el servicio
especificado para ese puerto, pasando el socket a gestionarse a travs del
proceso hijo. El servidor entonces, vuelve a la escucha. startup El super servidor
ms comn se llama inetd, el Demonio de Internet. Se inicia en tiempo de
arranque del sistema y toma la lista de servicios que ha de gestionar de un fichero
de inicializacin llamado /etc/inetd.conf. Adems de estos servidores, hay un
nmero de servicios triviales realizados por inetd llamados servicios internos. Se
incluyen chargen, el cul simplemente genera una cadena de caracteres, y
daytime, el cul devuelve la idea del sistema de la hora del da.
Un ejemplo del archivo inetd.conf se expone en Ejemplo 4-1. El servicio finger
est comentado as que no est disponible. Esto se hace a menudo por razones
de seguridad, porque puede ser usado por atacantes para obtener nombres y
otros detalles de los usuarios de su sistema.
Ejemplo 4-1. Un ejemplo del archivo /etc/inetd.conf
#
#inetdservices
ftpstreamtcpnowaitroot/usr/sbin/ftpdin.ftpdl
telnetstreamtcpnowaitroot/usr/sbin/telnetdin.telnetdb/etc/issue
#fingerstreamtcpnowaitbin/usr/sbin/fingerdin.fingerd
#tftpdgramudpwaitnobody/usr/sbin/tftpdin.tftpd
#tftpdgramudpwaitnobody/usr/sbin/tftpdin.tftpd/boot/diskless
#loginstreamtcpnowaitroot/usr/sbin/rlogindin.rlogind
#shellstreamtcpnowaitroot/usr/sbin/rshdin.rshd
#execstreamtcpnowaitroot/usr/sbin/rexecdin.rexecd
#
#inetdinternalservices
#
daytimestreamtcpnowaitrootinternal
daytimedgramudpnowaitrootinternal
timestreamtcpnowaitrootinternal
timedgramudpnowaitrootinternal
echostreamtcpnowaitrootinternal
echodgramudpnowaitrootinternal
discardstreamtcpnowaitrootinternal
discarddgramudpnowaitrootinternal
chargenstreamtcpnowaitrootinternal
chargendgramudpnowaitrootinternal
LINUX
Mayo 2004
a esta:
#demoniofingerencapsulado
fingerstreamtcpnowaitroot/usr/sbin/tcpdin.fingerd
206
LINUX
Mayo 2004
207
LINUX
Mayo 2004
Normalmente, usted no tiene que cambiar el archivo de servicios que viene junto
con el software de red de su sistema Linux. Sin embargo, le damos un pequeo
extracto de ese archivo en Ejemplo 4-2.
Ejemplo 4-2. Un archivo /etc/services de ejemplo
#Elarchivodeservicios:
#
#serviciosbienconocidos
echo7/tcp#Eco
echo7/udp#
discard9/tcpsinknull#Descartar
discard9/udpsinknull#
daytime13/tcp#Hora
daytime13/udp#
chargen19/tcpttytstsource#Generadordecaracteres
chargen19/udpttytstsource#
ftpdata20/tcp#ProtocoloFTP(Datos)
ftp21/tcp#ProtocoloFTP(Control)
telnet23/tcp#ProtocolodeTerminalesVirtuales
smtp25/tcp#ProtocolodeCorreoSMTP
nntp119/tcpreadnews#ProtocolodeNoticiasNNTP
#
#UNIXservices
exec512/tcp#BSDrexecd
biff512/udpcomsat#notificacindecorreo
login513/tcp#registroremoto(remotelogin)
who513/udpwhod#whoyuptimeremotos
shell514/tcpcmd#rdenremota,sinusodecontrasea
syslog514/udp#sistemaremotoderegistrosdelsistema
printer515/tcpspooler#colasdeimpresinremotas
route520/udprouterrouted#protocoodeinformacindeencaminamiento
Fjese que el servicio echo se ofrece en el puerto 7 para TCP y UDP, y que el
puerto 512 se usa para 2 servicios diferentes: ejecucin remota (rexEC) usando
TCP, y el demonio COMSAT, el cual notifica a los usuarios que tienen correo
nuevo, sobre UDP.
Como el archivo de servicios, la biblioteca de red necesita una manera de traducir
nombres de protocolo. Esto se hace mirando el nombre en el archivo
/etc/protocols. ste contiene una entrada por lnea, cada una conteniendo el
nombre del protocolo y el nmero asociado. Tener que tocar este archivo es
incluso ms inverosmil que hacerlo con /etc/services. Un ejemplo del archivo se
proporciona en Ejemplo 4-3.
Ejemplo 4-3. Un archivo /etc/protocols de ejemplo
#
#ProtocolosdeInternet(IP)
208
LINUX
Mayo 2004
#
ip0IP#protocolodeinternet,nmerodepseudoprotocolo
icmp1ICMP#protocoloICMP
igmp2IGMP#ProtocoloIGMP
tcp6TCP#Protocolodecontroldetransmisin(TCP)
udp17UDP#ProtocoloUDP
raw255RAW#InterfazRAWIP
209
LINUX
Mayo 2004
bootparam100026
ypupdated100028ypupdate
LINUX
Mayo 2004
LINUX
Mayo 2004
cual
el
administrador
de
sistema
guarda
en
un
archivo
llamado
Se le pedir que introduzca una frase de paso. Sin embargo, las claves host no
deben usar frase de paso, en este caso pulse la tecla return para dejarla en
blanco. La salida del programa ser algo as:
GeneratingRSAkeys:......oooooO...............................oooooO
Keygenerationcomplete.
Enterpassphrase(emptyfornopassphrase):
Entersamepassphraseagain:
Youridentificationhasbeensavedin/etc/ssh/ssh_host_key
Yourpublickeyhasbeensavedin/etc/ssh/ssh_host_key.pub
Thekeyfingerprintis:
10243a:14:78:8e:5a:a3:6b:bc:b0:69:10:23:b7:d8:56:82root@moria
Puede encontrar al final que los dos archivos han sido creados. El primero se
llama la clave privada, el cual debe mantenerse en secreto y estar en
/etc/ssh/ssh_host_key. El segundo se llama la clave pblica y es el que puede
compartir; estar en /etc/ssh/ssh_host_key.pub.
Armados con las claves para la comunicacin ssh, necesita crear un archivo de
configuracin. las rdenes ssh son muy potentes y el archivo de configuracin
puede contener muchas opciones. Expondremos un ejemplo sencillo para que
empiece; debe dirigirse a la documentacin de ssh para activar otras
212
LINUX
Mayo 2004
LINUX
Mayo 2004
LINUX
Mayo 2004
LINUX
Mayo 2004
dactilares,
las
cules usted
debe
aadir a
su
archivo
Se le pedir una clave, debe contestar con la clave de la cuenta remota, no con la
local. Esta clave no tendr eco por pantalla cuando la introduzca.
Sin ningn argumento especial, slogin intentar utilizar el mismo identificador de
usuario que en la mquina local. Puede cambiar esto usando el argumento -l ,
dando un nombre de registro alternativo en el host remoto.
Podemos copiar archivos hacia y desde un host remoto usando el programa scp.
Su sintaxis es similar al convencional cp con la excepcin que debe especificar un
nombre de host antes del archivo, significando que el camino del archivo est en
el host especificado. El siguiente ejemplo ilustra la sintaxis de scp copiando un
archivo
local
llamado
/tmp/fred
al
/home/maggie/
del
host
remoto
chianti.vbrew.com:
216
LINUX
Mayo 2004
Hacemos notar que la orden se debe ejecutar con comillas para clarificar qu se
est pasando como un argumento a la orden ssh y qu debe usar el intrprete de
rdenes local. Esta orden ejecuta la orden tar en el host remoto para archivar el
directorio /etc/ y escribir en la salida estndar. Hemos entubado una instancia de
la orden tar ejecutando en nuestro host local en modo extraccin leyendo desde
la entrada estndar.
De nuevo, se pide una clave. Ahora puede ver por qu le animamos a configurar
ssh para que no se le pida las claves todo el tiempo. Vamos ahora a configurar
217
LINUX
Mayo 2004
nuestro cliente local ssh de modo que no nos pida la clave cuando conectemos al
host vchianti.vbrew.com. Mencionamos antes el archivo .ssh/authorized_keys;
aqu es donde se va a usar. El archivo .ssh/authorized_keys contiene las claves
pblicas
de
cada
cuenta
de
usuario
remota
que
queremos
registrar
.ssh/authorized_keys.
los
Es
vital
que
permisos
de
archivo
de
Las claves pblicas son una larga sencilla lnea de texto plano. Si usa copiar y
pegar para duplicar la clave en su fichero local, asegrese de borrar cualquier
carcter de final de lnea que se pueden haber introducido de esta manera. El
archivo .shh/uathorized_keys puede contener muchas de estas claves, cada una
en una lnea propia.
4.2. El Sistema de Informacin de Red (NIS)
Cuando se usa una red de rea local, la meta final suele ser proporcionar un
entorno que haga la red transparente a los usuarios. Un paso importante es
mantener los datos vitales, como la informacin de las cuentas de usuario,
sincronizados a lo largo de todas las mquinas. Esto proporciona a los usuarios la
libertad de moverse de mquina en mquina sin el inconveniente de tener que
recordar contraseas diferentes y copiar datos de una mquina a otra. Los datos
que estn almacenados centralmente no necesitan ser replicados mientras exista
un medio de acceder a ellos desde un nodo conectado a la red. Al almacenar
centralmente la informacin administrativa importante, se consigue asegurar la
consistencia de esos datos, aumentar la flexibilidad a los usuarios permitindoles
moverse de nodo a nodo de manera transparente, y hacerle la vida mucho ms
218
LINUX
Mayo 2004
LINUX
Mayo 2004
Puede encontrar soporte para otros archivos y mapas en otros paquetes NIS.
Normalmente contienen informacin sobre aplicaciones que no se discuten en
este trabajo el mapa bootparams utilizado por el servidor bootparamd de Sun. Hay
mapas para los que la gente usa normalmente apodos, que son ms cortos y por
tanto ms fciles de escribir. Tenga en cuenta que estos apodos slo los
entienden ypcat e ypmatch, dos herramientas para comprobar su configuracin
NIS. Para obtener una lista completa de los apodos que entienden estas
herramientas, ejecute la siguiente orden:
$ypcat -x
Use"passwd"for"passwd.byname"
Use"group"for"group.byname"
Use"networks"for"networks.byaddr"
Use"hosts"for"hosts.byaddr"
Use"protocols"for"protocols.bynumber"
Use"services"for"services.byname"
Use"aliases"for"mail.aliases"
Use"ethers"for"ethers.byname"
..
El servidor NIS se llama tradicionalmente ypserv. Para una red mediana,
normalmente un solo servidor es suficiente; las redes grandes pueden elegir
ejecutar varios de estos servidores en mquinas diferentes y en segmentos de red
diferentes para reducir la carga en las mquinas servidor y en los enrutadores.
220
LINUX
Mayo 2004
LINUX
Mayo 2004
LINUX
Mayo 2004
LINUX
Mayo 2004
ypserv:172.16.2.
Esto permitira a todos los nodos de la red 172.16.2.0 acceder al servidor NIS.
Para denegar el acceso al resto de nodos, la correspondiente lnea en el
hosts.deny sera:
ypserv:ALL
configurar
la
/etc/ypserv.securenets,
seguridad
necesita
securenets
crear
el
utilizando
archivo
de
el
mtodo
configuracin,
El
ejemplo
4-6
muestra
cmo
sera
un
sencillo
archivo
/etc/ypserv.securenets:
Ejemplo 4-6. archivo ypserv.securenets de Ejemplo
#permitirconexionesdesdeelnodolocalnecesario
host127.0.0.1
#lomismopara255.255.255.255127.0.0.1
#
#permitirconexionesdesdecualquiernododelareddelaCerveceraVirtual
255.255.255.0172.16.1.0
#
La primera entrada de cada lnea es la mscara de red a utilizar, siendo host una
palabra clave especial que significa mscara de red 255.255.255.255. La segunda
entrada de cada lnea es la direccin IP a la que aplicar la mscara de red.
Una tercera opcin es utilizar el mapeador de puertos (portmapper) seguro en
lugar de la opcin securenets de ypserv. El mapeador de puertos seguro
(portmap-5.0) utiliza tambin el esquema de hosts.allow, pero ofrece esto a todos
los servidores RPC, no slo a ypserv. Sin embargo, no se debe utilizar la opcin
securenets y el mapeador de puertos seguro al mismo tiempo, por la sobrecarga
que esto supondra.
224
LINUX
Mayo 2004
#yp.confconfiguracindeYPparalabibliotecaGNUlibc.
#
ypservervbardolino
225
LINUX
Mayo 2004
#yp.confconfiguracindeYPparalabibliotecalibcdeGNU.
#
domainvinateraservervbardolino
domaincerveceraservervstout
La palabra clave broadcast le dice a ypbind que use el servidor NIS que
encuentre en el dominio.
Tras crear este archivo bsico de configuracin y asegurarse de que es legible por
todo el mundo, debe realizar la primera comprobacin para conectar con su
servidor. Asegrese de elegir un mapa que su servidor distribuya, como el
hosts.byname, e intente obtenerlo utilizando la utilidad ypcat:
#ypcat hosts.byname
172.16.2.2vbeaujolais.vbrew.comvbeaujolais
172.16.2.3vbardolino.vbrew.comvbardolino
172.16.1.1vlager.vbrew.comvlager
172.16.2.1vlager.vbrew.comvlager
172.16.1.2vstout.vbrew.comvstout
172.16.1.3vale.vbrew.comvale
172.16.2.4vchianti.vbrew.comvchianti
LINUX
Mayo 2004
LINUX
Mayo 2004
nombre de nodo puede cambiar frecuentemente, por lo que el servidor DNS o NIS
siempre debe tener la informacin ms precisa posible, mientras que el archivo
local hosts slo se conserva como copia de seguridad por si DNS o NIS fallan.
Por tanto, para los nombres de nodo, normalmente querr que el archivo local se
lea en ltimo lugar.
El siguiente ejemplo muestra cmo forzar a gethostbyname y gethostbyaddr que
busquen en NIS y DNS antes de buscar en el archivo hosts, y cmo hacer que la
funcin getservbyname busque en los archivos locales antes de consultar a NIS.
Estas funciones de resolucin probarn con cada uno de los servicios listados en
orden; si una bsqueda tiene xito, se devuelve el resultado; si no, probarn con
el siguiente servicio de la lista. La configuracin para estas prioridades es:
#pequeoejemplode/etc/nsswitch.conf
#
hosts:nisdnsfiles
services:filesnis
Lo siguiente es una lista completa de los servicios y lugares que pueden utilizarse
en una entrada del archivo nsswitch.conf. Los verdaderos mapas, ficheros,
servidores y objetos consultados dependen del nombre de la entrada. Lo siguiente
puede aparecer a la derecha de los dos puntos:
nis
Utilizar el servidor NIS del dominio actual. La situacin del servidor consultado se
configura en el archivo yp.conf. Para la entrada hosts, se consultan los mapas
hosts.byname y hosts.byaddr. nisplus o nis+ .
dns
Utilizar el servidor de nombres DNS. Este tipo de servicio slo es til con la
entrada
hosts.
Los
servidores
de
nombres
consultados
todava
estn
LINUX
Mayo 2004
ficheros passwd y group, la opcin compat les permite funcionar con esos
formatos.
db
Buscar la informacin en los archivos DBM situados en el directorio /var/db. Para
ese archivo se utiliza el nombre de mapa NIS correspondiente.
Actualmente, el soporte de NIS de la libc de Linux proporciona las siguientes
bases de datos de nsswitch.conf: aliases, ethers.group, hosts, netgroup, network,
passwd, protocols, publickey, rpc, services, y shadow. Es probable que se
aandan ms entradas.
El Ejemplo 4-7 muestra un ejemplo ms completo que introduce otra
caracterstica del archivo nsswitch.conf. La palabra clave [NOTFOUND=return]
especificada en la entrada hosts le dice al cliente NIS que devuelva si el elemento
deseado no pudo encontrarse en la base de datos de NIS o DNS. Esto es, el
cliente NIS continuar buscando en los archivos locales slo si las llamadas a los
servidores NIS y DNS fallan por alguna razn. Por tanto, cuando el servidor NIS
no responda se utilizarn los archivos locales slo en tiempo de ejecucin y como
copia de seguridad.
Ejemplo 4-7. Archivo nsswitch.conf de Ejemplo
#/etc/nsswitch.conf
#
hosts:nisdns[NOTFOUND=return]files
networks:nis[NOTFOUND=return]files
services:filesnis
protocols:filesnis
rpc:filesnis
LINUX
Mayo 2004
importante para otros propsitos, como montar particiones NFS desde otros
nodos de su red.
Si alguno de los IDs numricos de /etc/passwd o group difiere de los de los
mapas, debe ajustar el dueo de todos los archivos que pertenezcan a ese
usuario. Primero, debe cambiar todos los uids y gids de passwd y group a los
nuevos valores, luego mirar que todos los archivos que pertenecen a los usuarios
han cambiado, y cambiar su dueo. Suponga que news tena un ID de usuario de
9 y que okir tena un ID de usuario de 103, y que fueron cambiados a otro valor;
luego puede ejecutar las siguientes rdenes como root:
#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 estas ordenes con el nuevo archivo passwd instalado,
y que rena todos los archivos antes de cambiar el dueo de alguno de ellos.
Para actualizar los grupos dueos de los archivos, utilice un mtodo similar con
gid en vez de uid y chgrp en vez de chown.
Una vez que haya hecho esto, los uids y gids de su sistema concordarn con los
de todos los nodos de su dominio NIS. El siguiente paso ser aadir a
nsswitch.conf las lneas de configuracin que habilitan la bsqueda NIS de la
informacin de usuario y grupo:
#/etc/nsswitch.conftratamientodepasswdygroup
passwd:nisfiles
group:nisfiles
LINUX
Mayo 2004
Con la glibc 2.x y NYS se puede ignorar los parmetros del registro de un usuario
recibido desde el servidor NIS creando entradas con un + antes del nombre de
ingreso, y excluir usuarios especficos creando entradas con un - antes del
nombre de ingreso. Por ejemplo, las entradas:
+stuart::::::/bin/jacl
-jedd::::::
LINUX
Mayo 2004
simblicos de los usuarios y los grupos dueos de un archivo; esto es, para cada
uid y gid que se encuentra, tiene que consultar al servidor NIS. Una consulta NIS
tarda algo ms que la bsqueda equivalente en un archivo local. Puede
encontrarse con que al compartir la informacin de passwd y group mediante NIS
se produce una reduccin significativa del rendimiento de algunos programas que
utilizan esta informacin de manera frecuente.
Y esto no es toda la historia. Imagine qu ocurrira si una usuaria quiere cambiar
su contrasea. Normalmente invocar la orden passwd, que lee la nueva
contrasea y actualiza el fichero local passwd. Esto es imposible con NIS, ya que
ese archivo ya no est disponible localmente, pero hacer que los usuarios tengan
que ingresar en el servidor NIS cada vez que quieran cambiar su contrasea
tampoco es una opcin. Es por esto que NIS proporciona un sustituto para
passwd llamado ypasswd, que maneja los cambios de contrasea bajo NIS.
Para cambiar la contrasea en el nodo servidor, contacta con el demonio
yppasswdd de ese nodo mediante RPC, y le proporciona la informacin de la
contrasea actualizada. Normalmente se instala yppasswd sobre el programa
normal haciendo algo as:
#cd /bin
#mv passwd passwd.old
#ln yppasswd passwd
LINUX
Mayo 2004
LINUX
Mayo 2004
Si falta la palabra nfs en esta lista, tendr que compilar su propio ncleo con NFS
habilitado, o quizs necesitar cargar el mdulo del ncleo si su soporte de NFS
fue compilado como un mdulo.
4.3.2. Montando un Volumen NFS
El montaje de volmenes NFS se parece mucho al de los sistemas de archivos
comunes. Invoque mount usando la siguiente sintaxis:
234
LINUX
Mayo 2004
En ausencia de una entrada en fstab, las llamadas a mount parecen muy feas.
Por ejemplo, suponga que monta su directorio inicial de usuario desde una
mquina llamada moonshot, la cual usa un tamao de bloque de 4 K para las
operaciones de lectura/escritura. tendra que incrementar el tamao del bloque a
8 K para obtener un mejor rendimiento escribiendo la orden:
#mount moonshot:/home /home -o rsize=8192,wsize=8192
LINUX
Mayo 2004
LINUX
Mayo 2004
LINUX
Mayo 2004
uid/gid . Por ejemplo, ste es el caso cuando usa NIS para distribuir la informacin
passwd a todos los anfitriones de su red de rea local.
Sin embargo, en algunas ocasiones, los IDs en los diferentes anfitriones no
coinciden. En lugar actualizar los uids y gids del cliente para que coincidan con los
que hay en el servidor, puede usar el demonio mapeador rpc.ugidd para
solucionar las disparidades. Usando la opcin map_daemon, puede mandar a
rpc.nfsd que mapee el espacio uid/gid del servidor al espacio uid/gid del cliente
con la ayuda de rpc.ugidd en el cliente.
rpc.ugidd Es un servidor basado en RPC que se inicia desde sus guiones de
arranque de la red, como rpc.nfsd y rpc.mountd:
if[x/usr/sbin/rpc.ugidd];then
/usr/sbin/rpc.ugidd;echon"ugidd"
fi
Cada lnea define un directorio y los anfitriones a los que se les permite montarlo.
Un nombre de anfitrin es usualmente un nombre de dominio completamente
cualificado pero puede contener adicionalmente los comodines * y ? los cuales
238
LINUX
Mayo 2004
239
LINUX
Mayo 2004
La Tabla 4-2 relaciona los juegos de protocolos XNS, Novell y TCP/IP en trminos
de la funcin que realizan. Las relaciones son slo una aproximacin, pero
240
LINUX
Mayo 2004
Si quiere que Linux soporte el sistema de archivos NCP para que pueda montar
volmenes NetWare remotos, debe seleccionar adicionalmente estas opciones:
Filesystems>
[*]/procfilesystemsupport
<*>NCPfilesystemsupport(tomountNetWarevolumes)
241
LINUX
Mayo 2004
http://metalab.unc.edu/
en
el
fichero
/pub/Linux/system/filesystems/ncpfs/ipx.tgz.
Normalmente, un script rc ejecuta las herramientas IPX en tiempo de arranque.
Puede que su distribucin haga esto por usted si ha instalado el paquete
precompilado.
III.- La Orden ipx_configure
Cada interfaz IPX debe saber a qu red IPX pertenece y qu tipo de trama utilizar
para IPX. Todo nodo que soporte IPX tiene al menos una interfaz que el resto de
la red utilizar para referirse a l, conocido como la interfaz primaria. El soporte de
IPX del ncleo de Linux proporciona una manera de configurar automticamente
242
LINUX
Mayo 2004
Las opciones Auto Primary y Auto Interface estn apagadas por defecto. Para activarlas y
permitir la configuracin automtica, simplemente hay que proporcionar argumentos
como stos:
#ipx_configure --auto_interface=on --auto_primary=on
LINUX
Mayo 2004
interfaces
manualmente,
utilizando
la
orden
ipx_interface
descrito
acontinuacin.
IV.- La Orden ipx_interface
La orden ipx_interface se utiliza para aadir, modificar y borrar manualmente la
capacidad IPX de un dispositivo de red existente. Debe utilizar ipx_interface
cuando el mtodo de configuracin automtica descrito hace un momento no le
funcione, o cuando no quiera abandonar la configuracin de interfaz a la suerte.
ipx_interface le permite especificar la direccin de red IPX, el estado de la
interfaz primaria, y el tipo de trama IPX que utilizar un dispositivo de red. Si est
creando mltiples interfaces IPX, necesitar un ipx_interface para cada una.
La sintaxis de la orden para aadir IPX a un dispositivo existente es sencilla y se
explica mejor con un ejemplo. Aadamos IPX a un dispositivo Ethernet existente:
#ipx_interface add -p eth0 etherII 0x32a10103
LINUX
Mayo 2004
LINUX
Mayo 2004
Este orden aadira una ruta a la red IPX remota 203a41bc a travs del enrutador
de nuestra red local 31a10103 con una direccin de nodo 00002a02b102.
Puede encontrar la direccin de nodo de un enrutador haciendo un uso juicioso de
la orden tcpdump con el argumento e, para mostrar las cabeceras de la capa de
246
LINUX
Mayo 2004
LINUX
Mayo 2004
Permitiendo a estos nodos que tengan una red virtual con direcciones de nodo
virtuales, que son una
248
LINUX
Mayo 2004
Este orden creara una red IPX interna con direccin 10000010 y direccin de
nodo 000000000001. La direccin de red, como cualquier otra direccin de red
IPX, debe ser nica en su red. La direccin de nodo es completamente arbitraria,
ya que normalmente slo habr un nodo en la red. Todo nodo debe tener slo una
red IPX interna, y siempre ser la red primaria.
Para eliminar una red IPX interna, use:
#ipx_internal_net del
Una red IPX interna no le servir absolutamente para nada a menos que su nodo
proporcione un servicio y adems tenga ms de una interfaz IPX activa.
249
LINUX
Mayo 2004
Este orden monta todos los volmenes del servidor de ficheros ALES_F1 sobre el
directorio /mnt/cerveceria, utilizando el nombre de ingreso rick con la contrasea
d00-b-gud. Normalmente, se pone el setuid de la orden ncpmount a root, y as
puede ser utilizado por cualquier usuario de Linux. Por defecto, ese usuario posee
la conexin y slo l o root podr desmontarla.
NetWare incorpora la nocin de volumen, que es anloga a un sistema de
archivos en Linux. Un volumen NetWare es la representacin lgica de una
sistema de ficheros NetWare, que puede ser una particin de disco individual o
estar diseminada por muchas particiones. Por defecto, el soporte de NCPFS de
Linux trata a los volmenes como subdirectorios de una sistema de archivos
lgico mayor representado por todo el servidor de archivos. La orden ncpmount
250
LINUX
Mayo 2004
hace que todos los volmenes NetWare del servidor de archivos montado
aparezcan como un subdirectorio sobre el punto de montaje. Esto es conveniente
si quiere acceso a todo el servidor, pero por razones tcnicas complejas no podr
reexportar estos directorios usando NFS, en el caso de que desee hacerlo. En un
momento discutiremos una alternativa ms compleja que resuelve este problema.
La Orden ncpmount en Detalle
ncpmount tiene una gran nmero de opciones de lnea de ordens que le ofrecen
bastante flexibilidad a la hora de administrar sus montajes NCP. La ms
importante de todas se describe en la Tabla 4-3.
251
LINUX
Mayo 2004
El servidor es el nombre del servidor de ficheros que contiene los volmenes que
se desean montar. La id es el nombre de acceso de su cuenta en ese servidor. El
campo clave es opcional. Si no es proporcionado, la orden ncpmount le pide al
usuario la clave cuando intenta montar. Si se especifica el campo clave con un
carcter , no se utiliza ninguna clave; esto es equivalente al argumento de lnea
de orden n. Puede proporcionar cualquier nmero de entradas, pero el servidor de
archivos debe ser nico. La primera entrada tiene una significacin especial. la
orden ncpmount utiliza el argumento de lnea de orden S para determinar qu
entrada de ~/.nwclient usar. Si no se especifica ningn servidor utilizando el
argumento S, se considera la primera entrada de ~/.nwclient, y es tratada como su
servidor preferido. Debe situar el servidor de archivos que monte ms
frecuentemente en la primera posicin del archivo.
LINUX
Mayo 2004
Esta orden, en
LINUX
Mayo 2004
Aqu, un usuario con nombre de acceso pepe le enva una tentadora invitacin a
la persona que usa la cuenta supervisor en el servidor de archivos ALES_F1. Si
no los proporcionamos, se utilizar nuestro servidor de archivos y credenciales de
acceso predeterminados.
Leyendo y Manipulando los Datos del Bindery
Todo servidor de archivos NetWare mantiene una base de datos con la
informacin sobre sus usuarios y su configuracin. Esta base de datos se llama
bindery. Linux proporciona un conjunto de herramientas que permiten leerla, y si
254
LINUX
Mayo 2004
255
LINUX
Mayo 2004
LINUX
Mayo 2004
Una manera fcil de conseguir esto sin que el usuario lp tenga que establecer su
propia conexin e ingreso en el sistema es especificar lp como el dueo de una
conexin establecida por otro usuario. Se lista un ejemplo completo de cmo
configurar el sistema de impresin de Linux para que atienda trabajos de
impresin de clientes a travs de NetWare en tres pasos:
1. Escribir un guin de encapsulamiento (wrapper).
El archivo /etc/printcap no permite que se le pasen opciones a los filtros. Por
tanto, necesita escribir un pequeo guin que invoque la instruccin que desea
junto con sus opciones. El guin de encapsulamiento puede ser tan simple como:
#!/bin/sh
#p2pslasersencilloscriptpararedirigirstdinala
#colaPSLASERenelservidorREDS01
#
/usr/bin/nprintSREDS01UstuartqPSLASER
#
257
LINUX
Mayo 2004
TESTAA02009E
Q2EF0200D9
NPI223761_P1DA03007C
Q1F1060004
IDATA0D0A003B
NPI223761_P3D80A0031
Nuestro ejemplo muestra una lista de las colas de impresin disponibles para el
usuario guest en el servidor de ficheros ALES_F1.
Para ver los trabajos de una cola de impresin, utilice la instruccin pqstat. Toma
como argumento el nombre de la cola de impresin, y lista todos los trabajos de
esa cola. Opcionalmente, puede proporcionarle otro argumento indicando cuntos
trabajos de la lista quiere mostrar. La siguiente salida es de ejemplo:
$pqstatSALES_F1NPI223761_P1
Server:ALES_F1Queue:NPI223761_P1QueueID:6A0E000C
SeqNameDescriptionStatusFormJobID
1TOTRANLyXdocumentpropuesta.lyxActive002660001
Podemos ver que slo hay un trabajo de impresin en la cola, que pertenece al
usuario TOTRAN. El resto de las opciones incluyen una descripcin del trabajo, su
estado y su identificador de trabajo. la orden pqrm se utiliza para eliminar trabajos
de impresin de una cola de impresin especificada. Para eliminar el trabajo de la
cola de la que acabamos de obtener el estado, sera:
$pqrmSALES_F1NPI223761_P102660001
LINUX
Mayo 2004
En Linux hay dos emuladores libres para servidores de ficheros NetWare. lwared
ha sido desarrollado por Ales Dryak y mars_nwe por Martin Stover. Ambos
paquetes proporcionan una emulacin elemental del servidor de ficheros NetWare
bajo Linux, permitiendo a clientes NetWare montar directorios de Linux exportados
como volmenes NetWare. Mientras que el servidor lwared es ms sencillo de
configurar, el servidor mars_nwe tiene ms caractersticas. La instalacin y
configuracin de estos paquetes es muy laboriosa y por lo tanto solo la
mencionamos.
4.5. Administracin deTaylor UUCP
UUCP fue diseado a finales de los aos setenta por Mike Lesk en los
laboratorios Bell de AT&T con el objetivo de crear una simple red sobre lneas de
telfonos para conectarse mediante llamadas telefnicas.
El propsito de esta seccin no es ofrecer una explicacin exhaustiva de las
opciones de la lnea de rdenes para las instrucciones de UUCP y lo que hacen,
sino darle una introduccin sobre cmo poner en marcha un nodo de UUCP. La
primera parte presenta una introduccin de cmo UUCP implementa ejecucin
remota y transmisin de archivos.
Sin embargo, asumiremos que usted est familiarizado con los programas de
usuario del paquete UUCP. stos son uucp y uux. Si no los conoce
suficientemente, consulte las correspondientes pginas de manual de cualquier
distribucin de Linux actualizada.
Aparte de los programas de usuario uucp y uux, el paquete UUCP contiene
algunas rdenes ms con fines nicamente administrativos. Se usan para
monitorizar el trfico UUCP en su nodo, eliminar archivos antiguos de registro o
crear estadsticas. No describiremos ninguna de estas utilidades porque son
perifricas a las tareas principales de UUCP. Adems, se encuentran bien
documentadas y su comprensin resulta bastante sencilla. De todos modos, hay
una tercera categora, que comprende los motores del UUCP. Se las conoce
como uucico (donde cico significa copy-in copy-out), y uuxqt, que ejecuta tareas
enviadas desde sistemas remotos.
4.5.1. Transferencias UUCP y ejecucin remota
259
LINUX
Mayo 2004
El concepto de tarea resulta vital para entender UUCP. Cada transferencia que
inicia un usuario con uucp o uux se llama tarea. Consta de una orden a ejecutar
en un sistema remoto, una recopilacin de archivos a transferir entre sitios o
ambas cosas.
Por ejemplo, la siguiente orden hace que UUCP copie el fichero netguide.ps a un
sistema remoto llamado pablo y ejecute la orden lpr en pablo para imprimir el
archivo:
$uux -r pablo!lpr !netguide.ps
Por lo general, UUCP no llama al sistema remoto de inmediato para llevar a cabo
una tarea (o cualquier otra cosa que pueda hacer con kermit). En cambio, guarda
la descripcin de la tarea de manera temporal. Esto se conoce como encolar. El
rbol de directorios bajo el que se guardan las tareas se llama por lo tanto
directorio de cola y se encuentra generalmente en /var/spool/uucp. En nuestro
ejemplo, la descripcin de la tarea contendra informacin sobre la orden remota a
ejecutar (lpr), el usuario que orden la ejecucin y un par de elementos ms.
Adems de la descripcin de la tarea, UUCP tiene que guardar el archivo de
entrada netguide.ps.
La localizacin y nomenclatura exactas de los archivos de cola puede varias
dependiendo de algunas opciones en tiempo de compilacin. Los UUCPs
compatibles con HDB guardan por lo general los archivos de cola en el
subdirectorio /var/spool/uucp con el nombre del sistema remoto. Cuando se
compilan para la configuracin Taylor, UUCP crea subdirectorios bajo el directorio
de cola especfico del sitio para diferentes tipos de archivos de cola.
A intervalos regulares, UUCP llama al sistema remoto. Cuando se establece una
conexin con el sistema remoto, UUCP transfiere los archivos en los que se
describe la tarea, adems de los archivos de entrada. Las tareas entrantes no se
ejecutarn de inmediato, sino slo tras haber terminado la conexin. La ejecucin
la gestion uuxqt, quien tambin se ocupa de redirigir cualquier tarea designada a
otro sitio.
Para distinguir entre tareas ms o menos importantes, UUCP asocia un nivel a
cada tarea. Se trata de un nico dgito de 0 a 9, de A a Z, y de a a z, en
260
LINUX
Mayo 2004
LINUX
Mayo 2004
para
ser
capaz
de
llevar
cabo
todas
las
transferencias
LINUX
Mayo 2004
263
LINUX
Mayo 2004
time especifica las horas a las que puede llamarse al sistema remoto. chat
describe la macro del dilogo de entrada la secuencia de caracteres que deben
intercambiarse para permitir que uucico entre en pablo.
Volveremos a las macros ms tarde. El elemento port simplemente nombra una
entrada en el archivo port. (Acuda a Figura 4-2.) Puede asignar cualquier nombre
siempre que haga referencia a una entrada vlida en port.
El archivo port contiene informacin especfica a la propia conexin. Para
conexiones por mdem, describe el archivo de dispositivo a usar, el conjunto de
velocidades soportadas, y el tipo de equipo de marcacin conectado al puerto. La
entrada a continuacin describe /dev/ttyS1 (o sea, el puerto COM 2), en el cual
hay un mdem NakWell conectado que es 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 archivo sys.
#/etc/uucp/portpuertosdeUUCP
#/dev/ttyS1(COM2)
portserial1
typemodem
device/dev/ttyS1
speed38400
dialernakwell
LINUX
Mayo 2004
nmero de telfono. Una vez ms, esto se especifica como una macro de dilogo.
Por ejemplo, la entrada para el anterior NakWell puede parecerse a esta:
#/etc/uucp/dialinformacinpormarcador
#mdemsNakWell
dialernakwell
chat""AT&FOKATDT\TCONNECT
La lnea que empieza con chat especifica el dilogo del mdem, que no es sino la
secuencia de rdenes enviadas y recibidas del mdem para inicializarlo, y para
hacerle marcar el nmero deseado. La secuencia \T ser reemplazada con el
nmero de telfono por el programa uucico.
Para dar una idea a grandes rasgos de cmo utiliza uucico estos archivos de
configuracin, suponga que utiliza la orden:
$uucico -s pablo
LINUX
Mayo 2004
266
LINUX
Mayo 2004
LINUX
Mayo 2004
usar un nombre UUCP que no tenga nada que ver con su nombre de dominio
completamente cualificado.
No obstante, asegrese de no emplear un nombre de sitio no cualificado en
direcciones de correo a menos que lo haya registrado como su nombre UUCP
oficial. En el mejor de los casos, el correo a una mquina UUCP no registrada se
perder en algn enorme agujero negro digital. Si emplea un nombre que alguien
ya est usando, el correo se dirigir a ese lugar causando al administrador del
correo de ese lugar un sinfn de dolores de cabeza.
De manera predeterminada, UUCP usa el nombre especificado como hostname
como el nombre UUCP del sitio. Este nombre suele adjudicarlo una orden en los
guiones rc durante el arranque del sistema, y se suele guardar en /etc/hostname.
Si su nombre UUCP difiere del de su mquina, tendr que usar la opcin
hostname en el archivo config para comunicarle a uucico su nombre UUCP. Los
archivos de los que UUCP obtiene su informacin los podemos ver en el
apndice.
Cuando crea haber configurado su sistema UUCP completamente, puede
compobar su configuracin con la herramienta uuchk (que puede encontrar en
/usr/lib/uucp). uuchk lee sus archivos de configuracin y le muestra un informe
detallado de los valores de configuracin usados para cada sistema.
Opciones generales de configuracin usando el fichero config
Normalmente no usar este archivo para otra cosa que especificar el nombre de
su nodo UUCP. De manera predeterminada, UUCP usar el nombre que haya
establecido con la orden hostname, pero por lo general resulta una buena idea
especificar el nombre UUCP explcitamente. He aqu un archivo config de
ejemplo:
#/usr/lib/uucp/configprincipalficherodeconfiguracinUUCP
hostnamevstout
Por supuesto, tambin existen otros parmetros configurables aqu, como los
referentes al nombre del directorio de colas, o los nombres de acceso para el
UUCP annimo. Esto ltimo se describir posteriormente.
Cmo informar a UUCP sobre otros sistemas mediante el archivo sys
268
LINUX
Mayo 2004
uucico
puede
especificar
alternativas.
II.- Nmero de telfono
Si va a conectarse con el sistema remoto por va telefnica, en el campo phone se
especifica el nmero que debera marcar el mdem. Puede contener varios
separadores que interpretar el procedimiento de marcado de uucico. Un signo
de igual (=) significa esperar un tono de marcado secundario y un guin (-) genera
una pausa de un segundo. Algunas instalaciones telefnicas pueden atrancarse si
no se realizan pausas entre cdigos de acceso especiales y los nmeros de
telfono.
A menudo resulta conveniente usar nombres en vez de nmeros para describir los
cdigos de marcado segn la zona. El fichero dialcode le permite asociar un
nombre con un cdigo que use al especificar nmeros de telfono para las
mquinas remotas. Suponga que tiene el siguiente archivo dialcode:
#/usr/lib/uucp/dialcodetraduccindeloscdigosdemarcacin
269
LINUX
Mayo 2004
Bogoham024881
Coxton035119
Con estas traducciones, puede usar un nmero de telfono tal que Bogoham7732
en el archivo sys, que lo har probablemente algo ms legible y mucho ser
mucho ms fcil actualizar el cdigo de marcacin para Bogoham cada vez que
cambie.
III.- Puerto y Velocidad
Las opciones de puerto y velocidad se usan para elegir el dispositivo a usar para
llamar al sistema remoto y la velocidad mxima a la que debera ajustarse el
dispositivo. En una entrada de system se puede usar una opcin o varias de
manera conjunta. Cuando se busca un dispositivo adecuado en el fichero port,
slo se eligen los dispositivos con un nombre de puerto y/o rango de velocidad
que coincidan con los especificados.
Por lo general debera ser suficiente utilizar nicamente la opcin speed. Si slo
dispone de un dispositivo serie definido en port, uucico siempre toma el
adecuado por lo que slo tiene que especificar la velocidad deseada. Si tiene
varios mdems conectados a sus sistemas, con frecuencia no querr nombrar un
puerto concreto, porque si uucico encuentra que muchos coinciden prueba con
cada dispositivo hasta que encuentra uno que no se est usando.
IV.- El dilogo de entrada
Antes ya nos encontramos con la macro del dilogo de entrada, que le dice a
uucico cmo entrar en el sistema remoto. Consiste de una lista de palabras
clave, que especifican el texto que se espera y el que se enva por el proceso
local de uucico. El objetivo es hacer que uucico espere hasta que la mquina
remota enve una lnea 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 envo se dan alternativamente.
uucico automticamente aade un avance de lnea (\r) a cualquier texto enviado.
Por lo tanto, una macro de dilogo sencilla sera parecida a esta:
ogin:vstoutssword:catch22
270
LINUX
Mayo 2004
LINUX
Mayo 2004
LINUX
Mayo 2004
Taylor UUCP proporciona varios mtodos para restringir las horas a las que se
pueden efectuar llamadas a un sistema remoto. Una razn para hacer esto sera
por las limitaciones que el sistema remoto impone en sus servicios durante horas
de oficina, o simplemente para evitar las horas ms caras. Siempre se pueden
desactivar las restricciones con la opcin S o f en el programa uucico.
Por defecto, Taylor UUCP no permite conexiones a ninguna hora, as que usted
tiene que especificar algn horario en el archivo sys. Si no le importan las
restricciones, puede especificar la opcin time con un valor de Any en su archivo
sys. La manera ms sencilla de restringir los horarios de las llamadas es incluir
una entrada time seguida de una cadena formada por los subcampos da y hora.
Da puede ser una combinacin de Mo, Tu, We, Th, Fr, Sa, y Su. Tambin puede
especificar Any, Never, o Wk para los das laborables. La hora est formada por
dos valores de reloj de 24 horas separados por un guin. Especifican las horas
durante las que pueden efectuarse llamadas. La combinacin de estos elementos
se escribe sin espacios en blanco entre ellos. Se pueden especificar varios pares
da-hora separados por comas, tal y como se muestra en esta lnea:
timeMoWe03000730,Fr18052200
LINUX
Mayo 2004
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 (normalmente con rango
N) sern transferidas slo durante la noche y los fines de semana.
Al igual que time, la orden timegrade toma un intervalo entre reintentos de
minutos como una tercera variable opcional.
De todas formas, hay que hacer una observacin sobre los rangos de la cola.
Primero, la opcin timegrade slo se afecta a lo que sus sistemas envan; el
sistema remoto puede transferir lo que quiera. Puede usar la opcin calltimegrade para solicitarle de manera explcita que enve solamente tareas por
encima de un determinado rango de cola; pero no hay hay ninguna garanta de
que vaya a obedecer a su peticin.
De manera similar, el campo timegrade no se comprueba cuando llama un
sistema remoto, por lo que se le enviar cualquier tarea de la cola que sea para
l. De todos modos, el sistema remoto puede solicitar explcitamente a su uucico
que se ocupe nicamente de cierto rango de la cola.
Identificar dispositivos disponibles mediante el archivo port
El archivo port hace saber a uucico los puertos disponibles. Se trata normalmente
de puertos de mdem, pero tambin se soportan otros tipos como las lneas serie
y los sockets de TCP.
274
LINUX
Mayo 2004
Al igual que el fichero sys, port est formado por entradas separadas que
comienzan con la palabra clave port seguida del nombre del puerto. Este nombre
tambin puede usarse en la sentencia port del archivo sys.
No es necesario que el nombre sea nico; si hay muchos puertos con el mismo
nombre, uucico probar con cada uno hasta que encuentre alguno que pueda
usar.
La orden port debera estar seguida inmediatamente por la sentencia type, que
indica qu tipo de puerto se describe. Tipos vlidos son modem, direct para
conexiones directas y tcp para sockets de TCP. De no existir la orden port se
usar de manera predeterminada mdem como tipo de puerto.
Tanto para el mdem como para los puertos directos, debe especificar el
dispositivo para llamar por medio de la directiva device. Normalmente, se trata del
nombre del archivo especial de dispositivo del directorio /dev, como /dev/ttyS1.
En el caso de un mdem, la entrada del puerto tambin determina qu tipo de
mdem hay conectado al puerto.
Los diferentes tipos de mdem tienen que configurarse de manera diferente.
Incluso los mdems que dicen ser compatibles con Hayes no son siempre
realmente compatibles unos con otros. Por lo tanto, tiene que comunicarle a
uucico cmo inicializar el mdem y hacerle marcar el nmero deseado. Taylor
UUCP mantiene las descripciones de todos los marcadores en un archivo llamado
dial. Para usar cualquiera de stos, tiene que especificar el nombre del marcador
mediante la orden dialer.
A veces querr usar un mdem de diferentes maneras dependiendo de a qu
sistema llame. Por ejemplo, algunos mdems antiguos no entienden cuando un
mdem rpido trata de conectar a 56 kbps; simplementen dejan caer la lnea en
vez de negociar una conexin a 9.600 bps, por ejemplo. Cuando sabe que el sitio
pesado usa un mdem tan tonto, tiene que configurar su mdem de una manera
diferente cuando le llame. Para esto, necesita una entrada de puerto adicional en
el archivo port en la que especificar un marcador diferente.
Ahora puede darle al nuevo puerto un nombre diferente, como serie1-lento y usar
la directiva port en la entrada del sistema pesado en sys.
Otra manera de distinguir los puertos es por la velocidad que usan. Por ejemplo,
las dos entradas de puerto de la situacin anterior pueden ser as:
275
LINUX
Mayo 2004
#mdemNakwell;conectaraaltavelocidad
portserie1#portname
typemodem#modemport
device/dev/ttyS1#thisisCOM2
speed115200#supportedspeed
dialernakwell#normaldialer
#mdemNakwell;conectarabajavelocidad
portserie1#portname
typemodem#modemport
device/dev/ttyS1#thisisCOM2
speed9600#supportedspeed
dialernakwellslow#don'tattemptfastconnect
La entrada de sistema para el sitio pesado dara ahora serie1 como el nombre del
puerto, pero solicitara usarlo slo a 9.600 bps. uucico usa entonces
automticamente la segunda entrada de puerto. Al resto de sitios que tengan una
entrada de 115.200 bps en la entrada del sistema se les llamar usando la
primera entrada de puerto. De manera predeterminada, se usar la primera
entrada con una velocidad que coincida.
4.5.3. Controlar el acceso a las prestaciones de UUCP
UUCP es un sistema bastante flexible. Con esa flexibilidad viene la necesidad de
controlar cuidadosamente el acceso a sus prestaciones para prevenir abusos,
tanto intencionados como accidentales. Las principales propiedades a tener en
cuenta por el administrador de UUCP son la ejecucin de rdenes remotas, la
transferencia de archivos y el reenvo. Taylor UUCP proporciona medios para
limitar la libertad de mquinas UUCP remotas al aprovechar cada una de estas
prestaciones. Con una cuidadosa seleccin de los permisos, el administrador de
UUCP puede asegurarse de preservar la seguridad de la mquina.
Ejecucin de rdenes
Es tarea de UUCP copiar ficheros de un sistema a otro y solicitar la ejecucin de
ciertas rdenes en sistemas remotos. Evidentemente, usted como administrador
querr controlar qu derechos garantiza a otros sistemas permitirles ejecutar
cualquier orden que elijan en su sistema definitivamente no es una buena idea.
De manera predeterminada, las nicas rdenes que permite ejecutar Taylor UUCP
a otros sistemas en su mquina son rmail y rnews, que se usan habitualmente
para intercambiar correo-e y noticias de Usenet sobre UUCP. Para cambiar el
conjunto de rdenes para un sistema en particular, puede usar la palabra clave
276
LINUX
Mayo 2004
Transferencias de archivos
Taylor UUCP tambin le permite ajustar las transferencias de archivos con un
gran detalle. De manera extrema, puede desactivar las transferencias hacia y
desde un sistema en particular. Simplemente configure request como no, y el
sistema remoto no podr ni descargar archivos de su sistema ni enviarle fichero
alguno. De manera similar, puede prohibir a sus usuarios que transfieran archivos
hacia o desde un sistema configurando transfer como no. De manera
predeterminada, se permite a los usuarios de los sistemas local y remoto tanto
cargar como descargar archivos.
Adems, puede configurar hacia y desde qu directorios pueden copiarse
archivos. Normalmente querr restringir el acceso desde los sistemas remotos a
una jerarqua de un nico directorio, pero permitiendo a sus usuarios el envo de
archivos desde sus directorios de usuario. Comnmente, se permite a los
usuarios remotos recibir archivos slo desde el directorio UUCP pblico
/var/spool/uucppublic. ste es el lugar tradicional donde poner los archivos
disposicin pblica, de manera similar a los servidores FTP en Internet.
Taylor UUCP ofrece cuatro rdenes diferentes para configurar los directorios de
envo y recepcin de archivos. Se trata de: local-send, que especifica la lista de
directorios desde los que un usuario puede solicitar a UUCP que enve archivos;
local-receive, que proporciona una lista de directorios desde los que un usuario
puede solicitar recibir archivos; y remote-send y remote-receive, que se
comportan de manera anloga desde un sistema externo. Observe el siguiente
ejemplo:
277
LINUX
Mayo 2004
systempablo
...
localsend/home~
localreceive/home~/receive
remotesend~!~/incoming!~/receive
remotereceive~/incoming
LINUX
Mayo 2004
especifica una lista de sitios hacia o desde los que el sistema puede solicitarle
reenviar tareas. Por ejemplo, el administrador UUCP de seci tendra que aadir
las siguientes lneas al archivo sys para permitir a pablo solicitar archivos desde
uchile:
####################
#pablo
systempablo
...
forwarduchile
####################
#uchile
systemuchile
...
forwardtopablo
LINUX
Mayo 2004
Para servir a sistemas UUCP que se conecten con su sitio sobre TPC, tendr que
configurar inetd de forma que gestione las conexiones entrantes por el puerto
uucp aadiendo la siguiente lnea a su /etc/inetd.conf:
uucpstreamtcpnowaitroot/usr/sbin/tcpd/usr/lib/uucp/uucicol
LINUX
Mayo 2004
diciendo
Handshake
failed
(RBADSEQ)
(Negociacin
fallida
(RBADSEQ)).
Para activar la comprobacin de secuencias de llamada, aada la siguiente orden
a la entrada del sistema:
281
LINUX
Mayo 2004
#activarcomprobacindesecuenciasdellamada
sequencetrae
282
LINUX
Mayo 2004
unknownmaxremotedebugnone
unknowncommandpath/usr/lib/uucp/anonbin
unknowncommandsrmail
LINUX
Mayo 2004
LINUX
Mayo 2004
Usualmente, los valores por omisin funcionan bien, pero puede no ser ptimo
para su configuracin. El protocolo g, por ejemplo, usa tamaos de ventanas de 1
a 7, y tamaos de paquetes en potencias de 2 desde 64 a 4096. Si su lnea
telefnica es tan ruidosa que ignora el 5 por ciento de los paquetes,
probablemente debera disminuir el tamao de los paquetes y de la ventana. Sin
embargo, en lneas de telfono muy buenas el hecho de enviar acuses de recibo
por cada 128 bytes puede resultar un desperdicio, as que podra incrementar el
tamao de los paquetes a 512 o incluso 1024. La mayora de los binarios que se
incluyen en las distribuciones de Linux usan de manera predeterminada un
tamao de ventana 7 y paquetes de 128 bytes.
Taylor UUCP le permite ajustar los parmetros con la orden protocol-parameter
en el fichero sys. Por ejemplo, para ajustar el tamao de paquete a 512 en el
protocolo g cuando se hable con pablo, tendr que aadir:
systempablo
...
protocolparametergpacketsize512
LINUX
Mayo 2004
Esto requerir que cualquier conexin entrante o saliente por este puerto use i, g
o G. Si el sistema remoto no soporta ninguno de stos la negociacin fallar.
4.5.6. Resolucin de problemas
En esta seccin se describe lo que puede ir mal con su conexin UUCP y se
sugieren lugares donde corregir el error. Aunque estos problemas suelen aparecer
con frecuencia hay muchas ms cosas que pueden fallar de las que hemos
listado.
Si tiene algn problema active la depuracin con xall, y mire la salida de Debug en
el directorio de cola.
Este archivo debera ayudarle a reconocer rpidamente el problema. A menudo
resulta de ayuda activar el altavoz del mdem cuando no se conecta. Con
mdems compatibles con Hayes puede activar el altavoz aadiendo ATL1M1 OK
al dilogo de mdem en el archivo dial.
La primera comprobacin debera ser siempre si todos los permisos de archivos
son los correctos. uucico debera ser setuid uucp y todos los archivos de
/usr/lib/uucp, /var/spool/uucp y /var/spool/uucppublic debera tener a uucp como
propietario. Hay tambin algunos archivos ocultos en el directorio de cola de los
que uucp debe ser propietario igualmente.
Cuando est seguro de que los permisos de todos los archivos son los correctos y
siga teniendo problemas podr empezar entonces a interpretar los mensajes de
error de una manera ms literal. Echaremos ahora un vistazo a los problemas y
errores ms comunes.
I.- uucico sigue diciendo Wrong Time to Call
Esto probablemente signfica que en la entrada de sistema en sys no especific
una orden time que determina cundo se puede llamar al sistema remoto o
286
LINUX
Mayo 2004
LINUX
Mayo 2004
misma sea vlida. Recuerde que tiene que escribir dos barras invertidas para
enviar una al mdem.
V.- Su mdem intenta marcar pero no lo consigue
Inserte una pausa en el nmero de telfono, especialmente si tiene que marcar
una secuencia especial para obtener el acceso a una lnea exterior desde una red
telefnica corporativa. Asegrese de estar usando el tipo de marcado correcto, ya
que algunas redes telefnicas slo soportan un tipo de marcado. De manera
adicional, compruebe un par de veces el nmero de telfono para asegurarse de
que es el correcto.
VI.- Se entra con xito pero falla la negociacin
Esta situacin puede deberse a diversos problemas. Debera poder obtener
bastante informacin de la salida del archivo de registro. Mire qu protocolos
ofrece el sitio remoto (enva una cadena P protlist durante la negociacin). Para
que la negociacin se lleve a cabo con xito ambas mquinas deben soportar al
menos un protocolo comn, as que compruebe que efectivamente esto sea as.
Si el sistema remoto enva RLCK significa que hay un archivo de bloqueo suyo en
el sistema remoto. Si no est conectado a l por otra lnea solicite al administrador
del sistema remoto que lo elimine.
Si el sistema remoto enva RBADSEQ, significa que la comprobacin de
secuencias de llamada est activada para usted pero los nmeros no coinciden.
Si le enva RLOGIN es que no le permite entrar bajo esa identidad.
4.5.7. Archivos de registro y depuracin
Cuando compile UUCP para registrar los eventos a la Taylor, dispondr de tres
ficheros globales nicamente, todos ellos bajo el directorio de cola. El archivo de
registro principal es Log y contiene toda la informacin sobre las conexiones
establecidas y los archivos transferidos. Un extracto tpico podra ser algo como
esto:
uucicopablo(1994052817:15:01.66539)Callingsystempablo(portcua3)
uucicopablo(1994052817:15:39.25539)Loginsuccessful
uucicopablo(1994052817:15:39.90539)Handshakesuccessful
(protocol'g'packetsize1024window7)
uucicopablopostmaster(1994052817:15:43.65539)ReceivingD.pabloB04aj
288
LINUX
Mayo 2004
uucicopablopostmaster(1994052817:15:46.51539)ReceivingX.pabloX04ai
uucicopablopostmaster(1994052817:15:48.91539)ReceivingD.pabloB04at
uucicopablopostmaster(1994052817:15:51.52539)ReceivingX.pabloX04as
uucicopablopostmaster(1994052817:15:54.01539)ReceivingD.pabloB04c2
uucicopablopostmaster(1994052817:15:57.17539)ReceivingX.pabloX04c1
uucicopablo(1994052817:15:59.05539)Protocol'g'packets:sent15,
resent0,received32
uucicopablo(1994052817:16:02.50539)Callcomplete(26seconds)
uuxqtpablopostmaster(1994052817:16:11.41546)ExecutingX.pabloX04ai
(rmailokir)
uuxqtpablopostmaster(1994052817:16:13.30546)ExecutingX.pabloX04as
(rmailokir)
uuxqtpablopostmaster(1994052817:16:13.51546)ExecutingX.pabloX04c1
(rmailokir)
289
LINUX
Mayo 2004
Esta parte es muy importante ya que se dan los permisos para que se pueda
acceder a la cache. Tenemos que fijarnos en dos lneas que se han puesto para
dar permisos a las IPs del 192.168.0.1 --> 192.168.0.255 como ejemplo.
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl mipc src 192.168.0.0/255.255.255.0
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
acl SSL_ports port 443 563
acl Safe_ports port 80 21 443 563 70 210 1025-65535
acl Safe_ports port 280
# http-mgmt
# gss-http
# filemaker
# multiling http
290
LINUX
Mayo 2004
2.-
Ejecutar
el
Squid
para
que
funcione
partir
de
ese
instante.
291
LINUX
Mayo 2004
request_body_max_size 512 KB
reply_body_max_size 512 KB
Ahora lo que nos interesa es que al arrancar el Linux nos ejecute el archivo que
hemos creado antes 'compartir'. Nos vamos al fichero /etc/rc.d/rc.local, lo
editamos y aadimos al final del todo antes de que ponga 'fi' esta linea:
[...]
cp -f /etc/issue /etc/issue.net
echo >> /etc/issue
# ---aqu empieza lo que aadimos------#compartir conexin a internet
/usr/bin/compartir
292
LINUX
Mayo 2004
localhost
192.168.0.100 servidor1
#Agregamos entradas por cada maquina remota que queremos conectar al
servidor con el par IP Nombre Terminal
192.168.0.101 terminal1
192.168.0.102 terminal2
En el /etc/hosts.allow --ojo que esto es peligrosillo hacerlo tan a lo "tonto" como
aqu se hace puesto que autorizamos a esas IP a conectarse a cualquier puerto
del servidor .. menos a los "paranoicos".
ALL: 127.0.0.1
except paranoid
ALL: 192.168.0.100
except paranoid
#Aqu ponemos las IP's de los ordenadores que queremos que sean terminales
de este servidor.
293
LINUX
Mayo 2004
ALL: 192.168.0.101
except paranoid
ALL: 192.168.0.102
except paranoid
en el /etc/hosts.deny
ALL: ALL
Se supone que tenemos como orden de lectura de estos scripts primero el deny y
luego el allow de modo que denegamos el acceso a TODO menos a los que
damos acceso explicito con el hosts.allow, por lo general no hay que tocar nada
porque suele venir as "de fabrica".
En el /etc/X11/xdm/xdm-config
Hemos de comentar una lnea con un ! , en concreto hemos de comentar la lnea
siguiente de este modo:
! DisplayManager.requestPort: 0
y por algun lado debe haber una linea que diga:
DisplayManager*authorize: false
Esa linea lo que hace es que autoriza a cualquiera a conectarse al servidor X. Lo
otro lo podemos dejar tal cual.
En el /etc/X11/xdm/Xservers debemos aadir un par de lneas "foreign" de este
modo.
:0 local /bin/nice -n -10 /usr/X11R6/bin/X -deferglyph 16
#Una lnea de foreign por cada terminal de este servidor X. Atencin porque aqu
hay que indicar el nombre de la maquina y no su IP, por eso es importante que
el /etc/hosts sea correcto
terminal1:0
foreign
terminal2:0
foreign
294
LINUX
Mayo 2004
295
LINUX
Mayo 2004
296
LINUX
Mayo 2004
Capitulo 5
Correo Electronico
La constante necesidad de comunicacion del ser humano lo ha llevado ha
desarrollar sistemas que reduzcan el tiempo para la transferencia de mensajes,
esto con el objetivo de agilizar y optimizar el trabajo. El resultado de esta
necesidad es el correo electronico que actualmente es uno de los medios mas
utilizados por el hombre.
5.0 Correo Electrnico
El transporte de correo electrnico ha sido uno de los usos ms prominentes del
trabajo en red desde que las primeras redes de trabajo se disearon. Empez
siendo un simple servicio que copiaba un fichero de una mquina a otra, y lo
aada al fichero mailbox (buzn de correo) del destinatario. Bsicamente, en esto
sigue consistiendo el correo electrnico (e-mail), aunque el crecimiento continuo
de la red y, consiguientemente, el aumento de la complejidad de enrutamiento, ha
hecho necesario un esquema ms elaborado.
Se han diseado varios estndares de intercambio de correo. Los anfitriones
conectados a Internet cumplen uno recogido en el RFC 822, complementado en
algunos RFCs que describen un mtodo independiente de la mquina para
transferir casi cualquier cosa, incluso grficos, ficheros de sonido y conjuntos de
caracteres especiales. El CCITT defini otro estndar, el X.400. Todava se usa en
entornos de grandes corporaciones y gobiernos, pero est siendo retirado
progresivamente.
Hay ya una gran cantidad de programas de transporte de correo para sistemas
Unix. Uno de los ms conocidos es sendmail, desarrollado por Eric Allman en la
Universidad de California, en Berkeley. Eric Allman ofrece ahora sendmail como
un producto comercial, pero el programa sigue siendo software libre.
Sendmail se ofrece como el agente de correo estndar en algunas distribuciones
de GNU/Linux. GNU/Linux tambin usa Exim, escrito por Philip Hazel de la
Universidad de Cambridge. Comparado con sendmail, Exim es bastante joven.
297
LINUX
Mayo 2004
Para la gran mayora de los sitios con requerimientos de correo electrnico, sus
capacidades son muy parecidas.
Ambos admiten un conjunto de archivos de configuracin que deben ser
adaptados a cada caso particular.
Aparte de la informacin que se necesita para hacer funcionar el subsistema de
correo (como puede ser el nombre de la computadora local), hay muchos ms
parmetros que deben ajustarse. El fichero principal de configuracin de
sendmail es muy difcil de entender al principio. Los ficheros de configuracin de
Exim son ms estructurados y son ms fciles de entender que los de sendmail,
pero no ofrecen soporte directo para UUCP y manejan slo direcciones de
dominio. Hoy esto no es una gran limitacin como lo era anteriormente; en
cualquier caso, para la mayora de los sitios, el trabajo requerido en configurar
ambos es aproximadamente el mismo.
5.1 Qu es un mensaje de correo?
Un mensaje de correo consta de un cuerpo, que es el texto que ha escrito el
remitente, y datos especiales que especifican 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 clasifican en dos categoras; en la primera
categora estn los datos que son especficos del medio de transporte, como son
las direcciones del remitente y del destinatario. A esto se le llama el sobre
(envelope). Puede ser modificado por el software de transporte a medida que el
mensaje se transmite.
La segunda categora es cualquier dato necesario para la manipulacin del
mensaje, que no es propio de ningn mecanismo de transporte, como es la lnea
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 datos al comienzo del
mensaje, formando lo que se denomina cabecera del mensaje (mail header). Se
separa del cuerpo del mensaje (mail body) por una lnea en blanco.
La mayora del software para transporte de correo que se emplea en el mundo
Unix usa un formato de cabecera definido en el RFC 822. Su propsito original
298
LINUX
Mayo 2004
era especificar un estndar para usar en la ARPANET, pero dado que fue
diseado para ser independiente del entorno de uso, ha sido adaptado fcilmente
a otras redes, incluyendo muchas basadas en UUCP.
Pero RFC 822 es slo el mnimo comn denominador. Otros estndares ms
recientes 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 MIME (Multipurpose Internet Mail Extensions,
Extensiones de Correo Multipropsito, descritas en el RFC-1341 y otros RFCs).
En todos esos estndares, la cabecera consiste en varias lneas, separadas por
caracteres de retorno de carro. Cada lnea consiste en un nombre de campo, que
comienza en la columna uno, y el campo en s, separados por dos puntos (:) y un
espacio. El formato y la semntica de cada campo vara dependiendo del nombre
del mismo. Los campos pueden aparecer en cualquier orden. Una cabecera de
correo tpico puede ser algo as:
Return-Path: <ph10@cus.cam.ac.uk>
Received: ursa.cus.cam.ac.uk (cusexim@ursa.cus.cam.ac.uk [131.111.8.6])
by al.animats.net (8.9.3/8.9.3/Debian 8.9.3-6) with ESMTP id
WAA04654
for <terry@animats.net>; Sun, 30 Jan 2000 22:30:01 +1100
Received: from ph10 (helo=localhost) by ursa.cus.cam.ac.uk with
local-smtp
(Exim 3.13 #1) id 12EsYC-0001eF-00; Sun, 30 Jan 2000 11:29:52 +0000
Date: Sun, 30 Jan 2000 11:29:52 +0000 (GMT)
From: Philip Hazel <ph10@cus.cam.ac.uk>
Reply-To: Philip Hazel <ph10@cus.cam.ac.uk>
To: Terry Dawson <terry@animats.net>, Andy Oram
<andyo@oreilly.com>
Subject: Electronic mail chapter
In-Reply-To: <38921283.A58948F2@animats.net>
Message-ID:
Pine.SOL.3.96.1000130111515.5800A-200000@ursa.cus.cam.ac.uk
LINUX
Mayo 2004
LINUX
Mayo 2004
LINUX
Mayo 2004
Los sitios de Internet estn ligados al estndar RFC-822, que requiere la conocida
notacin usuario@anfitrin.dominio para el cual anfitrin.dominio es el nombre de
dominio ms adecuado para el anfitrin. El smbolo que separa ambas partes
recibe el nombre de arroba en ingls at. Esta nomenclatura no especifica la ruta al
sistema anfitrin.
5.3.2 Formatos de direccin de correo obsoletos
En el entorno original UUCP la forma corriente era ruta!anfitrin!usuario, para el
cual la ruta indicaba una secuencia de anfitriones por los que el mensaje tena
que pasar antes de llegar a su anfitrin de destino. Este modelo recibe el nombre
de notacin bang path, porque en ingls coloquial, la exclamacin se conoce con
el nombre bang. Actualmente, muchas de las redes basadas en UUCP han
adoptado el formato RFC-822 y aceptan las direcciones de correo basadas en el
dominio.
Hay redes que usan otros sistemas de direccin. Por ejemplo, las basadas en
DECnet, usan los dos puntos (:) como elemento separador de sus partes,
resultando la direccin anfitrin::usuario. El estndar X.400 utiliza un estilo
totalmente diferente, describiendo al receptor por medio de pares de atributos
como pas y organizacin a la que ste pertenece.
En ltimo lugar, est FidoNet, en donde cada usuario se identifica con un cdigo
como 2:320/204.9, que consiste en cuatro nmeros que indican la zona donde se
encuentra (el 2 es para Europa), la red (el 320 se refiere a Pars y los
alrededores), el anfitrin (distribuidor local), y el punto de conexin (el ordenador
del usuario). Se puede trabajar con direcciones Fidonet en RFC-822; la anterior,
por ejemplo, se escribira de la siguiente manera
Thomas.Quinot@p9.f204.n320.z2.fidonet.org.
5.3.3 Cmo combinar distintos formatos de correo electrnico
Cuando a un conjunto de sistemas le sumamos gente inteligente, lo normal es
que se intente buscar maneras para poder conectarse entre s y trabajar en red.
Por consiguiente, existen distintos ruteadores de correo que vinculan dos
sistemas diferentes, de forma que el correo pueda ser transmitido de uno a otro.
302
LINUX
Mayo 2004
LINUX
Mayo 2004
LINUX
Mayo 2004
Supongamos que hay una organizacin dada, por ejemplo Foobar, Inc., que
quiere que todo su correo lo controle el servidor de correo de su ordenador. Por
ello llevar registros MX como el que se muestra a continuacin, en la base de
datos DNS:
green.foobar.com. IN MX 5 mailhub.foobar.com.
Esto da a conocer a mailhub.foobar.com como proveedor de correo para
green.foobar.com con un nivel de preferencia de 5. Un anfitrin que pretenda
enviar un mensaje a joe@green.foobar.com revisa la base de datos DNS y busca
el MX en el distribuidor de correo . Si no hay ningn MX con una preferencia
menor a 5, el mensaje se enva al distribuidor de correo, que lo entrega a green.
sta es una descripcin muy bsica de cmo funcionan los registros MX.
5.4.2 Enrutamiento en el entorno UUCP
El encaminamiento del correo en las redes UUCP es mucho ms complicado que
en Internet porque sus programas no realizan el enrutamiento ellos mismos.
Antes, todo el correo deba ser dirigido mediante las rutas bang path. stas
especificaban una lista de sistemas anfitriones separados por signos de
exclamacin y seguidos por el nombre del usuario, por los que el correo deba
pasar. Por ejemplo, para escribir a un usuario llamado Janet que se encuentra en
un ordenador llamado moria, usuaramos la ruta eek!swim!moria!janet. De esta
manera el mensaje se enviara desde su sistema anfitrin a eek,desde aqu a
swim, y por ltimo lugar a moria.
El inconveniente obvio de este sistema es que es necesario que el usuario
recuerde muchos ms datos sobre topologa de red que la que Internet requiere.
Y mucho peor son los cambios de la topologa como los enlaces eliminados o
anfitriones que desaparecen que produce fallos en los mensajes al no ser el
usuario consciente de estos cambios. Y por ltimo, si usted cambia de sitio o se
traslada, probablemente deber actualizar estas rutas.
Una razn por la que el enrutamiento desde la fuente se hizo necesario fue la
presencia de nombres de anfitrin ambiguos. Por ejemplo, imaginemos que hay
dos sitios llamados moria, uno en los Estados Unidos y otro en Francia. A cul
de los dos se referira moria!janet ahora? El problema quedara solucionado
especificando una ruta concreta para acceder a moria.
305
LINUX
Mayo 2004
El primer paso para evitar la ambigedad con los nombres de anfitrin fue el
proyecto de mapeado UUCP. Se encuentra en la Universidad de Rutgers y
registra de manera oficial todos los nombres de anfitrin, junto con informacin
sobre otros sistemas UUCP y su situacin geogrfica, procurando que no se
repita ninguno. Esta informacin en manos del proyecto de mapeado UUCP, se
publica bajo el nombre Mapas Usenet , y son distribuidos regularmente a travs
de Usenet. El formato tpico de entrada a un mapa (eliminados ya los
comentarios) es de la siguiente manera:
moria
bert(DAILY/2),
swim(WEEKLY)
Esta entrada indica que moria est vinculado a bert, al cual llama dos veces al
da, y a swim, al cual llama semanalmente. Explicaremos con ms detalle lo
referente al formato de archivo de mapas.
Con la informacin sobre la conectividad que obtenemos de los mapas, podemos
generar la totalidad de rutas existentes entre su sistema anfitrin y cualquier sitio.
Esta informacin se encuentra en el archivo de rutas, tambin conocido como
base ruta-alias. Supongamos que los mapas indican que usted puede ponerse en
contacto con bert a travs deernie; una entrada en forma de alias de ruta para
moria generado del retazo del mapa anterior podra ser de la siguiente manera:
moria ernie!bert!moria!%s
LINUX
Mayo 2004
307
LINUX
Mayo 2004
dominio (nombre que recibe esta tcnica) tanto el tamao de las bases de datos
de enrutamiento como las necesidades administrativas, se ven reducidos.
La ventaja principal al usar nombres de dominio en un entorno UUCP es que las
normas de conformidad con RFC-822 permiten el contacto entre las redes UUCP
en Internet. Actualmente, muchos dominios UUCP tienen vnculos con ruteadores
de Internet que actan como anfitrin. Es ms rpida y ms fiable la informacin
de enrutamiento si mandamos los mensajes por Internet, ya que stos anfitriones
pueden funcionar con DNS en lugar de Mapas Usenet.
Con el fin de se ser localizados desde Internet, los dominios basados en UUCP
muestran un registro MX . Por ejemplo, supongamos que moria pertenece al
dominio orcnet.org gcc2.groucho.edu acta como su ruteador a Internet. Entonces
moria utilizara gcc2 como anfitrin, para que toda la correspondencia dirigida a
dominios extranjeros se distribuyese a travs de Internet. Por otro lado, gcc2
mostrara un registro MX para *.orcnet.org y llevara todo el correo entrante para
los sitios orcnet a moria. El asterisco en *.orcnet.org es un comodn que empareja
todos los anfitriones de ese dominio que no estn relacionados con ningn
registro. Esto ocurre con frecuencia slo con los dominios UUCP. El nico
problema que queda es que los programas de transmisin UUCP no pueden
funcionar con nombres de dominio ilimitados. Muchos sitios UUCP fueron
diseados para trabajar con nombres de hasta ocho caracteres, o incluso menos,
y sin utilizar caracteres alfanumricos como el punto.
Por lo tanto, habra que hacer un mapeado entre los nombres RFC-822 y los
nombres de anfitrin UUCP. El mapeado depende totalmente de su puesta en
prctica. Una manera comn de mapear los nombres FQDN y los UUCP, es usar
el archivo del alias de ruta:
moria.orcnet.org ernie!bert!moria!%s
Esto producir un bang path al estilo UUCP desde una direccin que especifique
un nombre de dominio completamente cualificado. algunos agentes de transporte
proporcionan un fichero especial para esto:
sendmail, por ejemplo, usa el archivo uucpxtable.
308
LINUX
Mayo 2004
Esto hace que cualquier mensaje enviado a moria sea entregado pasando por
ernie y bert. Tanto el nombre moria como el nombre UUCP deben ser dados si el
emisor no los incluye.
Si se quiere dirigir todos los mensajes a los anfitriones dentro de un dominio a su
repetidor de correo, se puede especificar una ruta en la base de datos del alias de
ruta, indicando el nombre de dominio precedido por un punto como el destino. Por
ejemplo, si a todos los anfitriones en sub.org llegamos por medio de swim!smurf,
la entrada de alias de ruta podras ser de la siguiente manera:
.sub.org swim!smurf!%s
309
LINUX
Mayo 2004
LINUX
Mayo 2004
El espacio en blanco que sigue a los dos primeros caracteres equivale a una
tabulacin. El significado de la mayora de los campos est bastante claro; de
todas maneras, en caso de registrarse en cualquier dominio, recibira dicha
descripcin detallada. El caso de la L es el ms curioso: proporciona la posicin
geogrfica (latitud/longitud) del usuario y se encarga de dibujar los mapas
PostScript que controlan todos los sitios web de cada pas e incluso de toda la
red.
5.6 Como configurar elm
elm significa electronic mail (correo electrnico), y es una de las herramientas
ms importantes de Unix.
Proporciona una interfaz a pantalla completa que incluye elementos de ayuda
muy tiles. Tericamente, se puede ejecutar elm aunque no est configurado, y
todo funcionar correctamentecon con suerte. Sin embargo hay algunas opciones
que hay que configurar, aunque sern requeridas tan solo en ocasiones.
Cuando se inicia elm, tenemos un conjunto de variables de configuracin del
archivo elm.rc en /etc/elm. El archivo .elm/elmrc aparece en su directorio local.
311
LINUX
Mayo 2004
Usted no tendr que elaborar este archivo, ya que se crea al seleccionar Save
new options en el men opciones de elm
5.6.1 Opciones globales de elm
En el archivo global elm.rc, siempre hay que establecer las opciones
correspondientes al nombre del anfitrin. Por ejemplo, en la Cervecera Virtual, el
archivo vlager contiene la siguiente informacin:
#
# Nombre local del anfitrin
hostname = vlager
Gua de Administracin de Redes con Linux
17.5. como configurar elm 268.#
# Nombre del dominio
hostdomain = .vbrew.com
#
# Nombre completamente cualificado del dominio
hostfullname = vlager.vbrew.com
Estas opciones de elm estn ideadas por el nombre del anfitrin local. Tenga en
cuenta que estas opciones privadas slo sern vlidas en el archivo de
configuracin; cuando se trate del elmrc privado, sern ignoradas.
5.7 Juegos de caracteres Nacionales
Se han desarrollado un conjunto de estndares y RFC que preparan al RFC-822
para poder recibir varios tipos de mensajes, tanto de texto, datos binarios, como
archivos PostScript y dems. Estos estndares son conocidos como MIME o
Multipurpose Internet Mail Extensions (Extensiones Multipropsito del Correo
Internet). Entre otras cosas, MIME permite que el receptor del mensaje sepa si se
han utilizado caracteres distintos a los del estndar ASCII, por ejemplo, los
acentos del francs o la diresis del alemn. elm mantiene este juego de
caracteres hasta cierto punto.
El juego de caracteres interno de GNU/Linux que se usa para representar los
caracteres es conocido como ISO-8859-1, que es el nombre del estndar
correspondiente. Tambin se conoce como Latin-1. Cualquier mensaje que utilice
312
LINUX
Mayo 2004
El sistema receptor del mensaje deber reconocer ese campo y adaptar las
medidas adecuadas para que su visualizacin sea la correspondiente. En cuanto
a los mensajes de texto lo correspondiente es el juego de caracteres us-ascii.
Para ser capaz de mostrar mensajes con conjuntos de caracteres distintos al
cdigo ASCII, elm debe saber cmo imprimir tales caracteres. Por omisin,
cuando elm recibe un mensaje con un campo charset distinto a us-ascii (o con
contenido distinto al tipo texto), intenta mostrar el mensaje usando una orden
llamada metamail. Los mensajes que requieren de metamail, para poder ser
visualizados, se muestran con una M en la primera columna en la pantalla de
resumen.
Como el caracter patrn de Linux es ISO-8859-1, no es necesario el uso de
metamail cuando sea ste el juego de caracteres presente. Si elm tiene la orden
de que el sistema puede leer ISO-8859-1, no usar metamail, sino que en su
lugar mostrar el mensaje directamente. Esto es posible si se configura la
siguiente:
opcin en elm.rc:
displaycharset = iso-8859-1
Tenga en cuenta que se debe configurar esta opcin incluso cuando no tenga por
seguro que va a mandar o recibir mensajes con caracteres distintos a los de
ASCII. La razn es porque los usuarios que s los utilizan, normalmente
configuran el correo con el fin de poner el tipo de contenido: de campo apropiado
en la cabecera, aunque no utilizen slo caracteres ASCII.
Sin embargo, activar esta opcin en elm.rc no es suficiente. Cuando se muestra
un mensaje con su paginador incorporado, elm llama a una funcion de biblioteca
para cada carcter con el fin de determinar si es imprimible. Por omisin, esta
funcin slo reconocer los caracteres ASCII como imprimibles y visualizar el
resto como ^?. Puede pasar por alto esta funcin tan slo con indicar la variable
313
LINUX
Mayo 2004
LINUX
Mayo 2004
cmo operar esa caracterstica. Para esto se usar una utilidad Unix tradicional
llamada m4, la cual toma nuestros archivos de macros de configuracin y los
combina con los datos obtenidos de las plantillas que contienen la sintaxis actual
de sendmail.cf, de forma tal que ganar nuestro propio fichero sendmail.cf.
5.8.1 Instalando Sendmail
El agente de transporte de correo, sendmail, se incluye preempaquetado en casi
todas las distribuciones de GNU/Linux. La instalacin en estos casos es
relativamente sencilla. Sin embargo, existen algunas razones para instalar
sendmail desde el cdigo fuente, especialmente si nos importa la seguridad. El
programa sendmail es muy complejo y se ha ganado la reputacin con el paso de
los aos por contener fallos que permiten abrir brechas en la seguridad. Uno de
los ms conocidos ejemplos es el gusano de Internet RTM, el cul sac provecho
de un problema de desbordamiento del bfer en versiones antiguas de sendmail.
La mayora de los abusos que utilicen desbordamientos del bfer, dependen de
que todas las copias de sendmail sean idnticas en las diferentes mquinas, ya
que los "exploits" se basan en datos almacenados en ubicaciones especficas.
Esto, desde luego, es precisamente lo que ocurre con sendmail instalado en las
distribuciones GNU/Linux. Compilar sendmail desde el cdigo fuente por usted
puede ayudar a reducir este riesgo. Las versiones modernas de sendmail son
menos vulnerables, ya que vienen con exmenes extremadamente cuidadosos en
cuanto a la seguridad, la cual se ha vuelto una inquietud ampliamente
generalizada en la comunidad de Internet.
La compilacin es bastante simple, ya que el paquete de los fuentes de sendmail
soporta directamente a GNU/Linux. Los pasos a seguir para compilar sendmail
se resumen en:
# cd /usr/local/src
# tar xvfz sendmail.8.9.3.tar.gz
# cd src
# ./Build
LINUX
Mayo 2004
# cd obj.Linux.2.0.36.i586
# make install
LINUX
Mayo 2004
317
LINUX
Mayo 2004
LINUX
Mayo 2004
LINUX
Mayo 2004
los caracteres hacia arriba incluyendo la nueva lnea hemos usado esto en
nuestro ejemplo tambin. stas son caractersticas estndar de m4 descritas en el
apndice.
LINUX
Mayo 2004
LINUX
Mayo 2004
LINUX
Mayo 2004
Esta regla coincide con Cero o ms smbolos, seguidos por el carcter <,
seguidas a su vez por una o ms smbolos, seguidos por el carcter >.
Si esta regla fuese aplicada a brewer@vbrew.com o Head Brewer < >, la regla no
coincidira. La primera cadena no coincidira porque no incluye el carcter <, y la
segunda fallara porque $+ coincide con uno o ms smbolos y no hay smbolos
entre los caracteres <>. En cualquier caso en que una regla coincida, el lado
derecho de la regla no se usa.
Si la regla fuera aplicada a Head Brewer < brewer@vbrew.com >, la regla
coincidira, y en el lado derecho $1 sera sustituido por Head Brewer y $2 sera
sustituido por brewer@vbrew.com.
Si la regla fuese aplicada a < brewer@vbrew.com > la regla coincidira porque $*
coincide con cero o ms smbolos, y en el lado derecho $1 podra ser sustituido
por la cadena vaca.
5.13 Semntica del Conjunto de Reglas
323
LINUX
Mayo 2004
Cada uno de los conjuntos de reglas de sendmail se les llama para realizar una
tarea distinta en el procesado del correo. Cuando se estn escribiendo reglas, es
importante entender qu se espera que cada uno de los conjuntos de reglas haga
efecto. Este conjunto de reglas que los guiones de configuracin m4 nos permiten
modificar o realzar una tarea y estan decritos en el apndice.
Interpretacin de la regla en nuestro ejemplo
El ejemplo 5-3 usa la macro LOCAL_NET_CONFIG para declarar una regla local
que asegure que cualquier correo dentro de nuestro dominio se entregue
directamente usando el transporte de correo smtp. Echmosle un vistazo.
5.13.1 Ejemplo 5-3. Regla de reescritura desde vstout.uucpsmtp.m4
LOCAL_NET_CONFIG
# Esta regla se asegura de que todo correo local sea entregado usando el
# transporte smtp, todo lo dems ir por el anfitrin inteligente.
R$* < @ $* .$m. > $* $#smtp $@ $2.$m. $: $1 < @ $2.$m. > $3
324
LINUX
Mayo 2004
Esta regla coincide con cualquier direccin que parecezca como: 'UsuarioDestino
< @ cualquieranfitrin.nuestrodominio. > Algn Texto'. Esto es, coincide con el
correo de cualquier usuario y de cualquier anfitrin dentro de nuestro dominio.
Recordar que el texto que coincide con los metasmbolos en el lado izquierdo de
una regla de reescritura se asigna a definiciones de macro para su uso en el lado
derecho. En nuestro ejemplo, el primer $* coincide con todo el texto desde el
inicio de la direccin hasta el carcter <. Todo este texto se asigna al $1 para su
uso en el lado derecho. Similarmente, el segundo $* en nuestra regla de
reescritura se asigna a $2, y el ltimo se asigna a $3.
Ahora tenemos suficiente para entender el lado izquierdo. Esta regla coincide con
el correo de cualquier usuario en cualquier anfitrin dentro de nuestro dominio.
Asigna el nombre de usuario a $1, el nombre del anfitrin a $2, y cualquier texto
subsiguiente a $3. El lado derecho se invoca entonces para procesar stos.
Echemos un vistazo a aquello que estamos esperando ver a la salida. El lado
derecho de nuestra regla de reescritura de ejemplo es semejante a: $#smtp $@
$2.$m. $: $1 < @ $2.$m. > $3. Cuando la regla del lado derecho de nuestro
conjunto de reglas se procesa, se interpreta cada uno de los metasmbolos y se
realizan las sustituciones correspondientes.
El metasmbolo $# hace que esta regla resuelva un transporte especfico, smtp en
nuestro caso.
El $@ resuelve el anfitrin objetivo. En el ejemplo, el anfitrin objetivo se
especifica como $2.$m., el cual es el nombre completamente cualificado del
anfitrin en nuestro dominio. El NDCC se construye con el componente del
nombre del anfitrin asignado a $2 desde nuestro lado izquierdo con nuestro
nombre de dominio (.$m.) concatenado.
El metasmbolo $: especifica el usuario objetivo, el cual se captura otra vez del
lado izquierdo y se almacena en $1.
Preservamos los contenidos de la seccin <> y cualquier texto acompaante,
usando los datos que recogimos desde el lado izquierdo de la regla.
Debido a que esta regla resuelve a un transporte de correo, el mensaje es
reenviado al transporte para su entrega. En el ejemplo, el mensaje sera
reenviado al anfitrin de destino usando el protocolo SMTP.
325
LINUX
Mayo 2004
LINUX
Mayo 2004
permite especificar en qu usuarios del sistema se puede confiar para que tengan
la habilidad de hacer esto.
La opcin use_ct_file habilita la posibilidad de especificar y dar un archivo que
liste los nombres de los usuarios de confianza. Por omisin, un pequeo nmero
de usuarios del sistema son de confianza de sendmail, por ejemplo root. El
nombre del archivo por omisin para esta opcin es:
/etc/mail/trusted-users
archivo
sobreescribiendo
la
definicin
confCT_FILE.
Escriba
327
LINUX
Mayo 2004
Otorgan un nombre corto o bien conocido para el correo que ser dirigido
hacia una o ms personas.
328
LINUX
Mayo 2004
LINUX
Mayo 2004
330
LINUX
Mayo 2004
macro
LOCAL_NET_CONFIG
permite
agregar
reglas
de
reescritura
LINUX
Mayo 2004
LINUX
Mayo 2004
333
LINUX
Mayo 2004
linux.org.au RELAY
Este
ejemplo
rechazar
cualquier
correo
que
se
reciba
desde
La
siguiente
regla
aceptar
correo
electrnico
desde
LINUX
Mayo 2004
LINUX
Mayo 2004
Cuando esto est hecho, y asumiendo que los registros DNS apropiados existen y
apuntan stos nombres de dominio a nuestro anfitrin, sendmail aceptar los
mensajes de correo para estos dominios como si estuviesen dirigidos a nuestro
propio nombre de dominio real.
Por omisin, el archivo conteniendo las reglas para efectuar las traducciones
ser /etc/mail/virtusertable. Puede anular ste mediante el suministro de un
336
LINUX
Mayo 2004
LINUX
Mayo 2004
Esta salida nos muestra cmo sendmail procesa el correo dirigido a isaac en
este sistema. Cada lnea nos muestra qu informacin ha sido suministrada a un
conjunto de reglas o el resultado obtenido del procesamiento por un conjunto de
reglas. Le dijimos a sendmail que desebamos emplear el conjunto de reglas 3 y
338
LINUX
Mayo 2004
339
LINUX
Mayo 2004
Esta prueba tambin se pas. Estas pruebas confirman que cualquier correo
recibido para los usuarios locales en nuestra mquina ser entregado
apropiadamente sin importar cmo est formateada la direccin. Si ha definido
cualquier alias en su mquina, como hospedajes virtuales, debera repetir estas
pruebas para cada uno de los nombres alternativos por los que este anfitrin se
conoce para asegurarse que tambin funcionan correctamente.
Despus, probaremos que el correo dirigido a otros anfitriones en el dominio
vbrew.com se entregan directamente a ese anfitrin usando el transporte de
correo SMTP:
# /usr/sbin/sendmail -bt
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
> 3,0 isaac@vale.vbrew.com
rewrite: ruleset 3 input: isaac @ vale . vbrew . com
rewrite: ruleset 96 input: isaac < @ vale . vbrew . com >
rewrite: ruleset 96 returns: isaac < @ vale . vbrew . com . >
rewrite: ruleset 3 returns: isaac < @ vale . vbrew . com . >
rewrite: ruleset 0 input: isaac < @ vale . vbrew . com . >
rewrite: ruleset 199 input: isaac < @ vale . vbrew . com . >
rewrite: ruleset 199 returns: isaac < @ vale . vbrew . com . >
rewrite: ruleset 98 input: isaac < @ vale . vbrew . com . >
rewrite: ruleset 98 returns: isaac < @ vale . vbrew . com . >
rewrite: ruleset 198 input: isaac < @ vale . vbrew . com . >
rewrite: ruleset 198 returns: $# smtp $@ vale . vbrew . com . /
$: isaac < @ vale . vbrew . com . >
rewrite: ruleset 0 returns: $# smtp $@ vale . vbrew . com . /
$: isaac < @ vale . vbrew . com . >
340
LINUX
Mayo 2004
Podemos ver que esta prueba ha dirigido el mensaje al transporte SMTP para ser
reenviado directamente al anfitrin vale.vbrew.com y especifica el usuario isaac.
Esta prueba confirma que la definicin LOCAL_NET_CONFIG funciona
correctamente. Para que esta prueba sea satisfactoria, el nombre del anfitrin de
destino debe ser resuelto correctamente, as que debe tener una entrada en
nuestro archivo /etc/hosts, o en nuestro DNS local. Podemos ver qu ocurre si el
nombre del anfitrin de destino no es capaz de resolverse especificando
intencionadamente un anfitrin desconocido:
# /usr/sbin/sendmail -bt
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
> 3,0 isaac@vXXXX.vbrew.com
rewrite: ruleset 3 input: isaac @ vXXXX . vbrew . com
rewrite: ruleset 96 input: isaac < @ vXXXX . vbrew . com >
vXXXX.vbrew.com: Name server timeout
rewrite: ruleset 96 returns: isaac < @ vXXXX . vbrew . com >
rewrite: ruleset 3 returns: isaac < @ vXXXX . vbrew . com >
== Ruleset 3,0 (3) status 75
rewrite: ruleset 0 input: isaac < @ vXXXX . vbrew . com >
rewrite: ruleset 199 input: isaac < @ vXXXX . vbrew . com >
rewrite: ruleset 199 returns: isaac < @ vXXXX . vbrew . com >
rewrite: ruleset 98 input: isaac < @ vXXXX . vbrew . com >
rewrite: ruleset 98 returns: isaac < @ vXXXX . vbrew . com >
rewrite: ruleset 198 input: isaac < @ vXXXX . vbrew . com >
rewrite: ruleset 95 input: < uucp-new : moria > isaac </
@ vXXXX . vbrew . com >
rewrite: ruleset 95 returns: $# uucp-new $@ moria $: isaac </
@ vXXXX . vbrew . com >
rewrite: ruleset 198 returns: $# uucp-new $@ moria $: isaac </
@ vXXXX . vbrew . com >
rewrite: ruleset 0 returns: $# uucp-new $@ moria $: isaac </
@ vXXXX . vbrew . com >
LINUX
Mayo 2004
del anfitrin que especificamos en esta prueba era incapaz de ser resuelto y los
conjuntos de reglas determinaron que el correo debera ser reenviado a nuestro
anfitrin inteligente moria usando el transporte de correo uucp-new. Nuestro
anfitrin inteligente quiz est mejor conectado y sepa qu hacer con la direccin.
Nuestra prueba final asegura que cualquier correo dirigido a un anfitrin que no
est dentro de nuestro dominio se entrega a nuestro anfitrin inteligente. Esto
debera producir un resultado similar a nuestro ejemplo previo:
# /usr/sbin/sendmail -bt
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
> 3,0 isaac@linux.org.au
rewrite: ruleset 3 input: isaac @ linux . org . au
rewrite: ruleset 96 input: isaac < @ linux . org . au >
rewrite: ruleset 96 returns: isaac < @ linux . org . au . >
rewrite: ruleset 3 returns: isaac < @ linux . org . au . >
rewrite: ruleset 0 input: isaac < @ linux . org . au . >
rewrite: ruleset 199 input: isaac < @ linux . org . au . >
rewrite: ruleset 199 returns: isaac < @ linux . org . au . >
rewrite: ruleset 98 input: isaac < @ linux . org . au . >
rewrite: ruleset 98 returns: isaac < @ linux . org . au . >
rewrite: ruleset 198 input: isaac < @ linux . org . au . >
rewrite: ruleset 95 input: < uucp-new : moria > isaac </
@ linux . org . au . >
rewrite: ruleset 95 returns: $# uucp-new $@ moria $: isaac </
@ linux . org . au . >
rewrite: ruleset 198 returns: $# uucp-new $@ moria $: isaac </
@ linux . org . au . >
rewrite: ruleset 0 returns: $# uucp-new $@ moria $: isaac </
@ linux . org . au . >
Los resultados de esta prueba indican que el nombre del anfitrin se resolvi, y
que el mensaje podra ser enrutado a nuestro anfitrin inteligente. Esto prueba
que nuestra definicin LOCAL_NET_CONFIG funciona correctamente y que
manej ambos casos correctamente. Esta prueba es tambin exitosa, as que
podemos felizmente asumir que nuestra configuracin es correcta y usarla.
5.23 Ejecucin de Sendmail
342
LINUX
Mayo 2004
343
LINUX
Mayo 2004
0,15,30,45 * * * * /usr/bin/runq
La salida muestra el identificador del mensaje (ID), su tamao, la hora en que fue
colocado en la cola, quin lo envi y un mensaje indicando su estado actual. El
siguiente ejemplo muestra un mensaje de correo atascado en la cola con un
problema:
$ mailq
Mail Queue (1 request)
--Q-ID-- --Size-- -----Q-Time----- ------------Sender/Recipient-----------RAA00275 124 Wed Dec 9 17:47 root
(host map: lookup (tao.linux.org.au): deferred)
terry@tao.linux.org.au
Este mensaje est todava en la cola de correo porque la direccin IP del anfitrin
de destino no se ha podido resolver.
344
LINUX
Mayo 2004
345
LINUX
Mayo 2004
0 0 0K 19 515K 0 0 prog
3 33 545K 0 0K 0 0 local
5 88 972K 139 1018K 0 0 esmtp
=============================================================
T 121 1517K 158 1533K 0 0
346
LINUX
Mayo 2004
Las estadsticas continuarn creciendo hasta que usted las purge. Quiz quiera
ejecutar peridicamente la instruccin purgestat para hacer ms fcil buscar y
encontrar entradas recientes, especialmente si tiene un sitio con mucho trfico.
Podra
poner la
orden
en
un
archivo
crontab
para
que
se
ejecute
Quiz tenga que editar el archivo de configuracin para reflejar los valores
especficos de su sistema. En las configuraciones ms comunes no hay mucho
que cambiar, y una configuracin que funcionase raramente tendra que
modificarse.
De manera predeterminada, Exim procesa y enva todo el correo al instante. Si
sufre un trfico relativamente alto, tambin puede hacer que Exim recoja todos los
mensajes en la cola de correo y slo los procese a intervalos regulares.
Cuando gestiona correo en una red TCP/IP, Exim se ejecuta frecuentemente en
modo demonio: durante el arranque del sistema /etc/init.d/eximlo invoca. y se
coloca en segundo plano, donde espera conexiones TCP entrantes por el puerto
SMTP. Esto resulta beneficioso cuando se tiene un trfico significativo porque as
347
LINUX
Mayo 2004
Exim no tiene que iniciarse para cada conexin entrante. De manera alternativa,
inetd puede gestionar el puerto SMTP y lanzar a Exim cuando haya una conexin
en ese puerto. Esta configuracin puede resultar til si dispone de una memoria
limitada y volmenes bajos de trfico.
Exim posee un complicado conjunto de opciones por lnea de rdenes, incluyendo
muchas que coinciden con las de sendmail. En vez de intentar reunir todas las
opciones que se ajusten exactamente a sus necesidades, puede implementar los
tipos ms comunes de operaciones invocando rdenes tradicionales como rmail o
rsmtp. Se trata de enlaces simblicos a Exim (y si no, puede enlazarlos
fcilmente). Cuando ejecute una de las rdenes, Exim comprobar el nombre que
us para invocarlo y l mismo usar las opciones adecuadas.
Hay dos enlaces a Exim que debera tener bajo cualquier circunstancia:
/usr/bin/rmail y /usr/sbin/sendmail. Cuando compone y enva un mensaje de
correo electrnico con un cliente como elm, el mensaje se traslada a sendmail o
a rmail para que lo enven, que es por lo que /usr/sbin/sendmail y /usr/bin/rmail
deberan apuntar a Exim. La lista de receptores para el mensaje se le pasa a
Exim por la lnea de rdenes. Lo mismo sucede con el correo que entra por
UUCP. Puede configurar los nombres de las rutas requeridas para que apunten a
Exim introduciendo lo siguiente en el indicador del intrprete de rdenes:
$ ln -s /usr/sbin/exim /usr/bin/rmail
$ ln -s /usr/sbin/exim /usr/sbin/sendmail
LINUX
Mayo 2004
Esto define el nmero del puerto TCP que se usar en las comunicaciones SMTP.
El puerto 25 es el estndar definido por el RFC de Nmeros Asignados (RFC1700).
Cuando se ejecuta como demonio, Exim se coloca en segundo plano y espera
conexiones por el puerto SMTP.
Cuando se da una conexin se bifurca y el proceso hijo lleva a cabo una
conversacin SMTP con el proceso compaero del anfitrin que llama. El
demonio Exim se inicia normalmente invocndolo desde el guin rc durante el
arranque por medio de la siguiente orden:
/usr/sbin/exim -bd -q15m
La opcin bd activa el modo demonio y q15m hace que procese los mensajes que
se hayan acumulado en la cola durante los ltimos quince minutos.
Si quiere usar inetd su archivo /etc/inetd.conf debera contener una lnea como
sta:
smtp stream tcp nowait root /usr/sbin/exim in.exim bs
Recuerde que tiene que hacer que inetd relea inetd.conf envindole una seal
HUP tras realizar cualquier cambio. Los modos demonio e inetd se excluyen
mutuamente. Si ejecuta Exim como demonio, debe asegurarse de descomentar
cualquier lnea de inetd.conf para el servicio smtp. De manera equivalente,
cuando inetd se encargue de Exim, asegrese de que ningn guin rc inicie el
demonio Exim.
Puede comprobar si Exim est instalado correctamente para recibir mensajes
SMTP entrantes conectndose por telnet al puerto SMTP de su anfitrin. Una
conexin con xito al servidor SMTP sera algo as como esto:
$ telnet localhost smtp
Trying 127.0.0.1...
Connected to localhost.
349
LINUX
Mayo 2004
Si esta prueba no genera la leyenda del SMTP (la lnea que comienza con el
cdigo 220), compruebe si est ejecutando un demonio Exim o si inetd est
configurado correctamente. Si eso no lo resuelve mire en los archivos de bitcora
de Exim en caso de que haya algn error en el archivo de configuracin de Exim.
5.25.2 Si el correo no llega a su destino
El primer lugar donde mirar es en los archivos de registro de Exim. En los
sistemas GNU/Linux normalmente se encuentran en /var/log/exim/log y se llaman
exim_mainlog, exim_rejectlog y exim_paniclog. En otros sistemas operativos, a
menudo se guardan en /var/spool/exim/log. Puede averiguar dnde se encuentran
estos archivos mediante la orden:
exim -bP log_file_path
350
LINUX
Mayo 2004
Tras un error como ste, Exim enva un informe sobre el error en el envo, a
menudo conocido como mensaje de rebote de vuelta al remitente. Los errores
temporales se marcan con ==:
2000-01-30 12:50:50 12E9Un-0004Wq-00 == jim@bitter.vbrew.com
T=smtp defer (145): Connection timed out
Este error es tpico de situaciones en las que Exim reconoce adecuadamente que
un mensaje debera enviarse a un anfitrin remoto pero no es capaz de conectar
con el servicio SMTP en ese anfitrin. El anfitrin puede no encontrarse operando
o puede haber un problema en la red. Cuando un mensaje se pospone como en
este caso, permanece en la cola de Exim y se reintenta su envo a intervalos. De
todos modos, si no consigue enviarse durante bastante tiempo (normalmente
varios das), ocurre un error permanente y el mensaje se devuelve.
Si no es capaz de localizar su problema a partir de los mensajes de error que
genera Exim, quiz quiera activar los mensajes de depuracin. Puede hacer esto
por medio de la variable d, seguida opcionalmente por un nmero que explica el
nivel de verbosidad (un valor de 9 le proporciona el mximo de informacin). Exim
muestra entonces por pantalla un informe sobre sus operaciones, que quiz le
den ms pistas sobre lo que que pueda ir yendo mal.
LINUX
Mayo 2004
Si activa cualquier tipo de encolado tiene que asegurarse de que las colas se
comprueba de manera regular, probablemente cada 10 15 minutos. An sin
opciones explcitas de encolado, las colas necesitan comprobarse por si se
hubieran pospuesto mensajes a causa de fallos temporales de envo. Si ejecuta
Exim como demonio tendr que aadir la opcin q15m en la lnea de rdenes
para procesar la cola cada 15 minutos.
Tambin puede invocar a exim q desde cron a estos intervalos. Puede mostrar la
cola de correo invocando a Exim con la opcin bp. De manera equivalente, puede
enlazar mailq con Exim e invocar mailq:
$ mailq
352
LINUX
Mayo 2004
Los archivos de registro individuales mantienen una copia de las entradas del
registro para cada mensaje por lo que puede inspeccionarlas fcilmente. Puede
extraer esa misma informacin del fichero de registro principal mediante la utilidad
exigrep:
$ exigrep 12EwGE-0005jD-00 /var/log/exim/exim_mainlog
LINUX
Mayo 2004
que muestra una pantalla donde aparece el registro principal en tiempo real,
adems de mostrarle una lista con los mensajes que estn esperando ser
enviados, as como unas grficas de barras acerca de la actividad de envo.
5.26 Enrutamiento y envo de mensajes
Exim divide el envo de correo en tres tareas diferentes: el enrutado, el
direccionamiento y el transporte.
Hay un nmero de mdulos de cdigo para para cada tarea, siendo cada uno
configurable por separado. En el archivo de configuracin normalmente se
instalan un nmero de diferentes enrutadores, direccionadores y transportes.
Los enrutadores resuelven direcciones remotas, determinando a qu anfitrin
debera enviarse un mensaje y qu transporte debera usarse. En los anfitriones
conectados a Internet a menudo hay un solo enrutador, que lleva a cabo la
resolucin buscando el dominio en el DNS. De forma alternativa, puede haber un
enrutador que se encargue de las direcciones destinadas a los anfitriones de una
LAN local, y un segundo para enviar cualquier otra direccin a un anfitrin
inteligente; por ejemplo, el servidor de correo de un PSI.
Las direcciones locales se envan a los direccionadores, de los que suele haber
una gran cantidad, que se encargan de la gestin de los "alias" y de los reenvos
as como de la identificacin de los buzones locales.
Las listas de correo pueden gestionarse mediante direccionadores de "aliasing" o
de reenvo. Si una direccin se renombra o se reenva, cada direccin generada
la gestionan los enrutadores o los direccionadores, segn sea necesario, de
manera independiente. El caso ms comn, de lejos, ser el envo a un buzn,
pero los mensajes tambin pueden enviarse a una orden o adjuntarse a un fichero
diferente al buzn predeterminado.
Un transporte es responsable de implementar un mtodo de envo; por ejemplo,
enviar el mensaje mediante una conexin SMTP o aadirlo a un buzn especfico.
Los enrutadores y los direccionadores eligen qu transporte usar para cada
direccin receptoras. Si un transporte falla, Exim genera un mensaje de rebote o
pospone el envo para intentar realizarlo ms tarde.
Con Exim goza de una gran libertad para configurar estas tareas. Hay disponibles
controladores para cada una de ellas, entre los que puede escoger aquellos que
354
LINUX
Mayo 2004
que
no
puede
enviar correo
de reenvo
obstante, que
LINUX
Mayo 2004
LINUX
Mayo 2004
LINUX
Mayo 2004
receptores es una lista de direcciones separadas por comas que se sustituirn por
el alias. La lista de receptores puede continuarse en nuevas lneas si la lnea
siguiente comienza con un espacio en blanco.
Una propiedad especial permite a Exim gestionar listas de correo que se hayan
especificado separadamente en el archivo de alias: si especifica :include:nombre
de archivo como un receptor, Exim lee el archivo especificado y sustituye su
contenido como una lista de receptores.
El principal fichero de alias es /etc/aliases. Si hace que cualquiera o que cualquier
grupo pueda modificar este archivo, Exim rechazar usario y pospondr los
envos locales. Puede controlar la prueba que realiza con los permisos del archivo
poniendo modemask en el direccionador system_aliases.
Esto es un archivo aliases de ejemplo:
# vbrew.com fichero /etc/aliases
hostmaster: janet
postmaster: janet
usenet: phil
# La lista de correo de desarrollo.
development: joe, sue, mark, biff,
/var/mail/log/development
358
LINUX
Mayo 2004
owner-development: joe
# Los anuncios de inters general se envan a todo
# el equipo
announce: :include: /etc/Exim/staff,
/var/mail/log/announce
owner-announce: root
# la lista de correo ppp se traslada a un grupo local de noticias
ppp-list: "|/usr/local/bin/gateit local.lists.ppp"
359
LINUX
Mayo 2004
Cuando se ejecuta este direccionador, los valores de las opciones file y errors_to
se expanden. La expansin hace que ciertas partes de las cadenas que
comienzan con un smbolo del dlar se sustituyan cada vez que se usa la cadena.
El tipo de expansin ms sencillo es la insercin del valor de una de las variables
de Exim, y esto es lo que est sucediendo aqu. La subcadena ${local_part}
sustituye el valor de $local_part, que es la parte local de las direcciones que se
estn procesando.
Para cada lista de correo, debera existir un usuario (o un alias o una lista de
correo) llamado listname-request; se informa a esta direccin de cualquier error al
resolver una direccin o al enviar un mensaje a un miembro de la lista.
5.31 Protegerse contra el "spam"
El spam o correo con fines comerciales no solicitado es un molesto problema para
muchos usuarios. Se ha formado un proyecto para acabar con este problema
conocido como Sistema de Proteccin contra los Abusos en el Correo (MAPS), y
se ha construido un mecanismo que reduce el problema, conocido como Lista de
Agujeros Negros en Tiempo Real (RBL). La idea es sencillamente simple. Los
sitios que se encuentran generando spam se aaden a una base de datos y
agentes de transferencia de correo como Exim son capaces de consultar la base
de datos para confirmar si un remitente es o no un "spammer" antes de aceptar
correo de l.
Desde el advenimiento de la RBL, se han creado muchas otras listas. Una de las
ms tiles es la Lista de Marcado (DUL), que lista las direcciones IP de anfitriones
conectados a la red mediante acceso por llamada telefnica. stas deberan
enviar normalmente el correo a los servidores de correo de sus PSIs. Muchos
sitios bloquean el correo desde llamadas externas porque cuando un anfitrin de
este tipo evita al servidor de su propio PSI normalmente no se trata de algo
bueno.
Exim ofrece soporte para listas en tiempo real y otras listas negras. Esto se
configura de manera muy sencilla. Para activarlo, aada las siguientes lneas a su
archivo /etc/exim.conf:
# Vixie / MAPS RBL (http://maps.vix.com/rbl)
360
LINUX
Mayo 2004
361
LINUX
Mayo 2004
transport = uucp
driver = domainlist
route_file = /usr/exim/uucphosts
search_type = lsearch
que
se
interpreta
como,
Enviar
el
correo
dirigido
al
dominio
362
LINUX
Mayo 2004
CONCLUSIONES
A travs de la elaboracin de esta tesina podemos concluir que Linux es un
sistema operativo que nos permite interactuar con otros sistemas operativos en
una misma PC.
Por otro lado nos permite hacer mas eficiente el funcionamiento de una red ya
que este sistema es multitarea y ahorra tiempo en el procesamiento y transmisin
de datos.
Linux adems es un sistema que no requiere de altos costos para su manejo,
mantenimiento, actualizacin y crecimiento en redes.
Linux es un sistema operativo el cual ofrece una mayor seguridad en comparacin
a otros sistemas ya que gracias a que el cdigo fuente es libre se pueden crear
mejoras a partir de los mismos usuarios.
Todos los servicios que Linux ofrece mencionados dentro de este trabajo son los
principales servicios que nos permiten la interaccin entre usuarios de diferentes
maquinas para la comparticion de informacin
El uso del sistema operativo Linux es una opcin mas que el mercado ofrece la
cual nos brinda una variedad de servicios tanto a nivel red como en una
computadora personal, nos ofrece una mayor seguridad debido a que su cdigo
fuente es mas robusto.
El uso de Linux cada da esta siendo mas abarcado tanto por pequeas y grandes
compaas como por usuarios independientes.
363
LINUX
Mayo 2004
GLOSARIO
ARP .- Protocolo de resolucin de direcciones
ATM .- Modo de trasferencia asncrona
BASH.- Bourne Again Shell.
BIND .- Nombres de dominio de internet de Berkley
BNU .- Unidades bsicas de red
CHAP .- Protocolo de autentificacin por reto
CSLIP .- SLIP comprimido
DNS .- Servicio de nombres de Dominio
DSL .- Lneas digitales de abonado
FDDI .- Interfaz de datos distribuidos en fibra
Frame Relay .- Conmutacin de tramas
FTP .- Protocolo de transferencia de archivos
ICMP .- Protocolo de control de mensajes por internet
IDP .- Protocolo de datagramas de red
IP .- Internet protocolo
IPCP .- Internet protocolo - control protocolo
IPX .- IP para redes compartidas con Novell
IRQ .- Peticin de interrupcin
LANs .- Redes de rea local
LCP .- Protocolo de control de enlace
LDP .- Proyecto de documentacin Linux
MIME.- Extensiones de Correo Multipropsito (Multipurpose Internet Mail
Extensions).
MUAs.- Agentes de Usuario de Correo (mail user agents).
MTA-Agente de Transporte de Correo (mail transport agent)
MX- Intercambiador de Correo (Mail Exchanger)
NAT .- Traduccin de direcciones de red
NCPFS .- Netware Core Protocol File System
NFS .- Sistema de Archivos de Red
NIS .- Sistema de informacin de red
364
LINUX
Mayo 2004
365
LINUX
Mayo 2004
APNDICE
IFCONFIG: Parmetros reconocidos por ifconfig.
Las opciones que simplemente activan alguna caracterstica pueden usarse para
desactivarla precedindolas de un guin ().
up
Marca la interfaz como disponible para que sea usada por la capa IP. Esta opcin
va implcita cuando lo que se da en la lnea de rdenes es una direccin. Tambin
permite reactivar una interfaz que se ha desactivado temporalmente mediante la
opcin down. Esta opcin corresponde a los indicadores UP y RUNNING.
down
Marca la interfaz como inaccesible a la capa IP. Esto inhabilita cualquier trfico IP
a travs de la interfaz. Es importante darse cuenta que esto tambin borra los
registros de la tabla de encaminamiento correspondientes a esa interfaz de forma
automtica.
netmask mscara
Esto asigna una mscara de subred a una interfaz. Se puede dar como un valor
de 32 bits en hexadecimal precedido del prefijo 0x, o en notacin de cuaterna
usando nmeros decimales separados por puntos. Aunque la notacin en forma
de cuaterna es ms comn, la representacin hexadecimal es muchas veces ms
fcil de usar. Las mscaras de red son esencialmente binarias, y es ms fcil
hacer una conversin binario-a-hexadecimal que una binario-a-decimal.
pointopoint direccin
Esta opcin se usa para enlaces IP punto-a-punto en los que intervienen
nicamente dos mquinas. Esta opcin es necesaria para, por ejemplo, configurar
las interfaces SLIP o PLIP. Si se ha definido una direccin punto a punto,ifconfig
muestra el indicador POINTOPOINT.
broadcast direccin
La direccin de difusin se obtiene, generalmente, usando la parte de red de la
direccin y activando todos los bits de la parte correspondiente a la mquina.
Algunas implementaciones de los protocolos IP (por ejemplo, sistemas derivados
de BSD 4.2) utilizan un esquema diferente; esta opcin proporciona un mtodo
366
LINUX
Mayo 2004
LINUX
Mayo 2004
El Archivo nsswitch.conf
dns
Indica que se usa el DNS para resolver la direccin. Esto solo sirve para
resolucin de nodos, no de redes. Para ello se mira primero el fichero
/etc/resolv.conf, que veremos despus.
files
Hace la bsqueda en un fichero local. Es decir, en /etc/hosts para los nodos, y
en /etc/network para las redes.
nis o nisplus
368
LINUX
Mayo 2004
LINUX
Mayo 2004
[domain][ttl][class]type rdata
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.
ttl
Con el fin de forzar al sistema DNS a descartar informacin despus de cierto
tiempo, cada RR lleva asociado un tiempo de vida o tt1. El campo ttl especifica,
en segundos, el tiempo de validez de la informacin desde que se obtiene del
servidor. Es un nmero decimal de hasta ocho dgitos.
class
Aqu se indica la clase de direccin: IN para direcciones IP, HS para objetos de la
clase Hesiod. Trabajando con redes TCP/IP debe usarse siempre la clase IN. Si
no se especifica ningn valor, se toma el valor del RR anterior.
type
Describe el tipo de RR. Los tipos habituales son A, SOA, PTR y NS. En las
siguientes secciones
comentaremos estos tipos de RRs.
rdata
Contiene los datos asociados al RR. El formato depende del tipo.
Lista incompleta de RRs que se utilizan en los archivos de DNS.
SOA
Describe una zona de autoridad (SOA significa Start of Authority, es decir,
Comienzo de Autoridad). Seala que los registros siguientes contienen
informacin autorizada para el dominio. Cada fichero incluido en la opcin
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 dominio. Se suele
dar como nombre absoluto.
contact
370
LINUX
Mayo 2004
LINUX
Mayo 2004
A
Asocia direcciones IP con nombres. El campo de datos contiene la direccin
separando los octetos por puntos, como es habitual. Para cada mquina slo
puede haber un registro A, que se considera nombre oficial o cannico. Cualquier
otro nombre ser un alias y debe ser incluido con registros CNAME.
NS
Apunta a un servidor de nombres maestro de una zona subordinada. El campo de
datos contiene el nombre del servidor. Para traducir ese nombre debe
proporcionarse un registro A adicional, que se conoce como glue, al proporcionar
la direccin IP del servidor. Hay que incluir registros NS en dos casos: primero,
cuando delegamos la autoridad a una zona subordinada. Segundo, en la base de
datos del servidor principal de cualquier zona. Los servidores NS especificados en
el fichero de zona deben coincidir exactamente con los que especifica la zona
padre que delega.
CNAME
Asocia un alias con su nombre cannico. El nombre cannico se determina con
un registro A. Los alias son indicados mediante registros CNAME.
PTR
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
inversa). El nombre de la mquina debe ser el cannico.
MX
Especifica el servidor de correo para un dominio. La sintaxis del registro MX es:
[domain][ttl][class]MXpreference host
host nombra el servidor de correo para el dominio domain. Cada servidor tiene
asociado un valor de preference (preferencia). Cuando un agente de transferencia
de mensajes quiere entregar correo al dominio, intentar conectarse a esos
servidores hasta conseguir entregar el mensaje; empezando por el que tenga
menor valor de preferencia.
HINFO
Este registro da informacin sobre el hardware y el software de la mquina. Su
sintaxis es:
[domain][ttl][class]HINFOhardware software
372
LINUX
Mayo 2004
dip provee algunas rdenes para configurar el puerto serie y el modem . Algunos
son obvios como la orden port, que selecciona el puerto serie, y speed, databits,
stopbits, y parity, que configura los parmetros ms comunes de la lnea. La orden
mdem selecciona el tipo de mdem . Se debe proveer a dip con el tipo de
mdem , o ste se negar a ejecutar las rdenes dial y reset. La orden reset enva
la cadena de reinicio (reset) al mdem; el tipo de cadena depende del modelo y
marca del mdem. Para modems compatibles con Hayes, esta cadena es ATZ. la
orden flush puede usarse para vaciar todas las respuestas que el mdem envi
hasta ese momento. De otro modo, un guin de dilogo que ejecute un reset
podra confundirse si leyese un OK como respuesta de algn orden anterior.
La orden init selecciona la cadena de inicializacin enviada al mdem antes de
marcar. predeterminada, para modems Hayes es ATE0 Q0 V1 X1, que activa el
eco de las rdenes y los cdigos de retorno, adems selecciona el modo de
marcado a ciegas (no comprueba si la lnea tiene tono).
La orden dial enva la cadena de inicializacin al mdem y llama al sistema
remoto. La orden predeterminada para modems tipo Hayes es ATD.
b) La Orden echo
La orden echo sirve como depurador. Invocar echo on hace que dip copie en la
consola todo lo que se enva por el puerto serie. Este modo puede desactivarse
invocando echo off.
373
LINUX
Mayo 2004
dip Puede salir del modo guin temporalmente para entrar en modo terminal. En
este modo, usted puede usar a dip como cualquier programa de terminal
ordinario, enviando caracteres a travs de la lnea serie, leyndolos y mostrarlos.
Para abandonar este modo, presione Ctrl-].
c) La Orden get
La orden get es la forma en que dip carga una variable. Su uso ms simple es
inicializar una constante, como se vi en el ejemplo de cowslip.dip. usted tambin
puede utilizarlo desde la consola en conjunto con ask:
DIP>get $local ask
Enterthevaluefor$local:_
Un tercer mtodo, es usado para obtener el nombre del servidor remoto. Aunque
extrao parezca al principio, es muy til en algunos casos. Algunos servidores, no
permiten que usted use su propia direccin IP en un enlace SLIP, sino que le
asignar una de un conjunto ya establecido cuando se establezca la conexin,
mostrando un mensaje que le informe que direccin le fue asignada. Si el
mensaje luce parecido a Your address: 192.168.5.74, el siguiente ejemplo har
que dip use la direccin asignada:
#finishlogin
waitaddress:10
get$locipremote
d) La Orden print
Esta orden es usado para enviar cualquier texto a la consola cuando se invoque a
dip. Cualquier variable usada por dip puede ser utilizada para enviar mensajes,
como por ejemplo:
DIP> print Usando puerto $port a la velocidad de $speed baudios
LINUX
Mayo 2004
La expresin, realiza una simple comparacin entre una de estas variables $errlvl,
$locip, y $rmtip. var debe ser un numero entero (integer); el operador op debe ser
uno de estos: ==, !=, <, >, <=, y >=.
La orden goto (ir a) hace que la ejecucin del guin contine donde se encuentra
definida la etiqueta pasada como parmetro a la orden (label). Una etiqueta (label)
debe ser la primer palabra en una lnea, seguida de dos puntos(:)
g) rdenes send, wait, y sleep
Estas rdenes ayudan a implementar sencillos guiones de dilogo en dip. la
orden send enva sus argumentos a la lnea serie. No soporta el uso de variables,
pero entiende todas las secuencias de escape al estilo del lenguaje C, como \n
para nueva lnea y \b para retroceso. El carcter de tilde (~) puede ser usada
como una abreviatura del carcter de retorno de carro / nueva lnea.
375
LINUX
Mayo 2004
La orden wait toma una palabra como argumento y leer todo lo que entre por la
lnea serie hasta que detecte una secuencia de caracteres que coincida con esa
palabra. Esa palabra no puede contener caracteres en blanco.
Opcionalmente, se le puede pasar a wait un tiempo de espera como segundo
argumento; Si la palabra esperada, no es recibida en ese tiempo de espera la
variable $errlvl se cargar con un 1. Esta orden se usa generalmente en la
deteccin de registros (login) y otros smbolos de espera.
La orden sleep puede usarse para esperar una determinada cantidad de tiempo;
Por ejemplo, esperar
pacientemente a que la secuencia de ingreso se complete. Nuevamente, el
intervalo se expresa en segundos.
h) rdenes mode y default
Estas rdenes se usan para pasar la lnea de modo serie a modo SLIP y para
configurar la interfaz.
La orden mode es la ltima ejecutada por dip antes de pasar al modo demonio. A
menos que ocurra un error, esta orden no retorna. mode toma el nombre del
protocolo como argumento. La versin actual de dip reconoce los siguientes:
SLIP, CSLIP, SLIP6, CSLIP6, PPP, y TERM como nombres vlidos.
IPFWADM: Resumen de los argumentos de ipfwadm
La orden ipfwadm tiene muchos argumentos diferentes que estn relacionados
con la configuracin del cortafuegos de IP. La sintaxis general es:
ipfwadm categora orden parmetros [opciones]
I.- Categoras
Slo puede introducirse una de estas categoras. La categora le dice al
cortafuegos qu tipo de regla de cortafuegos se est configurando:
-I regla de tipo 'Input'
-O regla de tipo 'Output'
-F regla de tipo 'Forwarding'
II.- rdenes
376
LINUX
Mayo 2004
Al menos una de las siguientes rdenes debe ser introducida y se aplican slo
aquellas reglas relacionadas con la categora introducida. La orden le dice al
cortafuegos qu accin debe tomar.
-a [poltica] Aade una nueva regla
-i [poltica] Inserta una nueva regla
-d [poltica] Borra una regla existente
-p poltica Establece la poltica por defecto
-l Muestra todas las reglas existentes
-f Destruye todas las reglas existentes
Las polticas relevantes para el cortafuegos de IP y sus significados son:
accept Permite que los datagramas coincidentes sean recibidos, reenviados o
transmitidos
deny Impide que los datagramas coincidentes sean recibidos, reenviados o
transmitidos
reject Impide que los datagramas coincidentes sean recibidos, reenviados o
transmitidos y enva al 'host' que envi el datagrama un mensaje de error de
ICMP.
III.- Parmetros
Al menos uno de los siguientes parmetros debe ser introducido. Utilice los
parmetros para especificar a qu datagramas se aplica esta regla:
-P protocolo
Puede ser TCP, UDP, ICMP o todos. Ejemplo: -P tcp
-S direccin[/mscara] [puerto]
La direccin IP de origen que buscar coincidencias con con esa regla. Se
asumir una mscara de /32 bits si no se proporciona una. Opcionalmente, puede
especificar a qu puertos se aplicar esta regla.
Tambin puede especificar el protocolo utilizando el argumento -P que se
describi ms arriba. Si no se especifica el puerto o un rango de puertos, se
supondr que todos los puertos buscar coincidencias conn. Los puertos pueden
especificarse por su nombre, utilizando la entrada del fichero /etc/services que
desee. En el caso del protocolo de ICMP, el campo de puerto se utiliza para
377
LINUX
Mayo 2004
LINUX
Mayo 2004
datagramas que tengan su bit SYN con un valor de uno, y su bit ACK con un valor
de 0, buscar coincidencias conn. Esto resulta til para filtrar los intentos de
conexin de TCP y se ignora en el caso de otros protocolos.
-k
Utilizado para buscar coincidencias con datagramas de acuse de recibo de TCP.
Esta opcin causa que la regla coincida slo con los datagramas que sean acuse
de recibos de paquetes que intentan establecer conexiones de TCP. nicamente
los datagramas que tenga su bit ACK con valor igual a 1.
Esto resulta til para filtrar los intentos de conexin de TCP y se ignora en el caso
de otros protocolos.
IPCHAINS: Sintaxis de la orden ipchains
La sintaxis de la orden ipchains es bastante directa. Se contemplarn los
ejemplos ms importantes. La sintaxis general de la mayora de las rdenes de
ipchains es:
ipchains orden especificacin_de_regla opciones
I.- rdenes
Existen diversas formas de manipular las reglas y conjuntos de reglas con la
orden ipchains. Las relevantes para la funcionalidad de cortafuegos de IP son:
-A cadena
Aade una o ms reglas al final de la cadena especificada. Si se proporciona un
nombre de 'host' como origen o destino que se resuelve a ms de una direccin
IP, entonces se aade una regla por cada una de las direcciones.
-I cadena numero_de_regla
Inserta una o ms reglas al principio de la cadena especificada. De nuevo, si se
proporciona un nombre de 'host', se aade una regla por cada direccin que se
resuelva.
-D cadena
Elimina una o ms reglas de la cadena especificada que coincida con la
especificacin de regla.
-D cadena nmero_de_regla
379
LINUX
Mayo 2004
-X [cadena]
Elimina la cadena de usuario especificada, o todas las cadenas de usuario
especificadas si no se especifica ninguna cadena. Para que esta orden tenga
xito, no deben existir referencias de ninguna otra cadena de reglas a la cadena
especificada.
-P poltica_de_cadena
Establece la poltica por defecto de la cadena especificada a la poltica
especificada. Las polticas de cortafuegos vlidas son ACCEPT, DENY, REJECT,
REDIR, o RETURN. ACCEPT, DENY, y REJECT tienen los mismo significados
380
LINUX
Mayo 2004
LINUX
Mayo 2004
el
registro
del
ncleo
de
los
datagramas
coincidentes.
-o[tamao_mximo]
Causa que el 'software' de 'IP Chains' copie cualquier datagrama coincidente con
la regla al dispositivo netlink del espacio de usuarios.
-m valor_de_marca
Causa que los datagramas coincidentes sean marcados con un valor. Los valores
de las marcas son nmeros de 32 bits sin signo.
-t mscara_and mscara_xor
Le permite manipular los bits del tipo de servicio de la cabecera de IP de cualquier
datagrama que coincida con esta regla. Los bits de tipo de servicio son utilizados
382
LINUX
Mayo 2004
I.- rdenes
Existen varias formas de manipular las reglas y los conjuntos de reglas con la
orden iptables. Las relevantes para la funcin de cortafuegos de IP son:
-A cadena
Aade una o ms reglas al final de la cadena especificada. Si se proporciona un
nombre de 'host' tanto como origen como destino y se resuelve a ms de una
direccin IP, se aadir una regla por cada una de esas direcciones.
-I cadena nmero_de_regla
Inserta una o ms reglas al comienzo de la cadena especificada. De nuevo, si se
proporciona un nombre de 'host' en la especificacin de la regla, se aadir una
regla por cada una de las direcciones que se resuelvan.
-D cadena
Borra de la cadena especificada una o ms reglas que coincidan con la
especificacin de regla de la cadena especificada.
-D cadena nmero_de_regla
383
LINUX
Mayo 2004
-N cadena
Crea una nueva cadena con el nombre especificado. No puede existir antes una
cadena del mismo nombre. As es cmo se crean las cadenas de usuario.
-X [cadena]
Borra la cadena de usuario especificada, o todas las cadenas de usuario si no se
especifica ninguna.
-P cadena poltica
Establece la poltica por defecto de la cadena especificada a la poltica
especificada. Las polticas vlidas de cortafuegos son ACCEPT, DROP, QUEUE, y
RETURN. ACCEPT permite pasar a los datagramas. DROP causa que el
datagrama sea descartado.
II.- Parmetros de especificacin de reglas
384
LINUX
Mayo 2004
LINUX
Mayo 2004
-v
Hace que iptables sea ms explcito en su salida. Proporcionar ms
informacin.
-n
Hace que iptables muestre las direcciones de IP y los nmeros de puertos en
forma de nmeros sin intentar resoverlos contra sus correspondientes nombres.
-x
Fuerza que los nmeros de salida de iptables parezcan con sus valores exactos
sin ninguna aproximacin.
-line-number
Causa que se muestren los nmeros de lnea en los listados de los conjuntos de
reglas. El nmero de
lnea corresponder con la posicin de la regla dentro de la cadena.
IV.- Extensiones
Para utilizar una extensin, se debe especificar su nombre con el argumento -m
nombre de iptables. La lista siguiente muestra las opciones -m y -p que
establecen el contexto de la extensin, y las opciones proporcionadas por esa
extensin.
a) Extensiones de TCP: utilizadas con -m tcp -p tcp
- -sport [!] [puerto[:puerto]]
Especifica el puerto que debe utilizar el origen del datagrama para buscar
coincidencias con esta regla. Se pueden especificar los puertos en la forma de un
rango, especificando los lmites inferior y superior con un signo : como delimitador.
- -dport [!] [puerto[:puerto]]
Especifica el puerto que el datagrama de destino utilizar para buscar
coincidencias con este regla. Este argumento se codifica de forma idntica a la
opcin - -sport.
- -tcp-flags [!] mscara comp
Especifica que esta regla debe buscar coincidencias con cuando los indicadores
de TCP del datagrama coincidan con los especificados por mscara y comp.
mscara es una lista separada por comas de los indicadores que deben
386
LINUX
Mayo 2004
LINUX
Mayo 2004
protocol-unreachable, y port-unreachable.
d) Extensiones de MAC: utilizadas con -m mac
- -mac-source [!] address
Especifica la direccin Ethernet del 'host' transmisor que coincide con esta regla.
Esto slo tiene sentido en una regla de la cadena de entrada 'input' o de reenvo
'forward' porque se trasmitir cualquier datagrama que pase la cadena de salida
'output'.
INETD: Campos del archivo inetd
Una entrada en este fichero consiste en una sola lnea compuesta de los
siguientes campos:
servicio tipo protocolo espera usuario servidor lnea_de_rdenes
LINUX
Mayo 2004
principio del mnimo privilegio aqu, lo que significa que usted no debe ejecutar
rdenes bajo cuentas privilegiadas si el programa no requiere esto para su
correcto funcionamiento.
servidor
Proporciona el camino completo del programa servidor a ser ejecutado. Los
servicios internos se marcan con la palabra clave internal.
lnea_de_rdenes
Esta es la lnea de rdenes que se va a pasar al servidor. Comienza con el
nombre del servidor a ejecutar y puede incluir cualquier argumento que se le
necesiten pasar. Si est usando encapsulacin TCP , especificar el camino
completo al servidor aqu. Si no, entonces especificar el nombre
del servidor como quiera que aparezca en un listado de procesos. Este campo
est vaco para los servicios internos.
TCPD : La Facilidad de Control de Acceso tcpd
Las entradas en los ficheros de acceso tienen un aspecto como este:
lista_de_servicios:lista_de_hosts [:rdenes_de_shell]
LINUX
Mayo 2004
el carcter / permite especificar un fichero que se presume que contiene una lista
de nombres de host o patrones de direcciones IP, con cualquiera de los cules se
permite
la
coincidencia.
As
que
un
patrn
que
se
parezca
Los argumentos %h y %d son expandidos por tcpd como el nombre del host del
cliente y el nombre del servicio, respectivamente.
NFS: Opciones de mount para NFS
rsize=n y wsize=n
Especifican el tamao de datagrama usado por los clientes de NFS en las
peticiones de lectura y escritura respectivamente. El tamao predeterminado
depende de la versin del ncleo, pero normalmente es de 1.024 bytes.
timeo=n
Establece el tiempo (en dcimas de segundo) que el cliente de NFS esperar por
la respuesta a una peticin. El valor predefinido es 7 (0.7 segundos). Lo que pase
despus depende de si usa la opcin hard o soft.
hard
Explcitamente marca este volumen como montado fsicamente. Es el valor
predeterminado. Esta opcin hace que el servidor muestre por la consola un
mensaje cuando expira el tiempo de operacin y contina indefinidamente.
soft
390
LINUX
Mayo 2004
ARCHIVO EXPORTS :
El nombre del anfitrin es seguido por una lista opcional de seales separadas
por comas, encerradas entre parntesis. Algunos de los valores que stas seales
pueden tomar son vistos acontinuacin:
secure
Esta seal insiste en requerir que se haga desde un puerto origen reservado, por
ejemplo, uno que sea menor que 1.024. Esta seal est puesta por omisin.
insecure
Esta seal revierte el efecto de la seal secure.
ro
Esta seal provoca que el montaje de NFS sea para slo lectura. Esta seal est
activada por omisin.
rw
Esta opcin monta la jerarqua de ficheros en lectura-escritura.
root_squash
Este caracterstica de seguridad deniega a los superusuarios en los hosts
especificados cualquier derecho de acceso especial mapeando las peticiones
desde el uid 0 en el cliente al uid 65534 (es decir, -2) en el servidor. Este uid debe
ser asociado con el usuario nobody.
no_root_squash
No mapea las peticiones desde uid 0. Esta opcin est habilitada por omisin, as
los superusuarios tienen acceso de supervisor a los directorios exportados de su
sistema.
link_relative
391
LINUX
Mayo 2004
Esta opcin convierte los enlaces simblicos absolutos (donde el contenido del
enlace comienza con un slash) en enlaces relativos. Esta opcin slo tiene
sentido cuando est montado el sistema de ficheros entero de un anfitrin; por
otra parte, algunos de los enlaces podran apuntar a ninguna parte, o peor an, a
ficheros que nunca debieran apuntar. Esta opcin est habilitada de forma
predeterminada.
link_absolute
Esta opcin deja todos los enlaces simblicos como son (la conducta normal para
los servidores de
NFS suministrados por Sun).
map_identity
Esta opcin le indica al servidor asumir que el cliente usa el mismo uid y gid que
el servidor. Esta opcin est habilitada por omisin.
map_daemon
Esta opcin indica al servidor de NFS asumir que el cliente y el servidor no
comparten el mismo espacio uid/gid. rpc.nfsd entonces construye una lista que
mapea los IDs entre cliente y servidor preguntando al demonio rpc.ugidd del
cliente.
map_static
Esta opcin le permite especificar el nombre de un fichero que contiene un mapa
esttico de uids. Por ejemplo, map_static=/etc/nfs/vlight.map especificara el
fichero /etc/nfs/vlight.map como un mapa de uid/gid.
map_nis
Esta opcin causa que el servidor de NIS haga un mapeado de uid y gid.
anonuid y anongid
Estas opciones le permiten especificar el uid y el gid de la cuenta annima. Esto
es til si tiene un volumen exportado para montajes pblicos.
IPX_INTERFACE :La Orden ipx_interface
Los parmetros de turno significan:
-p
392
LINUX
Mayo 2004
Este parmetro especifica que esta interfaz tiene que ser una interfaz primaria.
Este parmetro es opcional.
eth0
ste es el nombre del dispositivo de red al que estamos aadiendo soporte IPX.
etherII
Este parmetro es el tipo de trama, en este caso Ethernet-II. Este valor tambin
puede codificarse como 802.2, 802.3, o SNAP.
0x32a10103
Esto es la direccin de red IPX a la que pertenece esta interfaz.
UUCICO : Opciones en la lnea de rdenes para uucico
En este tema describimos las opciones de la lnea de rdenes ms importantes
para uucico:
system, s sistema
LINUX
Mayo 2004
LINUX
Mayo 2004
LINUX
Mayo 2004
G
sta es la versin 4 System V del protocolo g. Tambin lo entienden otras
versiones de UUCP.
a
Este protocolo es similar al ZMODEM. Requiere una conexin de 8 bits pero
codifica ciertos caracteres de control como XON y XOFF.
CAPITULO V
Campos de Cabecera generados por el interfaz de correo.
From:
Contiene la direccin de correo electrnico del remitente, y posiblemente el
nombre real. Aqu se usa un zoolgico completo de formatos distintos.
To:
Esta es la direccin de e-mail del destinatario. Si hay varias direcciones se
separan por comas.
Cc:
Esta es una lista de las direcciones de correo que recibirn una copia de carbn
del mensaje. Si hay varias direcciones, se separan por comas.
Bcc:
Esta es una lista de las direcciones de correo que recibirn una copia de carbn
ciega del mensaje. La diferencia principal entre Cc: y Bcc: es que las direcciones
listadas en el Bcc: no aparecern en la cabecera del mensaje que se enva a cada
destinatario. Es una forma de avisar a los destinatarios de que usted ha enviado
copias del mensaje a otras personas, sin decir quines son. Si hay varias
direcciones, se separan por comas.
Subject:
Describe el contenido del mensaje en pocas palabras.
Date:
Indica la fecha y hora en que se envi el mensaje.
Reply-To:
Especifica la direccin a la que el remitente desea que el destinatario le conteste.
Esto puede ser til si se tienen varias direcciones, pero se desea recibir la mayor
396
LINUX
Mayo 2004
parte del correo slo en aquella que se usa ms a menudo. Este campo es
opcional.
Organization:
La organizacin que posee la mquina desde la que se ha enviado el mensaje. Si
la mquina usada es la suya propia no incluya este campo, o bien indique privado
o cualquier trivialidad sin sentido. Este campo no est descrito en ningn RFC y
es completamente opcional. Algunos programas de correo lo soportan
directamente, pero la mayora no.
Message-ID:
Una cadena generada por el transporte de correo en el sistema remitente. Es
nica para cada mensaje.
Received:
Cada anfitrin que procesa su correo (incluyendo las mquinas del remitente y el
destinatario) insertan este campo en el encabezado, dando el nombre del
anfitrin, una identificacin de mensaje, hora y fecha a la que lo recibieron, de qu
anfitrin procede, y qu software de transporte ha sido usado. Esto se hace 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:
Ningn programa relacionado con el correo debe protestar sobre cualquier
encabezado que comience con X-. Esto se usa para implementar caractersticas
adicionales que an no han sido incluidas en un RFC, o que no lo sern nunca.
Por ejemplo, existi un gran servidor de listas de correo de GNU/Linux que
permita especificar a qu canal quera que fuera su mensaje incluyendo la
cadena X-Mn-Key: seguido del nombre del canal.
Parmetros utilizados en el archivo sendmail.mc de acuerdo al estndar m4
VERSIONID y OSTYPE
VERSIONID(`@(#)sendmail.mc 8.9 (Linux) 01/10/98')
LINUX
Mayo 2004
OSTYPE(`linux')
Esta es probablemente la definicin ms importante. La macro OSTYPE provoca
que se incluya un archivo de definiciones que son buenas opciones
predeterminadas para su sistema operativo. La mayora de las definiciones en un
archivo macro OSTYPE configuran los nombres de ruta de varios archivos de
configuracin, transporte de correo y argumentos, y la localizacin de directorios
que usa sendmail para almacenar mensajes. La distribucin estndar de cdigo
fuente de sendmail incluye un fichero de este tipo para GNU/Linux, que se incluye
en el ejemplo previo. Algunas distrbuciones de GNU/Linux, particularmente la
distribucin Debian, incluye su propio archivo de ficheros de GNU/Linux. Cuando
su distribucin haga sto, probablemente debera usar su definicin en vez de la
genrica de GNU/Linux por omisin.
La definicin OSTYPE debera ser una de las primeras en aparecer en su archivo
sendmail.mc, debido a que muchas otras definiciones dependen de ella.
DOMAIN
La macro DOMAIN es til cuando se desea configurar un gran nmero de
mquinas en la misma red de una manera estandarizada. Si se est configurando
un pequeo nmero de anfitrins, probablemente es mejor no preocuparse de
sto. Tpicamente se configuran items, como el nombre de los anfitrins de
retransmisin o concentradores que todos los anfitrins de la red utilizarn.
La instalacin estndar continene un directorio de plantillas de macros m4
utilizadas para dirigir el proceso de configuracin. Este directorio se nombra
normalmente como /usr/share/sendmail.cf o algo por el estilo. Aqu se encuentra
un subdirectorio nombrado domain que contiene plantillas de configuracin
especficas para el dominio. Para hacer uso de una macro DOMAIN, se debe
crear su propio archivo macro conteniendo las definiciones estndar que se
requieran para el sitio, y escribirlas en el subdirectorio domain. Slo se deberan
incluir normalmente las definiciones de macro que sean nicas a su dominio aqu,
como las definiciones de los anfitrin inteligentes o los anfitrin de retransmisin,
pero no limitndose a stos.
La distribucin del cdigo fuente de sendmail viene con algunos archivos de
ejemplo de definicin de macros que puede usar para crear el suyo propio.
398
LINUX
Mayo 2004
FEATURE
La macro FEATURE permite incluir caractersticas predefinidas de sendmail en
su configuracin. Estas caractersticas de sendmail hacen las configuraciones
soportadas muy fciles de usar. Para usar cualquiera de las caractersticas
listadas, debera incluir una lnea en su fichero sendmail.mc que se parezca a
esto:
FEATURE(nombre) donde nombre se sustituye con el nombre de la caracterstica.
Algunas caractersticas toman un parmetro opcional. Si desea usar algn otro
distinto al predeterminado, debera utiizar una entrada como sta:
FEATURE(nombre, parmetro) donde parmetro es el parmetro a suministrar.
Tipos de transporte utilizados al usar la macro MAILER
local
Este transporte incluye tanto el agente de entrega local usado para enviar correo
al buzn de los usuarios en esta mquina como el programa prog transporte de
entrega usado para enviar mensajes a programas locales. Este transporte se
incluye por omisin.
smtp
Este transporte implementa el Protocolo Simple de Transporte de Correo (SMTP),
que es el medio ms usual de transporte de correo en Internet. Cuando se incluye
este transporte, se configuran cuatro transportes de correo: smtp (SMTP bsico),
esmtp (SMTP Extendido), smtp8 (SMTP binario plano de 8 bits), y relay
(especficamente diseado para hacer de transporte a modo de ruteador entre
anfitriones).
uucp
El transporte uucp proporciona soporte para dos transportes de correo: uucp-old,
que es el UUCP tradicional, y uucp-new, que permite manipular mltiples buzones
en una transferencia.
usenet
Este transporte de correo permite enviar mensajes directamente a redes de
noticias del estilo Usenet. Cualquier mensaje local dirigido a una direccin de
news.group.usenet ser introducido en la red de noticias para el grupo de noticias
news.group.
399
LINUX
Mayo 2004
fax
Si tiene el software Hylafax instalado, este transporte permitir dirigir correo
electrnico a l, para que as pueda construir una pasarela de correo-fax. Esta
caracterstica era experimental cuando se escribi este documento.
Hay otros como pop, procmail, mail11, phquery, y cyrus que son tiles, pero
menos comunes.
Definiciones de macros utilizadas por Sendmail
$j
El nombre completamente cualificado de este anfitrin (FQDN).
$w
El componente del anfitrin del FQDN.
$m
El componente del dominio del FQDN.
Caracteres utilizados en el lado izquierdo de la regla de escritura
$@
Coinciden exactamente cero smbolos
$*
Coinciden cero o ms smbolos
$+
Coincide uno o ms smbolos
$Coincide exactamente un smbolo
$=x
Coindice cualquier frase en la clase x
$~x
Coincide con cualquier palabra que no est en la clase x
Caracteres o metasimbolos utilizados en el lado derecho de la regla de
escritura
$n
400
LINUX
Mayo 2004
Esto har que el resto de esta lnea sea analizada y entonces dada al conjunto de
reglas n para ser evaluada. La salida del conjunto de reglas llamado se escribir
como salida a esta regla. ste es el mecanismo que permite a las reglas invocar
otras reglas.
$#mailer
Este metasmbolo hace que la evaluacin del conjunto de reglas se detenga y
especifica el transporte que deber usarse para transportar este mensaje en el
siguiente paso de su entrega. Este metasmbolo debera ser llamado slo desde
el conjunto de reglas 0 o una de sus subrutinas. Esta es la parte final del anlisis
de direcciones y debera ser acompaado de los dos siguientes metasmbolos.
$@host
Este metasmbolo especifica el anfitrin al que este mensaje ser reenviado. Si el
anfitrin destinatario es el anfitrin local, puede omitirse. El host puede ser una
lista de anfitriones de destino separada por dos puntos (:) que a los que se
intentar entregar el mensaje en secuencia.
$:user
Este metasmbolo especifica el usuario destinatario para el mensaje de correo.
Una regla de reescritura que coincide se intenta repetidamente hasta que falla
una coincidencia, entonces el anlisis contina en la siguiente regla. Este
comportamiento puede cambiarse precediendo el lado derecho con uno de dos
401
LINUX
Mayo 2004
LOCAL_RULE_0 y LOCAL_NET_CONFIG
El conjunto 0 se aplica por sendmail a las direcciones del destinatario tras el
conjunto de reglas 3. La macro LOCAL_NET_CONFIG provoca que las reglas
sean introducidas en la mitad inferior del conjunto 0.
El conjunto 0 se espera que realice la entrega del mensaje al destinatario, as que
debe resolver un triplete que especifica el correo, el anfitrin y el usuario. Las
402
LINUX
Mayo 2004
Cuando sendmail recibe una conexin SMTP desde un anfitrin remoto, inicia
una copia nueva de s mismo para tratar el mensaje entrante. De esta manera, es
posible
para
sendmail
estar
procesando
mltiples
mensajes
entrantes
LINUX
Mayo 2004
terminado.
(Predeterminado a: undefined(indefinido)).
confSEPARATE_PROC (ForkEachJob)
404
LINUX
Mayo 2004
Hoststat
La instruccin hoststat muestra informacin sobre el estado de los anfitriones a
los que sendmail ha intentado enviar correo. La instruccin hoststat es
equivalente a invocar sendmail como:
sendmail bh
405
LINUX
Mayo 2004
La salida presenta cada anfitrin en su propia lnea, y para cada uno la hora
desde que se intent la entrega a l, y el mensaje de estado recibido a esa hora.
Opciones de configuracin de Exim
message_size_limit
Esta opcin limita el tamao de los mensajes que Exim aceptar.
return_size_limit
Esta opcin limita la cantidad de un mensaje entrante que Exim devolver como
parte de un mensaje de rebote.
deliver_load_max
Si la carga del sistema excede el valor dado a esta opcin, se suspenden todos
los envos de correo aunque seguirn aceptndose mensajes para enviar.
smtp_accept_max
ste es el nmero mximo de llamadas SMTP entrantes simultneas que Exim
est preparado para aceptar.
log_level
Esta opcin controla la cantidad de informacin que se escribe en el registro. Hay
tambin algunas opciones cuyos nombres comienzan con log_ que controlan el
registro de informacin especfica.
406