Un Firewall con Linux
Seguridad en las redes

[ Introducción ] [ Instalar un Firewall ] [ Configurar el Firewall ] [ Arrancar el Firewall ] [ Links ]


 


0. Introducción:

Este documento va dirigido a todos los usuarios de PCs conectados a algún tipo de red que quieren dar un paso mas en el nivel de seguridad de su sistema.

Un firewall permite un control muy preciso de la información que entra y sale del ordenador en función de la fuente, el destinatario, el protocolo ... por lo tanto es la técnica mas apropiada para proteger el PC contra accesos indeseados y ataques de red.

El software que vas a necesitar es libre al 100% y todo esta disponible en la red por lo que el único requisito es disponer de conexión a internet o algún soporte físico que contenga las fuentes del kernel (la explicación esta basada en la versión 2.0.36) de linux y la herramienta de administración de firewalls ipfwadm (o ipchains para kernels 2.1.102 o superiores)

1. Instalar un Firewall:

Lo primero que vamos a necesitar son las fuentes del kernel. Las podéis bajar de http://www.kernel.org, aunque mi consejo es que lo pilléis de alguna revista o de vuestro CD de linux si podéis.

Desempaquetadlo y haced todo lo necesario para recompilar el kernel (si no sabéis como hacerlo dirigíos al documento kernel-como de LuCAS)

Durante la configuración del kernel debemos asegurarnos de tener activadas las casillas:

[*] Networking support
[*] Network firewalls
[*] IP: firewalling

Estas son las opciones mínimas necesarias, en algunos casos hay que activar otras opciones (IP: accounting, SLIP, PPP ...)

Compilad el kernel como de costumbre, instaladlo y reiniciar el PC.
Si todo ha salido bien tendréis en /proc/net el archivo ip_forward, en este caso ya estáis preparados para configurar el firewall, en caso contrario revisad que la compilación del kernel ha sido correcta y que habéis activado las casillas de firewall.

2. Configurar el Firewall:

La herramienta para la gestión de firewalls es ipfwadm, esta presenta en todas las distribuciones por lo que no creo que os cueste encontrarla, pero por si a caso podéis encontrarla en: http://www.xos.nl/linux/ipfwadm.

- Información del firewall: lo primero que haremos es comprobar cual es la configuración actual del firewall, con la orden:
[root:/]# /sbin/ipfwadm -I -l

El resultado debería ser algo como esto:
IP firewall input rules, default policy: accept

Esto significa que por defecto acepta los intentos de acceso y que no hay ninguna regla especifica definida. si aparece algún mensaje de error asegúrate de haber leído los puntos anteriores.

- Definir la política por defecto: principalmente son dos, aceptar o denegar los accesos, lo que se consigue con la orden:
[root:/]# /sbin/ipfwadm -I -p a
[root:/]# /sbin/ipfwadm -I -p d
respectivamente.

- Poniendo las reglas: hay muchas posibilidades, por lo que lo mejor será leer el man ipfwadm, el /usr/doc/ipfwadm-x.x.x/ y el ipfwadm -h.
Se pueden proteger puertos, rangos de puertos, permitir o no el acceso de máquinas puntuales, rangos de IP, redes enteras, discriminar en función del protocolo solicitado ... las posibilidades de configuración son casi infinitas, vamos a ver algunos ejemplos:

ipfwadm -I -f
ipfwadm -I -p d
ipfwadm -I -i a -S 127.0.0.1
ipfwadm -I -i a -S 192.168.2.2

Esto deniega todos los intentos de conexión excepto los que provengan de localhost y de la IP 192.168.2.2

Otro ejemplo:

ipfwadm -I -f
ipfwadm -I -a d -P udp
ipfwadm -I -a d -P tcp -D 0.0.0.0/0 23

Esto acepta todos los accesos excepto los que usen protocolo udp y los que intenten acceder al puerto telnet.

- Eliminar todas las normas: muy útil cuando estamos haciendo pruebas, para no tener que estar reiniciando la máquina:
[root:/]# /sbin/ipfwadm -I -f

3. Arrancar el Firewall:

La forma mas cómoda de iniciar el firewall es incluyendo todas la ordenes en alguno de los archivos que se leen durante el arranque del sistema, en Red Hat por ejemplo, el archivo mas indicado para hacerlo es /etc/rc.d/rc.local, (en otras distribuciones es diferente aunque el sitio exacto donde lo pongas no importa demasiado, siempre que sea leído durante el arranque) en el que pondremos algo como esto:

#!/bin/bash
# Firewall
echo Levantando Firewall
ipfwadm -I -f
ipfwadm -I -p a
ipfwadm -I -i a -S 127.0.0.1
ipfwadm -I -i a -S 192.168.2.2
echo Firewall levantado

Otra posibilidad es usar un script que no se ejecute durante el arranque para usar estas normas sólo cuando sean necesarias.

4. Links:

Fuentes del kernel:
http://www.kernel.org
ftp.kernel.org

Herramientas:
ipfwadm
ipchains

Documentación:
Firewall-como
Kernel-como
NET3-HOWTO



 


Volver a la página principal