Administración y Gestión de Redes Práctica 10: Control de acceso a los servicios II:… Práctica 10: Control de acceso a los servicios II: Iptables. Para configurar el cortafuegos de Linux nos basta con editar el fichero /etc/sysconfig/iptables, que es el que contiene la configuración inicial que lee el servicio de iptables al arrancar. Además, definiremos previamente la “red privada” como la formada por los ordenadores lab114pc01,informat.uv.es y lab114pc02.informat.uv.es de IPs 147.156.80.114 y 147.156.80.131 respectivamente. Las líneas que cumplen cada una de las condiciones establecidas en el diseño son las siguientes: Líneas que indican la tabla sobre la que actúan las reglas así como la política por defecto, que es denegación por defecto, y los valores iniciales de sus contadores: *filter :INPUT DROP [0:0] :FORWARD DROP [0:0] :OUTPUT DROP [0:0] Líneas que permiten todo el tráfico del interfaz de loopback (lo): -A INPUT -i lo -j ACCEPT -A OUTPUT -o lo -j ACCEPT Líneas que aceptan todo el tráfico de protocolo de transporte ICMP: -A INPUT -p icmp -j ACCEPT -A OUTPUT -p icmp -j ACCEPT Líneas que aceptan la petición de consultas a los DNS y la recepción de las respuestas: -A INPUT -p udp --sport 53 --dport 1024: -j ACCEPT -A OUTPUT -p udp --sport 1024: --dport 53 -j ACCEPT Líneas que deniegan el resto de tráfico UDP: -A INPUT -p udp -j REJECT -A OUTPUT -p udp -j REJECT Líneas que habilitan la conexión a un servidor de HTTP: -A INPUT -p tcp --sport 80 --dport 1024: ! --syn -j ACCEPT -A OUTPUT -p tcp --dport 80 --sport 1024: -j ACCEPT Líneas que permiten el acceso a la conexión de control de un servidor de FTP: -A INPUT -p tcp --sport 21 --dport 1024: ! --syn -j ACCEPT -A OUTPUT -p tcp --dport 21 --sport 1024: -j ACCEPT Doble Titulación Informática + Telemática 1 Administración y Gestión de Redes Práctica 10: Control de acceso a los servicios II:… Líneas que permiten el acceso de datos de un servidor de FTP en modo activo del servidor: -A INPUT -p tcp -m state --sport 20 --dport 1024: --state ESTABLISHED,RELATED -j ACCEPT -A OUTPUT -p tcp --dport 20 --sport 1024: -j ACCEPT Líneas que permiten el acceso de datos de un servidor de FTP en modo pasivo del servidor: -A INPUT -p tcp --sport 1024: --dport 1024: ! --syn -j ACCEPT -A OUTPUT -p tcp -m state --sport 1024: --dport 1024: --state ESTABLISHED,RELATED -j ACCEPT Para definir ahora el “grupo privado” de ordenadores tenemos dos opciones, duplicar las reglas para cada uno de los ordenadores del grupo privado, en este caso dos ordenadores, o bien, definir nuevas cadenas que nos permitan definir los ordenadores del “grupo privado”. Este segundo caso es más sencillo y permite introducir la definición de cadenas, por tanto es el que usaremos en la resolución de esta práctica1. Definimos las cadenas que definen los ordenadores que forman nuestra “red privada”: -N -A -A -A -N -A -A -A ENTRADA ENTRADA -s 147.156.80.114 -j ACCEPT ENTRADA -s 147.156.80.131 -j ACCEPT ENTRADA -j REJECT SALIDA SALIDA -d 147.156.80.114 -j ACCEPT SALIDA -d 147.156.80.131-j ACCEPT SALIDA -j REJECT Definimos ahora las líneas que permiten la conexión a nuestro servidor de telnet de nuestro “grupo privado”2: -A INPUT -p tcp -m time --dport 23 --sport 1024: --syn --timestart 08:00 --timestop 20:00 -j ENTRADA -A INPUT -p tcp --dport 23 --sport 1024: ! --syn -j ENTRADA -A OUTPUT -p tcp --sport 23 --dport 1024: -j SALIDA Líneas que habilitan el acceso a nuestro servidor de SSH pero solo una conexión por minuto. -N -A -A -A -A FILTRO_T FILTRO_T FILTRO_T INPUT -p INPUT -p -m recent --update --seconds 60 --hitcount 1 -j DROP -m recent --set -j ACCEPT tcp --dport 22 --sport 1024: --syn -j FILTRO_T tcp --dport 22 --sport 1024: -j ACCEPT 1 En este caso puede parecer sencillo duplicar las reglas al ser solo dos ordenadores, pero si la red privada estuviera formada por un gran número de ordenadores sería mucho más costoso. 2 Obsérvese que las reglas no aceptan o rechazan el paquete, sino que lo remiten a su análisis por las cadenas que hemos definido, las cuales son la encargadas de aceptarlo o rechazarlo. Doble Titulación Informática + Telemática 2 Administración y Gestión de Redes Práctica 10: Control de acceso a los servicios II:… -A OUTPUT -p tcp --sport 22 --dport 1024: -j ACCEPT Denegamos cualquier otro servicio de protocolo de transporte TCP: -A INPUT -p tcp -j REJECT -A OUTPUT -p tcp -j REJECT Terminamos la definición de las reglas mediante la orden COMMIT: COMMIT Ejecutando ahora el comando service iptables restart, o start si no se encuentran activadas previamente. Doble Titulación Informática + Telemática 3