En este artículo se da una visión al manejo del firewall de WinXP SP2 a través de la línea de comandos y nos introducirá también en su configuración. Las utilidad de todo esto es inmediata, ya que a través de la línea de comandos podremos automatizar su configuración a través de scripts.
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 = disablescope = 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” disablecustom11.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”.
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):
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:
2permite
paquetes salientes que sean demasiado grandes
3permite
destinos salientes que son inalcanzables
4permite
paquetes de control de flujo saliente
5permite
redireccionamiento
8permite
solicitud de eco entrante
9permite
solicitud del router entrante
11permite tiempo excedido saliente
12permite problema de parámetro saliente
13permite petición de marca de hora entrante
17permite petición de máscara entrante
Alltodos 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:
allowedprogrammuestra las excepciones de
programas
portopening informa sobre las
excepciones por puertos
configmuestra información
sobre la configuración local del firewall
currentprofile muestra información del
firewall dentro del perfil actual
icmpsettingmuestra 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
serviceinforma
sobre los servicios (excepciones predefinidas)
stateinforma
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.
Filtro
No comments...
Escribir un comentario
Por favor, mantenga el asunto de los mensajes relevantes al tema del artículo.
Los ataques verbales personales serán eliminados.
Por favor, no emplee comentarios para promocionar su sitio web. Este tipo de mensajes serán eliminados