Está en la página 1de 26

SERVIDOR FIREWALL SOBRE LINUX IPTABLES

FERNADO ALVIRA MELENDRO

FUNDACIN UNIVERSITARIA SAN MARTN


FACULTAD DE INGENIERA DE SISTEMAS
IBAGU
2009

SERVIDOR FIREWALL SOBRE LINUX IPTABLES

FERNADO ALVIRA MELENDRO

Docente
Javier Guzmn
Ingeniero de sistemas

FUNDACIN UNIVERSITARIA SAN MARTN


FACULTAD DE INGENIERA DE SISTEMAS
IBAGU
2009

Servidor Firewall Sobre Linux Iptables

Servidor Firewall Sobre Linux Iptables


J. Guzmn
Ingeniera de Sistemas, Fundacin Universitaria San Martn, Ibagu, Colombia
F. Alvira
Ingeniera de Sistemas, Fundacin Universitaria San Martn, Ibagu, Colombia
Abstract- En el presente trabajo
se revisa la conceptualizacin, la
configuracin y la instalacin de un
servidor Firewall sobre Linux con la
herramienta Iptables. Un servidor
Firewall es primordial para proteger la
informacin, la disponibilidad y los
servicios de cualquier red de datos en
la actualidad.
Se revisan los conceptos de firewall,
la normatividad sobre cmo debe ser
su comportamiento, y se desglosa su
operacin desde diferentes frentes
como lo son la consola de linux y
otros entornos grficos inclusive
remotos.
Este trabajo
est encaminado a
configurar el servidor desde la lnea
de comando, para as entender de una
manera
ms
completa
su
funcionamiento, de acuerdo con la
recomendacin RFC29791 que provee
la
informacin
sobre
las
caractersticas de comportamiento y
requerimientos de interoperabilidad
de un firewall en internet y a la
documentacin oficial del proyecto
Iptables de www.netfilter.org2.
Index Terms- Firewall, cortafuegos,
Redes Iptables, Internet, Webmin.

CONTENTS
I.

Introduccin

II.

Firewall
II-A. Tipos de Firewall..
II-B. Disposiciones...
II-C. Funciones..
II-D. Limitaciones..

2
2
3
5
8

III.

Request For Comments


RFC2979
8
III-A. Caractersticas de un
Firewall 8
III-B. Requisitos de un
Firewall 9
III-C. Ejemplos. 9
III-D. Requisitos de Aplicacin 10
III-E. Consideraciones de
Seguridad 10

IV.

Iptables
IV-A. Estructura
IV-B. Funcionamiento.
IV-C. El comando Iptables.

V.

Administracin Grfica
15
V-A. X-Window 15
V-B. Webmin 18

VI.

Conclusiones y
recomendaciones

References

10
11
12
12

20
21

__________________

________________

1 FREED N. Request For Comment 2979 [Online].


Octubre de 2000 [Citado en Marzo de 2009].
Disponible en Internet:
http://www.ietf.org/rfc/rfc2979.txt

2 The netfilter.org iptables Project [Online] 2008


[Citado en Marzo de 2009]. Disponible en Internet:
http://www.netfilter.org/projects/iptables/index.html

Servidor Firewall Sobre Linux Iptables

I.

INTRODUCCIN

La seguridad y el control de acceso a


los recursos de las redes de datos se
han vuelto cada da ms importante
desde la aparicin de Internet, esto se
debe al incremento de la cantidad y al
tamao
de
los paquetes que
conforman el trfico de informacin
sobre la red de redes. Actualmente
aparece la necesidad de ejercer control
sobre este trfico para evitar
quebrantos en la seguridad informtica
y, adems, para garantizar el acceso a
los diferentes servicios disponibles en
la red. Para esto, la herramienta por
excelencia es un Firewall. Mediante
este trabajo, se busca entender el
funcionamiento del mdulo firewall de
Linux
(Iptables),
disponible
en
cualquier distribucin de este sistema
operativo.
Por otra parte, los administradores de
las redes no siempre estn disponibles
fsicamente en donde se encuentran
localizadas las mquinas, por lo tanto
se hace necesario tener acceso remoto
a ellas de una manera eficiente y
segura. En este trabajo se realiza el
estudio de formas alternativas y ms
amigables para accesar y realizar la
administracin del mdulo firewall.
El desarrollo de este paper3, se divide
principalmente en cuatro secciones: la
primera en donde se la revisa el
concepto de firewall, la segunda revisa
el Request For Comments RFC-2979,
documento que define
el
comportamiento de un firewall y
sus requisitos de interoperabilidad.
_______________
3 Este paper es un documento tcnico desarrollado
en el curso de profundizacin del programa de

Ingeniera de Sistemas de la Fundacin


Universitaria San Martn, periodo A-2009

La tercera revisa el tema de


aplicacin iptables. Finalmente
ltima seccin, aplica los conceptos
iptables para lograr administrar
firewall remotamente.

la
la
de
un

II. FIREWALL
El Firewall es un mdulo que puede
ser un paquete de software o un
dispositivo de hardware comnmente
utilizado en las redes de computadores
para controlar (bloquear, modificar, etc)
el trfico de datos entre ellas de
acuerdo a polticas previamente
establecidas.
A. Tipos de Firewall
Bsicamente hay 3 tipos de Firewall:
1. De filtrado de paquetes.
Trabaja en capa 3 del modelo
OSI4 o capa de red filtrando los
paquetes IP5. Estos filtros se
aplican a la direccin de origen,
direccin de destino. Trabaja en
capa 2 filtrando direcciones MAC
(direccin de la tarjeta de Red) o
en capa 4 filtrando puertos de
origen y destino. Tambin se
presentan mezclas de filtros.
________________
4 Modelo OSI. El modelo de referencia de
Interconexin de Sistemas Abiertos (OSI, Open
System Interconnection) lanzado en 1984 fue el
modelo de red descriptivo creado por ISO; esto es,
un marco de referencia para la definicin de
arquitecturas de interconexin de sistemas de
comunicaciones. [3]
5 Protocolo IP. Protocolo de Internet (IP, de sus
siglas en ingls Internet Protocol) es un protocolo no
orientado a conexin usado tanto por el origen como
por el destino para la comunicacin de datos a

Servidor Firewall Sobre Linux Iptables

