Documente Academic
Documente Profesional
Documente Cultură
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
servicios.
es
el
Firewall
sus
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
peticin IP:puerto es revisada.
Toma las decisiones en base a reglas preescritas
Firewall-Iptables
Netfilter es un framework disponible en
el ncleo Linux que permite interceptar y
manipular paquetes de red. Dicho
framework permite realizar el manejo de
paquetes en diferentes estados del
procesamiento.
El componente ms popular construido
sobre
Netfilter
es
iptables,
una
herramienta de cortafuegos que permite
filtrar paquetes, NAT, mantener registros
de log
Funcionamiento Iptables
iptables permite definir reglas acerca de qu
hacer con los paquetes de red. Las reglas se
agrupan en cadenas: cada cadena es una lista
ordenada de reglas. Las cadenas se agrupan en
tablas: cada tabla est asociada con un tipo
diferente de procesamiento de paquetes.
Cada regla especifica qu paquetes la cumplen
(match) y un destino que indica qu hacer con el
paquete si ste cumple la regla. Cada paquete de
red que llega a una computadora o que se enva
desde una computadora recorre por lo menos una
cadena y cada regla de esa cadena se comprueba
con el paquete.
Tablas
filter table (Tabla de filtros) Esta tabla es la
responsable del filtrado (es decir, de bloquear o
permitir que un paquete contine su camino).
INPUT chain (Cadena de ENTRADA) Todos los
paquetes destinados a este sistema atraviesan esta
cadena
OUTPUT chain (Cadena de SALIDA) Todos los
paquetes creados por este sistema atraviesan esta
cadena
FORWARD chain (Cadena de REDIRECCIN) Todos
los paquetes que meramente pasan por este sistema
para ser encaminados a su destino recorren esta
cadena
Tablas
nat table (Tabla de traduccin de direcciones de
red) configura las reglas de reescritura de
direcciones o de puertos de los paquetes. El
primer paquete en cualquier conexin pasa a
travs de esta tabla; los veredictos determinan
como van a reescribirse todos los paquetes de
esa conexin.
PREROUTING chain (Cadena de PRERUTEO) Los
paquetes entrantes pasan a travs de esta
cadena antes de que se consulte la tabla de ruteo
local, principalmente para DNAT (destination-NAT
o traduccin de direcciones de red de destino)
Tablas
POSTROUTING chain (Cadena de POSRUTEO) Los
paquetes salientes pasan por esta cadena
despus de haberse tomado la decisin del ruteo,
principalmente para SNAT (source-NAT o
traduccin de direcciones de redvde origen)
OUTPUT chain (Cadena de SALIDA) Permite hacer
un DNAT limitado en paquetes generados
localmente
Tablas
mangle table (Tabla de destrozo) Esta tabla es
la responsable de ajustar las opciones de los
paquetes, como por ejemplo la calidad de
servicio. Todos los paquetes pasan por esta tabla.
Debido a que est diseada para efectos
avanzados, contiene todas las cadenas
predefinidas posibles
Tablas
filter
INPUT
OUTPUT
FORWARD
nat
mangle
x
x
x
PREROUTING
POSTROUTING
Iptables (sintaxis)
iptables [-t tabla] comando [comparacin (match)]
[objetivo/salto (target/jump)]
comando
-A
-D
-I
-R
-L n
-F
-P
Iptables (sintaxis)
[comparaciones]
-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
Iptables (sintaxis)
target
ACCEPT: Acepta el paquete
DROP: Se desecha el paquete
REJECT: Idem que DROP pero se genera
un mensaje de error.
DNAT: Direccin destino del paquete debe
ser modificada
SNAT: Direccin origen del paquete debe
ser cambiada.
Iptables (polticas)
Es lo que se hace por defecto con el
paquete si no se encuentra ninguna regla
que coincida con el.
Acciones posibles:
ACCEPT (accin por defecto)
DROP (mas adecuada, pero mas difcil)
Iptables (polticas)
Como vemos las polticas activas?
etch:~# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source
destination
Iptables (polticas)
Como cambiamos la poltica por defecto?
etch:~# iptables t table -P CHAIN DROP
table:
filter, nat, mangle
CHAIN:
INPUT, FORWARD, OUTPUT,
PREROUTING, POSTROUTING
Iptables (polticas)
Cuando se usa la poltica DROP, se
debe tener en cuenta que tambin
estamos denegando las conexiones
que se inician en la propia mquina,
as como aquellas que utilizan la
interfaz loopback (127.0.0.1).
Iptables
Guardando las reglas:
touch firewall_reglas
iptables-save >> firewall_reglas
Iptables (nat)
SNAT y DNAT: Permiten realizar
transformaciones
de
direccin
(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
Ejemplos Real
Ejemplos Real
3. A un partner le dejamos usar el ftp
4. Todo lo que venga de la red local y vaya al exterior
ENMASCARAR.
5. No permitir ping al FIREWALL
6. Todo lo que venga al puerto tcp 1 al 1024
DENEGAR
7. Todo lo que venga del exterior al puerto tcp 10000
DENEGAR
Iptables (nat)
## FLUSH de reglas
iptables -F
iptables -X
iptables -Z
iptables -t nat F
## Establecemos politica por defecto
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
Iptables (nat)
###FILTRANDO
# El localhost se deja (Ej:conexiones locales a mysql)
iptables -A INPUT -i lo -j ACCEPT
# Al firewall tenemos acceso desde la red local
iptables A INPUT s 192.168.10.0/24 i eth1 j
ACCEPT
# A un partner se le deja usar el FTP
iptables A INPUT s 80.37.45.194 p tcp dport 20:21
j ACCEPT
Iptables (nat)
# Enmascaramiento de la red local y activacin del
BIT DE FORWARDING (imprescindible!!!!!)
iptables -t nat -A POSTROUTING s 192.168.10.0/24
-o eth0 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
# Filtrar los paquetes ICMP
Iptables -A INPUT p icmp j DROP
Iptables (nat)
# Se cierra el rango de puerto bien conocido
iptables A INPUT s 0.0.0.0/0 p tcp dport 1:1024 j DROP
iptables A INPUT s 0.0.0.0/0 p udp dport 1:1024 j DROP
Ejercicio
Cliente
IP:10.2.2.2
Puerto:1025
Servidor SSH
IP:10.2.2.1
Puerto:22