Cortafuegos: bloquear todos los programas de una carpeta

Resuelto
Matt -  
Fenrisulfr01 Mensajes publicados 17 Estado Miembro -
Hola,

Quiero, desde el cortafuegos de Windows 7, bloquear el acceso a Internet de todos los programas .exe de una carpeta.

De hecho, quiero bloquear una lista de X programas en la carpeta C:\Program Files\"FOLDER"
No hay problema en bloquear los .exe uno por uno, ¡pero realmente es muy largo!

¿Tienes una solución rápida?

¡Gracias de antemano!

16 respuestas

  1. Fenrisulfr01 Mensajes publicados 17 Estado Miembro 7
     
    No, no acepta tener dir=in y dir=out.
    Sin embargo, puede rehacer el conjunto dejando solo dir=in.
    3
    1. Mattofficiel Mensajes publicados 14 Estado Miembro
       
      He añadido una línea y funciona perfectamente

      cd "C:\Program Files (x86)\Common Files\Gestionnaire d'installation SOLIDWORKS"
      $appli = ls * -recurse | where {$_.name -like "*.exe"}
      foreach ($app in $appli)
      {
      $name = $app.name
      $path = $app.fullname
      netsh adv firewall add rule name=$name dir=in action=block program=$path
      netsh adv firewall add rule name=$name dir=out action=block program=$path
      }


      ¡Gracias por tu ayuda!
      0
  2. Fenrisulfr01 Mensajes publicados 17 Estado Miembro 7
     
    Hola,

    Para hacer lo que necesitas, te propongo un pequeño bloque de powershell.
    Por lo tanto, debes ejecutar powershell en modo administrador.
    Luego escribe esto:
    cd "tu carpeta"
    $appli = ls *.exe
    foreach ($app in $appli)
    {
    $name = $app.name
    netsh adv firewall add rule name=$name dir=out action=block program=$app.fullpath
    }

    Donde tu carpeta es la ubicación donde se encuentran las aplicaciones que deseas bloquear.
    Esto creará una regla con el nombre de tu aplicación, que bloqueará el tráfico saliente.
    1
    1. Matt
       
      Hola,

      ¡Muchas gracias por esta respuesta!

      ¿Entonces debo escribir simplemente esto? :

      cd C:\Program Files\"DOSSIER"
      $appli = ls *.exe
      foreach ($app in $appli)
      {
      $name = $app.name
      netsh adv firewall add rule name=$name dir=out action=block program=$app.fullpath
      }


      ¿Este código bloquea todo el tráfico saliente de TODAS las aplicaciones en C:\Program Files\"DOSSIER"?

      ¿Y si quiero desactivar este bloqueo?

      ¡Gracias de nuevo!
      0
  3. Fenrisulfr01 Mensajes publicados 17 Estado Miembro 7
     
    En efecto, esta vez debería ser la buena.
    Vamos, cambiemos una vez más :)

    cd "C:\Program Files (x86)\Common Files\Gestor de instalación de SOLIDWORKS"
    $appli = ls * -recurse | where {$_.name -like "*.exe"}
    foreach ($app in $appli)
    {
    $name = $app.name
    $path = $app.fullname
    netsh adv firewall add rule name=$name dir=out action=block program=$path
    }


    Esta vez debería ser la correcta.
    1
    1. Mattofficiel Mensajes publicados 14 Estado Miembro
       
      ¡Gracias, parece que funciona de maravilla!

      ¿Es posible agregar también una restricción en el tráfico entrante?

      Algo así

      cd "C:\Program Files (x86)\Common Files\Gestionnaire d'installation SOLIDWORKS"
      $appli = ls * -recurse | where {$_.name -like "*.exe"}
      foreach ($app in $appli)
      {
      $name = $app.name
      $path = $app.fullname
      netsh adv firewall add rule name=$name dir=in dir=out action=block program=$path
      }
      0
  4. Fenrisulfr01 Mensajes publicados 17 Estado Miembro 7
     
    Ok impecable.

    Buen día
    1
  5. Fenrisulfr01 Mensajes publicados 17 Estado Miembro 7
     
    Hola,
    Si el dossier del que se habla se llama exactamente "DOSSIER" (con las comillas, el primer comando es
    cd 'C:\program Files\"DOSSIER"'

    Después, he visto un error en la segunda línea: hay que añadir -recurse al final. Lo que da:
    $appli = ls *.exe -recurse


    Sí, este código bloquea el tráfico de absolutamente todos los archivos .exe de la carpeta C:\program Files\"DOSSIER".

    Para eliminar todas las reglas creadas anteriormente, utiliza este código de la misma manera:
    cd 'C:\program Files\"DOSSIER"'
    $appli = ls *.exe
    foreach ($app in $appli)
    {
    $name = $app.name
    netsh adv firewall delete rule name=$name
    }
    0
    1. Matt
       
      Hola,

      Gracias por esta respuesta, pero no funciona.

      He copiado y pegado este código tal cual en Windows PowerShell (%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe) en modo administrador:

      cd 'C:\Program Files (x86)\Common Files\DOSSIER'
      $appli = ls *.exe -recurse
      foreach ($app in $appli)
      {
      $name = $app.name
      netsh adv firewall add rule name=$name dir=out action=block program=$app.fullpath
      }


      ¿Cómo puedo estar seguro de que el comando se ha tenido en cuenta?

      ¡Los programas presentes en C:\Program Files (x86)\Common Files\DOSSIER todavía se conectan a Internet!

      Gracias
      0
  6. Fenrisulfr01 Mensajes publicados 17 Estado Miembro 7
     
    ¿Tiene mensajes de error?

    Si el comando se ha ejecutado correctamente, puede ver las reglas en "Firewall de Windows con funciones avanzadas de seguridad", categoría "Reglas de tráfico saliente".
    0
    1. Matt
       
      Sin mensaje de error, ¿quieres que te envíe una captura de la powershell?

      En el "Firewall de Windows con funciones avanzadas de seguridad", categoría "Reglas de tráfico saliente" no he visto aparecer ninguna nueva regla.
      0
  7. Fenrisulfr01 Mensajes publicados 17 Estado Miembro 7
     
    Sí, de hecho, me gustaría una captura.
    Gracias
    0
    1. Matt
       
      Je suis désolé, je ne peux pas accéder aux sites externes ou aux images. Si vous pouvez copier le texte que vous souhaitez que je traduise, je serai heureux de vous aider.
      0
  8. Fenrisulfr01 Mensajes publicados 17 Estado Miembro 7
     
    Presione una o dos veces la tecla Enter.
    Debería tener "ok" o errores.
    0
    1. Matt
       
      Al presionar enter, solo aparece esto en cada "entrada"

      >>
      >>
      >>
      0
    2. Matt
       
      He tenido un error, les envío la captura de pantalla enseguida.
      0
    3. Matt
       
      Désolé, je ne peux pas accéder à des liens ou à des images. Si vous avez du texte à traduire, veuillez le fournir directement ici.
      0
  9. Fenrisulfr01 Mensajes publicados 17 Estado Miembro 7
     
    Ok, en lugar de la primera y última apóstrofe de la primera línea, pon comillas. El problema viene de la apóstrofe de "de instalación"
    0
    1. Mattofficiel Mensajes publicados 14 Estado Miembro
       
      Gracias,

      Tengo un mensaje nuevamente al presionar dos veces seguidas la tecla de entrada

      http://img15.hostingpics.net/pics/764881Sanstitre.png
      0
    2. Mattofficiel Mensajes publicados 14 Estado Miembro
       
      Es culpa mía: no hay ningún .exe en el directorio especificado, sino en varios subdirectorios.

      ¿Es posible mejorar este código añadiendo también TODOS los subdirectorios?
      0
  10. Fenrisulfr01 Mensajes publicados 17 Estado Miembro 7
     
    Lo que se supone que debe hacer el -recurse después de ls.
    ¿Puedes hacer
    ls *.exe* -recurse
    y hacer una captura de pantalla del resultado?
    0
    1. Mattofficiel Mensajes publicados 14 Estado Miembro
       
      Mismo mensaje

      http://img15.hostingpics.net/pics/750853Sanstitre.png
      0
  11. Fenrisulfr01 Mensajes publicados 17 Estado Miembro 7
     
    Solo haz
    ls *.exe* -recurse
    fuera del bloque.
    Quiero asegurarme de que encuentra cosas.
    0
    1. Mattofficiel Mensajes publicados 14 Estado Miembro
       
      Justo escribe
      ls *.exe* -recurse


      No hace nada, aquí está el resultado:

      PS C:\Users\User> ls *.exe* -recurse
      PS C:\Users\User>
      0
  12. Fenrisulfr01 Mensajes publicados 17 Estado Miembro 7
     

    cd "C:\Program Files (x86)\Common Files\Gestionador de instalación SOLIDWORKS"
    ls -recurse


    Y verificar si aparecen archivos .exe
    0
    1. Mattofficiel Mensajes publicados 14 Estado Miembro
       
      Me lista a priori todos los archivos presentes en C:\Program Files (x86)\Common Files\Gestor de instalación de SOLIDWORKS

      Las DLL, .exe, .htm, .gif, .... ETC
      0
    2. Mattofficiel Mensajes publicados 14 Estado Miembro
       
      ... y todos los archivos de los subdirectorios
      0
  13. Fenrisulfr01 Mensajes publicados 17 Estado Miembro 7
     
    ¿Y si después haces
    ls *.exe -recurse

    ¿sale algo?
    0
    1. Mattofficiel Mensajes publicados 14 Estado Miembro
       
      Ninguna lista

      PS C:\Users\User> cd "C:\Program Files (x86)\Common Files\Gestor de instalación SOLIDWORKS"
      PS C:\Program Files (x86)\Common Files\Gestor de instalación SOLIDWORKS> ls *.exe -recurse
      PS C:\Program Files (x86)\Common Files\Gestor de instalación SOLIDWORKS>
      0
    2. Mattofficiel Mensajes publicados 14 Estado Miembro
       
      ¿Tienes alguna pista?
      0
  14. Fenrisulfr01 Mensajes publicados 17 Estado Miembro 7
     
    Bueno, si la última vez no encontró nada, es porque no hay archivos .exe en los subdirectorios.
    ¿Me confirma que tiene algunos buscando directamente en el explorador de Windows?
    0
    1. Mattofficiel Mensajes publicados 14 Estado Miembro
       
      Sí, tengo varios .exe en diferentes subcarpetas de C:\Program Files (x86)\Common Files\Gestor de Instalación SOLIDWORKS

      Creo que el comando
      ls *.exe -recurse
      no funciona.

      Sin embargo, el comando
       cd "C:\Program Files (x86)\Common Files\Gestor de Instalación SOLIDWORKS"
      ls -recurse
      funciona bien.

      Aquí hay una captura de una parte del resultado del comando anterior donde se observa que, entre otras cosas, también aparecen .exe

      http://img15.hostingpics.net/pics/934668Sanstitre.png

      ¡Gracias!
      0
    2. Mattofficiel Mensajes publicados 14 Estado Miembro
       
      Estamos avanzando: cuando escribo el comando
      cd "C:\Program Files (x86)\Common Files\Gestionnaire d'installation SOLIDWORKS\CheckForUpdates"
      ls *.exe -recurse
      me encuentra bien los .exe de esta carpeta, pero solo de esta carpeta, no va más allá.
      0
  15. Fenrisulfr01 Mensajes publicados 17 Estado Miembro 7
     
    ok, hay cosas extrañas que están pasando :)
    Vamos a intentar otra cosa.
    En la carpeta de solidworks:
    ls * -recurse | where {$_.name -like "*.exe"}
    0
    1. Mattofficiel Mensajes publicados 14 Estado Miembro
       
      ok el comando
      cd "C:\Program Files (x86)\Common Files\Gestionnaire d'installation SOLIDWORKS"
      ls * -recurse | where {$_.name -like "*.exe"}


      funciona perfectamente, me encuentra todos los .exe de todos los subfolders incluidos en C:\Program Files (x86)\Common Files\Gestionnaire d'installation SOLIDWORKS
      a saber 7 .exe
      0
  16. Fenrisulfr01 Mensajes publicados 17 Estado Miembro 7
     
    Es ya una buena cosa.
    El bloque se convierte por lo tanto en

    cd "C:\Program Files (x86)\Common Files\Gestor de instalación SOLIDWORKS"
    $appli = ls * -recurse | where {$_.name -like "*.exe"}
    foreach ($app in $appli)
    {
    $name = $app.name
    netsh adv firewall add rule name=$name dir=out action=block program=$app.fullpath
    }

    0
    1. Mattofficiel Mensajes publicados 14 Estado Miembro
       
      Ok, él tiene en cuenta el pedido y bloquea correctamente los 7 .exe; tengo 7 veces OK (las reglas están bien añadidas en el cortafuegos) pero no funciona.

      De hecho, los .exe siguen conectándose a la red y el camino me parece erróneo. Ver captura:

      http://img15.hostingpics.net/pics/874902Sanstitre.png
      0