travs de una red de paquetes conmutados. Los


datos en una red basada en IP son enviados en
bloques conocidos como paquetes o datagramas [4]

2. De capa de aplicacin.
En el modelo OSI, trabaja en la
capa 7 o capa de aplicacin. Un
ejemplo sera el filtro de trfico
HTTP como lo hace un servidor
Proxy que filtra las URL o
direcciones de las pginas que se
desean visitar.
3. Personales
Son aplicativos instalados en
computadores de punto final o de
usuario. Estos firewalls sirven de
filtro para las comunicaciones
entre dicho computador y la red.

Para ubicar un firewall, hay que tener


en cuenta la configuracin de la red,
que servicios estn disponibles, cuales
son para la red interna y cules van al
exterior, que servidores hay, que
dispositivos de comunicacin hay
disponibles. De acuerdo a esta
configuracin nos podemos encontrar
con varias configuraciones que pueden
incluir uno o ms firewalls.
Primero tenemos una configuracin de
red en la cual hay una conexin directa
entre la red interna y la externa o con
internet a travs de un Router sin
firewall, sin proteccin. En esta
disposicin, la red interna o intranet se
encuentra completamente expuesta al
exterior, el router solo rechaza el trfico
que no tiene destino en la red interna.
As mismo todos los miembros de la
red interna tienen acceso a la red
externa.
En la figura nmero 2, tenemos un
ejemplo de esta configuracin.

Figura 1. Tipos de Filtros Modelo OSI

B. Disposiciones de un Firewall

Servidor Firewall Sobre Linux Iptables

Figura 2. Red sin Firewall.

La segunda configuracin, tenemos


que para proteger la red interna, el
firewall debera estar ubicado en
donde est la conexin entre las dos
redes, aislando totalmente el interior
del exterior, as evitamos accesos no
permitidos que permitan tomar ventaja
de algunas de las vulnerabilidades
inherentes a los servicios disponibles
en los diferentes servidores que haya
en la red.
Por otra parte con esta configuracin,
tambin es posible administrar el
trfico saliente, seleccionando quien
puede tener acceso a internet, o a
algunos servicios externos especficos
o simplemente, limita su acceso a los
recursos de la red interna.
En la figura 3, podemos ver un ejemplo
de esta disposicin.

Figura 3. Red con Firewall

En algunas redes podemos encontrar


otro tipo de disposicin del Firewall, se
encuentra conectado a otra red
llamada DMZ (Demilitarized Zone) o
zona desmilitarizada (Figura 4) por su
sigla en ingls.

Servidor Firewall Sobre Linux Iptables

Figura 4. Red con Firewall y DMZ

En la DMZ, los servidores


son
visibles desde la red exterior o
internet y esto se hace con el fin que si
el servidor es vulnerado y se logra
acceso a l, la red interna siga estando
protegida. En esta configuracin, el
firewall no realiza ninguna funcin de
filtrado sobre los paquetes que tienen
como destino la red DMZ, es como si
los servidores estuvieran conectados
fsicamente a la red externa o internet.
Una derivacin de esta disposicin es
la cual en la que se est protegiendo la
red DMZ de infiltraciones desde el
interior de la intranet, esto es porque al
interior la organizacin puede haber
riesgo que algn usuario mal
intencionado intente realizar una
conexin restringida sobre alguno de
los servidores. Esta disposicin se
puede ver en la Figura 5.

Figura 5. Red con 2 Firewall y DMZ

As como estas, hay varias maneras de


configurar una red con firewall, se
pueden usar como proteccin de
internet, como proteccin al interior de
la organizacin, filtro entre las redes
internas e inclusive en algunos casos
podemos tener partes de la red
protegidas y otras sin proteccin. Todo
depende de las necesidades y en
ocasiones tambin influye el factor
econmico.
C. Funciones de un Firewall

Network Address Translation (NAT)


NAT o enmascaramiento es el
proceso de modificar la informacin
de direccin de red en el
encabezado de un paquete IP en su
camino a travs de un dispositivo de

Servidor Firewall Sobre Linux Iptables

enrutamiento o filtrado con el


propsito de mapear la nueva
direccin ya sea la de origen o la de
destino [5].
Esta tcnica aparece ante la latente
posibilidad de que en un momento
dado, se lleguen a agotar las
direcciones validas de Internet.
La necesidad de tener numerosos
servicios al aire, pero un nmero
limitado de direcciones result en
frmulas de enmascaramiento para
permitir que varios servidores y
computadores personales miembros
de una red privada, accesen la red
externa o la misma Internet
utilizando nicamente una direccin
valida. Esto funciona tanto como
para trfico saliente como para el
entrante.
As, todo lo que salga de la red
interna, el dispositivo NAT, le cambia
al encabezado del paquete IP el
campo de direccin de origen,
quitando la direccin de la red
privada y dejando la direccin
pblica para luego reenviarlo a su
destino. De la misma manera
cuando un paquete llega de internet,
el dispositivo NAT cambia ahora el
campo de direccin de destino y
quita la direccin pblica y asigna la
direccin privada del servidor o
computador personal que debe
recibir el paquete.

Figura 6. Encabezado de un Paquete IP

Para enviar un paquete de la red


local, por ejemplo tenemos que
enviar desde una estacin con la
direccin IP 10.0.1.24, la direccin
pblica del servidor de la empresa
es 200.36.80.45, y lo vamos a enviar
a un servidor con la direccin
pblica 200.41.9.39. Entonces el
paquete de original tiene en el
campo de direccin de origen
10.0.1.24, el proceso NAT lo
modifica cambiando ese campo por
200.36.80.45 y enva el paquete a
su destino. Para el destinatario, el
remitente del paquete fue el servidor
con la direccin pblica. (Figura 7).

Servidor Firewall Sobre Linux Iptables

Figura 7. NAT de envo de paquetes

De la misma manera, supongamos


que el servidor remoto devuelve la
respuesta. El paquete que regresa
tiene como direccin de origen la
200.41.9.39 y la direccin de destino
la 200.36.80.45 que es la direccin
pblica del servidor. Cuando se
verifica el paquete y cambia la
direccin de destino por la de la
estacin local 10.0.1.24 y finalmente
lo entrega (Figura 8).

Figura 8. NAT de recepcin de paquetes.

