IPTables: Filtrado de paquetes en Linux -...

22
Seguridad Informárica IPTables Dr. Roberto Gómez Cárdenas 1 Dr. Roberto Gómez Lámina 1 IPTables: Filtrado de paquetes en Linux Roberto Gómez Cárdenas [email protected] http://homepage.cem.itesm.mx/rogomez Dr. Roberto Gómez Lámina 2 Netfilter/IPTables Las dos piezas principales de producto firewall disponibles gratuitamente para distribuciones Linux IPTables es usado para construir las reglas. Netfilter es puente entre núcleo linux y las IPTables IPTables es como se conoce al módulo Netfilter herramienta estándar actual de firewall de Linux Administradores especifican que reglas que protocolos o tipos de tráficos se deben seguir. cuando empieza conexión con protocolos IPTables añade una entrada de estado para la conexión en cuestión

Transcript of IPTables: Filtrado de paquetes en Linux -...

Page 1: IPTables: Filtrado de paquetes en Linux - cryptomex.orgcryptomex.org/SlidesSeguridad/Herra4-IPTables.pdf · – herramienta estándar actual de firewall de Linux ... tipos de tráficos

Seguridad Informárica IPTables

Dr. Roberto Gómez Cárdenas 1

Dr. Roberto GómezLámina 1

IPTables: Filtrado de paquetes en Linux

Roberto Gómez Cárdenas [email protected]

http://homepage.cem.itesm.mx/rogomez

Dr. Roberto GómezLámina 2

Netfilter/IPTables

• Las dos piezas principales de producto firewalldisponibles gratuitamente para distribuciones Linux

• IPTables es usado para construir las reglas.

• Netfilter es puente entre núcleo linux y las IPTables

• IPTables es como se conoce al módulo Netfilter– herramienta estándar actual de firewall de Linux

• Administradores especifican que reglas que protocolos o tipos de tráficos se deben seguir.– cuando empieza conexión con protocolos IPTables añade una

entrada de estado para la conexión en cuestión

Page 2: IPTables: Filtrado de paquetes en Linux - cryptomex.orgcryptomex.org/SlidesSeguridad/Herra4-IPTables.pdf · – herramienta estándar actual de firewall de Linux ... tipos de tráficos

Seguridad Informárica IPTables

Dr. Roberto Gómez Cárdenas 2

Dr. Roberto GómezLámina 3

Las tres tablas de IPTables y suscadenas de base

Tabla filter Tabla nat Tabla mangle

PREROUTING

INPUT

FORWARD

OUTPUT

POSTROUTING

PREROUTING

OUTPUT

POSTROUTING

INPUT

FORWARD

OUTPUT

Dr. Roberto GómezLámina 4

Las tablas de IPTables

• Tabla constituida de un numero arbitrario e ilimitado de cadenas

• Una cadena es una secuencia lineal de reglas

• Las reglas estas constituidas por– un patrón: reconocer paquetes de acuerdo a un

número indeterminado de criterios

– una acción (llamado target) a tomar en caso de reconocer el paquete

Page 3: IPTables: Filtrado de paquetes en Linux - cryptomex.orgcryptomex.org/SlidesSeguridad/Herra4-IPTables.pdf · – herramienta estándar actual de firewall de Linux ... tipos de tráficos

Seguridad Informárica IPTables

Dr. Roberto Gómez Cárdenas 3

Dr. Roberto GómezLámina 5

Seleccionando la tabla

• Cada regla a añadir a IPTables necesita insertarse o adjuntarse en una cadena de alguna de las tres tablas.– tablas disponibles depende configuración núcleo.

• Opción -t comando iptables permite elegir la tabla

– si no se propociona la regla será insertada en la tabla “filter” que es la tabla por defecto.

iptables -t filter -A INPUT --source 192.168.0.1 -j DROP

Dr. Roberto GómezLámina 6

Las cadenas

• Dos tipos de cadenas– cadenas de base (builtin): cadenas por dafault de la tabla

