Saltar la navegación

3.1.- Arquitectura cliente-servidor.

Los servicios son procesos, programas en ejecución, que suelen ejecutarse de forma transparente al usuario. Muchos se activan de forma automática al inicio del sistema operativo, o tras una petición del usuario, en función del rendimiento del equipo, del tráfico de la red, etc.

El estudio se va a centrar en los servicios de red.
La arquitectura cliente-servidor es un modelo de aplicación distribuida en el que las tareas se reparten entre los proveedores de recursos o servicios, conocidos como servidores, y los solicitantes de estos, que son los clientes. Un cliente realiza peticiones a otro programa, el servidor, que atiende dichas peticiones dando respuesta.
La separación entre cliente y servidor es una separación de tipo lógico, donde el servidor no se ejecuta necesariamente sobre una sola máquina, ni es necesariamente un sólo programa.
Se ha visto en anterior unidad, que todos los equipos conectados a una red tienen una dirección IP que los identifica, ya sean ordenadores cliente o servidores.

Puertos

Cada sistema operativo posee unos puertos virtuales o lógicos. Esto significa que, al contrario que los puertos físicos (USB, Firewire, DVI, HDMI, etc.) sólo existen virtualmente para el ordenador. Los sistemas operativos cuentan con más de 65.000 puertos virtuales disponibles para abrir conexiones, y se las ceden a los programas para que vuelquen sus datos en la red. Los programas los solicitan y el sistema operativo los gestiona para poder utilizarlos y establecer una conexión lógica. Esto permite que puedan comunicarse con otro ordenador "punto a punto". Finalmente, toda comunicación entre dos dispositivos en Internet se traduce en un flujo de datos entre dos puertos virtuales abiertos por alguna aplicación, entre una parte cliente y una servidora.

Los programas que comienzan la comunicación en un puerto se llaman clientes y los programas que están siempre usando un puerto esperando que los clientes se conecten a él, se llaman servidores, se dice que los servidores están escuchando.
Por ejemplo, un servidor web, está siempre esperando que un cliente (el navegador) se conecte para mostrarle el contenido de la página web. El servidor web suele utilizar permanentemente el puerto 80 para esperar conexiones entrantes y los navegadores suelen usar un puerto cualquiera de los 65.000 para establecer el flujo de comunicación. El hecho de que se utilice el puerto 80 para ofrecer páginas web es una convención histórica, pero en realidad podría utilizarse cualquier otro. Para enviar y recibir correo, por ejemplo, se utiliza el 25.

El número de puertos se codifica con 16 bits, lo que significa que hay 216 = 65536 posibles puertos.

Los puertos del 0 al 1023 son los "puertos conocidos" o reservados. Están reservados para los servidores. Sin embargo, un administrador de red puede conectar servicios con puertos de su elección.
Los puertos del 1024 al 49151 son los "puertos registrados". Los programadores, cuando programan un servicio suelen utilizar los puertos registrados.
Los puertos del 49152 al 65535 son los "puertos dinámicos y/o privados". Se utilizan para comunicaciones muy cortas, de ahí el nombre de dinámico.
Del lado del cliente, el sistema operativo elige el puerto entre los disponibles de forma aleatoria, nunca entre los puertos 0 y 1023 por ser los reservados para los servidores.
Se refleja a continuación una lista de los puertos reservados para los servicios más importantes:

A continuación, se indican algunos de los puertos conocidos más utilizados:

Puertos conocidos asociados a servicios o aplicaciones
Puerto Servicio o aplicación
21 (control), 20 (datos) FTP
23 Telnet
25 SMTP
53 DNS
80 HTTP
110 POP3
143 IMAP
119 NNTP

Monitorización de red.

En ocasiones, la velocidad de la red decrece, siendo necesario averiguar el motivo: ¿hay algún usuario ajeno a la red que está aprovechándose del ancho de banda? ¿Se está siendo víctimas de otro tipo de ataque: sniffing, spoofin IP, DoS?

La solución es incrementar el control sobre la red utilizando herramientas de análisis de red. Estas herramientas realizan un estudio detallado y pormenorizado del tráfico que circula por la red.
La monitorización se considera, también, una tarea de mantenimiento preventivo, tanto a nivel de seguridad como de dimensionamiento de red: puede ocurrir que el ancho de banda sea insuficiente o por el contrario esté sobredimensionado.

Algunas de las herramientas de monitorización de redes más conocidas:

Wireshark
Es un analizador de protocolos utilizado para realizar análisis y solucionar problemas en redes de comunicaciones. Tiene una interfaz gráfica, y muchas opciones de organización y filtrado de información. Así, permite ver todo el tráfico que pasa a través de una red estableciendo la configuración en modo promiscuo.
Wireshark incluye un completo lenguaje para filtrar lo que queremos ver y la habilidad de mostrar el flujo reconstruido de una sesión de TCP. Wireshark es software libre y se ejecuta sobre la mayoría de sistemas operativos Unix, Linux, Mac OS X y Microsoft Windows.
Nmap
Es un programa de código abierto que sirve para efectuar rastreo de puertos. Nmap es difícilmente detectable, ha sido creado para evadir los Sistema de detección de intrusos (IDS) e interfiere lo menos posible con las operaciones normales de las redes y de las computadoras que son analizadas.
Nagios
Software libre para Linux, permite monitorizar la red, permitiendo al administrador configurar advertencias.


Estas herramientas de monitorización darán información sobre:

  • Número de equipos conectados y sus direcciones IP.
  • Tipo de tráfico predominante.
  • Qué puertos están abiertos.
  • Qué conexiones establecidas hay.
  • Algunos programas permiten la realización de inventarios de los equipos de la red (puntos de red, segmentos, cableado, switches, routers, PC, etc.)

En el capítulo 4 se estudian los comandos TCP/IP que sirven para resolver problemas de red y monitorizar redes.

Permiten interconectar 2 o mas redes remotas como si fueran una misma, mediante un canal de comunicación