Todo esto se logra de acuerdo a las


reglas definidas en el servidor
firewall, y al mapeo direcciones IP
sumado con el mapeo de los
puertos.

PROXY
Como hemos visto en las diferentes
configuraciones de red, lo ms
comn es tener una salida a internet
para toda la red. Un servidor proxy,
es un servidor que sirve como
puente para resolver las solicitudes
de los diferentes usuarios en la red,
as en vez de configurar un acceso a
internet para cada usuario en la red,
se configura el acceso para un
servidor proxy y se configuran todos
los equipos de la red como clientes
de dicho servidor.

Servidor Firewall Sobre Linux Iptables

10

De esta manera, los clientes


realizan las solicitudes al servidor
proxy, este las realiza a su
contraparte en internet, a su vez,
este le da la respuesta al proxy y
finalmente
la
respuesta
se
retransmite a la estacin que origin
la solicitud.

desperdicien capacidad, mientras


otros se encuentran saturados con
bloqueos permanentes.

Hay servidores proxy para varios


servicios, los ms comunes son los
de servicio Web, ftp y servicio de
correo electrnico.
Los proxy web mejoran su tiempo
de respuesta mediante un cach,
esto es, guardan en una memoria
todas las solicitudes atendidas y al
momento
de
realizar
una
previamente hecha, la trae desde la
memoria evitando entrar a internet.

QOS (Quality Of Service)


Calidad del servicio. El ancho de
banda, o capacidad del canal, es un
recurso que en ocasiones puede
llegar a ser limitado.
El servicio QOS, permite realizar
una divisin del canal y asignar
anchos de banda fijos como por
ejemplo para ciertas direcciones
destinadas a servidores o a ciertos
usuarios o tambin, para algunos
protocolos, as, como en el ejemplo
de la Figura 8, as haya muchas
peticiones de navegacin HTTP, el
canal para transferencia de archivos
FTP no se va a ver afectado, o los
canales de envo y recepcin de
correo electrnico.
Para utilizar este servicio hay que
realizar un anlisis del uso que se le
da al canal para evitar que servicios

Figura 8. QOS

Balanceo de Carga
En ciertas redes empresariales, hay
ms de un canal de salida a
Internet, el servicio de balanceo de
carga, se encarga de establecer
cual canal utilizar para mantener
todos los canales en un mismo nivel
de ocupacin y previene que
ocurran negaciones de servicio al
enviar paquetes a un canal ocupado
mientras hay otro disponible.

Figura 9. Balanceo de Carga

D. LIMITACIONES DE UN FIREWALL

Servidor Firewall Sobre Linux Iptables

Un Firewall configurado correctamente


agrega proteccin a una red de datos,
pero no es la solucin absoluta de
seguridad informtica, hay que tener
en
consideracin
muchos otros
escenarios
en
los
cuales
las
vulnerabilidades son explotadas de
otras maneras alternativas:

Ataque de ingeniera social6.


Espas o usuarios malintencionados
Captura de informacin en la
transferencia de datos.
Ataque en reas no protegidas por
el firewall. (Estaciones Stand Alone).
III. Request for Comments 2979

Los Request for Comments o RFC,


son
documentos
tcnicos
y
organizacionales que tratan los temas
de
Internet,
incluyendo
las
especificaciones tcnicas y polticas
por el IETF (Internet Engineering Task
Force en castellano Grupo de Trabajo
en Ingeniera de Internet).
El IETF es una organizacin
internacional
abierta
de
normalizacin, que tiene como
objetivos el contribuir a la
ingeniera de Internet, actuando
en diversas reas, tales como
______________________
6 En el campo de la seguridad informtica,
ingeniera social es la prctica de obtener
informacin confidencial a travs de la manipulacin
de usuarios legtimos. Es una tcnica que pueden
usar ciertas personas, tales como investigadores
privados, criminales, o delincuentes informticos
para obtener informacin, acceso o privilegios en
sistemas de informacin que les permitan realizar
algn acto que perjudique o exponga la persona u
organismo comprometido a riesgo o abusos. [6]

11

transporte,
enrutamiento
y
seguridad. Fue creada en Estados
Unidos en 1986.
Es una institucin formada
bsicamente por tcnicos en
Internet e informtica cuya misin
es velar porque la arquitectura de
la red y los protocolos tcnicos
que unen a millones de usuarios
de todo el mundo funcionen
correctamente. Es la organizacin
que se considera con ms
autoridad
para
establecer
modificaciones de los parmetros
tcnicos bajo los que funciona la
red7.
El RFC-2979 define las caractersticas
de comportamiento y cules son los
requerimientos de interoperabilidad de
los Firewall o en Internet. [1]
Los firewall actan como protocolo de
punto final y puente, como por ejemplo,
en los casos de protocolos de correo
electrnico, tambin funcionan como
filtro de paquetes o una combinacin.
Cuando el firewall funciona como
protocolo debe implementar una
versin segura del mismo, debe
realizar pruebas de validez, debe
reducir al mnimo las probabilidades de
fallo, debe correr en un ambiente
seguro y aislado o debe usar una
combinacin de estas tcnicas en
paralelo.
A. Caractersticas de un Firewall
Los firewall que funcionen como filtro
de paquetes no son visibles como los
___________________

Servidor Firewall Sobre Linux Iptables

12

7 IETF- Wikipedia [Online] 2005 [Citado en Marzo


de
2009].
Disponible
en
Internet:
http://es.wikipedia.org/wiki/IETF

firewall y cualquier software asociado a


l, no a los protocolos.

protocolos de punto final. Deben


examinar los paquetes y luego realizan
alguna de las siguientes acciones:
pasan el paquete de una red a la otra
sin cambiarlo, rechazan el paquete, o
manipulan el paquete de alguna
manera.

Dicha regla solo aplica para usos


legtimos de los protocolos, aunque el
firewall puede bloquear cualquier
acceso considerado ilegal por el sitio
as el uso de los protocolos sea el
correcto.

Los firewall basan sus decisiones en


