Sei sulla pagina 1di 29

Firewall (Iptables)

Universidad de las Ciencias Informáticas


Firewall

Con la gran cantidad de


computadoras accediendo a Internet
desde las casas y los centros de
trabajo; ¿Que nos protege de que
alguien entre en nuestra computadora
o en nuestra red?

La respuesta es el Firewall y sus


servicios.
Firewall
Un firewall es un sistema dedicado que esta
situado entre Internet y la red interna (2
redes).

Esta configurado de manera tal que cada


petición IP:puerto es “revisada”.

Toma las decisiones en base a reglas pre-


escritas
Firewall-Iptables
Linux presenta un subsistema de redes
llamado Netfilter integrado al Kernel. Este
subsistema proporciona filtrado de
paquetes, NAT y servicios de
enmascaramiento IP.

Netfilter es configurado y controlado


mediante la utilidad iptables
Iptables (Esquema del framework)
Puntos de Tablas
filtrado
(Cadenas) filter nat mangle

INPUT x x

OUTPUT x x x

FORWARD x x

PREROUTING x x

POSTROUTING x x
Iptables (flujo del paquete)
Iptables (sintaxis)
iptables -option chain [specification] -j target

option
-A Añadir una regla
-D Borrar una regla
-L –n Listar las reglas
-F Borrar todas las reglas
-P Establecer política
Iptables (sintaxis)
[specification]
-i interface de llegada
-o interface de salida
-p Protocolo de nivel 4
-s IP origen
-d IP destino
--sport puerto origen
--dport puerto destino
-j Que hacer con el paquete
Iptables (sintaxis)
target
ACCEPT: Acepta el paquete
DROP: Se desecha el paquete
REJECT: Idem que DROP pero se genera
un mensaje de error.
DNAT: Dirección destino del paquete debe
ser modificada
SNAT: Dirección origen del paquete debe
ser cambiada.
Iptables (políticas)
Es lo que se hace por defecto con el
paquete si no se encuentra ninguna regla
que coincida con el.

Acciones posibles:
ACCEPT (acción por defecto)
DROP (mas adecuada, pero mas difícil)
Iptables (políticas)
¿Como vemos las políticas activas?

etch:~# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination

Chain FORWARD (policy ACCEPT)


target prot opt source destination

Chain OUTPUT (policy ACCEPT)


target prot opt source destination
Iptables (políticas)

¿Como cambiamos la política por defecto?

etch:~# iptables –t table -P CHAIN DROP


table:
filter, nat, mangle
CHAIN:
INPUT, FORWARD, OUTPUT,
PREROUTING, POSTROUTING
Iptables (políticas)

Cuando se usa la política DROP, se


debe tener en cuenta que también
estamos denegando las conexiones
que se inician en la propia máquina,
así como aquellas que utilizan la
interfaz loopback (127.0.0.1).
Iptables (construir reglas ejemplo)

Supongamos que vamos colocar un


Definir laWeb
servidor política
ena utilizar.
Internet y que ese
servidor sea administrable remotamente
Tener claro los puertos a abrir.
mediante SSH.
Desde y hacia donde se permitirán las
conexiones entrantes y salientes.
Iptables (construir reglas ejemplo)
Conexiones entrantes:
iptables –A INPUT –p tcp --dport 22 –j ACCEPT
iptables –A INPUT –p tcp --dport 80 –j ACCEPT
iptables –A INPUT –j DROP

Conexiones salientes:
iptables –A OUTPUT –p tcp --sport 22 –j ACCEPT
iptables –A OUTPUT –p tcp --sport 80 –j ACCEPT
iptables –A OUTPUT –j DROP
Iptables (ejemplos de reglas)
iptables -t filter -A INPUT -s 10.0.0.2 -p tcp --dport 80
-j ACCEPT
iptables -A INPUT -s 10.0.0.1 -p tcp --dport 22 -j
DROP
iptables -A INPUT -m multiport -p tcp --dport
22,80,443 -j ACCEPT
iptables -A FORWARD -i eth1 -s ! 10.0.0.1 -j DROP

iptables -A OUTPUT -o eth0 -d 10.0.0.0/24 -j DROP


Iptables
Guardando las reglas:
touch firewall_reglas
iptables-save >> firewall_reglas

Editar /etc/network/interfaces y añadir


up iptables-restore < firewall_reglas

update-rc.d firewall defaults 00 99


Iptables
Con iptables podemos:

Hacer seguimiento de las conexiones


Logear las conexiones.
Hacer NAT
 DNAT
 SNAT
Iptables (seguimiento conexiones)

Un firewall que guarda estado es aquel


que es capaz de reconocer a todos los
paquetes pertenecientes a una misma
conexión (tcp). Lo cual es útil si queremos
hacer nuestro firewall mas restrictivo.
Iptables (seguimiento conexiones)
El seguimiento de conexiones el muy útil
cuando se tiene la política DROP activada.

Las conexiones tcp pueden tener 4 estados:


NEW: un paquete que intenta iniciar una
conexión
RELATED: un paquete que es parte de una
conexión
Iptables (seguimiento conexiones)

ESTABLISHED: un paquete que, además


de ser parte de una conexión, indica que
es parte de una conexión establecida
exitosa.
INVALID: un paquete que no es parte de
ninguna conexión.
Iptables (seguimiento conexiones)

iptables –P OUTPUT DROP

iptables -A OUTPUT -m state --state


NEW,ESTABLISHED,RELATED -j ACCEPT
Iptables (-j LOG)
iptables -A INPUT -i eth0 -p tcp --dport 22 -j LOG

iptables -A INPUT -i eth0 -p tcp --dport 22 -j LOG --


log-prefix "Conexion al puerto 22“

Con la acción LOG podremos registrar las


conexiones en el syslog del sistema.

Además podremos agregarle un prefijo.


Iptables (nat)

SNAT y DNAT: Permiten realizar


transformaciones de dirección
(origen y destino) de los paquetes.
Iptables (nat)

iptables -t nat -A POSTROUTING -d 1.1.1.1 -p


tcp --dport 80 -j SNAT --to 2.2.2.2

iptables -t nat -A PREROUTING -d 3.3.3.3 -j


DNAT --to 4.4.4.4

iptables -t nat -A PREROUTING -p tcp --dport


80 -j REDIRECT --to-ports 3128
Ejercicio
Qué tipo de paquetes podría inspeccionar un
firewall para poder controlar los intentos de
conexión? ¿Y para identificar las respuestas?
Ejercicio

Cliente Servidor SSH


IP:10.2.2.2 IP:10.2.2.1
Puerto:1025 Puerto:22

¿Como podemos bloquear las conexiones al


servidor SSH, dejando pasar las del cliente
10.2.2.2 nada más?
Ejercicio

Según la política de seguridad. ¿Cómo impedir que se


hagan conexiones a servidores HTTP externos que
funcionan sobre un puerto distinto del 80?

Potrebbero piacerti anche