Entendiendo redes de computadoras, servidores y puertos

Muchas veces cuando usamos Internet, damos por sentado que la información viaja mágicamente de un dispositivo a otro, cuando en realidad usualmente viaja miles de kilómetros por múltiples equipos de red, servidores y jurisdicciones. En nuestros talleres de capacitación en seguridad digital nos gusta separar todo el proceso en las siguientes etapas/capas:

 

    • Usuarios
    • Equipos de usuario
    • Redes internas
    • Proveedores de acceso a Internet (ISPs)
    • Internet

    Mirando más detenidamente, podemos observar muchos equipos de diferente naturaleza que no parecen relacionarse a nivel técnico. Sin embargo, estos equipos se pueden comunicar efectivamente usando un conjunto de reglas estandarizadas o “protocolos” para poder transmitir nuestra información y permitirnos usar Internet.

    Para poder explicar mejor el funcionamiento de estos protocolos vamos a comparar Internet con ubicaciones físicas. En este caso, queremos imaginarnos todo lo que se necesita para tener direcciones físicas y enviar correspondencia a personas en estas direcciones, para después hacer las comparaciones que correspondan con el modelo de funcionamiento de Internet.

    Capa 1: Infraestructura

    Para comenzar, en nuestro mundo necesitamos la existencia de casas, edificios, calles y avenidas, ya que sin estas referencias no tendríamos lugares a donde enviar correspondencia desde nuestra empresa ficticia. 

    En redes de computadoras, necesitamos tener las computadoras y servidores, así como cables y switches para conectar todas las piezas, así estas pueden enviarse pulsos eléctricos que después servirán para transmitir información entre los diferentes elementos. Esta capa podemos llamarla “capa de enlace”.

    Esta capa considera:

    • Cables
    • Metales
    • Los ceros y unos (pulsos eléctricos) viajando entre los diferentes elementos
    • Tarjetas de red
    • Direcciones MAC (Identificadores de las tarjetas de red en internet)
    • ARP 
    • Switches

    Capa 2: Ubicaciones

    Luego de tener infraestructura física, necesitamos generar convenciones para poder identificar un lugar a nivel geográfico. En este caso las calles y avenidas tendrán un nombre y las casas y edificios tendrán un número, así podemos describir la ubicación de una casa o edificio particular a través del nombre de la calle/avenida y el número correspondiente.

    También cabe resaltar que en el mundo físico pueden haber ubicaciones que tienen acceso controlado, en la imagen existe un área encerrada en una línea punteada roja con una caseta de vigilancia, en la cual hay que identificarse pasar para poder entrar y dependiendo de las reglas de esa urbanización necesitaremos cumplir algunos requerimientos para poder acceder a la ubicación que necesitemos.

    En redes de computadoras, también existen convenciones que permiten identificar a cada computadora y servidor. La principal se conoce como direccionamiento IP, que usa identificadores para cada elemento de la red, estos identificadores en la actualidad están mayormente descritos en su versión 4, cuya notación consiste en 4 números del 0 al 255 separados por un punto, cómo aparece en el siguiente gráfico.

    De la misma forma que describimos las garitas de vigilancia en el modelo físico, en redes de computadoras se introduce el concepto de enrutadores (o routers), que sirven entre otras cosas para controlar el acceso a redes específicas. Los enrutadores más conocidos son los residenciales, que generalmente se conectan directamente a nuestro proveedor de acceso a internet (ISP) por un lado, y por el otro nosotros conectamos los dispositivos de nuestra casa. 

    Otro uso común de los enrutadores es determinar los caminos por los que hay que enviar la información para que llegue al lugar que necesitemos. Gracias a esta funcionalidad puede existir Internet, que se considera que nace en esta capa de la red.

    Esta capa considera identificadores de red y rutas de transmisión de datos:

    Capa 3: Direcciones

    Luego de tener lo necesario para ubicar casas y edificios, necesitaremos generar convenciones para describir cómo llegar de un punto A a un punto B.

    En este ejemplo, se puede decir que saliendo del edificio 5 de la Avenida principal hacia la izquierda, luego girando a la izquierda y pasando la garita de vigilancia al final a la izquierda se puede llegar a la casa 4 de la Calle Conexo.

    En redes de computadoras, también necesitamos formas de generar comunicaciones entre un dispositivo A y un dispositivo B, esto incluye también convenciones para establecer la comunicación. Para lograr esto existen protocolos que ayudan a transportar información de forma efectiva a través de la red considerando las direcciones IP de las partes involucradas y la infraestructura física disponible.

    Los dos protocolos más conocidos que se usan a este nivel son TCP y UDP, que entre otras particularidades resalta el cómo manejan la transmisión de datos: mientras TCP se diseñó pensando en transmitir información de forma íntegra y confiable, revisando por ejemplo si se perdió parte de la información en el camino y volviéndola a mandar para garantizar que el receptor tenga todos los ceros y unos que se enviaron, UDP se diseñó para siempre mantener la conexión ligera y rápida, sin importarle mucho si se pierde información en el camino por ejemplo. Por esta diferencia, TCP resulta muy efectivo para navegar por internet o enviar mensajes de texto, y UDP ve mucho uso en servicios como videollamadas en donde la rapidez es lo más importante. Si quieres saber más sobre los protocolos TCP y UDP puedes revisar este artículo o esta referencia para una mirada más técnica.

    Capa 4: Personas

    Finalmente, después de tener todo lo anterior, podemos comenzar a hacer envíos desde nuestra empresa ficticia. Solo nos falta definir cómo dejamos un paquete en una dirección particular así como otras consideraciones, por ejemplo si vamos a dejar un documento u otro tipo de envío, pero principalmente entender quiénes son las personas que recibirán la correspondencia en cada casa o edificio.

    En este sentido tenemos una unidad de identificación adicional: la persona. Cuando un envío llega a un lugar en particular va dirigido a alguien y dependiendo quién sea o qué estamos enviando el uso del contenido de la correspondencia puede variar, puede ser un instrumento para un músico, un libro para una estudiante, un reactivo para un laboratorio, una medicina, etc. 

    En redes de computadoras sucede lo mismo, a una computadora o servidor puede llegar múltiple información para múltiples fines, un correo electrónico, una actualización del antivirus, la fecha y hora actualizadas, video y audio para una llamada, etc. Esta información debe ser dirigida y procesada por la aplicación adecuada cada vez, una de las formas en las que esto se logra es usando números de puertos. Las aplicaciones que envían o reciben datos toman ciertos números de puertos y estos números son agregados a la información que se envía por la red (incluyendo Internet), entonces cuando una pieza de información o paquete llega a un equipo, no sólo llega dirigido a su dirección IP sino que también llega con un número de puerto, que permite saber a qué aplicación de la computadora o servidor va ese paquete de datos.

    En este ejemplo una computadora con la dirección 192.168.1.100 quiere conectarse al sitio web https://conexo.org usando Mozilla Firefox, la computadora usa un puerto arbitrario con un número alto, y cuando la solicitud llega al servidor en donde se aloja ese sitio web (en el ejemplo sería la dirección 217.13.88.87) se revisa que viene marcada para ser dirigida al puerto 443, correspondiente a un servidor web sirviendo información segura mediante HTTPS y dirige la información a la aplicación correcta de forma sencilla.

    Algunos de los miles de protocolos asociados a números de puerto determinado por convención son:

    • HTTP (80)
    • HTTPS (443)
    • FTP (21)
    • SSH (22)
    • DNS (53)
    • Y muchos más, una lista más completa se puede conseguir en este enlace.

    Este esquema por capas mostrado se conoce como Modelo TCP/IP, el cual es usado frecuentemente para describir cómo funcionan redes de computadoras en la literatura técnica.

    Consideraciones de seguridad en redes organizacionales

    Teniendo más claro cómo funciona una red de computadoras, podemos enfocar nuestra atención a la protección de la red de nuestra casa u organización. Estas redes probablemente se parezcan a la urbanización cerrada que vimos en nuestro ejemplo anterior.

    En nuestra urbanización física:

    • Confirmar que las casas y edificios dentro del condominio sean los que están previstos.
    • Revisar quiénes en cada casa están disponibles para recibir cualquier cosa que les llegue (y si eso puede ser usado para fines malvados)
    • Revisar que las casas no revelen información que pueda terminar en entradas no autorizadas u otro tipo de actividad indeseable

    En nuestra red de computadoras:

    • Confirmar que no hay dispositivos extraños y/o maliciosos en la red.
    • Revisar qué servicios tienen puertos abiertos en cada dispositivo.

    • Revisar que la información pública de los dispositivos no revele potenciales vulnerabilidades

    Todos estos objetivos se pueden lograr de múltiples formas: configurando mejor el enrutador, usando cortafuegos, actualizando y configurando los equipos dentro de la red, etc. Sin embargo, ya podemos tener un entendimiento más claro de cómo opera la red y qué tipo de amenazas se pueden concretar dependiendo de qué tan protegida esté.