440 likes | 641 Views
Linux RHC030. Modulo 10. Aplicaciones de Redes. Relator : Cristian Leiva. Unidad 10 – Aplicaciones de Redes. Introducción a las redes TCP/IP Impresión Linux Administración de archivos de impresión Sinopsis del correo electrónico Aplicaciones de diagnósticos de red
E N D
Linux RHC030 Modulo 10. Aplicaciones de Redes Relator : Cristian Leiva
Unidad 10 – Aplicaciones de Redes • Introducción a las redes TCP/IP • Impresión Linux • Administración de archivos de impresión • Sinopsis del correo electrónico • Aplicaciones de diagnósticos de red • Terminal de red y clientes FTP • Comandos remotos de shell
Introducción a las redes TCP/IP • Conceptos Claves • La mayoría de los servicios de redes de Linux están diseñados en torno a una relación de cliente servidor. • Las aplicaciones de servidor de red generalmente están diseñadas para permanecer "siempre en ejecución" iniciándose automáticamente cuando el sistema arranca y apagándose solamente cuando el sistema lo hace. Por lo general, sólo el usuario root puede administrar procesos del servidor. • Las aplicaciones de cliente de red suelen ejecutarse únicamente cuando están en uso y las puede iniciar cualquier usuario. • La mayoría de los servidores de red Linux y clientes se comunican mediante el protocoloTCP/IP. • La dirección TCP/IP tanto del proceso del cliente como del proceso del servidor consta de una dirección 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 número 1024. • El comando hostname puede utilizarse para examinar la dirección IP actual de la máquina, mientras que el comando netstat -tuna se puede utilizar para examinar todos los puertos abiertos.
Clientes, servidores y protocolo TCP/IP • La mayoría de las aplicaciones de redes actuales están diseñadas en torno a la relación cliente-servidor. • El cliente de red suele ser una aplicación que actúa en nombre de una persona que está tratando de realizar alguna tarea en particular tal como navegar en una URL. • El servidor de red suele ser una aplicación que ofrece servicios, tales como entregar el contenido de las páginas web. • Todo proceso que participa en una conversación Cliente-Servidor debe tener una Dirección IP.
Direcciones TCP/IP • Los computadores en una red se identifican con una dirección IP. • Los procesos en computadores se identifican con un número de puerto. • El protocolo TCP/IP permite dos procesos, para localizarse entre sí, cada uno se identifica con una dirección IP y un número de puerto. • La dirección IP sirve para localizar la máquina • Esta es la "parte del protocolo IP" • El número de puerto se utiliza para localizar el proceso correcto en la máquina • Esta es la parte "TCP ".
Sockets • En el protocolo TCP/IP, un socket se define como la combinación de una dirección IP y el número de puerto del servidor y cliente.
hostname sin argumentos, muestra el nombre del equipo de la máquina actual. [elvis@station elvis]$ hostname station.example.com Hostname con la opción -i, la dirección IP de la máquina se visualiza en su lugar. [elvis@station elvis]$ hostname -i 172.16.62.9 netstat El comando netstat sirve para ver una variedad de información de redes incluyendo los puertos abiertos. Determinar los servicios actuales de red TCP/IP
Sockets de escucha • Los sockets de escucha son conexiones pertenecientes a un servidor antes de que los clientes se presenten. • Servidor Web httpd está escuchando activamente conexiones de clientes. - Escuchando conexiones, para dirección de loopback. Deben pertenecer a servicios que esperan recibir conexiones desde otros procesos en la máquina local pero no desde la red. • Determine los servicios
Sockets Establecidos • Sockets establecidos tienen tanto un proceso de cliente y servidor con un proceso de comunicación establecidos • Esta línea refleja una conexión establecida entre dos procesos ambos en la máquina local. El primero está conectado al puerto 32769 y el segundo al puerto 631. Algunos procesos en la máquina local deben estar comunicándose con el demonio cupsd. • Una conexión establecida entre lo que aparentemente es un cliente en nuestra máquina local, conectado al servicio enlazado al puerto 22 en nuestra máquina remota.
Impresión Linux • Conceptos clave • Linux de Red Hat Enterprise utiliza el sistema de impresión CUPS para administrar impresoras. • El sistema de impresión CUPS está diseñado en torno al concepto de cola de impresión, el cual combina un directorio de almacenamiento temporal, un filtro y un dispositivo de impresión. • Los comandos gnome-print-manager y lpstat pueden utilizarse para navegar colas de impresión disponibles. • Los comandos lpr, lpq y lprm se utilizan para someter ("solicitar") trabajos de impresión, averiguar por trabajos importantes y quitar trabajos de impresión pendientes, respectivamente. • Todos examinarán la variable de entorno PRINTER para determinar la cola de impresión por defecto. • Los comandos lp y cancel se comportan de un modo similar a los comandos lpr ylprm. • Muchas aplicaciones imprimen por entubamiento a stdin de una línea de comando personalizable lpr.
Sistema de Impresión común de Unix(CUPS) • Los usuarios someten las solicitudes de impresión a las colas de impresión que son manejadas por el demonio cupsd. • El demonio cupsd utiliza el Protocolo de Impresión de Internet (IPP), el cual es una extensión directa del protocolo HTTP,
Colas de Impresión • Una cola de Impresión es una combinación de los siguientes elementos: • Un directorio de almacenamiento temporal donde se pueden almacenar los trabajos pendientes. • 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 impresión definida en una máquina remota. A continuación, se listan algunos de los dispositivos secundarios admitidos por CUPS. • Impresoras de puerto paralelo conectadas localmente • Impresoras localmente conectadas através de un USB • Impresoras de red utilizando la interfaz LPD • Impresoras de red utilizando interfaz de JetDirect • Colas de impresión IPP en máquinas remotas • Colas de impresión LPD en máquinas remotas • Servicios de impresión de red (Microsoft) SMB
En el entorno gráfico, gnome-print-manager puede utilizarse para identificar las colas de impresión y controlar los trabajos de impresión sometidos a ellas. El comando lpstat se puede utilizar para escanear las colas de impresión disponibles desde la línea de comando. Navegar las colas de impresión disponibles: gnome-print-manager y lpstat
Someter y administrar trabajos: lpr, lpq y lprm • CUPS utiliza los comandos de UNIX tradicionales para interactuar con el sistema de impresión: • lpr somete archivos e información que van a imprimirse • lpq examina el estatus de trabajos de impresión importantes • lprm quita trabajos de impresión pendientes en la cola.
Administración de archivos de impresión • Conceptos clave • El formato de impresión primario en Linux es PostScript. • gs y ggv ven con anticipación 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 páginas individuales de un documento PostScript.
PostScript • PostScript es un lenguaje de descripción de páginas (PDL), el cual se ha adaptado a la tarea de traducir gráficas en la página impresa. • Ghostscript o simplemente gs ejecuta un intérprete PostScript. • Cuando se invoca como el comando gs, el intérprete Ghostscript puede utilizarse para traducir archivos PostScript directamente en la pantalla. • El comando enscript convierte archivos de texto en PostScript
Ver gráficas PostScript con Ghostview • La aplicación Ghostview de GNOME, ggv, la cual ofrece un aplicación más fácil de usar.
Ver documentos PDF con xpdf • La aplicación xpdf es un simple visor de documentos PDF que sirve para ver, imprimir o convertir documentos PDF en PostScript.
Conversión de documentos PDF • Linea de comando para convertir de PostScript a PDF: ps2dpf • El comando pdf2ps también existe para realizar la operación inversa.
Sinopsis del correo electrónico • Conceptos clave • La administración del correo electrónico implica dos agentes. Un agente de usuario de correo (MUA, en inglés Mail User Agent), el cual se utiliza para presentar correo recién enviado a un usuario y escribir nuevas respuestas al usuario y un agente de transporte de correo (MTA, en inglés Mail Transport Agent), el cual administra la tarea de segundo plano de intercambiar correo electrónico con otras máquinas remotas. • Dependiendo de los detalles de acceso a Internet de un computador, el trabajo de recepción de correo electrónico se puede delegar a un servidor de buzón, lo que permitiría luego que el usuario tuviera acceso a su correo electrónico 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 electrónico se puede delegar a un servidor remoto saliente SMTP. • Por lo general, el correo local entregado pero no leído se almacena temporalmente en el archivo /var/spool/mail/$USER, en donde USER es el nombre de usuario del destinatario. • Uno de los MUA más sencillos es el comando mail.
Correo • La solución de correo implica dos aplicaciones separadas cuyos roles se identifican por acrónimos de tres letras: • La MTA, o Mail Transport Agent (Agente de transporte de correo) • El MTA recibe correo electrónico para ser envíado desde programas en la máquina local, determina desde la dirección del destinatario la máquina apropiada que debe contactar e intenta conectarse a una MTA. • El MTA por defecto de Red Hat Enterprise Linux es un demonio llamado sendmail. • The MUA, or Mail User Agent (Agente de usuario de correo) • El MUA recupera correo enviado desde un almacenamiento temporal (buzón de entrada) y lo presenta al usuario como "correo nuevo".
Servidores de Buzón (Mailbox Servers) • Solución para usuarios sobre una conexión de "marcado" o de "alta velocidad" desde un ISP, o usuarios que usan máquinas detrás de un cortafuegos de una institución • Accesar al correo configurado en su "inbox" sobre 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).
Entrega Local • Linux (y Unix) también permite a los usuarios en una máquina local enviar correo electrónico entre sí. • El MUA más sencillo es un comando llamado simplemente mail.
Aplicaciones de diagnósticos de red • Conceptos clave • /sbin/ifconfig presenta la configuración 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.
Configuración requerida para el protocolo de internet • Dirección IP • Una dirección ip la cual sirve como la identidad de la interfaz. • Default Gateway • 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 información a la subred apropiada y desde allí al host apropiado. • El router utilizado para encaminar paquetes fuera de su subred local se conoce como un default gateway. • Nameserver • Los servidores DNS (comúnmente llamados servidores de nombre), pueden servir tanto de base de datos para asignar un nombre a direcciones locales IP como también de punto de partida para determinar direcciones IP para nombres de dominio de los cuales el servidor no tiene conocimento directo.
Determinar tu(s) dirección(es) IP: /sbin/ifconfig • El comando ifconfig muestra la configuración de todas las interfaces de red activas. • Los usuarios estándar pueden usar el comando para ver información de configuración de interfaz, utilizando una referencia absoluta.
Determinando tu Default Gateway • El comando route se puede utilizar para ver el cuadro de enrutamiento del sistema. • Aquí, blondie determina que su máquina está utilizando el host 192.168.0.254 como su gateway predeterminado. • La bandera "G" indica que esta línea se utiliza para definir una gateway, no una subred local.
Configuración Estatica DNS • El primer recurso es un archivo de texto sencillo llamado archivo /etc/hosts. • Aunque sólo root puede editar el archivo cualquier usuario puede observarlo.
Configuración dinamica DNS • Cuando el /etc/hosts local no puede dar respuesta, la biblioteca resolv consulta un servidor de nombres. • Para determinar qué máquina consultar que esté ejecutando un servidor de nombres, examina el archivo de configuración de la biblioteca de resolv, /etc/resolv.conf. • Cualquier equipo que esté ejecutando el servidor de nombres y le permita solicitarlo, puede usarse como servidor de nombres. • 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.
Examen de routing: /usr/sbin/traceroute • La ruta del paquete, cuando pasa de router a router puede trazarse con el comando /usr/sbin/traceroute. • Si su paquete no puede completar el primer salto, es probable que su gateway por defecto de su máquina no haya sido determinada correctamente.
Realización de solicitudes DNS de modo manual: host • El comando host se puede utilizar para realizar directamente solicitudes DNS. • Si la opción -a se incluye, el comando host presenta información detallada de la solicitud realizada y la respuesta recibida en el formato de "registro de recursos".
Terminal de red y clientes FTP • Conceptos clave • El cliente HTTP de terminal Elinks, invocado como el comando links se puede utilizar para navegar páginas web desde un entorno gráfico. • La aplicación curl es una aplicación de protocolo múltiple no interactivo (incluyendo HTTP, HTTPS y FTP) que sirve para transferir archivos en modo de lote. • La aplicación wget es una aplicación de protocolo múltiple no interactiva (incluyendo HTTP, HTTPS y FTP) que sirve para transferir de modo recursivo páginas web, buscando en todas las páginas las referencias de página web.
¿Por qué terminales basadas en clientes? • La razón obvia: si no está ejecutando en un entorno gráfico X, estas son las únicas utilidades disponibles. • Las utilidades se pueden escribir en scripts.Si tiene que extraer información de forma repetitiva del mismo sitio, debería considerar un script para que haga el trabajo repetitivo por usted. • Las utilidades de la línea de comandos requieren menos recursos.Si está tratando de descargar un archivo largo en otras máquinas ocupadas, un proceso curl es mucho más 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, imágenes ISO de 700 megabytes, muchas de las aplicaciones pueden volverse inestables. Los clientes de línea de comandos como curl tienden a generar resultados más estables.
Cuando se llame con una URL como su argumento, el comando curl recupera y descarga su contenido en la salida estándar. Inicio curl
Inicio de wget • Descarga recursos de modo recursivo, en ambiente no interactivo de los protocolos HTTP, HTTPS y FTP. • 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.
Comandos remotos de shell • Conceptos clave • Las aplicaciones remotas de shell le permiten a los usuarios ejecutar comandos arbitrarios en máquinas remotas y tener salida estándar retornada de manera local. De modo alterno, se puede iniciar una shell interactiva. • La aplicación Secure Shell ofrece una shell remota, donde todas las transacciones son encriptadas y los usuarios pueden autenticarse mediante contraseñas tradicionales o esquemas de autenticación de clave pública. • Para utilizar los esquemas de claves de autenticación pública, debe generarse un par de claves pública-privada con el comando ssh-keygen. • Debido a que los servidores de Secure Shell tienen sus propios servidores de pares de claves pública-privada, los servidores pueden autenticarse para los clientes como también los clientes se pueden autenticarse para los servidores.
Shells Remoto • Si una máquina remota esta ejecutando el rsh server, los usuarios pueden utilizar la línea de comandos rsh para invocar una shell remota.
Autentificación de Rhosts: ~/.rhosts • Antes de poder acceder a su cuenta remota mediante rsh, necesitó configurar la cuenta para que le permitiera acceder desde su máquina local.
El Shell Seguro • El método de autenticación rhost no es lo mas seguro. En esencia, depende del DNS (Servidor de Nombres de Dominio) para autenticar un usuario. • Con el fin de explotar la configuración ~/.rhosts de elvis, cualquiera podria separar la estación host real desde la red y traer otra máquina configurada con la dirección IP de la estación. • Además, rsh es un protocolo de texto sin formato. • La Shell segura se desarrolló para abordar estos dos defectos del comando rsh y agregar nuevas capacidades • Aparte de la autenticación tradicional, la aplicación Shell segura puede utilizar una clave criptográfica para autenticar usuarios.
Generación de un par de clave pública-privada: ssh-keygen • Al utilizar ssh se puede generar un par de clave pública-privada con el comando ssh-keygen. • La shell segura puede utilizar diferentes algoritmos esenciales de encriptación. • En este caso se utiliza el algoritmo RSA, el cual se especifica con -t rsa.
Generación de un par de clave pública-privada: ssh-keygen • El usuario tiene dos nuevos archivos en su directorio ~/.ssh. El primero contiene su clave privada, la cual no la comparte con nadie.
Autenticación de clave pública shell segura • La aplicación Shell segura puede utilizar una clave criptográfica para autenticar usuarios. • El acceso de SSH a una cuenta se otorga obteniendo una copia de clave pública de la persona a quien se va a otorgar acceso y almacenándola en el archivo ~/.ssh/authorized_keys de la cuenta.