Vous êtes sur la page 1sur 70

1

Network Applications Captulo 1 Introduccin a las redes TCP/IP Conceptos clave


La mayora de los servicios de redes de Linux estn diseados en torno a una relacin de cliente servidor. Las aplicaciones de servidor de red generalmente estn diseadas para permanecer "siempre en ejecucin" inicindose automticamente cuando el sistema arranca y apagndose solamente cuando el sistema lo hace. Por lo general, slo el usuario root puede administrar procesos del servidor. Las aplicaciones de cliente de red suelen ejecutarse nicamente cuando estn en uso y las puede iniciar cualquier usuario. La mayora de los servidores de red Linux y clientes se comunican mediante el protocoloTCP/IP. La direccin TCP/IP tanto del proceso del cliente como del proceso del servidor consta de una direccin IP y de un puerto. Los servidores de red suelen utilizar puertos asignados denominados puertos "bien conocidos" como se catalogan en el archivo /etc/services. Los clientes de red suelen utilizar puertos privilegiados de modo aleatorio. A menudo, los puertos bien conocidos residen en el rango de puertos privilegiados por debajo del puerto nmero 1024. El comando hostname puede utilizarse para examinar la direccin IP actual de la mquina, mientras que el comando netstat -tuna se puede utilizar para examinar todos los puertos abiertos.

Clientes, servidores y protocolo TCP/IP Iniciaremos nuestro cuaderno sobre las aplicaciones de redes con la introduccin a los conceptos de clientes y servidores y los aspectos bsicos del protocolo TCP/IP. Hablaremos del protocolo TCP/IP como si fuera el nico protocolo disponible en Internet. Este no es el caso pero es el protocolo ms utilizado y los conceptos necesarios para entender se amplan (o reducen) de forma natural a los otros protocolos. La mayora de las aplicaciones de redes actuales estn diseadas en torno a la relacin cliente-servidor. El cliente de red suele ser una aplicacin que acta en nombre de una persona que est tratando de realizar alguna tarea en particular tal como navegar en una URL o ejecutar el comando rdate para preguntar la hora actual a un servidor de tiempo. El servidor de red suele ser una aplicacin que ofrece servicios, tales como entregar el contenido de las pginas web o dar la hora actual. El diseo de (aplicaciones que actan como) clientes de red y (aplicaciones que actan como) servidores de red difiere dramticamente. Con el fin de apreciar las diferencias, los compararemos con los agentes en una relacin cliente-servidor, un cliente comprando una barra de caramelo a un vendedor.

Network Applications El servidor Los vendedores y los servicios de red efectivos comparten las siguientes caractersticas. Los servidores estn altamente disponibles As como un vendedor siempre debe utilizar la registradora, incluso cuando no hay clientes, los procesos que ejecutan servicios de red necesitan estar ejecutndose, listos para suplir los servicios cuando se soliciten. Por lo general, los procesos que ejecutan servicios de red se inician en el momento de arranque y continan ejecutndose hasta que la mquina sea apagada. En Linux (y Unix) dichos procesos se conocen como demonios. Por lo general, slo el usuario root puede iniciar o cerrar procesos que funcionan como servidores de red. Los servidores tienen sitios bien conocidos Adems de estar disponibles cuando un cliente necesita el servicio, los vendedores se estn dnde saben que los clientes los pueden encontrar. As como los clientes pueden buscar la ubicacin de vendedores de caramelos desconocidos, en los directorios telefnicos y encontrarlos por direccin postal, los clientes de red pueden ubicar servidores de redes desconocidas mediante un hostname, el cual se convierte en la direccin IP utilizada para tener acceso al servicio. El cliente Por el contrario, el cliente de la tienda de caramelos no necesita estar ni altamente disponible ni ser muy conocido. Un cliente no se estar en una tienda de caramelos todo el da por si decide comprar un caramelo. Del mismo modo, los clientes no necesitan permanecer en sitios bien conocidos. Nuestro cliente no se queda todo el da en casa por si alguien pasa a venderle una barra de caramelo. Los procesos que ejecutan clientes de red son iniciados por usuarios normales y por lo general se ejecutan todo el tiempo necesario para completar una tarea. Cuando alguien hace un receso para ir a almorzar, cierra su navegador de red. Adems, las aplicaciones de cliente no necesitan tener direcciones fijas, pueden moverse de un lugar a otro. Ms adelante veremos esto detalladamente. Direcciones TCP/IP Todo proceso que participa en una conversacin TCP/IP debe tener una Direccin IP, as como cada participante en una conversacin debe tener un nmero telefnico. Adems, todo proceso en una conversacin TCP/IP debe tener un nmero de puerto, cuya analoga ms cercana podra ser una extensin telefnica asociada a un nmero de telfono. Los computadores en una red se identificans con una direccin IP. La direccin IP viene en forma de cuatro nmeros enteros, cada uno en un rango de 0 a 255 (no es una

Network Applications coincidencia que la cantidad de informacin pueda codificarse en un byte de memoria) y tradicionalmente separados por puntos as como 192.168.0.3. Esta representacin suele conocerse de modo informal como un quad punteado. Los procesos en computadores se identifican con unnmero de puerto, el cual es un entero entre 1 y 65535 (no es una coincidencia que la cantidad de informacin se codifique en 2 bytes de memoria). Cada vez que un proceso quiere participar en una conversacin TCP/IP con otro proceso, el kernel debe asignarle primero un nmero de puerto. El protocolo TCP/IP permite dos procesos, para localizarse entre s, cada uno se identifica con una direccin IP y un nmero de puerto. La direccin IP sirve para localizar la mquina en la que el proceso se est ejecutando (esta es la "parte del protocolo IP") y el nmero de puerto se utiliza para localizar el proceso correcto en la mquina (esta es la parte "TCP"). Sockets Con el fin de ilustrar una transaccin tpica TCP/IP, examinaremos la conversacin entre el navegador de red mozilla de un estudiante fictisio ejecutndo en la mquina station3.example.com, lo que se traduce en una direccin IP 123.45.67.89 y el servidor de red httpd ejecutando en academy.redhat.com, lo que se traduce en una direccin IP de 66.187.232.51. El proceso suele parecerse a lo siguiente. 1. Cuando la mquina academy.redhat.com arranca, se inicia el proceso httpd. Primero asigna un socket, ejecuta bind al puerto 80 y comienza a listen conexiones. 2. En algn momento ms tarde, quizs minutos o das, el proceso mozilla se inicia en la mquina station3.example.com. Tambin asigna un socket y solicita connect al puerto 80 de la mquina 66.187.232.51. Puesto que no pidi un nmero de puerto particular, el kernel provee uno aleatorio, digamos 12345. Como le solicita la conexin, provee su propia direccin IP y el nmero de puerto (asignado de modo aleatorio) al servidor. 3. El servidor selecciona la conexin accept. El socket establecido se identifica ahora con direccin IP y nmero de puerto del cliente y del servidor. Una vez se establece el socket, los procesos mozilla y httpd pueden leer informacin con read y escribir a un archivo con write de un modo tan sencillo como leer y escribir desde un archivo, (recuerde ..."todo es un archivo", incluyendo las conexiones de red! Para fines ms prcticos, un socket es slo otro descriptor de archivo). Los verbos resaltados en esta seccin bind (unir), listen (escuchar), connect (conectar), accept (aceptar), e inclusoread (leer) y write (escribir) son trminos bien definidos en Linux (y Unix). Tambin son los nombres de llamadas al sistema de programacin que realizan cada paso. Figure 1. Un socket TCP/IP entre un navegador de red Mozilla y un servidor Apache

Network Applications

En el protocoloTCP/IP, un socket se define como la combinacin de una direccin IP y el nmero de puerto del servidor y cliente. Por ejemplo, qu sucedera si nuestro estudiante estuviera ejecutando mltiples versiones de Mozilla, cada uno haciendo solicitudes de academy.redhat.com? o qu sucedera si mltiples usuarios estuvieran usando la mquina station3.example.com simultneamente todas accediendo academy.redhat.com? De qu forma mantendra en orden un servidor de red qu conversacin estaba teniendo con cul cliente? A cada proceso de cliente se le asignara un nmero de puerto distinto y por lo tanto conversa con el demonio httpd mediante un socket diferente. Figure 2. Mltiples sockets TCP/IP

Ms acerca de puertos Servicios bien conocidos y el archivo /etc/services En nuestro ejemplo, mencionamos que el proceso httpd solicit bind al puerto 80, y en retorno, el proceso mozilla solicit connect al puerto 80 del servidor. Cmo se

Network Applications convino que el puerto 80 era el apropiado para el servidor de red? Los servicios de Internet tradicionales tales como el servidor de red o el servidor ftp o el servidor smtp (de correo electrnico), se conocen como servicios bien conocidos. En mquinas de Linux y (Unix), el catlogo de servicios bien conocidos, y los puertos asignados a ellos se mantienen en el archivo /etc/services. Observe que tanto el cliente como el servidor necesitan concordar con el nmero apropiado de puerto para que el archivo /etc/services sea tan importante en la mquina del cliente como en la del servidor. El slo hecho de que un servicio se liste en el archivo /etc/services no significa que usted est ejecutando (o incluso siendo capaz de ejecutar) ese servicio bien conocido. Puertos privilegiados A diferencia de los clientes, los procesos que ejecutan servidores de red suelen solicitar el puerto al que quieren vincularse. Solamente un proceso puede vincularse a un puerto en un tiempo determinado (A qu se debe esto?) Los puertos menores de 1024 se conocen como puertos privilegiados y son tratados de modo especial por el kernel. nicamente los procesos ejecutndose como el usuario root pueden enlazarse a puertos privilegiados, (esto ayuda a asegurar que si elvis tuviera una cuenta en la mquina academy.redhat.com, no podra iniciar una versin falsa de un servidor de red que podra distribuir informacin falsa). En un principio, los puertos bien conocidos y los puertos con privilegios pretendian coincidir pero en la prctica hay ms puertos bien conocidos que privilegiados. Determinar los servicios actuales de red TCP/IP Uso de hostname para visualizar la direccin IP actual El comando hostname, sin argumentos, muestra el nombre del equipo de la mquina actual. Con la opcin -i, la direccin IP de la mquina se visualiza en su lugar.
[elvis@station elvis]$ hostname station.example.com [elvis@station elvis]$ hostname -i 172.16.62.9

Qu sucede si hay mltiples direcciones IP? El diseo del comando hostname es un poco equvoco, porque las mquinas pueden tener fcilmente ms de una direccin IP (una para cada red mltiple de tarjetas de interfaz, por ejemplo). En dichas situaciones, no hay razn para que cualquier direccin IP tenga prioridad sobre las otras. No obstante, por razones histricas, el kernel mantiene el rastro de un parmetro conocido como su nombre del equipo y el comando hostname -i presenta la direccin IP asociada con ste. Uso del comando netstat para ver los puertos abiertos

Network Applications Cuando un puerto es utilizado por un socket se le conoce como puerto abierto. El comando netstat sirve para ver una variedad de informacin de redes incluyendo los puertos abiertos. Infortunadamente, cuando un comando es llamado sin ninguna opcin la salida del comando netstat se inunda de informacin poco interesante, sockets locales "Unix" utilizados para comunicarse entre procesos en la misma mquina. Sin embargo, cuando se llama con las siguientes opciones se ve informacin ms interesante. Table 1. Opciones para el comando netstat Opcin Efecto -t -u -n -a Presenta los sockets TCP Presenta los sockets UDP Presenta la direccin IP en lugar del hostname Presenta todos los sockets incluso aquellos en estado LISTEN

Muchas ms opciones estn disponibles, para mayor informacin acuda a la pgina de manual netstat(8). Las siguientes opciones se escogieron, no solo porque cuando se combinan producen una salida interesante, sino porque tambin son fciles de recordar: por ejemplo, "tuna" (atn). Cuando se invoca con las siguientes opciones, la salida de netstat es similar a la siguiente.
[elvis@station elvis]$ netstat -tuna Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 127.0.0.1:32768 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:777 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:6000 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:631 127.0.0.1:32769 ESTABLISHED

Network Applications
tcp 0 ESTABLISHED tcp 0 ESTABLISHED ... tcp 0 ESTABLISHED tcp 0 TIME_WAIT tcp 0 TIME_WAIT ... tcp 0 ESTABLISHED tcp 0 ESTABLISHED udp 0 udp 0 ... 0 172.16.62.9:32903 0 172.16.62.9:32848 172.16.62.8:6001 172.16.62.8:6001

0 172.16.62.9:33325 0 127.0.0.1:33953 0 127.0.0.1:33952

172.16.62.8:6001 127.0.0.1:631 127.0.0.1:631

314 127.0.0.1:32769 0 172.16.62.9:34387 0 0.0.0.0:32768 0 0.0.0.0:177

127.0.0.1:631 172.16.62.8:22 0.0.0.0:* 0.0.0.0:*

De las muchas lneas, podemos retirar aquellas asociadas con el protocolo udp y concentrarnos en las columnas 4, 5 y 6 de las filas asociadas con tcp. Table 2. Columnas relevantes desde la salida de netstat Columna Ttulo 1 4 5 6 Protocolo Direccin local Direccin extranjera Estado Funcin El protocolo del socket. Nos referiremos a los sockets tcp. La direccin IP y el nmero de puerto de la mitad local del socket. La direccin IP y el nmero del puerto de la mitad remota del socket. El estado de la conexin TCP. Nos referiremos a los estados ms interesantes LISTEN y ESTABLECIDO.

Direcciones especiales IP Las siguientes direcciones IP pueden hallarse en la columna de direccin local de la salida anterior. Direccin IP 172.16.62.9 Funcin La direccin IP externa de la mquina tal como la report el comando hostname -i. La direccin bucle local. Cada mquina que utiliza las redes TCP/IP es compatible con la direccin de bucle local o loopback. Las conexiones a la mquina o desde la mquina desde esta direccin siempre se retroalimentan a la mquina local para que la comunicacin pueda ocurrir entre dos procesos en la misma mquina. La conversacin que se presenta

127.0.0.1

Network Applications Direccin IP Funcin sobre la direccin de bucle local ocurre internamente, no se expone a la red. 0.0.0.0 Esta direccin especial IP sirve para referirse a "todas" las direcciones IP disponibles. Cuando un proceso se enlaza a un determinado puerto, puede elegir entre utilizar nicamente una direccin particular externa, slo la direccin de bucle local o todas las direcciones IP disponibles.

Sockets de escucha Los sockets de escucha son conexiones pertenecientes a un servidor antes de que los clientes se presenten. Por ejemplo, al final del primer paso de nuestra conexin TCP/IP de muestra anterior, el proceso httpd tendra una conexin abierta en el estado de escucha. Observe en la salida anterior que para las conexiones de escucha, slo se define la mitad de la direccin. Conexiones establecidas Como su nombre lo implica, los sockets establecidos tienen un proceso de cliente y un proceso de servidor con comunicacin establecida. Uniendo esfuerzos Ahora podemos reunir algunas de las partes para analizar unas pocas lneas extradas de la salida anterior.
tcp LISTEN 0 0 0.0.0.0:80 0.0.0.0:*

Este socket est conectado a todas las interfaces en el puerto 80 en el estado de ESCUCHA. Aparentemente esta mquina tambin tiene un servidor de red httpd escuchando activamente conexiones de clientes.
tcp LISTEN tcp LISTEN 0 0 0 127.0.0.1:631 0 127.0.0.1:25 0.0.0.0:* 0.0.0.0:*

Estos dos sockets estn escuchando conexiones, pero slo en la direccin de bucle local. Deben pertenecer a servicios que esperan recibir conexiones desde otros procesos en la mquina local pero no desde la red. Para determinar a qu servicios pertenecen estos puertos ejecutamos un grep desde el archivo /etc/services.
[elvis@station elvis]$ grep 25 /etc/services smtp 25/tcp mail smtp 25/udp mail timed 525/tcp timeserver

Network Applications
timed 525/udp timeserver prospero-np 1525/tcp privileged prospero-np 1525/udp [elvis@station elvis]$ grep 631 /etc/services ipp 631/tcp Protocol ipp 631/ucp Protocol # Prospero non-

# Internet Printing # Internet Printing

Aparentemente, cualquier proceso que haya solicitado el puerto 25 est escuchando clientes de correo electrnico. Probablemente es el demonio sendmail. El proceso de escucha en el puerto 631 est escuchando clientes de impresin. Probablemente es el demonio de impresin cupsd. Ambos servicios se tratarn ms adelante en este cuaderno.
tcp 0 ESTABLISHED 314 127.0.0.1:32769 127.0.0.1:631

Esta lnea refleja una conexin establecida entre dos procesos ambos en la mquina local (observe la direccin IP de bucle local para los dos). El primero est conectado al puerto 32769 (probablemente un puerto cliente asignado de modo aleatorio) y el segundo al puerto 631. Algunos procesos en la mquina local deben estar comunicndose con el demonio cupsd.
tcp 0 ESTABLISHED 0 172.16.62.9:34387 172.16.62.8:22

Nuestra lnea extrada representa una conexin establecida entre lo que aparentemente es un cliente en nuestra mquina local, conectado al servicio enlazado al puerto 22 en nuestra mquina remota. De nuevo, trataremos de llamar a grep para buscar el servicio bien conocido asociado con el puerto 22.
[elvis@station elvis]$ grep 22 /etc/services ssh 22/tcp Protocol ssh 22/udp Protocol imap3 220/tcp Access imap3 220/udp ... # SSH Remote Login # SSH Remote Login # Interactive Mail # Protocol v3

