Está en la página 1de 64

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

MDULO 2

FIREWALL A NIVEL DE RED

OBJETIVO GENERAL

Adquirir los conocimientos necesarios en el manejo de la herramienta iptables sobre la tcnica de filtrado de paquetes en la implementacin de nuevas reglas de filtrado de acuerdo a las medidas de seguridad que se desea aplicar entre la red privada e Internet de tal manera que estar en la capacidad de construir un firewall de filtrado de paquetes. OBJETIVOS ESPECFICOS

Estar capacitado para implementar un firewall de filtrado de paquetes. Definir las directivas de seguridad predeterminadas de filtrado de paquetes. Filtrar contra ataques especficos, filtrar los mensajes de estado y de control ICMP. Habilitar los servicios bsicos necesarios de Internet, denegar todo tipo de acceso a sitios problemticos, crear cadenas definidas por el usuario. Gestionar NAT e interpretar la informacin de los mensajes de registro del firewall. SUMARIO

1.1 Filtrado de Paquetes. 1.2 Netfilter 1.2.1 1.2.2

Viaje del paquete Tablas

1.3 Diferencias entre iptables e ipchains 1.4 Opciones de iptables 1.4.1 1.4.2

t tabla Comando
1.2.1. 1.2.2. 1.2.3.

Modificar cadenas Modificar reglas Opciones

1.4.3 1.4.4

Comparacin Objetivos

1.5 Traduccin de direcciones de red NAT 1.5.1

SNAT
1
SEGURIDAD EN REDES GNU/LINUX

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

1.5.2 1.5.3 1.5.4

DNAT MASQUERADE REDIRECT

1.6 Implementacin de un servidor Firewall 1.7 Actividades del Mdulo 1.7.1 1.7.2

Auto evaluacin Laboratorio

1.8 Bibliografa y enlaces recomendados

INTRODUCCIN

Cuando una red de una organizacin es vulnerable contra posibles ataques externos, se requiere tomar medidas correctivas de seguridad dentro de la organizacin acceso desde Internet a ordenadores especficos de su red. que permita controlar el

En este mdulo se le ensear el uso de la herramienta IPTables que le permite implementar reglas de filtrado de paquetes IP, aceptando o denegando selectivamente diversos servicios de Internet, as como tambin ocultar su red privada de las redes externas aplicando NAT (Traduccin de direcciones de red) o enmascaramiento IP, reglas que se implementa en un servidor de seguridad Firewall encargado de filtrar el trfico entre la red de la organizacin e Internet.

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

SEGURIDAD EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

DESARROLLO DEL MDULO

2.1. Filtrado de paquetes

La tcnica de filtrado de paquetes se basan en revisar la informacin que poseen los paquetes en su encabezado, lo que hace posible su desplazamiento en un proceso de IP. Esta informacin

consiste en la direccin IP origen, la direccin IP destino, el protocolo de encapsulado (TCP, UDP, o ICMP) el puerto origen TCP o UDP, el puerto destino TCP o UDP, el tipo de mensaje ICMP, la interface de entrada del paquete y la interface de salida del paquete. Si se encuentra la

correspondencia y las reglas que permiten el paso del paquete, este ser desplazado de acuerdo a la informacin a la tabla de ruteo, si se encuentra la correspondencia y las reglas que niegan el paso del paquete, este ser descartado. Si estos no corresponden a las reglas se decide a travs de las directivas de seguridad predeterminadas en aceptar o descartar el paquete. 2.2. Netfilter

Herramienta para la gestin de las capacidades de filtrado de paquetes en el kernel de Linux.

Es el proceso de controlar los paquetes de red cuando ingresan, se reenva y salen de la red dentro del kernel. Si se desea configurar un firewall o el enmascaramiento IP se debe instalar esta aplicacin.

Los kernels anteriores a la versin 2.4 confiaban en ipchains para el filtrado de paquetes y usaban listas de reglas aplicadas a los paquetes en cada paso del proceso de filtrado. La introduccin del kernel 2.4 trajo consigo la herramienta iptables (tambin llamado netfilter), lo cual es similar a ipchains pero expande enormemente el mbito y el control disponible para el filtrado de paquetes de red. NOTA: El mecanismo predeterminado del firewall en la versin 2.4 del kernel puede usar el comando iptables, pero no se puede usar si ya se est ejecutando ipchains. Si ipchains est presente durante el arranque, el kernel avisar que hay un error y no podr arrancar iptables. Estos errores no afectan la funcionalidad del comando ipchains. La solucin es deshabilitar uno de ellos y reiniciar el sistema.

Para trabajar con iptables se requiere que est configurado el kernel, es necesario tener instalado las fuentes del kernel que se habr hecho durante la instalacin del sistema; ahora nos vamos al directorio del kernel /usr/src/linux-x.y.z (donde x.y.z es la versin del kernel), en
AREA DE TRANSFERENCIA DE CONOCIMIENTOS

algunas

SEGURIDAD EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

distribuciones de Linux puede ser un enlace al directorio donde se encuentra los archivos fuentes del kernel, ejecutaremos uno de los siguientes programas de configuracin del kernel:

make config: Es un programa que nos pregunta por cada uno de los parmetros del kernel a configurar. make menuconfig: Nos muestra un men desplegable de los parmetros de configuracin del kernel. make xconfig: Este programa se ejecuta en un entorno grfico y nos muestra todos los parmetros a configurar agrupados en categoras. Si ejecutamos make xconfig desde un x-terminal y hacemos clic en: Device Driver Networking support Networking options Network packet filtering IP: Netfilter configuraron IPtables support. (Ver Figura 1)

Figura 1. Men principal


AREA DE TRANSFERENCIA DE CONOCIMIENTOS

SEGURIDAD EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

En el panel derecho de la Figura 1 se muestra una lista de parmetros de Netfilter que estn configurados con la opcin . esto significa que se han instalado como mdulos, esto permitir que solo se carguen los mdulos que se requieren.

Tambin podemos ejecutar el programa

make menuconfig en una consola, en donde nos

mostrar el men principal con una lista de opciones y seleccionaremos la opcin Device Drivers como se puede apreciar en la Figura 2.

Figura 2. Men principal de configuracin del kernel

Luego seleccionamos la opcin Networking support, como se muestra en la Figura 3:

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

SEGURIDAD EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Figura 3. Soporte de red

Luego seleccionamos la opcin Networking options, como se muestra en la Figura 4:

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

SEGURIDAD EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Figura 4. Opciones de red

Luego seleccionamos la opcin Network packet filtering (replaces ipchains), como se muestra en la Figura 5:

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

SEGURIDAD EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Figura 5. Filtrado de paquetes de red

Luego seleccionamos la opcin IP: Netfilter Configurations, como se muestra en la Figura 6:

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

SEGURIDAD EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Figura 6. Opciones de configuracin de Netfilter

La Figura 7 nos muestra una lista de parmetros de Netfilter que estn configurados con la opcin M esto significa que se han instalado como mdulos, esto permitir que solo se carguen los mdulos que se requieren.

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

SEGURIDAD EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Figura 7. Lista de parmetros de configuracin Netfilter

Al salir de make menuconfig nos preguntar si deseamos salvar la nueva configuracin del kernel como no se ha realizado ningn cambio en la configuracin seleccionamos la opcin No. Como se muestra en la Figura 8.

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

10

SEGURIDAD EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Figura 8: Salir del programa make menuconfig

Los parmetros del kernel configurado por defecto se guarda en el archivo kernel-x.y.z-arch.config donde arch sera el tipo de arquitectura (i386, i486, i686, etc.) ubicado en el directorio /usr/src/linux-x.y.z/configs. En el caso de sistemas con el kernel 2.6 el archivo de configuracin config-kernel (config-2.6.8.1-12mdk config-2.6.8.-2-386) se guarda en el directorio /boot. En la Figura 9 en la seccin IP: Netfilter Configuration se puede apreciar una lista de parmetros habilitados como mdulos.

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

11

SEGURIDAD EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Figura 9: Lista de parmetros registrados en el archivo de configuracin /boot/config-2.6.8.1-12mdk

Describiremos algunos de estos parmetros utilizados para el filtrado de paquetes:

Parmetro CONFIG_NETFILTER

Descripcin Este parmetro se requiere si usted usar su mquina como firewall o mquina pasarela para la salida Internet.

CONFIG_IP_NF_CONNTRACK

Analiza la conexin de la red, es usado tambin para aplicar NAT.

CONFIG_IP_NF_FTP CONFIG_IP_NF_IPTABLES

Analiza las conexiones FTP. Este parmetro se requiere para realizar cualquier clase de filtrado, enmascaramiento IP o NAT

CONFIG_IP_NF_MATCH_LIMIT

Este parmetro es para restringir la tasa de coincidencias como por ejemplo limitar mensajes de registro, esto permite la posibilidad de controlar cuntos paquetes por minuto debern registrarse en el archivo de registro del kernel, cuando el paquete

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

12

SEGURIDAD EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