las direcciones IP de origen y de
destino y en los nmeros de puerto. De
acuerdo a esto, el firewall puede
bloquear paquetes desde Internet que
busquen acceso a una direccin de la
red
interna,
puede
bloquear
conexiones de tipo Telnet de una red a
otra, bloquea conexiones de correo o
transferencia de archivos desde la red
interna al exterior, debe actuar como
intermediario en conexiones SMTP y
HTTP en cualquier direccin o tambin
debe usar un protocolo de acceso,
negociacin y encapsulamiento como
SOCKS para permitir acceso al
exterior, al interior o ambos.
B. Requisitos de un Firewall
Las aplicaciones deben trabajar
correctamente en la presencia de un
firewall. Con esto, aparece la siguiente
regla
de
transparencia:
La
introduccin de un firewall y cualquier
dispositivo de tnel o negociacin de
acceso NO DEBE causar fallas no
intencionadas en la manera correcta
de funcionamiento, cumpliendo todos
los estndares, como trabajara si el
firewall no estuviera presente [1].
Una consecuencia de esta regla es
que si aparece una falla, es debida al

El firewall puede proveer mtodos de


autenticacin para autorizar varios
tipos de conexiones y lograr as, que el
firewall sea configurable.
C. Ejemplos
Los siguientes, son ejemplos de cmo
la regla de transparencia aplica para
algunos protocolos:
1. Path MTU Discovery8 y ICMP9
Los
mensajes
ICMP
son
bloqueados frecuentemente pos
los firewall por la percepcin que
son
una
fuente
de
vulnerabilidades de seguridad. A
menudo, esto crea unos hoyos
negros para el Path MTU
Discovery, causando retrasos y
bloqueos
para
trafico
de
aplicaciones legtimas.
Por la regla de transparencia, las
aplicaciones que utilicen el
protocolo Path MTU Discovery no
deben sufrir dichos retrasos o
bloqueos.
Por otro lado es apropiado
bloquear los mensajes ICMP que
_________________
8 Path MTU Discovery o PMTU Discovery, se refiere
al protocolo que descubre la mxima unidad de

Servidor Firewall Sobre Linux Iptables

13

Transmisin (MTU) para una ruta entre dos hosts de


una red. [7]
9 ICMP (Internet Control Message Protocol)
Es un subprotocolo de control perteneciente al
protocolo de Internet (IP). Se usa para enviar
mensajes de error si un servicio no est disponible o
un host no puede ser localizado. [8]

no sean respuesta
saliente legtimo.

trfico

2. Extensiones SMTP10
El protocolo SMTP original no
tena
un
mecanismo
para
extensiones de protocolos de
negociacin.
Cuando
fueron
agregadas, se agreg el comando
EHLO11 al firewall dentro de la
lista de comandos aceptados. En
algunos casos el firewall no
entenda el comando causando
una falla en el protocolo SMTP.
D. Requisitos de aplicacin
Los protocolos de aplicacin DEBEN
ser diseados para facilitar su
operacin a travs de los firewall de
manera que estos diseos no impacten
adversamente la aplicacin de alguna
otra
manera.
Adems,
las
especificaciones de protocolos de
aplicacin PUEDEN incluir material
que defina los requerimientos que
debe cumplir un firewall para manejar
apropiadamente el protocolo de
aplicacin.
E. Consideraciones de Seguridad
Una buena seguridad ocasionalmente
puede resultar en problemas de
_______________

10 Protocolo Simple de Transferencia de Correo, es


un protocolo de la capa de aplicacin. Protocolo de
red basado en texto utilizado para el intercambio de
mensajes de correo electrnico entre computadores
u otros dispositivos.[9]
11 Comando del Protocolo SMTP que al igual que el
comando HELO, abre una sesin en un servidor
SMTP y adems le pregunta cuales extensiones
soporta. [10]

interoperabilidad entre componentes.


Sin embargo, esto no significa que
fallas de interoperabilidad causadas
por componentes de seguridad sean
aceptables.
Para implementar un firewall se debe
trabajar duro para obtener cierto nivel
de seguridad, sin embargo la regla
de
transparencia
debe
ser
obstculo para alcanzar el nivel
deseado.
Los que implementan firewall pueden
decir que cumplir con la regla de la
transparencia es altamente oneroso y
que una seguridad adecuada no puede
ser alcanzada cumpliendo la regla. Es
ms difcil cumplirla que no hacerlo.
Sin embargo, es importante recordar
que una red completamente segura es
una que no permite el paso de ningn
dato y el nico problema de esa red es
que no se puede usar. Por debajo de
esto es un intercambio entre seguridad
y capacidad de uso. Los firewall se
estn evitando porque no cumplen el
requerimiento de transparencia y esto
debilita la seguridad dramticamente.
En otras palabras la razn para que
algunos firewall estn en uso es
porque estn deshabilitados. Como tal,
una razn de tener el requerimiento de
la transparencia es el de MEJORAR la
seguridad.

Servidor Firewall Sobre Linux Iptables

IV. IPTABLES
Iptables, tambin conocido como
Netfilter [2], es un conjunto de
funciones de punto de entrada, o
como se denominarn en el resto del
captulo, hooks, que vienen incluidas
en el ncleo o Kernel versiones 2.4.x,
2.6.x de Linux. Entonces, cada funcin
captura y manipula los paquetes de
Red. Para Iptables, los hooks
trabajan cuando llega un paquete IP
que cumpla con la condicin de
entrada, puede ser la direccin IP de
origen o destino, el nmero de puerto,
etc, hace que se ejecute esa funcin y
el paquete es manipulado.
Entonces, en Linux, el Firewall hace
parte de su ncleo y est conformado
por un conjunto de hooks encargados
de realizar las funciones de filtrado de
paquetes, NAT y algunos que proveen
compatibilidad con reglas de versiones
anteriores como Ipchains12.

14

Netfilter tiene 3 opciones de manejo de


paquetes, cada paquete corresponde a
una tabla con una finalidad especfica,
de aqu el nombre de Iptables. Estas
tres tablas son Filter o filtro, NAT o
traduccin de direcciones y mangling
o manipulacin.
________________
12 IPCHAINS es la versin del software de Netfilter
previa a Iptables, vena incluida en los Linux con
Kernel 2.2.x [2]

Tabla NAT:
Permite configurar el protocolo
NAT. Al recibirse una conexin
TCP,
se toman el grupo de
paquetes que llega y se le aplican
las operaciones de NAT o de
enmascaramiento. Esta tabla tiene
3 cadenas para aplicar reglas:

