[ Introducción ] [ Instalar un Firewall ] [ Configurar el Firewall ] [ Arrancar el Firewall ] [ Links ]
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)
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.
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
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.
Fuentes del
kernel:
http://www.kernel.org
ftp.kernel.org
Herramientas:
ipfwadm
ipchains
Documentación:
Firewall-como
Kernel-como
NET3-HOWTO