Desde la series 1.1, el kernel de Linux posee en mayor o menor medida
capacidad para filtrar tramas. Originalmente (1994), ipfwadm era la
herramienta proporcionada con Linux para la implementación de políticas
de filtrado de paquetes en este clon de Unix; derivaba del código de filtrado
en BSD (ipfw), y debido a sus limitaciones (por ejemplo, sólo puede
manejar los protocolos TCP, UDP o ICMP) ipfwadm fue reescrito para
convertirse en ipchains a partir del núcleo 2.1.102 (en 1998). Esta
nueva herramienta (realmente, todo el subsistema de filtrado de los núcleos
2.2) introdujo bastantes mejoras con respecto a la anterior, pero seguía
careciendo de algo fundamental: el stateful; era difícil ver a un
sistema tan potente como Linux sin una herramienta de firewalling decente,
libre, y `de serie' con el sistema, mientras otros clones de Unix, también
gratuitos hacía tiempo que la incorporaban, como es el caso de FreeBSD e
IPFilter.
De esta forma, no es de extrañar que a partir del núcleo 2.3.15 (por
tanto, en todos los kernels estables, de la serie 2.4, desde mediados de
1999) ipchains fuera sustituido por iptables, que de nuevo
introducía importantes mejoras con respecto a su predecesor. Sin duda la
más importante era que ya incorporaba el stateful no presente en ipchains, pero no era la única; además, iptables ofrecía - y
de hecho, ofrece - un sistema de NAT (Network Address Translation)
mucho más avanzado, incorpora mejoras en el filtrado (llegando incluso a
filtrar en base a la dirección física de las tramas) e inspección de
paquetes, y presenta un subsistema de log mucho más depurado que ipchains. Por tanto,iptables es en la actualidad el software de
firewalling en Linux IPv4; aunque todas las versiones de Linux lo
incorporan por defecto, se puede descargar una versión actualizada desde http://netfilter.samba.org/.
Históricamente, todos los sistemas de firewalling nativos de Linux
han sido orientados a comando: esto significa, muy por encima, que no leen su
configuración de un determinado fichero, por ejemplo durante el arranque de
la máquina, sino que ese archivo de arranque ha de ser un script donde,
línea a línea, se definan los comandos a ejecutar para implantar la
política de seguridad deseada; esta es una importante diferencia con
respecto a otros cortafuegos, como IPFilter (del que hablaremos a
continuación), orientados a archivo: en estos la política se define en
un simple fichero ASCII con una cierta sintaxis, que el software
interpreta y carga en el sistema.
La sintaxis de iptables (o la de ipchains, bastante similar) puede
llegar a resultar muy compleja si se invoca al sistema de filtrado desde
línea de órdenes; por fortuna (o no por fortuna), existen diferentes
interfaces para el administrador, algunos tan cómodos e intuitivos como el de
Firewall-1, capaces de presentar las políticas de una forma
gráfica basada en objetos y de transformar después
esas políticas en scripts con las órdenes de iptables o ipchains equivalentes. Un ejemplo de estos interfaces es fwbuilder,
disponible libremente desde http://www.fwbuilder.org/.
Para conocer mejor todo el subsistema de filtrado en Linux, así como sus
herramientas de gestión, consultas imprescindibles son los HowTo
[Rus00], [Rus02] y [Gre00]; la mayor parte de esta
sección está basada en estas obras. Otros documentos que pueden resultar
especialmente interesantes son [Mou00] y [Zie01].
iptables o ipchains son herramientas flexibles, potentes e, igual
de importante, gratuitas, que funcionan sobre un sistema operativo también
gratuito; quizás para una organización de I+D o para una empresa no muy
grande sea difícil permitirse soluciones comerciales cuyo precio puede
ascender a varios millones de pesetas, especialmente si se van a instalar
cortafuegos internos o arquitecturas DMZ de varios niveles. Sin embargo, no hay
excusa para no utilizar este software de filtrado: un pequeño PC
corriendo Linux es más que suficiente para, en muchas ocasiones, garantizar
- o al menos incrementar - la seguridad de un laboratorio, un aula
informática o un conjunto de despachos.
© 2002 Antonio Villalón Huerta