Configurar firewall de windows en linea de comandos

12/08/2009 - 13:28 por FCHip | Informe spam
Muy buenas,
Mi intención es hacer un script de inicio de sesión que configure el
firewall de windows en todos los ordenadores unidos a un dominio para
que se cierren todos los puertos excepto los especificados.

He creado un sencillo bat de este tipo:

<inicio script>
rem Activacion del servicio de dependencia del cortafuegos si esta
desactivado
sc config sharedAccess start= enabled
sc start sharedAccess

rem Activacion del cortafuegos y establecimiento de excepciones
netsh firewall set opmode enable
netsh firewall add portopening UDP 137 p137udp enable subnet
netsh firewall add portopening UDP 138 p138udp enable subnet
netsh firewall add portopening TCP 139 p139tcp enable subnet
netsh firewall add portopening TCP 445 p445tcp enable subnet
<fin script>

El caso es que no encuentro una manera de decir a netsh que cierre todo
lo que no sea lo anterior.
Cada máquina tiene unos puertos abiertos distintos y no es posible saber
cuales tengo que cerrar ya que cada ordenador tiene uno abierto y no se
parece ninguna entre si, me gustaría algo como

netsh firewall delete * :-))

He probado cosas como:
netsh firewall add portopening ALL 1-65535 todos disable all
netsh firewall delete portopening ALL 1-65536

Pero no obtengo el resultado esperado...
¿Alguna idea?

Muchas gracias, un saludo.

FCHip.
 

Leer las respuestas

#1 pablitoms
17/08/2009 - 02:35 | Informe spam
Hola,

Podés volver el firewall a su configuración por defecto con el siguiente
script:

Set objFirewall = CreateObject("HNetCfg.FwMgr")
objFirewall.RestoreDefaults()

Y dale un vistazo al siguiente documento de Microsoft:
http://download.microsoft.com/downl..._xpsp2.doc

A partir de la página 37, tenés una descripción detallada de la utilización
del netsh firewall y sus parámetros posibles. A ver si hay alguno que te
sirve.

Saludos!

"FCHip" wrote:

Muy buenas,
Mi intención es hacer un script de inicio de sesión que configure el
firewall de windows en todos los ordenadores unidos a un dominio para
que se cierren todos los puertos excepto los especificados.

He creado un sencillo bat de este tipo:

<inicio script>
rem Activacion del servicio de dependencia del cortafuegos si esta
desactivado
sc config sharedAccess start= enabled
sc start sharedAccess

rem Activacion del cortafuegos y establecimiento de excepciones
netsh firewall set opmode enable
netsh firewall add portopening UDP 137 p137udp enable subnet
netsh firewall add portopening UDP 138 p138udp enable subnet
netsh firewall add portopening TCP 139 p139tcp enable subnet
netsh firewall add portopening TCP 445 p445tcp enable subnet
<fin script>

El caso es que no encuentro una manera de decir a netsh que cierre todo
lo que no sea lo anterior.
Cada máquina tiene unos puertos abiertos distintos y no es posible saber
cuales tengo que cerrar ya que cada ordenador tiene uno abierto y no se
parece ninguna entre si, me gustaría algo como

netsh firewall delete * :-))

He probado cosas como:
netsh firewall add portopening ALL 1-65535 todos disable all
netsh firewall delete portopening ALL 1-65536

Pero no obtengo el resultado esperado...
¿Alguna idea?

Muchas gracias, un saludo.

FCHip.

Preguntas similares