Que el estudiante: • Conozca sobre el filtrado de paquetes

Anuncio
UNIVERSIDAD DON BOSCO
FACULTAD DE ESTUDIOS TECNOLÓGICOS
ESCUELA DE COMPUTACIÓN
CICLO: I-2015
GUIA DE LABORATORIO #7
Nombre de la Practica: IPTables
Lugar:
Laboratorio de Redes
Tiempo Estimado:
2 Horas y 30 Minutos
Materia:
Seguridad en Redes
Que el estudiante:



Conozca sobre el filtrado de paquetes.
Reconozca los requerimientos de configuración de INPUT y OUTPUT.
Configure un Firewall de software basado en Linux conocido como IPTables.
Linux contiene herramientas avanzadas para el filtrado de paquetes de red, Los Kernels anteriores a 2.4
confiaban en IPChains para el filtrado de paquetes y usaban listas de reglas aplicadas a los paquetes en
cada paso del proceso de filtrado. La introducción del Kernel 2.4 trajo consigo IPTables, lo cual es similar
a IPChains pero expande enormemente el ámbito y el control disponible para el filtrado de paquetes de
red.
¿Qué es IPTables?
Es un sistema de firewall vinculado al Kernel de Linux que se ha extendido enormemente a partir del
Kernel 2.4. Al igual que el anterior sistema IPChains, un firewall de IPTables no es como un servidor que
iniciamos o detenemos o que se pueda caer por un error de programación (aunque cabe mencionar
vulnerabilidades que permite DoS), IPTables está integrado con el Kernel, es parte del sistema operativo.
¿Cómo funcionan?
Realmente lo que se hace es aplicar reglas. Para ello se ejecuta el comando iptables, con el que
añadimos, borramos o creamos reaglas. Por ello un firewall de iptables no es sino un simple script de
Shell en el que se van ejecutando las reglas de firewall.
Tablas, Cadenas y Reglas
Tablas:
Desde que un paquete de red llega a la interfaz del equipo, hasta que se procesa y se actúa en
consecuencia según su contenido, el Kernel de los sistemas GNU/Linux realizan distintas operaciones con
el mismo. Para ello, IPTables se vale de un sistema de estructuración en tablas, en cada una de las cuales
se pasa por distinta fases o cadenas. De esta forma podemos encontrar que cualquier paquete de red
tratado por el sistema pasará por las siguientes tablas:

Mangle: En esta tabla se pueden realizar manipulaciones de los paquetes. Esto significa que,
mediante las reglas debidamente introducidas a IPTables, será posible modificar de los campos
que sólo estarán al alcance de esta tabla durante el tránsito del paquete por la pila de red del
sistema. Dicho campos serán:
1.
2.
3.
4.

TOS (TYPE OF SERVICE).
TTL (TIME TO LIVE).
MARK.
SECMARK Y CONNSECMARK.
NAT: Tabla empleada para labores de NAT (Network Address Translation), es decir, a través de
ella se opera sobre los paquetes de los cuales se desee modificar la dirección de origen o
destino, Con ella se podrán realizar modificaciones en los paquetes con diversos objetivos:
1.
2.
3.
4.
DNAT.
SNAT.
MASQUERADE.
REDIRECT.

Raw: Manipulación a bajo nivel de los paquetes. Empleado principalmente para efectuar una
marca en el paquete para evitar que sea interpretador por sistema de seguimiento de conexión.

Filter: Una de las más importantes y, junto a NAT, de las más relevantes a efectos de
configuración de firewalls con IPTables. A través de ella se realiza la aceptación, descarte o
rechazo de los paquetes en función de las reglas predefinidas.
Cadenas:
Cada una de las tablas anteriores podrá hacer uso de las respectivas cadenas que tenga asociadas. Las
cadenas disponibles en función del tipo de tráfico filtrado son las siguientes:



