Actualizado el 21 de Marzo del 2018 (Publicado el 15 de Marzo del 2018)
1.598 visualizaciones desde el 15 de Marzo del 2018
388,3 KB
13 paginas
Creado hace 16a (11/01/2009)
Lo descargaste en la Web de Yoshiro
Curso de Iptables
Por: Maikel Stinga Ruiz
Daniel Fernández Garrido
1
Lo descargaste en la Web de Yoshiro
Índice
Pág
1. Configurar un firewall en Linux con iptables
2. ¿Qué es iptables?
3. Características del firewall a crear
4. Uso básico de iptables
5. Creación del firewall
6. Guardar y reusar nuestra configuración
3
5
6
7
9
12
de iptables
2
Lo descargaste en la Web de Yoshiro
Configurar un firewall en Linux con iptables
Muchas son hoy en día las personas que se conectan, de una
manera u otra, a Internet. Desde empresas que operan en
la red hasta personas en sus casas que pasan un rato divertido
navegando por sus páginas preferidas. Pero pocas de
estas personas entienden realmente las consecuencias que tiene
el abrir sus sistemas informáticos a Internet, unas
consecuencias que no sólo son de carácter benigno e incluso
beneficioso. El bien que obtenemos de Internet tiene un
precio: Internet no es un lugar seguro.
Al igual que en cualquier sociedad, en Internet existen buenas
intenciones, ayudas, compañerismo... pero también
existen mentes perversas y llenas de maldad. En Internet
existen personas decididas a hacer daño, pocas, pero es un
hecho que existen, y debemos protegernos de sus acciones, por
insignificantes que pensemos que somos. Es común
entre los navegantes más o menos habituales de Internet, que
nunca han tenido, o mejor dicho, creen que nunca han
tenido un problema de seguridad en sus sistemas, el pensar que
no es probable que lleguen jamás a recibir uno de
estos ataques por el simple hecho de no poseer nada de interés,
de no ser nadie importante. Esto es, claramente, falso.
Cualquiera puede ser presa de un ataque en la Red, cualquiera,
por insignificante que se pueda pensar que uno es. Es
3
Lo descargaste en la Web de Yoshiro
precisamente esa sensación de sentirse a salvo la que hace que
sea este tipo de gente el que tome, por lo general, las
menores precauciones, y por ello, al mismo tiempo, que se
conviertan en la presa más apetecible para aquéllos que
simplemente desean hacer daño, por el placer de hacerlo. Como
ejemplo, valgan los sorprendentes datos recogidos por
mí mismo como usuario de un proveedor de servicios Internet
(ISP) común en España, detectando los intentos de
atacar el puerto TCP 80 (servidor web) de mi ordenador
mientras estaba conectado a Internet, puerto que había dejado
abierto intencionadamente (aunque, naturalmente, protegiendo
mi servidor web) para guardar un log de los ataques que
se intentaban llevar a cabo. Los datos son los siguientes:Fechas:
del 19 de Septiembre al 21 de Noviembre de 2001
Promedio de horas de conexión diarias: 1,5 horas.
Intentos de ataque al puerto 80/tcp: 87
Lo cual nos da una idea del peligro que corre un usuario
cualquiera de Internet que no tome las precauciones mínimas,
teniendo en cuenta que soy alguien tan insignificante como
cualquier otro en la Red y que, de no ser porque deseaba
hacer ese estudio, posiblemente no hubiese podido detectar
dichos ataques, y por ello seguiría considerándome seguro.
Como dato, el 100% de los 87 ataques eran destinados a
servidores Microsoft Internet Information Server o Microsoft
Personal Web Server (afortunadamente yo tengo Apache), y se
trataba de intentos de ejecución de scripts malignos, de
intentos de ejecución de cgi's peligrosos y de explotar algún tipo
de buffer overflow en parámetros de algunos scripts de
estos servidores.
Por tanto, una vez visto que el peligro existe, es la hora de
hablar de qué es un firewall.
Un firewall es, por lo general, un software (puede ser también
un equipo hardware dedicado) a través del cual nos
conectamos a una red como Internet, y que sirve como filtro
4
Lo descargaste en la Web de Yoshiro
sobre el tráfico que por él pasa, en ambas direcciones, y
que en un momento dado puede rechazar cierto tráfico en
alguna de las direcciones.
Eso quiere decir que, mediante un firewall, podemos detectar el
tráfico no deseado hacia nuestros sistemas, y en
general, los posibles ataques de que seamos objeto. De esta
manera podremos aislar nuestros equipos del exterior,
permitiendo nuestro uso de Internet de manera absolutamente
normal pero minimizando en lo posible la probabilidad de
padecer las consecuencias de un ataque.
Así pues, ante la pregunta ¿Necesito un firewall? queda ya
suficientemente patente que la respuesta es, sin lugar a
ninguna duda, sí.
Este artículo cubrirá la configuración de un típico firewall
doméstico, que permita conectarse a Internet de una manera
segura y cerrar los puertos TCP y UDP que nos puedan causar
problemas.
¿Qué es iptables?
iptables es la herramienta que nos permite configurar las reglas
del sistema de filtrado de paquetes del kernel de Linux,
desde su versión 2.4 (en 2.2 era ipchains). Con esta
herramienta, podremos crearnos un firewall adaptado a
nuestras
necesidades. Su funcionamiento es simple: a iptables se le
proporcionan unas reglas, especificando cada una de ellas
unas determinadas características que debe cumplir un
paquete. Además, se especifica para esa regla una acción o
target. Las reglas tienen un orden, y cuando se recibe o se envía
un paquete, las reglas se recorren en orden hasta que
las condiciones que pide una de ellas se cumplen en el paquete,
y la regla se activa realizando sobre el paquete la acción
que le haya sido especificada. Estas acciones se plasman en los
5
Lo descargaste en la Web de Yoshiro
que se denominan targets, que indican lo que se debe
hacer con el paquete. Los más usados son bastante explícitos:
ACCEPT, DROP y REJECT, pero también hay otros
que nos permiten funcionalidades añadidas y algunas veces
interesantes: LOG, MIRROR...En cuanto a los paquetes, el
total del sistema de filtrado de paquetes del kernel se divide en
tres tablas, cada una con varias chains a las que puede
pertenecer un paquete, de la siguiente manera.
● filter: Tabla por defecto, para los paquetes que se refieran a
nuestra máquina
● INPUT: Paquetes recibidos para nuestro sistema
● FORWARD: Paquetes enrutados a través de nuestro sistema
● OUTPUT: Paquetes generados en nuestro sistema y que son
enviados
● nat: Tabla referida a los paquetes enrutados en un sistema
con Masquerading
● PREROUTING: Para alterar los paquetes según entren
● OUTPUT: Para alterar paquetes generados localmente antes
de enrutar
● POSTROUTING: Para alterar los paquetes cuando están a
● mangle: Alteraciones más especiales de paquetes
● PREROUTING: Para alterar los paquetes entrantes antes de
punto para salir
enrutar
● OUTPUT: Para alterar los paquetes generados localmente
antes de enrutar
Dado que el soporte para el firewall está integrado en el kernel
de Linux (Netfilter), para poder usar iptables tendremos
que asegurarnos de que nuestro núcleo admite el uso de iptables
y que añadimos a la configuración del núcleo todos
aquellos targets que vayamos a necesitar (aunque siempre es
bueno tener los más posibles).
6
Lo descargaste en la Web de Yoshiro
Características del firewall a crear
Para crear nuestro sencillo firewall doméstico, tendremos
primero que preguntarnos qué es lo que deseamos que haga.
Lo más usual, en un equipo que se usa para conexiones a
Internet de manera normal (no es servidor de nada, etc...)
es que deseemos de nuestro firewall lo siguiente:
● Que nos permita realizar conexiones TCP hacia afuera de
nuestra máquina (si no, no podríamos hacer casi nada).
● Que no permita realizar conexiones TCP desde afuera hacia
nuestra máquina, para evitar que alguien intente conectarse a
nuestros servidores web, ftp, telnet, X...
● Que permita el tráfico de paquetes TCP (paquetes que no
establezcan conexiones) en ambas direcciones, pues
necesitamos tráfico bidireccional de paquetes al usar casi
cualquier cosa en Internet.
● Que Prohíba el tráfico UDP desde afuera de nuestra máquina,
a excepción del necesario para las respuestas por parte de
nuestros servidores DNS, que provendrán de su puerto UDP
53.
● En caso de tener una intranet, que no aplique estas
restricciones al tráfico proveniente de y enviado hacia la
intranet, ya que en esta red interna probablemente sí nos
interese poder acceder remotamente a nuestra máquina.
Uso básico de iptables
Para crear nuestro firewall, necesitaremos ejecutar algunos
comandos básicos sobre iptables, como:Para crear una
nueva regla al final de las ya existentes en una chain
determinada:
7
Lo descargaste en la Web de Yoshiro
$ /sbin/iptables A [chain] [especificación_de_la_regla] [opciones]
Para insertar una regla en una posición determinada de la lista
de reglas de una chain determinada:
$ /sbin/iptables I [chain] [posición] [especificación_de_la_regla]
[opciones]
Para borrar una regla en una posición determinada de la lista
de reglas de una chain determinada:
$ /sbin/iptables D [chain] [posición]
Para todas las reglas de una chain determinada:
$ /sbin/iptables F [chain]
Para listar las reglas de una chain determinada:
$ /sbin/iptables L [chain]
La especificación de reglas se hace con los siguientes
parámetros (especificando aquellos que se necesite):
p [protocolo]: Protocolo al que pertenece el paquete.
s [origen]: dirección de origen de
Comentarios de: Curso de Iptables (0)
No hay comentarios