Instalación y Configuración del Servicio de Firewall (iptables)

Qué es un firewall?

Un firewall es un dispositivo que filtra el tráfico entre redes. El firewall puede ser un dispositivo físico o un software sobre un sistema operativo. En éste se establecen una reglas con las que se decide si una conexión determinada puede establecerse o no. Incluso puede ir más allá y realizar modificaciones sobre las comunicaciones, como el NAT(Network Address Translation)

Hoy en dia un firewall es un hardware específico con un sistema operativo o una IOS que filtra el tráfico TCP/UDP/ICMP/../IP y decide si un paquete pasa, se modifica, se convierte o se descarta. Para que un firewall entre redes funcione como tal debe tener al menos dos tarjetas de red. Así es un firewall clásico:

Firewall Común

Firewall Común

Esquema típico de firewall para proteger una red local conectada a internet a través de un router. El firewall debe colocarse entre el router (con un único cable) y la red local (conectado al switch o al hub de la LAN)

Dependiendo de las necesidades de cada red, puede ponerse uno o más firewalls para establecer distintos perímetros de seguridad en torno a un sistema. Es frecuente también que se necesite exponer algún servidor a internet (como es el caso de un servidor web, un servidor de correo, etc..), y en esos casos obviamente en principio se debe aceptar cualquier conexión a ellos. Lo que se recomienda en esa situación es situar ese servidor en lugar aparte de la red, el que se conoce como DMZ o zona desmilitarizada o red perimetral. El firewall tiene entonces tres entradas:

Firewall entre red local e internet con DMZ

Firewall entre red local e internet con DMZ

En la zona desmilitarizada se pueden poner tantos servidores como se necesiten. Con esta arquitectura, permitimos que el servidor sea accesible desde internet de tal forma que si es atacado y se gana acceso a él, la red local sigue protegida por el firewall. Esta estructura de DMZ puede hacerse también con un doble firewall.

Los firewalls se pueden usar en cualquier red. Normalmente se tienen como protección de internet en las empresas, aunque ahí también suelen tener una doble función: controlar los accesos externos hacia dentro y también los internos hacia el exterior; esto último se hace con el firewall o tambien con un proxy (que también utilizan reglas, aunque de más alto nivel).
También, en empresas de hosting con muchos servidores alojados lo normal es encontrar uno o más firewalls ya sea filtrando toda la instalación o parte de ella.

Sea el tipo de firewall que sea, generalmente se tiene un conjunto de reglas en las que se examina el origen y destino de los paquetes del protocolo tcp/ip. En cuanto a protocolos es probable que sean capaces de filtrar muchos tipos de ellos, no solo los tcp, también los udp, los icmp, los gre y otros protocolos vinculados a vpns.

En definitiva lo que se hace es:
– Habilita el acceso a puertos de administración a determinadas IPs privilegiadas
– Enmascara el trafico de la red local hacia el exterior (NAT, una petición de un pc de la LAN sale al exterior con la ip pública), para poder salir a internet
– Deniega el acceso desde el exterior a puertos de administración y a todo lo que este entre 1 y 1024. 

Hay dos maneras de implementar un firewall:
1) Política por defecto ACEPTAR: en principio todo lo que entra y sale por el firewall se acepta y solo se denegará lo que se diga explícitamente.
2) Política por defecto DENEGAR: todo esta denegado, y solo se permitirá pasar por el firewall aquellos que se permita explícitamente.

Qué es iptables? 

IPtables es un sistema de firewall vinculado al kernel de linux que se ha extendido enormemente a partir del kernel 2.4 de este sistema operativo. Al igual que el anterior sistema ipchains, iptables esta integrado con el kernel, es parte del sistema operativo. Con los comandos iptables, añadimos, borramos, o creamos reglas. Por ello un firewall de iptables no es sino un simple script de shell en el que se van ejecutando las reglas de firewall.

Instalación y Configuración del servicio de Firewall

Instala iptables ejecutando los siguientes comandos:

make PREFIX=/usr &&
make PREFIX=/usr install

PREFIX=/usr : Compila e instala iptables en el directorio /usr en vez de en /usr/local.

Contenido

El paquete iptables contiene iptables, ip6tables y algunas librerías.

Descripciones

iptables Se usa para establecer, mantener e inspeccionar las tablas de las reglas de filtrado de paquetes IP en el núcleo Linux.

iptables-save,~-restore Se usan para almacenar y restaurar el conjunto de cadenas y reglas. Hasta iptables-1.2.5 se consideraban experimentales.