PREROUTING: Tráfico entrante a la máquina, incluido el dirigido a la maquina en sí, antes de que
sea tomada ninguna decisión de encaminamiento sobre el mismo. Debe tenerse en cuenta que
no todo el tráfico recibido por la maquina deberá ir dirigido a la misma, pues esta puede tratarse
de un sistema intermedio, por ejemplo, que comunique toda una red de área local con Internet.
INPUT: Tan sólo el tráfico que vaya destinado a la propia máquina.
FORWARD: Aquí se engloba todo el tráfico que pase por la máquina, pero que no sea generado
por la misma ni enviado directamente a ella.


OUTPUT: Aquel tráfico que sea generado de forma local por el sistema, que puede tener como
destino la propia máquina o cualquier otra.
POSTROUTING: Tráfico de salida, que puede haber sido generado por la misma máquina o por
cualquier otra.
Reglas:
Una vez el paquete concuerde con los parámetros fijados en una de las reglas, se efectuará sobre el
mismo la acción que predefinamos, mediante el parámetro –j. Existe un amplio número de posibles
operaciones con el paquete, sin embargo las más importantes son:



ACCEPT: permitir que el paquete continúe normalmente
DROP: descargar dicho paquete.
REJECT: descartar el paquete pero enviando al emisor del mismo un mensaje de error ICMP con
el código “port unreachable” de forma que tenga constancia de que el paquete que envió ha
sido eliminado.
Parámetros más utilizados a la hora de crear las reglas:





