Laboratorio TCP

Site: Facultad de Ingeniería U.Na.M.
Course: Redes II - IC421
Book: Laboratorio TCP
Printed by: Guest user
Date: Wednesday, July 3, 2024, 6:35 AM

1. Armar la topología

La topologia que se trabajará en el laboratorio será la siguiente:

Elementos necesarios

- Cables Ethernet varios

- Router Mikrotik

- Switch

- PC / Notebook

- Servidor

Tenga en cuenta como primer paso realizar el reseteo de los dispositivos para evitar cualquier configuración no deseada.

2. Direcciones IP/Redes

Una vez conectados al dispositivo mediante Winbox configuramos las IP de las interfaces.

Se acostumbra utilizar la 1er dirección de la red para el gateway. Para ambas redes LAN el gateway es el router.

  • Interfaz 1: Nube. Obtiene su ip mediante servidor DHCP. Por lo que debemos configurar un Cliente para esta interfaz.
  • Interfaz 2: Servidor Web. IP fijo 172.31.200.1/24
  • Interfaz 3: Camara IP. se deja al alumno descubrir el IP de la misma o configurarlo
  • Interfaz 4: LAN Ip 172.31.100.1./24

2.1. DHCP Client

Aquí podemos ver los que el servidor DHCP de le asignó a ether1.

En el caso que este no figure para la interfaz, haciendo click en (+) podemos agregar el cliente DCHP seleccionando la interfaz(eth1) y luego en OK

3. Tabla de Rutas

Una vez configuradas las direcciones IP se crea automáticamente un tabla de rutas.


Se aprecia que a la dirección 0.0.0.0/0 (todas las direcciones de todas las redes) se llega a través de ether1 con una distancia de 1 salto hasta el gateway. Como la dirección 0.0.0.0/0 incluye también las IP publicas el router entiende que esa interfaz es la conectada a WAN (internet) y la misma se convierte en el gateway de la topología. Las interfaces locales tiene una distancia de 0.

las siglas de la izquierda son:

  • D = dinámica
  • A = activa
  • S = estática
  • C = conectado


4. Probando la conectividad del Router

Con el botón "New Terminal" se abre una consola donde poder ejecutar ping

como se ve ya tenemos conectividad a internet.

También hay una herramienta ping en el menú "Tools"

5. DNS

Opcionalmente se puede habilitar la chache DNS. De esta manera se puede reducir las consultas DNS a un servidor externo y minimizar los tiempos de resolución DNS.

Si la opción "Allow Remote Requests"está habilitada el router puede ser utilizado como servidor DNS por los clientes de las redes conectadas al mismo. Pero también tendrán acceso las conexiones provenientes desde la WAN. Por ello hay que tomar los recaudos necesarios para proteger el router y la red, por ejemplo con una regla del firewall que niegue las conexiones WAN al puerto 53 (DNS)


6. Servidor DHCP

Los router MikroTik tienen un asistente para configurar el servidor DHCP pero por cuestiones didácticas lo vamos a realizar manualmente mediante los siguientes pasos:

  • Crea los "pools"
  • Crear los servicios DHCP
  • Crear las redes

6.1. Crear los pools

Primero debemos crear los conjuntos de direcciones a usar en cada red (pool)

Vamos a crear dos "pools":

  • red lan: rango de direcciones 172.31.100.100-172.31.100.200
  • red webserver: rango de direcciones 172.31.200.100-172.31.200.200

6.2. Servicios DHCP

vamos a crear un servicio para cada red local: lan y webserver

se puede ver que las configuraciones asignadas van a ser válidas por 10 minutos (Lease Time). Pasado ese periodo el nodo deberá solicitar una nueva configuración.

No olvidar activar (Enable) el recién creado servidor DHCP

6.3. Redes DHCP

por último creamos 2 redes para el servidor DHCP:

  • Address: 172.31.100.0/24
    Gateway: 172.31.100.1
    DNS Server: 172.31.100.1

  • Address: 172.31.200.0/24
    Gateway: 172.31.200.1
    DNS Server: 172.31.200.1


7. Solicitando dirección

VPCS

En las PC1 y PC2, para adquirir una configuración IP utilizamos el comando de consola:

ip dhcp

Verificamos con el comando:

show ip all

Nodo Firefox

en el caso de firefox el nodo está corriendo un SO debian y el mismo periódicamente solicita una configuración IP así que no habría que hacer nada.
Verificamos con el comando:

ifconfig


o con el comando

ip addr show eth0



Debian (webserver)

En el nodo Debian la situación es similar al nodo firefox. Recuerde que en en el nodo Debian se debe utilixar la consola auxiliar.


7.1. Leases (arrendamientos)

En la configuración del servidor DHCP del Mikrotik, en la pestaña "Leases", se pueden ver las direcciones IP asignadas.


7.2. Direcciones estáticas

Como vimos en la tabla de leases las direcciones arrendadas son dinámicas (la D a la izquierda de cada fila)

esto es muy práctico para reutilizar las direcciones a medida que se recambian los dispositivos, pero no es lo más indicado para servidores, ya que siempre queremos acceder a ellos con la misma IP. Por ello es recomendable asignarles una IP fija.

ahora ya no figura la "D" de dinámica y la próxima vez que acceda la configuración de ese arrendamiento se va a poder cambiar la IP


Nótese que el nodo sigue con su IP anterior hasta que expire el "lease time" y solicite una nueva configuración o hasta que se lo haga manualmente en el nodo.


8. NAT

Mikrotik distingue entre 2 tipos de NAT:

  • Source NAT o NAT de origen: cuando la comunicación se inicia desde una red "NATeada", típicamente una red LAN.
  • Destination NAT o NAT de destino; cuando la comunicación se inicia desde una WAN pretendiendo llegar a un destino detrás de un router NAT.

8.1. Source NAT - Masquerade

Si intentamos realizar un ping desde algún host de la LAN o webserver no vamos a alcanzar un destino en internet.

esto se debe a que las direcciones privadas no se pueden enrutar en internet. Más genéricamente hablando, las direcciones privadas no se deben enrutar en WANs. Para convertir direcciones privadas en públicas se utiliza NAT.

Mikrotik tiene un tipo especial de Source NAT pensado para situaciones donde la IP publica puede cambiar. El caso típico de ADSL con direcciones públicas dinámicas.

Para crear una regla de NAT vamos a IP->Firewall pestaña NAT

Como la comunicación se va a iniciar en una zona privada se trata de una source nat (chain: scrnat) y la comunicación va a salir por la interfaz ether1 que es la que está conectada al gateway.

Por último definimos la acción a llevar a cabo en esta regla de NAT: masquerade

Una vez creada la regla NAT volvemos a probar ping desde debian1 a internet y vemos que ahora si funciona

8.2. Destination NAT

Identifique que dirección IP fue asignada al Servidor Web e intente acceder desde la LAN.

Acceso desde LAN

Podemos acceder al mismo desde el nodo Firefox incluso estando en otra red. Esto es posible porque el nodo con Fiirefox se percata que la IP destino no está en su red y por lo tanto direcciona la comunicación hacia el gateway (mikrotik). El router Mikrotik conoce la ruta hacia la red destino así que establece el enlace.

Acceso desde la nube

Si probamos acceder al webserver desde afuera de la red local. por ejemplo desde el celular. no vamos a poder conectarnos. Esto es lógico ya que estamos del otro lado de la nube y no conoce las redes privadas que están detrás del mikrotik.

Si tratamos de acceder a la IP configurada para el Mikrotik (en la imagen figura 192.168.122.156 pero la misma puede cambiar) , se abrirá el entorno de configuración web del router. Esto debido a que el router también tiene un servidor web que está corriendo en el puerto 80.

Para acceder a nuestro webserver desde la nube se debe agregar una regla que redirigir el tráfico del puerto 80 que llega desde la nube a un host en la zona NAT. Esto se conoce como "destination NAT", también conocido como "Port Forwarding".

Creamos una nueva regla NAT del tipo dstnat como muestra la figura