– cadenas usuario: cadenas creadas a partir de las necesidadespropias del administrador

• Cadenas de base existen siempre y estan asociadas a unatabla

• Cada tabla posee sus cadenas propias asociadas a los hooks que trabajan

• Cuando paquete entra en una tabla es enviado a la cadena de base asociada a la tabla actual

Page 4: IPTables: Filtrado de paquetes en Linux - cryptomex.orgcryptomex.org/SlidesSeguridad/Herra4-IPTables.pdf · – herramienta estándar actual de firewall de Linux ... tipos de tráficos

Seguridad Informárica IPTables

Dr. Roberto Gómez Cárdenas 4

Dr. Roberto GómezLámina 7

Cadenas usuario

• Cadena creada sobre demanda

• Se envia los paquetes especificando su nombre comocriterio de acción– se dice que la cadena llama la cadena usario

• Paquete la atraviesa como una cadena de base: una regladespues de la otra

• Si paquete llega al final de la cadena, o encuentra la acción RETURN este regresa a la cadena donde fuellamada

iptables -t filter -A INPUT --source 192.168.0.1 -j CADENA_TOTO

Dr. Roberto GómezLámina 8

Ejemplo llamada cadena usuario

1. Regla2. Regla3. Regla[…]15. … -j user16 Regla… 1. Regla

2. Regla3. Regla[…]15. … -j RETURN[…]

10. Regla

INPUT FORWARD OUTPUT

1. Regla2. … -j user3. Regla…

1. … -j user2. Regla…

Page 5: IPTables: Filtrado de paquetes en Linux - cryptomex.orgcryptomex.org/SlidesSeguridad/Herra4-IPTables.pdf · – herramienta estándar actual de firewall de Linux ... tipos de tráficos

Seguridad Informárica IPTables

Dr. Roberto Gómez Cárdenas 5

Dr. Roberto GómezLámina 9

Acciones por default

• Cadenas de base cuentan con una política por default• Cuando paquete llega al final de una cadena es posible

aplicarle una acción por default• Acciones posibles: DROP o ACCEPT• Ejemplo

• Cadenas usuario no cuentan con política por default

iptables -P INPUT DROPiptables -P FORWARD DROPiptables -P OUTPUT ACCEPT

Dr. Roberto GómezLámina 10

Operaciones manejo cadenas usuario

-N crear una nueva cadena usuario-X borrar una cadena vacía -P cambiar la política por default de una cadena base -L listar las reglas de una cadena usuario-F vaciar las reglas de una cadena usuario-Z poner a cero el contador de paquete y de byte en todas las

reglas en una cadena -E vieja nueva:renombra la cadena vieja a la cadena nueva

iptables [ –t tabla ] comando

Page 6: IPTables: Filtrado de paquetes en Linux - cryptomex.orgcryptomex.org/SlidesSeguridad/Herra4-IPTables.pdf · – herramienta estándar actual de firewall de Linux ... tipos de tráficos

Seguridad Informárica IPTables

Dr. Roberto Gómez Cárdenas 6

Dr. Roberto GómezLámina 11

Manipulación reglas dentro cadenas

-A añadir una nueva regla a una cadena

-I Insertar una nueva regla en alguna posición en una cadena

-R Reemplazar una regla en alguna posición en una cadena

-D Anular una regla en alguna posición en una cadena

-D Anular la primera regla que se cumple en una cadena

iptables comando [match] [ objetivos / saltos]

Dr. Roberto GómezLámina 12

Ejemplo alta de regla

• Un ping normal y un ping bloqueado

# ping -c 1 127.0.0.1PING 127.0.0.1 (127.0.0.1): 56 data bytes64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.2 ms

--- 127.0.0.1 ping statistics ---1 packets transmitted, 1 packets received, 0% packet lossround-trip min/avg/max = 0.2/0.2/0.2 ms

# iptables -A INPUT -s 127.0.0.1 -p icmp -j DROP# ping -c 1 127.0.0.1

PING 127.0.0.1 (127.0.0.1): 56 data bytes

