Posts in "Networking"

Laboratorio de redes (I): Conexión serial entre routers Cisco.

El objetivo del laboratorio de redes es de disponer, para finales de este año, de todo un diseño de red complejo.

Pero como por algún sitio hemos de empezar, hoy nos dedicaremos a configurar la conexión entre dos routers Cisco.

En este ejemplo hemos empleado dos imágenes de un Cisco 3725 [ c3725-adventerprisek9-mz.124-25d ].

Screen1

Deberemos añadir en las ranuras de configuración de interfaces las correspondientes que necesitamos antes de encender ambos equipos. Como necesitamos al menos un puerto serie por cada uno de los dispositivos, configuraremos convenientemente el dispositivo tal y como muestra la figura.

Screen2

Una vez iniciados los dos equipos bastará con que accedamos por consola a ambos y configuremos las interfaces serie convenientemente.

Accederemos por consola al router 1 (R1):

R1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R1(config)#int serial 1/0
R1(config-if)#ip address 192.168.0.1 255.255.255.0
R1(config-if)#no shutdown
R1(config-if)#clock rate 64000

Una vez configurado el router 1, pasaremos a configurar el router 2:

R2#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R2(config)#int serial 1/0
R2(config-if)#ip add 192.168.0.2 255.255.255.0
R2(config-if)#no shut

Es importante tener muy presente que una conexión serie es una conexión síncrona lo que explica la necesidad de definir un «clock rate» (tiempo de reloj) para sincronizar el equipo DCE, que será el que marque el sincronismo con el equipo DTE, que será el que esté a la espera de recibirlo. La decisión de que R1 sea el DCE es totalmente aleatoria y este mismo diseño podría haberse realizado siendo R2 el equipo DCE.

De esta manera, los dos routers serán capaces de comunicarse sin problemas al haber establecido una conexión serie completa:

R1#ping 192.168.0.2

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.0.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 16/21/28 ms

R2#ping 192.168.0.1

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.0.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 20/22/32 ms

 

Haz de tu casa un servidor web accesible.

Una de las cosas que más pueden interesar a un desarrollador web es montar su propio entorno de desarrollo en su propia casa.

El primer paso será instalar y configurar las máquinas que van a proporcionar los servicios que el desarrollador necesite, esto es: un servidor web (Apache, IIS), módulos de ejecución de código dinámico (PHP, PERL, .NET), y bases de datos (MySQL, PostgreSQL, SQLite).

Una vez tengamos los servicios funcionando hay un punto importante a tener en cuenta: estos servicios sólo serán accesibles a través de nuestra red local y los equipos que estén conectados a ella.

¿Y sí queremos hacerlos accesibles desde el exterior?

Para ello necesitaremos configurar nuestros equipos de red convenientemente.

Por lo general, en una red convencional de un hogar disponemos de un dispositivo que nos facilita la conexión a Internet. Este equipo es el que hace de frontera entre nuestra red local (LAN) y la red exterior (WAN). Estos dispositivos normalmente llevan por defecto configurado el servicio NAT.

Esto implica que en el exterior nuestros equipos, todos, tienen una misma y única dirección IP que los identifique. La IP pública.

Para dirigir el tráfico HTTP (puerto 80) hacia la máquina local que está prestando los servicios, debemos realizar lo siguiente:

1. Configura los Cortafuegos (Firewall) software que tengas instalado en la máquina para que permitan las peticiones al puerto 80.  Esto parece trivial y obvio pero muchos de los problemas de conectividad vienen provocados por el dichoso firewall de Windows.

2. En el router de casa, configura la redirección de puertos (NAT o PAT) para que se produzca la redirección automática entre cualquier IP del exterior que consulte nuestra IP pública en el puerto 80 y la IP privada de nuestra máquina en ese mismo puerto.