1.

PREROUTING aplicada a los


paquetes recin llegados para
realizar DNAT o NAT de
Destino.
OUTPUT Usada para los
paquetes generados por el
propio firewall antes de enrutar.
Realiza DNAT localmente
POSTROUTING usada en los
paquetes que acaban de salir
del firewall para realizar SNAT
o NAT de Origen

2.

3.

Figura 10. Esquema Sistema Operativo Linux

A.

Estructura

Tabla Filter
Es la tabla que cumple la funcin
esencial de Iptables, el filtrado de
paquetes. Tambin aplica 3
Reglas:

1.

INPUT aplica a todos los


paquetes entrantes cuyo destino
es el mismo firewall.
FORWARD aplica a los
paquetes entrantes pero su
destino es otro host dentro de la

2.

Servidor Firewall Sobre Linux Iptables

3.

B.

15

red interna. Aqu se decide si se


acepta o no el paquete.
OUTPUT aplica a los paquetes
salientes de un host de la red
interna hacia destinos externos.
Tabla Mangle
Permite manipular todos los
campos del encabezado del
paquete IP a excepcin de los
campos de direcciones de origen y
destino. Utiliza principalmente las
cadena
PREROUTING
y
OUTPUT
Funcionamiento

Al llegar un paquete de informacin al


firewall, el paquete es entregado al
Kernel, aqu pasa por los distintos
hooks en los cuales se cumpla la
condicin de entrada.(Tabla 1)
Condicin de Entrada
Destino
Protocolo
Accept (Aceptar)
Dir. IP de Origen
Drop (Desestimar)
Dir. IP de Destino
Queue (Poner en cola)
Puerto de destino
Return (Devolver)
Puerto de Origen
Reject (Rechazar)
Banderas TCP
Definida por el usuario
Tabla 1. Condiciones de entrada y destinos.

En la Figura 11 se encuentra el
esquema del flujo que siguen los
paquetes en iptables.

Figura 11. Flujo de paquetes en un firewall

En la figura vemos que el flujo de la


izquierda corresponde a todos los
paquetes que tienen como destino el
firewall,
los
de
la
derecha
corresponden a otros hosts de la red
interna. Tambin cabe anotar en el flujo
de la izquierda, que la transicin entre
las cadenas INPUT y OUTPUT
corresponde a un proceso interno que
realiza el firewall, el primero podra ser
una peticin, y despus de analizarla y
procesarla, enviara el segundo como
respuesta.
La siguiente tabla muestra el camino a
travs del mdulo del kernel netfilter
iptables.
Paso
1

Tabla
IP

Cadena

Accin
Paquete en

Servidor Firewall Sobre Linux Iptables

5
6

C.

internet
El paquete llega a
la interfaz de red
del firewall, puede
ser eth0
Si cumple con
alguna condicin
Mangle Prerouting
de mangle,
realiza la accin
que indicada
Si cumple con
alguna condicin
NAT
Prerouting
de NAT, realiza la
accin que
indicada
Revisa el
enrutamiento
Enva el paquete
Filter
Input
a la red local
La aplicacin o
servicio de
destino recibe el
paquete para
procesarlo.
Tabla 2. Camino de un paquete externo
con destino en el firewall

El Comando Iptables

En este captulo se tratar el comando


Iptables, el cual es la herramienta para
crear las diferentes reglas de un
firewall usando el mdulo netfilter.
De acuerdo a la estructura y al
funcionamiento de Iptables, se tiene
que funciona con tres tablas, cada
tabla tiene definidas unas cadenas.
Cada cadena est conformada por una
lista de reglas de filtrado y cada regla
es una pareja formada por la condicin
de entrada y la accin a realizar sobre
los atributos del paquete IP.
Cada paquete que llegue al firewall
recorre secuencialmente la lista de
reglas hasta cumplir con la condicin
de entrada de alguna de ellas. Al
momento en que esto suceda, al
paquete se le aplica la accin
dispuesta en la regla de filtrado. Si en
un momento dado el paquete recorre
toda la lista y no cumple con ninguna

16

de las condiciones de entrada, se


ejecutar la accin por defecto para la
cadena.
La sintaxis general del
Iptables es la siguiente:

comando

Iptables [-t tabla] [regla] [condicin de


Entrada] [accin]
Iptables siempre maneja una de las
tres tablas, cuando en el comando se
omite este campo, se refiere por
defecto a la tabla Filter.
La regla tiene la siguiente estructura:
-[A I R D L F Z N X P] regla
La regla puede ser INPUT, OUTPUT,
PREROUTING, POSTROUTING o
FORWARD segn la tabla que se est
trabajando
Los siguientes son los comandos para
aadir y manipular cadenas y sus
reglas:
Comando
Iptables -A
Iptables -I
Iptables -R
Iptables -D
Iptables -L
Iptables -F
Iptables Z
Iptables -N
Iptables -X
Iptables -P

Descripcin
Inserta una regla al final de
una cadena.
Inserta una regla al inicio de
una cadena.
Reemplaza una regla de una
cadena
Elimina una regla de una
cadena.
Lista las reglas de una cadena
Vaca una cadena (elimina las
reglas)
Resetea las variables de una
cadena
Crea una cadena nueva sin
reglas
Elimina una cadena vaca
Cambia la poltica por defecto

Tabla 3. Comandos para manejar reglas y cadenas.

Servidor Firewall Sobre Linux Iptables

En el campo de Condicin de Entrada


tenemos las caractersticas del tipo de
paquete al que se le quiere aplicar la
regla. Tabla 4.
Opcin
-s
-d
-i
-o
-p
-f
-p TCP
--sport
-p TCP
--dport
-p TCP
tcp-flags
-p TCP
--syn
-p UDP
--sport
-p UDP
--dport
-p icmp
icmp-type
--macsource

Descripcin
Dominio, ip, rango de ip de origen
Dominio, ip rango de ip de destino
Interfaz o tarjeta de red de entrada
Interfaz o tarjeta de red de salida
Especifica el protocolo del paquete
Paquetes fraccionados de acuerdo
al MTU [9]
Puerto TCP de origen
Puerto TCP de destino
Compara las Banderas TCP del
paquete contra una mscara.
(SYN,ACK,FIN,RST,URG,PSH,
ALL O NONE)
Revisa que la bandera SYN est
en 1 y ACK y FIN sean 0
Puerto UDP de origen
Puerto UDP de destino
Identifica el tipo de mensaje ICMP
Especifica la direccin MAC,
valido solo en INPUT y
FORWARD

Tabla 4. Opciones de la Condicin de Entrada para


Iptables

Finalmente, en el campo de accin se


establece que accin aplicar al
paquete. Tabla 5.
Opcin
-j ACCEPT
-j REJECT
-j DROP
-j REDIRECT
-j LOG

Descripcin
Acepta el paquete
Desecha el paquete con una
respuesta ICMP (Host
Unreachable)
Desecha el paquete
silenciosamente
Redirige el comando
Crea un log de la operacin
para su futuro anlisis

Tabla 5. Acciones realizables por un firewall

17

Ya vista la sintaxis del comando, hay


que dejar claro que el orden en que se
escriben las reglas y las cadenas ya
que un paquete cuando cumple con
una condicin de entrada es afectado
inmediatamente sin importar las reglas
posteriores, como por ejemplo, si
agregamos una regla en la tabla filter
y
posteriormente
utilizamos
el
comando iptables F, la regla anterior
sera eliminada.
Para la poltica por defecto, tenemos
dos formas de implementar un firewall,
cada uno con sus ventajas y
desventajas.
La Primera es una poltica de aceptar
todo el trfico y posteriormente se
niega todo lo que no necesitemos.
Aunque es ms fcil de administrar, es
un poco ms inseguro.
La segunda poltica es de rechazar
todo el trfico y posteriormente se
aceptan o se crean las reglas para
habilitar en trnsito entrante y saliente
necesario. Demanda mucha ms
administracin pero es ms seguro.
Reuniendo todo lo anterior, se tiene
que un firewall basado en netfilter
iptables, no es ms que un conjunto de
cadenas y reglas escritas en un orden
predeterminado para su correcto
funcionamiento, por lo tanto, una
manera de administrarlo es reuniendo
todas las cadenas en un solo script 13 y
ejecutarlo al momento de iniciar el
firewall. As para modificar la
configuracin del Firewall, nos bastar
con modificar el script.
Un posible modelo de un script sencillo
con poltica por defecto de rechazar
conexiones y con un servidor web y

Servidor Firewall Sobre Linux Iptables

otro de correo en una DMZ sera el


siguiente:
## Script de Configuracin Iptables
## Limpiado de Reglas
iptables F
iptables X
iptables Z
iptables t nat F
## Poltica
iptables P
iptables P
iptables P

por defecto: DROP


INPUT DROP
OUTPUT DROP
FORWARD DROP

##Filtros
## IP desde la cual se administra
## el firewall 10.1.1.24
iptables A INPUT s 10.1.1.24 j
ACCEPT
iptables A OUTPU d 10.1.1.24 j
ACCEPT
## Se restringe el acceso al
## firewall al resto de la red
iptables A INPUT s 0.0.0.0/0 j
DROP

_________________
13 En informtica, un script es un guin o conjunto
de instrucciones. Permiten la automatizacin de
tareas creando pequeas utilidades. Es muy
utilizado para la administracin de sistemas UNIX.
Son ejecutados por un intrprete de lnea de
rdenes y usualmente son archivos de texto.
Tambin un script puede considerarse una
alteracin o accin a una determinada plataforma
[11].

18

j ACCEPT
## Reglas para servidor de correo
## en DMZ 190.135.21.5
# Acceso puerto 25
iptables A FORWARD d 190.135.21.5
-p tcp dport 25 j ACCEPT
iptables A FORWARD s 190.135.21.5
-p tcp sport 25 j ACCEPT
# Acceso puerto 110
iptables A FORWARD d 190.135.21.5
-p tcp dport 110 j ACCEPT
iptables A FORWARD s 190.135.21.5
-p tcp sport 110 j ACCEPT
# Acceso puerto 143
iptables A FORWARD d 190.135.21.5
-p tcp dport 143 j ACCEPT
iptables A FORWARD s 190.135.21.5
-p tcp sport 143 j ACCEPT
## Permiso a IP para administrar el
## servidor de correo 10.1.1.24 por
## SSH
Iptables A FORWARD s 10.1.1.24 d
190.135.21.5 -p tcp dport 22
j ACCEPT
Iptables A FORWARD s 190.135.21.5
d 10.1.1.24 -p tcp sport 22
j ACCEPT
# Fin del Script

V.

Administracin Grfica

## Reglas para servidor Web en DMZ


## 190.135.21.4
# Acceso puerto 80
iptables A FORWARD d 190.135.21.4
-p tcp dport 80 j ACCEPT
iptables A FORWARD s 190.135.21.4
-p tcp sport 80 j ACCEPT

Aunque comparten el ncleo o Kernel,


el entorno grfico o sistema X-indow
y los entornos de escritorio14 como
Gnome o KDE, las diferentes
distribuciones de linux, tienen sus
propias herramientas de administrar el
firewall grficamente. Por otra parte,
hay otras herramientas orientadas a la
web que tambin permiten realizar la
administracin de los firewall de Linux.

## Permiso a IP para administrar el


## servidor web 10.1.1.24 por SSH
Iptables A FORWARD s 10.1.1.24 d
190.135.21.4 -p tcp dport 22
j ACCEPT
Iptables A FORWARD s 190.135.21.4
d 10.1.1.24 -p tcp sport 22

En este documento se tratarn las


distribuciones empresariales de Red
Hat en su versn 5 y SuSe en su
versin 10. Dentro de las utilidades
web se tratar una llamada Webmin.

Servidor Firewall Sobre Linux Iptables

A.

19

X-Window
1. Configuracin en modo grfico
con el gestor de escritorio
GNome en Red Hat Enterprise
server versin 5.

Figura 13. Herramienta de Configuracin


de Firewall de Red Hat

Figura 12. Llamado de la herramienta de


configuracin de Firewall en Red Hat

Para llamar la herramienta,


seleccionamos
el
men
Sistema, Administracin y por
__________________
14 Un entorno de escritorio (en ingls, Desktop
Environment) es un conjunto de software para
ofrecer al usuario de una computadora una
interaccin amigable y cmoda.
El software es una solucin completa de interfaz
grfica de usuario o GUI, ofrece iconos, barras de
herramientas, programas e integracin entre
aplicaciones con habilidades como, arrastrar y soltar
[12].