--- 127.0.0.1 ping statistics ---1 packets transmitted, 0 packets received, 100% packet loss

#

Page 7: IPTables: Filtrado de paquetes en Linux - cryptomex.orgcryptomex.org/SlidesSeguridad/Herra4-IPTables.pdf · – herramienta estándar actual de firewall de Linux ... tipos de tráficos

Seguridad Informárica IPTables

Dr. Roberto Gómez Cárdenas 7

Dr. Roberto GómezLámina 13

Ejemplo borrando regla

• Podemos borrar la regla de dos maneras.

• Primero, como es la única regla en la cadena, podemos usar un borrado por número:

• La segunda manera es repetir la orden –A– pero cambiando -A por -D.

– útil cuando se tiene una compleja cadena de reglas y no se quiere invertir tiempo en saber que número regla es

# iptables -D INPUT 1#

# iptables -D INPUT -s 127.0.0.1 -p icmp -j DROP#

Dr. Roberto GómezLámina 14

Construcción de una regla

• Una regla se divide en cuatro partes– una tabla de aplicación de la cadena

• filter si no se precisa ninguna

– una cadena de aplicación

– un patrón de reconocimiento

– una acción representando la decisión a tomar

patrón de reconocimiento accióntabla cadena

-t filter -A input -p tcp -s 192.168.10.2 -sport 1024 -dport 21 -j ACCEPT

Page 8: IPTables: Filtrado de paquetes en Linux - cryptomex.orgcryptomex.org/SlidesSeguridad/Herra4-IPTables.pdf · – herramienta estándar actual de firewall de Linux ... tipos de tráficos

Seguridad Informárica IPTables

Dr. Roberto Gómez Cárdenas 8

Dr. Roberto GómezLámina 15

El patron de reconocimiento

• Paquete es comparado con un patron de reconocimiento• Patrón compuesto de un número variable de critérios, de

acuerdo la finesa deseada• Algunas opciones están implementadas directamente en

el código de iptables, mientras que otras opciones más complejas necesitan cargar los módulos necesarios en el núcleo para estar disponibles.

• La disponibilidad de estas opciones extendidas depende de la configuración del núcleo

Dr. Roberto GómezLámina 16

Las acciones

• Define que hacer si paquete cumple con regla. • El objetivo se define con la opción:

– j <target> [target-options] • al final de la regla.

• Hay dos tipos de reglas, terminales y no terminales. • Si un objetivo es terminal, el paquete no pasará a

otras reglas al cumplir con esta.– por ejemplo: DROP

• Un ejemplo de regla no terminal es LOG– le dice al núcleo de escribir en el registro del sistema

(syslog) los paquetes que verifican esta regla.

Page 9: IPTables: Filtrado de paquetes en Linux - cryptomex.orgcryptomex.org/SlidesSeguridad/Herra4-IPTables.pdf · – herramienta estándar actual de firewall de Linux ... tipos de tráficos

Seguridad Informárica IPTables

Dr. Roberto Gómez Cárdenas 9

Dr. Roberto GómezLámina 17

Acciones más comunes

• ACCEPT– dejar el paquete pasar

• DROP– tirar el paquete

• QUEUE– pasar el paquete a espacio usuario (si esta soportado porel

nucleo)

• RETURN– regreso a la cadena que activo la llamada

• LOG, ULOG– almacenamiento en bitacora

Dr. Roberto GómezLámina 18

Otras acciones

• DNAT– Destination Network Address Translation

• MARK– marcar valores que estan asociadaos con paquetes en específico

• MASQUERADE– direcciones DHCP, igual que SNAT

• MIRROR– invertir campos fuente y destino en el encabezado IP

• REDIRECT– redireccionar paquetes y streams a la misma máquina}

• SNAT– Source Network Address Translation

• TOS– asignar valor del campo Type of Service

• TTL– modificar valor el Time To Live en el encabezado IP

Page 10: IPTables: Filtrado de paquetes en Linux - cryptomex.orgcryptomex.org/SlidesSeguridad/Herra4-IPTables.pdf · – herramienta estándar actual de firewall de Linux ... tipos de tráficos

