Restricciones de IP/Nombres de dominio
Restricciones de IP/Nombres de dominio
Una vez visto cómo restringir las clases de aplicaciones que IIS puede ejecutar (mediante las gestión de extensiones) y las clases de ficheros que IIS puede servir (mediante la gestión de tipos MIME), vamos a ver ahora cómo restringir las máquinas cliente que pueden acceder a los contenidos. Una forma de hacerlo es prohibir o conceder el acceso a los contenidos del servidor a determinadas IP o nombres de dominio. IIS incluye la posibilidad de hacer una gestión avanzada de IPs o nombres de dominio para poder especificar de forma precisa a quién concedemos el acceso al servidor y a quién no. Esto tiene especial aplicación en entornos donde existan redes locales con un conjunto de máquinas restringido y conocido, de manera que se pueda crear un esquema de acceso detallado a cada servidor para cada máquina cliente según pertenezca a una o a otra red. Otra posibilidad, aunque puede llegar a ser mucho más compleja, es la de prohibir rangos de IP o dominios que se sepan conflictivos, impidiendo que fuentes conocidas de ataques puedan llegar a los contenidos del servidor.
NOTA: No sería raro que una empresa dividida en secciones o departamentos tenga un esquema instalado de restricciones de IP para bloquear el acceso de los empleados del departamento D2 a los servidores web de las máquinas de un departamento D1. Si además cada departamento tiene su propia subred, entonces el bloqueo podrá implementarse mejor.
Lo primero que IIS mira cuando recibe una petición es si la IP o el nombre de la máquina cliente tienen el acceso denegado por el mecanismo que estamos describiendo. Si lo tiene, lo impide y finaliza el procesamiento de petición. Si no lo tiene, entonces se procede a ejecutar un esquema de control de accesos en varios niveles, que aparecerá especificado al final de la sección de IIS.
Es importante recordar que por defecto las restricciones de IP están deshabilitadas. Por tanto, a todas las máquinas se les permite enviar peticiones al servidor, aunque luego puedan ser rechazadas por otros mecanismos. Un administrador puede limitar una única IP o bien un rango de las mismas, formando una lista de restricciones. En cualquier caso, se recomienda encarecidamente limitar el número de entradas en la lista de IPs restringidas, principalmente porque cada petición se debe comprobar analizando esta lista y, si ésta es muy grande, causará una pérdida de rendimiento significativa.
Por razones de rendimiento, tampoco se recomienda restringir nombres de dominio (o no abusar de esta forma de restringirlos). Si lo hacemos, cada IP deberá resolverse entonces para obtener su FQDN (Full Qualified Domain Name), y esta operación tiene un coste elevado que puede perjudicar bastante el rendimiento de las peticiones que se hagan a IIS . Estas restricciones de IP se pueden aplicar a nivel de web, directorio virtual, carpeta o fichero individual. En caso de conflicto entre restricciones a varios niveles, se aplican siempre las más restrictivas.
Por lo dicho anteriormente, la mejor política de restricción de IPs es por tanto la que mantiene la lista en un mínimo de entradas: Si por ejemplo una web sólo quisiésemos hacerla accesible para unos pocos clientes, debemos crear, si es posible, una sola entrada para intentar denegar el acceso al resto de clientes en lugar de conceder acceso uno por uno a todos los permitidos (lo que requeriría varias entradas).
Por último, debemos orientar el uso de la política de restricción de IPs como un complemento a otros mecanismos de seguridad. Esta política puede y debe trabajar en colaboración con otras herramientas de bloqueo (firewalls, ACLs de routers, filtrado TCP/IP,…) para una mejor protección de acceso al servidor. Una combinación de restricciones de acceso por varios medios (incluso permitiendo la existencia de cierta redundancia en las restricciones) siempre será más robusta que basar las restricciones en la configuración de un único elemento. Si tenemos varios puntos de control de seguridad, tendrán que “caer” todos y cada uno de ellos para hacer nuestro sistema completamente vulnerable, lo que siempre es más difícil.
Una vez visto esto, se puede ilustrar este concepto en la siguiente actividad práctica. Los siguientes enlaces muestran como hacer estas operaciones en IIS 7: