UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS ESCUELA DE COMPUTACIÓN CICLO: I-2015 GUIA DE LABORATORIO #8 Nombre de la Practica: IPTables Forward Lugar: Laboratorio de Redes Tiempo Estimado: 2 Horas y 30 Minutos Materia: Seguridad en Redes Que el estudiante: Conozca sobre el funcionamiento de las IPTables Forward. Aprenda como administrar de mejor forma las IPTables en SO GNU/Linux. 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 Ejemplo: se verá cómo implementar el uso de IPTables forward, pero únicamente a manera de ejemplo, se concentrará más en el manejo de administración de un listado de n IPTables. 1. Introducir un listado de 4 IPTables. 2. Primero aceptar el Messenger de Hotmail para un equipo en específico: # iptables –A FORWARD –s 192.168.20.101/24 –i eth1 –p tcp - -dport 1863 –j ACCEPT 3. Aceptar el Messenger de Yahoo para un equipo en específico: # iptables –A FORWARD –s 192.168.20.101/24 –i eth1 –p tcp - -dport 5050 –j ACCEPT 4. Restringir messenger de yahoo a los demas usuarios que pertenezcan a la red: # iptables –A FORWARD –s 192.168.20.0/24 –i eth1 –p tcp - -dport 5050 –j DROP 5. Restringir messenger de Hotmail a los demas usuarios que pertenezcan a la red: # iptables –A FORWARD –s 192.168.20.0/24 –i eth1 –p tcp - -dport 1863 –j DROP 6. Ahora verificamos las IPTables que hemos ingresado, además de ver el número de cada IPTables y así poder eliminar una IPTable en específico. # iptables –L –n - -line-numbers 7. Para no tener que borrar todas las IPTables si en algún momento se escribió una incorrectamente utilizamos el siguiente comando: # iptables –D FORWARD 2 8. Vea nuevamente las IPTables con sus números correspondientes y verifique que efectivamente se ha elimina la IPTable # donde aceptaba el messeger de yahoo por puerto 5050. 9. Si en algún momento deseamos ingresar una IPTable, pero no queremos que esta quede en la última de la lista, sino que un número específico utilizamos el siguiente comando: # iptables –I <CADENA> <NUMERO> <RESTO DE IPTABLE> 10. Para el caso vamos a ingresar la IPTable que eliminamos anteriormente # iptables –I FORWARD 2 –s 192.168.20.101/24 –i eth1 –p tcp - -dport 5050 –j ACCEPT. 11. Verifique que la IPTable se encuentra en la posición 2 EJERCICIO: Cree las reglas para permitir los puertos http (80), https (443), DNS (53) tanto protocolo udp como tcp y por ultimo ftp (21,20), esto para la red 192.168.10.0/24 y además permitir el puerto telnet (23) solo a la IP 192.168.10.17/24, denegar todo lo demás para la red. EJERCICIOS DE ENCRIPTACIÓN, USUARIOS Y GRUPOS E IPTABLES Encriptación: Ejercicio 1: Cree una carpeta dentro del escritorio, luego cree un documento de texto, el cual debe contener su nombre, carrera, carne. Ahora proceda a encriptar dicho archivo tanto de forma binaria como en formato ASCII. Ejercicio 2: Implementando el uso de scripts en bash realice un programa que permita encriptar archivos y des-encriptar dichos archivos, el programa debe preguntar la información del archivo, la ruta donde se guardara y si lo quiere en formato binario o ASCII. De igual forma para des-encriptar el programa deberá preguntar la ruta y mostrar los archivos encriptados que ahí se encuentren, para posteriormente elegir uno. Usuarios y grupos: Ejercicio 1: Crear 3 usuarios, Usuario_1 jefe de informática deberá tener todos los permisos sobre los archivos, tanto los de él como los demás, en el caso del Usuario_2 tendrá permiso de lectura y modificación de sus archivos, por último el Usuario_3 solo podrá leer sus archivos. Recuerde crear archivos.txt en cada usuario y scripts.sh sencillos para probar que efectivamente puedan ser ejecutados. Ejercicio 2: Se propone crear un entorno de trabajo para realizar prácticas, por tanto debe existir un maestro, alumnos (alumno1…alumno4) y grupos de práctica (grupo 1 y grupo2). Para las prácticas individuales, cada alumno tendrá un directorio /home/alumnoX. Dentro de él, deberá existir un archivo practica_individual1. Este archivo podrá ser visto por el profesor pero no podrá modificarlo. Cada alumno sólo tendrá acceso a sus archivos. Ejercicio 3: Tomando en cuenta los usuarios y grupos creados en el ejercicio 2, realice lo siguiente, crear dos carpetas en /home, una se llamara grupo1 y la otra grupo2, los alumnos 1 y 2 pertenecen al grupo 1 mientras que los alumnos 3 y 4 pertenecen al grupo 2, Todos los alumnos pertenecientes a un grupox puede escribir en el directorio del grupox pero no pueden leer ni escribir en el directorio de otros grupos. Los archivos dentro de los grupos podrán ser vistos y modificados por el profesor. Ejercicio 4: Siempre tomando en cuenta usuarios y grupos creados en el ejercicio 2, proceda a crear una carpeta en /home llamada clase_ser_linux, en el que todos los alumnos podrán crear y modificar sus archivos. Además podrán solo leer los demás alumnos y el profesor. Ejercicio 5: Realice un script en bash que me permita administrar usuarios y grupos de Linux, dicho programa tendrá que crear, modificar y eliminar usuarios y grupos, además de agregar usuarios a grupos si se necesitara. IPTables Ejercicio 1: Crear las reglas necesarias para permitir la navegación web, pero no permitiendo el acceso a Facebook, twitter, youtube, Instagram. Además aceptar el ping de dos PC, y permitir a una de ellas conexión por ssh, denegar ping de todas las demás PC. Ejercicio 2: Crear las reglas necesarias para permitir los puertos http, DNS y ftp, Además permita la conexión por shh de cualquier PC por ultimo denegar todo lo demás. Ejercicio 3: Crear un script en bash que me permita la administración de IPTables, crear, eliminar IPtable en específico, insertar, etc. Investigue como guardar las políticas de iptables y hacer un manual con las IPTables creadas de la Guía 7 y también de la Guía 8. Investigar sobre el funcionamiento de la Tabla NAT, agregar ejemplos.
© Copyright 2024