Seguridad Informárica IPTables

Dr. Roberto Gómez Cárdenas 10

Dr. Roberto GómezLámina 19

Criterios patrón reconocimiento

• Las principales criterios de patrón de reconocimientopara formar una regla son– s: indica un dominio o IP (rango de Ips) de origen sobre

el que se evalúa la condición de la regla– d: igual anterior, solo que sobre dirección destino– i: interfaz entrada para aplicar regla– o: interfaz salida sobre la que se aplica la regla– p: especifica el protocolo del datagrama a analizar

valores válidos: tcp, udp o icmp, o un número– f para tratar con paquetes fragmentados– ! invierte el valor lógico de la condición de regla

Dr. Roberto GómezLámina 20

La IP origen y destino

• La dirección puede ser el nombre de una red, el de un servidor, una dirección de red IP (con la máscara adjunta), o una simple dirección IP.– nota: especificar un nombre que tenga que resolverse con una

consulta remota a un DNS es una mala idea

• La máscara puede ser una máscara de red o bien un simple número.– p.e. la máscara 24 equivale a 255.255.255.

• El comando ! antes de la dirección sirve para invertir el sentido de la dirección.

• El argumento --src es un alias para esta opción.

Page 11: IPTables: Filtrado de paquetes en Linux - cryptomex.orgcryptomex.org/SlidesSeguridad/Herra4-IPTables.pdf · – herramienta estándar actual de firewall de Linux ... tipos de tráficos

Seguridad Informárica IPTables

Dr. Roberto Gómez Cárdenas 11

Dr. Roberto GómezLámina 21

Ejemplos direcciones

iptables -A INPUT --source 12.168.120.15 -j ACCEPTiptables -A INPUT --src 12.168.120.15 -j ACCEPT

iptables -A INPUT --destination ! 32.112.0.31/24 -j ACCEPTiptables -A INPUT --dst ! 32.112.0.31/24 -j ACCEPT

La especificación de la direccion destino es similar en uso a la de origen.

Dr. Roberto GómezLámina 22

El protocolo

• El protocolo puede ser tcp, udp, icmp, o todos– puede ser un valor numérico, que represente estos o

algún otro protocolo.

• También es válido cualquier nombre de protocolo incluido en /etc/protocol.

• Argumento ! anterior al protocolo invierte la prueba.

• Número cero es equivalente a todos los protocolos.

• El protocolo ̈all¨(todos) es el que se usa por defecto cuando esta opción no aparece.

• Ejemplos:iptables -A INPUT --protocol tcp -j ACCEPT

iptables -A INPUT --protocol ! udp -j LOG

Page 12: IPTables: Filtrado de paquetes en Linux - cryptomex.orgcryptomex.org/SlidesSeguridad/Herra4-IPTables.pdf · – herramienta estándar actual de firewall de Linux ... tipos de tráficos

Seguridad Informárica IPTables

Dr. Roberto Gómez Cárdenas 12

Dr. Roberto GómezLámina 23

Verificando campos encabezado paquetes TCP

• sport– puerto origen del datagrama, posible especificar rango indicando limites

superior e inferior (“:”)

• dport– igual que anterior solo que puerto destino

• tcp-flags [!] mascara comp– especifica si las bandareas de estan activas

• syn– regla verifica que bit SYN valga 1 y los bits ACK y FIN valgan ambos 0,

abreviatura de tcp-flags SYN,RST,ACK SYN

• tcp-option [!] <numero>– verica si la opcion TCP esta activa

• mss <valor>[:valor]– paquetes TCP SYN o SYN/ACK con el valor MSS especificado (o en el

rango)

Dr. Roberto GómezLámina 24

Verificando encabezados protocolos UDP e ICMP

• Extensiones UDP--sport puerto origen del datagrama-- dport puerto destino del datagrama

• Extensiones ICMP-- icmp-type especificar tipo mensaje ICMP tanto