coincide con una regla de filtrado de paquetes. Tambin se usa este mdulo para evitar ciertos ataques de negacin de servicio. CONFIG_IP_NF_MATCH_STATE Habilitar este parmetro para poder filtrar todos los estados de conexin. CONFIG_IP_NF_FILTER Adiciona la tabla bsica de filtrado que se habilitar para filtrar todo paquete IP. En la tabla de filtrado (filter) usted encontrar las cadenas INPUT,

FORWARD y OUTPUT. CONFIG_IP_NF_TARGET_REJEC T Este parmetro habilita la accin que permite especificar un mensaje de error ICMP que se debe enviar en repuesta a paquetes entrantes en vez de simplemente descartarlos. CONFIG_IP_NF_NAT Este parmetro permite la traduccin de direcciones de red o NAT, habilita el acceso a la tabla NAT en iptables. CONFIG_IP_NF_TARGET_MASQ UERADE Este parmetro habilita la accin MASQUERADE. Con la finalidad de indicar al firewall que permita a todos los paquetes que provenga de la red interna, deban aparentar venir de la mquina firewall al momento de salir por la interface de red que tiene asignado una direccin IP dinmica para la salida a Internet.
Tabla 1. Parmetros de configuracin de Netfilter

Los mdulos se encuentra instalados en /lib/modules/x.y.z/kernel/net/ipv4/netfilter como se aprecia en la Figura 10, estos mdulos se cargan cuando se ejecuta iptables.

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

13

SEGURIDAD EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Figura 10. Lista de mdulos Netfilter kernel 2.4

Para los sistema con kernel 2.6 los mdulos de drivers pasan a tener extensin ".ko", por "objeto de kernel" (kernel object), en lugar de la tradicional ".o". (Ver Figura 11)

Figura 11. Lista de mdulos Netfilter kernel 2.6

2.2.1. Viaje del paquete

Cuando un paquete entra en el firewall, alcanza el hardware y es procesado en el ncleo por su driver correspondiente. Despus el paquete empieza a recorrer una serie de etapas en el ncleo
AREA DE TRANSFERENCIA DE CONOCIMIENTOS

14

SEGURIDAD EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

antes de ser enviado a la aplicacin adecuada (localmente), reenviada hacia otro host, o cualquier otra operacin.1 (Ver Figura 12)

Figura 12. Diagrama de la tablas que son atravesadas por un paquete Cada paquete de red recibido o enviado de un sistema Linux est sujeto al menos a una tabla.

Un paquete puede que sea verificado contra muchas reglas dentro de la lista de reglas antes de llegar al final de una cadena. La estructura y propsito de estas reglas puede variar, pero

normalmente buscan identificar un paquete que viene de o se dirige a una direccin IP en particular o un conjunto de direcciones al usar un determinado protocolo y servicio de red.
1

Fuente: http://iptables-tutorial.frozentux.net/spanish/iptables-tutorial.html 15
SEGURIDAD EN REDES GNU/LINUX

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Paquetes con destino local.

Etapa 1 2 3

Tabla

Cadena

Comentario En los cables (por ejemplo Internet) Llega a la interfaz de red (por ejemplo eth0)

mangle

PREROUTING

Esta

cadena

se

usa

normalmente

para

modificar/"deformar" (mangle) paquetes, es decir, cambiar el TOS y cosas as. 4 nat PREROUTING Esta cadena se usa principalmente para la traduccin de direcciones de red de destino (DNAT, Destination Network Address Translation). Debes evitar filtrar en esta cadena ya que ser puenteada (bypassed) o esquivada en ciertos casos. 5 Decisin de enrutamiento, o sea, est el paquete destinado a nuestro host local o debe ser reenviado?, hacia dnde? 6 mangle INPUT En este punto se alcanza la cadena INPUT de la tabla mangle. Usaremos esta cadena para

modificar/"retocar" paquetes despus de que hayan sido enrutados, pero antes de que se enven al proceso de destino. 7 filter INPUT Aqu es donde filtraremos todo el trfico entrante destinado a nuestro host local. Ten en cuenta que todo el trfico entrante pasa a travs de esta cadena, sin importar la interfaz por la que entre o de dnde proceda. 8 Proceso/aplicacin cliente/servidor)
Tabla 2. Paquetes con destino local Fuente: http://iptables-tutorial.frozentux.net/spanish/iptables-tutorial.html

local