ip6tables Es el mismo que iptables pero para IPv6. Con respecto a la versión 1.2.5, no es tan completo como la versión estándar para IPv4, especialmente en lo que se refiere a algunos módulos.

libip*.so Estos son varios módulos (implementados como librerías dinámicas) que extienden la funcionalidad de iptables.

Para que Linux haga la función de cortafuegos se debe asegrar que el núcleo ha sido compilado con las opciones pertinentes activadas.

Opciones de configuración esenciales para un núcleo con la función de cortafuegos activada

Networking options: Network packet filtering   = CONFIG_NETFILTER
  Unix domain sockets   = CONFIG_UNIX
  IP: TCP/IP networking   = CONFIG_INET
  IP: advanced router   = CONFIG_IP_ADVANCED_ROUTER
  IP: verbose route monitoring   = CONFIG_IP_ROUTE_VERBOSE
  IP: TCP Explicit Congestion Notification support   = CONFIG_INET_ECN
  IP: TCP syncookie support   = CONFIG_SYN_COOKIES
  IP: Netfilter Configuration: todas y cada una de las opciones = CONFIG_IP_NF_*
  DESACTIVA:

ipchains (2.2-style) support ipfw-adm (2.0-style) support

desactiva\ CONFIG_IP_NF_COMPAT_*
  Fast switching Asegúrate de desactivarlo porque configuraría un rodeo que evitaría las reglas del cortafuegos. desactiva\ CONFIG_NET_FASTROUTE

Traducción de las opciones del núcleo

Networking options (Opciones de red): Network packet filtering (Filtrado de paquetes de red)      
  Unix domain sockets (Sockets de dominio Unix)      
  IP: TCP/IP networking (red TCP/IP)      
  IP: advanced router (router avanzado)      
  IP: verbose route monitoring (control detallado de las rutas)      
  IP: TCP Explicit Congestion Notification support (soporte de Notificación de Congestión TCP Explícita)      
  IP: TCP syncookie support (soporte de syncookies TCP)      
  IP: Netfilter Configuration (Configuración de Netfilter)      
  Fast switching (Conmutación rápida)

Se supone que un Cortafuegos Personal debe permitirte acceder a todos los servicios ofrecidos en internet, pero protegiendo el sistema y sus datos.

Se incluye una versión recomendada por Rusty Russell en Linux 2.4 Packet Filtering HOWTO (Filtrado de paquetes de Linux 2.4):

cat > /etc/rc.d/init.d/firewall << "EOF"
#!/bin/sh

# Inicio de $rc_base/init.d/firewall

# Inserta los módulos de seguimiento de la conexión (no es necesario si
# se compilaron en el kernel).
modprobe ip_tables
modprobe iptable_filter
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ipt_state
modprobe ipt_LOG

# Permite conexiones locales
iptables -A INPUT  -i lo -j ACCEPT
# Permite la salida por cualquier interfaz hacia cualquier ip para
# cualquier servicio (igual que -P ACCEPT)
iptables -A OUTPUT -j ACCEPT

# Permite responder a conexiones ya establecidas y permite conexiones
# nuevas relacionadas con otras ya establecidas (por ejemplo, ftp
# activo)
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Registra todo lo demás: ¿Cuál es la última vulnerabilidad explotable
# de Windows?
iptables -A INPUT -j LOG --log-prefix "FIREWALL:INPUT "

# Establece una política sana:    no se acepta nada > /dev/null
iptables -P INPUT    DROP
iptables -P FORWARD  DROP
iptables -P OUTPUT   DROP

# muestra más información para direcciones ip dinámicas (no es necesario si se
# posee una dirección IP estática)
echo 2 > /proc/sys/net/ipv4/ip_dynaddr

# desactiva la Notificación de Congestión Explícita - demasiados
# enrutadores todavía lo ignoran
echo 0 > /proc/sys/net/ipv4/tcp_ecn

# Fin de $rc_base/init.d/firewall
EOF

Su guión es bastante simple, ignora todo el tráfico que llega al ordenador que no ha sido iniciado por él, pero si simplemente está navegando por internet, es improbable que excedas sus límites.

Easy Firewall Generator for IPTables éste programa genera automáicamente firewall para IPTables.

Anuncios
Published in: on agosto 22, 2008 at 1:27 pm  Dejar un comentario  

The URI to TrackBack this entry is: https://mariaadelayda.wordpress.com/2008/08/22/firewall/trackback/

RSS feed for comments on this post.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: