Ejercicios Lección 2: Trabajando con las redes de NETinVM
Ejercicio: Conectarse a las máquinas UML desde base
La forma más sencilla es usar las terminales, que son equivalentes al acceso físico al sistema y, por tanto, no generan ningún tráfico de red.
No obstante, en la configuración por defecto, todas las UML ofrecen el servicio SSH y permiten el acceso mediante contraseña. Por tanto, desde base es posible conectarse por SSH a cualquiera de las UML, tanto como "user1" como como "root". Este servicio es accesible desde base incluso aunque se detenga "fw" o se cambien sus reglas de filtrado, ya que base está conectada directamente a las tres redes de NETinVM (ext, dmz e int).
Acción a realizar: Conectarse a las máquinas UML desde base. Por ejemplo, conectarse desde base a exta.
Ejercicio: Comprobar la conectividad entre UMLs
Para entender la interconexión entre UMLs será necesario, probablemente, releer el apartado Descripción de NETinVM. Resumiendo brevemente, las reglas son las siguientes:
- Las máquinas de la red interna pueden conectarse a las máquinas de la red externa.
- Las máquinas de la red externa no pueden conectarse a las de la red interna.
- Las máquinas de la red perimétrica no aceptan conexiones, salvo para los servicios previstos:
- dmza.example.net, www.example.net: HTTP y HTTPS
- dmzb.example.net, ftp.example.net: FTP
- Las máquinas de la red perimétrica no pueden conectarse a las UMLs de la red interna.
Acciones a realizar:
- Desde inta:
- Comprobar que es posible conectarse por SSH a exta.
- Comprobar que no es posible conectarse por SSH a dmza.
- Desde exta:
- Comprobar que no es posible conectarse por SSH a inta.
- Comprobar que no es posible conectarse por SSH a dmza.
- Desde dmza:
- Comprobar que no es posible conectarse por SSH a inta.
- Comprobar que es posible conectarse por SSH a exta.
Ejercicio: Capturar tráfico e interpretarlo
Aunque las redes de NETinVM son virtuales, el programa que las crea simula un hubethernet. Por tanto, analizar el tráfico en NETinVM es igual a hacerlo en sistemas reales, con la ventaja añadida de que el único tráfico que se observa es el de las UML activas y base.
Para esta actividad se empleará la utilidad gráfica wireshark, que puede lanzarse tanto desde Kicker (Alt-F2) como desde el menú de inicio. En ambos casos el sistema solicita la autorización para ejecutarla como administrador. (Si se lanza como "user1" no se podrá capturar el tráfico).
Acciones a realizar:
- En base, lanzar Wireshark.
- Iniciar la captura.
- Desde exta, ejecutar la orden "ping -c 1 www.google.es" para enviar un "ICMP echo request".
- Parar la captura. (Debe obtenerse algo similar a la siguiente imagen).
- Comprobar que:
- exta ha enviado un paquete "ICMP echo request".
- exta ha recibido la respuesta correspondiente.
(Lógicamente puede haber tráfico adicional de los protocolos ARP y DNS).
Tal y como se describe en "Descripción de NETinVM" fw es la pasarela por defecto para todo el tráfico que va desde las redes interna y perimétrica hacia la red externa o Internet. Para que esto sea posible, fw enmascara las direcciones de estas redes (usa NAT).
- Acciones a realizar:
- Iniciar una nueva captura en Wireshark.
- Desde inta, ejecutar la orden "ping -c 1 exta.example.net".
- Parar la captura.
- Comprobar que:
- exta recibe el paquete "ICMP echo request" con dirección de origen la de la interfaz externa de fw (10.5.0.254).
- inta recibe la respuesta con dirección de origen la de exta (10.5.0.10).
Ejercicio: Comprobar los servicios ofrecidos por una UML
La forma de listar los servicios, de examinar la configuración de la red o de ver las conexiones establecidas es la misma en las UML que en cualquier otra máquina con Debian. Para ello se utilizan las tradicionales netstat, ifconfig o route, que forman parte del paquete net-tools. Alternativamente, se pueden usar las herramientas del paquete iproute2, que aparecen como las herramientas destinadas a sustituir a las anteriores, que ya llevan años con poco o ningún mantenimiento.
Por ejemplo, para listar las interfaces de red y sus direcciones:
root@exta:~# ifconfig eth0 Link encap:Ethernet HWaddr ca:fe:00:00:00:0a inet addr:10.5.0.10 Bcast:10.5.0.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:236 errors:0 dropped:0 overruns:0 frame:0 TX packets:2189 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:19851 (19.3 KiB) TX bytes:254731 (248.7 KiB) Interrupt:5 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) root@exta:~#
Para comprobar los servicios que ofrece una máquina:
root@exta:~# netstat --listen --inet Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 *:ssh *:* LISTEN root@exta:~#
Para ver las conexiones TCP establecidas:
root@exta:~# netstat --tcp Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 exta.example.net:ssh base.example.net:52856 ESTABLISHED root@exta:~#
O la configuración de encaminamiento:
root@exta:~# netstat -rn Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 10.5.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 10.5.0.0 10.5.0.254 255.255.0.0 UG 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0 0.0.0.0 10.5.0.1 0.0.0.0 UG 0 0 0 eth0 root@exta:~#
Acciones a realizar:
- Entrar en dmza como "root" usando la terminal.
- Averiguar los servicios ofrecidos.
- Comprobar que su IP es 10.5.1.10.
- Comprobar que la pasarela por defecto es "fw" (IP 10.5.1.254).
- Conectarse desde base a dmza usando SSH.
- Listar las conexiones TCP establecidas.
- Identificar la conexión SSH.
Ejercicio: Realizar barridos de puertos
Una de las ventajas de utilizar un entorno privado como NETinVM es poder probar técnicas y programas que no sería seguro, ni ético, ni legal, probar en Internet. Un ejemplo es la posibilidad de explorar las posibilidades de una herramienta de reconocimiento de redes como nmap.
Acciones a realizar:
- Ejecutar la orden "nmap www.example.net" desde exta.
- Comprobar que:
- nmap detecta correctamente que los únicos puertos no filtrados son el 80 (HTTP) y el 443 (HTTPS).
- nmap detecta correctamente que el puerto 80 está abierto y el 443 cerrado.
- Ejecutar la orden "nmap www.example.net" desde base.
- Comprobar que:
- nmap finaliza mucho más rápidamente. ¿Por qué?
- nmap detecta correctamente que los únicos puertos abiertos son el 22 (SSH) y el 80 (HTTP)
- Justificar por qué los resultados de las dos ejecuciones son diferentes.
Francisco Javier Cervigon Ruckauer
No hay comentarios:
Publicar un comentario