Resultados 1 al 2 de 2

El firewall de XP SP2 desde la línea de comandos

  1. #1 El firewall de XP SP2 desde la línea de comandos 
    Moderadora HH
    Fecha de ingreso
    Jun 2006
    Ubicación
    Cordoba.Argentina.
    Mensajes
    1.009
    Descargas
    0
    Uploads
    0
    Este articulo lo halle en esta web (tratando de configurar mi firewall de xp a mi antojo) http://www.fermu.com/content/view/261/2/lang,es/



    Una de las muchas ventajas que presenta SP2 es que el firewall de XP puede manipularse mediante el comando netsh desde la línea de comandos. En realidad sería mediante la serie de comandos netsh firewall cuya explicación describiré en este artículo.
    Antes de ello, voy a explicar un poco la terminología usada en los distintos parámetros de los comandos para que su función quede más clara. Antes hay que tener en cuenta que todas estas excepciones se refieren al tráfico entrante que es el que bloquea el firewall de XP SP2. Salvo contadas excepciones, no tiene en cuenta el tráfico saliente.

    PROFILE (perfil)

    Existen tres tipos de perfiles a los que aplicar los cambios:
    Domain (Perfil de dominio): es el perfil de configuración del firewall necesario cuando el equipo está unido a un dominio.
    Standard (Perfil estándar): es el perfil usado cuando el equipo no está unido a un dominio.
    Current (Perfil actual): es el perfil actual en el que trabajamos y es la opción por defecto.
    All (Todos): se refiere a que el comando se aplicará en todos los perfiles (es decir, en los tres anteriores).


    SCOPE (ámbito)

    Nos indica cuál es el grado de “extensión” (o de restricción) que va a tener el comando. Existen tres ámbitos:


    All (Todos): permite todo el tráfico a través del firewall y es la opción por defecto.
    Subnet (Subred): el firewall sólo permitirá el tráfico procedente de la subred local.
    Custom (Personalizado): sólo permite el tráfico especificado a través del firewall.

    Nota: cuando un comando permita como parámetro direcciones IP, el ámbito debe estar el su modalidad custom.


    MODE (modo)

    Existen dos modos:


    Enable: permite el tráfico entrante no solicitado a una aplicación o un puerto. Es la opción por defecto.
    Disable: no permite que el programa esté permitido en la lista de excepciones.


    PROTOCOL (protocolo)

    Son los dos habituales:
    TCP: Transmission Control Protocol
    UDP: User Datagram Protocol

    ADDRESSES (direcciones)

    Las direcciones IP pueden especificarse de distintas maneras. En primer lugar, mediante el parámetro LocalSubnet, indicando que dichas direcciones se toman de la subred local. También podría especificarse mediante máscara de subred o con una longitud-prefijo (que representa, de esa dirección, cuántos bits representan el prefijo).
    Si se utiliza máscara de subred, puede indicarse la IP o bien mediante un rango (10.48.73.0/255.255.0.0) o bien mediante una IP de ese rango (10.48.73.2/255.255.0.0); y además así, en formato IP/máscara. También puede especificarse mediante prefijo, con rango (12.148.83.0/24) o con una dirección dentro de ese rango (12.148.83.1/24); y además así, en formato IP/prefijo.
    Pueden aparecer los formatos juntos, siempre separados por comas. Por ejemplo:

    LocalSubnet,10.48.73.25/255.255.0.0,12,148,43,0/24.

    Hay que tener en cuenta que si se introducen espacios o algo mal se obviarán todas las direcciones con lo que es aconsejable revisarlas antes bien.


    Convenciones

    En lo que sigue, vamos a usar la siguiente convención para presentar los distintos comandos:

    En negro el nombre del comando
    En azul los parámetros obligatorios
    En verde los parámetros opcionales

    Los doce comandos para configurar el firewall podrían ser divididos en varios grupos: excepciones (por aplicación, por puerto y predefinidas), información (información como tal y notificaciones), respuestas al multicast, modos y tráfico ICMP. Veamos cada grupo.



    EXCEPCIONES mediante aplicaciones

    Hay un primer grupo de tres comandos que nos permiten configurar las excepciones definidas mediante aplicaciones. Estos comandos son:

    add allowedprogram

    Mediante este comando podemos añadir una excepción basada en un programa. Esta excepción puede configurarse usando los distintos parámetros obligatorios y opcionales:

    add allowedprogram

    program = ruta del ejecutable, entre comillas si contiene espacios; en la ruta pueden usarse variables de entorno como %programfiles%, etc.

    name = nombre que se dará a la excepción y que aparecerá en la lista de excepciones

    mode = uno de los modos descritos anteriormente

    scope = ámbito de la excepción tal y como se han descrito

    addresses = direcciones en el formato especificado

    profile = perfil donde se aplicará la excepción



    Veamos algunos ejemplos. Antes, comentar, que aunque no voy a escribirlo, todos los ejemplo, para ejecutarse deberá acudirse a Inicio > Ejecutar y escribir cmd. En la nueva pantalla escribir los ejemplos como una sola línea
    netsh firewall add allowedprogram program = “C:\Archivos de programa\Aplicacion\programa.exe” name = “Mi programa” mode = disable scope = custom addresses = 11.121.71.0/255.255.0.0,12.13.120.1 profile = all

    Más sintéticamente, puede escribirse sin los nombres de los parámetros, con lo que quedaría así:

    netsh firewall add allowedprogram “C:\Archivos de programa\Aplicacion\programa.exe” “Mi programa” disable custom 11.121.71.0/255.255.0.0,12.13.120.1 all

    Veamos qué hace este ejemplo:

    añade una excepción llamada “Mi programa” a la lista de excepciones del firewall (y que puede consultarse yendo a Inicio > Panel de control > Centro de seguridad > Firewall de Windows > Excepciones), y usando un programa que está en la ruta especificada. No está permitido que este programa reciba tráfico a través del firewall (mode=disable), permitirá el tráfico especificado (scope=custom) a las direcciones especificadas y para todos los perfiles.

    set allowedprogram

    Con este comando podemos modificar una excepción basada en un programa. No creo que merezca la pena poner ejemplo porque es exactamente igual que el anterior. Tiene exactamente los mismos parámetros que add allowedprogram.

    delete allowedprogram

    Nos permite eliminar una excepción del firewall basada en un programa o aplicación. Veamos su sintaxis:

    delete allowedprogram

    program = ruta del ejecutable cuya excepción se va a eliminar, pudiendo contener variables de entorno.

    profile = perfil del que se va a eliminar la excepción.


    Veamos un ejemplo:

    netsh firewall delete allowedprogram “C:\Archivos de programa\Mi carpeta\applic.exe” domain


    Este ejemplo hace lo siguiente: elimina la excepción del programa “applic.exe” y sólo del perfil de dominio.



    EXCEPCIONES predefinidas



    set service

    Mediante el comando set service podemos permitir o bloquear las cuatro excepciones predefinidas del firewall de XP: compartir archivos e impresoras, administración remota, escritorio remoto y UPnP. Estos son los cuatro tipos (type) que XP los llama así: fileandprint, remoteadmin, remotedesktop, upnp. Hay un quinto “tipo” que es all, es decir, todas las anteriores. La sintaxis del comando es la siguiente:

    set service

    type = cualquiera de los cinco tipos anteriormente descritos (recuérdese, los cuatro como tal y “all”).

    mode = como habitualmente, “enable” o “disable

    scope = ámbito de la excepción en su forma habitual

    addresses = direcciones a las que se aplicará la excepción, en la forma descrita

    profile = perfil al que se aplicará la excepción


    Veamos un ejemplo ilustrativo:

    netsh firewall set service upnp disable standard

    En este caso, no se permite tráfico entrante a través de la excepción UPnP en el perfil estándar.



    EXCEPCIONES mediante puertos

    add portopening

    Este comando crea una excepción pero en este caso basada en un puerto, tanto TCP como UDP o ambos. Veamos la sintaxis:

    add portopening

    protocol = cualquiera de los “tres” ya definidos: TCP, UDP o “All” (todos).

    port = número de puerto del 1 al 65535.

    name = nombre que se le va a dar al puerto (y por tanto a la excepción), y que no tiene por qué se el convencional del TCP/IP.

    mode = los modos habituales “enable” / “disable”

    scope = ámbito de la excepción

    addresses = direcciones en el formato especificado

    profile = perfil al que se aplicará la excepción

    interface = nombre de la interface, es decir, el nombre de la conexión de red.


    Como nota hay que indicar que el “perfil” y la “interface” no tienen por qué especificarse a la vez, al igual que el “ámbito” y la “interface”.

    Veamos un ejemplo aclaratorio:

    netsh firewall add portopening TCP 80 miweb enable subnet 152.61.1.1

    En este ejemplo, se abre el puerto TCP 80 y se le dará por nombre a la excepción “miweb”. Se permite tráfico entrando a través de él dentro de la subred local y desde la dirección 152.61.1.1

    Vuelvo a recordar que este comando, como todos puede escribirse también con el nombre de los parámetros. En este caso, sería así (más largo, claro):

    netsh firewall add portopening protocol = TCP port = 80 name = miweb mode = enable scope = subnet addresses = 152.61.1.1


    set portopening


    Este comando nos permite modificar una excepción de puerto ya presente en el firewall. En este caso, los parámetros son exactamente iguales que los de la orden anterior add portopening con lo que remito a ella para los detalles.


    delete portopening

    Mediante este comando podremos eliminar una excepción del firewall basada en un puerto ya presente. Su sintaxis es:
    delete portopening

    protocol = los tres considerados (recordar: TCP, UDP y All)

    port = número de puerto del 1 al 65535.

    profile = perfil al que se aplicará la excepción

    interface = nombre que la máquina tiene en la red.


    Veamos un ejemplo:

    netsh firewall delete portopening UDP 500 all

    que eliminaría la excepción a través del puerto 500 UDP para todos los perfiles.


    INFORMACIÓN Y NOTIFICACIONES



    set logging

    Con este comando podemos configurar distintos aspectos relacionados con la información del firewall. Algo curioso pasa con el archivo donde se guarda la información del firewall: podemos especificar el tamaño del mismo. Una vez alcanzado dicho tamaño, se archivo el log y se crea uno nuevo. Veamos la sintaxis del comando. En este caso, todos los parámetros son opcionales pero al menos debe especificarse uno.

    set logging

    filelocation = ruta en la que se guardará el archivo log

    maxfilesize = tamaño máximo del archivo log desde 1 KB a 32767 KB (es decir, 32 MB).

    droppedpackets = esta opción permite informar sobre los paquetes perdidos y toma dos opciones: “enable” (quedan registrados) o “disable” (no quedan registrados).

    connections = informa sobre las conexiones llevadas a cabo con éxito y también tiene dos opciones: “enable” (quedan registrados) o “disable” (no quedan registrados).


    En este caso, el ejemplo es bien sencillo:

    netsh firewall set logging %userprofile%\escritorio\firew.log 8192

    Es decir, que guarde la información en un archivo que se ubicará en el escritorio y que se llamará firew.log. Además, este archivo tendrá un tamaño máximo de 8 MB.



    set notifications

    Este comando nos permite controlar y configurar el comportamiento de las notificaciones del firewall, produciéndose éstas en forma de mensajes emergentes (pop-ups). Si sintaxis es bien sencilla:


    set notifications

    mode = los modos habituales

    profile = perfiles habituales tal y como ya se ha visto.


    Otro ejemplo sencillo:

    netsh firewall set notifications enable current

    Es decir, permite las notificaciones en el perfil actual.



    MULTICAST / BROADCAST

    Con este comando podemos especificar el comportamiento del firewall permitiendo o no las respuestas unicast a un multicasting o un broadcasting. La sintaxis es fácil:

    set multicastbroadcastresponse

    mode = los dos habituales: “enable” (permite la respuesta” o “disable” (no permite la respuesta).

    profile = perfiles a los que se aplicará el comando.



    Como ejemplo fácil:

    netsh firewall set multicastbroadcastresponse enable domain

    Permite una respuesta a un multicast/broadcast en el perfil de dominio.


    MODOS de operación


    set opmode

    Con el comando este podemos configurar el modo de operación del firewall, o bien globalmente (excepciones en conjunto) o para una conexión en concreto. La sintaxis es:

    set opmode

    mode = como habitualmente “enable” / “disable”

    exceptions = permite excepciones (“enable”) o no las permite (“disable”).

    profile = perfil a donde se aplicará

    interface = nombre de la conexión



    Hay que especificar que ni “profile” e “interface”, ni “exceptions” e “interface” tienen por qué especificarse juntos o incluso puede que no puedan especificarse juntos.

    Como ejemplo:

    netsh opmode enable disable

    Es decir, en el ejemplo, el firewall estará habilitado y las excepciones deshabilitadas.



    TRÁFICO ICMP

    El comando que vamos a ver permite configurar el tráfico ICMP (Internet Control Message Protocol) del firewall (las excepciones). Este comando set icmpsetting. Va a llevar como parámetro el tipo (type) de ICMP y que va a venir indicado por un número del 2 al 17 aunque no correlativos. Veámoslos y expliquemos cada uno:

    2 permite paquetes salientes que sean demasiado grandes

    3 permite destinos salientes que son inalcanzables

    4 permite paquetes de control de flujo saliente

    5 permite redireccionamiento

    8 permite solicitud de eco entrante

    9 permite solicitud del router entrante

    11 permite tiempo excedido saliente

    12 permite problema de parámetro saliente

    13 permite petición de marca de hora entrante

    17 permite petición de máscara entrante

    All todos los tipos

    Veamos ya la sintaxis del parámetro:
    set icmpsetting

    type = cualquiera de los 11 (los 10 números y “all”) anteriores

    mode = como siempre “enable” / “disable”

    profile = perfiles habituales

    interface = nombre de la conexión de red.

    Como nota, indicar que ni “profile” e “interface”, ni “type” e “interface” tienen por qué especificarse conjuntamente, e incluso puede que no puedan especificarse así.

    Como ejemplo:

    netsh firewall set icmpsetting 8 enable all

    que permite la solicitud de eco entrante para todos los perfiles.

    EL COMANDO “SHOW”

    Con este comando podemos visualizar el estado actual de configuración del firewall, mostrando distinto tipo de información:

    allowedprogram muestra las excepciones de programas

    portopening informa sobre las excepciones por puertos

    config muestra información sobre la configuración local del firewall

    currentprofile muestra información del firewall dentro del perfil actual

    icmpsetting muestra información sobre el tráfico ICMP a través del firewall

    logging muestra información sobre la información en forma de archivo log del firewall

    notifications muestra información sobre el estado de las notificaciones

    opmode informa sobre el modo operativo del firewall

    service informa sobre los servicios (excepciones predefinidas)

    state informa sobre el estado de la configuración del firewall

    Así, si queremos ver el estado de nuestro tráfico ICMP tendremos que ejecutar

    netsh firewall show icmpsetting

    EL COMANDO “RESET”

    Este comando sin parámetros ni excepciones nos permite resetear todas las opciones que tengamos configuradas del firewall y regresarlo a las que presenta por defecto. Tiene el mismo efecto que si nos vamos a Inicio > Ejecutar y escribimos %systemroot%\inf. Veremos el archivo netfw.inf, hacemos click con el botón derecho del ratón sobre él y elegimos “Instalar”. Esto tiene el mismo efecto, y resetea el firewall.

    A mi me parecio muy completo ,espero que les sirva

    Saludos
    Mimasol
    Citar  
     

  2. #2  
    Moderador HH Avatar de ABODUJANA
    Fecha de ingreso
    Jun 2006
    Ubicación
    Por Tetouan
    Mensajes
    921
    Descargas
    14
    Uploads
    0
    Gran aportacion mimasol...

    Siempre digo que la gran desconocida es XP
    Citar  
     

Temas similares

  1. Respuestas: 0
    Último mensaje: 18-08-2015, 13:39
  2. Leer en linea de comandos en C++
    Por Deskicio en el foro GENERAL
    Respuestas: 6
    Último mensaje: 18-08-2008, 19:48
  3. Goosh, google en línea de comandos
    Por LUK en el foro OFF-TOPIC
    Respuestas: 1
    Último mensaje: 03-06-2008, 14:32
  4. C++ y linea de comandos
    Por fedderico10 en el foro PROGRAMACION DESKTOP
    Respuestas: 2
    Último mensaje: 06-01-2007, 19:05
  5. Respuestas: 9
    Último mensaje: 25-06-2004, 03:15

Marcadores

Marcadores