Tema: Firewall basado en IPTABLES.

Anuncio
Seguridad en redes. Guía 4
1
Facultad: Ingeniería
Escuela: Electrónica
Asignatura: Seguridad en redes
Tema: Firewall basado en IPTABLES.
Contenidos
 Cadenas INPUT
 Cadenas OUPUT

Objetivos Específicos
 Configurar un Firewall de Software basado en Linux conocido como IPTABLES.
 Dar a conocer el filtrado de paquetes.
 Reconocer los requerimientos de configuración de INPUT, OUTPUT.
Materiales y Equipo
 PC con Linux instalado.
Introducción Teórica
Iptables
es un firewall incluido en el kernel de Linux desde la versión 2.4 que está incluido en
Bibliografía
el sistema operativo. Es un firewall basado en reglas, su funcionamiento se basa en aplicar
reglas que el mismo firewall ejecute.
Guía 1
Opciones de comandos de IPtables.
Opción
-A
-C
-D
-E
-F
-h
-I
-L
Descripción
Añade la regla comando utilizado para simplemente añadir una regla, las reglas
en la cadena no importa.
Verifica una regla en particular antes de añadirla en la cadena especificada por el
usuario. Este comando puede ser de ayuda para construir reglas iptables.
Borra una regla de una cadena en particular por número. Puede también teclear
la regla entera e iptables borrará la regla en la cadena que corresponda.
Renombra una cadena definida por el usuario. Esto no afecta la estructura de la
tabla.
Libera la cadena seleccionada, que borra cada regla de la cadena. Si no se
especifica ninguna cadena, este comando libera cada regla de cada cadena.
Proporciona un resumen rápido de parámetros de comandos y opciones.
Inserta una regla en una cadena en un punto especificado por un valor entero
definido por el usuario. Si no se especifica ningún número, colocará el comando
en el tope de la cadena.
Lista todas las reglas de la cadena especificada tras el comando.
2 Seguridad en redes. Guía 4
-V
Muestra información detallada. Esta opción muestra el nombre de la interface, los
contadores de Byte/Paquetes.
Muestra las direcciones IP y los puertos de visualización en formato numérico.
-n
--linenumbers
-N
-P
-R
-X
-Z
Enumera las reglas, según orden de verificación.
Crea una nueva cadena con un nombre especificado por el usuario.
Configura la política por defecto para una cadena en particular, de tal forma que,
cuando los paquetes atraviesen la cadena completa sin cumplir ninguna regla,
serán enviados a un objetivo en particular, como puedan ser ACCEPT o DROP.
Reemplaza una regla en una cadena particular. El número de la regla debe ser
especificado después del nombre de la cadena. La primera regla en una cadena
corresponde a la regla número uno.
Borra una cadena especificada por el usuario. No se permite borrar ninguna de
las cadenas predefinidas para cualquier tabla.
Pone ceros en los contadores de byte y de paquete en todas las cadenas de una
tabla en particular.
Tabla 1. Comandos IPtables.
Reglas específicas.
Las opciones más comunes son:
Regla
-A
-o
-i
-j
-m
--state
--to-source
-s
-d
--sport
--dport
-t
-p
Descripción
Añade una cadena, la opción -i define una interfaz de tráfico entrante
Define una interfaz para trafico saliente
Define una interfaz para trafico entrante
Establece una regla de destino del tráfico, que puede ser ACCEPT, DROP o
REJECT.
Define que se aplica la regla si hay una coincidencia específica
Define una lista separada por comas de distinto tipos de estados de las
conexiones (INVALID, ESTABLISHED, NEW, RELATED).
Define que IP reportar al tráfico externo
Define tráfico de origen
Define tráfico de destino
Define el puerto o rango de puertos (:) desde el que se origina la conexión
Define el puerto rango de puertos (:) hacia el que se dirige la conexión
Tabla a utilizar, pueden ser nat, filter, mangle o raw.
Define el tipo de protocolo
Tabla 2. Opciones de Regla.
Procedimiento
Bibliografía
1. En Ubuntu, abra una terminal de comandos
(ctrl + alt + T) y pase al modo root (se
solicitara la contraseña del sistema: 123456).
Guía 1
Seguridad en redes. Guía 4
3
redes@labredes: ̴ $sudo -i
2. Verifique que su computadora pertenezca a la red 10.0.17.0/24 utilizando el comando
ifconfig.
3. Solicite a dos de sus compañeros su dirección IP y su dirección MAC, sus compañeros
los nombraremos Cliente 1 (C1) y Cliente 2 (C2).
Dirección IP
IPC1:
IPC2:
Dirección MAC
MACC1:
MACC2:
4. Realice pruebas de conexión con sus compañeros, utilizando la herramienta ping.
Parte I. Cadenas INPUT
1. En la terminal, verifique el estado del firewall con el siguiente comando.
root@labredes:~# iptables –L -n -v
Observe la información de las cadenas INPUT, OUPUT y FORWARD.
EJERCICIO 1: Permitiremos el ping al usuario cliente 1 y bloquearemos ping al usuario
cliente2.
5. Implementamos las reglas necesarias para el ejercicio. Deberá reemplazar los
nombres IPC1 e IPC2 por las correspondientes IP.
a. Permitir el ping a la IP de la Cliente 1.
root@labredes:~# iptables -t filter -A INPUT -s IPC1 -p icmp -j ACCEPT
b. Denegar el ping a la IP de la Cliente 2.
root@labredes:~# iptables -t filter -A INPUT -s IPC2 -p icmp -j DROP
c. Ver las políticas creadas. Observe el dato de cantidad de paquetes pkts
root@labredes:~# iptables -L -n -v
d. Realizar pruebas. Utilice el comando ping -c 10 <IP>

