domingo, abril 13, 2008

El firewall de Windows XP: Un pequeño tutorial

Windows, desde su versión XP siempre ha incluido un firewall que permitía controlar el tráfico que llegaba a las interfaces de red (aunque antes lo denominaban Internet Connection Firewall). Tras el desastre que ocasionaron varios virus, Microsoft decidió que el SP2 de Windows XP publicado en el 2004 que activaría por defecto el firewall en todas las interfaces, para evitar episiodios como el del Blaster o Sasser.

Para conectar el firewall en esas versiones de Windows anteriores al SP2 había que configurarlo a través de las propiedades avanzadas de la conexión de red, y como suele ser normal, no solían activarlo. Con el SP2 se presentó un nuevo componente del panel de control firewall.cpl a través del cual podemos acceder a configurar el firewall:

Configuración del Firewall de Windows XP

Desde la pestaña General, activamos o desactivamos el firewall de una manera sencilla. Por otro lado, se puede permitir las excepciones. Si se marca esta casilla, el firewall no permitirá las excepciones que se definan en la pestaña Excepciones, pero tampoco se permitirán las configuraciones establecidas en la pestaña Opciones avanzadas. Esto, que no aparece documentado por ninguna parte, me ha dado bastante dolores de cabezas al intentar activar el firewall sólo en determinadas interfaces sin excepciones.

Las excepciones del firewall de Windows

Se controlan a través de la pestaña Excepciones:

Configuración de Excepciones

Se pueden añadir dos tipos de excepciones: las de programa o las excepciones de puerto. En las primeras se añaden la ruta completa a un programa al cual se la autoriza a abrir puertos. El firewall deja pasar conexiones entrantes en función del ámbito que se le autorice la conexión. En el segundo tipo de excepciones se abre un puerto determinado, ya sea TCP o UDP y cualquier programa puede escuchar en esos puertos.

Con la primera opción es sencillo que cualquier programa abra un puerto de escucha según se desee. Esto puede ser útil en el caso de programas que usen puertos dinámicos. Un caso sencillo es un servidor ftp que utilice el modo pasivo para las conexiones. En el caso, con introducir la ruta al servidor de ftp, hará que el programa si abre un puerto, pueda recibir las conexiones. Agregar programa excepción

Si lo que se quiere abrir es un puerto de manera permanente, con independencia del programa que pueda escuchar en él, lo que se utilizamos es la opción de añadir un puerto:

Agregar excepción de puerto

En ambos tipo de excepciones se puede controlar el ámbito del cual se permitirán las excepciones:

Ámbitos del firewall

Cada uno de los ámbitos son los siguientes:

  • Cualquier equipo. En este ámbito permite la conexión desde cualquier equipo a nuestro ordenador.
  • Sólo mi red. Permite la conexión sólo desde aquellas direcciones IP que pertenezcan a la subred en la cual el ordenador tiene conectado interfaces.
  • Lista Personalizadas. Nos permite introducir la lista de direcciones IP que deseemos autorizar para conectad.
Por último recordar que si marca la casilla en la pestaña general de no permitir excepciones, se ignorará las configuraciones introducidas en esta pestaña.

Opciones avanzadas

Desde esta pantalla se permite configurar varias opciones:

Opciones avanzadas

  • De esta pestaña quizás lo más importante es la posibilidad de activar la conexión por interfaz (por ejemplo puede desearse que todas las conexiones PPP o VPN estén protegidas por el firewall por defecto, mientras que la conexión de LAN que sólo utilizamos en la oficina no).
  • El registro de seguridad nos permite especificar un archivo donde se registrarán los eventos que produzca el firewall (paquetes descartados, conexiones recibidas, etc) y limitar el tamaño del mismos.
  • Bajo la opción ICMP permite permitir la entrada de ciertos paquetes ICMP. Convendría dejar pasar aquellos que permiten el cálculo de MTU, concretamente el que se envía cuando un router no puede fragmentar los paquetes, porque en caso contrario pueden presentarse problemas de conectividad
  • La opción Configuración predeterminada permite restaurar los valores por defecto.

