EJERCICIOS DE REDES

Anuncio
EJERCICIOS DE REDES
1.
Configurar por completo la red mostrada en el siguiente diagrama:
NOTA: no tenemos la posibilidad de
configurar el router con ip 192.168.1.1
(manejado por otro administrador), de
ahí que hemos introducido un router
que gestionará toda nuestra red
(192.168.1.10).
Aspectos a tener en cuenta a la hora de realizar el diseño:
 Las redes 172.16.0.0/16 y 172.17.0.0/16 no deben estar comunicadas, a excepción de los
equipos U4 y U7 que deben estarlo para poder establecer una VPN entre ellos (no son
accesibles a través de internet, por eso se tendrá que añadir una ruta estática a mayores).
 En U2 y U5 hay firewalls que impiden el acceso del exterior, pero permiten que los PCs de
la red interna puedan acceder a internet a través de los puertos destinados a servicios
web, dns y ftp.
 Mediante el acceso desde la red 192.168.1.0 al router U1 se deben servir los servicios FTP,
Web y Servidor multimedia al exterior (NAT). El resto de servicios serán servidos por el PC
situado en la zona desmilitarizada (U8).
SOLUCIONES
U1
Fichero de configuración:
#!/bin/bash
#Permitir reenvío de paquetes IP
echo 1 > /proc/sys/net/ipv4/ip_forward
#Establecer direcciones ip de las interfaces
ip addr add 192.168.1.10/24 dev eth0
ip addr add 192.168.0.1/24 label eth0:0 dev eth0
#Activar la interfaz
ip link set eth0 up
#Definir rutas para este router
ip route add default via 192.168.1.1
#Iniciar el firewall (iptables - netfilter)
/etc/init.d/firewall start
#Nota: se debe crear un enlace simbólico (ln -s) en /etc/init.d/firewall que apunte al fichero
./iptables_001
Fichero iptables
#!/bin/bash
IPTABLES="/sbin/iptables"
MODPROBE="/sbin/modprobe"
RMMOD="/sbin/rmmod"
case $1 in
start)
#Políticas por defecto: aceptar todos los paquetes
$IPTABLES -t filter -P INPUT ACCEPT
$IPTABLES -t filter -P OUTPUT ACCEPT
$IPTABLES -t filter -P FORWARD ACCEPT
#redirigimos al servidor en la zona DMZ todas las peticiones de la red externa
$IPTABLES -t nat -A PREROUTING -s 192.168.1.0 -j DNAT --to 192.168.0.2
#redirigimos a los respectivos servidores las peticiones externas
#servidor web
$IPTABLES -t nat -A PREROUTING -s 192.168.1.0/24 -p tcp --dport 80 -j DNAT --to
192.168.0.10:80
$IPTABLES -t nat -A PREROUTING -s 192.168.1.0/24 -p tcp --dport 443 -j DNAT --to
192.168.0.10:80
#servidor multimedia
$IPTABLES -t nat -A PREROUTING -s 192.168.1.0/24 -p tcp --dport 14220 -j DNAT --to
192.168.0.10:14220
#servidor ftp
$IPTABLES -t nat -A PREROUTING -s 192.168.1.0/24 -p tcp --dport 21 -j DNAT --to
192.168.0.20:21
#ip masking: dar internet a toda la red interna
$IPTABLES -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE
#módulos para trabajar con FTP (connection tracking y nat)
$MODPROBE nf_conntrack_ftp
$MODPROBE nf_nat_ftp
;;
stop)
#Política no restrictiva al detener el servicio
$IPTABLES -t filter -P INPUT ACCEPT
$IPTABLES -t filter -P OUTPUT ACCEPT
$IPTABLES -t filter -P FORWARD ACCEPT
#Eliminar las reglas definidas
$IPTABLES -t filter -F INPUT
$IPTABLES -t filter -F OUTPUT
$IPTABLES -t filter -F FORWARD
$IPTABLES -t nat -F PREROUTING
$IPTABLES -t nat -F POSTROUTING
#Desactivar los módulos para trabajar con FTP
$RMMOD nf_nat_ftp
$RMMOD nf_conntrack_ftp
;;
restart)
$0 stop
$0 start
;;
esac
U2
Fichero de configuración
#!/bin/bash
echo 1 > /proc/sys/net/ipv4/ip_forward
ip addr add 192.168.0.10/24 dev eth0
ip addr add 172.16.0.1/16 label eth0:0 dev eth0
ip link set eth0 up
ip route add default via 192.168.0.1
/etc/init.d/firewall restart
Fichero de iptables
#!/bin/bash
IPTABLES="/sbin/iptables"
MODPROBE="/sbin/modprobe"
RMMOD="/sbin/rmmod"
case $1 in
start)
#Políticas por defecto: ignorar todos los paquetes
$IPTABLES -t filter -P INPUT DROP
$IPTABLES -t filter -P OUTPUT DROP
$IPTABLES -t filter -P FORWARD ACCEPT
#Aceptar peticiones icmp
$IPTABLES -t filter -A INPUT -p icmp -j ACCEPT
$IPTABLES -t filter -A OUTPUT -p icmp -j ACCEPT
#Aceptar peticiones DNS (necesario para resolución de nombres)
$IPTABLES -t filter -A OUTPUT -p tcp --dport 53 -j ACCEPT
$IPTABLES -t filter -A OUTPUT -p udp --dport 53 -j ACCEPT
#Aceptar peticiones de páginas web en el exterior
$IPTABLES -t filter -A OUTPUT -p tcp --dport 80 -j ACCEPT
$IPTABLES -t filter -A OUTPUT -p tcp --dport 443 -j ACCEPT
#Aceptar peticiones FTP salientes
$IPTABLES -t filter -A OUTPUT -p tcp --dport 21 -j ACCEPT
#Servicios de la red
#Aceptar conexiones por SSH de la red 192.168.0.0/24
$IPTABLES -t filter -A INPUT -s 192.168.0.0/24 -p tcp --dport 22 -j ACCEPT
#aceptar los paquetes relacionados con la web y el servidor multimedia
$IPTABLES -t filter -A INPUT -p tcp --dport 80 -j ACCEPT
$IPTABLES -t filter -A INPUT -s 172.16.0.0/16 -p tcp --dport 14220 -j ACCEPT
#Redirigimos a los respectivos servidores
$IPTABLES -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to 172.16.0.2:80
$IPTABLES -t nat -A PREROUTING -p tcp --dport 14220 -j DNAT --to 172.16.0.3:14220
#ip masking
$IPTABLES -t nat -A POSTROUTING -s 172.16.0.0/16 -j MASQUERADE
#Connection tracking, necesario para dar y recibir respuestas
$IPTABLES -t filter -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPTABLES -t filter -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
$MODPROBE nf_conntrack_ftp
$MODPROBE nf_nat_ftp
;;
stop)
#Política no restrictiva al detener el servicio
$IPTABLES -t filter -P INPUT ACCEPT
$IPTABLES -t filter -P OUTPUT ACCEPT
$IPTABLES -t filter -P FORWARD ACCEPT
#Eliminar las reglas definidas
$IPTABLES -t filter -F INPUT
$IPTABLES -t filter -F OUTPUT
$IPTABLES -t filter -F FORWARD
$IPTABLES -t nat -F PREROUTING
$IPTABLES -t nat -F POSTROUTING
$RMMOD nf_nat_ftp
$RMMOD nf_conntrack_ftp
;;
restart)
$0 stop
$0 start
;;
esac
U3
Fichero de configuración
#!/bin/bash
ip addr add 172.16.0.2/16 dev eth0
ip link set eth0 up
ip route add default via 172.16.0.1
U4
Fichero de configuración
#!/bin/bash
ip addr add 172.16.0.3/16 dev eth0
ip link set eth0 up
ip route add default via 172.16.0.1
#Iniciar el servidor multimedia en segundo plano
/home/bruno/multimedia_server.sh &
Fichero multimedia_server.sh
#!/bin/bash
while [ 0 = 0 ]
do
#Escuchar en el puerto 14220, a la espera de la entrega de ficheros multimedia a partir de una tubería
de datos con socat (se guarda un log en el directorio home del usuario)
socat tcp4-listen:14220 stdio | madplay - >> $HOME/multimedia.log
done
U5
Fichero de configuración
#!/bin/bash
echo 1 > /proc/sys/net/ipv4/ip_forward
ip addr add 192.168.0.20/24 dev eth0
ip addr add 172.17.0.1/16 label eth0:0 dev eth0
ip link set eth0 up
ip route add default via 192.168.0.1
#ruta necesaria para la creación de túneles con 172.16.0.3
ip route add 172.16.0.3 via 192.168.0.10
/etc/init.d/firewall restart
Fichero de iptables
#!/bin/bash
IPTABLES="/sbin/iptables"
MODPROBE="/sbin/modprobe"
RMMOD="/sbin/rmmod"
case $1 in
start)
#Denegar todos los paquetes de entrada o salida
$IPTABLES -t filter -P INPUT DROP
$IPTABLES -t filter -P OUTPUT DROP
$IPTABLES -t filter -P FORWARD ACCEPT
#Aceptar peticiones icmp
$IPTABLES -t filter -A INPUT -p icmp -j ACCEPT
$IPTABLES -t filter -A OUTPUT -p icmp -j ACCEPT
#Permitir acceder a sitios web (puerto 80 y 443)
$IPTABLES -t filter -A OUTPUT -p tcp --dport 80 -j ACCEPT
$IPTABLES -t filter -A OUTPUT -p tcp --dport 443 -j ACCEPT
#Y a peticiones dns
$IPTABLES -t filter -A OUTPUT -p tcp --dport 53 -j ACCEPT
$IPTABLES -t filter -A OUTPUT -p udp --dport 53 -j ACCEPT
#Y peticiones FTP
$IPTABLES -t filter -A OUTPUT -p tcp --dport 21 -j ACCEPT
#Y peticiones del servidor multimedia
$IPTABLES -t filter -A OUTPUT -p tcp --dport 14220 -j ACCEPT
#Y conexiones por SSH provenientes de la red 192.168.0.0/24
$IPTABLES -t filter -A INPUT -p tcp -s 192.168.0.0/24 --dport 22 -j ACCEPT
#Aceptar puerto FTP
$IPTABLES -t filter -A INPUT -p tcp --dport 21 -j ACCEPT
#Redirigilo a la máquina que lo gestiona
$IPTABLES -t nat -A PREROUTING -p tcp --dport 21 -j DNAT --to 172.17.0.2:21
#ip masking -> dar internet a toda la red
$IPTABLES -t nat -A POSTROUTING -s 172.17.0.0/16 -j MASQUERADE
#Respuesta para conexiones necesarias para comunicaciones o ya establecidas
$IPTABLES -t filter -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPTABLES -t filter -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
#FTP Connection tracking necesita el módulo correspondiente
$MODPROBE nf_conntrack_ftp
$MODPROBE nf_nat_ftp
;;
stop)
#Política no restrictiva al detener el servicio
$IPTABLES -t filter -P INPUT ACCEPT
$IPTABLES -t filter -P OUTPUT ACCEPT
$IPTABLES -t filter -P FORWARD ACCEPT
#Eliminar las reglas definidas
$IPTABLES -t filter -F INPUT
$IPTABLES -t filter -F OUTPUT
$IPTABLES -t filter -F FORWARD
$IPTABLES -t nat -F PREROUTING
$IPTABLES -t nat -F POSTROUTING
#Desactivar el módulo connection tracking de ftp
$RMMOD nf_nat_ftp
$RMMOD nf_conntrack_ftp
;;
restart)
$0 stop
$0 start
;;
esac
U6
Fichero de configuración
#!/bin/bash
ip addr add 172.17.0.2/16 dev eth0
ip link set eth0 up
ip route add default via 172.17.0.1
U7
Fichero de configuración
#!/bin/bash
ip addr add 172.17.0.3/16 dev eth0
ip link set eth0 up
ip route add default via 172.17.0.1
#Crear el túnel con 172.16.0.3 (ssh y socat)
#NOTA: necesita configuración previa con ssh-keygen (creación de claves asimétricas para
autenticación)
socat tun:10.0.0.1/8 exec:"ssh -i /root/.ssh/id_rsa [email protected] 'socat tun:10.0.0.2/8 stdio'" &
ip link set tun0 up
ssh -i /root/.ssh/id_rsa [email protected] "ip link set tun0 up"
U8
Fichero de configuración
#!/bin/bash
ip addr add 192.168.0.2/24 dev eth0
ip link set eth0 up
ip route add default via 192.168.0.1
Descargar