por su número como por los siguientes indicadores: echo-request, echo-reply, source-quench, time-exceeded, destination-unreachable, network-unreachable, host-unreachable, protocol-unreachable y port-unreachable

Page 13: IPTables: Filtrado de paquetes en Linux - cryptomex.orgcryptomex.org/SlidesSeguridad/Herra4-IPTables.pdf · – herramienta estándar actual de firewall de Linux ... tipos de tráficos

Seguridad Informárica IPTables

Dr. Roberto Gómez Cárdenas 13

Dr. Roberto GómezLámina 25

Verificando puerto origen/destino

• El puerto origen-destino o un rango de puertos. • Se puede poner un nombre de servicio o un número

de un puerto. • También se puede poner un intervalo, poniendo

puerto:puerto. • Si se omite el primer puerto, se asume el valor "0" . • Si se omite el segundo, se supone el valor 65535.

iptables -A INPUT --protocol tcp --source-port 22:12 -j LOGiptables -A POSTROUTING --protocol tcp --destination-port ! 21232 -j DROP

Dr. Roberto GómezLámina 26

Extensión de aplicar a Múltiples Puertos (Multiport Match)

• Esta extensión permite definir una lista de hasta 15 puertos en una regla TCP o UDP cualquiera.

• Esto sirve para ahorrar algo de escritura al especificar más de un puerto por regla.

iptables -A INPUT --protocol tcp --match multiport --source-ports 22,21,20,80 -j LOGiptables -A INPUT --protocol udp --match multiport --destination-ports 20,80,10 -j LOGiptables -A INPUT --protocol tcp --match multiport --ports 20,50,1660 -j LOG

Page 14: IPTables: Filtrado de paquetes en Linux - cryptomex.orgcryptomex.org/SlidesSeguridad/Herra4-IPTables.pdf · – herramienta estándar actual de firewall de Linux ... tipos de tráficos

Seguridad Informárica IPTables

Dr. Roberto Gómez Cárdenas 14

Dr. Roberto GómezLámina 27