Se necesita por lo menos uno de los datos señalados. Antes de terminar debemos especificar la acción que debe realizar esta regla

Luego de crear la regla dstnat ya podremos acceder a nuestro servidor web desde la nube (internet) utilizando la IP no local 192.168.122.156.

9. Servidor FTP

En el webserver esta corriendo un servidor FTP en el puerto 21.

Los datos para la conexión son lo siguientes:

Usuario: servidorftp

contraseña: 123456

Puerto:21

Pruebe realizar una conexion mediante un Cliente FTP como FileZilla, subir/descargar archivos y analice los paquetes utilizando Wireshark

10. Servidor Video TCP/IP

En el caso de que la webcam esté transmisitiendo por Tcp  o Rstp también podremos acceder a la reproducción teniendo su IP.

Para acceder al mismo podemos hacerlo mediante VLC Player.

Para reproducir abrimos el menú Medio -> Abrir ubicacion de red:

o desde la terminal ejecutamos vlc rtsp://host:554

Luego podemos analizar mediante netstar la conexion abierta o los paquetes transmitidos mediante Wireshark

11. Reglas de Firewall

Seguridad básica

Los siguientes comandos pueden ser agregados por consola.

Input Chain Rules
/ip firewall filter
add action=accept chain=input connection-state=established,related,untracked comment="DEFAULT: Accept established, related, and untracked traffic."
add action=drop chain=input connection-state=invalid comment="DEFAULT: Drop invalid traffic."
add action=accept chain=input protocol=icmp comment="DEFAULT: Accept ICMP traffic."
add action=drop chain=input in-interface-list=!LAN comment="DEFAULT: Drop all other traffic not coming from LAN."
Forward Chain Rules
/ip firewall filter
add action=accept chain=forward ipsec-policy=in,ipsec comment="DEFAULT: Accept In IPsec policy."
add action=accept chain=forward ipsec-policy=out,ipsec comment="DEFAULT: Accept Out IPsec policy."
add action=accept chain=forward connection-state=established,related,untracked comment="DEFAULT: Accept established, related, and untracked traffic."
add action=drop chain=forward connection-state=invalid comment="DEFAULT: Drop invalid traffic."
add action=drop chain=forward connection-nat-state=!dstnat connection-state=new in-interface-list=WAN comment="DEFAULT: Drop all other traffic from WAN that is not DSTNATed."

11.1. Bloquear a un nodo

Mediante una regla del cortafuegos (firewall) vamos a bloquear la comunicación con uno de los equipos de la red. Para ello creamos una nueva regla

en lugar de utilizar la dirección de origen de capa 3 optamos por la dirección MAC, ya que es menos probable que cambie

en la pestaña de acción podemos elegir entre "Drop" y "Reject".

La diferencia es que "drop" simplemente descarta el paquete mientras que "Reject" rechaza con el envío "ICMP destination-unreachable" a la aplicación tratando de comunicarse. De esta manera la aplicación cesa sus intentos de comunicación y evita sobrecargas en la infraestructura. Con drop el host no se entera del problema e interpreta que se perdió el paquete y reintenta la comunicación periódicamente. Estos reiterados intentos se pueden prolongar hasta por 3 minutos.

No olvidarse de agregar un comentario para identificar la finalidad de la regla

Con la regla habilitada no se puede establecer una comunicación a través del router

en la lista de reglas se puede ver estadísticas de uso de la misma

con los botones se puede habilitar y deshabilitar las distintas reglas

11.2. Limitar velocidad

En "Queues" podemos definir reglas para limitar la velocidad a un host o red.
como Target se puede definir una IP o una interfaz.


11.3. Forzar DNS

con las siguientes reglas podemos reenviar todo el tráfico con destino a un puerto 53 (DNS) al servidor que elijamos

add action=dst-nat chain=dstnat dst-port=53 protocol=tcp src-address=192.168.10.10 to-addresses=1.1.1.1
add action=dst-nat chain=dstnat dst-port=53 protocol=udp src-address=192.168.10.10 to-addresses=1.1.1.1