El firewall en un dominio de directorio activo

El firewall se puede configurar a través de una GPO o bien a través de las políticas locales. Existen dos perfiles cuando se configura de esta manera:
  • Perfil estándar: Este el perfil que aplica el sistema cuando no puede determinar que está en una red administrada a través de diretorio activo (dominio)
  • Perfil de dominio: Este perfil se activa cuando el sistema detecta que está conectado a una red de de directorio activo.
El sistema determina si está en una red de dominio o no a través de un algoritmo descrito en How Windows Firewall Works: se compara el sufijo DNS que tiene asignado todas las conexiones de red que no sean PPP o SLIP con el sufijo DNS que se ha almacenado en la clave de registro HKEY_Local_Machine\Software\Microsoft\Windows\CurrentVersion\Group Policy\History\NetworkName tras la última actualización de las políticas de dominio. Con esta información:
  • Si el sistema no está conectado a una red de dominio, de existir un perfil, usaría el estándar - se puede aplicar un perfil estándar a través del de las políticas locales gpedit.msc.
  • Si coincide la información de DNS de la conexión de red (que no sea una conexión PPP o SLIP) con la que está almacenada en el registro tras la última actualización de políticas, el sistema considera que está conectado a una red manejada a través de directorio activo, y si está definido, empleará el perfil de dominio. En caso de que no coincididan, el sistema considerará que está conectado a una red no manejada, y por tanto, de estar definido, usaría el perfil estándar.
Una vez que el sistema ha determinado qué perfil va a usar, si existe alguna política de configuración definida para dicho perfil. Es importante señalar que las configuraciones distribuidas a través de perfiles tienen prioridad sobre todo lo demás, ya sea el GUI de control de la interfaz (firewall.cpl), el comando netsh, usando el contexto firewall o el API de Windows ya sea a través de lo implementado en los objetos implementados en la librería hnetcfg.dll. Una vez establecidas, no se pueden alterar ni a través del GUI ni a través del API.

Pueden controlarse varios parámetros a través de la política de dominio. Para acceder a las mismas hay que ir a Plantillas Administrativas, Red, Conexiones de Red, Firewall de Windows.

¿Qué falta en el post?

Hay varios puntos que me faltan por tratar en el post, y que espero ir poco a poco actualizando:
  • Como manejar el firewall a través del API que ofrece Windows.
  • Como manejar el firewall a través del comando netsh.
  • Una explicación más técnica de donde está el firewall,de que servicios depende y cómo se implementan las políticas.
  • Las políticas que se pueden configurar a través de una GPO.
  • La relación del firewall de Windows con los diferentes sistemas.
Iré actualizando el post o bien algunos nuevos conforme vaya tratando alguno de los puntos anteriores.

Referencias

Technorati Tags: ,

3 comentarios:

Señor de Delos dijo...

HOLA! recientemente he comprobado que se me inhabilitó el firewal de windows, aparece como activo pero en la pantalla inicial no me permite activar o desactivar, como bloqeado, pense q era virus,pero cuando revise en administracion esta activo, será xq inhabilité bluethoot y red inhalambrica?
Gloria

Drizzt dijo...

No. En principio si desactivas una interfaz de red no tiene que deshabilitarse el firewall. Pero si la interfaz no te deja cambiar la configuración de la interfaz, primero, asegurate que estás como un usuario administrador - porque sino, no podrás cambiar nada -. Luego, si como administrador no puedes cambiar nada, ¿tú ordenador pertenece a un dominio?. Si es así, lo mismo te están mandando la configuración del firewall por una política de dominio.

Anónimo dijo...

hola necesito agregar un puerto al firewall, pero que pasa yo tengo un red de 70 maquinas y quiero saber si pùedo con alguna instruccion agregarle a las pc el puerto a traves de mi pc, comprenden, conosco el netsh firewall pero no se como lo puedo hacer, intento con el numero de IP de la pc y no puedo con el nombre y no puedo, espero respuesta gracias