-p: indica el protocolo encapsulado en el campo de datos del paquete IP, que podrá tener el
valor tcp, udp, icmp o all.
-s: la dirección IP que figura como origen del paquete. Se acepta también, aunque no se
recomienda, el poner como parámetro un nombre de host.
-d: semejante al parámetro anterior pero en este caso con el destino del paquete.
-i: interfaz de red local por la que se ha recibido el paquete.
-o: interfaz de red local por la que mandará el paquete.
No.
1
2
Requerimiento
Guía de Laboratorio
PC con VB con OS CentOS
Cantidad
1
1
PARTE I:
La primera parte será desarrollada en grupos de 3 estudiantes. Cada uno deberá de realizar las funciones
de cliente y de firewall respectivamente. El esquema a seguir será el siguiente:
EJERCICIO 1: Denegar el ping al Usuario “Cliente 1” y permitir el ping al Usuario “Cliente 2”.
Procedimiento para la PC servidor:
1. Ingresamos como super usuario root a la PC que servirá como firewall, una vez dentro verificar el
estado del servicio de IPTables (service iptables status), en caso de estar detenido, inícielo
mediante el comando service iptables start ( si en algún momento necesita detener el servicio
utilice: service iptables stop).
2. Dar un flush para eliminar todas las políticas existentes (si existieran).
# iptables –F
3. Creamos las reglas necesarias:
a) Permitir el ping a la IP de la PC 1.
# iptables -t filter -A INPUT -s IP_PC1 -p icmp -j ACCEPT
Nota: recuerde cambiar IP_PC1 por la IP correspondiente a la PC1
b) Denegar el ping a la IP PC 2.
# iptables -t filter -A INPUT -s IP_PC2 -p icmp -j DROP
Nota: recuerde cambiar IP_PC2 por la IP correspondiente a la PC2
c) Ver las reglas creadas.
# iptables -L -n
Pruebas por parte de los Clientes (PC1 y PC2)
4. Realizar pruebas
a) De ping de la PC1 al firewall, en este caso debería de ser exitoso.
b) De ping de la PC2 al firewall, en este caso debería de ser fallido.
Nota: como se puede apreciar estas dos reglas permiten el ping de la PC1 y bloquean el ping de la PC2
hacia el servidor, modifique las reglas de tal manera que el ping permitido sea el de la PC2 y el
denegado sea el de la PC1. Llame a su docente para verificar que en efecto funcione.
5. Cambie de roles, ahora el que realizo pruebas de cliente será el servidor y viceversa, así hasta
que los 3 hayan realizado pruebas como servidor y cliente, repita los pasos de la PARTE I:
EJERCICIO 1.
EJERCICIO 2: Establecer la administración del firewall vía SSH.
Procedimiento para la PC servidor:
1. Dar un flush para eliminar todas las políticas existentes creadas en el ejercicio anterior.
# iptables -F
2. Permitir conexión ssh a la PC1.
# iptables -t filter -A INPUT -s IP_PC1 -d IP_FIREWALL -p tcp - -dport 22 -j ACCEPT
Nota: Cambiar IP_PC1 e IP_FIRWALL por las IP’s Correspondientes.
3. Denegar todo lo demás de la red
# iptables -t filter -A INPUT -j DROP
4. Ver las reglas creadas.
# iptables -L -n
Pruebas por parte de los Clientes (PC1 y PC2)
5. Para poder realizar las pruebas se debe de estar ejecutando el servidor SSHD en el firewall,
verifíquelo mediante el comando # service sshd status>, si está parado habilítelo con # service
sshd start.
Desde la PC1:
Ejecutar en la consola como super usuario root e ingresar lo siguiente:
# ssh IP_FIREWALL
Nota: Cambiar IP_FIREWALL por la correspondiente al firewall.
Como resultado se tiene que conectar, una vez dentro del servidor para verificar que
efectivamente se está dentro ejecutar el comando # iptables -L -n para que se enlisten las reglas
configuradas previamente.
Desde la PC2:
Ejecutar en la consola como super usuario root e ingresar lo siguiente:
# ssh IP_FIREWALL
Nota: Cambiar IP_FIREWALL por la correspondiente al firewall.
Como resultado no se podría conectar al firewall por SSH.
6. Cambie de roles, ahora el que realizo pruebas de cliente será el servidor y viceversa, así hasta
que los 3 hayan realizado pruebas como servidor y cliente, repita los pasos de la PARTE I:
EJERCICIO 2.
PARTE II:
La segunda parte será desarrollada de forma individual.
EJERCICIO 1: Configurar la máquina de tal manera que pueda tener acceso a Internet.
1. Dar un flush para eliminar todas las políticas existentes creadas en el ejercicio anterior
# iptables -F
2. Bloquear la navegación web desde su máquina (en caso el navegador tenga el proxy de la
universidad utilice el puerto 8080).
# iptables -t filter -A OUTPUT -s IP_PROPIA -p tcp - -dport 80/8080 -j DROP
3. Verificar la reglas creadas
# iptables -L -n
4. Realizar pruebas de navegación con el navegador de Internet, como resultado tiene que denegar
el tráfico web.
5. Dar un flush para eliminar las reglas existentes creadas.
# iptables -F
6. Realizar pruebas de navegación con el navegador de Internet, como resultado tiene que permitir
nuevamente el tráfico web.
EJERCICIO 2: Denegar el ping desde mi host local hacia cualquier máquina, pero permitir la navegación
web
1. Dar un flush para eliminar las reglas existentes creadas en el ejercicio anterior
# iptables -F
2. Denegar los paquetes utilizados por el comando ping (paquetes icmp).
# iptables -t filter -A OUTPUT -p icmp -j DROP
3. Permitir la navegación web desde tu maquina (en caso el navegador tenga el proxy de la universidad
utilice el puerto 8080).
# iptables -t filter -A OUTPUT -s IP_PROPIA -p tcp - -dport 80/8080 -j ACCEPT
Nota: Cambiar IP_PROPIA por su IP correspondiente
4. Verificar las reglas creadas.
# iptables -L -n
5. Realizar pruebas de navegación con el navegador de Internet, como resultado tiene que permitir el
tráfico web. También dar un ping hacia cualquier otra máquina, como resultado dicho ping debería de
ser rechazado.
6. Dar un flush para eliminar todas las reglas existentes creadas.
# iptables -F
1. Investigue los siguientes conceptos:
TOS (TYPE OF SERVICE), TTL (TIME TO LIVE), MARK, SECMARK Y CONNSECMARK, DNAT, SNAT,
MASQUERADE, REDIRECT.
2. Realice un manual sobre la configuración necesaria del firewall para bloquear las siguientes páginas
web: www.cepa.gob.sv, www.csj.gob.sv .www.mined.gob.sv.Toda la demás navegación web deberá
ser permitida. Haga uso de INPUT, OUTPUT, ACCEPT o DROP según crea conveniente.
Descargar