(es

decir,

programa

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

16

SEGURIDAD EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Paquetes con origen local.

Etapa 1

Tabla

Cadena

Comentario Proceso/aplicacin cliente/servidor) local (es decir, programa

Decisin de enrutamiento. Qu direccin de origen usar, qu interfaz de salida usar, y otra informacin que necesita ser recopilada.

mangle

OUTPUT

Aqu es donde se modifican los paquetes; se sugiere que no filtres en esta cadena porque pueden producirse efectos secundarios.

nat

OUTPUT

Esta cadena puede ser usada para hacer NAT a los paquetes que salen desde el firewall.

filter

OUTPUT

Aqu es donde filtramos los paquetes salientes de nuestro host local.

mangle

POSTROUTING

La cadena POSTROUTING de la tabla mangle se usa principalmente cuando queremos modificar los

paquetes antes de que dejen nuestro host, pero despus de tomar las decisiones de enrutamiento. Esta cadena ser alcanzada tanto por los paquetes que atraviesan el cortafuegos, como por los generados por l mismo. 7 nat POSTROUTING Aqu es donde efectuamos la traduccin de las direcciones de red de origen (SNAT, Source Network Address Translation) como ya se ha descrito

anteriormente. Es conveniente que no filtres en esta cadena ya que pueden producirse efectos secundarios y determinados paquetes podran colarse incluso aunque se haya establecido la poltica DROP

(desechar) como poltica por defecto. 8 9 Sale al exterior por alguna interfaz (por ejemplo, eth0) En los cables (por ejemplo, Internet)
Tabla 3. Paquetes con origen local Fuente: http://iptables-tutorial.frozentux.net/spanish/iptables-tutorial.html

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

17

SEGURIDAD EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Paquetes reenviados.

Etapa Tabla 1 2 3

Cadena

Comentario En los cables (es decir, Internet) Llega hasta la interfaz de red (es decir, eth0)

mangle PREROUTING

Esta cadena se usa normalmente para modificar paquetes, o sea, para cambiar el TOS y acciones similares.

nat

PREROUTING

Esta cadena se usa principalmente para hacer DNAT (traduccin de direccin de destino). El SNAT (traduccin de direccin de origen) se realiza ms adelante. Debes evitar filtrar en esta cadena ya que en ciertos casos ser puenteada o esquivada.

Decisin de enrutamiento, o sea, el paquete est destinado a nuestro propio host local, o debe ser reenviado?, hacia dnde?

mangle FORWARD

El paquete es enviado a la cadena FORWARD de la tabla mangle. Esto puede aprovecharse para necesidades muy especficas dnde queremos modificar paquetes despus de la decisin de enrutamiento inicial, pero antes de la ltima decisin de enrutamiento, hecha justo antes de que el paquete sea enviado.

filter

FORWARD

El paquete es enrutado hacia la cadena FORWARD. Solamente los paquetes reenviados pasan por aqu y es donde hacemos todo el filtrado. Ten en cuenta que todos los paquetes reenviados (en cualquier direccin) pasan por aqu, as que necesitars pensar en llo cuando escribas tu conjunto de reglas.

mangle POSTROUTING Esta cadena se usa para efectuar los tipos especficos de modificacin de paquetes (packet mangling) que queramos llevar a cabo despus de que todos los tipos de decisiones de enrutamiento se hayan tomado, pero estando el paquete an en esta mquina.

nat

POSTROUTING Esta cadena debe ser usada principalmente y sobretodo para efectuar SNAT. Debes evitar filtrar aqu ya que ciertos paquetes

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

18

SEGURIDAD EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Etapa Tabla

Cadena

Comentario podran "pasar por delante" de la cadena sin ni siquiera rozarla. Aqu es tambin dnde se realiza el enmascaramiento (Masquerading).

10 11

Sale por la interfaz de salida (por ej. eth1). En los cables de nuevo (es decir, la red local). Tabla 4. Paquetes reenviados Fuente: http://iptables-tutorial.frozentux.net/spanish/iptables-tutorial.html

2.2.2. Tablas

Hay actualmente tres tablas independientes lo cual estas tablas asisten en cualquier momento dependiendo de las opciones de configuracin en el Kernel y qu mdulos estn presentes. El filtro de red del kernel 2.4 tiene tres tablas que se menciona a continuacin: filter La tabla por defecto para el manejo de paquetes de red. nat Usada para alterar paquetes que crean una nueva conexin. mangle Usada por tipos especficos de alteracin de paquetes.

Cada una de estas tablas tiene un grupo de cadenas internas que corresponden a las acciones llevadas a cabo por el filtro de red en el paquete. Las cadenas internas para la tabla filter son las siguientes: INPUT Aplica a los paquetes recibidos a travs de una interfaz de red.

Figura 13. Cadena INPUT


AREA DE TRANSFERENCIA DE CONOCIMIENTOS

19

SEGURIDAD EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

OUTPUT Esta cadena sirve para paquetes enviados por medio de la misma interfaz de red que recibi los paquetes.

Figura 14. Cadena OUTPUT

FORWARD Esta cadena sirve para paquetes recibidos en una interfaz de red y enviados en otra.

Figura 15. Cadena FORDWARD

Las cadenas internas para la tabla nat son las siguientes: PREROUTING Esta cadena altera paquetes recibidos por medio de una interfaz de red antes de que sean enviados hacia su destino. OUTPUT Esta cadena altera paquetes generados localmente antes de que sean dirigidos por medio de una interfaz de red.
SEGURIDAD EN REDES GNU/LINUX

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

20

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

POSTROUTING Esta cadena altera paquetes que estn cerca de salir por una interfaz de red hacia su destino. Las cadenas internas para la tabla mangle son las siguientes: PREROUTING Esta cadena altera paquetes recibidos por medio de una interfaz de red antes de que sean dirigidos hacia su destino. POSTROUTING Alterar paquetes que estn cerca de salir por una interface de red hacia su destino. OUTPUT Esta cadena altera paquetes generados localmente antes de que sean dirigidos por medio de una interfaz de red.

A partir del kernel 2.4.18 se incorpora otras dos cadenas: INPUT Esta cadena altera paquetes que ingresan al sistema. FORWARD Esta cadena altera paquetes redirigidos a travs del sistema. 2.3. Diferencias entre IPTables e IPChains.2

a. En IPTables cada paquete filtrado se procesa nicamente usando las reglas de una cadena, en lugar de hacerse con mltiples. Por ejemplo, un paquete FORWARD que llega al sistema usando ipchains tendr que pasar por las cadenas INPUT, FORWARD y OUTPUT para llegar a su destino. Sin embargo iptables slo enva paquetes a la cadena INPUT si su destino es el sistema local y tan slo los enva a la cadena OUTPUT si el sistema local es quien genera los paquetes. Por esta razn, coloque la regla designada para interceptar un paquete particular en la regla que en verdad ver el paquete. b. El objetivo DENY ha sido cambiado a DROP. c. El orden es importante cuando se estn colocando opciones en una regla. Anteriormente, con ipchains, el orden de las opciones de una regla no importaba. El comando iptables usa una sintaxis estricta. Por ejemplo, en iptables el protocolo (ICMP, TCP, o UDP) debe ser especificado antes del puerto origen o destino. d. Cuando especificamos las interfaces de red que vamos a usar en una regla, deberemos utilizar slo interfaces de entrada (opcin i) con cadenas INPUT o FORWARD y las de salida (opcin o) con cadenas FORWARD o OUTPUT. Esto es necesario debido al hecho de que las cadenas OUTPUT no se utilizan ms con las interfaces de entrada y las
2

Fuente: http://www.europe.redhat.com/documentation/rhl9/rhl-rg-es-9/s1-iptables-differences.php3 21
SEGURIDAD EN REDES GNU/LINUX

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

cadenas INPUT no son vistas por los paquetes que se mueven hacia las interfaces de salida. 2.4. Comando IPTables3

Las opciones que son reconocidas por iptables se pueden dividir en varios grupos diferentes que se usan para definir una regla de filtrado siguiendo la siguiente sintaxis: iptables [t table] command [match] [target/jump]

o tambin, iptables [t tabla] comando [comparacin] [objetivo/salto]

2.4.1. -t tabla

En esta opcin se especifica que tabla va operar el comando iptables. El Kernel se configura para cargar automticamente el mdulo apropiado para esa tabla si no esta presente. filter La tabla por defecto para el manejo de paquetes de red. nat Usada para alterar paquetes que crean una nueva conexin. mangle Usada por tipos especficos de alteracin de paquetes.

2.4.2. Comando

Estos comandos de lnea especifica la accin para modificar cadenas y reglas.

2.4.2.1. Modificar Cadenas -N, --new-chain [chain] Crear una nueva cadena definida por el usuario. Ejemplo: Crear una nueva cadena llamada cadena_1 iptables -N cadena_1 -X, --delete-chain [chain] Borrar una cadena vaca definida por el usuario. Ejemplo:
3

Fuente: www.netfilter.org, documentacin de iptables, packet-filtering-howto, NAT-howto escrita por Rutsy Russell
AREA DE TRANSFERENCIA DE CONOCIMIENTOS

22

SEGURIDAD EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Borra una cadena llamada cadena_1 iptables -X cadena_1 -P, --policy [chain] target Cambiar la Poltica de una cadena de uso interno. Ejemplo: Cambiar la poltica para la cadena INPUT en descartar cualquier paquete. iptables -P INPUT DROP -L, --list [chain] Listar las reglas de una cadena. Ejemplo: Listar las reglas de la cadena INPUT iptables -L INPUT -F, --flush [chain] Vaciar las reglas de una cadena. Ejemplo: Vaciar o eliminar las reglas de la cadena OUTPUT iptables -F OUTPUT -Z, --zero [chain] Poner a cero los contadores de paquetes y bytes de todas las reglas de una cadena. Ejemplo: Poner a cero los contadores de la cadena FORWARD. iptables -Z FORWARD -E, --rename-chain [old-chain] [new-chain] Renombrar una cadena definida por el usuario Ejemplo: Renombrar la cadena de usuario llamada cadena_1 por el nombre de cadena_2 iptables -E cadena_1 cadena_2 2.4.2.2. Modificar Reglas. -A, --append [chain] rule-specification target Aadir una nueva regla a una cadena. Ejemplo:
AREA DE TRANSFERENCIA DE CONOCIMIENTOS

23

SEGURIDAD EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Aadir una nueva regla en la cadena INPUT iptables -A INPUT --sport 53 -j ACCEPT -I , --insert [chain] [rulenum] rule-specification target Insertar una nueva regla en alguna posicin de la cadena. Ejemplo: Insertar una nueva regla en la posicin 1 de la cadena INPUT iptables -I INPUT 1 --dport 80 -j ACCEPT -D , --delete [chain] rule-specification target -D , --delete [chain] [rulenum] Borrar una o ms reglas de la cadena seleccionada. Hay dos versiones de este comando: la regla se puede especificar como un nmero en la cadena (comenzar en 1 para la primera regla) o coincida hacia una regla. Ejemplo: Eliminar una regla especifica en la cadena INPUT. iptables -D INPUT --dport 80 -j ACCEPT Eliminar una regla especifica en la posicin 1 de la cadena INPUT. iptables -D INPUT 1 -R, --replace [chain] [rulenum] rule-specification target Reemplazar una regla dentro de una cadena. Ejemplo: Reemplazar una regla especifica en la posicin 1 de la cadena INPUT iptables -R INPUT 1 -s 192.168.1.2 -j DROP -h Descripcin de la sintaxis de los comandos. Ejemplo: iptables -h iptables help 2.4.2.3. Opciones Las opciones de listado son las siguientes: -v, --verbose Muestra informacin de las opciones en forma detallada para cada regla. (Ver Figura 16)
AREA DE TRANSFERENCIA DE CONOCIMIENTOS

24

SEGURIDAD EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Ejemplo: Listar informacin detallada de cada regla en la cadena INPUT iptables -L INPUT -v

Figura 16. Listado de informacin de las opciones de una regla

-n, --numeric Esta opcin permite que direcciones IP y puertos se imprima en formato numrico. Por omisin, el programa tratar de demostrarlos como nombres de host, nombres de la red, o nombres de servicios cuando sea aplicable. En la Figura 17 se muestra un listado de regla en formato numrico. Ejemplo: Listar las reglas de la cadena INPUT en formato numrico. iptables -L INPUT -v -n

Figura 17. Listado de regla en formato numrico

-line-numbers

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

25

SEGURIDAD EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Enumera las reglas. Resulta til si desea borrar o modificar reglas atendiendo a su nmero de posicin. En la Figura 18 la opcin num indica el nmero de posicin de una regla. Ejemplo: Enumerar las reglas de la cadena INPUT. iptables -L INPUT -n --line-numbers

Figura 18. Listado del nmero de posicin de una regla

-x, --exact Muestra valores exacto de los contadores de paquete y bytes, en lugar de los nmeros redondeados en Ks. (los mltiplos de 1000) Ms (los mltiplos de 1000K) o Gs (los mltiplos de 1000M). Esta opcin es slo aplicable con el comando -L . Ejemplo: iptables -L -x 2.4.3. Comparacin

Los parmetros siguientes componen una regla especfica. -s, --source [ ! ] address [ / mask ] La opcin -s o --source especfica el origen o fuente del paquete; address es la direccin IP origen de donde provienen los paquetes que se puede indicar de la siguiente manera: Nombre de host completo (www.linux.org). Direccin IP ( 200.10.41.142 ). Direccin de red /mscara o address [ /mask] (192.168.1.0/255.255.255.0). Un "!" argumento antes de la direccin IP, por ejemplo ( -s ! 192.168.1.3 ) especifica paquetes que no provenga de la direccin IP 192.168.1.3 o todo excepto paquetes que proviene de la direccin IP 192.168.1.3. Ejemplo:
AREA DE TRANSFERENCIA DE CONOCIMIENTOS

26

SEGURIDAD EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Salir todos los paquetes que no provenga de la direccin IP 192.168.1.3 iptables -A OUTPUT -s ! 192.168.1.3 -j ACCEPT -d, --destination [ ! ] address [ / mask ] La opcin -d o --destination especifica el destino de los paquetes; address es la direccin IP destino, se considera la misma descripcin de la sintaxis usado en el parmetro anterior. Ejemplo: Salir todos los paquetes que no vayan a la direccin IP 192.168.1.4 iptables -A OUTPUT -d ! 192.168.1.4 -j ACCEPT -p, --protocol [ ! ] protocol Especifica el protocolo TCP, UDP, ICMP o si no se indica el protocolo entonces todos los paquetes se verificaran. Este parmetro ignora maysculas o minsculas, con lo cual tcp o TCP es lo mismo. El nombre del protocolo puede ir prefijado de un ! argumento a ntes del protocolo, de manera que por ejemplo ( -p ! TCP ) especifica paquetes que no sean TCP o todo excepto paquetes TCP. Ejemplo : Denegamos la entrada de paquetes ICMP que tenga como destino la direccin IP 192.168.1.1 iptables -A INPUT -p icmp -s 0/0 -d 192.168.1.1 -j DROP -j, --jump target Especifica el objetivo de la regla; en otras palabras, qu hacer si el paquete coincide con la regla. El objetivo tambin puede ser una cadena definida por el usuario, una de las formas de objetivos especiales la cual decide el destino del paquete inmediato o una extensin (vase en la seccin de extensiones de objetivos). Si esta opcin es omitida en la regla entonces la coincidencia de la regla puede no tener efecto en el destino del paquete, pero los contadores en esta regla se irn incrementando. -i, --in-interface [ ! ] name La opcin -i o --in-interface es para indicar el nombre (name) de la interface de entrada por la que se recibe el paquete (slo para paquetes que entran a las cadenas INPUT, FORWARD y PREROUTING). Cundo el "!" argumento se usa antes del nombre de una interface de entrada, el sentido se invierte. Si esta opcin se omite cualquier nombre de interface coincide. Ejemplo: Ingresar todos los paquetes por la interface eth0 iptables -A INPUT -i eth0 -j ACCEPT
AREA DE TRANSFERENCIA DE CONOCIMIENTOS

27

SEGURIDAD EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

-o, --out-interface [ ! ] name La opcin -o --out-interface es para indicar el nombre (name) de una interface de salida por la que se enva el paquete (solo para paquetes que salen por las cadenas FORWARD, OUTPUT y POSTROUTING). Cundo el "!" argumento se usa antes del nombre de una interface de salida, el sentido se invierte. Si esta opcin se omite, cualquier nombre de interface coincide. Ejemplo: Salir todos los paquetes por la interface eth0 iptables -A OUTPUT -o eth0 -j ACCEPT [ ! ] -f, --fragment Hace referencia a paquetes fragmentados que se origina en paquetes que son demasiado extensos como para transmitirlo de una sola vez, siendo necesario dividirlos en fragmentos y enviarlos como si fuesen mltiples paquetes. El primer fragmento del paquete viene con la

cabecera completa ( IP + Protocolo) lo cual es posible examinarlo, pero el resto de los fragmentos solo vienen con una parte de la cabecera del paquete ( con la IP pero sin la parte de los protocolos) por lo tanto no podemos filtrar los fragmentos segn el protocolo. Ejemplo: Elimine todos los paquetes fragmentados que vayan a la direccin IP (192.168.1.1) iptables -A INPUT -f -d 192.168.1.1 -j DROP -c, --set-counters PKTS BYTES Habilita al administrador a inicializar los contadores de paquete y byte de una regla (durante las operaciones INSERT, APPEND y REPLACE ). Ejemplo: Reemplazar una regla especifica en la posicin 1 de la cadena INPUT inicializando los contadores el nmero de paquetes a 20 y 384 bytes de tamao. iptables -R INPUT 1 -s 192.168.1.3 -c 20 384 -j DROP Extensiones

Existe una serie de parmetros que se aaden con el comando iptables por medio de extensiones que pueden ir como mdulos o como libreras de iptables.

Las Extensiones son de dos tipos: Las que aaden nuevas coincidencias (matches) Las que aaden nuevos objetivos (targets)
28
SEGURIDAD EN REDES GNU/LINUX

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Extensiones de coincidencia (matches)

IPTables puede usar mdulos de extensin de coincidencias de paquetes. Estos se cargan de dos maneras: implcitamente cuando se especifica -p o --protocol, o explcitamente con las opciones -m o --match, seguido por el nombre del mdulo de coincidencia; despus de esto varias opciones extras de comando de lnea llegan a ser disponible, dependiendo de el mdulo especificado. Usted puede usar mltiples mdulos de extensin de coincidencia en una lnea y tambin utilizar las opciones de ayuda -h o --help despus que el mdulo se ha especificado para recibir ayuda de un determinado mdulo.
1. Coincidencias Implcitas

Esta seccin describir las coincidencias implcitas que se cargan automticamente cuando especificamos con la opcin -p o --protocol. Hay actualmente tres tipos de coincidencias implcitas para tres diferentes protocolos. Esta son las coincidencias TCP, coincidencias UDP y coincidencias ICMP. Las coincidencias TCP se basan porque contiene un conjunto de diferentes coincidencias que estn disponibles slo para paquetes TCP. y las coincidencias UDP se basan porque contienen otro conjunto de coincidencias que estn disponibles slo para paquetes UDP. Y lo mismo sucede para los paquetes ICMP. tcp Estas extensiones se cargan si se especifica --protocol tcp. opciones: --sport, --source-port [ ! ] port [ :port ] La opcin --sport o --source-port especifica un puerto o rango de puertos origen. Estos Proporciona las siguientes

pueden estar representados por el nombre del servicio o nmero del puerto. Inclusive un rango de puertos se puede especificar usando el formato port [: port]. Si el primer puerto se omite se asume 0, si el ltimo puerto se omite se asume 65535. Ejemplo: Denegar todos los paquetes tcp que vayan a la direccin IP 192.168.1.1 y que tenga como puertos de origen desde 1024 al 65535. iptables -A OUTPUT -p tcp --sport 1024:65535 -d 192.168.1.1 -j DROP --dport , --destination-port [ ! ] port [ :port ]
AREA DE TRANSFERENCIA DE CONOCIMIENTOS

29

SEGURIDAD EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

La opcin --dport o --destination-port especifica un puerto o rango de puertos destino. Se considera la misma descripcin de la sintaxis usado en el parmetro anterior. Ejemplo : Denegar todos los paquetes TCP que vayan hacia los puertos destino desde el puerto 5000 al 5010. iptables -A FORWARD -p tcp --dport 5000:5010 -j DROP --tcp-flags [ ! ] mask comp Permite filtrar paquetes TCP considerando sus indicadores flags a travs de este parmetro existe dos argumentos. El primer argumento es la mscara ( mask), es una lista de los indicadores flags que queremos examinar y el segundo argumento ( comp), es una lista de los indicadores flags que deben estar activos. En la cabecera TCP existen una serie de indicadores flags: SYN: Indica solicitud conexin ACK: Aceptacin del Paquete RST: Reinicia una conexin existente PSH: Envo de paquete sin esperar confirmacin del paquete anterior URG: Da mayor prioridad al paquete FIN: Cerrar una conexin ALL: Considera todos los indicadores flags ( SYN,ACK,FIN,RST,URG,PSH ) NONE: Ningn indicador flags Ejemplo: Todos los paquetes que ingrese con los indicadores SYN y ACK activos sern descartados. iptables -A INPUT -p tcp --tcp-flags ALL SYN,ACK -j DROP [ ! ] --syn Solo paquetes TCP que coincida con el bit SYN establecido y los bits ACK y FIN limpios Tales paquetes se usan para solicitar la iniciacin de la conexin TCP. Por ejemplo, bloquear los paquetes que ingresa por la interface prevendr de conexiones entrantes TCP, pero no afectarn las conexiones salientes TCP. Es equivalente a la opcin de coincidencia --tcp-

flags SYN, RST, ACK SYN. Si el "!" precede al flag --syn, el sentido de la opcin se invierte. Ejemplo : Bloquear solicitudes de conexin (paquetes tcp con el indicador SYN activo) de servidores web externos hacia la mquina cliente siendo su direccin IP (192.168.1.1) iptables -A FORWARD -p tcp ! --syn --sport 80 -d 192.168.1.1 -j ACCEPT udp
AREA DE TRANSFERENCIA DE CONOCIMIENTOS

30

SEGURIDAD EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Estas extensiones se cargan si se especifica --protocol udp. opciones: --sport, --source-port [ ! ] port [ :port ]

Proporciona las siguientes

Especifica un puerto o rango de puertos origen. Ver la descripcin de la opcin source-port de la extensin TCP para mas detalle. --dport, --destination-port [ ! ] port [ :port ] Especifica un puerto o rango de puertos destino. icmp Estas extensiones se cargan si se especifica --protocol icmp. Proporciona las siguientes opciones: --icmp-type [!] typename Esto permite especificar el tipo de ICMP, que puede ser un tipo numrico ICMP o el nombre de un tipo ICMP mostrado por el comando. iptables -p icmp -h Tipos de Mensajes ICMP

Lista de mensajes ICMP ms habituales como se muestra en la Tabla 5.

TIPO 0 8 3

Nombre Echo-reply Echo-request destination unreachable

Descripcin Una respuesta ping Una peticin ping Un mensaje de estado de error general. Un enrutador a lo

largo de la trayectoria hasta el destino es incapaz de entregar el paquete. Tabla 5. Descripcin de los mensajes ICMP

Ejemplo : Denegar paquetes icmp de mensajes de peticin ping a la mquina 192.168.1.2

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

31

SEGURIDAD EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

iptables -A INPUT -p icmp --icmp-type 8 -d 192.168.1.2 -j DROP


2. Coincidencias explcitas

Las coincidencias explcitas son coincidencias que deben ser cargados especficamente con la opcin -m o match. mac Se especifica de forma explicita con m mac o match mac. Se usa para coincidencias en las direcciones MAC origen usado en redes Ethernet y solo es vlido para los paquetes que pasan por las cadenas INPUT, FORWARD y PREROUTING.

--mac-source [ ! ] address La opcin --mac-source indica la direccin MAC en notacin decimal separada por : es la direccin de hardware asignado por el fabricante del dispositivo de red. Ejemplo: Denegar todos los paquetes que entran de la direccin MAC 00:4F:4E:02:43:B3 con destino hacia la direccin IP 192.168.1.1 iptables -A INPUT -m mac --mac-source 00:4F:4E:02:43:B3 -d 192.168.1.1 -j DROP state Interpreta el anlisis de conexin de red del mdulo ip_conntrack al buscar los estados de conexin de los paquetes. --state state Donde state es una lista separada de estados de conexin a coincidir Hay actualmente 4 posibles estados INVALID (INVALIDO) , ESTABLISHED (ESTABLECIDO) , NEW (NUEVO) y RELATED (RELACIONADO). INVALID Paquete que no est asociado a ninguna conexin conocida y que puede contener datos o cabeceras (headers) defectuosos. ESTABLISHED Paquete que se asocia a una conexin existente NEW Paquete que crea una nueva conexin RELATED

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

32

SEGURIDAD EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Paquete que crea una nueva conexin pero asociado a una conexin existente, tal como una transferencia de datos FTP o un error ICMP. Ejemplo: Denegar el ingreso de nuevas conexiones desconocidas hacia la mquina 192.168.1.3 iptables -A INPUT -p tcp -m state --state NEW, INVALID -d 192.168.1.3 -j DROP 2.4.4. Objetivos

Independientemente de su destino, cuando un paquete cumple una regla en particular en una de las tablas, se asignan a un objetivo (target) particular:

Si la regla especifica un objetivo ACCEPT para un paquete que coincida, el paquete se salta al resto de las verificaciones de la regla y se permite que contine hacia su destino. Si una regla especifica un objetivo DROP, a ese paquete se le niega el acceso al sistema y no se enva nada de vuelta al servidor que envi el paquete. Si una regla especifica el objetivo opcional REJECT, el paquete es entregado, pero se enva un paquete ICMP (mensaje de error) al que envi el paquete. Extensiones de objetivos (targets)

Una extensin de objetivo consiste en un mdulo del ncleo, una extensin opcional a iptables para proporcionar nuevas opciones en la lnea de rdenes. opcin -j seguido el nombre del objetivo. Los objetivos se especifica con la

Existen varias extensiones de objetivos en iptables:

1. LOG

Este mdulo proporciona un registro de los paquetes coincidentes mediante el ncleo. Cundo esta opcin se pone para una regla, el kernel de Linux imprimir alguna informacin de todos los paquetes que coincida con esta regla (mayormente muestra los campos de la cabecera IP) hacia el registro del kernel donde se puede leer con dmesg. Como se muestra en la Figura 16. --log-level nivel Es el nivel de registro expresado en forma numrica o nombre de nivel. En la Tabla 6 se describen los niveles de registro.
AREA DE TRANSFERENCIA DE CONOCIMIENTOS

33

SEGURIDAD EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Nro. 0 1

Nivel EMERG ALERT

Descripcin El sistema est inutilizable Debe tomarse una accin correctora

inmediatamente 2 3 4 5 6 7 Ejemplo: Registrar en el nivel de informacin todos los paquetes que pasen por la cadena INPUT. iptables -A INPUT -j LOG --log-level 6 CRIT ERR WARNING NOTICE INFO DEBUG Condiciones crticas Condiciones de error Condiciones de advertencia Condicin normal, pero significativa Mensaje informativo Mensaje del nivel de depuracin
Tabla 6. Niveles de registro

Figura 19. Muestra un registro del firewall guardado en /var/log/messages

En la siguiente Tabla 7 se da una breve descripcin de los mensajes de registros del firewall: Apr 21 16:51:18 server01 kernel: IN=eth0 OUT= MAC= Fecha y hora en que se registro y nombre de host del equipo firewall Interface donde se recibi el paquete Interface por donde fue enviado el paquete El destino MAC= 00:04:75:f5:32:fa,

00:01:02:e8:a7:9b:00:04:75: La fuente MAC= 00:01:02:e8:a7:9b, f5:32:fa:08:00 SRC=216.136.204.117 DST=192.168.1.67 LEN=60 Tipo = 08:00 (Indica el fame ethernet que lleva un datagrama IPv4 ) Direccin IP origen Direccin IP destino Longitud total del paquete IP en byte

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

34

SEGURIDAD EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

TTL=44

El Tiempo de Vida del paquete es el mximo nmeros de saltos ( es decir enrutadores visitados) que quedan antes de que el paquete caduque

ID=31526

Identificacin nica para este datagrama IP, compartido por todos los fragmentos si es fragmentado

DF PROTO=TCP

La bandera DF indica que no es un fragmento. El nombre o nmero del protocolo. Netfilter usa los nombres para TCP, UDP, ICMP, AH y ESP. Otros protocolos son identificados por el nmero. Una lista est en /etc/protocols.

SPT=80 DPT=32796 ACK=0

Puerto Origen (TCP y UDP). Puerto Destino (TCP y UDP). Recibe el mismo nmero de secuencia, pero para el final de la otra conexin TCP

URGP=0

El Puntero de Urgente se habilita para una urgente, transferencia de datos. Desafortunadamente no todas los protocolos que se implementa agregan esta facilidad casi nunca se usa.
Tabla 7. Descripcin de los mensajes de registro del firewall

--log-prefix prefijo Seguido de una cadena de hasta 30 caracteres, que corresponde a un texto que se escribe al comienzo de cada log (registro), para permitir que sean identificados. Ejemplo: Usando el ejemplo anterior agregamos un comentario que diferencia de los dems registro del sistema. iptables -A INPUT -j LOG --log-level 6 --log-prefix Nivel de Informacin REJECT

2.

El objetivo REJECT es equivalente a usar el objetivo DROP con la salvedad que devuelve un mensaje de error ICMP hacia el host que envi el paquete que se bloque. Solo es valido en las cadenas INPUT, FORWARD, OUTPUT y cadenas definidas por el usuario que solo se llaman de estas cadenas.

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

35

SEGURIDAD EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

--reject-with <tipo de mensaje> Esta opcin dice al objetivo REJECT que enve una respuesta hacia el host que mand el paquete que se rechaz; una vez que se tiene el paquete que coincide con una regla que hemos especificado con este objetivo, nuestro host primero enva una contestacin asociada y el paquete es descartado. Los siguientes tipos de mensajes ICMP de rechazo son actualmente vlidos: icmp-net-unreachable, icmp-host-unreachable, icmp-port-unreachable (por defecto), icmp-proto-unreachable, icmp-net-prohibited y icmp-host-prohibited. Ejemplo: Rechazar todos los hosts que soliciten conectarse hacia el puerto 1863. iptables -A OUTPUT -p tcp --dport 1863 -j REJECT --reject-with icmp-host-unreachable Por ltimo est la opcin tcp-reset que slo se puede usar con el protocolo TCP. La opcin tcp-reset dir a REJECT para enviar un paquete TCP RST en contestacin hacia el host que envi el paquete. Los paquetes TCP RST se usan para cerrar conexiones abiertas. Ejemplo: Rechazar todos los hosts que enve solicitud de conexin con destino al puerto 22 iptables -A FORWARD -p tcp --dport 22 -j REJECT --reject-with tcp-reset TTL

3.

El objetivo TTL es usado para modificar el campo Tiempo de Vida (TTL) en la cabecera (header) del paquete IP. Una aplicacin til que cambia todos los valores TTL a un mismo valor en todos los paquetes salientes. Una razn para hacer esto es si usted tiene un ISP que no permite que tenga ms de una mquina conectado hacia una misma conexin de Internet y que siga esto activamente. Al poner todo los valores TTL a un mismo valor, lo har efectivo en un pequeo bit de la cabecera para ello notificar que usted est haciendo esto. Nosotros entonces podemos poner el valor de TTL para todos los paquetes salientes a un valor estandarizado, tal como 64 como especifica en el Kernel de Linux. El objetivo TTL slo es vlido en la tabla mangle. --ttl-set La opcin --ttl-set dice al objetivo TTL que valor TTL debe poner en el paquete. bueno sera alrededor 64. Un valor

No poner este valor demasiado alto, porque puede afectar a su

red, el paquete puede comenzar que rebote de aqu para all entre dos routers configurados y ms el valor TTL alto, ms el ancho de banda se consume innecesariamente. Este objetivo se podra usar para limitar cundo muy lejos son nuestros clientes. Un caso bueno de esto podra ser servidores DNS, donde nosotros no queremos a los clientes que estn demasiado lejos.
AREA DE TRANSFERENCIA DE CONOCIMIENTOS

36

SEGURIDAD EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Ejemplo: Todos los paquetes que ingrese por la interface de entrada antes de ser encaminados hacia su destino se tomar la accin que cada paquete su valor TTL debe ser igual a 64. iptables -t mangle -A PREROUTING -i eth0 -j TTL --ttl-set 64 2.5. Traduccin de direcciones de red NAT

Network Address Translation (Traduccin de direcciones de red o enmascaramiento IP); el proceso de sustituir una direccin de origen local de un paquete con la de un firewall, de forma que permanezcan ocultas las direcciones IP de la LAN. El paquete parece proceder de un firewall en lugar de una mquina interna de la LAN. El proceso se invierte para paquetes de repuesta entrantes desde servidores remotos. La direccin destino del paquete, la direccin IP de la

mquina firewall, se sustituye con la direccin de la mquina cliente en la LAN interna.

Las siguientes extensiones de objetivos se aplican en la tabla nat: 2.5.1. SNAT

El objetivo SNAT es usado para hacer la Traduccin de Direcciones origen de la red, significa que este objetivo reordenar la direccin IP origen y puerto origen en la cabecera del paquete IP. Por ejemplo, cuando varios servidores tienen que compartir una conexin de Internet. Nosotros

entonces podemos aplicar reenvo de paquetes IP (IP forwarding) en el kernel y escribir una regla de SNAT que traducir todos los paquetes saliendo de nuestra red local al IP origen de nuestra propia conexin de Internet. Esto permite que todos los paquetes que salen de nuestra LAN sean miradas como si ellos vengan de un solo servidor, que sera nuestra firewall o cortafuegos.

Figura 20. SNAT


AREA DE TRANSFERENCIA DE CONOCIMIENTOS

37

SEGURIDAD EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

El objetivo SNAT es vlido en la tabla nat, dentro de la cadena POSTROUTING. Esto en otras palabras la nica cadena en que usted puede usar SNAT. Especifica que la direccin origen del paquete se debe modificar (y todos los paquetes futuros en esta conexin se modificarn tambin). Se aplica con una de las siguientes opciones: --to-source ipaddr Especifica una sola direccin IP origen nueva y se asume cualquier puerto origen --to-source ipaddr-ipaddr Rango de direcciones IP origen

--to-source ipaddr: port Se aplica a una sola direccin IP y puerto origen nuevo, esta opcin es vlida si la regla que coincide especifica el protocolo UDP o TCP. --to-source ipaddr-ipaddr: port-port Se aplica a un rango de direcciones IP y puertos origen nuevo, esta opcin es vlida si la regla que coincide especifica el protocolo UDP o TCP. Ejemplo: Se tiene una mquina firewall que consta de una interface de red interna (eth1) siendo su direccin IP (172.16.1.1) que permite acceder a la red local 172.16.1.0/16 y otra interface de red externa (eth0) cuya direccin IP (192.168.1.4) por donde sale a Internet a travs de un router. Implementar una regla que permita enmascarar la salida de los paquetes que proviene de la red local hacia Internet a travs del firewall. iptables -t nat -A POSTROUTING -s 172.16.1.0/16 -o eth0 -j SNAT \ --to source 192.168.1.4 2.5.2. DNAT

El objetivo DNAT es usado para hacer la Traduccin de Direcciones destino de la red, significa que este objetivo reordenar la direccin IP destino y puerto destino en la cabecera del paquete IP.

Este objetivo puede ser til, por ejemplo cuando usted tiene un servidor Web dentro de una LAN privada, pero ninguna IP pblica asignada para que accedan desde Internet. Usted entonces

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

38

SEGURIDAD EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

podra decir al firewall para reenviar todos los paquetes que van a su propio puerto HTTP, hacia el servidor Web verdadero dentro de la LAN privada.

Figura 21. DNAT

El objetivo DNAT es vlido dentro de las cadenas PREROUTING y OUTPUT en la tabla nat y en las cadenas definidas por el usuario que slo se llaman desde cualquiera de estas listas de cadenas. Se aplica con una de las siguientes opciones: --to-destination ipaddr Especifica una sola direccin IP destino nuevo y se asume cualquier puerto origen --to-destination ipaddr-ipaddr Rango de direcciones IP destino --to-destination ipaddr: port Se aplica a una sola direccin IP y puerto destino nuevo, esta opcin es vlida si la regla que coincide especifica el protocolo UDP o TCP. --to-destination ipaddr-ipaddr:port-port Se aplica a un rango de direcciones IP y puertos destino nuevo, esta opcin es vlida si la regla que coincide especifica el protocolo UDP o TCP. Ejemplo: Se tiene una mquina firewall que consta de una interface de red interna (eth1) siendo su direccin IP (172.16.1.1) que permite acceder a la red local, donde pertenece el servidor Web con direccin IP (172.16.1.3) y otra interface de red externa (eth0) con direccin IP (192.168.1.4) por donde sale a Internet a travs de un router. Implementar una regla que permita al servidor Web
AREA DE TRANSFERENCIA DE CONOCIMIENTOS

39

SEGURIDAD EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

enmascarar su externos.

salida hacia Internet a travs del firewall para que puedan acceder clientes

iptables -t nat -A PREROUTING -i eth0 -p tcp -d 192.168.1.4 --dport 80 -j DNAT \ --to-destination 172.16.1.3:80 2.5.3. MASQUERADE

El objetivo MASQUERADE permite a un conjunto de mquinas de la red interna acceder transparentemente a Internet ocultas tras el firewall, la cual aparece como el nico sistema que est usando Internet. La razn de esto es que para el objetivo MASQUERADE se hizo para trabajar como por ejemplo, con conexiones dial-up, o las conexiones DHCP que obtienes

direcciones IP dinmicas al preguntar cuando conectar hacia la red. Esto significa que usted slo debe usar el objetivo MASQUERADE cuando al firewall se le ha asignado una IP dinmica, que no se sabe la direccin IP verdadera en todo tiempo. Si usted tiene una conexin IP esttica, usted debera en su lugar usar el objetivo SNAT. Este objetivo es vlido dentro de la cadena POSTROUTING en la tabla nat as como el objetivo SNAT. El objetivo MASQUERADE toma una opcin especfica que es opcional: --to-ports port :port La opcin --to-ports se usa para definir el puerto o puertos origen a usar en paquetes salientes. Tambin puede especificar un solo puerto como --to-ports 1025 o un rango de puertos como --toports 1024-3000. Esta opcin es vlida si la regla que coincide especifica el protocolo UDP o TCP. Ejemplo: Implementar una regla que permita enmascarar todos los paquetes de la red privada 172.16.1.0/8 que salen por un enlace ppp0 hacia Internet. iptables -t nat -A POSTROUTING -o ppp0 -s 172.16.1.0/8 -j MASQUERADE 2.5.4. REDIRECT

Este objetivo slo es vlido en la tabla nat, en la cadena PREROUTING, OUTPUT y cadenas definida por el usuario, es un caso concreto del DNAT que nos permite redireccionar al puerto que queramos que los paquetes nos lleguen por un determinado puerto. --to-ports port :port Esta opcin especifica un puerto o rangos de puertos destino. Esto es vlido si la regla especifica tambin los protocolos TCP o UDP.
AREA DE TRANSFERENCIA DE CONOCIMIENTOS

40

SEGURIDAD EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Ejemplo: Todos los paquetes que ingresen por la interface eth0 con destino al puerto 1863 sean redirigidos hacia el puerto 3128. iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 1863 -j REDIRECT --to-ports 3128 2.6. Implementacin de un servidor Firewall

Se Implementar un Firewall que proteja a los clientes de una red local cuando acceden a Internet. (Ver figura 22)

Figura 22. Esquema de firewall tpico entre red local e Internet.

En la Figura 22 se puede apreciar una mquina firewall que consta de una interface de red interna (eth1) que se accede a la red local (LAN) y otra interface de red externa (eth0) que permite salir a Internet a travs de un router.

Se establecer restricciones de acceso a servicios externos y slo se habilitarn a ciertos servicios (Web, Mail, DNS, etc.) para que accedan los clientes de la red local.

A continuacin se indica los pasos a seguir para construir un firewall de filtrado de paquetes:

1. Instalar la aplicacin iptables que se puede descargar en http://www.netfilter.org o tambin se

encuentra en paquete binario rpm.

Ejemplo: rpm -ihv iptables-version.i586.rpm

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

41

SEGURIDAD EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

2. Se Habilita el parmetro del kernel ip_forward esto permite a la mquina firewall realizar el

reenvo de paquetes, tambin se incluye otros parmetros relacionado con la seguridad del sistema. Se configura en el archivo sysctl.conf ubicado en el directorio /etc. (Ver Figura 23)

Figura 23. Lista de parmetros configurados en el archivo sysctl.conf

3. Se crea un archivo script llamado firewall.sh, donde se implementaran las reglas de filtrado y

enmascaramiento IP, solo el administrador del sistema podr modificar estas reglas. Como se muestra en la Figura 24.

Figura 24. Creacin del archivo script y asignacin de privilegios al administrador del sistema

4. Se define las variables que comprende las interfaces de la mquina firewall, la direccin IP de

los servidores de Nombres asignado por su proveedor de Internet, la direccin de red y mscara de subred de la red privada LAN y otras variables que son constantes definidas en los
AREA DE TRANSFERENCIA DE CONOCIMIENTOS SEGURIDAD EN REDES GNU/LINUX

42

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

estndares de redes (red privada clase A, red privada clase B, etc) que sern usadas al crear las reglas de filtrado en el servidor de seguridad firewall como se muestra en la Figura 25.

Figura 25. Lista de variables definidas usadas en las reglas de filtrado

5. Se elimina las reglas existentes en las tablas filter, NAT y cadenas definidas por el usuario, as

como tambin poner los contadores de paquetes y bytes a cero. Como se puede apreciar en la Figura 26.

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

43

SEGURIDAD EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Figura 26. Eliminando reglas existentes y poner los contadores de paquetes y bytes a cero

6. Se define la poltica de seguridad en cada cadena en denegar todo. (Ver Figura 27)

Figura 27. Definicin de la Poltica de Seguridad.

7. Se habilita la interface de bucle invertido, esto permite ejecutar cualquier servicio de red o

aquellos de los que depende el sistema, por ejemplo los servicios basados en redes locales como el sistema X Window. Las siguientes reglas que se agregan en las cadenas INPUT y OUTPUT es para aceptar paquetes de la direccin loopback como se muestra en la Figura 28.

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

44

SEGURIDAD EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Figura 28. Reglas para habilitar la direccin loopback

8. Estas reglas permite rechazar paquetes invlidos que intenta ingresar por la interface externa

de la mquina firewall. (Ver Figura 29)

Figura 29. Reglas para rechazar paquetes invlidos

9. Las siguientes reglas permiten eliminar paquetes malformados que no tienen ningn indicador

activo. (Ver Figura 30)

Figura 30. Reglas que eliminan paquetes malformados.

10. Se habilita reglas como se muestra en la Figura 31 para eliminar paquetes fragmentados

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

45

SEGURIDAD EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Figura 31. Eliminar paquetes fragmentados

11. Las siguientes reglas que se muestra en la Figura 32 permite habilitar el ingreso de paquetes

por la interface externa del firewall que slo provenga de conexiones existente y paquetes relacionado a privada. conexiones establecidas, excepto los paquetes que dicen venir de la red

Figura 32. Reglas que habilita el ingreso a paquetes asociados a conexiones existentes.

12. A continuacin se crea una nueva cadena de usuario llamada rule_eth1, donde se agregan

reglas que permitan la salida de paquetes provenientes de mi LAN por la interface interna eth1 de la mquina firewall, slo paquetes que generan nuevas conexiones y pertenezcan a conexiones existentes. (Ver Figura 33)

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

46

SEGURIDAD EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Figura 33. Creando una cadena de usuario y agregando reglas de filtrado.

13.

La siguiente regla que se muestra en la Figura 34, se aplica NAT para los paquetes que provienen de la red interna al salir por la interface externa eth0, de modo que aparente venir los paquetes de la mquina firewall.

Figura 34. Aplicando NAT a los paquetes provenientes de la red interna

Filtrar ataques Spoofing

14. En la Figura 35 se muestra reglas que permiten denegar el ingreso y salida por la interface

externa del firewall paquetes que dicen provenir o ir a la direccin IP pblica del firewall, direccin IP interna, as como de las redes privadas clase A y clase B.

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

47

SEGURIDAD EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Figura 35. Reglas para filtrar ataques Spoofing

15. Se habilita reglas como se muestra en la Figura 36 para denegar el ingreso y salida por la

interface externa del firewall paquetes que dicen provenir o ir al intervalo de direcciones de clase C, clase D y clase E, la direccin loopback, direccin destino de difusin (255.255.255.255) y direccin origen de difusin ( 0.0.0.0).

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

48

SEGURIDAD EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Figura 36. Reglas para filtrar ataques Spoofing

Filtrar paquetes ICMP

16. En la Figura 37 se habilitan reglas para aceptar paquetes ICMP del tipo de mensaje de control

Source Quench, se envan cuando un origen de conexin, normalmente un enrutador, est enviando datos a una velocidad mayor que la del siguiente enrutador destino puede manejar.

Figura 37. Reglas para aceptar paquetes ICMP del tipo de mensaje de control Source Quench

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

49

SEGURIDAD EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

17. Las siguientes reglas permite aceptar paquetes ICMP del tipo de mensaje de estado

Parameter Problem, se enva cuando se recibe un paquete que contiene datos ilegales. (Ver Figura 38)

Figura 38. Reglas para aceptar paquetes ICMP del tipo de mensaje de estado Parameter Problem.

18. Las siguientes reglas que se muestra en la Figura 39, permite aceptar paquetes ICMP del tipo

de mensaje de error Destination Unreachable, es el que se enva en respuesta a un intento de un hacker de asignar sus puertos de servicio, se recomienda permitir salir estos mensajes ICMP con el cdigo de subtipo Port Unreachable.

Figura 39. Reglas para aceptar paquetes ICMP del tipo de mensaje Destination Unreachable.

Mensajes de control ping Echo Request (Tipo 8) y Echo Reply (Tipo 0)

19. Las siguientes reglas permite desde el firewall hacer ping a cualquier hosts de Internet pero no

de Internet a la mquina firewall. (Ver Figura 40)

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

50

SEGURIDAD EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Figura 40. Reglas que permite hacer ping desde el Firewall a Internet.

20. Habilitar par de reglas que permite hacer ping desde el firewall a la red privada pero no de la

red privada hacia el firewall. (Ver Figura 41)

Figura 41. Reglas que permite hacer ping desde el Firewall a la red privada

21. Las siguientes reglas permiten hacer ping desde la red privada a Internet pero no de Internet

hacia la red privada. (Ver Figura 42)

Figura 42. Reglas que permite hacer ping desde la red privada a Internet.

22. Reglas que permiten a los clientes de la red privada tener acceso a Servidores DNS externos

para resolver consultas de nombres de hosts. En la Figura 43 se muestra las reglas que permiten a los clientes conectarse solamente a servidores DNS de su proveedor de Internet.

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

51

SEGURIDAD EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Figura 43. Reglas que permiten a los clientes de la red privada tener acceso a servidores DNS

23. Las siguientes reglas permite a la mquina Firewall tener acceso a Servidores DNS externos

para resolver consultas de nombres de hosts. En la Figura 44 se muestra las reglas que permiten al Firewall tener acceso solamente a servidores DNS de su proveedor de Internet.

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

52

SEGURIDAD EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Figura 44. Reglas que permiten al Firewall tener acceso a servidores DNS externos

24. Se habilita a los clientes de la red privada tener acceso a servidores Web externos. En la

Figura 45 se implementa dos reglas, en donde en la segunda regla se acepta solo paquetes provenientes de servidores Web externos que no tenga el indicador SYN de solicitud conexin, solo el cliente de la red privada pueden solicitar conexin a servidores externos.

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

53

SEGURIDAD EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Figura 45. Reglas que permite a los clientes de la red privada conectarse a servidores Web externos

25. Habilita a la mquina firewall conectarse a servidores Web externos. En la Figura 46, se crea

dos reglas la primera regla permite salir por la cadena OUTPUT paquetes generados localmente que crean nuevas conexiones y pertenecen a conexiones establecidas, la segunda regla permite ingresar por la cadena INPUT slo paquetes que provienen de servidores Web externos que pertenezcan a conexiones establecidas entre la mquina firewall y el servidor Web.

Figura 46. Reglas que habilita al Firewall conectarse a servidores Web externos

26. Las siguientes reglas permite a los clientes de la red privada conectarse a servidores SMTP.

En la Figura 47, la primera regla permite al firewall reenviar paquetes proveniente de la red privada que tenga como destino a servidores SMTP, la segunda regla permite solo el ingreso de paquetes que provengan de servidores externos SMTP que no tenga el indicador SYN activo ms conocidos como paquetes SYN, para luego ser reenviados por la mquina firewall con destino a la red privada.

Figura 47. Reglas que permite a clientes de la red privada conectarse a servidores SMTP

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

54

SEGURIDAD EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

27. En la Figura 48 se implementa dos reglas con las mismas caractersticas del anterior ejemplo

que permite a los clientes de la red privada conectarse a servidores de entrega de correo POP.

Figura 48. Reglas que permite a clientes de la red privada conectarse a servidores POP.

28. Las siguientes reglas que se muestra en la Figura 49, permiten a los clientes de la red privada

conectarse a servidores de entrega de correo IMAP.

Figura 49. Reglas para que los clientes se puedan conectar a servidores IMAP.

29. En la Figura 50, se define las tareas de la sentencia stop donde se elimina todas las reglas

generadas en las cadenas filter, nat y cadenas definidas por el usuario, as como cambiar la poltica en cadena de aceptar todo.

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

55

SEGURIDAD EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Figura 50. Se elimina las reglas de filtrado y se cambia las polticas definidas en cada cadena

30. En la Figura 51 se define la sentencia status para listar las reglas que se implementaron en

cada cadena de filtrado de paquetes.

Figura 51. Lista las reglas de filtrado de las cadenas INPUT, FORWARD y OUTPUT

31. En la Figura 52, la siguiente estructura de sentencias define las opciones que usara el archivo

script firewall.sh para iniciar la implementacin de reglas (start), remover reglas (stop), listar reglas (status) as como remover y generar reglas de filtrado (restart).

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

56

SEGURIDAD EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Figura 52. Estructuras que define las opciones usadas por el archivo script firewall.sh

32. Ahora iniciamos la implementacin de reglas ejecutando el archivo script firewall.sh como se

muestre en la Figura 53.

Figura 53: Ejecutando el archivo script firewall.sh

33. En la Figura 54 se d un ejemplo como visualizar las reglas que existen en la cadena INPUT

de la tabla filter.

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

57

SEGURIDAD EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Figura 54. Lista de reglas de la cadena INPUT

Terminado la configuracin de iptables en nuestro servidor de seguridad firewall, para que el archivo script firewall.sh se ejecute automticamente cada vez que reiniciamos nuestro sistema escribiremos la secuencia de ejecucin en el archivo script usado por el sistema llamado /etc/rc.d/rc.local como se muestra en la Figura 55.

Figura 55: Archivo script rc.local del sistema

Existe otra herramienta de iptables que permiten guardar todas las reglas habilitadas en nuestro firewall en un archivo. En la Figura 56, se da un ejemplo usando la herramienta iptables-save para guardar las reglas de filtrado en un archivo llamado filename.
AREA DE TRANSFERENCIA DE CONOCIMIENTOS

58

SEGURIDAD EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Figura 56: Manejo de la herramienta iptables-save

Donde la opcin -c permite guardar los contadores del nmero de paquetes y bytes que se activaron en cada regla.

Se genera con la herramienta iptables-save a travs de un operador de salida (>) el archivo filename, en la Figura 57 se muestra el contenido de este archivo.

Figura 57. Contenido del archivo filename generado con la herramienta iptables-save

Para restaurar las reglas que se guardaron en el archivo filename se usa la herramienta iptablesrestore como se muestra en la Figura 58.

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

59

SEGURIDAD EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Figura 58: Manejo de la herramienta iptables-restore para restaurar las reglas de filtrado

2.7. Actividades del Mdulo

2.7.1.

Autoevaluacin

1. Qu tipo de mensaje ICMP corresponde a una respuesta de ping? a. b. c. d.

echo-request redirect time-exceeded echo-reply

2. Qu parmetro del kernel se habilita para el reenvi de paquetes? a. b. c. d.

ip_autoconfig ip_default_ttl ip_forward tcp_syncookies

3. Cules son las cadenas de la tabla filter? a. POSTROUTING, OUTPUT y INPUT b. OUTPUT,FORWARD y PREROUTING c. PREROUTING, OUTPUT y POSTROUTING d. INPUT, OUTPUT y FORWARD

4. Qu opcin de iptables lista informacin detallada de cada regla en una determinada cadena? a. b. c. d.

--list --verbose --flush numeric

5. Qu tipo de extensiones se cargan cuando se especifica el parmetro --protocol tcp? a.

--state
60
SEGURIDAD EN REDES GNU/LINUX

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

b. c. d.

--tcp-flags --dport sport

6. Cules son las cadenas de la tabla nat? a. b. c. d.

INPUT, OUTPUT y FORWARD PREROUTING, OUTPUT y POSTROUTING OUTPUT,FORWARD y PREROUTING FORWARD, POSTROUTING y PREROUTING

7. Cules son los posibles estados de conexin de los paquetes? a. b. c. d.

Established, New, Related y Reject Invalid, Related, Redirect y Established New, Established, Related e Invalid Invalid, Replace, New y Established

8. Qu parmetro de configuracin del kernel se habilita como mdulo para realizar el filtrado de

paquetes?
a. b. c. d.

CONFIG_IP_NF_NAT CONFIG_IP_NF_IPTABLES CONFIG_IP_NF_FILTER CONFIG_IP_NF_CONNTRACK

9. Cul es el objetivo que se aplica a una determinada regla que permita enmascarar todos los

paquetes que proviene de una red privada que salen por un enlace ppp0 con destino a Internet?
a. b. c. d.

SNAT REDIRECT MASQUERADE DNAT

10. Qu opcin de iptables crea una cadena de definida por el usuario? a. b. c. d.

--rename-chain --delete-chain --new-chain --append

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

61

SEGURIDAD EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

2.7.2.

Laboratorio

Experiencia practica 1.- Crear reglas de filtrado de paquetes

Duracin 30 minutos Objetivos Brindar al participante en aprender el manejo de la herramienta iptables y el uso de las opciones de comando de lnea para crear sus propias reglas de filtrado de paquetes. Recursos a utilizar Una PC que tenga dos interface de red por alumno con Linux distribucin (RedHat 9.0 o Deban 3.0 ) tener instalado la herramienta iptables y los archivos fuentes del kernel. Ejecucin de la Prctica I Crear las siguientes reglas de filtrado: - Cambiar la poltica de seguridad de cada cadena de la tabla filter - Para acceder a servidores DNS y Web - Para acceder a servidores Web seguros (puerto 443). - Conectarse a un servidor BD Mysql (puerto 3306). - Solicitudes auth de entrada (puerto 113). - Para aceptar paquetes icmp del tipo de mensaje Time Exceded (Tipo 11). - Para hacer ping a hosts de Internet pero no de Internet a mi mquina. Experiencia practica 2.- Instalacin de un servidor firewall

Duracin 45 minutos Objetivos Brindar al participante las recomendaciones y procedimiento a seguir para implementar un servidor firewall en Linux. Recursos a utilizar Una PC que tenga dos interface de red por alumno con Linux distribucin (RedHat 9.0 o Deban 3.0 ) tener instalado la herramienta iptables y los archivos fuentes del kernel. Ejecucin de la Prctica II
AREA DE TRANSFERENCIA DE CONOCIMIENTOS

62

SEGURIDAD EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Las siguientes reglas deben habilitarse en la mquina firewall para proteger la red privada con salida a Internet. - Habilitar parmetros relacionado con la seguridad del sistema. Rechazar a responder a solicitudes broadcast Proteccin de Cookie TCP SYN Proteccin contra malos mensajes de error Habilitar el reenvi de paquetes - Cambiar la poltica de seguridad predeterminada en la tabla de filtrado - Reglas para habilitar la direccin loopback - Reglas para rechazar paquetes invlidos - Denegar paquetes malformados - Denegar paquetes fragmentados - Habilitar el ingreso de paquetes asociados a conexiones existentes - Filtrar contra ataques Spoofing - Filtrar mmensajes de control Echo Request (Tipo 8) y Echo Reply (Tipo 0) - Aplicar NAT a los paquetes que proviene de la red local que salen a Internet a travs del firewall - Habilitar a clientes de la red privada enviar solicitud de consulta a servidores DNS. - Permitir a los clientes de la red privada conectarse a servidores Web - Permitir a los clientes de la red privada conectarse a servidores SMTP - Guardar las reglas usando el comando iptables-save - Restaurar las reglas con el comando iptables-restore 2.8. Bibliografa

Textos.

Linux Firewalls (2da. Edicin), autor: Robert L. Ziegler, Publicado por: New Riders Securing and Optimizing Linux: The Ultimate Solution version: 2.0, autor : Gerhard Mourani, Publicado por : Open Network Architecture, Inc., Ultima version : 2001-06-10

Enlaces.

http://www.netfilter.org Contiene informacin surtida sobre iptables, incluyendo una lista FAQ que responde a problemas especficos y otras guas tiles por Rusty Russell, el mantenedor del firewall de Linux IP. Los documentos HOWTO en el sitio cubren temas tales como conceptos bsicos de redes, filtrado de paquetes del kernel 2.4 y configuraciones NAT.

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

63

SEGURIDAD EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

www.justlinux.com/nhf/Secutity/Iptables-Basics.html iptables.

Contiene

informacin

bsica

sobre

http://iptables-tutorial.frozentux.net/iptables-tutorial.html Contiene informacin en ingls sobre iptables escrita por Oskar Andreasson.

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

64

SEGURIDAD EN REDES GNU/LINUX