3. Comprueba que el puerto está abierto: [http://www.yougetsignal.com/tools/open-ports/] Ten presente que esta prueba la debes realizar poniendo siempre la IP pública, que es la que va a ser accesible desde el exterior.

Por lo general, salvo que tengas contratado un servicio especial, tu dirección IP pública no es estática y varía con el tiempo. Esto se debe a que los proveedores de servicio disponen de un número limitado de direcciones IP y las van reasignando conforme se van empleando.

Para evitar tener que estar constantemente comprobando qué dirección IP tienes [www.cualesmiip.com], existen servicios gratuitos como DynDNS [http://dyn.com/dns/] que te permiten asociar tu IP pública a un nombre preestablecido y de esa forma sólo tener que memorizar ese nombre.

Herramientas de redes: ping y traceroute.

Ante cualquier anomalía de red un técnico debe actuar de forma concisa y rápida buscando aislar por completo la fuente de error.

En la mayoría de los casos el primer paso será comprobar el alcance de la anomalía y qué servicios o equipos están inaccesibles debido a ella.

Para poder obtener esta información de forma rápida y más o menos precisa todo técnico de redes dispone de dos herramientas básicas para ello: el ping y el traceroute.

Ping

PING’ el acrónimo de Packet Internet Groper, el que puede significar «Buscador o rastreador de paquetes en redes» es una utilidad que envía paquetes ICMP de solicitud y respuesta y cuya finalidad es comprobar que el equipo destino está activo y disponible. También se puede emplear para obtener la latencia (o tiempo de respuesta RTT) entre dos equipos para tener una noción del retardo existente en la conexión. [fuente: Wikipedia]

Esta utilidad suele venir instalada en la práctica totalidad de sistemas operativos/equipos de red y de ahí que ante cualquier situación problemática con una red podamos hacer uso de ella.

Para poder emplearla bajo sistemas Microsoft Windows deberemos primero lanzar una ventana de MS-DOS:

blog_pingtracert_01

Una vez en ella bastará con que empleemos el comando: ping -equipo-, siendo equipo la dirección IP o el nombre de la máquina (siempre que dispongamos de su traducción DNS correspondiente):

Si el resultado es satisfactorio la respuesta nos dirá además el tiempo de respuesta o latencia y el TTL (Time-to-live). Este último parámetro indica el número de saltos que el paquete ha realizado hasta llegar a destino, pero es un número que depende de otros factores como el tipo de conexión y que explicaremos más adelante.

blog_pingtracert_03

Si, por el contrario, el equipo no es accesible, la respuesta obtenida será la siguiente.

blog_pingtracert_04

De este modo con una única utilidad podremos obtener información acerca de la disponibilidad de determinado equipo y, por ende, de determinado servicio.

Traceroute

Traceroute es una utilidad de diagnóstico que permite seguir la pista de los paquetes que vienen desde un host (punto de red). Se obtiene además una estadística del RTT o latencia de red de esos paquetes, lo que viene a ser una estimación de la distancia a la que están los extremos de la comunicación. [fuente: Wikipedia]

En este caso lo que se realizan son llamadas a cada uno de los saltos que realiza el paquete y, por tanto, se nos informa del camino (traza la ruta) que sigue el paquete.

Mediante esta utilidad podemos comprender de forma más coherente el camino que siguen los paquetes e identificar problemas de enrutamiento, balanceo, filtado, etc.

En los sistemas MS Windows la aplicación a emplear es tracert. El procedimiento a seguir es similar, deberemos abrir una ventana de MS DOS y lanzar la aplicación: tracert -equipo-

En la respuesta veremos reflejados todos y cada uno de los saltos que realiza el equipo

blog_pingtracert_05

Si observamos, algunas líneas muestran * en lugar de valores. Esto se debe a que en ese salto nuestro equipo no ha recibido respuesta del equipo destino: hay varias razones para ello pero entre otras el equipo puede tener deshabilitadas las respuestas por motivos de seguridad.

Generalmente si realizamos esta consulta dentro de nuestra red local deberíamos poder ver todas las respuestas.

Con estas dos utilidades, un técnico de redes puede en cuestión de minutos aislar casi por completo la fuente de error de la red y de este modo enfocar todos sus esfuerzos en resolver el punto de fallo. En entornos donde existen una gran cantidad de equipos de red funcionando resulta fundamental discriminar la mayor cantidad de equipos para poder comenzar con el proceso de análisis con un número de variables reducido.

Conceptos básicos de seguridad de red (I)

blog_seguridad

Cuando nos enfrentamos ante la realidad de tener que proporcionar las medidas de seguridad necesarias para preservar la integridad de una red de comunicaciones es fundamental tener muy claros y definidos los conceptos básicos que subyacen a la securización de estas redes.

Confidencialidad, Integridad y Disponibilidad.

Existen tres puntos que debemos asegurar:

Confidencialidad: Sólo los usuarios o sistemas autorizados deben poder ver información sensible o clasificada. Encriptar los datos y separar las redes (datos, management) son un buen primer paso.

Integridad: Los cambios en la información deben ser realizados sólo por usuarios o sistemas autorizados. La corrupción de datos provoca un fallo importante en la seguridad. Existen mecanismos de hashing (resumen) que proporcionan respuesta a esta necesidad asegurando que la información no ha sido modificada durante su transporte.

Disponibilidad: Mantenimiento del estado normal de funcionamiento de los sistemas y la información. Ataques como los DoS (Denial of Service) buscan tumbar sistemas para que la información no esté disponible. Esto puede afectar muy negativamente al normal desarrollo de la actividad de la empresa.

Análisis de seguridad – Conceptos clave.

  • Activo: Cualquier cosa que es valiosa para una organización.
  • Vulnerabilidad: Debilidad explotable en un sistema o en su diseño.
  • Riesgo: Daño potencial a un activo.
  • Contramedida: Acción que de alguna manera mitiga el riesgo potencial.

El valor de un activo depende de muchos factores. La relación coste-beneficio se obtendrá teniendo en cuenta el valor del activo y el coste de su protección.

Vulnerabilidades

Una lista de posibles vulnerabilidades

  • Errores en política de seguridad.
  • Errores de diseño.
  • Debilidad de protocolos.
  • Errores de configuración.
  • Vulnerabilidad de software o hardware.
  • Factores humanos.
  • Software malicioso.
  • Acceso físico a los recursos de red.

Contramedidas

  • Administrativas: Políticas de seguridad, procedimientos, guías y estándares.
  • Físicas: Seguridad física, vigilancia.
  • Lógicas: Contraseñas, firewalls, IPS, Listas de acceso, conexiones seguras vía VPN, etc.

Atacantes potenciales

El perfil de los atacantes ha variado mucho desde que Internet y las redes de comunicaciones iniciaran sus pasos hace ya unos cuantos años. Se ha pasado de un atacante que buscaba notoriedad o el simple hecho de conseguir acceso a algo para lo que no disponía del mismo a empresas y organizaciones dedicadas al espionaje y al robo de información relevante (financiera, política, etc.). Así, grupos terroristas, agencias gubernamentales, estados, hackers, empleados disgustados, competidores, etc., pueden ser potenciales atacantes de nuestras redes.

Métodos básicos de ataque

Reconocimiento: Se trata de un técnica que busca descubrir información sobre la red atacada. Suele ser el primer paso que se da y en el que se obtienen parámetros básicos de la red: direccionamiento, hosts, tipo de tráfico, medidas de seguridad, etc.

Ingeniería social: Su objetivo es el usuario final de forma que obtengan información de él. El Phising, un enlace que parece el real pero que no lo es y que proporciona información al atacante y el Pharming, redirigir al usuario de una página válida a una que no lo es, son métodos de ingeniería social muy extendidos.

Escala de privilegios: Ir ganando privilegios de acceso a determinados servicios o sistemas.

Puertas traseras: Tanto el software como el hardware pueden tener fallos de diseño que permitan a un individuo acceder sin permiso a determinadas partes. Así mismo, terceras aplicaciones (Troyanos) abren puertas para que los atacantes accedan a los sistemas.

Debemos, pues, centrar nuestros esfuerzos en evitar que esos métodos puedan llevarse a cabo con éxito.

Laboratorio de redes I: Subnetting

Una de las primeras cosas que debemos conocer cuando nos desenvolvemos en entornos de redes son las subredes.

Breve introducción.

En uno de los primeros capítulos sobre Redes, os explicaba el concepto de dirección IP y el de Clase de dirección. Por resumir un poco nos encontramos que cuando las redes de computadores se diseñaron se concibieron tres grandes grupos de IPs. Las de clase A, pocas, pero que serían capaces de albergar un número grande direcciones, las de clase B, en mayor número pero con menor número de direcciones y las de Clase C, las más extendidas, que dispondrían de un número bastante reducido de direcciones.

Con la popularización de las redes y la llegada de Internet pronto se observó que ese modelo era incompatible con el crecimiento de los equipos y las redes puesto que se asignaban grupos con un número fijo de direcciones (A,B,C) independientemente de la necesidad que tuviera cada empresa. Sin embargo, al estar ya establecido se antojaba complejo reestructurarlo. Por ello se decidió introducir un nuevo concepto, el de subredes.

Subnetting o el aprovechamiento máximo.

La idea se fundamenta en un nuevo concepto: la máscara de subred.

Este número, que al igual que las direcciones IP está compuesto de 4 grupos de números entre 0 y 255, es el patrón que se superpone a la dirección IP y nos indica qué parte es considerada «dirección de red» y qué parte es considerada «dirección del host».

Aclaremos un poco esto antes:

Supongamos que se nos asigna un número de dirección IP como el siguiente:

128.1.0.0

Esta dirección es de Clase B por lo que tiene asociadas 65.534 direcciones posibles: de la 128.1.0.1 a la 128.1.255.254 (recordad que ni la acabada en o, que es la dirección de red, ni la acabada en .255, la dirección de broadcast, pueden emplearse).

En este ejemplo queda bastante claro que la parte de dirección de red es: 128.1 mientras que la parte de dirección de host son los dos últimos octetos.

Pero qué sucede si no necesitamos más de 65.000 direcciones pero las 254 que nos ofrece la Clase C no son suficientes: aquí es donde nace el subnetting y el concepto de máscara de red.

De lo que se trata es de «alargar» la dirección de red aumentando así el número de posibles redes disminuyendo el número de direcciones de host asociadas.

Para ello añadiremos a la dirección de red la máscara: 128.1.0.0 255.255.128.0

La máscara de subred es, como he comentado antes, un patrón que se superpone a la dirección de red y que discrimina la parte de dirección de red de la parte de dirección de host. Para ello, en binario, si la máscara tiene un 1, el bit de la dirección de red se mantiene en su estado, si la máscara tiene un 0, el bit de la dirección de red pasa a 0 (operación binaria AND).

¿Qué hemos conseguido?

Al añadir esta máscara de subred nos encontramos con que pasamos de las 65.534 direcciones de host a la mitad: 32.767

¿Cómo es posible?

En el ejemplo inicial tanto la dirección 128.1.1.150 como la dirección 128.1.220.140 pertenecían al mismo rango: 128.1.0.0

Aplicando la máscara de su red, sin embargo, vemos que no es así:

En el caso de la dirección 128.1.1.150 255.255.128.0 , con una AND binaria tenemos que pertenece a la red: 128.1.0.0

En el caso de la dirección 128.1.220.140 255.255.128.0, obtenemos sin embargo que pertenece a la red: 128.1.128.0

Otras formas de mostrar la máscara de subred.

Comúnmente la máscara de subred no se muestra completa sino que se añade a la dirección de red como el número de 1 consecutivos que tiene la misma en binario.

En nuestro ejemplo, nuestra máscara 255.255.128.0 tiene 17 1 consecutivos por lo que la forma de representar la dirección sería: 128.1.0.0/17

Laboratorio Práctico

Marcados analógicos: pulsos y DTMF

Hace ya unos cuantos largos años cuando los teléfonos se pusieron en marcha llegó el momento de plantear un paso más allá en el sistema de telefonía.

Disponíamos ya de los terminales y la tecnología había sido probada.

Las llamadas, inicialmente, pasaban por una centralita que era la encargada de enrutar manualmente las mismas. Todos tenemos en la mente la imagen de mujeres, porque en su mayoría lo eran, conectando y desconectando continuamente cables en paneles inmensos.

Había que superar esto y se decidió emplear un sistema de señalización automática.

El primero de los sistemas fue el conocido como sistema de pulsos.

Sistema de pulsos.

Dado que vivíamos en un mundo plenamente analógico por aquellos tiempos, los ingenieros resolvieron el asunto de la forma más sencilla y directa: si los teléfonos usaban la corriente eléctrica para transmitir voz, la usarían también para enviar la señalización. ¿Cómo?

Bueno tengamos en cuenta que el teléfono es una evolución del telégrafo así que no es difícil entender que se usaran «pulsos» eléctricos en la línea telefónica para mandar información.

De esta manera, y con los años, todas las casas dispondrían de uno de estos vetustos terminales telefónicos.

blog_telefono_rueda_1

La famosa rueda era en realidad la encargada de enviar los pulsos adecuados en función de dónde nos parásemos al girarla indicándole así a la centralita la numeración escogida.

Con el paso del tiempo llegaron los botones, que eran más modernos y se terminó por perfeccionar el sistema.

DTMF: Dual Tone Multi Frequency

Pese a que seguíamos en el mundo puramente analógico los grandes pensadores de la telefonía mundial habían dominado el espectro de frecuencias sonoras y plantearon una alternativa al monótono y algunas veces cansino sistema de pulsos.

DTMF, Tono dual multi-frecuencia es un sistema de señalización que envía dos tonos de frecuencia distinta a través de la línea telefónica y que identificaban claramente cada uno de los números marcados.

blog_telefono_domo

Así llegarón los «tonitos» al marcar que todavía perviven en nuestros tiempos en los sistemas de telefonía fija convencional y que hemos heredado más por convencionalismo que por necesidad real en los sistemas de telefonía digital (Voz sobre IP o telefonía móvil).

Experimenta tú mismo. 

Si aún tienes el privilegio de guardar un teléfono de rueda haz la prueba, marca cualquiera de los números y pon especial atención al auricular. Notarás un sinfín de microcortes mientras la rueda gira: eso son los pulsos.

[CCNA-Voice] 2. Conceptos básicos: Interfaces FXS, FXO y DSP.

Cuando nos introducimos por primera vez en el mundo de la voz IP empiezan a aparecer como por arte de magia un sinfín de nuevos conceptos, siglas, dispositivos que pese a tener relación directa con los equipos con los que trabajamos en el mundo de las redes, son desconocidos para nosotros.

En esta primera entrega vamos a definir tres conceptos básicos con los que nos encontramos nada más empezar.

Interfaces FXO y FXS.

Estamos acostumbrados, o al menos deberíamos, a tratar con puertos de red: RJ-45 para las conexiones LAN (Ethernet) y RJ-11 para las conexiones WAN (ADSL o similares).

Con la llegada de la voz IP a los dispositivos de redes se hizo necesario añadir interfaces para conectar equipos de voz a los routers/switches.

De esta necesidad nacieron las interfaces FXO y FXS.

FXS (Foreing Exchange Station) es una interfaz que nos permite conectar un teléfono analógico convencional, como el que tenemos en casa y que éste pase a formar parte de la red de voz IP. ¿Cómo? Gracias a los DSP de los que hablaremos en un momento. Por ahora, baste decir que es una interfaz que proporciona tono de llamada a los equipos que se conectan y que, por tanto, les permite interactuar con el sistema de voz IP.

FXO (Foreign Exchange Office) es una interfaz preparada para conectarse con pasarelas de voz (voice gateways) u otros dispositivos de telefonía (PBX, centralitas,etc.). En este caso, esta interfaz recibe el tono de llamada del dispositivo que se conecta a ella.

fxs-fxo-no-pbx

Ambas interfaces suelen tener puertos RJ-11 como terminación por lo que no debemos confundirlos con otras
interfaces de conexión.

¿Y después?

Una vez el dispositivo analógico se conecta correctamente al equipo de voz éste debe realizar un proceso de conversión. Como recordaréis, os explicaba en un capítulo anterior cómo se produce el paso del mundo analógico al mundo digital. 

Es en este punto donde entran en acción los DSP.

DSP (Digital Signal Processing).

Los routers que se utilizan para voz IP son en esencia los mismos que se venían empleando para las redes convencionales hasta ahora.

Esto significa que estaban dimensionados (en memoria y capacidad de proceso) para sobrellevar sin problemas las necesidades que una red pudiera requerir. Sin embargo el proceso de conversión analógico-digital es muy costoso y requiere de mucha capacidad para poder llevarse a cabo con éxito y en tiempo real. Así, dada esta nueva necesidad, surgió la opción de rediseñar por completo los equipos o bien seguir utilizando los que hasta ahora se venían empleando añadiéndoles circuitos dedicados para el procesado de voz.

Los DSP son estos circuitos dedicados y se dedican, casi en exclusividad, a realizar los complejos procesos matemáticos que requiere la conversión analógico-digital.

De modo que cuando estamos diseñando nuestro sistema de voz IP debemos tener en cuenta cuántos equipos analógicos van a coexistir: teléfonos analógicos, RTB (Red Telefónica Básica), pasarelas de voz, etc., y sobre ello calcular el número de conversaciones que van a tener que convertirse simultáneamente para decidirnos por el tamaño  del DSP a instalar.