none
Rango Puertos - Firewall XP - GPO RRS feed

  • Pregunta

  • Hola,

    Tengo que exceptuar un rango de puertos para que una aplicación se conecte a la estación de trabajo. El tema que son alrededor de 50 y es muy engoroso cargarlos.

    Creamos un scrípt el cual funciona desde linea de comandos pero no así aplicada desde un GPO.

    On Error Resume Next
    Dim WshShell
    Set WshShell = CreateObject("WScript.Shell")
    for i = 10001 to 10050
    stringshell = "netsh firewall add portopening TCP " & i & " ""Veritas Backup Exec (TCP """ & i & ")"
    'msgbox stringshell
    result = WshShell.run (stringshell, 0, FALSE) 
    next

    Espero comentarios.

    Gracias
    lunes, 16 de noviembre de 2009 13:30

Respuestas

  • Chicos,


    Con la mano de un compañero encontramos el error y nos funciono.

    Les paso el script y muchas gracias por su ayuda.

    On Error Resume Next
    Dim WshShell
    Set WshShell = CreateObject("WScript.Shell")
    for i = 10001 to 10050
    stringshell = "netsh firewall add portopening TCP " & i & " ""Veritas Backup Exec (TCP """ & i & ")"
    result = WshShell.run (stringshell, 0, TRUE)
    next

    El esta en el siguiente parametro

    result = WshShell.run (stringshell, 0, TRUE)

    Nosostros habiamos puesto (stringshell, 0, FALSE), al poner FALSE ejecuta dicho FOR en paralelo. Sin darnos cuenta vimos que algunos puertos eran creados. Al cambiar a TRUE espera terminar la ejecución del primer iteración para continuar con la segunda iteración.

    Espero que los haya ayudado y muchas gracias por su ayuda.

    Adrian.



    • Marcado como respuesta adrian ghelman miércoles, 25 de noviembre de 2009 19:48
    miércoles, 25 de noviembre de 2009 19:47