ltimo Nivel de Seguridad y


Contrafuegos. (Figura 13)

Esta herramienta permite realizar


las configuraciones ms bsicas
del firewall. Si el Cortafuegos se
encuentra deshabilitado, al hacer
un iptables L se tiene que el
firewall solo cuenta con las tres
cadenas definidas por defecto
con un comportamiento de
ACCEPT.(Figura 14)

Figura 14. Listado con el firewall deshabilitado


en la herramienta de Red Hat

Al habilitar el Cortafuegos, tiene


un listado de servicios que se
pueden
seleccionar:
Correo
(SMTP), FTP, NFS4, SSH,
Samba, Telnet, HTTP y HTTPS.
Adicionalmente tiene las opciones
para
agregar
puertos
manualmente. (Figura 15)

Servidor Firewall Sobre Linux Iptables

20

Figura 16. Listado despus de habilitar el firewall y


permitir acceso al puerto 22.

Esta utilidad facilita la labor de


abrir y cerrar puertos, pero no es
lo suficientemente completa ya
que slo permite agregar reglas
para la tabla Filter y no tiene
opciones para agregar cadenas
de las de las tablas NAT o
Mangle
2. Configuracin en modo grfico
con el gestor de escritorio
GNome en SuSe Enterprise
server versin 10 y la herramienta
YAST15.

Figura 15. Herramienta de configuracin


de Firewall de Red Hat

Al aplicarlas se crean las nuevas


reglas de manera automtica
permitiendo acceso a los puertos
habilitados y rechazando el trfico
para el resto.

Para invocar la herramienta, se


selecciona
el
icono
de
Computer y en la seccin de
aplicaciones se selecciona Yast
(Figura 17)

Figura 17. Invocacin de YaST.

En el centro de control de YaST,


