Configurar firewall de windows en linea de comandos

16/08/2009 - 17:50 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 Fernando Reyes [MS MVP]
19/08/2009 - 09:44 | Informe spam
¿Te podría valer con configurar el firewall con la configuración que trae
por defecto y después aplicar tus cambios? Te quedaría el bat así:

<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

rem Establecer la configuración or defecto del firewall
netsh firewall reset

rem Agregar las excepciones de puertos
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>



Un saludo
Fernando Reyes [MS MVP]
MCSE Windows 2000 / 2003
MCSA Windows Server 2003
http://freyes.svetlian.com
http://urpiano.wordpress.com
RSS: http://urpiano.wordpress.com/feed
freyes.champú@champú.mvps.org
(Aclárate la cabeza si quieres escribirme)



"FCHip" wrote in message
news:
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