L04 - solución M PDF

Title L04 - solución M
Course Aviónica
Institution Universitat Politècnica de Catalunya
Pages 6
File Size 185 KB
File Type PDF
Total Downloads 27
Total Views 127

Summary

Solución practica 4...


Description

NAT Instalación de los escenarios de la práctica Descargad los ficheros en el directorio por defecto (Descargas): ●

L04-E01.tar.gz

Abrid un terminal e instalar los escenarios: cd Descargas install-scenario L04-E01.tar.gz

Escenario 1 - Configuración de NATs Cambiad al directorio del primer escenario y arrancarlo: cd /home/avionica/labs/L04/E01 launch-scenario La siguiente figura os muestra el escenario de la práctica al arrancarlo:

El router R01 tienen sus configuradas las IPs de las interfaces eth0 y eth1 con quagga y R02 la IP de la interfaz eth0. Las IPs de la interfaz eth2 de R01 y eth1 de R02 se configura automáticamente mediante lxc-net. Sin entrar en detalles, lxcbr0 es un bridge con un servicio de red llamado lxc-net que proporciona una red con DHCP y NAT, lo que permite a los contenedores que tienen una interfaz conectada a él, conectarse a Internet. Ambos

routers tienen una ruta por defecto con gateway 172.16.0.1 que es, precisamente, el que les hará de NAT para conectarse a Internet. De cara a la práctica, asumimos que tanto R01 como R02 están conectados directamente a Internet y que la IP que tienen configurada en eth2 y eth1, respectivamente, es una dirección IP pública. Observad también que en este escenario hay dos redes privadas y que ambas están usando el prefijo 192.168.1.0/24. La dirección IP que tiene H02 en su interfaz eth0 se configura dinámicamente con DHCP. Sin embargo, la dirección IP de H01 en su interfaz eth0 se configura estáticamente con DHCP, es decir, se le ha reservado una IP fija y siempre se le dará la misma.

Configuración de direcciones IP fijas en DHCP Observad el fichero de configuración DHCP de R01: lxc-attach -n R01 -- more /etc/dhcp/dhcpd.conf default-lease-time 300; max-lease-time 600; subnet 192.168.1.0 netmask 255.255.255.128 { range 192.168.1.20 192.168.1.126; option routers 192.168.1.1; host H01 { hardware ethernet 00:16:3e:c2:f4:a8; fixed-address 192.168.1.10; } } subnet 192.168.1.128 netmask 255.255.255.128 { range 192.168.1.130 192.168.1.254; option routers 192.168.1.129; } Fijaos en la parte resaltada en negrita. En esa sección se configura que para el dispositivo con dirección MAC 00:16:3e:c2:f4:a8 (comprobad que está es la dirección MAC de la interfaz eth0 de H01) se le asigne la dirección IP fija 192.168.1.10. Ejercicio 1. Editar el fichero de configuración del servidor DHCP de R02 para que asigne a la interfaz eth0 de H03 la dirección IP 192.168.1.10 y a la interfaz eth0 de H04 la IP 192.168.1.11. NOTA: Recordad que después de editar el fichero tenéis que reiniciar el servidor DHCP y forzar en H03 y H04 la petición DHCP.

default-lease-time 300; max-lease-time 600; subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.20 192.168.1.254; option routers 192.168.1.1; host H03 { hardware ethernet 00:16:3e:12:9b:d2; fixed-address 192.168.1.10; } host H04 { hardware ethernet 00:16:3e:72:e3:c2; fixed-address 192.168.1.11; } } Para reinciar el servidor DHCP: lxc-attach -n R02 -- systemctl restart isc-dhcp-server Para forzar que los hosts pidan una IP vía DHCP lxc-attach -n H03 -- netplan apply lxc-attach -n H04 -- netplan apply

Conectividad con internet en las redes privadas (SNAT) Google tiene un servidor DNS público en la IP 8.8.8.8. Vamos a utilizar esta IP como destino de un ping para comprobar la conectividad a Internet. Abrid dos instancias de Wireshark, la primera capturando en H01-eth0 y la segunda en R01-eth2 (la interfaz que tiene conectada R01 a Internet1). Ejercicio 2. Desde R01 haced un ping con un único ICMP Request a la dirección IP 8.8.8.8. ¿Por qué funciona? Haced lo mismo desde H01, ¿por qué no funciona? Desde R01 funciona porque está conectado a Internet y su ip es “pública” Desde H01 no funciona porque el paquete sale por la interfaz eth2 de R01 sin que se le cambie la IP privada y, por lo tanto, alguien lo fulmina en el camino.

Vamos a configurar R01 para que haga de NAT para las IPs del rango 192.168.1.0/25. En un terminal acoplado a R01 introducid la siguiente instrucción:

1

Recordad que estamos asumiendo que los routers R01 y R02 están directamente conectados a Internet.

iptables -t nat -A POSTROUTING -o eth2 -s 192.168.1.0/25 -d 0.0.0.0/0 -j MASQUERADE Con esta instrucción estamos configurando que añada una regla en la cadena POSTROUTING de la tabla nat del router R01 (iptables -t nat -A POSTROUTING). De tal modo que, si un paquete va a salir por la interfaz eth2 (-o eth2), la dirección IP origen del paquete está en el prefijo 192.168.1.0/25 (-s 192.168.1.0/25) y la dirección IP destino es cualquiera (-d 0.0.0.0/0), sustituya la IP origen del paquete por la que tiene configurada en la interfaz de salida (-j MASQUERADE). Comprobad que ahora funciona el ping desde H01 a 8.8.8.8. Para comprobar las reglas que tenemos introducidas en la tabla nat se utiliza la instrucción: iptables -t nat -L -v -n --line-numbers Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes) num pkts bytes target prot opt in out source 1

0

0 MASQUERADE

all

--

*

eth2

destination

192.168.1.0/25

0.0.0.0/0

En la salida anterior se ha resaltado en negrita la primera columna que corresponde al número de secuencia de la regla. A veces querremos cambiar una regla en un determinado número de secuencia y por eso es importante saber qué número tiene una regla. Ejercicio 2. Desde H02 haced un ping con un único ICMP Request a la dirección IP 8.8.8.8. ¿Por qué no funciona? No funciona porque los paquetes con IP origen igual a la que tiene configurada H02 en eth0 no están contenidos en el prefijo 192.168.1.0/25, ergo no hacen match con la regla y no se les aplica el MASQUERADE.

Para hacer que H02 también pueda salir al exterior, vamos a cambiar la regla que tenemos, con el siguiente comando iptables: iptables -t nat -R POSTROUTING 1 -o eth2 -s 192.168.1.0/24 -d 0.0.0.0/0 -j MASQUERADE Con este comando lo que hacemos es reemplazar (-R) la regla número 1 con el match que sigue a continuación, en el que cambiamos la restricción de la dirección origen a cualquiera de la red interna (-s 192.168.1.0/24). Comprobad que ahora sí funciona. OK!

Exposición de servicios al exterior (DNAT) Primeramente vamos a acoplarnos a H01, H03 y H04 y editar un script mgen de nombre rx: 0.0 LISTEN UDP 5000 Una vez editado, ejecutamos mgen con este script como entrada y estos hosts quedarán escuchando en el puerto 5000: mgen input rx Nos acoplamos a H02 y editamos un script mgen de nombre trx-H01: 0.0 ON 1 UDP DST 192.168.1.10/5000 PERIODIC [1.0 1024] 5 OFF 1 Ejecutad en H02 mgen con este script como entrada y comprobad que funciona: mgen input trx-H01 Si queremos que H02 pueda enviar tráfico a H03, necesitaremos exponer el servicio de H03 al exterior, es decir, que desde fuera de su red privada se puedan enviar paquetes a la IP pública de su router (R02), puerto 5000 y que éste se los reenvíe con la dirección destino cambiada a la que él tiene configurada. Acoplaros al router R02 e introducid la siguiente regla iptables: iptables -t nat -A PRERROUTING -d 172.16.0.12 -p udp --dport 5000 -j DNAT --to-destination 192.168.1.10 Con esta regla estamos añadiendo a la cadena PREROUTING de la tabla nat (iptables -t nat -A PRERROUTING) una regla cuyo match es que si se recibe un paquete UDP (-p udp) con dirección IP destino la IP pública del router (-d 172.16.0.12), con puerto destino 5000 (--dport 5000), se traduzca la dirección destino a 192.168.1.10. Tal y como está esta regla, el NAT no altera el puerto destino del paquete entrante. Como valor del parámetro --to-destination se puede incluir también un puerto y cambiaría el valor del puerto destino: --to-destination IP:PUERTO. En H02, editad el script mgen de nombre trx-H03: 0.0 ON 1 UDP DST 172.16.0.12/5000 PERIODIC [1.0 1024] 5 OFF 1 Abrid dos instancias de wireshark, una capturando en R02-eth0 y otra en R02-eth1 y ejecutad el script de entrada de mgen trx-H02 en H02. En las capturas podéis comprobar

como se cambia la IP destino del paquete y también podéis comprobar que en H03 se recibe el tráfico que envía H02. Ejercicio 3. ¿Qué problema(s) hay para exponer tanto el servicio de H03 como el de H04 al exterior? Solucionadlo. No podemos exponer el servicio de H04 que está corriendo en el puerto 5000 porque ya está ocupado ese puerto con la traducción DNAT a H03. Tenemos que crear una nueva regla que traduzca tanto IP destino como el puerto destino: iptables -t nat -A PREROUTING -d 172.16.0.12 -p udp --dport 5050 -j DNAT --to-destination 192.168.1.11:5000...


Similar Free PDFs