Todas las respuestas

  • Hola Adrián, existe una GPO para eso. No es necesario la implmentación del SCRIPT

    Firewall de Windows: definir excepciones de puerto

    http://www.microsoft.com/spain/technet/recursos/articulos/mngwfw.mspx


    Saludos.

    Rafael Villaseñor Jofre - GrupoITPro - Colabora con el foro y vota si el mensaje es útil.
    lunes, 16 de noviembre de 2009 14:31
    Moderador
  • Rafael,

    Gracias por tu respuesta. Yo conozco dicha politica, es mas la tengo implementada. Lo que quiero es evitar cargar uno por uno todos los puertos. Se hace muy engoroso, por eso quiero implementar ese script o algo que me peermita crear esos puertos sin perder demasiado tiempo.

    Gracias y saludos.
    lunes, 16 de noviembre de 2009 14:56
  • Entiendo.

    Cual es el problema que estás teniendo con el script?
    Lo estás aplicando como SCRIPT en el inicio?
    A nivel de equipo o usuario?


    Rafael Villaseñor Jofre - GrupoITPro - Colabora con el foro y vota si el mensaje es útil.
    lunes, 16 de noviembre de 2009 16:02
    Moderador
  • Rafael,

    Me tira error al inicio y no funciona.
    Lo estoy aplicando al inicio y a nivel de politica de Maquina.

    Application popup: netsh.exe - Application Error : The application failed to initialize properly (0xc0000142). Click on OK to terminate the application

    Source Application Popup
    Event ID: 26
    Type Information

    Gracias
    lunes, 16 de noviembre de 2009 17:35
  • Adrián...

    Revisa los permisos de la GPO y del SCRIPT.
    Si es un script de inicio de máquina, necesita permisos en la cuenta de máquina, no de usuarios.
    Puedes usar Domain Computers o Authenticated Users, ya que las máquinas del dominio pertenecen a ambos grupos

    1) Poner en el recurso compartido el grupo Equipos del dominio
    2) En la consola de administración de Directivas, en Filtrado de Seguridad quitar Usuarios Autentificados (que viene por defecto) y añadir Equipos del dominio.


    Saludos.

    Rafael Villaseñor Jofre - GrupoITPro - Colabora con el foro y vota si el mensaje es útil.
    lunes, 16 de noviembre de 2009 23:36
    Moderador
  • Rafael,

    Gracias por tu respuesta.

    No me queda claro el punto 1. Porque el script ejecuta un parametro y no va a buscar ningun archivo en ninguna carpeta.

    Salvo que en el script tenga que pasarle un parametro para que tome permisos administrativos cuando corra el mismo.

    Si es así tenes idea como pasar dichos permisos por script.

    espero comentarios.

    gracias
    miércoles, 18 de noviembre de 2009 13:44
  • Hola Adrián...

    El script está depositado en una carpeta y en sí es un archivo. Por ende se le aplican permisos de SEGURIDAD (a nivel de sistema de archivos) y COMPARTIR (a nivel de red). A esta carpeta o archivo debe poder acceder el grupo "Equipos del dominio".

    Saludos.

    Rafael Villaseñor Jofre - GrupoITPro - Colabora con el foro y vota si el mensaje es útil.
    jueves, 19 de noviembre de 2009 0:46
    Moderador
  • Rafael,

    Ok, eso habia entendido pero queria estar seguro.

    Con respecto al script con los cambios que me dijiste no me funciona. El script lo lee porque sino en en event viewer no apareceria el error de netsh.
    Creo que el error se da porque el usuario system no tiene permisos administrativos sobre el equipo.

    Estuve buscando pero no encuentro como pasarle al script permisos de usuario system para que ejecute.

    Tenes idea de como pasarlo. Crees que puede estar pasando por ahi el problema?

    Gracias y Saludos.
    jueves, 19 de noviembre de 2009 13:29
  • Mmmm, podría ser.
    Pero puedes tanto a nivel de SHARING y SECURITY darle permisos a SYSTEM.

    Cómo se llama el archivo vbs?
    No tendrá un nombre con espacios en el medio?
    Si así fuera dedes especificarlo entre comillas "".
    Ej: "mi script.vbs"

    Saludos.

    Rafael Villaseñor Jofre - GrupoITPro - Colabora con el foro y vota si el mensaje es útil.
    viernes, 20 de noviembre de 2009 3:59
    Moderador
  • Hola Adrian,

    Tienes alguna noticia sobre su problema? Háganos saber qué podemos hacer para ayudarle! :)

    Saludos!

    Atilla Arruda
    Microsoft TechNet Support for IT Professionals | http://atillaarruda.spaces.live.com/
    Microsoft Certified Trainer | MCSE | MCSA | MCTS | MCITP | MCDST | ITIL-F | SCJA | ISO 20.000 | COBIT | CSS | TOEIC | DELE
    martes, 24 de noviembre de 2009 12:53
    Moderador
  • Atilla,

    La verdad es que todavia no pude encontrar la solución.

    Calculo que el problema es que el usuario system no tiene permisos administrativos. Estuve investigando pero no encontre la forma de pasar por script los permisos necesarios para dicho usuario para que dicha politica funcione.

    Espero comentarios.

    Saludos.
    martes, 24 de noviembre de 2009 18:21
  • Adrian, algunas ideas

    - ¿Si el script lo ejecutas manualmente funciona?
    Serviría para descartar posibles errores en el mismo

    - El comando NETSH tiene varias versiones, dependiendo del sistema operativo y service pack que tenga.
    Habría que ver qué versión está usando el script, y sobre qué sistemas operativos se está aplicando.

    Me da para pensar que esta última ... ;-)

    Guillermo Delprato - MVP-MCT-MCITP-MCTS-MCSE MCITP: Server Administration MCTS:Active Directory/Network Infrastructure Buenos Aires, Argentina
    martes, 24 de noviembre de 2009 18:35
    Moderador
  • Guillermo,

    Gracias por respondarme.

    Si lo ejecuto manual funciona correctamente. La estación es un Windows XP Sp´3.

    Espero comentarios.

    Saludos.
    martes, 24 de noviembre de 2009 20:20
  • Probaste modificar el script y ejecutarlo con sintaxis y formato CMD en vez de VBS?
    Si ya lo probaste y modificaste los permisos de los archivos y de la GPO no queda mucho mas.

    Además del Error 26 no hay otro evento?


    Saludos.


    Rafael Villaseñor Jofre - GrupoITPro - Colabora con el foro y vota si el mensaje es útil.
    martes, 24 de noviembre de 2009 23:52
    Moderador
  • Adrián, está bien, dices que lo ejecutas manualmente y funciona, pero desde dónde y tomando el NETSH de dónde. Recuerda lo de varias versiones. Habría que hacerlo en la máquina cliente y tomando el del script.

    Una opción más que se me ocurre, pero no tengo ahora un sistema para poder verificarlo, lo recuerdo que sucede en W2008 y a lo mejor es lo mismo en XP ya que el firewall es prácticamente el mismo.
    En el firewall hay una opción que es para permitir la administración remota del propio firewall ¿puedes verificar a ver si la encuentras? Porque al hacer por script de GPO podría ser el caso.

    De todas formas confirma esto por favor: es un script *de inicio de máquina*. No es un script de *inicio de sesión de usuario*

    Y ya que esto se está poniendo interesante :-) aunque luego no se lleve a la práctica de esta forma ¿por qué no lo pruebas asignando como inicio de usuario, y lo pruebas con un admin?
    Porque si así funciona o no podría dar más pistas de por dónde viene el problema.

    Guillermo Delprato - MVP-MCT-MCITP-MCTS-MCSE MCITP: Server Administration MCTS:Active Directory/Network Infrastructure Buenos Aires, Argentina
    miércoles, 25 de noviembre de 2009 10:34
    Moderador
  • Chicos,


    Con la mano de un compañero encontramos el error y nos funciono.

    Les paso el script y muchas gracias por su ayuda.

    On Error Resume Next
    Dim WshShell
    Set WshShell = CreateObject("WScript.Shell")
    for i = 10001 to 10050
    stringshell = "netsh firewall add portopening TCP " & i & " ""Veritas Backup Exec (TCP """ & i & ")"
    result = WshShell.run (stringshell, 0, TRUE)
    next

    El esta en el siguiente parametro

    result = WshShell.run (stringshell, 0, TRUE)

    Nosostros habiamos puesto (stringshell, 0, FALSE), al poner FALSE ejecuta dicho FOR en paralelo. Sin darnos cuenta vimos que algunos puertos eran creados. Al cambiar a TRUE espera terminar la ejecución del primer iteración para continuar con la segunda iteración.

    Espero que los haya ayudado y muchas gracias por su ayuda.

    Adrian.



    • Marcado como respuesta adrian ghelman miércoles, 25 de noviembre de 2009 19:48
    miércoles, 25 de noviembre de 2009 19:47