Aparentemente, esta lnea representa una conexin activa entre un cliente ssh en la mquina local y un demonio sshd en una mquina con una direccin IP de172.16.62.8. Ejercicios en lnea Lab Exercise Objetivo: Familiarizarse con la configuracin y actividad TCP/IP.

10

Network Applications Estimated Time: 10 mins. Especificaciones 1. Crear el archivo ~/lab11.1/ipaddr que contenga su direccin IP de mquina como lo reporta el comando hostname como su nica palabra. 2. Crear el archivo ~/lab11.1/listening_ports que contenga una lista de todos los puertos menores que 1024 en su mquina actual, abiertos en el estado de escucha, un puerto por lnea. Question 1

1. El archivo ~/lab11.1/ipaddr que contiene su direccin IP actual de la mquina (como lo report el comando hostname) como su nica palabra. 2. El archivo ~/lab11.1/listening_ports que incluye un listado de todos los puertos menores de 1024 en su mquina actual, abiertos en el estado de escucha, un puerto por lnea.

Captulo 2 Impresin Linux Conceptos clave


Linux de Red Hat Enterprise utiliza el sistema de impresin CUPS para administrar impresoras. El sistema de impresin CUPS est diseado en torno al concepto de cola de impresin, el cual combina un directorio de almacenamiento temporal, un filtro y un dispositivo de impresin. Los comandos gnome-print-manager y lpstat pueden utilizarse para navegar colas de impresin disponibles. Los comandos lpr, lpq y lprm se utilizan para someter ("solicitar") trabajos de impresin, averiguar por trabajos importantes y quitar trabajos de impresin pendientes, respectivamente. Todos examinarn la variable de entorno PRINTER para determinar la cola de impresin por defecto. Los comandos lp y cancel se comportan de un modo similar a los comandos lpr y lprm. Muchas aplicaciones imprimen por entubamiento a stdin de una lnea de comando personalizable lpr.

Introduccin a CUPS Linux de Red Hat Enterprise utiliza el Sistema de Impresin Comn de Unix (CUPS) para administrar impresoras. En lugar de interactuar con la impresora directamente, los usuarios someten las solicitudes de impresin a las colas de impresin que son manejadas por el demonio cupsd. Las solicitudes de impresin pendientes en una cola

11

Network Applications de impresin se conocen como trabajos de impresin. Una vez se ha sometido el trabajo a la cola, los usuarios pueden retornar rpidamente a cualquiera de las tareas que estaban haciendo. Si la impresora est ocupada con otro documento o no tiene papel, o no est disponible en la red, el demonio cupsd controlar la situacin y enviar (o reenviar) el trabajo de impresin a la impresora cuando quede disponible. El demonio cupsd utiliza el Protocolo de Impresin de Internet (IPP), el cual es una extensin directa del protocolo HTTP, diseado para permitir administracin de cola de impresin, a la manera de un sistema operativo independiente. Como resultado, la administracin de CUPS tiene mucho en comn con la administracin del servidor de red. La siguiente grfica identifica los elementos que participan en la impresin Linux; dichos elementos se tratan en detalle ms adelante. Figure 1. Infraestructura de impresin Linux.-

Colas de impresin Una cola de impresin es una combinacin de los siguientes elementos.

Un directorio de almacenamiento temporal donde se pueden almacenar los trabajos pendientes.

12

Network Applications

Una serie de filtros que transforman archivos de entrada en formatos apropiados para cualquier dispositivo secundario conectado a la cola. Un dispositivo secundario, tal como una impresora conectada localmente o una cola de impresin definida en una mquina remota. A continuacin, se listan algunos de los dispositivos secundarios admitidos por CUPS. o impresoras de puerto paralelo conectadas localmente o impresoras localmente conectadas atravs de un USB o impresoras de red utilizando la interfaz LPD o impresoras de red utilizando interfaz de JetDirect o Colas de impresin IPP en mquinas remotas o Colas de impresin LPD en mquinas remotas o Servicios de impresin de red (Microsoft) SMB

La tarea fundamental que enfrenta el administrador al configurar Linux de Red Hat Enterprise para que utilice una impresora particular o un servicio de red de impresin, es definir y nombrar correctamente la cola de impresin para el recurso. Esto generalmente implica identificar cules de los dispositivos secundarios anteriores se utilizan para acceder al dispositivo, elegir un filtro apropiado para el dispositivo, llamar y activar la cola de impresin. En este curso asumiremos que ya se ha hecho todo el trabajo difcil y que las colas de impresin disponibles para su sistema ya se han definido. Navegar las colas de impresin disponibles: gnome-print-manager y lpstat Las colas de impresin estn disponibles ya sea porque se han definido en la mquina local o descubierto mediante la habilidad de CUPS para navegar la red local para impresoras publicadas. En el entorno grfico, gnome-print-manager puede utilizarse para identificar las colas de impresin y controlar los trabajos de impresin sometidos a ellas. El control de impresin puede iniciarse ya sea desde la lnea de comandos o al elegir Herramientas del Sistema: Administrador de Impresin desde el men de aplicaciones GNOME. Figure 1. El administrador de impresin GNOME

Cuando el entorno grfico no est disponible, o incluso cuando lo est, el comando lpstat se puede utilizar para escanear las colas de impresin disponibles desde la lnea de comando. La siguiente lnea de comandos sirve para clasificar el comando lpstat. Table 1. Opciones para el comando lpstat Opcin Efecto -a Lista estado de aceptacin de todas las colas de impresin.

13

Network Applications Opcin Efecto -o -p -s Lista todos los trabajos importantes Lista todas las colas de impresin y si estn inactivas u ocupadas. Lista el estatus de la impresora, includa la cola por defecto y el dispositivo secundario asociado con cada cola.

Para mayor informacin, vea la pgina de manual lpstat(1). A continuacin, elvis descubre que su cola de impresin de sistema por defecto, se llama simplemente "printer" y que tiene varias colas de impresin disponibles, que parecen referirse a la cola de impresin IPP en un servidor de impresora local.
[elvis@station elvis]$ lpstat -s system default destination: printer device for acct2_ire: ipp://printsrv.example.com:631/printers/acct2_ire device for acct_ire: ipp://printsrv.example.com:631/printers/acct_ire device for ba: ipp://printsrv.example.com:631/printers/ba device for checks: ipp://printsrv.example.com:631/printers/checks device for coms: ipp://printsrv.example.com:631/printers/coms device for exec: ipp://printsrv.example.com:631/printers/exec ...

Someter y administrar trabajos: lpr, lpq y lprm CUPS utiliza los comandos de UNIX tradicionales para interactuar con el sistema de impresin: lpr somete archivos e informacin que van a imprimirse, lpq examina el estatus de trabajos de impresin importantes y lprm quita trabajos de impresin pendientes en la cola. Todos los tres comandos utilizan las siguientes tcnicas para especificar qu cola de impresin utilizar en el orden especificado. 1. Si se halla la opcin -P, su argumento se utiliza para especificar la cola de impresin. 2. Si no se utiliza -P para definir la cola de impresin por defecto, entonces se utiliza la variable de entorno PRINTER, si existe. 3. De otra manera, se utiliza el sistema de cola de impresin por defecto. Someter trabajos con lpr Los trabajos pueden someterse con el comando lpr. Todos los argumentos son interpretados como archivos para someter. Si no se especifican argumentos en su lugar se lee la entrada estndar. Las siguientes opciones sirven para clasificar el comando lpr. Table 1. Opciones del comando lpr Opcin -P
impresora

Efecto Uso de la cola de impresin impresora.

14

Network Applications Opcin -# -p -r Efecto Imprime # copias Representa archivos de texto con un encabezado que contiene el nombre del archivo, nombre del trabajo y el sello de fecha. Borra los archivos de impresin nombrados despus de imprimir.

A manera de ejemplo, a continuacin, blondie utiliza el comando lpr para imprimir el archivo README mediante la cola de impresinsales.
[blondie@station blondie]$ lpr -P sales README

Control de trabajos con lpq El comando lpq lista los trabajos pendientes en una cola. En el siguiente ejemplo, blondie somete la salida del comando df para la impresora legal y luego examina el contenido de la cola.
[blondie@station blondie]$ df | lpr -P legal [blondie@station blondie]$ lpq -P legal legal is ready and printing Rank Owner Job File(s) active elvis 1 services 1st blondie 5 (stdin)

Total Size 20480 bytes 1024 bytes

Eliminacin de trabajos con lprm Blondie sospecha que algo anda mal con la impresora legal y decide iniciar utilizando la impresora sales como su impresora por defecto. Primero configura la variable de entorno PRINTER para reflejar sus nuevas preferencias, luego utiliza el comando lprm para quitar su trabajo de la cola legal.
[blondie@station blondie]$ export PRINTER=sales [blondie@station blondie]$ lpq sales is ready no entries [blondie@station blondie]$ lpq -P legal legal is ready and printing Rank Owner Job File(s) active elvis 1 services 1st blondie 5 (stdin) [blondie@station blondie]$ lprm 5 [blondie@station blondie]$ lpq -P legal legal is ready and printing Rank Owner Job File(s) active bowe 1 services [blondie@station blondie]$ df | lpr

Total Size 20480 bytes 1024 bytes

Total Size 20480 bytes

Observe que en el primer comando lpq y el ltimo comando lpr, la variable de entorno PRINTER implcitamente especific la cola de impresin sales.

15

Network Applications Los comandos de Front End alternativos: lp y cancel En Unix, en los das precedentes a CUPS, se implementaron dos ejecuciones paralelas de la infraestructura de impresin. La primera utiliz los tres comandos presentados anteriormente es decir lpr, lpq, y lprm. La segunda utiliz lp, lpstat y cancel para tareas anlogas. Ya hemos visto que lpstat es compatible y es la herramienta preferida para descubrir colas de impresin. Los comandos lp y cancel tambin estn disponibles como variaciones leves de los comandos lpr y lprm. Para mayor informacin, consulte la pgina de manual lp(1). Impresin dentro de aplicaciones Linux Con frecuencia las aplicaciones Linux suelen imprimir entubando la informacin directamente a la entrada estndar del comando lpr. Por lo general, las aplicaciones permiten a los usuarios personalizar la lnea de comando lpr, para que, por ejemplo, se pueda especificar una cola de impresin diferente a la cola de impresin por defecto. En la siguiente toma de pantalla del dilogo de impresin de la aplicacin Evolution, el campo Printer inicialmente slo contena un lpr, pero blondie aadi la opcin -P sales para que la salida de evolution vaya a la impresora sales. Figure 1. Dilogo de impresin de Evolution

La interfaz de red CUPS Por ltimo, seramos negligentes si abandonramos el tema de CUPS sin mencionar la interfaz de red nativa que el demonio cupsd brinda. Como se mencion, la mayora de los clientes interactan con el demonio cupsd mediante el protocolo IPP, el cual es una extensin del protocolo HTTP. Debido a su parecido, el demonio cupsd se comporta en muchas formas como el demonio de web, incluyendo el servidor de las pginas de administracin de estilo CGI. Con el fin de ver las pginas de administracin de CUPS, apunte un navegador de red hacia la direccin de la mquina local, pero sobreescriba el puerto 80 por defecto con el puerto de servicio bien conocido de los demonios de CUPS, 631.
http://localhost:631

El demonio cupsd retornar con una"pgina de inicio" de CUPS desde donde pueden verse las impresoras y los trabajos de impresin y existe dsiponible una copiosa documentacin en lnea. Figure 1. La pgina de inicio de administracin de CUPS

16

Network Applications Ejercicios en lnea Lab Exercise Objetivo: Administrar trabajos de impresin efectivamente. Estimated Time: 10 mins. Configuracin Su estacin debera configurarse con una cola de impresin llamada rha_faux. Esta cola de impresin se anexa a la impresora virtual en ejecucin en el servidor del aula de clase. Usted puede ver la primera pgina de cualquier trabajo de impresin enviado a la impresora en el classroom server. Si el comando lpstat -s no menciona una cola de impresin llamada rha_faux o si no puede acceder a la pgina web del servidor del aula de clase, consltele a su instructor. Especificaciones 1. Imprima el archivo /etc/services mediante la cola de impresin rha_faux y observe su salida. http://rha-server/cgi-bin/rha/printer. 2. Imprima el archivo /usr/share/backgrounds/tiles/floral.png mediante la cola de impresin rha_faux y observe su salida. http://rha-server/cgibin/rha/printer. 3. Desde su navegador de red, imprima la pgina actual directamente a la cola de impresin rha_faux. Question 1

1. Tres trabajos de impresin sometidos a la cola de impresin rha_faux.

Captulo 3 Administracin de archivos de impresin Conceptos clave


El formato de impresin primario en Linux es PostScript. gs y ggv ven con anticipacin los documentos PostScript. enscript convierte archivo de texto en PostScript decorado. ps2pdf y pdf2ps convierten de PostScript a PDF y viceversa. mpage pueden reordenar las pginas individuales de un documento PostScript.

PostScript

17