Verificando banderas TCP`

• Cuenta con dos argumentos– tcp-flags [!] mask comp

• Primer argumento son las banderas a examinar– escritas como una lista separadas por coma

• Segundo argumento es una lista separada porcomas de las banderas que deberian estar activas

• Banderas: – SYN ACK FIN RST URG PSH ALL NONE

• Si se desea invertir la regla, se debe usar !

iptables -A INPUT --protocol tcp --tcp-flags ! SYN,ACK,FIN SYN,ACK -j LOGiptables -A FORWARD --p tcp --tcp-flags SYN,ACK,FIN,RST SYN

Dr. Roberto GómezLámina 28

Interfaz de entrada/salida

• Nombre de la interfaz por medio de la cual se va a recibir un paquete – sólo para los paquetes que entran en las cadenas INPUT,

FORWARD y PREROUTING. • Para invertir el sentido de la regla, poner "!" delante

del nombre de la interfaz. • Si el nombre de la interfaz termina con "+",

entonces la regla se aplicará a cualquier interfaz que comience con este nombre.

• Si se omite esta opción, entonces se aplicará a cualquier interfaz.

iptables -A INPUT --in-interface eth0 -j LOGiptables -A OUTPUT --out-interface ! ippp1 -j DROP

Page 15: IPTables: Filtrado de paquetes en Linux - cryptomex.orgcryptomex.org/SlidesSeguridad/Herra4-IPTables.pdf · – herramienta estándar actual de firewall de Linux ... tipos de tráficos

Seguridad Informárica IPTables

Dr. Roberto Gómez Cárdenas 15

Dr. Roberto GómezLámina 29

Dirección MAC de origen

• Se aplica a la dirección MAC de origen.

• Tiene que tener la forma XX:XX:XX:XX:XX:XX.– Notar que esta regla sólo se aplica para paquetes que

vengan de una interfaz Ethernet y que entren en las cadenas INPUT, FORWARD o PREROUTING.

• Esta opción es muy útil como protección contra ataques de persona-en-el-medio, – es posible combinarla con la opción --source y así dar

protección contra arp-spoofing.

iptables -A INPUT --match mac --mac-source 12:E4:86:FA:5C:54 -j ACCEPT

Dr. Roberto GómezLámina 30

Stateful Firewalls

• Firewalls que intentan dar seguimiento a una conexión cuando se tiene filtrado de paquetes.

• Se pueden considerar entre un filtro de paquetes y un proxie.

• Predominantemente examinan capa 4 e información paquetes más baja– frecuentemente verifican solo capa 7 (aplicación)

• Si paquete coincide con regla del firewall que permite su paso, se crea una entrada en la tabla de estados– paquetes posteriores de la misma conexión son permitidos sin

realizar más inspecciones

Page 16: IPTables: Filtrado de paquetes en Linux - cryptomex.orgcryptomex.org/SlidesSeguridad/Herra4-IPTables.pdf · – herramienta estándar actual de firewall de Linux ... tipos de tráficos

Seguridad Informárica IPTables

Dr. Roberto Gómez Cárdenas 16

Dr. Roberto GómezLámina 31

Host to Network Layer

Host to Network Layer

Internet LayerInternet Layer

Transport LayerTransport Layer

Application LayerApplication Layer

Host to Network Layer

Host to Network Layer

Host to Network Layer

Host to Network Layer

Internet LayerInternet LayerInternet LayerInternet Layer

Transport LayerTransport LayerTransport LayerTransport Layer

Application LayerApplication LayerApplication LayerApplication Layer

Inspección Stateful

Host to Network Layer

Host to Network Layer

Internet LayerInternet Layer

Transport LayerTransport Layer

Application LayerApplication Layer

Host to Network Layer

Host to Network Layer

Host to Network Layer

Host to Network Layer

Internet LayerInternet LayerInternet LayerInternet Layer

Transport LayerTransport LayerTransport LayerTransport Layer

Application LayerApplication LayerApplication LayerApplication Layer

Host to Network Layer

Host to Network Layer

Internet LayerInternet Layer

Transport LayerTransport Layer

Application LayerApplication Layer

Host to Network Layer

Host to Network Layer

Host to Network Layer

Host to Network Layer

Internet LayerInternet LayerInternet LayerInternet Layer

Transport LayerTransport LayerTransport LayerTransport Layer

Application LayerApplication LayerApplication LayerApplication Layer

Inspect EngineInspect Engine

IP Source IP Dest. Port Source Port Dest. Num. Seq. …

Dynamic State Table

New connection?

Packet part of an existing connection

in connections table?Reject packet

Pass packet

Compare connection to

rule base

Accept or reject?

Add connection to connections

table

NO NO

YESYES

ACCEPT

REJECT

New connection?

Packet part of an existing connection

in connections table?Reject packet

Pass packet

Compare connection to

rule base

Accept or reject?

Add connection to connections

table

NO NO

YESYES

ACCEPT

REJECT

Dr. Roberto GómezLámina 32

Concepto de estado

• Concepto confuso – puede tener diferentes significados en diferentes situaciones

• Definición básica– la condición en que se encuentra una determinada sesión de

comunicación

• Diferentes vendedores dan una definición diferente de lo que es un estado.

• Dispositivos que dan seguimiento a un estado lo hacen a través de una tabla.– tabla mantiene entradas de lo que representa una sesión de

comunicación individual.

Page 17: IPTables: Filtrado de paquetes en Linux - cryptomex.orgcryptomex.org/SlidesSeguridad/Herra4-IPTables.pdf · – herramienta estándar actual de firewall de Linux ... tipos de tráficos

Seguridad Informárica IPTables

Dr. Roberto Gómez Cárdenas 17

Dr. Roberto GómezLámina 33

Valores estado de un paquete

• INVALID – el paquete no esta asociado a ninguna conexión

• ESTABLISHED – el paquete esta asociado con una conexión que ha

intercambiado paquetes en ambas direcciones, • NEW

– significa que el paquete ha comenzado una conexión• RELATED

– significa que el paquete ha comenzado una conexión, pero que esta está asociada a una conexión ya existente, como por ejemplo una transferencia de datos vía FTP, o un error ICMP.

iptables -A INPUT --match state --state RELATED,ESTABLISHED -j ACCEPT

Dr. Roberto GómezLámina 34

Ejemplo reglas salida y regreso

• Ejemplo de regla de salida– define que tráfico puede salir a través firewall

– comunicación aceptada, (opción –j)– tráfico nuevo (NEW) y establecido (ESTABLISHED) es

permitido

• Ejemplo de regreso

– idéntico al anterior solo que es una regla de entrada y que solo se permite tráfico de conexiones establecidas

iptables –A OUTPUT –p tcp –m state - - state NEW, ESTABLISHED-j ACCEPT

iptables –A INPUT –p tcp –m state - - state ESTABLISHED -j ACCEPT

Page 18: IPTables: Filtrado de paquetes en Linux - cryptomex.orgcryptomex.org/SlidesSeguridad/Herra4-IPTables.pdf · – herramienta estándar actual de firewall de Linux ... tipos de tráficos

Seguridad Informárica IPTables

Dr. Roberto Gómez Cárdenas 18

Dr. Roberto GómezLámina 35

Ejemplos UDP e ICMP

• Ejemplo de UDP básico

• Ejemplo de ICMP

– diferencia principal: la opción –p y la entrada RELATED de la opción - -state

iptables –A OUTPUT –p udp –m state - - state NEW, ESTABLISHED -j ACCEPT

iptables –A INPUT –p udp –m state - - state ESTABLISHED -j ACCEPT

iptables –A OUTPUT –p icmp –m state - - state NEW, ESTABLISHED, RELATED -j ACCEPT

iptables –A INPUT –p icmp –m state - - state ESTABLISHED, RELATED -j ACCEPT

Dr. Roberto GómezLámina 36

TOS: Tipo de Servicio

• Este módulo se usa para examinar los 8 bits del campo Tipo de Servicio en la cabecera del paquete IP (se incluyen los bits de precedencia).

• El argumento a corresponder es o bien un nombre estándar, o un valor numérico.

• Lanzar iptables -m tos -h para ver la lista de nombres permitidos.

iptables -A INPUT --match tos --tos Minimize-Delay -j ACCEPT

iptables -A INPUT --match limit --limit 2/hour --limit-burst 10 -j LOG

Page 19: IPTables: Filtrado de paquetes en Linux - cryptomex.orgcryptomex.org/SlidesSeguridad/Herra4-IPTables.pdf · – herramienta estándar actual de firewall de Linux ... tipos de tráficos

Seguridad Informárica IPTables

Dr. Roberto Gómez Cárdenas 19

Dr. Roberto GómezLámina 37

Previniendo algunos ataques

• Protección contra Syn-flood (inundación mediante Syn):

• Furtivo buscando puertos (port scanner):

• Ping de la muerte:

# iptables -A FORWARD -p tcp --syn -m limit 1/s -j ACCEPT

# iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit 1/s -j ACCEPT

# iptables -A FORWARD -p icmp --icmp-type echo-request -m limit 1/s -j ACCEPT

Dr. Roberto GómezLámina 38

Ejemplos otras opciones

• especificar cualquier dirección IP, se debe usar «/0», de esta manera:

• Descartar todo fragmento dirigido a 192.168.1.1:

• Deben examinar todos los indicadores («ALL» es sinónimo de «SYN,ACK,FIN,RST,URG,PSH»), pero sólo deben estar activos SYN y ACK.

# iptables -A INPUT -s 0/0 -j DROP#

# iptables -A OUTPUT -f -d 192.168.1.1 -j DROP#

# iptables -A INPUT --protocol tcp --tcp-flags ALL SYN,ACK -j DENY#

Page 20: IPTables: Filtrado de paquetes en Linux - cryptomex.orgcryptomex.org/SlidesSeguridad/Herra4-IPTables.pdf · – herramienta estándar actual de firewall de Linux ... tipos de tráficos

Seguridad Informárica IPTables

Dr. Roberto Gómez Cárdenas 20

Dr. Roberto GómezLámina 39

Bitácoras

• Acción LOG• Regresa información sobre los paquetes, como

encabezados IP y otra informacion– se hace via syslog

• Información puede ser leida con dmesg o de lasbitácoras de syslogd

• Util para verificar que reglas estan actuando sobreciertos paquetes

• Nota: mensajes no se envian a consola a menos syslogdiga lo contrario.

• La acción cuenta con cinco opciones

Dr. Roberto GómezLámina 40

Opciones acción LOG

--log-level– le indica a syslog que nivel usar

iptables -A FORWARD -p tcp -j LOG - -log-level debug--log prefix

– mensajes seran antecedidos por prefixiptables -A INPUT -p tcp -j LOG --log-prefix "INPUT packets"

--log-tcp-sequence– se almacenera los numeros de secuencia TCP

iptables -A INPUT -p tcp -j LOG --log-prefix "INPUT packets"--log-tcp-options

– almacena las diferentes opciones del paquete TCPiptables -A FORWARD -p tcp -j LOG --log-tcp-options

--log-ip-options– almacena las diferentes opciones del paquete IP

iptables -A FORWARD -p tcp -j LOG --log-ip-option

Page 21: IPTables: Filtrado de paquetes en Linux - cryptomex.orgcryptomex.org/SlidesSeguridad/Herra4-IPTables.pdf · – herramienta estándar actual de firewall de Linux ... tipos de tráficos

Seguridad Informárica IPTables

Dr. Roberto Gómez Cárdenas 21

Dr. Roberto GómezLámina 41

Bitácoras con ULOG

• Proporcion manejo de bitacoras a nivel espacio de usuario

• Si un paquete coincide con la regla y la acción ULOG esta activo– información paquete es enviado en multicast con todo el

paquete a través de un socket

• Uno o más procesos en espacio usuario puedensubscribirse a varios grupos de multicast y recibir el paquete.

• Posible enviar logs a bases de datos MySQL y otrasbases de datos.

Dr. Roberto GómezLámina 42

Ejemplos y opciones ULOG

--ulog-nlgroup– indica a donde enviar el paquete

iptables -A INPUT -p TCP --dport 22 -j ULOG - -ulog-nlgroup 2

--ulog-prefix– mismo que prefix en LOG

iptables -A INPUT -p TCP --dport 22 -j ULOG - -ulog-prefix "SSH connection attempt: "

--ulog-cprange– cuantos bytesdel paquete enviar al demonio en modo usuario

iptables -A INPUT -p TCP --dport 22 -j ULOG --ulog-cprange 100

--ulog-qthreshold– bytes paquete a dejar en el núcleo antes de enviarlo al espacio usuario

iptables -A INPUT -p TCP --dport 22 -j ULOG --ulog-qthreshold 10

Page 22: IPTables: Filtrado de paquetes en Linux - cryptomex.orgcryptomex.org/SlidesSeguridad/Herra4-IPTables.pdf · – herramienta estándar actual de firewall de Linux ... tipos de tráficos

Seguridad Informárica IPTables

Dr. Roberto Gómez Cárdenas 22

Dr. Roberto GómezLámina 43

Ejemplo bitácoras

• Indica añadir una regla a la cadena de INPUT (-A INPUT) que verifique los paquetes que vengan de 192.168.1.1 (-s 192.168-1-1) y brinca a la fuente log (-j LOG) con una líneaque empieza con los caracteres Test:

• La bitácora generada es detallada y completa• Un ejemplo sería:

# iptables -A INPUT -s 192.168.1.1 -j LOG -log-prefix Test:#

Test:IN=ppp0 OUT=SRC=192.168.1.1 DST=1.2.3.4LEN=100 TOS=0x00 PREC=0x00TTL=253 ID=0 PROTO=ICMPTYPE=8 CODE=0 ID=56 SEQ=58