se selecciona la categora de
Seguridad y usuarios y luego el
enlace al Cortafuegos.
____________________
15 YaST (acrnimo de Yet another Setup Tool, cuya
traduccin aproximada es "Otra Herramienta de
Configuracin Ms") es una aplicacin para la

Servidor Firewall Sobre Linux Iptables

21

distribucin de Linux openSUSE, as como las


versiones comerciales de SUSE Linux, que facilita la
administracin del sistema y la instalacin de
software. [13].

Figura 18. Centro de Control YaST.

Una vez abierta la configuracin


del cortafuegos, encontramos 7
mdulos que podemos configurar
del Firewall para Suse.

Figura 20. Configuracin Inicial

En Interfaces se configuran todos los


parmetros de las tarjetas de red.
Figura 21

Figura 21 Configuracin Interfaces

Figura 19. Mdulos de la


Configuracin del Firewall

En la parte de inicio, se configuran las


opciones de arranque de firewall
(manual / automtico). Figura 20

Los servicios autorizados es el mdulo


para administrar las conexiones que
van para las diferentes zonas y para
servicios como lo son telnet, ssh ftp,
etc. Aqu se configura la Tabla Filter
Figura 22.

Figura 22. Configuracin de Servicios Autorizados

Servidor Firewall Sobre Linux Iptables

22

Enmascaramiento. Permite realizar


cambios sobre las cadenas de la tabla
NAT. Figura 23

Las dos herramientas anteriores, nos


dieron la oportunidad de realizar una
configuracin grfica de iptables,
aunque YaST en ms avanzada que la
herramienta de Red Hat, no permite
realizar configuraciones avanzadas, y
la otra limitante que tienen es que
necesariamente hay que trabajar con
ellas localmente en la mquina.

Figura 23. Configuracin NAT

Conociendo estos limitantes, aparece


otra herramienta de configuracin
grfica Web Enabled16 que entre uno

El mdulo de difusin implica, de una


manera limitada, las polticas de
FORWARD que administra el Firewall.
Trabaja la tabla Filter. Figura 24

Figura 24. Configuracin de Difusin

El soporte IPSec. Permite administrar


los clientes que realizan conexiones de
este tipo en general.
El nivel de registro es una utilidad para
llevar la cuenta entre nmero de
paquetes aceptados, rechazados.
Aunque esta herramienta es mucho
ms completa que la de Red Hat, para
cualquiera de las dos es conveniente
conocer el funcionamiento de Iptables
desde abajo, ya que todos estos
programas trabajan sobre el iptables.
B.

Webmin

____________________
16. Web Enabled. Habilitado para usar mediante
una pgina Web. [14]

Servidor Firewall Sobre Linux Iptables

de sus mltiples servicios, permite


administrar el firewall de Linux basado
en iptables: Webmin.

23

BSD al contrario que la GPL permite el uso del


cdigo fuente en software no libre. [16]

Qu es Webmin?
Webmin es una interfaz Web para
administrar
sistemas
Unix17.
Mediante el uso de cualquier
navegador web, usted puede
configurar cuentas de usuario,
Apache,
DNS,
archivos
compartidos y mucho ms.
Webmin quita la necesidad de
editar manualmente los archivos
de configuracin de Unix como
/etc/passwd, y le permite manejar
el sistema desde la consola o
remotamente. [15]
Webmin fue desarrollado por el
australiano Jamie Cameron y liberado
bajo
licencia
BSD18.
Incluye
numerosos mdulos que permiten
configurar y administrar gran variedad
de sistemas operativos incluyendo
Windows aunque de una manera
limitada.

Figura 26. Ingreso a Webmin

Para ingresar se debe autenticar como


sper usuario o root. Posteriormente
en el panel de la izquierda, en el
listado de los mdulos se elige el
mdulo Networking y posteriormente,
Linux Firewall. (Figura 27)

La instalacin y configuracin es muy


sencilla, por ello se obviar este tema y
se
pasar
directamente
a
la
configuracin del firewall que es el
tema central de este trabajo. Para
ingresar a Webmin hay que hacerlo por
El puerto TCP 10000 usando SSL:
https://localhost:10000
___________________
17. Unix. Al referirse al sistema Unix, el autor se
refiere a todos los sistemas operativos estilo Unix
incluyendo Linux, Solaris y muchos otros.
18. Licencia BSD. La licencia BSD es la licencia de
software otorgada principalmente para los sistemas
BSD (Berkeley Software Distribution). Pertenece al
grupo de licencias de software Libre. La licencia

Figura 27. Enlace al administrador del Firewall

Luego de seleccionar ese enlace,


aparece la interfaz de administracin

Servidor Firewall Sobre Linux Iptables

de Firewall, la cual muestra la tabla


que se est trabajando, las cadenas
con sus reglas, las opciones para
modificarlas, la opcin de crear una
cadena nueva y en la parte inferior un
listado con las reglas para esta tabla.

24

La implementacin, configuracin y
puesta en marcha de un servidor
de seguridad para una red es un
proceso de mucho cuidado, se
debe realizar una planificacin y
una documentacin previa para
evitar que las vulnerabilidades de
la red interna sean explotadas.

No es una manera muy adecuada


de configurar un firewall en linux
utilizar las herramientas grficas
incluidas
en
las
diferentes
distribuciones de linux, tienen un
alcance limitado.

La implementacin de un Firewall
basado en iptables requiere un
usuario avanzado, puesto que su
administracin
es
compleja,
requiere conocimientos en temas
variados y adems debe cumplir
con la regla de transparencia sin
poner en peligro la seguridad.

La debilidad ms grande de
iptables es, al mismo tiempo, una
de sus mayores fortalezas. Cuanto
ms detallado sea el proceso de
creacin de cadenas y reglas, ms
seguro va a ser el firewall.

Es una buena prctica asegurarse


que no haya ningn firewall
configurado previamente a la
implementacin que se vaya a
realizar.

Figura 28. Interfaz de configuracin del Firewall.

Mediante esta herramienta se pueden


definir todo tipo de cadenas y reglas
para cualquiera de las tres tablas del
iptables, aunque no es tan sencilla de
manejar como la herramienta YaST de
Suse, es mucho ms completa, ofrece
casi las mismas posibilidades de
configurar el iptables como si se
estuviera trabajando en modo texto.
Al igual que las anteriores, es
imperativo saber manejar el tema de
reglas y cadenas para lograr una
buena administracin del servidor, de
lo contrario se corre el riesgo de
bloquear las comunicaciones de la red.
VI. CONCLUSIONES Y
RECOMENDACIONES
De acuerdo a lo trabajado en este
curso, se puede concluir lo siguiente:

Las
siguientes
son
algunas
recomendaciones sobre el tema.

Se propone que antes de la


configuracin de un firewall debe
haber un proceso de levantamiento
de informacin muy completo.

Servidor Firewall Sobre Linux Iptables

Aunque es ms costoso de
administrar, se propone que el
firewall que tenga como poltica por
defecto DENEGAR.

Se propone el uso de un script


nico de configuracin de las
cadenas y reglas de un firewall.

Se propone que en todo script de


configuracin de reglas, siempre
se incluya al principio un conjunto
de reglas que borren y/o que dejen
en cero cualquier regla que pudiera
estar vigente previamente.
REFERENCES

25

[5] Network Address Translation.


Wikipedia [Online] 2002 [Citado en
Marzo de 2009]. Disponible en Internet:
http://en.wikipedia.org/wiki/Network_ad
dress_translation
[6]
Ingeniera
social
(seguridad
informtica). Wikipedia [Online] 2005
[Citado en Marzo de 2009]. Disponible
en Internet:
http://es.wikipedia.org/wiki/Ingenier
%C3%ADa_social_(seguridad_inform
%C3%A1tica)
[7] Maximum Transmission Unit.
Wikipedia [Online] 2002 [Citado en
Marzo de 2009]. Disponible en Internet:
http://en.wikipedia.org/wiki/Maximum_tr
ansmission_unit

[1] FREED N. Request For Comment


2979 [Online] [Citado en Marzo de
2009]. Octubre de 2000. Disponible en
Internet:
http://www.ietf.org/rfc/rfc2979.txt

[8] ICMP. Wikipedia [Online] 2002


[Citado en Marzo de 2009]. Disponible
en Internet:
http://es.wikipedia.org/wiki/ICMP

[2] The netfilter.org iptables Project


[Online] 2008 [Citado en Marzo de
2009]. Disponible en Internet:
http://www.netfilter.org/projects/iptables
/index.html

[9] SMTP (Simple Mail Transfer


Protocol). Wikipedia [Online] 2003
[Citado en Marzo de 2009]. Disponible
en Internet:
http://es.wikipedia.org/wiki/Simple_Mail
_Transfer_Protocol

[3] Modelo OSI. Wikipedia [Online]


2001 [Citado en Marzo de 2009].
Disponible en Internet:
http://es.wikipedia.org/wiki/Internetwork
_Operating_System

[10] EHLO (Extended HELO) Wikipedia


[Online] 2003 [Citado en Marzo de
2009].
Disponible
en
Internet:
http://es.wikipedia.org/wiki/Simple_Mail
_Transfer_Protocol

[4] Protocolo IP. Wikipedia [Online]


2003 [Citado en Marzo de 2009].
Disponible en Internet:
http://es.wikipedia.org/wiki/Protocolo_I
P

[11] Script. Wikipedia [Online] 2004


[Citado en Marzo de 2009]. Disponible
en Internet:
http://es.wikipedia.org/wiki/Script
[12] Entorno de Escritorio. Wikipedia
[Online] 2003 [Citado en Marzo de
2009]. Disponible en Internet:

Servidor Firewall Sobre Linux Iptables

http://es.wikipedia.org/wiki/Entorno_de
_escritorio
[13] YaST. Wikipedia [Online] 2004
[Citado en Marzo de 2009]. Disponible
en Internet:
http://es.wikipedia.org/wiki/YaST
[14] Web Enabled. The Free Dictionary
by Farlex [Online] 2009 [Citado en
Marzo de 2009]. Disponible en Internet:
http://encyclopedia2.thefreedictionary.c
om/Web+enabled

26

[15] Webmin. [Online] 2006 [Citado en


Marzo de 2009]. Disponible en Internet:
http://www.webmin.com/
[16] BSD License. Wikipedia [Online]
2004 [Citado en Marzo de 2009].
Disponible en Internet:
http://es.wikipedia.org/wiki/BSD_licens
e

También podría gustarte