# ipfwadm -F -f # ipfwadm -F -p deny # ipfwadm -F -a accept -P tcp -S 172.16.1.0/24 -D 0/0 80 # ipfwadm -F -a accept -P tcp -S 0/0 80 -D 172.16.1.0/24 |
La segunda regla establece nuestra pol�tica predeterminada de reenv�o. Se le dice al n�cleo que niegue o que no permita el reenv�o de datagramas de IP. Es muy importante establecer la pol�tica por omisi�n, porque describe qu� le pasar� a cualquier datagrama que no est� espec�ficamente controlado por cualquier otra regla. En la mayor�a de las configuraciones de cortafuegos, usted querr� establecer la pol�tica por defecto a 'deny' [1], como se muestra en el ejemplo, para estar seguro de que s�lo el tr�fico que usted espec�ficamente permita pasar su cortafuegos sea reenviado.
La tercera y la cuarta reglas son las que implementan el requisito. La tercera orden permite que nuestros datagramas salgan, y la cuarta permite las respuestas de vuelta.
Vamos a revisar cada unos de los argumentos:
Esta es una regla de tipo 'forwarding'.
A�adir esta regla con la pol�tica establecida a "aceptar", lo que quiere decir que se reenviar� cualquier datagrama que se ajuste a esta regla
Esta regla se aplica a los datagramas de TCP (en lugar de UDP o ICMP).
Los primeros 24 bits de la direcci�n de origen deben coincidir con los de la direcci�n de red 172.16.1.0.
La direcci�n de destino debe tener cero bits coincidentes con la direcci�n 0.0.0.0. Esto en el fondo es una forma de decir "cualquier direcci�n". El 80 es el puerto de destino, en este caso el de WWW. Tambi�n puede utilizarse cualquier entrada que aparezca en el fichero /etc/services para describir el puerto, de tal forma que -D 0/0 www habr�a funcionado igual de bien.
ipfwadm acepta las m�scaras de red en una forma con la que puede no est� familiarizado. La notaci�n /nn es una forma de describir cu�ntos bits de la direcci�n suministrada son significativos, es decir, es el tama�o de la m�scara de red. Los bits se cuentan siempre de izquierda a derecha; algunos ejemplos habituales se muestran en la Tabla 9-1.
Tabla 9-1. Valores habituales de m�scaras de red y bits
M�scara | Bits |
---|---|
255.0.0.0 | 8 |
255.255.0.0 | 16 |
255.255.255.0 | 24 |
255.255.255.128 | 25 |
255.255.255.192 | 26 |
255.255.255.224 | 27 |
255.255.255.240 | 28 |
255.255.255.248 | 29 |
255.255.255.252 | 30 |
El modificador de bidireccionalidad nos permite unir nuestras dos reglas en una sola como sigue:
# ipfwadm -F -a accept -P tcp -S 172.16.1.0/24 -D 0/0 80 -b |
# ipfwadm -F -a deny -P tcp -S 0/0 80 -D 172.16.10.0/24 -y # ipfwadm -F -a accept -P tcp -S 172.16.1.0/24 -D 0/0 80 -b |
Despu�s de haber introducido nuestras reglas, se puede pedir a ipfwadm que las liste con la orden:
# ipfwadm -F -l |
# ipfwadm -F -l IP firewall forward rules, default policy: accept type prot source destination ports deny tcp anywhere 172.16.10.0/24 www -> any acc tcp 172.16.1.0/24 anywhere any -> www |
# ipfwadm -F -l -e P firewall forward rules, default policy: accept pkts bytes type prot opt tosa tosx ifname ifaddress source ... 0 0 deny tcp --y- 0xFF 0x00 any any anywhere ... 0 0 acc tcp b--- 0xFF 0x00 any any 172.16.1.0/24 ... |
# ipfwadm -a deny -P tcp -S 0/0 20 -D 172.16.1.0/24 -y # ipfwadm -a accept -P tcp -S 172.16.1.0/24 -D 0/0 20 -b # # ipfwadm -a deny -P tcp -S 0/0 21 -D 172.16.1.0/24 -y # ipfwadm -a accept -P tcp -S 172.16.1.0/24 -D 0/0 21 -b |
Muchos servidores de FTP realizan su conexi�n de datos desde el puerto 20 cuando operan en el modo activo, lo que simplifica las cosas un poco, pero, degraciadamente, no todos proceden as�. [3]
Pero, �c�mo nos afecta todo esto? F�jese en nuestra regla del puerto 20, el puerto de datos de FTP (FTP-data). La regla, tal como se tiene en este momento, asume que la conexi�n ser� realizada por nuestro cliente al servidor. Esto funcionar� si se utiliza el modo pasivo. Pero resulta muy dif�cil para nosotros el configurar una regla satisfactoria que permita el modo activo de FTP, porque no se puede saber de antemano qu� puertos ser�n los utilizados. Si abrimos nuestro cortafuegos para permitir conexiones entrantes en cualquier puerto, estar�amos exponiendo nuestra red a un ataque sobre todos los servicios que acepten conexiones.
El dilema se resuelve de la forma m�s satisfactoria insistiendo en que nuestros usuarios operen en el modo pasivo. La mayor�a de los servidores de FTP y muchos clientes de FTP funcionar�n de esta forma. El cliente popular ncftp tambi�n soporta el modo pasivo, pero requiere un peque�o cambio de configuraci�n para conseguir que su modo por omisi�n sea el pasivo. Muchos navegadores de 'World Wide Web' como el navegador de Netscape tambi�n soportan el modo pasivo de FTP, por lo que no deber�a ser muy dif�cil el encontrar el 'software' adecuado para utilizar. De forma alternativa, se puede evitar el asunto de forma completa utilizando un programa intermediario de FTP que acepten una conexi�n desde la red interna y establezca conexiones con las redes externas.
Cuando construya su cortafuegos, probablemente se encontrar� con varios de estos problemas. Deber�a siempre pensar cuidadosamente c�mo funciona un servico realmente para estar seguro de que ha puesto un conjunto de reglas adecuado a ese servicio. La configuraci�n de un cortafuegos de verdad puede resultar bastante compleja.
ipfwadm categor�a orden par�metros [opciones] |
Las pol�ticas relevantes para el cortafuegos de IP y sus significados son:
Cada una de las �rdenes de configuraci�n del cortafuegos le permite especificar tipos de datagrama de ICMP. Al contario que los puertos de TCP y de UDP, no existe un fichero de configuraci�n conveniente que liste los tipos de datagramas y sus significados. Los tipos de datagrama de ICMP se definen en el RFC-1700, el RFC de los n�meros asignados. Los tipos de datagrama de ICMP aparecen tambi�n listados en uno de los ficheros de cabecera de la biblioteca est�ndar de C. El fichero /usr/include/netinet/ip_icmp.h, que pertenece al paquete con la biblioteca est�ndar de GNU, y que los programadores de C utilizan cuando escriben 'software' de red que utilice el protocolo de ICMP, tambi�n define los tipos de datagrama de ICMP. Para su conveniencia, se incluyen aqu� en la Tabla 9-2 [4]. La interfaz de la orden iptables le permite especificar los tipos de ICMP por su nombre, por lo que tambi�n se muestran los nombre nemot�cnicos que utiliza.
Tabla 9-2. Tipos de datagramas de ICMP
N�mero de tipo | Nnem�nico de iptables | Descripci�n del tipo |
---|---|---|
0 | echo-reply | Respuesta a eco |
3 | destination-unreachable | Destino inaccesible |
4 | source-quench | Disminuci�n del tr�fico desde el origen |
5 | redirect | Redirecci�n |
8 | echo-request | Solicitud de eco |
11 | time-exceeded | Tiempo superado |
12 | parameter-problem | Problema de par�metros |
13 | timestamp-request | Solicitud de marca de tiempo |
14 | timestamp-reply | Respuesta de marca de tiempo |
15 | none | Solicitud de informaci�n |
16 | none | Respuesta de informaci�n |
17 | address-mask-request | Petici�n de m�scara de direcci�n |
18 | address-mask-reply | Respuesta de m�scara de direcci�n |
[1] | N. del T.: "denegaci�n" |
[2] | El modo activo de FTP se habilita, de forma poco intuitiva, con la orden PORT. El modo pasivo de FTP se habilita con la orden PASV. |
[3] | El demonio ProFTPd constituye un buen ejemplo de un servidor de FTP que no procede as�, al menos,en sus versiones antiguas. |
[4] | N.del T.: se han utilizado las descripciones de la traducci�n al espa�ol por P.J. Ponce de Le�n, dentro del proyecto RFC-ES, del RFC0792 "Protocolo de mensajes de control de internet" |