Ping desde Cliente 1 a su firewall, en este caso debería de ser exitoso.
4 Seguridad en redes. Guía 4

Ping desde Cliente 2 a su firewall, en este caso debería de ser fallido.
6. Verifique el estado del firewall, nuevamente observe el parámetro de paquetes pkts.
7. Agregue una tercera regla, esta vez para Cliente 1, cambie la acción ACCEPT por
REJECT (rechazar). Observe las reglas creadas.
root@labredes:~# iptables -t filter -A INPUT -s IPC1 -p icmp -j REJECT
root@labredes:~# iptables -L -n -v --line-numbers
8. Realice nuevamente ping desde Cliente 1 a su firewall. Analice el por qué aún es
exitoso el ping.
9. Ahora elimine la regla número 1 y compruebe su eliminación.
root@labredes:~# iptables -D INPUT 1
root@labredes:~# iptables -L -n -v --line-numbers
10. Realice nuevamente ping desde Cliente 1 a su firewall, esta vez deberá de ser
rechazado.
11. Si usted quiere insertar una regla a una posición en específico deberá realizar lo
siguiente:
root@labredes:~# iptables -I INPUT 1 -s IPC1 -p icmp -j ACCEPT
Nota: Se ha agregado la regla a la posición 1, por lo que el ping deberá ser exitoso
nuevamente.
12. Dar un flush para eliminar todas las políticas existentes creadas en el ejercicio
anterior.
root@labredes:~# iptables -F
13. Tenga en cuenta, que por defecto la acción es ACCEPT para todo aquello que no esté
especificada en una regla (figura 1).
Figura 1. Acciones por defecto.
Si usted quiere cambiar la acción por defecto lo pude hacer con el siguiente comando:
Seguridad en redes. Guía 4
5
root@labredes:~# iptables -P INPUT DROP
Para no entorpecer a usted y a sus compañeros, la acción por defecto se deberá de dejar en
ACCEPT.
EJERCICIO 2: Establecer la administración del firewall vía SSH, donde solo el Cliente 2
podrá acceder por SSH y todo lo demás de la red denegarlo.
14. Comprobar que tanto Cliente 1 y Cliente 2 pueden acceder vía SSH a su firewall
root@labredes:~# ssh redes@<IPFirewall>
15. No olvide cerrar la conexión ssh en los clientes.
a. Permitir conexión ssh a Cliente 2.
root@labredes:~# iptables
-t filter -A INPUT -s IPC2 -d IP_FIREWALL -p tcp --dport 22 -j ACCEPT
b. Denegar todo lo demás de la red al puerto 22.
root@labredes:~# iptables -t filter -A INPUT -d IP_FIREWALL -p tcp --dport 22 -j DROP
16. Ver las políticas creadas.
root@labredes:~# iptables -L -n -v --line-numbers
17. Realice las pruebas necesarias para comprobar el funcionamiento de las reglas
creadas.
18. Si en el caso que nuestro firewall tuviera varias interfaces, tendríamos que especificar
la interface donde queremos permitir la conexión SSH, por ejemplo escriba.
root@labredes:~# iptables -t filter -A INPUT -i eth0 -s IPC2 -d IP_FIREWALL -p tcp -dport 22 -j ACCEPT
19. Una buena medida de seguridad es bloquear y prevenir ataques de DDoS a nuestro
firewall por el puerto 80.
root@labredes:~# iptables -A INPUT -p tcp --dport 80 -m limit --limit 25/minute –limit-burst
100 -j ACCEPT
20. Rechacemos el tráfico restante de entrada.
root@labredes:~# iptables -t filter -A INPUT -j REJECT
21. Ver las políticas creadas.
root@labredes:~# iptables -L -n -v --line-numbers
6 Seguridad en redes. Guía 4
22. Ahora anexaremos una regla a la cadena en la posición X, que permita la conexión
SSH desde Cliente 1 “IPC1” por medio de su MAC “MACC1”, analice la posición X
donde deberemos colocar nuestra regla para que funcione correctamente
root@labredes:~# iptables -I INPUT X -d IP_FIREWALL -m mac --mac-source MACC1 -p
tcp --dport 22 -j ACCEPT
23. Compruebe el funcionamiento de la regla anterior. Deberá tener acceso SSH solamente con la
PC cuya MAC se configuro en la regla.
Parte II. Cadenas OUTPUT
Ejercicio 1: Configurar la máquina de tal manera que no pueda tener acceso a navegar por
internet.
1.
Dar un flush para eliminar todas las políticas existentes creadas en el ejercicio
anterior.
root@labredes:~# iptables -F
2. Corrobore que tiene acceso a internet.
3. Bloquear la navegación web desde su máquina, para eso como se está usando el
puerto 80 de la universidad, seria bloquear ese puerto desde nuestra máquina.
root@labredes:~# iptables -t filter -A OUTPUT -s IP_FIREWALL -p tcp --dport 80 -j DROP
4. Verificar la política.
root@labredes:~# iptables -L -n -v --line-numbers
5. Realizar pruebas de navegación, como resultado tiene que denegar el tráfico web.
6. Dar un flush para eliminar todas las políticas existentes creadas.
root@labredes:~# iptables -F
7. Realizar pruebas de navegación a internet, como resultado tiene que permitir
nuevamente el tráfico web.
Ejercicio 2: denegar el acceso a páginas web específicas: www.facebook.com y
www.udb.edu.sv
1. Verifique que pueda acceder a las páginas mencionadas.
2. Bloquee las páginas:
root@labredes:~# iptables -A OUTPUT -p tcp -d www.facebook.com -j DROP
root@labredes:~# iptables -A OUTPUT -p tcp -d www.udb.edu.sv -j DROP
Seguridad en redes. Guía 4
7
3. Realice las pruebas necesarias para verificar el funcionamiento de las reglas. Trate de acceder
a las páginas bloqueadas y a otros sitios.
Ejercicio 3: No permita ping desde cualquier origen hacia su firewall, pero desde su firewall
podrá realizar ping (por ejemplo ping hacia 10.0.17.1, 168.243.3.3 e internet) siempre y
cuando la dirección IP de su Firewall este en el rango 10.0.17.11/24 – 10.0.17.30/24.
root@labredes:~# iptables -F
root@labredes:~# iptables -A INPUT -m iprange --dst-range 10.0.17.11-10.0.17.30 -p
icmp --icmp-type echo-reply –j ACCEPT
root@labredes:~# iptables -A INPUT -s 0.0.0.0/0 -d IPFirewall -p icmp -j DROP
Para las pruebas de funcionamiento deberá de solicitar que sus compañeros le realicen ping
a su firewall, estas pruebas debe ser no exitosas por estar denegadas.
Desde su firewall realice ping hacia las direcciones descritas anteriormente, realice la prueba
con una IP de su firewall fuera del rango de IP (debe de ser no exitosa) y otra prueba dentro
del rango (debe ser exitosa).
Para especificar rangos de IP de origen puede ser utilizado la opción --scr-range
Descargar