Network Applications En Linux, la mayora de las impresoras esperan recibir texto ASCII o grficas mediante el formato PostScript. A diferencia de la mayora de los formatos grficos, PostScript es un lenguaje de guiones de gran alcance, el cual se ha adaptado a la tarea de traducir grficas en la pgina impresa. La sofisticacin del lenguaje PostScript le permite realizar trabajos complejos, pero debe utilizar un intrprete para entregar archivos PostScript como imgenes. Muchas impresoras ejecutan intrpretes PostScript originales y se conocen como impresoras PostScript. Cada vez que una impresora PostScript recibe un archivo de texto que comienza con los caracteres %!PS, el resto del archivo se interpreta como un guin PostScript, en lugar imprimirse como un texto ASCII directamente (observe la semejanza con el mecanismo de scripts de Unix#!/bin/bash). En Linux (y Unix) una aplicacin llamada Ghostscript o simplemente gs ejecuta un intrprete PostScript. La ejecucin de un PostScript es una tarea importante y aunque las aplicaciones en Linux pueden utilizarse para ver o manipular archivos PostScript casi todos utilizan Ghostscript como el dispositivo secundario para realizar la traduccin real de PostScript en formatos grficos ms accesibles [1]. Entrega de grficos PostScript con GhostScript Cuando se invoca como el comando gs, el intrprete Ghostscript puede utilizarse para traducir archivos PostScript directamente en la pantalla. Por ejemplo, en el siguiente dilogo, al navegador de red mozilla se le pide imprimir la pgina web actual no a una cola de impresin, sino a un archivo PostScript titulado output.ps. Figure 1. Impresin a un archivo PostScript

Como lo ilustra el comando head, un archivo PostScript es un archivo de texto sencillo que comienza con el "mgico" PostSript%!PS.
[elvis@station elvis]$ head output.ps %!PS-Adobe-3.0 %%BoundingBox: 18 18 558 720 %%Creator: Mozilla PostScript module (Galeon/2003022516) %%DocumentData: Clean8Bit %%DocumentPaperSizes: Letter ...

La siguiente lnea de comandos puede utilizarse para ver el archivo con el intrprete Ghostscript.
[elvis@station elvis]$ gs output.ps GNU Ghostscript 7.05 (2002-04-22) Copyright (C) 2002 artofcode LLC, Benicia, CA. All rights reserved. This software comes with NO WARRANTY: see the file PUBLIC for details.

18

Network Applications
Loading NimbusRomNo9L-Regu font from /usr/share/fonts/default/Type1/n021003l.pfb... 2410668 1054394 1642520 347466 0 done. Loading NimbusSanL-Regu font from /usr/share/fonts/default/Type1/n019003l.pfb... 2785628 1380272 1662616 358654 0 done. ... Loading StandardSymL font from /usr/share/fonts/default/Type1/s050000l.pfb... 4371596 2780842 1722904 370909 0 done. >>showpage, press <return> to continue<< GS>

El intrprete gs devuelve muchas lneas de tipos de fuente que carga, pero al final traduce la imagen en una ventana X por separado. En la lnea de comandos, el usuario es abandonado en un intrprete de comandos interactivo Ghostscript GS> . Si el archivo PostScript contiene pginas mltiples, un simple ENTER en el intrprete de comandos Ghostscript visualizar la prxima pgina. Para aquellos que hablen PostScript, el intrprete puede utilizarse para entregar grficas de modo interactivo. Para aquellos que tengan menos conocimientos, un simple quit (o CONTROL-D) har salir al intrprete gs.
GS>quit [elvis@station elvis]$

Traduccin de PostScript a formatos alternos Por defecto, el intrprete gs traduce los archivos PostScript a una ventana dentro del entorno X. Sin embargo, como lo ilusta la salida de los dispositivos disponibles del comando gs --help, el comando ejecutable gs puede representar un gran nmero de formatos grficos.
[elvis@station elvis]$ gs --help
GNU Ghostscript 7.05 (2002-04-22) Copyright (C) 2002 artofcode LLC, Benicia, CA. All rights reserved. Usage: gs [switches] [file1.ps file2.ps ...] Most frequently used switches: (you can use # in place of =) -dNOPAUSE no pause after page | -q `quiet', fewer messages -g<width>x<height> page size in pixels | -r<res> pixels/inch resolution -sDEVICE=<devname> select device | -dBATCH exit after last file -sOutputFile=<file> select output file: - for stdout, |command for pipe, embed %d or %ld for page # Input formats: PostScript PostScriptLevel1 PostScriptLevel2 PDF Available devices: x11 x11alpha x11cmyk x11gray2 x11gray4 x11mono bmpmono bmpgray bmpsep1 bmpsep8 bmp16 bmp256 bmp16m bmp32b deskjet djet500 laserjet ljetplus ljet2p ljet3 ljet3d ljet4 ljet4d lj5mono lj5gray cdeskjet cdjcolor cdjmono cdj550 pj pjxl pjxl300 uniprint ijs omni bj10e bj200 bjc600 bjc800 faxg3 faxg32d faxg4 pcxmono pcxgray pcx16 pcx256 pcx24b pcxcmyk pbm pbmraw pgm pgmraw pgnm pgnmraw pnm pnmraw ppm ppmraw pkm pkmraw pksm pksmraw tiffcrle tiffg3 tiffg32d tiffg4 tifflzw tiffpack tiff12nc tiff24nc psmono psgray psrgb bit bitrgb bitcmyk pngmono pnggray png16 png256 png16m jpeg jpeggray pdfwrite pswrite epswrite pxlmono pxlcolor bbox dmprt cdj880 ap3250 appledmp atx23 atx24 atx38 bmpa16 bmpa16m bmpa256 bmpa32b bmpamono bmpasep1 bmpasep8 ccr cdj1600 cdj500 cdj670

19

Network Applications
cdj850 cdj890 cdj970 cfax cgm24 cgm8 cgmmono cljet5pr coslw2p coslwxl cp50 declj250 dfaxlow dfaxhigh djet500c dl2100 dnj650c eps9high eps9mid epson epsonc escp fs600 hl1250 hl7x0 ibmpro imagen inferno iwhi iwlo iwlq jetp3852 la50 la70 la75 la75plus lbp8 lj250 lj3100sw lj4dith ln03 lp2563 lp8000 lq850 lxm5700m m8510 mgr4 mgr8 mgrgray2 mgrgray4 mgrgray8 mgrmono miff24 necp6 oce9050 oki182 okiibm paintjet photoex pjetxl plan9bm sgirgb r4081 sj48 st800 stcolor sunhmono t4693d2 t4693d4 t4693d8 tek4696 xes x11cmyk2 x11cmyk4 x11cmyk8 x11rg16x x11rg32x ljet4pjl lj4dithp dj505j picty180 pr201 pr150 pr1000 pr1000_4 jj100 bj10v bj10vh mag16 mag256 mj700v2c mj500c mj6000c mj8000c fmpr fmlbp ml600 lbp310 lbp320 lips2p bjc880j lips4 lips4v escpage lp2000 npdl md50Mono md50Eco md1xMono DJ630 DJ6xx DJ6xxP DJ8xx DJ9xx DJ9xxVIP AP21xx pcl3 md2k md5k stp lxm3200 lx5000 lex7000 lex5700 lex3200 lex2050 gdi epl5800 epl2050 epl2050p alc8500 alc2000 cups cljet5 cljet5c nullpage

...

Mientras algunos de estos "dispositivos" de salida tales como jpeg y png256, se refieren a los formatos estndar para archivos grficos, muchos de los dispositivos se refieren a formatos grficos de impresoras sin PostScript o fax. La utilidad gs puede utilizarse en modo de lote para convertir un gran nmero de archivos PostScript en otro formato o filtrar un documento para impresin en una impresora sin PostScript. El siguiente cuadro resume algunos de las opciones de Ghostscripts ms utilizadas. Table 1. Opciones comunes para Ghostscript Opcin -dNOPAUSE -dBATCH -q -sDEVICE=devname Efecto No hace pausa y espera un RETURN despus de traducir cada pgina. Sale automticamente despus de traducir la ltima pgina. Opera "calmadamente" (no presenta un mensaje por cada pgina traducida). Utiliza el formato de salida devname

Almacena la salida en el archivo filename. Si %d se incluye en el nombre de archivo, se remplazar con el nmero de pgina sOutputFile=filename del documento multi-pgina. -rresolucin Utiliza una resolucin de resolucin DPI (puntos por pulgada).

A manera de ejemplo, la siguiente lnea de comandos convertira el documento PostScript output.ps en imgenes mltiples PNG llamadas output.pagenum.PNG.
[elvis@station elvis]$ gs -dNOPAUSE -dBATCH -q -sDEVICE=png256 sOutputFile=outp ut.%d.png output.ps [elvis@station elvis]$ file output.* output.1.png: PNG image data, 612 x 792, 8-bit colormap, noninterlaced output.2.png: PNG image data, 612 x 792, 8-bit colormap, noninterlaced output.ps: PostScript document text conforming at level 3.0

20

Network Applications Ver grficas PostScript con Ghostview A pesar de su poder, el comando gs de la interfaz de usuario an se puede mejorar. En lugar de utilizar directamente gs muchos usuarios prefieren utilizar la aplicacin Ghostview de GNOME, ggv, la cual ofrece un dispositivo frontal para Ghostscript ms fcil de usar.
[elvis@station elvis]$ ggv output.ps

Figure 1. Visor PostScript del Ghostview de GNOME

La aplicacin Ghostview de GNOME ofrece principalmente las siguientes caractersticas. 1. Escala dinmica: La imagen puede hacerse a escala para ajustar la anchura y altura de la ventana o un porcentaje arbitrario. 2. Paginacin: Al utilizar un panel lateral se puede navegar fcilmente un documento multi-pginas y seleccionar pginas individuales para extraer dentro de un archivo PostScript independiente o imprimir mediante el men File como se ilustra a continuacin. Figure 2. Extraccin de pginas mediante el visor PostScript Ghoscript de GNOME

En teora, la aplicacin Ghostview tambin sirve para ver archivos PDF. En la prctica, ggv ocasionalmente tiene problemas interpretando documentos PDF. Pronto veremos una aplicacin ms estable para visualizar los PDF. Algunos documentos PostScript multi-pginas pueden tambin confundir a ggv. En casos en que ggv tiene problemas para traducir un documento PostScript, el traductor de PostScript gs puede utilizarse directamente. Ver documentos PDF con xpdf La aplicacin xpdf es un simple visor de documentos PDF que sirve para ver, imprimir o convertir documentos PDF en PostScript. Figure 1. El visualizador de documentos PDF xpdf

21

Network Applications Las flechas en la esquina inferior izquierda permiten al documento navegar una pgina o 10 pginas al mismo tiempo. El botn del icono de impresora abre el siguiente dilogo, el cual permite al usuario especificar una lnea de comando lpr o un destino de archivo PostScript. Figure 2. Impresin desde xpdf

Otras alternativas para ver documentos PDF incluyen los comandos gs y ggv. Conversin de documentos PDF La utilidad gs puede utilizarse para convertir documentos PDF en cualquiera de los formatos de salida listados anteriormente. Puesto que la sintaxis del comando gs puede ser tan engorrosa, algunas utilidades frontales de lnea de comando ms sencillas estn disponibles para convertir PostScript en PDF: ps2pdf y amigos. La sintaxis del comando ps2pdf es trivial, donde el primer argumento es la salida del nombre de archivo PostScript (o un - para implicar la entrada estndar) y el segundo argumento es la salida del nombre de archivo de salida PDF (o un - para implicar la salida estndar). A manera de ejemplo rpido, elvis ahora utiliza el comando ps2pdf para convertir su archivo output.ps en formato PDF, el cual es de calidad comparable, pero mucho ms compacto.
[elvis@station elvis]$ ps2pdf output.ps output.pdf [elvis@station elvis]$ file output.* output.1.png: PNG image data, 612 x 792, 8-bit colormap, noninterlaced output.2.png: PNG image data, 612 x 792, 8-bit colormap, noninterlaced output.pdf: PDF document, version 1.2 output.ps: PostScript document text conforming at level 3.0 [elvis@station elvis]$ ls -s output.p* 80 output.pdf 1400 output.ps

El comando pdf2ps tambin existe para realizar la operacin inversa. Representacin del texto para impresin con enscript La utilidad enscript convierte archivos de texto en PostScript, a menudo representando el texto con sintaxis resaltada (pretty printing), un encabezado o impresin de mltiples pginas de texto por pgina impresa. De un modo un poco torpe, el comando enscript enva un archivo de texto directamente al comando predeterminado lpr, dando como resultado que los archivos enscript se

22

Network Applications impriman inmediatamente. Puede utilizar la opcin -o para especificar una salida del archivo PostScript en su lugar. Algunas de las opciones ms comunes se encuentran en el siguiente cuadro. Table 1. Opciones ms comunes para enscript Opcin -o filename -2, -columns=num -a pginas Efecto Generar salida del archivo filename. Formatear texto en 2 (o num) columnas. Solamente imprime pginas pginas. pginas pueden ser de la forma comienzo-fin, la palabra impar o par.

Utiliza el encabezado de texto como un encabezado de pgina. Un -b encabezado formato elaborado es provisto para especificar nombre de archivo, nmero de pgina, etc. -d impresora Envia salida a la cola de impresinimpresora. -E [lang] -G -r -W lang Representa el texto con sintaxis resaltada apropiada para el lenguaje de programacin lang. Utiliza --help-pretty-print para listar los idiomas soportados. Representa pginas con un encabezado elegante. Rota la pgina 90 grados. Genera salida en idioma lang, que puede ser de PostScript, html, superposicin o rtf.

Existen muchas ms opciones. Para mayor informacin, consulte la pgina de manual enscript(1). A manera de ejemplo, la siguiente lnea de comandos traducira el archivo de encabezado C malloc.h como PostScript con 2 columnas por pgina, rotado y representado con un encabezado elegante y una sintaxis resaltada.
[elvis@station elvis]$ enscript -r2 -E -G -o malloc.ps /usr/include/malloc.h [ 2 pages * 1 copy ] left in malloc.ps [elvis@station elvis]$ ggv malloc.ps

Figure 1. Archivo de texto representado en PostScript con enscript

Reordenamiento de PostScript con mpage

23

Network Applications El comando mpage puede utilizarse para extraer pginas desde la mitad de un documento PostScript multi-pginas o reformatear el documento a imprimir con mltiples pginas por hoja. El mpage acepta PostScript o texto como entrada. El texto se traducira en PostScript antes de administrar. Los argumentos se consideran archivos de entrada con la salida dirigida a la salida estndar. Table 1. Opciones de mpage Opcin -o filename -1, -2, -4, -8 -j primero[ltimo][%intervalo] -l -o -P [impresora] -G -r -G -W lang Efecto Generar salida del archivo filename. Imprimir un nmero especificado de pginas por hoja impresa (4 por defecto). Slo imprime un rango especificado de pginas incluyendo slo los intervalo de pginas, si se especifican. Cambia el modo de formato horizontal a vertical. Cambia a imprimir borde alrededor de cada pgina (por defecto est activo). Enva salida PostScript a la cola de impresin impresora. Representa pginas con un encabezado elegante. Rota la pgina 90 grados. Representa pginas con un encabezado elegante. Genera salida en idioma lang, que puede ser de PostScript, html, superposicin o rtf.

La siguiente lnea convierte el archivo PDF RHEL3FamOverWPPdf.pdf en un archivo PostScript e imprime cuatro pginas por hoja.
[elvis@station elvis]$ pdf2ps RHEL3FamOverWPPdf.pdf - | mpage > rhel3.ps [elvis@station elvis]$ ggv rhel3.ps

Figure 1. Un documento PDF convertido en PostScript (4 Up)

24

Network Applications

Ejercicios en lnea Lab Exercise Objetivo: Practicar la salida para impresin. Tiempo estimado: 20 minutos. Especificaciones 1. Utilice el comando enscript para generar un documento PostScript del archivo /usr/share/doc/bash-*/loadables/getconf.c nombre getconf.ps con dos pginas por hoja impresa. Opcionalmente, haga que el comando enscript "pretty print" el texto (agregando sintaxis resaltada). 2. Utilice el comando mpage para extraer las pginas 8 y 9 del archivo getconf.ps creado anteriormente, almacnelas en un nuevo documento llamado getconf89.ps. (Por defecto el comando mpage imprimir 4 hojas por pginas de salida, confundiendo el conteo de pginas. Incluya la opcin apropiada para que slo una pgina de entrada sea impresa por pgina de salida).

25

Network Applications 3. Utilice el comando ps2pdf para convertir el archivo getconf89.ps en un documento PDF titulado getconf89.pdf. Compare los tamaos de los dos documentos. 4. Cree un script de shell corto llamado ~/bin/ps2jpeg, el cual al ser llamado con un slo argumento especificando un archivo PostScript, utiliza el comando gs para convertir el archivo en un documento JPEG llamado output.jpg. Question 1

No hay elemento para calificar este ejercicio. 1. Un documento de mltiples pginas PostScript getconf.ps que contiene el texto del archivo /usr/share/doc/bash-*/loadables/getconf.c, impreso en 2 pginas por pgina de salida. 2. Un documento PostScript de dos pginas getconf89.ps que contiene las pginas 8 y 9 extradas del documento getconf.ps. 3. El documento PDFgetconf89.pdf, el cual es el contenido del documento PostScript getconf89.ps convertido en formato PDF. 4. Un script titulado ~/bin/ps2jpeg que cuando se invoca con un documento PostScript como su nico argumento, convertir el documento en una imagen JPEG llamada output.jpg.

Captulo 4 Sinopsis del correo electrnico Conceptos clave

La administracin del correo electrnico implica dos agentes. Un agente de usuario de correo (MUA, en ingls Mail User Agent), el cual se utiliza para presentar correo recin enviado a un usuario y escribir nuevas respuestas al usuario y un agente de transporte de correo (MTA, en ingls Mail Transport Agent), el cual administra la tarea de segundo plano de intercambiar correo electrnico con otras mquinas remotas. Dependiendo de los detalles de acceso a Internet de un computador, el trabajo de recepcin de correo electrnico se puede delegar a un servidor de buzn, lo que permitira luego que el usuario tuviera acceso a su correo electrnico enviado mediante los protocolos POP o IMAP. De nuevo dependiendo de los detalles de acceso a Internet de un computador, la tarea de entregar correo electrnico se puede delegar a un servidor remoto saliente SMTP. Por lo general, el correo local entregado pero no ledo se almacena temporalmente en el archivo /var/spool/mail/$USER, en donde USER es el nombre de usuario del destinatario. Uno de los MUA ms sencillos es el comando mail.

26

Network Applications Uso del correo electrnico Es discutible que el servicio ms popular ofrecido por Internet es el correo electrnico. El correo electrnico es un concepto sencillo: Alicia escribe un archivo de texto y especifica enviarlo a Bob. Cuando Bob revisa su correo, el archivo de texto estar esperando por l, etiquetado como enviado por Alice. Sin embargo, en la prctica, el sistema de envo de correo electrnico debe ofrecer soluciones a algunos problemas bastante complicados. El software que Alice y Bob utilizan debe resolver los siguientes problemas. 1. La aplicacin de correo electrnico de Alice de alguna manera determina cul es el computador de Bob. 2. Una vez determinada, la aplicacin de Alice debe conectarse a la mquina de Bob y transferir el mensaje. Si la mquina de Bob no puede ser contactada, la aplicacin de Alice debe almacenar temporalmente el mensaje pendiente y tener alguna estrategia para tratar de contactar la mquina de Bob ms tarde. 3. Como destinatario, la aplicacin de correo electrnico de Bob debe tener alta capacidad, por lo tanto cada vez que alguien (Alicia u otra persona) quiera enviarle un mensaje de correo electrnico a Bob, su aplicacin estar disponible para recibirlo. En algunos casos, el recipiente de correo utiliza una mquina que no tiene una conexin permanente de Internet o est detrs de un cortafuegos, lo que luego complicar las cosas. En esta leccin, trataremos varios procedimientos que ofrecen soluciones a estos problemas. La solucin fcil La solucin ms sencilla es la apropiada para los usuarios de computadores con conexiones deinternet bien conocidas y permanentes. En el momento en que muchos protocolos definan cmo enviar correo electrnico, sta fue la solucin estndar. Dicha solucin implica dos aplicaciones separadas cuyos roles se identifican por TLA (acrnimos de tres letras). La primera aplicacin se conoce como MTA Agente de Transporte de Correo y la segunda se conoce como MUA, o Agente de correo de usuario. Figure 1. Envo de correo electrnico en computadores con conexiones de intenet permanentes y bien conocidas

27

Network Applications

El MTA (Agente de transporte de correo) El MTA suele operar en el segundo plano, realizando el trabajo de una oficina postal. El MTA recibe correo electrnico para ser envado desde programas en la mquina local, determina desde la direccin del destinatario la mquina apropiada que debe contactar e intenta conectarse a un MTA complementario ejecutando en la mquina de destinatarios, quienes deben estar escuchando el puerto 25. Si el remitente de MTA no puede contactar el receptor de MTA, el correo se almacena temporalmente en la mquina del remitente y el MTA de remitente intenta de nuevo ms tarde. El MTA tambin se enlaza al puerto local 25, donde recibe conexiones de otros MTA. Cuando ste recibe correo desde un MTA remoto destinado a un usuario en una mquina local, recibe el correo y lo almacena en un directorio de almacenamiento temporal conocido como el buzn de entrada del usuario. En Linux (y Unix), el buzn predeterminado del usuario es /var/spool/mail/username para que el correo en espera del usuario elvis se instale en el archivo /var/spool/mail/elvis. El MTA por defecto de Red Hat Enterprise Linux es un demonio llamado sendmail. El MUA (Agente de usuario de correo) El MUA es la aplicacin en la que la mayora de la gente piensa cuando se refiere a correo electrnico. El MUA recupera correo enviado desde un almacenamiento temporal (buzn de entrada) y lo presenta al usuario como "correo nuevo". El MUA

28

Network Applications permite a los usuarios escribir respuestas o nuevos mensajes y pasar estos mensajes al MTA local para envo. Red Hat Enterprise Linux se distribuye con una amplia seleccin de MUAs, varios de los cuales se describirn en sta y en la siguiente leccin. Servidores de buzn Aunque la solucin anterior es simple, requiere que primero, todos los usuarios estn recibiendo correo electrnico en una mquina conectada constantemente a Internet y segundo, que la mquina tenga un nombre de equipo bien conocido y accesible a otros. Muchos usuarios que por ejemplo, utilizan una conexin de "marcado" o de "alta velocidad" desde un ISP (Proveedor de Servicios Internet) o que estn utilizando mquinas detrs de un cortafuegos de una institucin, no estn en esta situacin. Otra solucin se ha desarrollado para servir a la gente en este caso: los servidores de buzn. Figure 1. Servidores de buzn

En el diagrama anterior, asumimos que elvis est utilizando una conexin de Internet de "alta velocidad" para la cual se ha suscrito a la compaa "ISP.Net". Cuando se conecta al Internet, su mquina ISP le emite a su mquina una direccin IP, pero elvis no puede predecir la direccin IP que recibir. El nombre del equipo, al cual se le asign el ISP a la direccin IP, es probablemente poco atractivo por ejemplo, dhcp-191-93.isx.isp.net, por lo tanto si elvis garantizara la recepcin de la misma direccin IP cada vez, no deseara publicar su nombre de equipo como su direccin de correo electrnico. En su lugar, elvis aprovecha una "cuenta de correo electrnico" que le ofrece su ISP. Es muy probable que su cuenta exista en una mquina Linux o Unix del ISP conectada permanentemente a Internet y se le asigne un nombre de host como por ejemplo pop.isp.net. El ISP ha clasificado todo el correo electrnico destinado a direcciones de forma user@isp.net para ser enviado al MTA de esta mquina. Cuando el MTA ejecutndose en pop.isp.net recibe correo para elvis, lo almacena en un directorio de

29

Network Applications almacenamiento temporal dedicado a elvis (muy probable en el archivo sendmail./var/spool/mail/elvis) y el correo electrnico se considera como entregado. Dado que la mquina de ISP pop.isp.net tiene una conexin de Internet permanente y bien conocida, es mejor candidata para recibir correo electrnico que la mquina de elvis en casa. Cuando elvis est en casa, an necesita tener acceso a su correo electrnico que est en su buzn de entrada en pop.isp.net. Este acceso suele estar provisto en forma de un servidor POP (Protocolo de servidor de correo) o servidor de IMAP (Protocolo de Servicio de Correo por Internet). Servidores POP Los servidores POP realizan un servicio muy sencillo. Permiten a los usuarios acceder al directorio de almacenamiento temporal de un slo usuario y transfieren su contenido a su MUA local. Los servidores POP suelen enlazarse al puerto 110 y requieren que cualquier cliente se autentique mediante un par de nombres de usuario-contrasea. La mayora de los MUAs modernos actan como clientes POP y pueden configurarse para recuperar correo de un servidor especificado. Si un servidor de buzn ejecuta el servicio POP, suele implicar que el servidor de buzn no intenta almacenar de modo permanente, sino temporalmente hasta que el usuario "lo baje "a su mquina local. Servidores IMAP Los servidores IMAP suelen ofrecer a los clientes administracin de buzones de manera ms sofisticada. Los usuarios IMAP pueden mantener varias carpetas en el servidor de buzn no slo su buzn de entrada individual. En general, un servidor IMAP implica que un correo electrnico del usuario sea almacenado de forma permanente en el servidor de buzn y los usuarios ocasionalmente se conecten con un MUA desde una mquina remota para "navegar" su correo. Los servidores IMAP suelen encontrarse en entornos institucionales y corporativos. Los demonios IMAP se enlazan al puerto 143. Envo de correo Puesto que la mquina de elvis mantiene una conexin de Internet casi continua, elvis an desea utilizar su MUA local para enviar correo. Si el MUA local no puede conectarse temporalmente a la mquina del destinatario, el MUA almacenar el correo temporalmente de modo local y tratar de enviarlo ms tarde. Configuracin predeterminada de Red Hat Enterprise Linux Por defecto, Red Hat Enterprise Linux est configurado de modo apropiado para esta situacin. El MTA local se inicia, pero no aceptar conexiones a travs del puerto 25 (excepto desde la direccin de bucle local, 127.0.0.1). Sirve simplemente para entregar

30

Network Applications correo electrnico saliente. Se asume que los usuarios tienen acceso a su correo electrnico desde un servidor POP o IMAP. La configuracin predeterminada puede cambiarse, pero la configuracin necesaria va ms all del alcance de este curso. Servidores de correo saliente Para mquinas que slo tienen conexiones a Internet transitorias, el intentar entregar correo electrnico mediante el MTA local puede no ser apropiado. En su lugar, los usuarios de conexiones de "marcado" y similares suelen utilizar lo que se conoce como un SMTP (Protocolo sencillo de transferencia de correo) o servidor de correo saliente. Muchos ISP e instituciones ofrecen servidores SMTP salientes, a menudo con nombres como smtp.isp.net. Figure 1. Servidor de correo saliente

El MTA en el servidor SMTP desea aceptar correo de mquinas "locales", a pesar de que no es el destinatario final para el correo electrnico. En su lugar, el servidor SMTP transmite el correo y lo reenva a su destino. Si se presenta algn problema, el almacenamiento temporal y el reenvo de correo pendiente es ahora responsabilidad del servidor SMTP. Muchos MUAs permiten a los usuarios especificar un equipo remoto para que acte como el servidor SMTP del usuario (contrario a reenviar correo al MTA local para envo). [1] Entrega local

31

Network Applications Todos los casos anteriores asumen que el usuario est enviando correo electrnico desde su mquina a un destinatario en una mquina remota. Linux (y Unix) tambin permite a los usuarios en una mquina local enviar correo electrnico entre s, donde el correo electrnico se dirige nicamente al nombre de usuario tal como blondie. Para entrega local no se requiere ninguno de los servidores locales POP o SMTP porque el correo electrnico se entrega al instante por el MTA local. El MUA mail Quizs el MUA ms sencillo es un comando llamado simplemente mail. El comando mail data de los primeros das de Unix y por lo tanto depende altamente del MTA local. El comando mail no puede ser configurado para acceder al correo desde un servidor POP o IMAP, ni puede ser configurado para utilizar un servidor SMTP para correo saliente. En su lugar, puede esperar correo que sea enviado al directorio de almacenamiento temporal y pasa al MTA de correo local para envo. No obstante, en situaciones tales como envo de correo a usuarios locales, el comando mail puede ser bastante eficaz. Envo de correo electrnico con mail El comando mail puede utilizarse para enviar correo a destinatarios especificados como argumentos en la opcin de la lnea de comandos. El cuerpo del mensaje se lee desde la entrada estndar (la cual puede leerse desde una tubera, un archivo redirigido o desde un teclado directamente, en donde CONTROL-D ("EOF") se utiliza para indicar el fin del mensaje). Las opciones de lnea de comandos en el cuadro siguiente pueden utilizarse para especificar una lnea de asunto, destinatario a, "Cc:", etc. Table 1. Opciones de lnea de comandos para el comando mail Opcin -v -s
asunto

Efecto Modo verboso. Imprime la comunicacin entre el comando mail y el MTA local (o remoto). Especifica una lnea de asunto.

-c addrs Enva copia a las direcciones especificadas. -b addrs Enva copias ciegas a direcciones especificadas. A manera de ejemplo, a continuacin, elvis enva por correo el contenido del archivo lyrics.txt a blondie.
[elvis@station elvis]$ mail -s "here they are" blondie < lyrics.txt

32

Network Applications Uso de mail para leer correo El comando mail puede tambin utilizarse para leer la correspondencia de un almacenamiento temporal de correo de usuario local. Sin embargo, la interfaz es primitiva y por lo general se utilizan en su lugar otros MUAS. Para mayor informacin vaya a la pgina de correo mail. Actualmente, el comando mail se considera como una forma rpida y eficaz de enviar correo. En el siguiente ejemplo, blondie est utilizando el comando mail sin argumentos para ver el correo en su buzn y luego borrar el mensaje y salir.
[blondie@station blondie]$ mail Mail version 8.1 6/6/93. Type ? for help. "/var/spool/mail/blondie": 1 message 1 new >N 1 elvis@redhat.com Thu Nov 13 00:08 16/653 "here they are" & RETURN Message 1: From elvis@station.example.com Thu Nov 13 00:08:45 2003 Date: Thu, 13 Nov 2003 00:08:44 -0500 From: elvis@station.example.com To: blondie@station.example.com Subject: here they are 100 bottles of ink on the wall. 100 bottles of ink. Take one down, Pass it around. & d & q

Ejemplos Envo de correo Una forma fcil y rpida de enviar archivo de texto a otro usuario es con mail
[julius@station julius]$ mail -s "here's the file" nero < somefile

Tambin es fcil con mail enviar la salida de un comando a otro usuario.


[julius@station julius]$ find . -name "*.old" | mail -s "find output" nero

Protocolo sencillo de transporte de correo Mediante un simple comando de correo con la opcin verbosa, un usuario puede observar el proceso por el que pasa sendmail para entregar un mensaje.
[julius@station julius]$ mail -v -s hello elvis@localhost this is only a test .

33

Network Applications
elvis@localhost... Connecting to [127.0.0.1] via relay... 220 station.example.com ESMTP Sendmail 8.12.8/8.12.8; Sat, 12 Apr 2003 13:08:30 -0400 >>> EHLO station.example.com 250-station.example.com Hello localhost.localdomain [127.0.0.1], pleased to meet you 250-ENHANCEDSTATUSCODES 250-PIPELINING 250-8BITMIME 250-SIZE 250-DSN 250-ETRN 250-DELIVERBY 250 HELP >>> MAIL From:julius@station.example.com SIZE=60 250 2.1.0 julius@station.example.com... Sender ok >>> RCPT To:elvis@station.example.com >>> DATA 250 2.1.5 elvis@station.example.com... Recipient ok 354 Enter mail, end with "." on a line by itself >>> . 250 2.0.0 h3CH8U3j002250 Message accepted for delivery elvis@localhost... Sent (h3CH8U3j002250 Message accepted for delivery) Closing connection to [127.0.0.1] >>> QUIT 221 2.0.0 station.example.com closing connection

Ejercicios en lnea Lab Exercise Objetivo: Enviar correo electrnico a usuarios locales. Estimated Time: 10 mins. Especificaciones 1. Utilice el comando mail para enviar por correo el contenido del archivo /proc/cpuinfo a sus cuentas primaria y alterna (i.e, los usuarios nombredeusuario_a y nombredeusuario_b, donde nombre de usuario es el nombre de su cuenta primaria. 2. Cree el archivo ~/you_have_mail que contiene una lista ordenada de todos los usuarios en su sistema local que actualmente tienen correo en sus "buzones de entrada" (i.e. su directorio de almacenamiento temporal entregado pero no ledo an). Debe incluir usuarios de "sistema" en su lista y listar un usuario por lnea. Question 1

1. Sus cuentas alternas primera y segunda tienen el contenido del archivo /proc/cpuinfo en su depsito de correo entregado. 2. El archivo ~/you_have_mail debera contener una lista ordenada de como los

34

Network Applications usuarios tienen correo en espera en su depsito de correo, (obviamente, sus nombres de cuentas alternas primera y segunda deben incluirse en esta lista).

Captulo 5 El MUA Evolution Conceptos clave


El MUA evolution ofrece un entorno sofisticado para la administracin de correo electrnico. La ventana de composicin permite la composicin de mensajes ya sea en texto sin formato o en formato HTML e incluye un corrector ortogrfico y soporte para anexos. El correo electrnico de entrada puede procesarse automticamente mediante un filtrado sofisticado. evolution permite enviar correo desde el depsito de correo local y servidores POP o IMAP.

Evolution Quizs el MUA ms sofisticado que se distribuye con Red Hat Enterprise Linux es evolution. El agente de usuario de correo es apenas un componente del administrador de la informacin personal de evolution. En esta seccin, presentamos algunas de las caractersticas clave de la aplicacin evolution e identificamos cmo configurar evolution para recibir correo electrnico desde varias fuentes y cmo enviar correo mediante el servidor local MTA o el servidor remoto SMTP. De hecho, Evolution es mucho ms que un MUA. En la toma de pantalla siguiente ver que tambin tiene herramientas para administrar contactos, calendario de eventos y listas de tareas. Lo invitamos a experimentar con estos elementos cuando el tiempo se lo permita, pero la leccin se enfocar en el uso de evolution para envo y recepcin de correo. Navegar correo electrnico Figure 1. El agente usuario de correo Evolution

Desde la pantalla principal, el correo se puede clasificar en una jerarqua de carpetas navegables mediante el recuadro en la parte superior izquierda. En la parte superior derecha del recuadro, se presenta un resumen de mensajes almacenados en la carpeta actual seleccionada. En el recuadro de la parte inferior derecha se visualiza el contenido del actual mensaje.

35

Network Applications Haciendo "click derecho" en un mensaje, un men emergente ofrece una variedad de acciones, tales como almacenar el mensaje como archivo de texto, responder a un mensaje o reenviar el mensaje, "marcando" el mensaje con una bandera particular, "etiquetando" el mensaje en un color determinado o identificando el mensaje como correo basura. Un mensaje se puede archivar en otra carpeta con slo arrastrar el mensaje al sitio de la carpeta deseada en el panel a mano izquierda. Al elegir "Agregar remitente a agenda de direcciones" se pueden crear nuevos contactos fcilmente. Por ltimo, los filtros se pueden crear al tratar correos electrnicos con caractersticas similares al actual mensaje. Escribir correo electrnico La ventana de composicin se utiliza para crear un nuevo mensaje, responder o reenviar un mensaje. Figure 1. La ventana de composicin de correo electrnico Evolution

Como se puede ver en la toma de pantalla, la ventana de composicin proporciona un editor sencillo para componer texto y anexar archivos. Si se desea, los mensajes se pueden formatear como "HTML", para permitir a los usuarios incorporar enlaces, imgenes, y elementos sencillos HTML en el mensaje. Como es texto escrito, las palabras no identificadas por el corrector ortogrfico son subrayadas y con un click derecho, se sugieren remplazos que pueden buscarse en el diccionario o palabras que pueden agregarse al diccionario personal del usuario. Al seleccionar el men Security, los usuarios pueden elegir entre firmar o encriptar su mensaje mediante un protocolo de clave pblica encriptada. Uso de Filtros Evolution La aplicacin evolution soporta muchas caractersticas que permiten administrar grandes cantidades de correo electrnico. Una de las herramientas primarias son los filtros de correo electrnico. Como se ve a continuacin, los filtros se componen de una seleccin de criterios coincidentes que sern aplicados al correo electrnico recibido. Si un mensaje coincide con los criterios entonces se pueden poner en prctica una norma o un grupo de normas.

36

Network Applications Figure 1. Filtros de correo electrnico Evolution

Los mensajes se pueden seleccionar al combinar algunos de estos criterios.


El remitente o el destinatario del mensaje contiene un texto especificado. La lnea de asunto u otra lnea de encabezado especificada, contiene un texto especificado. El cuerpo del mensaje contiene texto especificado. La fecha en la que se envi o se recibi el mensaje o despus del tiempo especificado. El mensaje se ha etiquetado o marcado para "seguimiento". El mensaje parece haber sido enviado desde una lista de correo especificada. El mensaje coincide con una expresin regular especificada. El mensaje cuando es entubado a un comando de shell arbitrario, devuelve un valor de retorno especificado.

Cuando coincide, el mensaje puede estar sujeto a alguna combinacin de los siguientes destinos.

El mensaje puede ser copiado o movido automticamente a una carpeta especificada. Se puede asignar al mensaje una bandera particular, una puntuacin o una etiqueta. Puede reproducirse una campana de terminal o algn sonido personalizado. El mensaje puede entubarse a una shell de comando arbitraria.

Configuracin de cuentas en Evolution Evolution permite a los usuarios administrar mltiples cuentas, donde una cuenta representa un origen particular de correo electrnico, un destino particular para correo electrnico, una identidad particular de un remitente entre otras opciones. Las cuentas se pueden crear, borrar, habilitar, inhabilitar o modificar mediante el siguiente dilogo, el cual se obtiene seleccionando Herramientas: Configuracin... y eligiendo el "Panel de cuentas de correo". Figure 1. Administracin de cuentas Evolution

Especificacin de la fuente del correo electrnico Evolution, permite recuperar correspondencia desde varias fuentes como se puede apreciar en el siguiente dilogo.

37

Network Applications Figure 1. Especificacin de fuentes de las cuentas de correo de Evolution

Las primeras dos selecciones especifican que el correo se debera recuperar desde los servidores POP o IMAP. Para cada uno, el dilogo permite especificar el nombre de servidor, el nombre de cuenta y la contrasea. Si el servidor de POP o IMAP soporta codificacin, el encapsulado SSL puede especificarse. Tambin se ofrecen otros esquemas de autenticacin (diferentes a un par de nombre de usuario-contrasea), si el servidor los soporta. El resto de las opciones permiten a evolution sacar correo directamente del depsito de correo MTA o compartir carpetas con otros MTA como por ejemplo, mutt, pine y elm. Especificar una tcnica de entrega de correo electrnico Para cada cuentase pueden especificar una de dos tcnicas de entrega. Figure 1. Especificar una tcnica de entrega de cuenta de correo electrnico de Evolution

Si se debe utilizar un host SMTP, debe especificarse el nombre del host. Adems se pueden establecer soporte para conexiones encriptadas o autenticacin de usuario si la mquina SMTP es compatible o lo requiere. La otra alternativa es hacer que evolution entregue correo simplemente pasndolo al MTA local ("enviar correo"), en cuyo caso no hay ninguna otra configuracin. Captulo 6 Aplicaciones de diagnsticos de red Conceptos clave

/sbin/ifconfig presenta la configuracin IP local. ping confirma la conectividad de red de bajo nivel entre hosts. host hace solicitudes directas de DNS. El comando netstat -tuna lista los servicios actuales activos de red y conexiones. /sbin/traceroute puede diagnosticar problemas de enrutado.

Configuracin requerida para el protocolo de internet El protocolo de Internet o ms comn el protocolo IP es el estndar adoptado para entregar informacin entre mquinas conectadas por una red. Para utilizar el protocolo IP, una mquina debe configurarse de la siguiente manera.

38

Network Applications Aunque la configuracin de un sistema con la informacin IP de configuracin apropiada requiere privilegios de root, este cuaderno demuestra la forma de determinar la configuracin de red de una mquina local e introduce utilidades que sirven para confirmar que la infraestructura de red de la mquina est funcionando adecuadamente. Direccin IP Linux (y Unix) representa los dispositivos de red conectados a una mquina (tales como una tarjeta Ethernet, una tarjeta Token-Ring, un mdem utilizado para conexiones de marcado, etc...) como una interfaz de red. Antes de que una interfaz pueda utilizarse para enviar o recibir trfico, debe configurarse con una direccin IP que sirve como la identidad de la interfaz. Portal predeterminado La mecnica de un protocolo IP organiza mquinas en subredes o subnets en ingls. Todas las mquinas en una subred pueden intercambiar informacin directamente. Las subredes IP estn a su vez ligadas a otras subredes por mquinas que actan como routers. Un router tiene mltiples interfaces de red, por lo general cada uno participa en una subred distinta. Con el fin de comunicarse con un equipo en otra subred, los datos deben pasarse a un router, el cual (con la ayuda de otros routers) encamina la informacin a la subred apropiada y desde all al host apropiado. Para comunicarse con las mquinas fuera de la subred local, su mquina debe conocer la identidad de un router cercano. El router utilizado para encaminar paquetes fuera de su subred local se conoce como un portal predeterminado. Nameserver Otras mquinas en internet a su vez se identifican por una direccin IP. La gente suele pensar en trminos de nombres, por lo tanto el protocolo se ha desarrollado para asignar nombres a las direcciones IP. El protocolo se llama Servicio de Nombres de Dominio o ms conocido como DNS. El protocolo DNS requiere que cada mquina tenga disponible uno o ms servidores DNS (comnmente llamados servidores de nombre), los cuales pueden servir tanto de base de datos para asignar un nombre a direcciones locales IP como tambin de punto de partida para determinar direcciones IP para nombres de dominio de los cuales el servidor no tiene conocimento directo. Determinar su(s) direccin(es) IP: /sbin/ifconfig En una leccin anterior presentamos el comando hostname -i, el cual muestra la direccin IP en su equipo local. En realidad una "mquina" no tiene una direccin IP, las interfaces de red s. Esta leccin tratar el tema de direcciones IP de interfaces de red en mayor detalle.

39

Network Applications En Linux (y Unix), cada dispositivo de red se representa como una interfaz de red, (por una vez, encontramos algo que no es un archivo!). Linux nombra interfaces de acuerdo con el tipo de dispositivo que representa. El siguiente cuadro lista algunos de los nombres ms utilizados en Linux. Table 1. Interfaces de red Linux Interfaz ethn trn fddin pppn lo Dispositivo Tarjeta Ethernet Tarjeta de Token-Ring Tarjeta de fibra ptica Conexin de marcado a travs de mdem Dispositivo de bucle local

En cada caso, n se remplaza por un nmero entero para cada instancia de un dispositivo determinado conectado a una mquina. Confirmar la configuracin de la interfaz de red El comando ifconfig muestra la configuracin de interfaces de red activas. Puesto que el comando suele ser utilizado por root para configurar interfaces, ste vive dentro del directorio /sbin, el cual est fuera de la RUTA predeterminada para los usuarios estndar. No obstante, los usuarios estndar pueden usar el comando para ver informacin de configuracin de interfaz, utilizando una referencia absoluta como en el ejemplo a continuacin.
[blondie@station blondie]$ /sbin/ifconfig eth0 Link encap:Ethernet HWaddr 00:00:86:4D:F0:0C inet addr:192.168.0.51 Bcast:192.168.0.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1716503 errors:0 dropped:0 overruns:2 frame:0 TX packets:2146415 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:193489123 (184.5 Mb) TX bytes:1299754457 (1239.5 Mb) Interrupt:11 Base address:0xd400 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:206054 errors:0 dropped:0 overruns:0 frame:0 TX packets:206054 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:22911068 (21.8 Mb) TX bytes:22911068 (21.8 Mb)

A la interfaz eth0 se le asigna una direccin IP de 192.168.0.254.

40

Network Applications El comando ifconfig presenta una estrofa de informacin de la configuracin IP y las estadsticas de uso para cada interfaz de red activa. En la mayora de los casos, los usuarios esperaran ver dos estrofas. Una estrofa con la configuracin para una tarjeta Ethernet y otra con la configuracin para el dispositivo virtual de bucle local. La lnea importante es la segunda lnea, la cual visualiza la direccin IP asignada a la interfaz. Si la lnea que contiene la direccin IP falta o si la direccin no parece razonable para su configuracin de red local, podr tener problemas para acceder la red. Determinar su portal por defecto: /sbin/route Como se mencion al comienzo de la leccin, para la comunicacin con equipos en sus subredes locales se utilizan procedimientos diferentes a la comunicacin con hosts en una subnet separada. El kernel de Linux, al igual que otras kernels, define las mquinas que deberan considerarse locales y la gateway que debera usarse para ayudar a comunicarse con aquellas que no lo son. Este cuadro se llama cuadro de enrutamiento. Si usted es un usuario estndar, el comando route se puede utilizar para ver el cuadro de enrutamiento del sistema. Si es un usuario root, el comando puede tambin utilizarse para manipular el cuadro. Al igual que el comando ifconfig, el comando route vive en el directorio /sbin, por lo tanto los usuarios estndar deben invocarlo mediante una referencia absoluta.
[blondie@station blondie]$ /sbin/route Kernel IP routing table Destination Gateway Genmask Use Iface 192.168.0.0 * 255.255.255.0 0 eth0 127.0.0.0 * 255.0.0.0 0 lo default server1.example 0.0.0.0 0 eth0

Flags Metric Ref U U UG 0 0 0 0 0 0

Un cuadro de ruta estndar visualiza dos tipos de entrada. El primer tipo define qu subredes se deben considerar como locales. En general, debera haber una lnea que especifique una subred para cada interfaz activa. En la salida anterior, la primera lnea define la subnet asociada con la interfaz de Ethernet (con una direccin IP de 192.168.0.51) y la segunda lnea define la subred asociada con la interfaz de bucle local (con una direccin IP de 127.0.0.1). El segundo tipo de entrada que sirve para definir gateways es el ms importante para nuestra discusin. Dichas entradas de gateway se pueden distinguir porque el host est definido en la segunda columna ("Gateway") y la cuarta columna ("Banderas") contiene una "G". Cada cuadro de ruta debe contener una entrada para la gateway "por defecto" y la segunda columna debe contener el nombre del host del gateway. La misma informacin se puede ver mediante la direccin IP en lugar de nombres del host utilizando /sbin/route -n.

41

Network Applications
[blondie@station blondie]$ /sbin/route -n Kernel IP routing table Destination Gateway Genmask Use Iface 192.168.0.0 0.0.0.0 255.255.255.0 0 eth0 127.0.0.0 0.0.0.0 255.0.0.0 0 lo 0.0.0.0 192.168.0.254 0.0.0.0 0 eth0

Flags Metric Ref U U UG 0 0 0 0 0 0

Aqu, blondie determina que su mquina est utilizando el host 192.168.0.254 como su gateway predeterminado. La bandera "G" indica que esta lnea se utiliza para definir una gateway, no una subred local. Determinar su(s) nombre de usuario(s) El Servicio de Nombres de Dominio permite a los usuarios referirse a los computadores de la red mediante nombres de host en lugar de direcciones IP. A diferencia de los otros dos aspectos de configuracin de red, un servidor de nombre es hasta cierto punto opcional. Con el fin de comunicarse con otras mquinas su equipo debe tener una direccin IP. Si desea comunicarse con mquinas fuera de la subred, usted debe tener una gateway por defecto. Sin embargo, si los usuarios quieren referirse a cada mquina por direccin IP en lugar de nombre de mquina, su equipo puede comunicarse mediante el protocolo IP sin consultar el servidor de nombres. No obstante, en la prctica los servidores de nombres parecen ser ms necesarios (se le facilita ms memorizar academy.redhat.com o 66.187.232.51?). Convertir un nombre de host en una direccin IP suele conocerse como resolver una direccin y la biblioteca que ejecuta el servicio de nombre se llama la biblioteca resolv. Cuando la biblioteca intenta resolver una direccin suele haber dos recursos disponibles. Configuracin DNS esttica: /etc/hosts El primer recurso es un archivo de texto sencillo llamado archivo /etc/hosts. Aunque slo root puede editar el archivo cualquier usuario puede observarlo.
[blondie@station blondie]$ cat /etc/hosts # Do not remove the following line, or various programs # that require network functionality will fail. 127.0.0.1 localhost.localdomain localhost rha-server 192.168.0.254 server1.example.com server s 192.168.0.1 station1 station1.example.com www1 www1.example.com 192.168.0.51 station51 station51.example.com 192.168.129.201 z 160.168.170.24 rosemont.example.com dhcp-1116-114 r

El formato del archivo es sencillo. El primer smbolo en la lnea debera ser una direccin IP y los smbolos subsiguientes son nombres de hosts que deberan apuntar a la direccin IP. El caracter estndar de comentario de Unix (#) tambin es compatible.

42

Network Applications Si el equipo slo se est comunicando con pocas mquinas o si un administrador desea crear un atajo de nombres de host (tal como s) o si deseara anular el servidor de nombre local, las entradas pueden agregarse al archivo /etc/hosts mediante un editor de texto sencillo. Claro est que esta tcnica no escala bien. Usted no puede esperar que el archivo /etc/hosts le responda a todo. Configuracin DNS dinmica: /etc/resolv.conf Cuando el /etc/hosts local no puede dar respuesta, la biblioteca resolv consulta un servidor de nombres. Para determinar qu mquina consultar que est ejecutando un servidor de nombres, examina el archivo de configuracin de la biblioteca de resolv, /etc/resolv.conf.
[blondie@station blondie]$ cat /etc/resolv.conf ; generated by /sbin/dhclient-script search example.com nameserver 192.168.0.254 nameserver 207.175.42.153

El host 192.168.0.254 est actuando como el servidor de nombre primario. El host 207.175.42.153 est actuando como el servidor de nombres secundario. El archivo de configuracin /etc/resolv.conf utiliza lneas que comienzan por la palabra clave servidor de nombres para especificar las direcciones IP de mquinas ejecutando servidores de nombre. Si se especifican varios servidores de nombres, se utilizar el primero por defecto. Si no est disponible se utilizar el segundo y as sucesivamente. Por consiguiente, el primer servidor de nombres listado suele llamarse servidor de nombres primario, el segundo servidor listado servidor de nombres secundario y as sucesivamente. Observe que el servidor de nombres no necesita estar cerca de la mquina. Cualquier equipo que est ejecutando el servidor de nombres y le permita solicitarlo, puede usarse como servidor de nombres. En la prctica, el uso de un servidor de nombres local genera un mayor rendimiento. Utilidades de diagnstico de red En las secciones anteriores, hemos esbozado las tcnicas ms directas para determinar su configuracin de red IP local de la mquina. En esta seccin, presentaremos las utilidades de diagnstico que sirven para asegurar que las configuraciones estn funcionando correctamente con su entorno de red local. Confirmacin de conectividad IP: ping

43

Network Applications El comando ping sirve para confirmar la conectividad IP entre dos equipos. El primer argumento para ping puede ser el nombre del equipo o la direccin IP de la mquina que usted deseara contactar.
[blondie@station blondie]$ ping 192.168.0.254 PING 192.168.0.254 (192.168.0.254) 56(84) bytes of data. 64 bytes from 192.168.0.254: icmp_seq=1 ttl=64 time=0.245 ms 64 bytes from 192.168.0.254: icmp_seq=2 ttl=64 time=0.180 ms 64 bytes from 192.168.0.254: icmp_seq=3 ttl=64 time=0.186 ms CTRL-C --- 192.168.0.254 ping statistics --3 packets transmitted, 3 received, 0% packet loss, time 1998ms rtt min/avg/max/mdev = 0.180/0.203/0.245/0.033 ms

El comando ping debera presentar una lnea por segundo, incluyendo el nmero de secuencia y la informacin de temporizacin sobre la demora de ida y vuelta, la cual reporta el tiempo necesario para recibir una respuesta de la mquina remota. El comando ping continuar ejecutndose hasta cancelarse con la secuencia de control CONTROL-C. Si no hay respuesta para el comando ping, usted no podr esperar que se presente ninguna comunicacin de red de alto nivel. El culpable suele ser un cable Ethernet que se ha desconectado fsicamente de la mquina o de la pared. Las inconsistencias en la tasa en la que las lneas se presentan o la discontinuidad en los nmeros de secuencia son generalmente indicativos de una red congestionada o de una conexin ruidosa y se puede esperar un bajo rendimiento de red de protocolos de alto nivel. Examen de ruta: /usr/sbin/traceroute Cuando se conecte a una mquina fuera de su subred, su paquete pasa de router a router a medida que atraviesa varias subredes hasta que finalmente se enva a la subred que contiene la mquina destino. La ruta del paquete, cuando pasa de router a router puede trazarse con el comando /usr/sbin/traceroute. El comando traceroute suele llamarse con un argumento, el nombre del equipo o la direccin IP de la mquina destino.
[blondie@station blondie]$ /usr/sbin/traceroute www.whitehouse.gov traceroute: Warning: www.whitehouse.gov has multiple addresses; using 12.129.72.144 traceroute to a1289.g.akamai.net (12.129.72.144), 30 hops max, 38 byte packets
1 2 3 4 5 6 7 8 server1 (192.168.0.254) 0.243 ms 0.162 ms 0.252 ms 10.44.160.1 (10.44.160.1) 8.563 ms 10.488 ms 7.642 ms srp2-0.rlghncg-rtr1.nc.rr.com (24.25.1.99) 7.382 ms 10.162 ms 0.874 ms srp4-0.rlghnca-rtr2.nc.rr.com (24.25.2.146) 10.008 ms 8.798 ms 15.931 ms srp13-0.rlghncrdc-rtr2.nc.rr.com (66.26.33.178) 4.259 ms 10.079 ms 10.031 ms son0-1-1.chrlncsa-rtr6.carolina.rr.com (24.93.64.81) 29.675 ms 9.950 ms 29.665 ms pop1-cha-P4-0.atdn.net (66.185.132.45) 10.087 ms 21.045 ms 8.202 ms bb2-cha-P2-0.atdn.net (66.185.132.42) 11.392 ms 20.371 ms 9.712 ms

44

Network Applications
9 bb2-ash-P13-0.atdn.net (66.185.152.50) 29.322 ms 26.192 ms 25.901 ms 10 pop2-ash-P1-0.atdn.net (66.185.139.211) 26.506 ms 26.485 ms 26.208 ms 11 ATT.atdn.net (66.185.140.250) 26.704 ms 27.127 ms 21.004 ms 12 tbr1-p014001.wswdc.ip.att.net (12.123.9.82) 38.888 ms 22.006 ms 28.123 ms13 gbr6-p20.wswdc.ip.att.net (12.122.11.174) 29.880 ms 19.628 ms 31.080 ms 14 gar3-p370.wswdc.ip.att.net (12.123.9.69) 24.231 ms 29.829 ms 20.827 ms 15 mdf1-gsr12-2-pos-7-0.atl1.attens.net (12.122.255.154) 40.184 ms 50.815 ms 38.903 ms 16 mdf1-bi8k-2-eth-1-1.atl1.attens.net (12.129.64.246) 39.845 ms 39.803 ms 39.887 ms 17 12.129.72.144 (12.129.72.144) 39.856 ms 39.934 ms 39.898 ms

Usted hallar con frecuencia que los paquetes toman rutas sorpresivas para ir de un lugar a otro. El nmero de routers que su paquete pasa suele conocerse como el nmero de saltos que ha hecho el paquete. El paquete anterior hizo 17 saltos para alcanzar su destino. Si su paquete no puede completar el primer salto, es probable que su gateway por defecto de su mquina no haya sido determinada correctamente. Si su traceroute termina entre la primera pareja o salta (sin alcanzar el destino final), el problema es un router local mal configurado y su administrador de red local probablemente ayude a resolver el problema. Si el comando traceroute se agota a ms de cuatro o cinco saltos, es probable que el problema est fuera de control de su administrador de red local. Realizacin de solicitudes DNS de modo manual: host El comando host se puede utilizar para realizar directamente solicitudes DNS. Con un argumento, el comando host slo reportar la resolucin DNS solicitada.
[blondie@station rha030]$ host academy.redhat.com academy.redhat.com has address 66.187.232.51

Si la opcin -a se incluye, el comando host presenta informacin detallada de la solicitud realizada y la respuesta recibida en el formato de "registro de recursos". Adems, la lnea final identificar el servidor de nombres que resolvi la solicitud y la cantidad de tiempo que se necesit para ello.
[elvis@station rha030]$ host -a academy.redhat.com Trying "academy.redhat.com" ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 53870 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 0 ;; QUESTION SECTION: ;academy.redhat.com. ;; ANSWER SECTION: academy.redhat.com. ;; AUTHORITY SECTION: redhat.com. redhat.com. redhat.com.

IN

ANY

284

IN

66.187.232.51

584 584 584

IN IN IN

NS NS NS

ns1.redhat.com. ns2.redhat.com. ns3.redhat.com.

Received 106 bytes from 192.168.0.254#53 in 30 ms

45

Network Applications En este ejemplo, el servidor de nombres que respondi tiene una direccin IP de 192.168.0.254. Ejemplos Diagnstico de dificultades de red La usuaria madonna est teniendo problemas para que su navegador de red mozilla se conecte al sitio www.yahoo.com y cree que la mquina local podra estar mal configurada. Procede a examinar sus configuraciones de red local y confirma que parecen funcionales. Siguiendo el consejo de iniciar con lo bsico, madonna primero se asegura que la mquina tenga una direccin IP, examinando su configuracin de interfaz de red local.
[madonna@staton madonna]# /sbin/ifconfig eth0 Link encap:Ethernet HWaddr 00:50:8B:0C:B1:D5 inet addr:109.125.90.86 Bcast:109.125.90.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:513364 errors:0 dropped:0 overruns:0 frame:0 TX packets:319118 errors:0 dropped:0 overruns:0 carrier:0 collisions:5068 txqueuelen:100 RX bytes:78770024 (75.1 Mb) TX bytes:356094835 (339.5 Mb) Interrupt:11 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:63432 errors:0 dropped:0 overruns:0 frame:0 TX packets:63432 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:6124991 (5.8 Mb) TX bytes:6124991 (5.8 Mb)

Convencida que su interfaz est activa y utilizando la direccin IP 109.125.90.86, examina su informacin de ruta para determinar su gateway por defecto.
[madonna@station madonna]# /sbin/route -n Kernel IP routing table Destination Gateway Genmask Use Iface 109.125.90.0 * 255.255.255.0 0 eth0 127.0.0.0 * 255.0.0.0 0 lo 0.0.0.0 109.125.90.1 0.0.0.0 0 eth0

Flags Metric Ref U U UG 0 0 0 0 0 0

Luego utiliza el comando ping para confirmar si puede contactar la gateway.


[madonna@station madonna]# ping 109.125.90.1 PING 109.125.90.1 (109.125.90.1) from 109.125.90.86 : 56(84) bytes of data.

46

Network Applications
64 bytes from 109.125.90.1: icmp_seq=1 ttl=255 time=2.92 ms 64 bytes from 109.125.90.1: icmp_seq=2 ttl=255 time=2.65 ms CTRL-C --- 109.125.90.1 ping statistics --2 packets transmitted, 2 received, 0% loss, time 1004ms rtt min/avg/max/mdev = 2.652/2.788/2.924/0.136 ms

Satisfecha, cancela el comando y luego examina su configuracin DNS.


[madonna@station madonna]# cat /etc/resolv.conf search example.com nameserver 109.125.90.75 nameserver 109.125.90.2 nameserver 66.218.71.63

Puesto que ella todava no ha llamado el host externo de su subred local, intenta llamar a un servidor de nombres terciario.
[madonna@station madonna]# ping 66.218.71.63 PING 66.218.71.63 (66.218.71.63) from 109.125.90.86 : 56(84) bytes of data. 64 bytes from 66.218.71.63: icmp_seq=3 ttl=54 time=11.2 ms 64 bytes from 66.218.71.63: icmp_seq=7 ttl=54 time=20.3 ms 64 bytes from 66.218.71.63: icmp_seq=11 ttl=54 time=27.7 ms CTRL-C --- 66.218.71.63 ping statistics --13 packets transmitted, 3 received, 76% loss, time 12045ms rtt min/avg/max/mdev = 11.275/19.766/27.702/6.717 ms

Los resultados del comando ping son un poco problemticos, porque la mayora de sus paquetes se han quitado. En su lugar ella intenta determinar el camino recorrido por los paquetes a la mquina.
[madonna@station madonna]# /usr/sbin/traceroute -n 66.218.71.63 traceroute to 66.218.71.63 (66.218.71.63), 30 hops max, 38 byte packets 1 209.125.90.1 3.473 ms 2.276 ms 2.281 ms 2 10.252.86.221 8.836 ms 15.761 ms 16.423 ms 3 216.217.3.193 11.293 ms 20.227 ms 15.257 ms 4 216.217.3.153 13.123 ms 10.306 ms 7.699 ms 5 63.215.192.173 10.835 ms 6.679 ms 6.881 ms 6 64.159.2.169 6.789 ms 7.117 ms 7.520 ms 7 64.152.69.30 12.358 ms 7.087 ms 6.877 ms 8 66.218.71.63 9.680 ms 11.787 ms 9.963 ms

Puesto que traceroute retorn dicha solicitud de salida, madonna asume que cualquier problema observado con el comando ping anterior debi haber sido transitorio. Por ltimo, ella confirma que su servidor de nombres es operacional al realizar unas pocas solicitudes de DNS con el comando host.

47

Network Applications
[madonna@station madonna]$ host www.redhat.com www.redhat.com has address 66.187.232.50 [madonna@station madonna]$ host hardware.redhat.com hardware.redhat.com is an alias for enterprise.redhat.com. enterprise.redhat.com has address 66.187.233.193 [madonna@station madonna]$ host www.yahoo.com www.yahoo.com is an alias for www.yahoo.akadns.net. www.yahoo.akadns.net has address 66.218.71.95 www.yahoo.akadns.net has address 66.218.70.48 ...

Convencida de que todo parece estar bien, trata de nuevo el navegador de red mozilla y tiene xito. Sea cualquiera el problema que estaba teniendo debe haberse relacionado con la congestin de red transitoria observada con el comando ping. Ejercicios en lnea Lab Exercise Objetivo: Determinar la configuracin de red local Tiempo estimado: 15 minutos. Especificaciones Crear los siguientes archivos, cada uno de los cuales debera contener su direccin IP como un "quad punteado". Archivo
~/net_gw ~/net_ns

Contenido La direccin IP preseterminada de su gateway. La direccin IP del servidor de nombres primario.

~/net_ipaddr La direccin IP asignada a la interfaz eth0.

Question 1

1. Los tres archivos presentados arriba, cada uno de los cuales contiene la direccin IP especificada como su nica palabra.

Captulo 7 Terminal de red y clientes FTP

48

Network Applications Conceptos clave


El cliente HTTP de terminal Elinks, invocado como el comando links se puede utilizar para navegar pginas web desde un entorno grfico. La aplicacin curl es una aplicacin de protocolo mltiple no interactivo (incluyendo HTTP, HTTPS y FTP) que sirve para transferir archivos en modo de lote. La aplicacin wget es una aplicacin de protocolo mltiple no interactiva (incluyendo HTTP, HTTPS y FTP) que sirve para transferir de modo recursivo pginas web, buscando en todas las pginas las referencias de pgina web.

Por qu terminales basadas en clientes? Los usuarios probablemente estn familizados con las aplicaciones grficas tales como mozilla para navegar la red o nautilus para tener acceso a servidores FTP. Aparte de estas aplicaciones, Linux tambin ofrece una amplia coleccin de clientes basados en la lnea de comandos. Por qu alguien estara tentado a utilizar clientes basados en lneas de comandos en lugar de apuntar y hacer click en las aplicaciones?

La razn obvia: si no est ejecutando en un entorno grfico X, estas son las nicas utilidades disponibles. Las utilidades se pueden escribir en scripts. Si tiene que extraer informacin de forma repetitiva del mismo sitio, debera considerar un script para que haga el trabajo repetitivo por usted. Las utilidades de la lnea de comandos requieren menos recursos. Si est tratando de descargar un archivo largo en otras mquinas ocupadas, un proceso curl es mucho ms atractivo que un proceso mozilla, porque el primero consume 4 megabytes mientras que el segundo consume 40 megabytes de memoria. La simplicidad tiende a motivar la estabilidad. Cuando se descargan archivos grandes, como por ejemplo, imgenes ISO de 700 megabytes, muchas de las aplicaciones pueden volverse inestables, (la lista de culpables incluye a Internet Explorer). Los clientes de lnea de comandos como curl tienden a generar resultados ms estables.

Navegacin de pginas web con Elinks El texto Elinks de cliente HTTP (navegador de red) est diseado para traducir pginas web en una terminal, emulando la presentacin de un navegador de red grfico. En cuanto sea posible, los cuadros y formas se presentan en escala. Observe que en la siguiente visualizacin de la pgina de red asociada con Red Hat Network, los marcos y cuadros estn traducidos correctamente. Inicio de Elinks Los Elinks se inician como el comando links especificando una URL para cargar como un argumento. Observe el siguiente ejemplo.

49

Network Applications
[elvis@station elvis]$ links http://www.redhat.com

Figure 1. El navegador de texto Elinks

Cuando utilice links, la pantalla est activa y los enlaces pueden navegarse mediante teclas de flechas o el ratn. Al utilizar la tecla ESC, se crea un men que permite al usuario acceder a los dilogos de favoritos, historial y personalizacin. Aunque la opcin -dump sirve para entregar una pgina en una salida estndar y la opcin -source har lo mismo al contenido "Crudo" de la URL (a menudo botando HTML), el soporte para interacciones de guiones es muy poco sofisticado comparado

50

Network Applications con otras utilidades tales como curl. La potencia del navegador links es su capacidad para proporcionar una grata experiencia de navegacin de red en un entorno de texto. Configuracin de Elinks para utilizar un servidor Proxy Si se establece la variable del entorno HTTP_PROXY, los Elinks utilizarn el servidor proxy especificado, donde el servidor proxy (al igual que el navegador Elinks) puede especificarse mediante la siguiente sintaxis.
http://servername:puerto

Buscar los recursos de red con curl En contraste, el comando links, el cliente de red de la lnea de comando curl no se esfuerza por verter o navegar interactivamente las pginas web. En cambio, el desarrollo de curl se ha enfocado en una amplia coleccin de opciones que se adaptan para la entrega automtica de archivos publicados mediante una red o un servidor ftp. Este texto tendra dificultades describiendo curl, pero algo ms efectivo y suscinto es referirse a la pgina del manual curl(1):
curl es un cliente que sirve para obtener documentos/archivos o enviar documentos a un servidor, utilizando cualquiera de los protocolos compatibles (HTTP, HTTPS, FTP, GOPHER, DICT, TELNET, LDAP o ARCHIVO). El comando est diseado para funcionar sin interaccin de usuario u otra clase de interaccin. curl ofrece una carga de trucos tiles como soporte proxy, autenticacin de usuario, carga ftp, texto HTTP post, SSL conexiones (https:), cookies, reanudar transferencia de archivo y ms.

Inicio curl Cuando se llame con una URL como su argumento, el comando curl recupera y descarga su contenido en la salida estndar. Adems, alguna informacin de temporizacin se escribe en el error estndar, el cual se desecha en el siguiente ejemplo.
[elvis@station rha030]$ curl http://www.redhat.com 2>/dev/null | head <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Red Hat -- Linux, Embedded Linux and Open Source Solutions</title> <meta name="MSSmartTagsPreventParsing" content="TRUE"> <meta http-equiv="Content-Type" content="text/html; charset=iso-88591"> <style type="text/css" media="all">@import "/css/non_ns4.css";</style> <link rel="stylesheet" TYPE="text/css" HREF="/css/homepage.css">

51

Network Applications El siguiente cuadro lista algunas de las opciones que se pueden utilizar para modificar la conducta de curl. Consulte la pgina de manual curl(1) para obtener la lista completa. Table 1. Opciones para el comando curl Opcin -b, --cookie filename -c, --cookie-jar filename Efecto Proporciona valores de cookie desde el archivo especificado. Almacena las cookies recuperadas en el archivo especificado. Reanuda la transferencia de un archivo grande en una posicin especificada. Si se da como -, curl tratar de encontrar automticamente la posicin apropiada. Proporciona datos como si los enviara a solicitud POST. Incluye encabezados HTTP en la salida. Sigue redirecciones a una nueva ubicacin. Mata la conexin despus de que el nmero especificado de segundos ha transcurrido. Escribe salida al archivo del mismo nombre como archivo citado en la URL. Autenticar con par de nombredeusuario/contrasea.

-C, --continue-at posicin

-d data -i -L, --location -m, --max-time segundos -O, --remote-name -u, --user
nombredeusuario:contrasea

Por ejemplo, la siguiente lnea de comandos podra utilizarse para descargar las imgenes ISO para el lanzamiento de Fedora-Core 1:
[elvis@station elvis]$ curl -C - -O -L "http://download.fedora.redhat.com/pub/fe dora/linux/core/1/i386/iso/yarrow-i386-disc{1,2,3}.iso" [1/3]: http://download.fedora.redhat.com/pub/fedora/linux/core/1/i386/iso/yar row -i386-disc1.iso --> yarrow-i386-disc1.iso % Total % Received % Xferd Average Speed Time Curr. Dload Upload Total Current Left Speed 0 629M 0 536k 0 0 13375 0 13:42:49 0:00:41 13:42:08 75883

Los siguientes detalles de la lnea de comando curl deberan observarse:

52

Network Applications

Observe el uso de la "sintaxis de expansin de parntesis" en la URL citada. El comando curl tratar de descargar tres archivos, yarrow-i386-disc1.iso, yarrow-i386-disc2.iso y yarrow-i386-disc3.iso. Debido a la opcin -O, los archivos se descargarn al directorio local con los mismos nombres. Observe el tiempo que le queda a la capacidad actual: 13 horas. Si el comando necesita abortarse y luego reiniciarse, la opcin -C - pide a curl que examine las descargas parciales existentes y recoja la transferencia donde se abandona. La opcin -L le pide a curl continuar con cualquier redireccin expedida por el servidor de red (aunque no es evidente desde la salida, curl fue redirigido al servidor FTP).

Configuracin de curl para utilizar un servidor Proxy. Si se establece la variable de entorno http_proxy, curl utilizar el servidor especificado proxy, donde el servidor proxy puede especificarse con la siguiente sintaxis.
http://servername:puerto

De modo recursivo descargar los recursos de la red con wget La lnea de comando del cliente de red wget diseada para uso no interactivo de los protocolos HTTP, HTTPS y FTP descarga recursos posiblemente de modo recursivo a las pginas citadas desde las pginas descargadas. Inicio de wget Cuando se llama con una URL como su argumento, el comando wget recupera el contenido de la URL y lo almacena en un archivo local en el directorio actual de trabajo del mismo nombre (o index.html si el URL especific un directorio). El siguiente cuadro lista algunas de las opciones que pueden utilizarse para modificar la conducta de wget. Encontrar una lista completa en la pgina del manual wget (1). Table 1. Opciones del comando wget Opcin Efecto

Lea la URL para buscar desde el archivo filename, el cual -i, --input-file filename puede ser un archivo HTML o liste en modo secuencial el URL como texto. -B, --base URL --spider Anteponga URL a todos los enlaces relativos. No descargue pginas, solamente confirme su presencia.

--http-user=user --http- Autentique con el nombre de usuario especificado y la contrasea. passwd=passwd

53

Network Applications Opcin -o filename -r, --recursive -l, --level depth -np, --no-parent Efecto Concatene el contenido de todos los archivos descargados al archivo filename. El nombre de archivo - especial implica una salida estndar. Permite recuperar de modo recursivo. No es recursivo ms all de depth niveles de recursividad. Al recursar, slo incluya enlaces bajo el URL padre.

Por ejemplo, la siguiente lnea de comandos sirve para copiar el contenido del sitio http://www.redhat.com/training.
[elvis@station mirror]$ wget -r http://www.redhat.com/training [elvis@station mirror]$ wget -r http://www.redhat.com/training --02:53:01-- http://www.redhat.com/training => `www.redhat.com/training.1' Resolving www.redhat.com... done. Connecting to www.redhat.com[66.187.232.50]:80... connected. HTTP request sent, awaiting response... 301 Moved Permanently Location: http://www.redhat.com/training/ [following] --02:53:01-- http://www.redhat.com/training/ => `www.redhat.com/training/index.html' Connecting to www.redhat.com[66.187.232.50]:80... connected. HTTP request sent, awaiting response... 200 OK Length: 29,575 [text/html] 100%[====================================>] 29,575 ETA 00:00 175.04K/s

02:53:02 (175.04 KB/s) - `www.redhat.com/training/index.html' saved [29575/29575] Loading robots.txt; please ignore errors. --02:53:02-- http://www.redhat.com/robots.txt => `www.redhat.com/robots.txt' Reusing connection to www.redhat.com:80. HTTP request sent, awaiting response... 200 OK Length: 262 [text/plain] 100%[====================================>] 262 ETA 00:00 ... 255.86K/s

Despus de observar un rato, debera ser obvio que cuando se llam de modo recursivo, el comando wget suele recursar ms all de las expectativas. Despus de cancelar el comando anterior con CONTROL-C, los siguientes directorios demuestran que wget se desvi ms all de los lmites del sitio web www.redhat.com/training.
. |-- certcities.com/ | `-- robots.txt |-- rhn.redhat.com/

54

Network Applications
| |-| |-| |-| |-| `-`-- index.html secure.safaribooksonline.com/ `-- promo.asp?code=ORA14&portal=oreilly www.europe.redhat.com/ `-- robots.txt www.google.com/ `-- robots.txt www.oreillynet.com/ `-- robots.txt www.redhat.com/ |-- about/ | |-- careers/ | | `-- index.html | |-- contact/ | | `-- index.html | |-- corporate/ | | `-- wwoffices/ | | `-- index.html | |-- index.html | `-- presscenter/ | |-- 2002/ | | |-- press_bluepoint.html | | |-- press_rhct.html | | |-- press_training.html | | `-- press_veterans.html | `-- 2003/ | `-- press_rhacademy.html |-- apps/ | |-- commerce/ | | `-- index.html

...

Utilicelo con cuidado. Configuracin de wget para utilizar un servidor Proxy Igual al comando curl, wget utiliza la variable de entorno http_proxy para especificar un servidor proxy, de nuevo utilizando la siguiente sintaxis.
http://servername:puerto

Ejemplos Uso de utilidades de transferencia del archivo con base en la terminal El comando wget con opciones para intentar de nuevo puede ser til para buscar archivos desde un sitio ftp ocupado.
[einstein@station einstein]$ wget --tries=50 --wait=30 ftp://updates.redhat.com/ 8.0/en/os/i386/wget-1.8.2-5.i386.rpm --16:19:24-5.i386.rpm ftp://updates.redhat.com/8.0/en/os/i386/wget-1.8.2-

55

Network Applications
=> `wget-1.8.2-5.i386.rpm' Resolving updates.redhat.com... done. Connecting to updates.redhat.com[66.187.232.52]:21... connected. Logging in as anonymous ... Logged in! ==> SYST ... done. ==> PWD ... done. ==> TYPE I ... done. ==> CWD /8.0/en/os/i386 ... done. ==> PORT ... done. ==> RETR wget-1.8.2-5.i386.rpm ... done. Length: 365,737 (unauthoritative) 100%[====================================>] 365,737 ETA 00:00 4.83K/s

16:20:40 (4.83 KB/s) - `wget-1.8.2-5.i386.rpm' saved [365737]

Al utilizar wget para copiar un sitio web, usted puede limitar el nmero de niveles de recursin.
[einstein@station einstein]$ wget --recursive --level=1 --convertlinks http://w ww.redhat.com/training/

Ejercicios en lnea Lab Exercise Objetivo: Familiarizarse con la terminal basada en clientes de red. Estimated Time: 10 mins. Configurar Si utiliza un servidor proxy para acceder a Internet, necesitar configurar sus clientes de red al establecerhttp_proxy y/o las variables de entorno HTTP_PROXY. Su instructor le guiar. Si este es el caso, coloque su configuracin en el archivo ~/.bash_profile, para que la configuracin tenga lugar automticamente en el inicio de shell. Especificaciones 1. Cree el directorio ~/wget y cd dentro de ste. Utilice el comando wget para descargar de modo recursivo el sitio www.redhat.com, pero utilice la opcin -Q 256k para limitar su descarga a un mximo de 256 kilobytes. Cuando haya terminado, su directorio ~/wget debera contener el directorio www.redhat.com y posiblemente otros. 2. La CIA publica un libro mundial de datos de los pases del mundo en el sitio http://www.odci.gov/cia/publications/factbook/index.html. Ms especficamente, URLs tales como http://www.odci.gov/cia/publications/factbook/geos/ca.html se refieren a pginas del pas especfico, en donde los pases se especifican

56

Network Applications mediante un abreviatura de dos letras en la porcin del nombre de archivo de la URL. Utilice el navegador de elinks para examinar una hoja de datos de todos los pases especificando la URL para la pgina del pas directamente desde la lnea de comandos. Abbreviation as ch ni Pas Australia China Nigeria

Despus de familiarizarse con el formato de cada paina, escriba un script corto llamado ~/bin/get_birthrate que combine los comandos curlygrep. El script debera esperar como su nico argumento una abreviatura de dos letras del pas. Adems, debera descargar la pgina del pas y reducir la salida a una lnea que contenga la nformacin de la tasa de natalidad del pas. Cuando haya terminado, el script debera generar una salida similar a la siguiente.
[student@station student]$ get_birthrate au 9.43 births/1,000 population (2003 est.) [student@station student]$ get_birthrate ch 12.96 births/1,000 population (2003 est.) [student@station student]$ get_birthrate ni 38.75 births/1,000 population (2003 est.)

Question 1

1. El directorio ~/wget que contiene los primeros 256 Kbytes (o ms) de una descarga recursiva del sitio web http://www.redhat.com 2. El script ~/get_birthrate, el cual cuando se invoca con una abreviatura de pas de dos letras, extrae la lnea apropiada desde la URL http://www.odci.gov/cia/publications/factbook/geos/ca.html (donde ca.html debera remplazarse con la abreviatura apropiada).

Captulo 8 Comandos remotos de shell

57

Network Applications Conceptos clave

Las aplicaciones remotas de shell le permiten a los usuarios ejecutar comandos arbitrarios en mquinas remotas y tener salida estndar retornada de manera local. De modo alterno, se puede iniciar una shell interactiva. La aplicacin Secure Shell ofrece una shell remota, donde todas las transacciones son encriptadas y los usuarios pueden autenticarse mediante contraseas tradicionales o esquemas de autenticacin de clave pblica. Para utilizar los esquemas de claves de autenticacin pblica, debe generarse un par de claves pblica-privada con el comando ssh-keygen. Debido a que los servidores de Secure Shell tienen sus propios servidores de pares de claves pblica-privada, los servidores pueden autenticarse para los clientes como tambin los clientes se pueden autenticarse para los servidores.

La shell remota original: rsh y la autenticacin de Rhosts Shells remotas con rsh Las shells de Linux (y Unix) estan diseadas con interfaces sencillas. Leen entrada desde el flujo de la salida estndar. Como resultado, las interfaces se implementan fcilmente a travs de conexiones de red. Simplemente al sustituir una conexin TCP para un dispositivo de terminal, una shell puede operar en una mquina remota de un modo tan fcil como la mquina local. En Linux (y Unix), las aplicaciones que proporcionan esta funcionalidad se conocen como shells remotas. La primera shell remota ms utilizada fue la aplicacin rsh. Si una mquina remota se configura adecuadamente los usuarios pueden utilizar la lnea de comandos rsh parecida a la siguiente para invocar una shell remota.
[elvis@station elvis]$ rsh -l elvis server1 ls /tmp jd_sockV4 lost+found orbit-root ssh-WjMO1585 [elvis@station elvis]$

Al traducir este comando dice "como el usuario elvis en el servidor 1 host, ejecuta el comando ls /tmp". El comando se ejecuta en la mquina remota (server1), pero la salida estndar es enviada a la mquina local (station). Cuando el comando termina, el intrprete de comandos de elvis implica que an est en la estacin host. Si elvis no especifica el comando a ejecutar, la utilidad rsh abre una shell interactiva en el server1 host. Al prestar atencin al intrprete de comandos de bash en el siguiente extracto, observe qu comandos se ejecutan y en qu mquina.
[elvis@station elvis]$ rsh -l elvis server1 Last login: Sat Nov 8 18:23:49 from station.example.com [elvis@server1 elvis]$ hostname server1.example.com

58

Network Applications
[elvis@server1 elvis]$ who root tty1 Nov 8 root tty2 Nov 8 root pts/0 Nov 8 elvis pts/4 Nov 8 [elvis@server1 elvis]$ exit rlogin: connection closed. [elvis@station elvis]$ 16:56 16:56 16:57 (:0.0) 18:28 (station)

Autentificacin de Rhosts: ~/.rhosts En cada caso, elvis no necesit expedir una contrasea. No obstante, antes de poder acceder a su cuenta remota mediante rsh, necesit configurar la cuenta para que le permitiera acceder desde su mquina local. Para rsh, la configuracin de control de acceso es tan trivial como agregar una lnea a un archivo. En una cuenta remota, elvis cre el archivo ~/.rhosts y agreg la lnea con el host y el nombre del usuario para cada cuenta externa a la cual quisiera otorgarle acceso. Adems, el servidor rsh requiere que los permisos de archivo le prohiban leer el archivo a todos con excepcin del usuario propietario. As como se ilustra con el siguiente comando, elvis ya tiene configurado su archivo .rhosts en la mquina remota.
[elvis@station elvis]$ rsh -l elvis server1 cat .rhosts station elvis [elvis@station elvis]$ rsh -l elvis server1 ls -l .rhosts -rw------1 elvis elvis 16 Nov 8 18:23 .rhosts

La autenticacin depende de un archivo de configuracin ~/.rhosts configurado de modo adecuado conocido como la autenticacin rhost. La Shell segura El mtodo de autenticacin rhost es lamentable. En esencia, depende del DNS (Servidor de Nombres de Dominio) para autenticar un usuario. Con el fin de explotar la configuracin ~/.rhosts de elvis, todos tendran que separar la estacin host real desde la red y traer otra mquina configurada con la direccin IP de la estacin. La falla no es de elvis, sino del diseo del protocolo de autenticacin rhost. Adems, rsh es un protocolo de texto sin formato. El intercambio de informacin a travs de una red en texto sin formato es esencialmente el equivalente a enviar correo en postales: todo el mundo puede llevar la informacin de aqu a all y no estar al tanto de su contenido. La Shell segura se desarroll para abordar estos dos defectos del comando rsh y agregar nuevas capacidades mientras que an ofrece toda la conveniencia de rsh. Si se asume que una mquina remota est ejecutando el servicio ssh (i.e. el demonio sshd), elvis podra invocar una shell en la mquina remota como se muestra a continuacin.
[elvis@station elvis]$ ssh elvis@server1 ls /tmp elvis@server1's password: jd_sockV4

59

Network Applications
lost+found orbit-root [elvis@station elvis]$

La nueva sintaxis del comando ssh para especificar el nombre de usuario de la cuenta remota es un poco ms fcil que la de rsh, aunque la opcin -l tambin se ejecuta (para ser completamente compatible con los anteriores). En el ejemplo anterior, elvis se autentica al proveer una contrasea en lugar de configurar un archivo ~/.rhosts. En la siguiente seccin, encontramos que la Shell segura puede utilizar una tcnica de clave pblica ms madura para otorgar una cuenta a los usuarios "libre de contrasea". Sin embargo, cuando la clave de autenticacin pblica no se ejecuta, ssh vuelve a la autenticacin de contrasea tradicional. [1] Autenticacin de clave pblica shell segura Aparte de la autenticacin tradicional, la aplicacin Shell segura puede utilizar una clave criptogrfica para autenticar usuarios. Los algoritmos de clave pblica encriptada se relacionan con dos grandes nmeros conocidos como "claves" a fin de que la informacin encriptada con una clave solo pueda ser descrifada con la otra. Cualquiera que quiera utilizar criptografa de clave pblica debe generar primero un par de claves. La mayora de los protocolos de clave pblica llaman una clave como clave pblica y la complementaria como una clave privada. A su clave pblica usted la trata como su nmero telefnico, el cual comparte con quien desee comunicarse y que puede listar en directorios pblicos. Su clave privada, por otra parte, no la comparte con nadie. Toda la seguridad provista por los protocolos de clave privada dependen del hecho que slo usted conoce su clave privada. Generacin de un par de clave pblica-privada: ssh-keygen Al utilizar ssh se puede generar un par de clave pblica-privada con el comando sshkeygen. La shell segura puede utilizar diferentes algoritmos esenciales de encripcin y el comando ssh-keygen forzar a especificar uno con la opcin -t. Para nuestros propsitos, utilizaremos el algoritmo RSA, el cual se especifica con-t rsa. En el siguiente ejemplo, elvis utiliza ssh-keygen para generar un par de clave pblica-privada ssh-keygen.
[elvis@station elvis]$ ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/elvis/.ssh/id_rsa): RETURN Enter passphrase (empty for no passphrase): RETURN Enter same passphrase again: RETURN Your identification has been saved in /home/elvis/.ssh/id_rsa. Your public key has been saved in /home/elvis/.ssh/id_rsa.pub. The key fingerprint is: e0:71:43:df:ed:40:01:0b:44:54:db:c2:80:f2:33:aa elvis@station

Al usuario elvis primero se le pidi el nuevo nombre de archivo de clave (privada) para lo cual elvis simplemente puls ENTER para aceptar el nombre de archivo

60

Network Applications predeterminado: ~/.ssh/id_rsa. Luego, elvis tuvo la oportunidad de agregar una passphrase a su clave privada. Al pulsarENTER otra vez (dos veces), elvis eligi no agregarla (ms adelante trataremos las frases de acceso en detalle). Cuando el comando retorna, elvis tiene dos nuevos archivos en su directorio ~/.ssh. El primero contiene su clave privada, la cual no la comparte con nadie (desde luego no la publica en un texto en lnea).
[elvis@station elvis]$ cat .ssh/id_rsa -----BEGIN RSA PRIVATE KEY----MIICWwIBAAKBgQClJnymgdK0myP41/DcIyR9aam0DZQJUT20RLfqQb8ptk90jXSL FrcIR2Ia59W/kJVLo4pqwJDsEJetWdhYiKUVJTANxbV2Pv21OACMlYcM316YLTOm IeoEZj128yjZcehs2aBBhNEVW/Y0E1MDn9mm34yXT4z367OWnGXTc9yMWQIBIwKB gQCW/p3aEEudz6vcMyVbjdg4JheADGoXJbTCEvFLNMwI4TKztIfPn71JZdYJ+Ijp qMMDU7HAsA94vraP3R2SxhNFEEauYF+BXTae21MMKhU9JfgB1mQiYRaWrlU2j7cW oF0vLnqYmTUV6CF9eJ8gMrgA28LymCpKhV/bng8l2uhnCwJBANNERHxLoKcTsANA cmPs7iu1FtxuDk6Z4SctrkTVx+HtOE4JjpE/FKsJVpJK8oi/d0WEnpk2G7+67TSG zsfHcqcCQQDIHnqQAWAZ9kd03UTjkuPSIj9OSBI5H25wYpUBItDQlUjwwJwL//C7 CDxFGgXfoO6pqr9f6JqqF9Ey/nNEpuj/AkAMEoeSEvM8v0vi7b1ky7XWnKI4e1FG Ue+b1rmARrr295zRQl/rCus8+TglneH5L4MoizxDROukjlayi1xF7iPPAkBsotTR 1Nxl3Xc/cM2gHIpNgE5AcERoJwFwNYQWjz4oFoaulHH34rXh3+Y0JBHRK3o+2QjN qigTMYAxoBKwPVnpAkEAvHl24SepSlAuSIwgtbluJApOfaDTizIAHh/G8PPFvH1e p0J+MM7d/qFjg9gpcqZN34LOW8lD7Ab/GTQGl/XsWw== -----END RSA PRIVATE KEY-----

l es libre de compartir su segunda clave (la clave pblica) con quien se la pida.
[elvis@station elvis]$ cat .ssh/id_rsa.pub ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEApSZ8poHStJsj+Nfw3CMkfWmptA2UCVE9tES36kG/Kb ZP dI10ixa3CEdiGufVv5CVS6OKasCQ7BCXrVnYWIilFSUwDcW1dj79tTgAjJWHDN9emC0zpi HqBGY9dvMo 2XHobNmgQYTRFVv2NBNTA5/Zpt+Ml0+M9+uzlpxl03PcjFk= elvis@station

Permiso de acceso de cuenta: ~/.ssh/authorized_keys El acceso de SSH a una cuenta se otorga obteniendo una copia de clave pblica de la persona a quien se le va a otorgar acceso y almacenndola en el archivo ~/.ssh/authorized_keys de la cuenta. Como el archivo ~/.rhosts, el archivo ~/.ssh/authorized_keys debe ser legible slo por el usuario propietario del archivo. La forma de obtener una clave pblica no interesa. Podra enviarse por correo electrnico scp o transferirse desde una terminal a otra utilizando las utilidades de cortar y pegar del ratn. Cuando se manejan claves pblicas, se debe tener mucho cuidado de asegurarse que la clave se coloca en un archivo sin espacio incorporado, incluyendo lneas nuevas. Aunque es demasiado para visualizar como tal, las claves pblicas SSH, siempre se almacenan como una lnea de texto sencilla. A la mayora de la gente puede otorgrsele acceso a una cuenta simplemente agregando sus claves pblicas a los archivos ~/.ssh/authorized_keys, una clave pblica en cada lnea.

61

Network Applications Figure 1. Autenticacin de clave pblica SSH

En el siguiente ejemplo, elvis utiliza ssh, redireccin y algunas comillas colocadas cuidadosamente para agregar su clave pblica (en la station host) al archivo authorized_keys en su cuenta en el server1 host.
[elvis@station elvis]$ ssh elvis@server1 "cat >> .ssh/authorized_keys" < .ssh/id_rsa.pub elvis@server1's password:

Por qu son necesarias las comillas? Si las comillas se hubieran incluido, la salida del comando cat se hubiera agregado al archivo .ssh/authorized_keys en la mquina local. Las comillas sirven para pasar la sintaxis de redireccin "en" la shell de red. Habiendo colocado su clave pblica en el archivo ~/.ssh/authorized_keys en la mquina remota, elvis espera ahora poder examinar el contenido del archivo sin tener que expedir una contrasea.
[elvis@station elvis]$ ssh elvis@server1 "cat .ssh/authorized_keys" elvis@server1's password: ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEApSZ8poHStJsj+Nfw3CMkfWmptA2UCVE9tES36kG/Kb ZP dI10ixa3CEdiGufVv5CVS6OKasCQ7BCXrVnYWIilFSUwDcW1dj79tTgAjJWHDN9emC0zpi HqBGY9dvMo 2XHobNmgQYTRFVv2NBNTA5/Zpt+Ml0+M9+uzlpxl03PcjFk= elvis@station

Algo no concuerda, porque a elvis se le solicit otra vez su contrasea. Al recordar que los permisos en el archivo ~/.ssh/authorized_keys deben ser 600, elvis ejecuta el comando chmod apropiado en la mquina remota. Despus, puede observar los nuevos permisos sin tener que emitir una contrasea.
[elvis@station elvis]$ ssh elvis@server1 chmod 600 .ssh/authorized_keys elvis@server1's password: [elvis@station elvis]$ ssh elvis@server1 ls -l .ssh/authorized_keys -rw------1 elvis elvis 225 Nov 22 22:29 .ssh/authorized_keys [elvis@station elvis]$

62

Network Applications xito. Detalles de autenticacin de la clave pblica Con el fin de desarrollar una apreciacin de la robustes de la autenticacin de la clave pblica, utilizaremos algunos minutos para tratar el protocolo. Cuando la aplicacin Secure Shell ejecuta la autenticacin de clave pblica, utiliza un procedimiento similar al siguiente. En nuestra discusin, se utilizarn los siguientes smbolos. Symbol S P R P(R) Interpretacin El contenido de la clave privada ("secreta") de elvis El contenido de la clave pblica de elvis Una cadena de texto aleatoria Una cadena de texto aleatoria encriptada por la clave pblica de elvis

S(P(R)) = La cadena de texto es primero encriptada por la clave pblica de elvis y R luego descifrada por la clave privada de elvis. Primero, el cliente ssh en la station host solicita una conexin al demonio sshd en el server1 host. Tras recibir la solicitud de conexin, el demonio sshd busca una clave pblica registrada en el archivo ~/.ssh/authorized_keys de la cuenta de destino. Si se descubre una clave pblica relevante, el demonio sshd inicia la autenticacin de clave pblica generando una cadena de texto aleatoria R. Luego encripta el guin aleatorio con la clave pblica de elvis P (obtenida desde el archivo ~/.ssh/authorized_keys) y enva el guin aleatorio encriptado P(R) a travs de la red al cliente ssh. Figure 1. Algoritmo de autenticacin de la clave pblica (1 de 3)

63

Network Applications Tras recibir la cadena de texto encriptada de modo aleatorio P(R), el cliente ssh utiliza la clave privada de elvis S para descifrala. Una vez se recupera la cadena de texto original aleatoria el cliente ssh retorna al demonio sshd. Figure 2. Algoritmo de autenticacin de la clave pblica (2 de 3)

Si el demonio sshd recibe del cliente ssh la misma cadena de texto aleatoria con la cual inici, el cliente se autentica y la conexin puede continuar. Figure 3. Algoritmo de autenticacin de la clave pblica (3 de 3)

Un par de aspectos sobre este algoritmo que vale la pena mencionar.

El cliente ssh no se autentica con su nombre de host o con su direccin IP sino nicamente con una clave privada, (si el cliente no puede acceder a la clave

64

Network Applications privada apropiada, no podra decriptar la cadena de texto encriptada aleatoria que se le entrega). La nica informacin que pas por alto la red es una cadena aleatoria encriptada y una cadena aleatoria (los smbolos en rojo en las grficas). Cualquiera que intercepte la conversacin no aprendera nada til.

En la prctica, el algoritmo real utilizado es ms complicado. Sin embargo, el protocolo esbozado anteriormente ilustra la mayora de las caractersticas de la autenticacin de protocolo de clave pblica. Transferencia de archivos de modo seguro y fcil: scp Como se ilustra en la discusin anterior, los archivos se pueden transferir de una mquina a otra mediante ssh con el comando cat y una redireccin cuidadosa. Afortunadamente, hay una forma ms fcil y menos propensa al error: scp. El comando scp utiliza una sintaxis casi idntica a la del comando cp, pero cualquier archivo o archivos de origen o destino pueden estar en una mquina remota, que ha tenido acceso a travs de una cuenta especificada [1]. Cuando se refiera al archivo en una mquina remota, se utiliza la siguiente sintaxis.
user@host:ruta

El usuario y host son simplemente el equipo en donde reside el archivo y el usuario cuya cuenta se utiliza para acceder el archivo. Si la ruta del archivo comienza con un /, se considera como una referencia absoluta. Si no, se considera como una referencia relativa del directorio de inicio del usuario. Si no se provee una ruta, se asume que es el directorio de inicio del usuario. A manera de ejemplo, la siguiente lnea de comandos transferira el archivo /etc/services desde el directorioserver1 al directorio ~/cfg/server1/etc/ en el directorio de inicio de elvis.
[elvis@station elvis]$ scp elvis@server1:/etc/services cfg/server/etc/ services 100% |*****************************| 19936 00:00

Dado que elvis ha configurado correctamente la autenticacin de clave pblica con su cuenta en server1, puede transferir el archivo sin emitir una contrasea. Qu sucede si trata de transferir el archivo /etc/shadow?
[elvis@station elvis]$ scp elvis@server1:/etc/shadow cfg/server/etc/ scp: /etc/shadow: Permission denied

El usuario elvis en el server1 host no tiene permisos para leer el archivo /etc/shadow, por lo tanto no puede ser transferido naturalmente. Sin embargo, si el usuario elvis conoce la contrasea de la cuenta de root en la mquina remota, puede acceder el archivo a travs de ella.

65

Network Applications
[elvis@station elvis]$ scp root@server1:/etc/shadow cfg/server/etc/ root@server1's password: shadow 100% |*****************************| 2588 00:00

Puesto que elvis no tiene una clave de acceso pblica autenticada para la cuenta de root server1, ssh utiliz la autenticacin tradicional de contrasea. La opcin -r (de "recursivo") se debe especificar al copiar un directorio completo (y sus subdirectorios). A continuacin, elvis copia de modo recursivo el directorio /etc/sysconfig desde su mquina local (station) al directorio /tmp de la mquina server1.
[elvis@station elvis]$ scp -r /etc/sysconfig elvis@server1:/tmp ifup-aliases 100% |*****************************| 13137 00:00 ifcfg-lo 100% |*****************************| 254 00:00 ifdown 100% |*****************************| 3676 00:00 ifdown-ippp 100% |*****************************| 820 00:00 ifdown-ipv6 100% |*****************************| 4076 00:00 ...

Cuando el comando scp ejecuta la transferencia, este presenta la informacin de temporizacin de la transferencia para cada archivo. Autenticacin de host de la Shell asegurada La primera vez que el cliente ssh (o scp) se utiliza para conectarse a un servidor Secure Shell sshd, se presenta un mensaje similar al siguiente:
[elvis@station elvis]$ ssh elvis@server1 who The authenticity of host 'server1 (192.168.0.254)' can't be established. RSA key fingerprint is fc:c8:87:90:f0:39:af:4f:de:99:cc:30:ce:64:b2:8e. Are you sure you want to continue connecting (yes/no)?

Si la respuesta del usuario es s (la nica respuesta que permite continuar a la conexin), la conexin contina con la siguiente advertencia.
Warning: of known root root Permanently added 'server1,192.168.0.254' (RSA) to the list hosts. tty6 Nov 8 22:03 pts/1 Nov 8 22:17 (:0.0)

En conexiones subsiguientes, el mensaje ya no aparece.


[elvis@station elvis]$ ssh elvis@server1 who

66

Network Applications
root tty6 Nov root pts/1 Nov [elvis@station elvis]$ 8 22:03 8 22:17 (:0.0)

La Secure Shell no slo autentica clientes a servidores, sino tambin servidores a clientes, mediante la autenticacin de clave pblica. As como los usuarios pueden crear pares de clave pblica-privada con el comando ssh-keygen, el demonio sshd mantiene su propio par de claves pblica-privada conocido como su host key. La primera vez que un cliente ssh se conecta a un demonio sshd, aade una copia de la clave del host pblico del demonio remoto al archivo local ~/.ssh/known_hosts.
[elvis@station elvis]$ cat .ssh/known_hosts server1,192.168.0.254 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAvaQ4ILVi9lceyBuGo9KUFY ksKtPT8BsLPkLZYLIRVxmXDtG1+W+qxiAgw6qCROX8fAvBkdGS4gegt06NVpKItW87K5Wq 6OMIlUfwfX OmPNOWrdA+1Wym0LXYnkUDEOV8xvTUtGzy4MRIl0Phi92uJYEJkKsHMOCWGazN/DclBZk=

Como el cliente se utiliza para conectarse a varias mquinas, el archivo ~/.ssh/known_hosts crece, registrando una clave pblica para cada mquina contactada. La prxima vez que el cliente se conecta a un host, silenciosamente emplea el mismo protocolo de clave pblica utilizado para autenticar usuarios, invertido, para autenticar el host al cual se est conectando. Qu sucedera si el host remoto no tiene la misma identidad complementaria de la clave pblica almacenada en el archivo de cliente ~/.ssh/known_hosts? El cliente rehusa conectarse y en su lugar emite la siguiente advertencia.
[elvis@station elvis]$ ssh elvis@server1 ls /tmp @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eavesdropping on you right now (man-in-the-middle attack)! It is also possible that the RSA host key has just been changed. The fingerprint for the RSA key sent by the remote host is c8:96:41:69:84:38:57:4c:18:55:7a:16:04:33:4d:f1. Please contact your system administrator. Add correct host key in /home/elvis/.ssh/known_hosts to get rid of this message. Offending key in /home/elvis/.ssh/known_hosts:1 RSA host key for server1 has changed and you have requested strict checking. Host key verification failed. [elvis@station elvis]$

Aqu, el cliente ssh est identificando la lnea desde el archivo ~/.ssh/known_hosts con la clave que ya no complementa el servidor. Suele haber una explicacin razonable para el cambio de identidad del servidor. Por ejemplo, el servidor pudo haber sido actualizado con una versin ms reciente de su sistema operativo y como resultado, gener un nuevo par de clave pblica-privada. Si

67

Network Applications hay una explicacin razonable para que un servidor cambie de identidad, el cliente ssh puede ser forzado a quitar la lnea incorrecta del archivo ~/.ssh/known_hosts y recoger una nueva clave para el host.
[elvis@station elvis]$ rm ~/.ssh/known_hosts [elvis@station elvis]$ ssh elvis@server1 ls /tmp The authenticity of host 'server1 (192.168.0.254)' can't be established. RSA key fingerprint is c8:96:41:69:84:38:57:4c:18:55:7a:16:04:33:4d:f1. Are you sure you want to continue connecting (yes/no)? si Warning: Permanently added 'server1,192.168.0.254' (RSA) to the list of known hosts. jd_sockV4 lost+found orbit-root ssh-ayfI2751 sysconfig

Ejemplos Acceso a una cuenta remota El emperador julius recientemente se ha suscrito a la lnea DSL en la casa y quisiera tener acceso a la informacin en su mquina principal desde el trabajo. En su mquina principal, agreg una cuenta para l mismo utilizando su apodo,jules. No sabe el nombre de host del computador en su casa, pero antes de salir a trabajar anot su direccin IP 69.57.97.126. En la oficina, utiliza una mquina con un nombre de host emporer.rome.gov y su nombre de cuenta es julius. Primero confirma si puede conectarse a su mquina principal con el cliente ssh.
[julius@emperor julius]$ ssh jules@69.57.97.126 The authenticity of host '69.57.97.126 (69.57.97.126)' can't be established. RSA key fingerprint is 89:01:b1:55:7e:6f:da:0c:bc:fc:19:62:af:84:d6:7f. Are you sure you want to continue connecting (yes/no)?

Como esta es la primera vez que ha tenido acceso a su mquina principal utilizando ssh, acepta la clave del host al contestar si. En la siguiente solicitud de contrasea, entra la contrasea para su cuenta de inicio de sesin.
Warning: Permanently added '69.57.97.126' (RSA) to the list of known hosts. jules@69.57.97.126's password: /usr/X11R6/bin/xauth: creating new authority file /home/jules/.Xauthority [jules@localhost jules]$

Ahora Julius est contento porque puede tener acceso a su cuenta de inicio.

68

Network Applications Configuracin de la autenticacin de la clave pblica Ahora que Julius sabe que puede acceder a su cuenta de inicio de sesin, deseara configurar la autenticacin de la clave pblica, para poder ordenar directamente a su mquina principal desde la oficina, sin tener que emitir una contrasea. Inicia generando un par de clave pblica-privada en su mquina de trabajo, mediante el algoritmo RSA. Puesto que la configuracin por defecto es apropiada para l, escasamente pulsa la tecla ENTER para todas las preguntas asociadas.
[julius@emperor julius]$ ssh-keygen -t rsa ...

Despus de confirmar que sus archivos de clave pblica-privada existen, utiliza el comando scp para copiar su clave pblica desde su equipo de trabajo al archivo .ssh/authorized_keys en su mquina principal, autenticndose otra vez con su contrasea.
[julius@emperor julius]$ ls .ssh/ id_rsa id_rsa.pub known_hosts [julius@emperor julius]$ scp .ssh/id_rsa.pub jules@69.57.97.126:.ssh/authorized_keys jules@69.57.97.126's password: scp: .ssh/authorized_keys: No such file or directory

Aparentemente, ~/.ssh no existe an. Julius remedia el problema y luego transfiere el archivo con xito. Por ltimo, establece los permisos en el directorio remoto ~/.ssh y su contenido para que slo puedan estar disponibles para el usuario propietario.
[julius@emperor julius]$ ssh jules@69.57.97.126 mkdir .ssh jules@69.57.97.126's password: [julius@emperor julius]$ scp .ssh/id_rsa.pub jules@69.57.97.126:.ssh/authorized_keys jules@69.57.97.126's password: id_rsa.pub 100% |*****************************| 226 00:00 [julius@emperor julius]$ ssh jules@69.57.97.126 chmod -R go-rwx .ssh jules@69.57.97.126's password:

Con su autenticacin de clave pblica ahora configurada, Julius puede acceder fcilmente a su mquina principal.
[julius@emperor julius]$ ssh jules@69.57.97.126 uptime 11:01:12 up 7:55, 1 user, load average: 0.08, 0.12, 0.09

Realizar copias de seguridad remotas con SSH En su mquina principal. Julius tiene un directorio llamado archivos, el cual contiene documentos importantes. El deseara hacer una copia de seguridad del archivo en su mquina de trabajo. Desde su mquina de trabajo, emite la siguiente lnea de comandos.

69

Network Applications
[julius@emporer julius]$ ssh jules@69.57.97.126 "tar czf - archive" > jules.arch ive.tgz

Julius coloca un - donde sera especificado el nombre de va a crear. Este le pide al comando tar botar el archivo a la ponerlo en un archivo. Localmente, la salida estndar jules.archive.tgz, Julius ha creado ahora un archivo ~/archive como se confirma con el siguiente comando.

archivo del archivo que se salida estndar en lugar de fue redirigida al archivo local del archivo remoto

[julius@emporer julius]$ tar tvzf jules.archive.tgz -rw-r--r-- jules/jules 112 2003-10-24 15:19:04 archive/named -rw-r--r-- jules/jules 18 2003-10-26 08:00:11 archive/java -rw-r--r-- jules/jules 204 2003-10-30 21:24:33 archive/quagga ...

Ejercicios en lnea Lab Exercise Objetivo: Utilizar correctamente la aplicacin Secure Shell. Estimated Time: 30 mins. Especificaciones 1. Configurar sus cuentas alternas primera y tercera (nombredeusuario_a y nombredeusuario_c, respectivamente) para que usted pueda tener acceso a las cuentas desde su cuenta primaria mediante ssh sin tener que proporcionar una contrasea. Recuerde que todos los clientes de la red pueden contactar los servicios de red locales mediante el nombre del host localhost. 2. Mediante su cuenta primaria, cree un script llamado ~/bin/send_to_a que copiar un archivo regular como su nico argumento en su directorio de inicio de su primera cuenta alterna. 3. Mediante su cuenta primaria, cree un script llamado ~/bin/backup_c, el cual crea un archivo tar gzipped del contenido de su directorio de inicio de la tercera cuenta alterna dentro del archivo /tmp/backup_c.tgz. Question 1

1. La configuracin correcta para que su cuenta primaria puede tener acceso a su primera y tercera cuenta mediante ssh sin especificar una contrasea. 2. En su cuenta primaria, un script llamado ~/bin/send_to_a, el cual copiar un archivo regular especificado como su nico argumento dentro de sus primeras cuentas primarias de directorio de inicio. 3. En su cuenta primaria, un script llamado ~/bin/backup_c, el cual crea un archivo tar gzipped del contenido de su tercera cuenta alterna del directorio de

70

Network Applications inicio dentro del archivo /tmp/backup_c.tgz.

Vous aimerez peut-être aussi