Servidores de Alta Disponibilidad v2

162
Servidores de Alta Disponibilidad

Transcript of Servidores de Alta Disponibilidad v2

Page 1: Servidores de Alta Disponibilidad v2

Servidores de

Alta

Disponibilidad

Page 2: Servidores de Alta Disponibilidad v2

2

CARERRAS PROFESIONALES CIBERTEC

Page 3: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 3

CIBERTEC CARRERAS PROFESIONALES

Índice

Presentación 5

Red de contenidos 6

Sesiones de aprendizaje

SEMANA 1 : RAID en Linux 7

SEMANA 2 : LVM en Linux 17

SEMANA 3 : TCP/IP Avanzado 33

SEMANA 4 : Stateful Packet Inspection Firewall I 45

SEMANA 5 : Stateful Packet Inspection Firewall II 59

SEMANA 6 : Stateful Packet Inspection Firewall III 73

SEMANA 9 : Proxy Application Firewall I 81

SEMANA 10 : Proxy Application Firewall II. 95

SEMANA 11 : Intrusión Detection Systems I 109

SEMANA 12 : Intrusión Detection Systems II 121

SEMANA 13 : Virtual Private Networks I. 131

SEMANA 14 : Virtual Private Networks II. 147

Page 4: Servidores de Alta Disponibilidad v2

4

CARERRAS PROFESIONALES CIBERTEC

Page 5: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 5

CIBERTEC CARRERAS PROFESIONALES

Presentación

El curso Linux Seguridad presenta, en las 3 primeras semanas, temas relacionados a la conceptos generales de seguridad de una red TCP/IP. Desde la cuarta semana, hasta la sexta semana, se enfoca en la configuración de un Stateful Packet Inspection Firewall (Proyecto Netfilter). En la sétima y octava semanas, se realizará la instalación y configuración de un Proxy Application Firewall (proyecto Squid). Adicionalmente, se realizará la instalación y configuración de un Intrusion Detection System – IDS (Proyecto Snort) que permite monitorear actividades hostiles o no en la red bajo su responsabilidad. Como último tema, se instalará y configurará una Virtual Private Networks – VPN. La distribución utilizada para la explicación del presente curso será CentOS Linux 5.0.

Page 6: Servidores de Alta Disponibilidad v2

6

CARERRAS PROFESIONALES CIBERTEC

RAID en Linux TEMA Configuracion del software RAID en LInux

OBJETIVOS ESPECÍFICOS Comprender que es un RAID

Conocer los tipos de RAID

Instalacion de herramientas par RAID MDADM

Implementar el RAID por software en Linux

CONTENIDOS RAID por software en Linux

Tipos de RAID soportados por LInux

Configuracion e implementación del RAID

S E M A N A

1

Page 7: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 7

CIBERTEC CARRERAS PROFESIONALES

1. ¿Qué es RAID?

En 1987, la Universidad de Berkeley (California), publicó un artículo describiendo varios tipos de arrays de discos, acuñando en el proceso el término RAID (acrónimo de Redundant Array of Inexpensive Disks). Básicamente, la idea era combinar múltiples discos [duros] independientes y pequeños en un array (o matriz) de disco capaz de alcanzar un rendimiento superior al de un sólo disco grande y caro, en otros términos, se pretendía hacer trabajar varios discos modestos como un disco profesional de alto rendimiento. Adicionalmente, el array de discos aparece ante el sistema como un disco lógico único. El tiempo transcurrido entre errores (MTBF) para el array de discos es, en el modelo teórico de la Universidad de Berkeley, igual al MTBF de un disco individual dividido por el número de discos presentes en el array. Esto se consigue alcanzando una cierta tolerancia a errores que pasa por guardar la información redundantemente de varios modos. En aquel documento original, también nacieron cinco tipos de arquitecturas RAID: desde RAID-1 hasta RAID-5 fueron definidas entonces, cada una de ellas proporcionando diferentes niveles de tolerancia a errores de disco y rendimientos. Después de aquello, también se ha ido poniendo de moda el término RAID-0 para designar los arrays de discos no redundantes. Hoy en dia, algunos de los niveles RAID originalmente definidos (concretamente, los niveles 2 y 3) son solo utilizados en sistemas muy especializados (El RAID por software de Linux no los soporta). También ha ido apareciendo un nuevo nivel denominado "lineal", y se ha ido haciendo frecuente esto de ver el nivel 0 combinado con el nivel 1, etc.

Page 8: Servidores de Alta Disponibilidad v2

8

CARERRAS PROFESIONALES CIBERTEC

2. Niveles RAID A continua cion se indica una breve descripción de los niveles RAID que soporta la capa de RAID por software de Linux. Gran parte de esto que vamos a ver son sólo los fundamentos teóricos de los sistemas RAID. El soporte RAID de Linux incorpora los siguientes niveles:

2.1. RAID 0: Disk Striping "La más alta transferencia, pero sin tolerancia a fallos".

También conocido como "separación ó fraccionamiento/ Striping". Los datos se desglosan en pequeños segmentos y se distribuyen entre varias unidades. Este nivel de "array" o matriz no ofrece tolerancia al fallo. Al no existir redundancia, RAID 0 no ofrece ninguna protección de los datos. El fallo de cualquier disco de la matriz tendría como resultado la pérdida de los datos y sería necesario restaurarlos desde una copia de seguridad. Por lo tanto, RAID 0 no se ajusta realmente al acrónimo RAID. Consiste en una serie de unidades de disco conectadas en paralelo que permiten una transferencia simultánea de datos a todos ellos, con lo que se obtiene una gran velocidad en las operaciones de lectura y escritura. La velocidad de transferencia de datos aumenta en relación al número de discos que forman el conjunto. Esto representa una gran ventaja en operaciones secuenciales con ficheros de gran tamaño. Por lo tanto, este array es aconsejable en aplicaciones de tratamiento de imágenes, audio, video o CAD/CAM, es decir, es una buena solución para cualquier aplicación que necesite un almacenamiento a gran velocidad pero que no requiera tolerancia a fallos. Se necesita un mínimo de dos unidades de disco para implementar una solución RAID 0.

Page 9: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 9

CIBERTEC CARRERAS PROFESIONALES

2.2. RAID 1: Mirroring "Redundancia. Más rápido que un disco y más seguro"

También llamado "Mirroring" o "Duplicación" (Creación de discos en espejo). Se basa en la utilización de discos adicionales sobre los que se realiza una copia en todo momento de los datos que se están modificando. RAID 1 ofrece una excelente disponibilidad de los datos mediante la redundancia total de los mismos. Para ello, se duplican todos los datos de una unidad o matriz en otra. De esta manera se asegura la integridad de los datos y la tolerancia al fallo, pues en caso de avería, la controladora sigue trabajando con los discos no dañados sin detener el sistema. Los datos se pueden leer desde la unidad o matriz duplicada sin que se produzcan interrupciones. RAID 1 es una alternativa costosa para los grandes sistemas, ya que las unidades se deben añadir en pares para aumentar la capacidad de almacenamiento. Sin embargo, RAID 1 es una buena solución para las aplicaciones que requieren redundancia cuando hay sólo dos unidades disponibles. Los servidores de archivos pequeños son un buen ejemplo.

Se necesita un mínimo de dos unidades para implementar una solución RAID 1.

2.3. RAID 4: "Acceso Independiente con un disco dedicado a paridad."

Basa su tolerancia al fallo en la utilización de un disco dedicado a guardar la información de paridad calculada a partir de los datos guardados en los otros discos. En caso de avería de cualquiera de las unidades de disco, la información se puede reconstruir en tiempo real mediante la realización de una operación lógica de O exclusivo. Debido a su organización interna, este RAID es especialmente indicado para el almacenamiento de ficheros de gran tamaño, lo cual lo hace ideal para aplicaciones gráficas donde se requiera, además, fiabilidad de los datos.

Page 10: Servidores de Alta Disponibilidad v2

10

CARERRAS PROFESIONALES CIBERTEC

Se necesita un mínimo de tres unidades para implementar una solución RAID 4. La ventaja con el RAID 3 está en que se puede acceder a los discos de forma individual.

2.4. RAID 5: "Acceso independiente con paridad distribuida."

Este array ofrece tolerancia al fallo, pero además, optimiza la capacidad del sistema permitiendo una utilización de hasta el 80% de la capacidad del conjunto de discos. Esto lo consigue mediante el cálculo de información de paridad y su almacenamiento alternativo por bloques en todos los discos del conjunto. La información del usuario se graba por bloques y de forma alternativa en todos ellos. De esta manera, si cualquiera de las unidades de disco falla, se puede recuperar la información en tiempo real, sobre la marcha, mediante una simple operación de lógica de O exclusivo, sin que el servidor deje de funcionar. Así pues, para evitar el problema de cuello de botella que plantea el RAID 4 con el disco de comprobación, el RAID 5 no asigna un disco específico a esta misión sino que asigna un bloque alternativo de cada disco a esta misión de escritura. Al distribuir la función de comprobación entre todos los discos, se disminuye el cuello de botella y con una cantidad suficiente de discos puede llegar a eliminarse completamente, proporcionando una velocidad equivalente a un RAID 0. RAID 5 es el nivel de RAID más eficaz y el de uso preferente para las aplicaciones de servidor básicas para la empresa. Comparado con otros niveles RAID con tolerancia a fallos, RAID 5 ofrece la mejor relación rendimiento-coste en un entorno con varias unidades. Gracias a la

Page 11: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 11

CIBERTEC CARRERAS PROFESIONALES

combinación del fraccionamiento de datos y la paridad como método para recuperar los datos en caso de fallo, constituye una solución ideal para los entornos de servidores en los que gran parte del E/S es aleatoria, la protección y disponibilidad de los datos es fundamental y el coste es un factor importante. Este nivel de array es especialmente indicado para trabajar con sistemas operativos multiusuarios. Se necesita un mínimo de tres unidades para implementar una solución RAID 5. Los niveles 4 y 5 de RAID pueden utilizarse si se disponen de tres o más unidades de disco en la configuración, aunque su resultado óptimo de capacidad se obtiene con siete o más unidades. RAID 5 es la solución más económica por megabyte, que ofrece la mejor relación de precio, rendimiento y disponibilidad para la mayoría de los servidores.

Page 12: Servidores de Alta Disponibilidad v2

12

CARERRAS PROFESIONALES CIBERTEC

3. Configuracion de RAID por software en Linux

En Linux raidtools ha sido el paquete de gestión de RAID por software estandard en Linux desde la inclusión del driver RAID por software. Con los años, raidtools ha demostrado un uso pesado, principalmente porque depende de un fichero de configuración (/etc/raidtab) que es difícil de mantener, y parcialmente por sus limitadas características. En agosto de 2001, Neil Brown, un ingeniero de software en la Unviersity of New South Wales y un desarrollador del kernel, lanzó una alternativa. Su paquete mdadm (multiple devices admin) proporciona una forma simple y robusta de gestión de arrays software. mdadm vá por la versión 1.0.1 y ha demostrado ser muy estable durante su primer año de desarrollo. En la lista de correo Linux-raid ha recibido una cálida acogida y muy probablemente consiga una mayor difusión en el futuro.

3.1. Instalación

Descargue la versión más reciente del tarball mdadm, ejecute make install para compilarlo e instalar mdadm con su documentación. Además del binario se instalan algunas páginas de manual y ficheros de ejemplo.

De forma alternativa usted puede descargar e instalar el fichero del paquete que se encuentra bajo el directorio RPM en la misma URL (http://www.cse.unsw.edu.au/~neilb/source/mdadm/).

mdadm tiene cinco modos de funcionamiento. Los primeros dos modos, Create y Assemble, se utilizan para configurar y activar arrays. Manage se utiliza para manipular dispositivos en un array activo. Follow o Monitor permite a los administradores configurar la notificación de eventos y acciones para los arrays. El modo Build se utiliza cuando se trabaja con arrays heredados que utilizan una versión antigua del driver md. No cubriré el modo build en este artículo. Las opciones restantes se utilizan para varias tareas domésticas y no

Page 13: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 13

CIBERTEC CARRERAS PROFESIONALES

están asociadas a un modo de operación específico, aunque la documentación de mdadm llama a estas opciones el modo Misc.

Importante: Antes de crear un arreglo las particiones tienen que estar

etiquetadas con Linux raid autodetect

Creando un Array

El modo Create (mdadm --create) se utiliza para crear un nuevo array. En este ejemplo utilizaré mdadm para crear un RAID-0 en /dev/md0 construido con /dev/sdb1 y /dev/sdc1:

La opción --level especifica el tipo de RAID a crear, de la misma manera que lo hace la opción raid-level de raidtools. Es posible indicar 0, 1, 4 y 5 para RAID-0, RAID-1, RAID-4 y RAID-5. También es posible utilizar el modo lineal (--level=linear).

Page 14: Servidores de Alta Disponibilidad v2

14

CARERRAS PROFESIONALES CIBERTEC

En general, los comandos mdadm tienen el siguiente formato:

mdadm [mode] <raiddevice> [options] <component disks>

Cada opción de mdadm también cuenta con una forma corta que es menos descriptiva pero más breve de teclear. Por ejemplo, el siguiente comando utiliza la forma corta de cada opción pero es identico al ejemplo que he mostrado antes.

-C selecciona el modo Create, he incluido la opción -v para activar la salida verbosa. -l y -n especifican el nivel RAID y el número de discos. Los usuarios de raidtools y /etc/raidtab pueden comprobar los fácil que es crear arrays utilizando mdadm. Usted puede cambiar el tamaño del pedazo (chunk size) por defecto (64KB) utilizando la opción --chunk o -c. En el ejemplo anterior he fijado el chunk size a 128KB. mdadm también soporta la expansión del shell, de modo que no tiene que teclear el nombre de dispositivo para cada componente si se está creando un gran array.

En este ejemplo crearé un RAID-5 con cinco discos y un tamaño de chunk de 128KB:

El ejemplo crea el array /dev/md0 utilizando las particiones de disco SCSI /dev/sda1, /dev/sdb1, /dev/sdc1, /dev/sdd1 y /dev/sde1. Observe que también he fijado el tamaño del chunk a 128KB utilizando la opción -c128. Cuando se crea un RAID-5, mdadm selecciona de forma automática el algoritmo de paridad left-symmetric, que es la mejor opción.

Page 15: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 15

CIBERTEC CARRERAS PROFESIONALES

Utilice el comando --stop o -S para detener un array en marcha:

/etc/mdadm.conf

/etc/mdadm.conf es el principal fichero de configuración de mdadm. A diferencia de /etc/raidtab, mdadm no depende de /etc/mdadm.conf para crear o gestionar arrays. En su lugar, mdadm.conf es simplemente una manera adicional de seguir la pista a los dispositivos RAID software. Utilizar un fichero de configuración con mdadm es útil pero no necesario. Tener uno significa que usted puede gestionar los arrays de forma ágil sin invertir tiempo en descubrir qué propiedades tienen y dónde están los discos. Por ejemplo, si un array no está en marcha y no existe el fichero mdadm.conf describiéndolo, entonces el administrador del sistema debe invertir tiempo en examinar cada disco para determinar sus propiedades y miembros.

A diferencia del fichero de configuración para raidtools, mdadm.conf es conciso y símplemente lista los discos y arrays. El fichero de configuración puede contener dos tipos de líneas, cada una comenzando con la palabra reservada DEVICE o ARRAY. Los espacios en blanco separan las palabras reservadas de la información de configuración. Las líneas que comienzan con DEVICE especifican una lista de dispositivos que son candidatos a formar parte del array. La líneas que comienzan con ARRAY especifican dispositivos array además de información de identificación. Esta información puede incluir listas de uno o más UUIDs, números menores de dispositivos md, o una lista de dispositivos miembro.

Un fichero de configuración mdadm.conf sencillo puede parecerse a:

DEVICE /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1

ARRAY /dev/md0 devices=/dev/sda1,/dev/sdb1

ARRAY /dev/md1 devices=/dev/sdc1,/dev/sdd1

En general, es mejor crear el fichero /etc/mdadm.conf después de haber creado un array y actualizar el fichero cuando se crean nuevos arrays. Sin un fichero /etc/mdadm.conf se necesita especificar información más detallada sobre un array en el comando para activarlo. Esto significa que se tendrá que recordar que dispositivos pertenecen a cada array, y esto puede convertirse fácilmente en un embrollo en sistemas con muchos discos. mdadm incluso proporciona una manera fácil de generar las líneas ARRAY. La salida es una sola línea continua, pero aquí está troceada para encajar en la página:

Page 16: Servidores de Alta Disponibilidad v2

16

CARERRAS PROFESIONALES CIBERTEC

Si hubiera múltipes arrays ejecutándose en el sistema, entonces mdadm generaría una linea array para cada uno. Así que, una vez que haya construido sus arrays, puede redirigir la salida de mdadm --detail --scan a /etc/mdadm.conf. Sólo tiene que asegurarse de crear manualmente una entrada DEVICE. Utilizando el ejemplo anterior podemos tener un /etc/mdadm.conf con el siguiente aspecto:

DEVICE /dev/sdb1 /dev/sdc1

ARRAY /dev/md0 level=raid0 num-devices=2 \

UUID=410a299e:4cdd535e:169d3df4:48b7144a

Iniciando un array

El modo Assemble se utiliza para iniciar un array que ya existe. Si usted ha creado el fichero /etc/mdadm.conf, entoces puede comenzar el array listado allí con el siguiente comando:

La opción -A se refiere al modo Assemble, también puede utilizar --assemble. La opción -s o --scan indican a mdadm que mire en /etc/mdadm.conf para informarse sobre los arrays y los dispositivos. Si usted quiere iniciar todos los arrays listados en /etc/mdadm.conf, no especifique un dispositivo md en la línea de comandos.

Si usted no creó el fichero /etc/mdadm.conf, necesitará especificar información adicional en la línea de comandos para poder iniciar un array. Por ejemplo, este comando intenta iniciar /dev/md0 utilizando los dispositivos listados en la línea de comandos:

# mdadm -A /dev/md0 /dev/sdb1 /dev/sdc1

Como utilizar mdadm -A de este modo supone que usted conoce cómo están organizados los arrays, puede que no sea útil en sistemas que tienen arrays que fueron creados por otra persona. De manera que usted puede querer examinar algunos dispositivos para hacerse una idea de cómo están organizados los arrays. La opción de examinar (-E o --examine) permite

Page 17: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 17

CIBERTEC CARRERAS PROFESIONALES

imprimir el superbloque md (si está presente) de un dispositivo de bloques que puede formar parte de un array.

La opción de examinar muestra información útil sobre los discos que componen el array. En este caso podemos decir que /dev/sdb1 pertenece a un RAID-5 formado por tres discos miembro. Lo que quiero resaltar de forma específica es la línea de salida que contiene el UUID. Un UUID es un número de 128 bits que se supone razonablemente único tanto en el sistema local como en el resto. Se genera de forma aleatoria utilizando hardware y marcas temporales como parte de su semilla. Los UUIDs se tutilizan en varios programas para etiquetar de forma única los dispositivos. Puede obtener más información leyendo las páginas de manual de uuidgen y libuuid.

Cuando se crea un array, el driver md genera un UUID para el array y lo guarda en el superbloque md. Puede utilizar el UUID como criterio para la construcción de arrays. En el próximo ejemplo activaré el array al que pertenece /dev/sdb1 utilizando su UUID.

# mdadm -Av /dev/md0 --uuid=84788b68:1bb79088:9a73ebcc:2ab430da

/dev/sd*

Este comando escanea cada disco SCSI (/dev/sd*) para ver si es miembro del array con UUID 84788b68:1bb79088:9a73ebcc:2ab430da y entonces inicia el array, suponiendo que se encuentre cada uno de los dispositivos que lo

Page 18: Servidores de Alta Disponibilidad v2

18

CARERRAS PROFESIONALES CIBERTEC

componen. mdadm producirá un montón de salida cada vez que intente escanear un dispositivo que no existe. Puede ignorar tales advertencias con seguridad.

Gestionando arrays

Utilizando el modo Manage puede añadir y eliminar discos de un array en funcionamiento. Esto es necesario para eliminar los discos que han fallado, añadir discos de repuesto, o añadir los discos de reemplazo. El modo Manage también se puede utilizar para marcar un disco como averiado. El modo Manage replica las funciones de los programas raidsetfaulty, raidhotremove y raidhotadd de raidtools.

Por ejemplo, para añadir un disco a un array activo, replicando el comando raidhotadd:

Revisar que discos forman el arreglo:

Añadiendo un nuevo disco:

Revisando la nueva configuración:

Page 19: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 19

CIBERTEC CARRERAS PROFESIONALES

O para eliminar /dev/sdc1 de /dev/md0 intente:

Se fuerza el fallo del disco /dev/sdc1

Se remueve el disco que fallo

Se verifica como queda la configuración final

Observe que primero he marcado /dev/sdc1 como averiado y después lo hemos eliminado. Es equivalente a utilizar los comandos raidsetfaulty y raidhotremove de las raidtools. Es posible combinar las opciones de añadir, marcar como averiado y eleminar en una sola línea de comandos siempre que tenga sentido en términos de gestión del array. Por ejemplo, debe marcar un disco como averiado antes de eliminarlo.

Page 20: Servidores de Alta Disponibilidad v2

20

CARERRAS PROFESIONALES CIBERTEC

Monitorizando arrays

El modo Follow, o Monitor, proporciona algunas de las mejores características de mdadm. Utilizando el modo Follow/Monitor puede utilizar mdadm como un demonio y configurarlo para enviar alertas por correo a los administradores cuando en los arrays se producen errores o fallos. También puede utilizar el modo Follow para ejecutar comandos arbitrarios cuando un disco se averie. Por ejemplo, puede querer intentar eliminar el disco y reinstarlo en un intento de corregir un fallo no-fatal sin intervención del usuario.

El siguiente comando monitorizará /dev/md0 (consultando su estado cada 300 segundos) en busca de eventos críticos. Cuando ocurre un error faltal, mdadm enviará un correo al sysadmin. Puede ajustar el intérvalo de consulta y la dirección de correo de acuerdo a sus necesidades.

Cuando se utiliza el modo monitor, mdadm no termina, así que tal vez quiera envolverlo con un nohup y un &.

El modo Follow/Monitor también permite que los arrays compartan discos de repuesto, una caracteristica que ha faltado en el software RAID de Linux desde el principio. Esto significa que usted sólo tiene que proporcionar un disco de repuesto para cada grupo de arrays o para todos los asrrays. También significa que el administrador del sistema no tiene que intervenir de forma manual para mover los discos de repuesto cuando se produce un fallo en un array. Cuando se detecta una avería en un disco de un array sin un disco de repuesto, mdadm quitará un disco de repuesto disponible en otro array y lo insertará en el array con el disco averiado. Para facilitar este proceso, cada línea ARRAY de /etc/mdadm.conf necesita tener un grupo de repuesto definido.

DEVICE /dev/sd*

ARRAY /dev/md0 level=raid1 num-devices=3 spare-group=database \

UUID=410a299e:4cdd535e:169d3df4:48b7144a

ARRAY /dev/md1 level=raid1 num-device=2 spare-group=database \

UUID=59b6e564:739d4d28:ae0aa308:71147fe7

Page 21: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 21

CIBERTEC CARRERAS PROFESIONALES

En este ejemplo, tanto /dev/md0 como /dev/md1 son parte del grupo de repuesto database. Suponiendo que /dev/md0 es un RAID-1 de dos discos con un solo disco de repuesto. Si mdadm está funcionando en modo monitor (como he mostrado antes), y un disco de /dev/md1 falla, mdadm quitará el disco de repuesto de /dev/md0 y lo insertará en /dev/md1.

Page 22: Servidores de Alta Disponibilidad v2

22

CARERRAS PROFESIONALES CIBERTEC

Autoevaluación

1. Indique los tipos de RAID que existen y que son soportados por el software de Linux

2. ¿Indique las diferencias en raidtools y mdadm?

3. ¿Como crea un RAID 0 en Linux?

4. ¿Cómo crea un RAID 5 en Linux?

Page 23: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 23

CIBERTEC CARRERAS PROFESIONALES

Page 24: Servidores de Alta Disponibilidad v2

24

CARERRAS PROFESIONALES CIBERTEC

LVM en Linux

TEMA Identificar y analizar los detalles avanzados acerca del protocolo TCP/IP.

OBJETIVOS ESPECÍFICOS Entender el protocolo TCP/IP

Identificar los protocolos ARP e ICMP

Comprender la estructura de las cabeceras IP, TCP y UDP

Comprender el saludo de tres vías

Identificar parámetros de seguridad aplicados a la interface de red CONTENIDOS Protocolo TCP/IP

Address Resolution Protocol (ARP)

Internet Control Messages Protocol (ICMP)

Cabecera IP

S E M A N A

2

Page 25: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 25

CIBERTEC CARRERAS PROFESIONALES

1. LVM (Logical Volumen Manager)

LVM es el administrador de volúmenes lógicos para el kernel Linux. LVM gestiona los discos duros y sistemas similares, como dispositivos de almacenamiento masivo. Entre las características principales del Linux Logical Volume Manager encontramos el redimensionado de grupos lógicos, redimensionado de volúmenes lógicos, capacidad de realización de snapshots en modo lectura, adición de nuevos discos a los volúmenes, etc. Se podría decir que LVM es un mecanismo para “virtualizar” discos.

LVM es mucho más flexible, permitiendo añadir espacio adicional a volúmenes ya creados de manera transparente y simple.

Pasamos a ver los conceptos para entender la base del sistema.

volume group (VG): Sería el equivalente a un disco duro, es el punto de

abstracción más alto en LVM. Puede contener volúmenes físicos y lógicos.

physical volume (PV): Puede ser un disco duro, aunque también algo que

se le parezca como un RAID por software.

logical volume (LV): Equivale a una partición, contiene su propio sistema

de archivos.

physical extent (PE): La extensión física está compuesta por trozos de

datos de los volúmenes físicos.

logical extent (LE): La extensión lógica está compuesta por trozos de datos de los volúmenes lógicos.

Page 26: Servidores de Alta Disponibilidad v2

26

CARERRAS PROFESIONALES CIBERTEC

Para que todo funcione es necesario instalar el paquete lvm10 o lvm2, recomiendo la versión 2 aunque la mayoría de distribuciones todavía mantengan la versión 1. Hay que asegurarse de que haya un script en el arranque para poner en marcha LVM.

Lo primero de todo es hacer las particiones, puede hacerse con cfdisk. Si se usa una versión anterior a la 2 de LVM, es obligatorio definir el tipo como Linux LVM.

Cada una de la particiones usadas debe ser etiquetada con Linux LVM etiqueta 8e

Page 27: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 27

CIBERTEC CARRERAS PROFESIONALES

Antes de poder comenzar a trabajar con los discos en LVM (creando grupos, volumenes, particionando, etc) hemos de “prepararlos” para poder utilizar este sistema. Para ello utilizaremos fdisk, especificando a cada uno de los discos que queremos utilizar con LVM que utilicen el tipo de partición 8e “Linux LVM”.

Supongamos que tenemos un disco duro nuevo, /dev/sda, vamos a prepararlo para utilizar LVM, ejecutamos fdisk sobre el disco para ello:

fdisk /dev/hdb

Una vez dentro, presionamos “n” para crear una nueva particion:

n Añade una nueva partición

Presionamos “p” para crear una nueva partición primaria

p Partición primaria (1-4)

Presionamos 1 para crearla como la primera partición del disco, posteriormente presionamos ENTER hasta aceptar todos los valores por defecto de primer y último cilindro.

Una vez finalizado y de nuevo en el menú de fdisk, presionamos “t” para cambiar el identificador de sistema de una partición:

t Cambia el identificador de sistema de una partición

La cambiaremos al tipo “LVM partition type (0×8e)”, para ello introducimos 8e. Podemos en este punto presionar “p” para imprimir la tabla de particiones y ver que todo es correcto:

p Imprime la tabla de particiones

Finalmente guardamos los cambios con “w”

Al hacer un fdisk -l del nuevo disco, veremos que efectivamente ya utiliza LVM, ejemplo (ficticio):

# fdisk -l /dev/sda

Disk /dev/sda: 200.0 GB, 201000193024 bytes

200 heads, 63 sectors/track, 30515 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Device Start End Blocks Id System

/dev/sda1 1 30515 205111706 8e Linux LVM

Page 28: Servidores de Alta Disponibilidad v2

28

CARERRAS PROFESIONALES CIBERTEC

2. Configuracion de LVM

2.1. Creacion de physical Volumen Para la creación de physical volumens se usa el comando pvcreate

El comando pvdisplay nos muestra todos los physical volumen del

Sistema.

Page 29: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 29

CIBERTEC CARRERAS PROFESIONALES

Alternativamente se puede usar el siguiente comando

2.2. Creacion de Volumen Group A este nivel ya se puede crear un volumen group el cual es un contener de todos lo physical volumen que se incluyan en su creación. A continuación se crea el volumen group cibertec con un solo physical volumen /dev/sdb1

Para incluir 2 physical volumen a la vez, se ejecuta el comando

Para listar todos lo volumen groups que existen en el sistema se ejecuta vgdisplay

Page 30: Servidores de Alta Disponibilidad v2

30

CARERRAS PROFESIONALES CIBERTEC

En la pantalla anterior se puede observar por ejemplo que existen 2 volumen groups, ciberlinux y cibertec, de los cuales se indica que ciberlinux, esta formado con 2 physical volumen y cibertec esta formado con 1 physical volumen (Propiedad metadata area).

2.3. Creacion de Logical Volumen A este nivel se puede cortar el volumen group en piezas mas pequeñas llamadas Logical Volumen, los cuales son tratados como particiones dentro del sistema operativo Linux. Para crear un LOgical Volumen llamado prueba01 de 100MB en el volumen group cibertec se ejecuta el siguiente comando:

Page 31: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 31

CIBERTEC CARRERAS PROFESIONALES

Page 32: Servidores de Alta Disponibilidad v2

32

CARERRAS PROFESIONALES CIBERTEC

TCP/IP Avanzado

TEMA Identificar y analizar los detalles avanzados acerca del protocolo TCP/IP.

OBJETIVOS ESPECÍFICOS Entender el protocolo TCP/IP

Identificar los protocolos ARP e ICMP

Comprender la estructura de las cabeceras IP, TCP y UDP

Comprender el saludo de tres vías

Identificar parámetros de seguridad aplicados a la interface de red CONTENIDOS Protocolo TCP/IP

Address Resolution Protocol (ARP)

Internet Control Messages Protocol (ICMP)

Cabecera IP

Cabecera TCP

Cabecera UDP

Saludo de tres vías (Handshake)

Seguridad TCP/IP

S E M A N A

3

Page 33: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 33

CIBERTEC CARRERAS PROFESIONALES

PROTOCOLO TCP/IP

Fig. 1. Modelo TCP/IP

Aplicación – Las aplicaciones TCP/IP usualmente incluyen un programa cliente y servidor. o Interface de usuario o Proporciona aplicaciones específicas entre dos hosts.

Transporte – Mantiene la integridad de los datos y configuración de confiable en la comunicación punto a punto entre los sistemas. Asegura la entrega libre de errores de las unidades de datos, en adecuada secuencia, y sin pérdidas o duplicación.

Internet – Encamina los paquetes entre diferentes hosts o redes.

Interfase de red – Define la interconexión física entre los hosts. Los estándares TCP/IP son publicados en los Request for Comments, que se clasifican en:

Requerido (Required)

Recomendado (Recommended)

Electivo (Elective)

Uso limitado (Limited use)

No recomendado (Not Recommented) Entidades estandarizadoras:

Page 34: Servidores de Alta Disponibilidad v2

34

CARERRAS PROFESIONALES CIBERTEC

Internet Society - http://www.isoc.org/

Interactive Advertising Bureau (IAB) - http://www.iab.net/

Fig. 2. Pasando los datos a través de la pila de protocolos del Modelo TCP/IP

3. Address Resolution Protocol (ARP) Para que dos hosts puedan comunicarse, deben conocer sus direcciones físicas (Media Access Control – MAC). A través de la difusión, ARP permite a un host descubrir dinámicamente la dirección MAC correspondiente a una dirección IP en particular.

Fig. 3. Cabecera ARP

Page 35: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 35

CIBERTEC CARRERAS PROFESIONALES

HLEN – Longitud dirección hardware PLEN – Longitud dirección del protocolo OPERACION – Código de operación (ARPreques ó ARPreply) SENDER HA – Dirección de origen hardware SENDER IP – Dirección de origen del protocolo TARGET HA – Dirección de destino hardware A continuación, se muestra la captura de paquetes ARP con el programa Wireshark (sniffer).

Fig. 4. ARP

2.1. Visualizar la dirección MAC: En sistemas tipo Unix (Linux, FreeBSD, AIX, etc.) se ejecutará el comando ifconfig para conocer la información relacionada con las interfaces de red, donde aparecerá listada la dirección MAC correspondiente a cada una.

2.2. Cambiar la dirección MAC:

Bajo Linux, la dirección MAC de un interfaz de red (NIC) puede ser cambiada, ejecutando lo siguiente como usuario root: ifconfig eth0 down

ifconfig eth0 hw ether 00:01:02:03:04:06

Page 36: Servidores de Alta Disponibilidad v2

36

CARERRAS PROFESIONALES CIBERTEC

Ifconfig eth0 up

NOTA: El ejemplo está planteado con una interfaz ethernet de ahí que sea la interfaz eth0. En Red Hat Linux y distribuciones similares (Fedora Core, CentOS, etc.) una manera sencilla de hacerlo "permanente", aun después de reiniciar el sistema, es agregando una variable como esta a tu ifcfg-eth0 o archivo similar:

MACADDR=12:34:56:78:90: ab

Resta reiniciar el servicio de red: service network restart para que se apliquen los cambios.

Fig. 5. Comando ARP

Si deseamos un mayor control sobre la MAC podemos usar el programa GNU Mac Changer, que no solo permite cambiar la MAC, sino también listar las direcciones asignadas a los fabricantes, asignar MAC aleatoria, etc. En MAC-48 y EUI-48 las, direcciones se demuestran, generalmente, en formato hexadecimal con cada octeto separado por un guión o dos puntos. Un ejemplo de una dirección MAC-48 sería "00-08-74-4C-7F-1D"; otro ejemplo, "00:08:74:4C:7F:1D".

RARP (Reverse Address Resolution Protocol) – Asocia una dirección IP a una dirección MAC, es decir es el proceso inverso. El cual es utilizado en estaciones que no tienen disco y no tienen dirección IP cuando son activadas.

Page 37: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 37

CIBERTEC CARRERAS PROFESIONALES

4. Internet Control Messages Protocol (ICMP)

ICMP es utilizado cuando un router o host debe informar al host o router origen acerca de errores en el procedimiento de los paquetes. No está diseñado para ser absolutamente confiable. El propósito de ICMP es proveer retroalimentación acerca de problemas en el ambiente de comunicación.

Fig. 6. Cabecera ICMP

Esta cabecera tiene los siguientes campos:

Tipo – Campo de 8 bits que identifica el tipo de paquete.

Código – Campo de 8 bits que especifica el tipo de paquete ICMP.

Suma de verificación – Campo de 16 bits de código de chequeo de error referido a la cabecera ICMP.

ICMP es aparentemente un protocolo simple; sin embargo, puede ser utilizado con propósitos destructivos.

Page 38: Servidores de Alta Disponibilidad v2

38

CARERRAS PROFESIONALES CIBERTEC

Fig. 7. ICMP – Comando ping

Fig. 8. ICMP – Comando tcpdump

5. Cabecera IP

La cabecera IP se muestra en la Fig. 5. Tiene una longitud predeterminada de 20 bytes. Si existen opciones habilitadas, se agregan hasta 4 bytes adicionales. Esta cabecera tiene los siguientes campos:

Page 39: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 39

CIBERTEC CARRERAS PROFESIONALES

Versión – Campo de 4 bits que identifica la versión IP utilizada. Por defecto, es 4, IPv4.

Longitud de la cabecera – Campo de 4 bits.

Tipo de servicio – Campo de 8 bits dónde se especifica cómo los protocolos de capa superior serán manejados y se asignan diferentes niveles de importancia como:

o Precedencia o Retardo minimizado o Máxima transferencia (throughput) o Máxima fiabilidad (Reliability) o Minimizar el costo monetario o Reservado

Longitud Total – Campo de 16 bits que indica el tamaño máximo del paquete en bytes.

Identificación – Campo de 16 bits que indica el número de identificación del paquete IP.

Flags – Campo de 3 bits dónde los 2 bits de menor orden controlan la fragmentación y el de mayor orden no es utilizado. o Reservado o No fragmentado o Más fragmentos

Orden de los Fragmentos – Campo de 13 bits que indica la posición del dato fragmentado respecto al inicio de los datos en el paquete original.

Tiempo de Vida – Campo de 8 bits que mantiene un contador que decrece por cada salto y, si llega a cero el paquete, es descartado.

Protocolo – Campo de 8 bits que identifica el protocolo de la capa de transporte que sigue a continuación.

Fig. 9. Cabecera IP

Suma de verificación – Campo de 16 bits de código de chequeo de error referido a la cabecera IP para aseguramiento de integridad de la cabecera IP.

Page 40: Servidores de Alta Disponibilidad v2

40

CARERRAS PROFESIONALES CIBERTEC

Dirección Origen – Campo de 32 bits que indica la dirección origen.

Dirección destino – Campo de 32 bits que indica la dirección destino.

Opciones – Permite a IP soportar varias opciones, tales como: Loose source Routing, Strict Source Routing, Record Route y Timestamp.

6. Cabecera TCP El protocolo TCP es seleccionado cuando las aplicaciones y servicios trabajan con sesiones orientadas a la conexión (garantiza la entrega de los datos). Los campos TCP son:

Puerto Origen – Campo de 16 bits que identifica el puerto origen utilizado en la sesión.

Puerto destino – Campo de 16 bits que identifica el puerto destino utilizado en la sesión.

Número de secuencia – Campo de 32 bits que identifica dónde corresponden los datos encapsulados dentro de una cadena de datos que vienen desde el emisor.

Número de acuse de recibo – Campo de 32 bits que identifica el siguiente número de secuencia que la fuente espera recibir desde el destinatario. Con este valor se controla la secuencia y la perdida de paquetes.

Longitud de la Cabecera – Campo de 4 bits que indica cuantas palabras (32 bits) hay en la cabecera TCP.

Reservado – Campo de 6 bits que siempre está en cero no utilizados por ahora.

Fig. 10. Cabecera TCP

Page 41: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 41

CIBERTEC CARRERAS PROFESIONALES

Flags – Campo de 6 bits que corresponden a los indicadores de estado de sesión:

o URG. Urgente o ACK. Acuse de Recibo o PSH. Push o RST. Reset o SYN. Sincronizado o FIN. Final

Tamaño de la ventana – Campo de 16 bits utilizado para el control de flujo. Especifica el número de octetos empezando con el octeto indicado por el número de reconocimiento que el emisor del segmento acepta a su par en el otro extremo de la conexión, antes que su par deje de transmitir y espera por un reconocimiento.

Suma de verificación – Campo de 16 bits que verifica la integridad d ela cabecera TCP.

Puntero urgente – utilizado únicamente cuando el flag URG está en uno.

Opciones – Diseñado para contar con características extras no cubiertas en la cabecera estándar.

7. Cabecera UDP EL protocolo UDP es utilizado por aplicaciones y servicios que trabajan con sesiones no orientas a la conexión pero cuyo tamaño es menor que el protocolo TCP. El protocolo de transporte UDP es utilizado cuando en el campo puerto de la cabecera IP el valor es 17 (11H). Tiene los mismos campos que en el caso de TCP, pero sólo tiene los campos puerto origen y destino, longitud de la cabecera y suma de verificación.

Fig. 11. Cabecera UDP

8. Saludos de tres vías (Handshake) Es el proceso de establecimiento de una sesión entre dos hosts a nivel de la capa de trasporte. Se describe en tres pasos:

Page 42: Servidores de Alta Disponibilidad v2

42

CARERRAS PROFESIONALES CIBERTEC

Paso 1 – Envía un paquete de sincronización (SYN) y un número de secuencia inicial (ISN). La máquina cliente (Host A) desea establecer una conexión hacia el servidor (Host B). La máquina cliente (Host A) envía un paquete hacia la maquina servidor (Host B) con el bit de sincronización (SYN), establece el anuncio de una nueva conexión y un número de secuencia inicial (ISN) que permitirán rastrear los paquetes enviados a cualquier máquina. (Ver Fig. 12)

Fig. 12.

Paso 2 – Permite que la máquina remota responda con un reconocimiento (ACK). La máquina servidor (Host B) responde al pedido enviando un paquete con el bit de sincronización (SYN) y el bit ACK establecido en el paquete hacia el llamado de la maquina cliente (Host A). Este paquete no solo contiene el numero de secuencia de solicitud de respuesta del cliente; también, el número de secuencia inicial más uno (ISN+1). Esto indica que el paquete remoto se recibió correctamente como parte de el reconocimiento y se aguarda la próxima transmisión. (Ver Fig. 13)

Fig. 13.

Paso 3 – Completa la negociación para enviar un final de

reconocimiento hacia la maquina remota. En este punto, la máquina cliente (Host A) envía la siguiente parte final del reconocimiento (ACK) y el numero de secuencia para indicar una recepción satisfactoria y se establece la conexión. (Ver Fig. 14).

Fig. 14.

A continuación se muestra la captura de paquetes con el programa Wireshark (sniffer). Se puede observar el saludo de tres vía de una sesión TCP.

Page 43: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 43

CIBERTEC CARRERAS PROFESIONALES

Fig. 15. Handshake

9. Seguridad TCP/IP

En Linux, muchas opciones del kernel están relacionados con la seguridad de la red, como descartar paquetes que ingresan a través de la interface de red o ignorar solicitudes ping, etc. Esto se puede establecer en el archivo /etc/sysctl.conf en vez del archivo /etc/rc.d/rc.local. Las colocaciones de sysctl se guardan en /etc/sysctl.conf y son cargadas hacia cada inicio del sistema o reinicio del servicio network antes de cargar el archivo /etc/rc.d/rc.local. Para visualizar todo los valores sysctl actualmente disponible, use el comando (Ver Figura 16):

Sysctl -a

Page 44: Servidores de Alta Disponibilidad v2

44

CARERRAS PROFESIONALES CIBERTEC

Figura 16. Comando sysctl

Después de cualquier cambio en el archivo /etc/sysctl.conf, los parámetros del kernel serán modificados en tiempo real al ejecutar el siguiente comando:

Sysctl –p /etc/sysctl.conf A continuación, se explica el procedimiento a seguir para habilitar o deshabilitar parámetros que son necesarios para proteger su sistema Linux: Prevenir al sistema que responda solicitudes ping

Prevenir que tu sistema responda a solicitudes ping puede hacer mejorar en forma considerable la seguridad de tu red, dado que nadie puede hacer ping a tu servidor y recibas solamente respuesta a tus solicitudes. La suite del protocolo TCP/IP tiene varias debilidades que permite que un atacante use técnicas ocultas que le permitan interferir el envío de los datos que se remiten bajo la forma de paquetes inofensivos. No responder hacia solicitudes de comandos ping que son enviados por la mayoría de "crackers" que se encuentra en Internet, ya que de esta manera no se sabrá si estamos allí. net.ipv4.icmp_echo_ignore_all=1

NOTA: Existe otra manera de actualizar sin reiniciar el servicio de red (network) ejecutando el comando sysctl en una consola de la siguiente manera:

Page 45: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 45

CIBERTEC CARRERAS PROFESIONALES

Sysctl –w net.ipv4.icmp_echo_ignore_all=1

Rechazar a responder a solicitudes broadcast Cuándo un paquete es enviado a una dirección IP de transmisión o difusión de mensajes (broadcast), como por ejemplo la dirección IP 192.168.1.255 de una máquina en la red local, este paquete es entregado a todas las máquinas de esta red. Entonces, todas las máquinas de la red responden a este pedido de mensaje ICMP (echo request) y el resultado es que se producirá una congestión severa de la red o ataques de Denegación de Servicio. net.ipv4.icmp_echo_ignore_broadcats=1

Encaminar Protocolos

Encaminar y dirigir los protocolos pueden crear varios problemas. Encaminar el origen de una IP, en donde un paquete IP contiene detalles de la ruta hacia su destino, es peligroso porque, según RFC 1122, la máquina destino debe responder por la misma ruta Si un atacante puede encaminar el origen de un paquete dirigido a tu red, entonces él sería capaz de interceptar las contestaciones y engañar a tu servidor pensando que se comunica con un servidor de confianza.

Se recomienda que deshabilites encaminar el origen de los paquetes IP en todas las interfaces de red habilitadas en tu sistema para proteger a tu servidor de estos ataques. Como ejemplo, se tiene una máquina con dos interfaces de red (lo y eth0) que están activas y se procederá a configurar el sistema para que no encamine el origen de paquetes IP en todas las interfaces de red.

net.ipv4.conf.all.accept_source_route=0

net.ipv4.conf.lo.accept_source_route=0

net.ipv4.conf.eth0.accept_source_route=0

net.ipv4.conf.default.accept_source_route=0

Habilitar la Protección de Cookie TCP SYN Un "Ataque SYN" es una negación de servicio (DoS) que consume todos los recursos en su máquina, forzando a reiniciar tu sistema. Las negaciones de ataques de servicio son ataques que incapacitan a tu servidor debido a un alto volumen de negociación consumiendo recursos del sistema, de tal modo que el servidor no pueda responder a un pedido legítimo.

net.ipv4.tcp_syncoockies=1

Deshabilitar ICMP redirigidos Un ICMP redirigido se emplea para avisar al receptor que tiene que omitir alguna información de su tabla de rutas. Normalmente, se emplea para informar que una ruta no es optima y cuál es la nueva ruta a seguir.

Page 46: Servidores de Alta Disponibilidad v2

46

CARERRAS PROFESIONALES CIBERTEC

Esta opción posibilita a un atacante alterar la tabla de rutas de su máquina Firewall a sus necesidades.

net.ipv4.conf.all.accept_redirects=0

net.ipv4.conf.lo.accept_redirects=0

net.ipv4.conf.eth0.accept_redirects=0

net.ipv4.conf.default.accept_redirects=0

NOTA: Si el kernel es configurado para una máquina regular, se establece por defecto “yes” para este parámetro en caso de ser aceptado y “no” debe ser cuando se hace configuración de enrutamientos. Donde “ 1 ” significa yes, y “ 0 “ significa no.

Habilitar la Protección contra malos mensajes de error Esta opción pondrá sobre aviso a usted acerca de todos los malos mensajes de error en su red.

net.ipv4.icmp_ignore_bogus_error_responses=1

Habilitar la protección de spoofing El spoofing consiste en modificar la dirección origen de un paquete de forma que la máquina que recibe el paquete crea que proviene de una máquina de confianza.

net.ipv4.conf.all.rp_filter=1

net.ipv4.conf.lo.rp_filter=1

net.ipv4.conf.eth0.rp_filter=1

net.ipv4.conf.default.rp_filter=1

NOTA: Este parámetro previene de ataques spoofing contra sus redes internas, pero contra sus direcciones externas se pueden presentar todavía ataques spoofing.

Page 47: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 47

CIBERTEC CARRERAS PROFESIONALES

Autoevaluación

1. ¿Qué puerto es usado en las consultas DNS?

(a) 110 (b) 143 (c) 53 (d) 21 (e) 58

2. ¿Cuáles de las siguientes oraciones son verdaderas? (Seleccione 2

opciones)

Para establecer una sesión a nivel de UDP, se efectúa el proceso de handshaking.

ICMP informa de errores en el procedieminto de los paquetes al host

origen.

HTTP es un protocolo de la capa 7 del modelo OSI.

Mediante ARP se obtiene la máscara de red de la dirección IP.

Las opciones de seguridad TCP/IP se pueden defnir en el archivo /etc/sysctl.conf.

3. ¿Por qué es importante mantener una sesión orientada a la conexión?

4. Describa el saludo de tres vías.

Page 48: Servidores de Alta Disponibilidad v2

48

CARERRAS PROFESIONALES CIBERTEC

Stateful packet inspection

firewall I

TEMA Describir el uso de Netfilter.

OBJETIVOS ESPECÍFICOS

Comprender el funcionamiento del filtrado de paquetes entrantes y salientes.

Comprender el uso de la politica predeterminada DROP.

CONTENIDOS

Netfilter

Filtrado de paquetes entrantes/salientes

Filtrado de paquetes salientes/entrantes

S E M A N A

4

Page 49: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 49

CIBERTEC CARRERAS PROFESIONALES

Netfilter

Netfilter (http://www.netfilter.or) es la última generación de las utilidades para filtrados de paquetes (Packet Filtering), incluidos en el Kernel de Linux. La primera generación fue un port de IPFW (BSD), por Alan Cox, cerca de 1994. Con la aparición de la versión 2.0 de Linux, se creo la utilidad ipfwadm para regular el filtrado usando una herramienta desde el espacio de usuario. En 1998, junto con la aparición del Kernel 2.2, se introdujo la segunda generación, IPChains, una combinación de módulos y programas de usuario para el control de flujo de paquetes. Cerca del 99, al aparecer la versión 2.4, gran parte de la API de IPChains fue reescrita dando origen a la cuarta generación, Iptables. El principal responsable es Paul "Rusty" Russell, quien desarrollo Netfilter cuando trabajaba en Watchguard (http://www.watchguard.com). Es además una infraestructura completa insertada dentro del kernel, incluida desde algunas versiones 2.3 y agregado oficialmente en la serie 2.4. Está compuesta por una serie de módulos y un software para controlar las reglas. De esta manera, permite que un modulo de kernel, más una utilidad presente dentro del espacio de usuario, controlen el flujo de paquetes que van desde y hacia las interfaces de red. Netfilter es aplicable para cualquier sistema de Filtrado de Paquetes (o Packet Filter). Y es usado principalmente, por tres razones: Control de Trafico (o Flujo de Red) Seguridad (de Servicios de Red) Observación (del Trafico actual) 1.1. Funcionamiento

En IPTables, existen 4 tipos de tablas (ver Fig. 1): raw, filter, nat y mangle (manipulación). Cada una de estas tablas posee cadenas internas. Por ejemplo, filter posee INPUT, OUTPUT y FORWARD. IPTables cambia el contexto en el cual el paquete es interpretado. En el caso de la tabla filter, las cadenas INPUT y OUTPUT se refieren al equipo local, haciendo que el camino de cada uno de los paquetes parezca más limpio al momento de manipularlos. Existe también la tabla de tipo "transversal", que es el etiquetado y manipulado de paquetes (entendido comúnmente como paquetes que viajan de una interfaz a otra). Generalmente, es asumido por la cadena FORWARD (filter). Esta cadena está de forma intermedia entre una cadena de pre-ruta (PREROUTING) y una de post-ruta (POSTROUTING), quienes realizan funciones de NAT y

Page 50: Servidores de Alta Disponibilidad v2

50

CARERRAS PROFESIONALES CIBERTEC

enmascaramiento de IP (IP Masquerading), pertenecientes a la tabla nat.

Page 51: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 51

CIBERTEC CARRERAS PROFESIONALES

Fig. 1. Viaje del paquete1

La tabla mangle permite la reescritura completa de paquetes (o tramas completas) combinando la funcionalidad dentro de las cadenas dentro de filter (INPUT, OUTPUT y FORWARD) y nat (PREROUTING y POSTROUTING). La tabla raw es usada únicamente para una cosa, es para marcar los paquetes para que ellos no puedan ser manipulados por un sistema de rastreo. 1.1.1. Cadenas Las cadenas son las indicaciones del paso de los paquetes dentro de la utilización interna de Netfilter.

Antes de ingresar los paquetes al sistema de Netfilter, es realizada una suma de comprobacion (Checksum). Si es correcta, los paquetes transitan hacia la regla PREROUTING, quien se encarga, primero, de determinar si los paquetes son considerados locales o deben ser reenviados a otra interfaz. Si son considerados locales, estos son enviados a la cadena INPUT. Si no son considerados locales, estos son enviados a la regla FORWARD. NOTA: los paquetes que no son considerados "locales" son aquellos que, por lo general, pertenecen a otra subred. Antes de que los paquetes abandonen el sistema (de Netfilter), son recibidos por la cadena POSTROUTING antes de ser enviados a la interfaz destino. La cadena OUTPUT solamente es utilizada cuando los paquetes hayan sido originados localmente. Además, los paquetes que pasen por la cadena OUTPUT necesariamente pasan por POSTROUTING.

1.1.2. Tablas

Una tabla es una indicación al sistema de filtros, que debe manejar una cierta cantidad de reglas internas y "cadenas". Existen tres tablas por defecto llamadas filter, mangle y nat.

1 Fuente: http://iptables-tutorial.frozentux.net/iptables-tutorial.html

Page 52: Servidores de Alta Disponibilidad v2

52

CARERRAS PROFESIONALES CIBERTEC

Filter La tabla filter es usada para filtrado general de paquetes. Está compuesto por las cadenas INPUT (entrada), OUTPUT (salida) y FORWARD (reenvió o traspaso). Esta cadena hace posible permitir cierto tipo de conexión a cierto tipo de interfaces desde ciertos hosts. Una de las ventajas principales es que esta extensión es rápida y eficiente.

Nat La tabla nat es usada para paquetes que se deben reenviar (entre interfaces), además de modificar o "traducir" su comportamiento. NAT significa Network Address Translation (Traducción de Direcciones de Red) y es usado principalmente en IP Masquerading y Port Forwarding. Está compuesta por las cadenas PREROUTING (pre-ruta), POSTROUTING (post-ruta) y OUTPUT (salida). Algunos de los usos típicos para la tabla Nat son NAT de Origen (Source NAT), Nat de Destino (Destination NAT), Enmascaramiento (IP Masquerading) y Proxys Transparentes (una forma especial de Destination NAT).

Mangle La tabla mangle permite alterar paquetes y tramas. Es generalmente usada para enrutamiento avanzado (por ejemplo, TOS) y consiste en las reglas PREROUTING y OUTPUT. A través de esta tabla, es posible alterar el paquete (y los pertenecientes a la misma conexión) o algunos de los datos pertenecientes a el.

Raw Esta última tabla está destinada para realizar excepciones al seguimiento de los paquetes a medida que entran y salen, es decir, mediante una regla configurada en esta tabla se puede realizar la transferencia de un paquete sin que se verifique la entrada o salida de dicho paquete, finalmente, trabaja con las cadenas PREROUTING y OUTPUT.

1.1.3. Extensiones

Dentro de Netfilter, existen distintas extensiones, que son utilizadas en dos instancias solamente: Coincidencias (matches) y Acciones (targets). Algunas de estas extensiones son particulares para cada una de las tablas.

Page 53: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 53

CIBERTEC CARRERAS PROFESIONALES

Coincidencias (Matches)

Una coincidencia (match) ocurre cuando un paquete corresponde al indicado dentro de alguna de las cadenas. Puede ser a través del protocolo (TCP), algún puerto en particular (22), un usuario propietario del paquete (OWNER), el estado de la transacción (INVALID), por ejemplo. O la combinación de todos ellos, en particular.

Acciones (Targets)

Se indican como el destino final del proceso de un paquete, o de una transacción. Indica realmente "qué hacer " una vez que se ha cumplido la coincidencia. Algunas de las acciones pueden ser desechar el paquete por completo (DROP), retransmitirlo (MIRROR), o bien, indicar a través de ksyslogd (la utilidad de kernel para logging) que una coincidencia fue exitosa (LOG). De por sí, corresponde solo una acción por coincidencia, aunque con un poco de práctica, es posible agregar más de una.

1.1.4. Entendiendo las Reglas del Juego Como se indicó anteriormente, para el uso de Netfilter, es necesario utilizar, además de los módulos del kernel, la utilidad IPTables. A través del comando iptables, es posible insertar/eliminar/modificar reglas dentro de Netfilter. Algunas de las características de esta herramienta son: Permite el uso de distintas tablas de IP. Mientras tanto,

sólo existen 4 (raw, filter, nat y mangle), pero permite el manejo de futuras tablas.

Permite el uso de plug-ins para nuevos coincidencias y

acciones. Así, no es necesario modificar los módulos o IPtables para agregar una extensión adicional.

Nativamente, puede manejar IPv4 e IPv6 usando la misma

librería y el mismo código.

Page 54: Servidores de Alta Disponibilidad v2

54

CARERRAS PROFESIONALES CIBERTEC

1.2. IPTables

Iptables -t [tabla] -[operación] [cadena] [descripción de la coincidencia] -j [acción]

Un comando básico de IPTables está compuesto de 5 partes, que son: La tabla a usar (raw, filter, nat o mangle) La cadena a usar, que puede ser una de las cadenas por defecto

(INPUT, por ejemplo) o bien cadenas creadas por el usuario La operación (insertar/modificar/eliminar/etc.) Una descripción de los paquetes que deben coincidir con esta regla

(la "coincidencia") Un destino (target) para esta regla particular

NOTA1: Cuando no se indica la tabla a usar, por defecto se usa la tabla "filter". NOTA 2: en algunas publicaciones, pueden encontrar ejemplos del tipo # iptables -t tabla -j [accion] -[operacion] [etc/etc..] lo que indica que el orden no altera el producto 1.2.1. Operaciones básicas

Algunas de las operaciones básicas sobre las cadenas (existen más) son: A (add): agrega una regla al final de la cadena. I (insert): agrega una regla al principio de la cadena. R (replace): reemplaza una regla por otra. D (delete): elimina una regla. F (flush): elimina todas las reglas de la cadena. Es

equivalente a borrar las reglas una por una. L (list): muestra las reglas dentro de la cadena.

1.2.2. Coincidencias básicas Para indicar a Netfilter qué hacer con los paquetes de una transacción, se debe crear una coincidencia, lo más precisa posible. La idea es que la coincidencia sea inequívoca, tanto como para quien creó la regla (usuario) como para el kernel. Algunas coincidencias básicas son -p [protocolo]: indica qué protocolo debe realizarse la

comprobacion. Algunos de los valores son tcp, udp, icmp o

Page 55: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 55

CIBERTEC CARRERAS PROFESIONALES

all. Tambien puede ser un número, o alguno de los indicados en /etc/protocols.

-s [ip/mascara]: indica la dirección IP del origen de la transacción. Puede indicarse también de la forma IP/máscara para decirle a Netfilter que es un grupo de hosts.

-d [ip/mascara]: indica la dirección IP destino de la transacción.

-i [interfaz]: indica la interfaz de entrada desde donde se recibió la transacción o los paquetes. (Nota: solo usado por las cadenas INPUT, FORWARD y PREROUTING)

-o [interfaz] : indica la interfaz de salida de la transacción (Nota: sólo usada por OUTPUT, FORWARD y POSTROUTING)

--sport: Indica el puerto de origen de la transacción. --dport: Indica el puerto de destino de la transacción. Nota: --sport y --dport son usados cuando se indica que el protocolo es tcp o udp solamente)

1.2.3. Acciones básicas

Algunas acciones son comunes de todas las cadenas. Otras son específicas. Algunas acciones básicas son: ACCEPT: acepta el paquete/transacción. DROP: rechaza el paquete/transacción REJECT: rechaza el paquete/transacción. A diferencia de

DROP, notifica al emisor que el paquete/transacción fue descartado.

LOG: indicará que el resultado obtenido al aplicar una determinada regla deberá ser guardado en un reporte.

1.2.4. Ejemplos Ahora, algunos ejemplos simples. Estos ejemplos usan la tabla "filter", ya que es la más fácil de utilizar. Son algo básicos, pero servirán de apoyo para el próximo punto. Permitir el trafico ICMP de entrada

Iptables -A INPUT -p icmp -j ACCEPT

Permitir que la interfaz eth0 pueda enviar paquetes ICMP

Iptables -A OUTPUT -p icmp -o eth0 -j ACCEPT

Denegar (DROP) la conexión al puerto 25, protocolo tcp, de

la interfaz eth1 Iptables -A INPUT -i eth1 -p tcp --dport 25 -j DROP

Page 56: Servidores de Alta Disponibilidad v2

56

CARERRAS PROFESIONALES CIBERTEC

Rechazar (REJECT) la conexión al puerto 65000, protocolo udp, de la interfaz eth0, desde los computadores de la LAN (red local) del tipo 192.168.1.X/255.255.255.0 Iptables -A INPUT -i eth0 -p udp --dport 65000 -s

192.168.1.0/255.255.255.0 -j REJECT

Denegar el tráfico desde la eth0 a la eth1 (FORWARD)

Iptables -A FORWARD -i eth0 -o eth1 -j DROP

Denegar el tráfico desde la eth0 a la eth1 del protocolo tcp

Iptables -A FORWARD -i eth0 -o eth1 -p tcp -j DROP

Le estás diciendo que si esa mac tiene un ip DIFERENTE (!)

al 192.168.1.22, descarte los paquetes. Iptables -t nat -A PREROUTING -m mac --mac-source

00:16:76:8f:DE:F2 -i eth1 –s ! 192.168.1.22 -j DROP

2. Filtrado de paquetes entrantes/salientes

Como se muestra en la Fig. 2, el equipo con dirección IP 10.0.0.1 puede hacer ping al equipo con dirección IP 10.0.0.2. En este caso, se usan los mensajes de control Echo Request (Tipo 8) y Echo Reply (Tipo 0) del protocolo ICMP.

Fig. 2. Comando ping

2.1. Política predeterminada ACEPTAR TODO

Para filtrar la respuesta al comando ping podemos realizar lo siguiente:

Filtrar el paquete entrante: echo-request En el equipo 10.0.0.2, ejecutamos:

Page 57: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 57

CIBERTEC CARRERAS PROFESIONALES

Centos: ~# iptables -A INPUT -p icmp --icmp-type 8 -s 10.0.0.1 -j DROP

Fig. 3. Filtrando echo-request

Centos: ~# iptables -L

Chain INPUT (policy ACCEPT)

Target prot opt source destination

DROP icmp -- 10.0.0.1 anywhere icmp echo-

request

Chain FORWARD (policy ACCEPT)

Target prot opt source destination

Chain OUTPUT (policy ACCEPT)

Target prot opt source destination

Debian: ~#

Filtrar el paquete saliente: echo-reply En el equipo 10.0.0.2, ejecutamos:

Centos: ~# iptables -A OUTPUT -p icmp --icmp-type 0 -d 10.0.0.1 -j

DROP

Fig. 3. Filtrando echo-reply

Centos: ~# iptables -L

Page 58: Servidores de Alta Disponibilidad v2

58

CARERRAS PROFESIONALES CIBERTEC

Chain INPUT (policy ACCEPT)

Target prot opt source destination

Chain FORWARD (policy ACCEPT)

Target prot opt source destination

Chain OUTPUT (policy ACCEPT)

Target prot opt source destination

DROP icmp -- anywhere 10.0.0.1 icmp echo-

reply

Centos: ~#

2.2. Politica predeterminada DENEGAR TODO

Para permitir que la respuesta al comando ping ingrese al equipo, podemos realizar lo siguiente:

Centos: ~# iptables -P INPUT DROP

Centos: ~# iptables -P OUTPUT DROP

Centos: ~# iptables -A INPUT -i lo -j ACCEPT

Centos: ~# iptables -A OUTPUT -o lo -j ACCEPT

Centos: ~# iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT

Centos: ~# iptables -A OUTPUT -p icmp --icmp-type 0 -j ACCEPT

3. Filtrado de paquetes salientes/entrantes

Como se muestra en la Fig. 4, el equipo con dirección IP 10.0.0.2 puede hacer ping al equipo con dirección IP 10.0.0.1

Fig. 4. Comando ping

3.1. Política predeterminada ACEPTAR TODO

En el caso de que se desee bloquear el comando ping desde la maquina firewall, podemos hacer lo siguiente:

Filtre el paquete saliente: echo-request

Page 59: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 59

CIBERTEC CARRERAS PROFESIONALES

En el equipo 10.0.0.2, ejecutamos:

Centos: ~# iptables -A OUTPUT -p icmp --icmp-type 8 -d 10.0.0.1

-j DROP

Centos: ~# iptables -L

Chain INPUT (policy ACCEPT)

Target prot opt source destination

Chain FORWARD (policy ACCEPT)

Target prot opt source destination

Chain OUTPUT (policy ACCEPT)

Target prot opt source destination

DROP icmp -- anywhere 10.0.0.1 icmp echo-

request

Centos: ~#

Centos: ~# ping 10.0.0.1

PING 10.0.0.1 (10.0.0.1) 56(84) bytes of data.

Ping: sendmsg: Operation not permitted

Ping: sendmsg: Operation not permitted

Ping: sendmsg: Operation not permitted

Ping: sendmsg: Operation not permitted

--- 10.0.0.1 Ping statistics ---

4 packets transmitted, 0 received, 100% packet loss, time

3000ms

Centos: ~#

Filtre el paquete entrante: echo-reply En el equipo 10.0.0.2, ejecutamos:

Centos: ~# iptables -A INPUT -p icmp --icmp-type 0 -s 10.0.0.1

-j DROP

Centos: ~# iptables -L

Chain INPUT (policy ACCEPT)

Target prot opt source destination

DROP icmp -- 10.0.0.1 anywhere icmp echo-

reply

Chain FORWARD (policy ACCEPT)

Target prot opt source destination

Chain OUTPUT (policy ACCEPT)

Target prot opt source destination

Centos: ~#

Centos: ~# ping 10.0.0.1

PING 10.0.0.1 (10.0.0.1) 56(84) bytes of data.

--- 10.0.0.1 Ping statistics ---

8 packets transmitted, 0 received, 100% packet loss, time

6998ms

Centos: ~#

Page 60: Servidores de Alta Disponibilidad v2

60

CARERRAS PROFESIONALES CIBERTEC

3.2. Politica predeterminada DENEGAR TODO

Para permitir que la peticion del comando ping salga del equipo, podemos realizar lo siguiente:

Centos: ~# iptables -P INPUT DROP

Centos: ~# iptables -P OUTPUT DROP

Centos: ~# iptables -A INPUT -i lo -j ACCEPT

Centos: ~# iptables -A OUTPUT -o lo -j ACCEPT

Centos: ~# iptables -A OUTPUT -p icmp --icmp-type 8 -j ACCEPT

Centos: ~# iptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT

Page 61: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 61

CIBERTEC CARRERAS PROFESIONALES

Autoevaluación

1. ¿Cuáles son las cadenas de la tabla filter?

(a) POSTROUTING, OUTPUT y INPUT (b) OUTPUT,FORWARD y PREROUTING

(c) PREROUTING, OUTPUT y POSTROUTING

(d) INPUT, OUTPUT y FORWARD

2. Asumiendo que la política global es aceptar todo lo que no se deniega explícitamente. Implementar las siguientes reglas de filtrado de paquetes a mi maquina local 200.60.172.252. Evite ciertos ataques spoof colocando filtros antispoof para los paquetes provenientes de la siguiente red 172.16.0.0/255.255.0.0

(a) iptables -A INPUT -s 172.16.0.0/27 -d 200.60.172.252 -j DROP (b) iptables -A INPUT -s 200.60.172.252 -d 172.16.0.0/24 -j DROP

(c) iptables -A INPUT -s 172.16.0.0/16 -d 200.60.172.252 -j DROP

(d) iptables -A OUTPUT -s 172.16.0.0/24 -d 200.60.172.252 -j DROP

(e) iptables -A FORWARD -s 172.16.0.0/24 -d 200.60.172.252 -j

DROP

3. ¿Listas cada una de las arquitecturas de Firewall?

Page 62: Servidores de Alta Disponibilidad v2

62

CARERRAS PROFESIONALES CIBERTEC

Stateful packet inspection

firewall II

TEMA Describir el uso de Netfilter.

OBJETIVOS ESPECÍFICOS Comprender el funcionamiento del filtrado de paquetes reenviados.

Comprender el funcionamiento del enmascaramiento.

Comprender el uso de la politica predeterminada DROP.

CONTENIDOS Filtrado de paquetes reenviados.

S E M A N A

5

Page 63: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 63

CIBERTEC CARRERAS PROFESIONALES

Filtrado de paquetes reenviados 1.1. Permitir la salida de la LAN a Internet

Política predeterminada: ACEPTAR TODO

Fig. 1. Red

Verificamos que las estaciones de trabajo estén correctamente

configuradas.

Debian: ~# ifconfig eth0

Eth0 Link encap: Ethernet Hwaddr 00:00:21:B6:27:22

Inet addr: 10.0.0.2 Bcast: 10.255.255.255

Mask:255.0.0.0

Inet6 addr: fe80: 200:21ff:feb6:2722/64 Scope: Link

UP BROADCAST RUNNING MULTICAST MTU: 1500 Metric: 1

RX packets: 71 errors: 0 dropped: 0 overruns: 0

frame:0

TX packets: 464 errors: 0 dropped:0 overruns:0

carrier:0

Collisions: 0 txqueuelen: 1000

RX bytes: 5552 (5.4 KiB) TX bytes: 50668 (49.4 KiB)

Interrupt: 11 Base addresses: 0x6400

Debian: ~# route –n

Kernel IP routing table

Destination Gateway Genmask Flags Metric Ref Use

Iface

10.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0

eth0

0.0.0.0 10.0.0.1 0.0.0.0 UG 0 0 0

eth0

Debian: ~# cat /etc/resolv.conf

Search home

Nameserver 208.67.222.222

Nameserver 208.67.220.220

#nameserver 200.48.225.130

Page 64: Servidores de Alta Disponibilidad v2

64

CARERRAS PROFESIONALES CIBERTEC

#nameserver 200.48.225.146

Debian: ~# host www.google.com

Nameserver not responding

www.google.com A record not found, try again

Debian: ~#

Como se puede observar, los parámetros de red están correctamente configurados, pero al realizar una consulta DNS no hay respuesta, esto debido a que el firewall no está configurado.

Configuración del firewall para permitir la salida a Internet de la LAN.

[root@FW ~]# Echo 1 > /proc/sys/net/ipv4/ip_forward

[root@FW ~]# Iptables –t nat –A POSTROUTING –s 10.0.0.0/8 –j SNAT

–to-source 192.168.1.3

[root@FW ~]# Iptables –L

Chain INPUT (policy ACCEPT)

target prot opt source destination

Chain FORWARD (policy ACCEPTS)

Target prot opt source destination

Chain OUTPUT (policy ACCEPT)

Target prot opt source destination

[root@FW ~]# Iptables –L –t nat

Chain PREROUTING (policy ACCEPT)

Target prot opt source destination

Chain POSTROUTING (policy ACCEPT)

Target prot opt source destination

SNAT all -- 10.0.0.0/8 anywhere to: 192.168.1.3

Chain OUTPUT (policy ACCEPT)

Target prot opt source destination

[root@FW ~]#

Después de configurar el firewall podemos salir a Internet.

Debian: ~# ping 10.0.0.1

PING 10.0.0.1 (10.0.0.1) 56(84) bytes of data.

64 bytes from 10.0.0.1: icmp_seq=1 ttl=64 time=0.914 ms

64 bytes from 10.0.0.1: icmp_seq=2 ttl=64 time=0.728 ms

--- 10.0.0.1 Ping statistics ---

2 packets transmitted, 2 received, 0% packet loss, time 1001ms

Rtt min/avg/max/mdev = 0.728/0.821/0.914/0.093 ms

Debian: ~# ping 192.168.1.2

PING 192.168.1.2 (192.168.1.2) 56(84) bytes of data.

64 bytes from 192.168.1.2: icmp_seq=1 ttl=127 time=1.28 ms

64 bytes from 192.168.1.2: icmp_seq=2 ttl=127 time=1.16 ms

--- 192.168.1.2 ping statistics ---

Page 65: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 65

CIBERTEC CARRERAS PROFESIONALES

2 packets transmitted, 2 received, 0% packet loss, time 1001ms

Rtt min/avg/max/mdev = 1.165/1.226/1.287/0.061 ms

Debian: ~# host www.google.com

www.google.com CNAME google.navigation.opendns.com

Google.navigation.opendns.com A 208.67.219.230

Google.navigation.opendns.com A 208.67.219.231

Debian: ~#

1.2. Permitir el ingreso desde Internet hacia la LAN

Política predeterminada: ACEPTAR TODO

Permitir que los paquetes se reenvíen al Servidor HTTP de la LAN.

Fig. 2. Red

Si no se configura el Firewall los paquetes entrantes desde Internet no podrán ingresar al Servidor HTTP (Ver Fig. 3).

Ejecute en el Servidor Firewall los siguientes comandos:

[root@FW ~]# Iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -

j DNAT --to-destination 10.0.0.2

[root@FW ~]# Iptables -L -t nat

Chain PREROUTING (policy ACCEPT)

Target prot opt source destination

DNAT tcp -- anywhere anywhere tcp dpt: http to: 10.0.0.2

Chain POSTROUTING (policy ACCEPT)

Target prot opt source destination

Page 66: Servidores de Alta Disponibilidad v2

66

CARERRAS PROFESIONALES CIBERTEC

SNAT all -- 10.0.0.0/8 anywhere to: 192.168.1.3

Chain OUTPUT (policy ACCEPT)

Target prot opt source destination

[root@FW ~]#

Fig. 3. Acceso denegado

Como se muestra, ya se puede ingresar al Servidor HTTP

Page 67: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 67

CIBERTEC CARRERAS PROFESIONALES

Fig. 4. Acceso permitido

1.3. Permitir el ingreso desde Internet hacia la LAN

Política predeterminada: DENEGAR TODO

Creación de script básico:

[root@FW ~]# Cat fw.sh

Iptables -F

Iptables -X

Iptables -Z

Iptables -t nat F

Iptables -P INPUT ACCEPT

Iptables -P OUTPUT ACCEPT

Iptables -P FORWARD DROP

Modprobe ip_tables

Modprobe iptable_nat

Modprobe ip_conntrack

Modprobe ip_conntrack_ftp

Modprobe ip_conntrack_netbios_ns

Modprobe ip_nat_ftp

Modprobe ipt_LOG

Modprobe ipt_MARK

Modprobe ipt_MASQUERADE

Modprobe ipt_REDIRECT

Modprobe ipt_TOS

Page 68: Servidores de Alta Disponibilidad v2

68

CARERRAS PROFESIONALES CIBERTEC

Modprobe ipt_REJECT

Modprobe ipt_limit

Modprobe ipt_mac

Modprobe ipt_state

Modprobe ipt_multiport

Modprobe ipt_tos

Modprobe ipt_mark

Modprobe x_iptable

Modprobe iptable_filter

Iptables -A FORWARD -j LOG

Echo 1 > /proc/sys/net/ipv4/ip_forward

Iptables -t nat -A POSTROUTING -s 10.0.0.0/8 -j SNAT --to-source

192.168.1.3

[root@FW ~]#

[root@FW ~]# Iptables -L

Chain INPUT (policy ACCEPT)

Target prot opt source destination

Chain FORWARD (policy DROP)

Target prot opt source destination

LOG all -- anywhere anywhere LOG level warning

Chain OUTPUT (policy ACCEPT)

Target prot opt source destination

[root@FW ~]# Iptables -L -t nat

Chain PREROUTING (policy ACCEPT)

Target prot opt source destination

Chain POSTROUTING (policy ACCEPT)

Target prot opt source destination

Chain OUTPUT (policy ACCEPT)

Target prot opt source destination

[root@FW ~]#

Por el momento, están bloqueados los paquetes reenviados; por lo tanto, no hay salida de la LAN a Internet y tampoco pueden ingresar al Servidor HTTP

Permitir consultas a los Servidores DNS

[root@FW ~]# Iptables -A FORWARD -i eth1 -p tcp --dport 53 -j ACCEPT

[root@FW ~]# Iptables -A FORWARD -i eth1 -p udp --dport 53 -j ACCEPT

[root@FW ~]# Iptables -A FORWARD -i eth0 -p tcp --sport 53 -j ACCEPT

[root@FW ~]# Iptables -A FORWARD -i eth0 -p udp --sport 53 -j ACCEPT

[root@FW ~]# Iptables -L

Page 69: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 69

CIBERTEC CARRERAS PROFESIONALES

Chain INPUT (policy ACCEPT)

Target prot opt source destination

Chain FORWARD (policy DROP)

Target prot opt source destination

LOG all -- anywhere anywhere LOG level warning

ACCEPT all -- anywhere anywhere

ACCEPT tcp -- anywhere anywhere tcp dpt:domain

ACCEPT tcp -- anywhere anywhere tcp spt:domain

ACCEPT udp -- anywhere anywhere udp dpt:domain

ACCEPT udp -- anywhere anywhere udp spt:domain

Chain OUTPUT (policy ACCEPT)

target prot opt source destination

[root@FW ~]#

[root@FW ~]# cat /proc/net/ip_conntrack

tcp 6 431999 ESTABLISHED src=192.168.1.2 dst=192.168.1.3 sport=1456

dport=22 packets=2019 bytes=182276 src=192.168.1.3 dst=192.168.1.2 sport=22

dport=1456 packets=2617 bytes=180216 [ASSURED] mark=0 use=1 rate=100

udp 17 6 src=10.0.0.2 dst=10.255.255.255 sport=138 dport=138 packets=2

bytes=500 [UNREPLIED] src=10.255.255.255 dst=10.0.0.2 sport=138 dport=138

packets=0 bytes=0 mark=0 use=1 rate=70

udp 17 177 src=10.0.0.2 dst=208.67.222.222 sport=1068 dport=53 packets=5

bytes=340 src=208.67.222.222 dst=192.168.1.3 sport=53 dport=1068 packets=5

bytes=607 [ASSURED] mark=0 use=1 rate=80

[root@FW ~]#

Esto no es suficiente para que desde la LAN puedan navegar

[root@FW ~]# cat /proc/net/ip_conntrack

tcp 6 52 SYN_RECV src=10.0.0.2 dst=208.111.148.94 sport=1035 dport=80 packe

ts=1 bytes=60 src=208.111.148.94 dst=192.168.1.3 sport=80 dport=1035 packets=5 b

ytes=320 mark=0 use=1 rate=10

udp 17 6 src=10.0.0.2 dst=208.67.222.222 sport=1070 dport=53 packets=1 byte

s=60 src=208.67.222.222 dst=192.168.1.3 sport=53 dport=1070 packets=1 bytes=108

mark=0 use=1 rate=30

udp 17 6 src=10.0.0.2 dst=208.67.222.222 sport=1071 dport=53 packets=1 byte

s=60 src=208.67.222.222 dst=192.168.1.3 sport=53 dport=1071 packets=1 bytes=92 m

ark=0 use=1 rate=20

udp 17 156 src=10.0.0.2 dst=208.67.222.222 sport=1069 dport=53 packets=2 by

tes=120 src=208.67.222.222 dst=192.168.1.3 sport=53 dport=1069 packets=2 bytes=2

00 [ASSURED] mark=0 use=1 rate=20

udp 17 6 src=10.0.0.2 dst=208.67.222.222 sport=1072 dport=53 packets=1 byte

s=60 src=208.67.222.222 dst=192.168.1.3 sport=53 dport=1072 packets=1 bytes=108

mark=0 use=1 rate=30

tcp 6 40 SYN_RECV src=10.0.0.2 dst=208.111.148.94 sport=1033 dport=80 packe

ts=1 bytes=60 src=208.111.148.94 dst=192.168.1.3 sport=80 dport=1033 packets=6 b

ytes=384 mark=0 use=1 rate=0

udp 17 133 src=10.0.0.2 dst=208.67.222.222 sport=1068 dport=53 packets=6 by

tes=400 src=208.67.222.222 dst=192.168.1.3 sport=53 dport=1068 packets=6 bytes=6

Page 70: Servidores de Alta Disponibilidad v2

70

CARERRAS PROFESIONALES CIBERTEC

99 [ASSURED] mark=0 use=1 rate=20

tcp 6 51 SYN_RECV src=10.0.0.2 dst=208.111.148.94 sport=1034 dport=80 packe

ts=1 bytes=60 src=208.111.148.94 dst=192.168.1.3 sport=80 dport=1034 packets=5 b

ytes=320 mark=0 use=1 rate=10

[root@FW ~]#

Como se muestra, las únicas conexiones ASEGURADAS son las consultas DNS.

Permitir la salida de las peticiones al puerto 80

[root@FW ~]# iptables -A FORWARD -i eth1 -p tcp --dport 80 -j ACCEPT

[root@FW ~]# iptables -A FORWARD -i eth0 -p tcp --sport 80 -j ACCEPT

[root@FW ~]# iptables -L

Chain INPUT (policy ACCEPT)

target prot opt source destination

Chain FORWARD (policy DROP)

target prot opt source destination

LOG all -- anywhere anywhere LOG level warning

ACCEPT all -- anywhere anywhere

ACCEPT tcp -- anywhere anywhere tcp dpt:domain

ACCEPT tcp -- anywhere anywhere tcp spt:domain

ACCEPT udp -- anywhere anywhere udp dpt:domain

ACCEPT udp -- anywhere anywhere udp spt:domain

ACCEPT tcp -- anywhere anywhere tcp dpt:http

ACCEPT tcp -- anywhere anywhere tcp spt:http

Chain OUTPUT (policy ACCEPT)

target prot opt source destination

[root@FW ~]#

[root@FW ~]# cat /proc/net/ip_conntrack

tcp 6 7 TIME_WAIT src=10.0.0.2 dst=208.111.148.94 sport=1112 dport=80

packets=5 bytes=755 src=208.111.148.94 dst=192.168.1.3 sport=80 dport=1112

packets=5 bytes=1596 [ASSURED] mark=0 use=1 rate=570

udp 17 60 src=10.0.0.2 dst=208.67.222.222 sport=1136 dport=53 packets=2

bytes=120 src=208.67.222.222 dst=192.168.1.3 sport=53 dport=1136 packets=2

bytes=200 [ASSURED] mark=0 use=1 rate=60

tcp 6 8 TIME_WAIT src=10.0.0.2 dst=66.29.38.249 sport=1114 dport=80

packets=6 bytes=850 src=66.29.38.249 dst=192.168.1.3 sport=80 dport=1114

packets=4 bytes=581 [ASSURED] mark=0 use=1 rate=230

udp 17 59 src=10.0.0.2 dst=208.67.222.222 sport=1122 dport=53 packets=2

bytes=120 src=208.67.222.222 dst=192.168.1.3 sport=53 dport=1122 packets=2

bytes=184 [ASSURED] mark=0 use=1 rate=50

Permitir al acceso al Servidor HTTP

Page 71: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 71

CIBERTEC CARRERAS PROFESIONALES

[root@FW ~]# iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT

--to-destination 10.0.0.2

[root@FW ~]# iptables -A FORWARD -i eth0 -p tcp --dport 80 -d 10.0.0.2 -j

ACCEPT

[root@FW ~]# iptables -A FORWARD -i eth1 -p tcp --sport 80 -s 10.0.0.2 -j

ACCEPT

[root@FW ~]# iptables -L

Chain INPUT (policy ACCEPT)

target prot opt source destination

Chain FORWARD (policy DROP)

target prot opt source destination

LOG all -- anywhere anywhere LOG level warning

ACCEPT all -- anywhere anywhere

ACCEPT tcp -- anywhere anywhere tcp dpt:domain

ACCEPT tcp -- anywhere anywhere tcp spt:domain

ACCEPT udp -- anywhere anywhere udp dpt:domain

ACCEPT udp -- anywhere anywhere udp spt:domain

ACCEPT tcp -- anywhere anywhere tcp dpt:http

ACCEPT tcp -- anywhere anywhere tcp spt:http

ACCEPT tcp -- anywhere 10.0.0.2 tcp dpt:http

Chain OUTPUT (policy ACCEPT)

target prot opt source destination

[root@FW ~]# iptables -L -t nat

Chain PREROUTING (policy ACCEPT)

target prot opt source destination

DNAT tcp -- anywhere anywhere tcp dpt:http to:10.0.0.2

Chain POSTROUTING (policy ACCEPT)

target prot opt source destination

SNAT all -- 10.0.0.0/8 anywhere to:192.168.1.3

Chain OUTPUT (policy ACCEPT)

target prot opt source destination

[root@FW ~]#

Permitir sesiones remotas en el Servidor HTTP

[root@FW ~]# iptables -A FORWARD -d 192.168.1.10 -p tcp --dport 22 -d

10.0.0.2 -j ACCEPT

[root@FW ~]# iptables -A FORWARD -p tcp --dport 22 -d 10.0.0.2 -j ACCEPT

[root@FW ~]# iptables -A FORWARD -i eth1 -p tcp --sport 22 -s 10.0.0.2 -j

ACCEPT

[root@FW ~]#

[root@FW ~]# iptables -L

Chain INPUT (policy ACCEPT)

target prot opt source destination

Chain FORWARD (policy DROP)

Page 72: Servidores de Alta Disponibilidad v2

72

CARERRAS PROFESIONALES CIBERTEC

target prot opt source destination

LOG all -- anywhere anywhere LOG level warning

ACCEPT tcp -- anywhere anywhere tcp dpt:domain

ACCEPT udp -- anywhere anywhere udp dpt:domain

ACCEPT tcp -- anywhere anywhere tcp spt:domain

ACCEPT udp -- anywhere anywhere udp spt:domain

ACCEPT tcp -- anywhere anywhere tcp dpt:http

ACCEPT tcp -- anywhere anywhere tcp spt:http

ACCEPT tcp -- anywhere 10.0.0.2 tcp dpt:http

ACCEPT tcp -- 10.0.0.2 anywhere tcp spt:http

ACCEPT tcp -- anywhere 10.0.0.2 tcp dpt:ssh

ACCEPT tcp -- 10.0.0.2 anywhere tcp spt:ssh

Chain OUTPUT (policy ACCEPT)

target prot opt source destination

[root@FW ~]# iptables -L -t nat

Chain PREROUTING (policy ACCEPT)

target prot opt source destination

DNAT tcp -- anywhere anywhere tcp dpt:http to:10.0.0.2

DNAT tcp -- anywhere 192.168.1.10 tcp dpt:ssh to:10.0.0.2

Chain POSTROUTING (policy ACCEPT)

target prot opt source destination

SNAT all -- 10.0.0.0/8 anywhere to:192.168.1.3

Chain OUTPUT (policy ACCEPT)

target prot opt source destination

[root@FW ~]#

[root@FW ~]# cat /proc/net/ip_conntrack

tcp 6 431999 ESTABLISHED src=192.168.1.2 dst=192.168.1.3 sport=1456

dport=22 packets=4158 bytes=374816 src=192.168.1.3 dst=192.168.1.2 sport=22

dport=1456 packets=5267 bytes=453188 [ASSURED] mark=0 use=1 rate=940

tcp 6 431926 ESTABLISHED src=192.168.1.2 dst=192.168.1.10 sport=2623

dport=22 packets=23 bytes=2379 src=10.0.0.2 dst=192.168.1.2 sport=22 dport=2623

packets=27 bytes=3213 [ASSURED] mark=0 use=1 rate=500

[root@FW ~]#

[root@FW ~]# iptables -L -n

Chain INPUT (policy ACCEPT)

target prot opt source destination

Chain FORWARD (policy DROP)

target prot opt source destination

LOG all -- 0.0.0.0/0 0.0.0.0/0 LOG flags 0 level 4

ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:53

ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:53

ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:53

ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp spt:53

ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80

Page 73: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 73

CIBERTEC CARRERAS PROFESIONALES

ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:80

ACCEPT tcp -- 0.0.0.0/0 10.0.0.2 tcp dpt:80

ACCEPT tcp -- 10.0.0.2 0.0.0.0/0 tcp spt:80

ACCEPT tcp -- 0.0.0.0/0 10.0.0.2 tcp dpt:22

ACCEPT tcp -- 10.0.0.2 0.0.0.0/0 tcp spt:22

Chain OUTPUT (policy ACCEPT)

target prot opt source destination

[root@FW ~]#

[root@FW ~]# iptables -L -n -t nat

Chain PREROUTING (policy ACCEPT)

target prot opt source destination

DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 to:10.0.0.2

DNAT tcp -- 0.0.0.0/0 192.168.1.10 tcp dpt:22 to:10.0.0.2

Chain POSTROUTING (policy ACCEPT)

target prot opt source destination

SNAT all -- 10.0.0.0/8 0.0.0.0/0 to:192.168.1.3

Chain OUTPUT (policy ACCEPT)

target prot opt source destination

[root@FW ~]#

Page 74: Servidores de Alta Disponibilidad v2

74

CARERRAS PROFESIONALES CIBERTEC

Autoevaluación

1. ¿Cuál es la politica predeterminada del firewall?

2. El objetivo (target) particular REJECT es:

(a) El paquete salta el resto de verificaciones de la regla y continúa hacia su destino.

(b) Al paquete se le deniega el acceso y no envía nada al equipo que

envió el paquete.

(c) Al paquete se le deniega el acceso y envía un mensaje de error al equipo que envió el paquete.

(d) El paquete es reenviado a otro host.

(e) El paquete crea una nueva conexión.

3. ¿Cuál es el objetivo que se aplica a una determinada regla que permita

enmascarar todos los paquetes que proviene de una red privada que salen por un enlace ppp0 con destino a Internet?

(a) SNAT (b) REDIRECT

(c) MASQUERADE

(d) DNAT

(e) NAT

Page 75: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 75

CIBERTEC CARRERAS PROFESIONALES

Stateful packet inspection

firewall III

TEMA Describir el uso de Netfilter.

OBJETIVOS ESPECÍFICOS Comprender el funcionamiento del filtrado de paquetes usando estados de conexión.

CONTENIDOS Estados de conexión.

Permitiendo paquetes entrantes/salientes.

Permitiendo paquetes salientes/entrantes.

Permitiendo paquetes reenviados.

S E M A N A

6

Page 76: Servidores de Alta Disponibilidad v2

76

CARERRAS PROFESIONALES CIBERTEC

ESTADOS DE CONEXIÓN

IPTables los usa en base a cómo trabaja el protocolo TCP y permite definir, de forma más especifica, reglas en base a si una conexión es nueva o si una conexión ha generado otra. Esto solo es aplicable al protocolo TCP, ya que este funciona definiendo 3 vías durante una conexión, también llamado “Three-way handshake”. Tomando como base lo anterior, IPTables utiliza los siguientes 3 estados (states):

New – Nos indica que el paquete es el primero que vemos cuando un sistema se trata de conectar a otro enviando un paquete TCP marcado como SYN (Syncrhonize).

Related – Una conexión se considera "relacionada" cuando esta ligada

a otra conexión ya "establecida".

Established – Ha visto tráfico en ambas direcciones y por tanto admitirá continuamente los paquetes de ese flujo cuando el sistema que inició la conexión recibe el SYN-ACK (se establece la conexión entre ambos sistemas).

Invalid – implica que el paquete no puede ser identificado o que no tiene

ningún estado.

Fig. 1. Estados de conexión

Page 77: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 77

CIBERTEC CARRERAS PROFESIONALES

1. Permitiendo paquetes entrantes/salientes

Política predeterminada: DENEGAR TODO

Permitir el paquete entrante: echo-request En el equipo 10.0.0.2, ejecutamos:

centos:~# iptables -A INPUT –m state --state NEW -p icmp --

icmp-type 8 -s 10.0.0.1 -j ACCEPT

centos:~# iptables –A OUTPUT –m state --state ESTABLISHED –j

ACCEPT

Fig. 2. Permitir paquete echo-request entrante

centos:~# iptables -L

Chain INPUT (policy DROP)

target prot opt source destination

ACCEPT icmp -- 10.0.0.1 anywhere state NEW icmp echo-

request

Chain FORWARD (policy DROP)

target prot opt source destination

Chain OUTPUT (policy DROP)

target prot opt source destination

ACCEPT all -- anywhere anywhere state ESTABLISHED

debian:~#

Page 78: Servidores de Alta Disponibilidad v2

78

CARERRAS PROFESIONALES CIBERTEC

2. Permitiendo paquetes salientes/entrantes

Política predeterminada: DENEGAR TODO

Fig. 3. Permitir paquete echo-request saliente

Permitir el paquete saliente: echo-request En el equipo 10.0.0.2, ejecutamos:

centos:~# iptables -A OUTPUT –m state --state NEW -p icmp --

icmp-type 8 -d 10.0.0.1 -j ACCEPT

centos:~# iptables –A INPUT –m state --state ESTABLISHED –j

ACCEPT

centos:~# iptables -L

Chain INPUT (policy DROP)

target prot opt source destination

ACCEPT all -- anywhere anywhere state ESTABLISHED

Chain FORWARD (policy DROP)

target prot opt source destination

Chain OUTPUT (policy DROP)

target prot opt source destination

ACCEPT icmp -- anywhere 10.0.0.1 state NEW icmp echo-

request

centos:~#

Page 79: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 79

CIBERTEC CARRERAS PROFESIONALES

3. Permitiendo paquetes reenviados

Fig. 4. Red

Script que usa el estado de conexión

[root@FW ~]# cat fw1.sh

iptables -F

iptables -X

iptables -Z

iptables -t nat -F

iptables -P INPUT ACCEPT

iptables -P OUTPUT ACCEPT

iptables -P FORWARD DROP

modprobe ip_tables

modprobe iptable_nat

modprobe ip_conntrack

modprobe ip_conntrack_ftp

modprobe ip_conntrack_netbios_ns

modprobe ip_nat_ftp

modprobe ipt_LOG

modprobe ipt_MARK

modprobe ipt_MASQUERADE

modprobe ipt_REDIRECT

modprobe ipt_TOS

modprobe ipt_REJECT

modprobe ipt_limit

modprobe ipt_mac

modprobe ipt_state

modprobe ipt_multiport

modprobe ipt_tos

modprobe ipt_mark

modprobe x_iptable

modprobe iptable_filter

iptables -A FORWARD -j LOG

echo 1 > /proc/sys/net/ipv4/ip_forward

Page 80: Servidores de Alta Disponibilidad v2

80

CARERRAS PROFESIONALES CIBERTEC

iptables -t nat -A POSTROUTING -s 10.0.0.0/8 -j SNAT --to-

source 192.168.1.3

iptables -A FORWARD –m state --state NEW -i eth1 -p tcp --dport

53 -j ACCEPT

iptables -A FORWARD –m state --state NEW -i eth1 -p udp --dport

53 -j ACCEPT

iptables -A FORWARD –m state --state NEW -i eth1 -p tcp --dport

80 -j ACCEPT

iptables -A FORWARD –m state --state NEW -i eth0 -p tcp --dport

80 -d 10.0.0.2 -j ACCEPT

iptables -A FORWARD –m state --state NEW -p tcp --dport 22 -d

10.0.0.2 -j ACCEPT

iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j

ACCEPT

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT

--to-destination 10.0.0.2

iptables -t nat -A PREROUTING -d 192.168.1.10 -p tcp --dport 22

-j DNAT --to-destination 10.0.0.2

[root@FW ~]#

Page 81: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 81

CIBERTEC CARRERAS PROFESIONALES

Autoevaluación

1. ¿Cuáles son los posibles estados de conexión de los paquetes?

(a) Established, New, Related y Reject (b) Invalid, Related, Redirect y Established (c) New, Established, Related e Invalid (d) Invalid, Replace, New y Established

2. El estado NEW especifica: 3. Que el paquete no está asociados a ninguna conexión conocida y puede

estar defectuoso.

(a) Que el paquete se asocia a una conexión existente. (b) Que el paquete crea una nueva conexión. (c) Que el paquete crea una nueva conexión, pero asociada a una

conexión existente.

4. La tabla nat ejecuta:

(a) Operaciones de traducción de direcciones de red. (b) Operaciones de bloqueo o aceptación de paquetes. (c) Modificaciones en los campos de las cabeceras de los paquetes. (d) Altera los paquetes que ingresan al sistema.

Page 82: Servidores de Alta Disponibilidad v2

82

CARERRAS PROFESIONALES CIBERTEC

Proxy application firewall I

TEMA Describir el uso del Servidor Proxy Squid.

OBJETIVOS ESPECÍFICOS

Comprender el funcionamiento del Servidor Proxy.

CONTENIDOS

Introducción.

Squid.

S E M A N A

9

Page 83: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 83

CIBERTEC CARRERAS PROFESIONALES

INTRODUCCIÓN Un servidor Proxy es un software que realiza tareas de servidor intermediario. El caso más común es utilizarlo para compartir Internet en ámbitos donde se posee una única conexión a Internet y varias computadoras. El servidor Proxy se conecta directamente a Internet y por otra interfaz a la red interna, de modo que todos los pedidos a Internet de las computadoras pertenecientes a la LAN pasan a través del Proxy y es este en realidad el que hace las conexiones hacia la web y luego entrega las respuestas a los hosts correspondientes.

Fig. 1. Servidor Proxy

Una de las funciones principales de un servidor Proxy es actuar como cache de contenido principalmente web (http). Esto mejora el desempeño de una red consumiendo menos recursos, debido que, frente a un nuevo pedido de un sitio que ya ha sido realizado, en vez de generar trafico hacia Internet, se entrega el sitio cuyo contenido se encuentra almacenado en el servidor.

1. SQUID

Squid es un software de libre distribución para realizar la tarea de un servidor Proxy con prestaciones muy profesionales. Suele acompañar a las distribuciones más habituales, aunque también puede obtenerse de su sitio oficial (http://www.squid-cache.org/). Actualmente, la versión estable es la 2.6 STABLE18. Squid puede funcionar como Servidor Intermediario (Proxy) y caché de contenido de red para los protocolos HTTP, FTP, GOPHER y WAIS, Proxy

Page 84: Servidores de Alta Disponibilidad v2

84

CARERRAS PROFESIONALES CIBERTEC

de SSL, caché transparente, caché de consultas DNS y otras muchas más como filtración de dominios y control de acceso por IP y por usuario. Provee potentes opciones para tener un completo control sobre los sitios que se visitan, así como para filtrar, permitir o bloquear el acceso de determinados equipos, IP’s, dominios, etc.

Instalación de Squid: yum install squid

2.1. Funcionamiento

Squid realiza el almacenamiento de objetos utilizando diferentes algoritmos:

LRU (política por defecto): Se eliminan de la caché los objetos que no han sido accedidos en mucho tiempo, manteniendo en la caché los que han sido utilizado más recientemente.

LFUDA: Los objetos más solicitados permanecen en el caché sin importar su tamaño, de modo que un objeto grande que se solicite con mayor frecuencia impedirá que se pueda hacer caché de objetos pequeños que se soliciten con menor frecuencia.

GDSF: Optimiza la eficiencia por objeto, manteniendo en el caché los objetos pequeños más frecuentemente solicitados; descarta del caché objetos grandes que sean solicitado con frecuencia.

2.2. Configuración del servidor

La configuración del servidor Proxy Squid se realiza en un único archivo de texto plano generalmente ubicado en /etc/squid/squid.conf. La sintaxis en este archivo debe comenzar en la primera columna, sin dejar espacios.

Nombre del Host y Puerto La primera configuración básica debe ser el nombre y los puertos del host. Por defecto, SQUID escucha en el puerto.

visible_hostname proxy

http_port 3128

Memoria Usada Para especificar a Squid qué cantidad de memoria debe usar hay que añadir la siguiente línea al fichero de configuración: cache_mem 8 MB

Tamaño de la memoria caché Aquí se fija el directorio y el espacio que se utilizará del disco duro para almacenar las páginas. Por defecto, SQUID usara 100 MB, y lo almacenará por defecto en 16 subdirectorios de primer nivel y en 256 subdirectorios de segundo nivel.

Page 85: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 85

CIBERTEC CARRERAS PROFESIONALES

cache_dir ufs /var/cache/squid 100 16 256

Tiempo de vida de la caché Podemos configurar el tiempo que los objetos permanecerán almacenados en el servidor. reference_age 1 month

Control de acceso Es necesario establecer listas de control de acceso (acl) que definan una red o bien ciertas máquinas en particular. A cada acl se le asignará una regla de control de acceso (acr) que funcionará bloqueando o permitiendo el acceso a través de SQUID. Comúnmente, las acl se definen y las acr se aplican de la siguiente manera: Acl [nombre de la lista] src/dst [ips que componen la lista]

http_access allow/deny [nombre de la lista]

Para el siguiente ejemplo, la red 192.168.0.0/24 llamada LAN1 tendrá permitido acceder al Proxy: acl LAN1 src 192.168.0.0/255.255.255.0

http_access allow LAN1

Además de direcciones IP’s, en las acl es posible definir nombres de dominios y puertos utilizando dstdomain y port de la siguiente manera: acl educativas dstdomain edu.pe

acl diario dstdomain diario.com

acl safeports port 443

http_access deny diario

http_access allow educativas

http_access allow safeports

Es importante tener en cuenta que las acl educativas y diario no hubiesen coincidido, si se visitaban sitios como fich.unl.edu.pe o deportes.clarin.com. Para bloquear también los subdominios, se debe utilizar el punto (.) como comodín antes del dominio: acl educativas dstdomain .edu.pe

acl diario dstdomain .diario.com

Existe una acl que debe estar configurada para que SQUID funcione: acl all src 0.0.0.0/0.0.0.0

Esta acl, a diferencia de las demás, debe tener obligatoriamente la etiqueta all.

Page 86: Servidores de Alta Disponibilidad v2

86

CARERRAS PROFESIONALES CIBERTEC

Coincidencia en las acl Para que se produzca una coincidencia (match) en una acl, se utiliza la función OR, por ejemplo: acl ips src 192.168.0.10 192.168.0.11 192.168.0.16

Cuando la ip origen sea 192.168.0.11, la coincidencia se dará luego de la segunda dirección ip, y la acl será considerada verdadera. Por esta razón, se recomienda incluir las opciones más comunes al comienzo, para acelerar el proceso de evaluación. Coincidencias en las acr Para que una acr coincida, se utiliza la función AND. Para el ejemplo: http_access allow educativas safeport

Debe accederse a sitios .edu.pe al puerto 443 para que sea permitido el acceso. Parámetros extras Otro símbolo reservado consiste en la utilización del signo de admiración de cierre: !. Se utiliza como negación de una determinada acl, para el ejemplo, !LAN1 significa que el acceso a Squid es para todos los que no formen parte de LAN1.

2.3. Configuración de los clientes

2.3.1. Navegador konqueror

Desde un equipo cliente (Debian Linux):

Ejecute el Konqueror.

Page 87: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 87

CIBERTEC CARRERAS PROFESIONALES

Fig. 2. Navegador Konqueror

Haga clic en Preferencias → Configurar Konqueror, desde la barra de menú. (Ver Fig. 3).

Page 88: Servidores de Alta Disponibilidad v2

88

CARERRAS PROFESIONALES CIBERTEC

Fig. 3. Configuración de Konqueror

Haga clic en la pestaña Proxy.

Haga clic en Especificar manualmente la configuración del proxy.

Haga clic en el botón Configuración. (Ver Fig. 4).

Page 89: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 89

CIBERTEC CARRERAS PROFESIONALES

Fig. 4. Configuración del Proxy

Ingrese la dirección IP del servidor Proxy y el número del puerto.

Haga clic en el botón Aceptar.

Haga clic en el botón Aplicar.

Haga clic en el botón Aceptar.

2.4. Ejercicios

2.4.2. Caso 1 Considerando que se dispone de una red 192.168.1.0/255.255.255.0, se desea permitir la salida a Internet de la red local.

Page 90: Servidores de Alta Disponibilidad v2

90

CARERRAS PROFESIONALES CIBERTEC

Fig. 5. LAN

Establecer una lista de control de acceso para la red local: o Definir la IP correspondiente a la red y la máscara de la sub-red:

acl LAN src 192.168.1.0/255.255.255.0

Establecer una regla de control para la red local: o Regla que establece acceso permitido a Squid a toda la red

local: http_access allow LAN

2.4.3. Caso 2 Considerando que se dispone de una red 192.168.1.0/255.255.255.0, se desea permitir la salida a Internet de algunos equipos.

o Definir una ACL especificando un archivo, el cual contiene una lista de direcciones IP: acl permitidos src "/etc/squid/permitidos"

Contenido del archivo /etc/squid/permitidos: 192.168.1.10

192.168.1.12

192.168.1.13

192.168.1.15

192.168.1.16

192.168.1.20

192.168.1.40

Establecer la regla de control: o Regla que establece acceso permitido a Squid a la ACL

denominada permitidos: http_access allow permitidos

Page 91: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 91

CIBERTEC CARRERAS PROFESIONALES

http_access deny all

2.4.4. Caso 3 Considerando que se dispone de una red 192.168.1.0/255.255.255.0, se desea denegar la salida a Internet de algunos equipos.

Establecer una lista de control de acceso para la red local: o Definir la IP correspondiente a la red y la máscara de la sub-red:

acl LAN src 192.168.1.0/255.255.255.0

o Definir una ACL especificando un archivo, el cual contiene una

lista de direcciones IP: acl denegados src "/etc/squid/denegados"

Contenido del archivo /etc/squid/denegados: 192.168.1.31

192.168.1.22

192.168.1.33

192.168.1.34

192.168.1.46

192.168.1.50

192.168.1.60

Establecer la regla de control: o Reglas que establecen acceso restringido a Squid:

http_access deny denegados

http_access allow LAN

http_access deny all

o También pueden definirse reglas valiéndose de la expresión !, la cual significa no: http_access allow LAN !denegados

http_access deny all

2.4.5. Caso 4 Restringir al acceso a ciertas páginas web.

Establecer una lista de control de acceso: o Definir una ACL especificando un archivo, el cual contiene una

lista de paginas web: acl webdenegadas url_regex "/etc/squid/webdenegadas"

Contenido del archivo /etc/squid/webdenegadas: www.hotmail.com

www.yahoo.com

gmail.com

www.youtube.com

Establecer la regla de control:

Page 92: Servidores de Alta Disponibilidad v2

92

CARERRAS PROFESIONALES CIBERTEC

o Reglas que establecen acceso restringido a Squid: http_access deny webdenegadas

http_access allow LAN

http_access deny all

o También pueden definirse reglas valiéndose de la expresión !, la cual significa no: http_access allow LAN !webdenegadas

http_access deny all

Fig. 5. Acceso denegado

2.4.6. Caso 5 Restringir la descarga de ciertos archivos por su extensión.

Establecer una lista de control de acceso: o Definir ACL:

Acl descargas1 urlpath_regex -i \.mp3$ \.zip$ \.exe$

o Definir una ACL especificando un archivo, el cual contiene una lista de páginas web: acl descargas1 urlpath_regex etc/squid/descargas1"

Page 93: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 93

CIBERTEC CARRERAS PROFESIONALES

Contenido del archivo /etc/squid/descargas1: \.mp3$

\.zip$

\.exe$

\.scr$

\.pif$

Establecer la regla de control:

o Reglas que establecen acceso restringido a Squid: http_access deny descargas1

http_access allow LAN

http_access deny all

o También pueden definirse reglas valiéndose de la expresión !, la cual significa no: http_access allow LAN !descargas1

http_access deny all

2.5. Verificación de logs SQUID almacena en el directorio /var/log/squid información sobre los accesos, diálogos con otros servidores SQUID, etc. Existen varios archivos de logs. El que nos brinda información sobre el acceso al servidor es access.log. Cuando se entrega a un cliente un objeto que se encontraba almacenado, se produce un HIT y si el objeto debe ser consultado hacia Internet, entonces, es un MISS. Squid genera 3 ficheros de log:

access.log: Aquí se guardan las peticiones que se le hacen al Proxy, podemos saber cuánta gente usa el Proxy, qué páginas son las más visitadas.

[root@centos:~]# tail -f /var/log/squid/access.log

1176538770.568 195 192.168.1.4 TCP_DENIED/403 1324 GET

http://gmail.com/ - NONE/- text/html

1176538773.646 4 192.168.1.4 TCP_DENIED/403 1346 GET

http://gmail.com/favicon.ico - NONE/- text/html

1176538799.979 12 192.168.1.4 TCP_DENIED/403 1336 GET

http://www.youtube.com/ - NONE/- text/html

1176538800.937 91 192.168.1.4 TCP_DENIED/403 1358 GET

http://www.youtube.com/favicon.ico - NONE/- text/html

1176538818.162 11 192.168.1.4 TCP_DENIED/403 1336 GET

http://www.hotmail.com/ - NONE/- text/html

1176538819.070 82 192.168.1.4 TCP_DENIED/403 1358 GET

http://www.hotmail.com/favicon.ico - NONE/- text/html

1204373729.553 644 192.168.1.2 TCP_MISS/302 606 GET

http://www.cibertec.edu.pe/ - DIRECT/200.0.118.6 text/html

1204373729.963 169 192.168.1.2 TCP_MISS/200 2642 GET

http://www.cibertec.edu.pe/IntroCIBERTEC.html -

DIRECT/200.0.118.6 text/html

Page 94: Servidores de Alta Disponibilidad v2

94

CARERRAS PROFESIONALES CIBERTEC

1204373732.395 122 192.168.1.2 TCP_MISS/200 3754 GET

http://www.cibertec.edu.pe/libreriajs/AC_RunActiveContent.js

- DIRECT/200.0.118.6 application/x-javascript

1204373772.770 463 192.168.1.2 TCP_MISS/301 737 GET

http://www.macromedia.com/go/getflashplayer -

DIRECT/216.104.208.202 text/html

1204373774.270 1108 192.168.1.2 TCP_MISS/200 25974 GET

http://www.adobe.com/shockwave/download/download.cgi? -

DIRECT/216.104.208.201 text/html

1204373775.573 354 192.168.1.2 TCP_MISS/200 1562 GET

http://www.adobe.com/favicon.ico - DIRECT/216.104.208.201

image/x-icon

[root@centos:~]#

cache.log: Aquí se van guardando los errores, mensajes de inicio, etc.

store.log: Aquí se va guardando lo que pasa con el caché, qué páginas (objetos) se añaden, cuáles se quitan.

El análisis de los logs, por lo general, se realiza con herramientas de software independientes de SQUID. Dos de las más utilizadas son SARG (Squid Analysis Report Grpahics) y Webalizer, las mismas generan reportes gráficos con estadísticas en un archivo html. Son una excelente herramienta para llevar un control detallado sobre la utilización de la navegación web.

Page 95: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 95

CIBERTEC CARRERAS PROFESIONALES

Autoevaluación

1. El archivo cache.log registra:

(a) El acceso de los clientes al caché de squid (b) Información del funcionamiento del caché de squid

(c) Los objetos agregados o eliminados en el caché de squid

(d) Todos los eventos del sistema

2. Defina una lista de control de acceso que defina toda la red 192.168.1.32/27

(a) acl lan src 192.168.1.32/255.255.255.224 (b) acl lan urlpath_regex -i 192.168.1.32/255.255.255.224

(c) acl lan src 192.168.1.32/255.255.255.0

(d) acl lan url_regex 192.168.1.32/255.255.255.224

3. El Servidor Proxy no puede procesar los siguientes tipos de conexión: (Seleccione 2)

FTP POP3

http

HTTPS

SMTP

Page 96: Servidores de Alta Disponibilidad v2

96

CARERRAS PROFESIONALES CIBERTEC

Proxy application firewall II

TEMA Descipción del uso del Servidor Proxy Squid.

OBJETIVOS ESPECÍFICOS

Comprender el funcionamiento del Servidor Proxy.

Configurar un Proxy Transparente.

CONTENIDOS

Configuración

Proxy Transparente

Squid Análisis Report Generator (Sarg)

S E M A N A

10

Page 97: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 97

CIBERTEC CARRERAS PROFESIONALES

CONFIGURACIÓN

2.1. Bloqueo del MSN Messenger

2.1.1. Configurar el cliente

Ejecute el IE.

Haga clic en el menú Herramientas. Luego, en Opciones de Internet. (Ver Fig. 1)

Haga clic en la pestaña Conexiones.

Haga clic en el botón Configuración de LAN.

Fig. 1. Opciones de Internet

Haga clic en la casilla del Servidor Proxy. (Ver Fig. 2)

Ingrese los valores correspondientes al servidor Proxy.

Haga clic en el botón Aceptar.

Haga clic en el botón Aceptar.

Page 98: Servidores de Alta Disponibilidad v2

98

CARERRAS PROFESIONALES CIBERTEC

Fig. 2. Configuración del cliente

2.1.2. Archivo de registro Ingrese desde el equipo cliente al MSN y observe los paquetes relacionados en el archivo /var/log/squid/access.log en el servidor Proxy. [root@centos:~]# tail -f /var/log/squid/access.log

1204395339.680 342 192.168.1.4 TCP_MISS/200 430 POST

http://207.46.111.57/gateway/gateway.dll? -

DIRECT/207.46.111.57 application/x-msn-messenger

1204395340.204 316 192.168.1.4 TCP_MISS/200 587 POST

http://207.46.111.57/gateway/gateway.dll? -

DIRECT/207.46.111.57 application/x-msn-messenger

1204395345.534 334 192.168.1.4 TCP_MISS/200 605 POST

http://207.46.111.57/gateway/gateway.dll? -

DIRECT/207.46.111.57 application/x-msn-messenger

1204395345.885 304 192.168.1.4 TCP_MISS/401 1098 GET

http://login.passport.com/login2.srf -

DIRECT/65.54.183.197 text/html

1204395346.472 586 192.168.1.4 TCP_MISS/200 423 POST

http://207.46.111.57/gateway/gateway.dll? -

DIRECT/207.46.111.57 application/x-msn-messenger

1204395433.123 420 192.168.1.92 TCP_MISS/302 748 GET

http://www.microsoft.com/isapi/redir.dll? -

DIRECT/207.46.19.254 text/html

1204395433.559 435 192.168.1.92 TCP_MISS/302 581 GET

http://go.microsoft.com/fwlink/? - DIRECT/64.4.52.189

text/html

1204395434.425 865 192.168.1.92 TCP_MISS/200 32207 GET

http://latam.msn.com/ - DIRECT/207.68.183.120 text/html

Page 99: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 99

CIBERTEC CARRERAS PROFESIONALES

1204395434.706 352 192.168.1.92 TCP_MISS/200 856 GET

http://rad.msn.com/ADSAdClient31.dll? -

DIRECT/65.55.197.248 text/html

1204395434.783 474 192.168.1.92 TCP_MISS/200 610 GET

http://msnportal.112.2o7.net/b/ss/msnportallatamhome/1/H.

1-pdv-2/s85717557388621? - DIRECT/128.241.21.163

image/gif

1204395434.862 428 192.168.1.92 TCP_MISS/200 4681 GET

http://a.rad.msn.com/ADSAdClient31.dll? -

DIRECT/65.55.197.248 text/html

1204395434.878 633 192.168.1.92 TCP_MISS/200 529 GET

http://c.msn.com/c.gif? - DIRECT/207.46.216.62 image/gif

1204395434.931 136 192.168.1.92 TCP_MISS/200 4712 GET

http://rad.msn.com/ADSAdClient31.dll? -

DIRECT/65.55.197.248 text/html

1204395435.055 349 192.168.1.92 TCP_MISS/200 1598 GET

http://b.rad.msn.com/ADSAdClient31.dll? -

DIRECT/65.55.197.248 text/html

1204395435.795 738 192.168.1.92 TCP_MISS/200 17525 GET

http://a.ads1.msn.com/ads/1/0000000001_000000000000000546

396.swf? - DIRECT/4.23.34.124 application/x-shockwave-

flash

1204395436.610 1550 192.168.1.92 TCP_MISS/200 30816 GET

http://ads1.msn.com/ads/1/0000000001_00000000000000052840

7.swf? - DIRECT/4.23.34.124 application/x-shockwave-flash

1204395888.852 1479 192.168.1.92 TCP_MISS/200 22009

CONNECT login.live.com:443 - DIRECT/65.54.179.203 -

1204395890.035 688 192.168.1.92 TCP_MISS/200 529 GET

http://c.msn.com/c.gif? - DIRECT/207.46.216.62 image/gif

1204395903.211 13374 192.168.1.92 TCP_MISS/200 113383

CONNECT by3.omega.contacts.msn.com:443 -

DIRECT/207.46.113.221 -

1204395903.230 8455 192.168.1.92 TCP_MISS/200 180805

CONNECT by3.omega.contacts.msn.com:443 -

DIRECT/207.46.113.221 -

1204395903.428 655 192.168.1.92 TCP_MISS/304 265 GET

http://67.192.58.61/tabclaro/claro_logo_tamano_b.png -

DIRECT/67.192.58.61 -

1204395903.579 343 192.168.1.92 TCP_MISS/304 232 GET

http://www.mercadolibre.com/org-img/MSN/logo_solapa.png -

DIRECT/64.14.123.185 -

2.1.3. Configuración del servidor Proxy En el archivo /etc/squid/squid.conf realizar:

Definir ACL:

acl contenido url_regex "/etc/squid/contenido"

acl msn req_mime_type -i ^application/x-msn-messenger$

acl msn1 urlpath_regex gateway.dll

acl msn2 url_regex e-messenger.net

webmessenger.msn.com

Contenido del archivo /etc/squid/descargas1:

Page 100: Servidores de Alta Disponibilidad v2

100

CARERRAS PROFESIONALES CIBERTEC

Msn

Messenger

live.com

Definir RCL: http_access deny contenido

http_access deny msn

http_access deny msn1

http_access deny msn2

http_access allow LAN

http_access deny all

2.1.4. Probación de la restricción

Desde el equipo cliente ejecute el Windows Live Messenger

Fig. 3. Cliente MSN Desde el servidor observamos los paquetes bloqueados: [root@centos:~]# tail -f /var/log/squid/access.log

1204397569.531 2 192.168.1.92 TCP_DENIED/403 1333

CONNECT login.live.com:443 - NONE/- text/html

1204398006.000 4 192.168.1.92 TCP_DENIED/403 1408

GET

http://g.latam.msn.com/8SEESXL030000TBR/TOOLBRNewsFeed1 -

NONE/- text/html

2.2. Mensajes de error en español

En forma predeterminada, los mensajes de error se muestran en inglés, pero podemos configurar Squid para que se muestren en español u otro idioma. Cada distribución ubica los directorios de idiomas en distintos lugares, por lo que debemos determinar dicha ubicación:

Page 101: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 101

CIBERTEC CARRERAS PROFESIONALES

[root@CentOS ~]# cat /etc/squid/squid.conf | grep English

# copy the template English files to another

#error_directory /usr/share/squid/errors/English

# error_directory /usr/share/squid/errors/English

[root@CentOS ~]# ls /usr/share/squid/errors/

Azerbaijani English Hebrew Polish

Simplify_Chinese

Bulgarian Estonian Hungarian Portuguese Slovak

Catalan Finnish Italian Romanian Spanish

Czech French Japanese Russian-1251 Swedish

Danish German Korean Russian-koi8-r

Traditional_Chinese

Dutch Greek Lithuanian Serbian Turkish

[root@CentOS ~]#

Modifique el archivo /etc/squid/squid.conf para que los mensajes de error se muestren en español:

#error_directory /usr/lib/squid/errors/English

#

#Default:

error_directory /usr/lib/squid/errors/Spanish

Reinicie el servidor Proxy:

[root@CentOS ~]# /etc/init.d/squid restart

Parando squid: . [ OK ]

Iniciando squid: . [ OK ]

[root@CentOS ~]#

Desde un equipo cliente probar:

Page 102: Servidores de Alta Disponibilidad v2

102

CARERRAS PROFESIONALES CIBERTEC

Fig. 4. Mensajes de error en español

Page 103: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 103

CIBERTEC CARRERAS PROFESIONALES

2. Proxy transparente

2.1. Configuración del servidor Squid

Modifique en el archivo /etc/squid/squid.conf el parámetro http_port: http_port 3128 transparent

Para versiones antiguas del Squid modifique las siguientes líneas: http_port 10.0.0.1:3128

httpd_accel_host virtual

httpd_accel_port 80

httpd_accel_wiht_proxy on

httpd_accel_uses_host_header on

Fig. 5. Proxy Transparente

2.2. Configuración del Firewall

Configurando el redireccionamiento del puerto 80 al puert0 3128, ejecute los siguientes comandos: [root@CentOS ~]# echo 1 > /proc/sys/net/ipv4/ip_forward

[root@CentOS ~]# iptables -t nat -A PREROUTING -p tcp --dport

80 -i eth1 -j REDIRECT --to-port 3128

[root@CentOS ~]# iptables -t nat -A POSTROUTING -s 10.0.0.0/8 -

j MASQUERADE

[root@CentOS ~]# iptables -L -t nat

Chain PREROUTING (policy ACCEPT)

target prot opt source destination

REDIRECT tcp -- anywhere anywhere

tcp dpt:http redir ports 3128

Page 104: Servidores de Alta Disponibilidad v2

104

CARERRAS PROFESIONALES CIBERTEC

Chain POSTROUTING (policy ACCEPT)

target prot opt source destination

MASQUERADE all -- 10.0.0.0/8 anywhere

Chain OUTPUT (policy ACCEPT)

target prot opt source destination

[root@CentOS ~]#

[root@CentOS ~]# /etc/init.d/squid restart

Parando squid: . [ OK ]

Iniciando squid: . [ OK ]

[root@CentOS ~]#

NOTA: También se podría reemplazar:

[root@CentOS ~]# iptables -t nat -A POSTROUTING -s

10.0.0.0/8 -j MASQUERADE

por: [root@CentOS ~]# iptables -t nat -A POSTROUTING -o eth0

-j SNAT --to-source 192.168.1.3

[root@CentOS ~]# iptables -L -t nat

Chain PREROUTING (policy ACCEPT)

target prot opt source destination

REDIRECT tcp -- anywhere anywhere

tcp dpt:http redir ports 3128

Chain POSTROUTING (policy ACCEPT)

target prot opt source destination

SNAT all -- anywhere anywhere

to:192.168.1.3

Chain OUTPUT (policy ACCEPT)

target prot opt source destination

[root@localhost squid]#

2.3. Configuración de las estaciones de trabajo

Defina como gateway predeterminado la dirección IP del servidor Proxy Transparente.

Page 105: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 105

CIBERTEC CARRERAS PROFESIONALES

3. Sarg (Squid Analysis Report Generator)

Sarg es un programa para ver los informes de uso del Squid de una red, que permite ver a "dónde" están yendo sus usuarios dentro de Internet. Sarg genera informes en html con muchos campos, como usuarios, direcciones IP, bytes transmitidos, sitios web and tiempos. Ejemplo de los informes aquí: http://sarg.sourceforge.net/squid-reports/index.html Instalación de Sarg: yum install sarg 3.1. Configuración

El archivo de configuración es /etc/sarg/sarg.conf, modifiquemos las siguientes líneas:

language Spanish (para definir el idioma Español)

resolve_ip yes (para que muestre nombres en vez de IP’s)

user_ip yes (para que liste por IP y no por UID de Squid)

date_format e (para usar el formato de fecha europeo y no el americano)

use_comma no (para usar el punto como separador de miles)

topsites_num 200 (para aumentar el número de sitios del topsites a 200) output_dir /var/www/html/squid-reports (Directorio donde se guardan los reportes)

3.2. Ejecución Al ejecutarse el comando sarg se crean las páginas html estáticas con los accesos del día. Se configura /etc/crontab para que se ejecute en forma periódica, agregue la siguiente línea: 40 23 * * * /usr/bin/sarg > /dev/null

3.3. Reportes Para visualizar los reportes generados desde un navegador cargue la siguiente dirección: http://IP_Proxy/squid-reports/

Page 106: Servidores de Alta Disponibilidad v2

106

CARERRAS PROFESIONALES CIBERTEC

Fig. 6. Reportes

Fig. 7. Reportes del día

Page 107: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 107

CIBERTEC CARRERAS PROFESIONALES

Fig. 8. Reportes de un cliente

Page 108: Servidores de Alta Disponibilidad v2

108

CARERRAS PROFESIONALES CIBERTEC

Autoevaluación

1. Cuando el servidor Squid esta configurado como Proxy transparente:

(a) Las peticiones de los clientes HTTP son redireccionadas al puerto 8082.

(b) Hay que configurar cada cliente HTTP.

(c) No es necesario configurar cada cliente HTTP.

(d) No guarda las páginas web que son accedidas por lo clientes

HTTP.

2. Cuando el servidor Squid esta configurado como Proxy transparente:

(a) Las peticiones de los clientes HTTP son redireccionadas al puerto 8082.

(b) Hay que configurar cada cliente HTTP.

(c) No es necesario configurar los equipos cliente.

(d) En los equipos cliente, asignamos como puerta de enlace

predeterminado la dirección IP del servidor Squid.

3. ¿Qué es Sarg?

Page 109: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 109

CIBERTEC CARRERAS PROFESIONALES

Intrusion detection systems I

TEMA Describir el uso del IDS.

OBJETIVOS ESPECÍFICOS Comprender el funcionamiento del IDS.

CONTENIDOS Introducción.

Snort.

S E M A N A

11

Page 110: Servidores de Alta Disponibilidad v2

110

CARERRAS PROFESIONALES CIBERTEC

INTRODUCCIÓN Un IDS o Sistema de Detección de Intrusiones es una herramienta de seguridad que intenta detectar o monitorizar los eventos ocurridos en un determinado sistema informático o red informática en busca de intentos de comprometer la seguridad de dicho sistema. Los IDS buscan patrones previamente definidos que impliquen cualquier tipo de actividad sospechosa o maliciosa sobre nuestra red o host. Los IDS aportan a nuestra seguridad una capacidad de prevención y de alerta anticipada ante cualquier actividad sospechosa. No están diseñados para detener un ataque, aunque sí pueden generar ciertos tipos de respuesta ante éstos. Los IDS aumentan la seguridad de nuestro sistema, vigilan el tráfico de nuestra red, examinan los paquetes analizándolos en busca de datos sospechosos y detectan las primeras fases de cualquier ataque como pueden ser el análisis de nuestra red, barrido de puertos, etc. 1.1. Tipos de IDS

1.1.1. HIDS (Host IDS)

Protege contra un único Servidor, PC o host. Monitorizan gran cantidad de eventos, analizando actividades con una gran precisión, determinando de esta manera qué procesos y usuarios se involucran en una determinada acción. Recaban información del sistema como ficheros, logs, recursos, etc. para su posterior análisis en busca de posibles incidencias. Todo ello, en modo local, dentro del propio sistema. Fueron los primeros IDS en ser desarrollados por la industria de la seguridad informática.

1.1.2. NIDS (Net IDS) Protege un sistema basado en red. Actúan sobre una red capturando y analizando paquetes de red, es decir, son sniffers del tráfico de red. Luego analizan los paquetes capturados, buscando patrones que supongan algún tipo de ataque. Bien ubicados, pueden analizar grandes redes y su impacto en el tráfico suele ser pequeño. Actúan mediante la utilización de un dispositivo de red configurado en modo promiscuo (analizan, “ven” todos los paquetes que circulan por un segmento de red, aunque estos no vayan dirigidos a un determinado equipo). Analizan el tráfico de red, normalmente, en tiempo real. No sólo

Page 111: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 111

CIBERTEC CARRERAS PROFESIONALES

trabajan a nivel TCP/IP, también lo pueden hacer a nivel de aplicación.

Otros tipos son los híbridos. Por el tipo de respuesta podemos clasificarlos en: Pasivos – Son aquellos IDS que notifican a la autoridad competente o administrador de la red mediante el sistema que sea, alerta, etc. Pero no actúa sobre el ataque o atacante. Activos – Generan algún tipo de respuesta sobre el sistema atacante o fuente de ataque, como cerrar la conexión o enviar algún tipo de respuesta predefinida en nuestra configuración.

1.2. Arquitectura Normalmente, la arquitectura de un IDS, a grandes rasgos, está formada por los siguientes elementos: 1. La fuente de recogida de datos. Estas fuentes pueden ser un log,

dispositivo de red, o como en el caso de los IDS basados en host, el propio sistema.

2. Reglas que contienen los datos y patrones para detectar anomalías de seguridad en el sistema

3. Filtros que comparan los datos snifados de la red o de logs con los patrones almacenados en las reglas

4. Detectores de eventos anormales en el tráfico de red 5. Dispositivo generador de informes y alarmas. En algunos casos con

la sofisticación suficiente como para enviar alertas vía mail, o SMS. Esto es a modo general. Cada IDS implementa la arquitectura de manera diferente.

1.3. Dónde colocar el IDS Una actitud paranoica por nuestra parte nos podría llevar a instalar un IDS en cada host ó en cada tramo de red. Esto último sería un tanto lógico cuando se trata de grandes redes, no es nuestro caso ahora. Lo lógico sería instalar el IDS en un dispositivo por donde pase todo el tráfico de red que nos interese.

1.3.1. Dificultades

Un problema de los IDS es cuando queremos implementarlos en redes conmutadas, ya que no hay segmento de red por donde pase todo el tráfico. Otro problema para un IDS son las redes con velocidades de tráfico muy altas en las cuales es difícil procesar todos los paquetes.

Page 112: Servidores de Alta Disponibilidad v2

112

CARERRAS PROFESIONALES CIBERTEC

1.3.2. Posición del IDS

Si colocamos el IDS antes de los cortafuegos, capturaremos todo el tráfico de entrada y salida de nuestra red. La posibilidad de falsas alarmas es grande. La colocación detrás de los cortafuegos monitorizará todo el tráfico que no sea detectado y parado por éste, por lo que será considerado como malicioso en un alto porcentaje de los casos. La posibilidad de falsas alarmas es muy inferior. Algunos administradores de sistemas colocan dos IDS, uno delante y otro detrás del cortafuegos, para obtener información exacta de los tipos de ataques que recibe nuestra red, ya que si el cortafuegos está bien configurado, puede parar o filtras muchos ataques. En ambientes domésticos, podemos colocar el IDS en la misma máquina que los cortafuegos. En este caso, actúan en paralelo, es decir, el cortafuegos detecta los paquetes y el IDS los analiza.

2. SNORT Snort es un IDS o Sistema de detección de intrusiones basado en red (NIDS). Implementa un motor de detección de ataques y barrido de puertos que permite registrar, alertar y responder ante cualquier anomalía previamente definida, como patrones que corresponden a ataques, barridos, intentos aprovechar alguna vulnerabilidad, análisis de protocolos, fallas conocidas, etc. Todo esto en tiempo real. Snort (http://www.snort.org/) está disponible bajo licencia GPL y funciona bajo plataformas Windows y UNIX/Linux. Es uno de los más usados y dispone de una gran cantidad de filtros o patrones ya predefinidos, así como actualizaciones constantes ante casos de ataques, barridos o vulnerabilidades que vayan siendo detectadas a través de los distintos boletines de seguridad. Este IDS implementa un lenguaje de creación de reglas flexibles, potentes y sencillas. Durante su instalación, ya nos provee de cientos de filtros o reglas para backdoor, ddos, finger, ftp, ataques web, CGI, escaneos Nmap…. Puede funcionar como sniffer (podemos ver en consola y en tiempo real qué ocurre en nuestra red, todo nuestro tráfico), registro de paquetes (permite guardar en un archivo los logs para su posterior análisis, un análisis offline) o como un IDS normal (en este caso NIDS).

Page 113: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 113

CIBERTEC CARRERAS PROFESIONALES

La colocación de Snort en nuestra red puede realizarse según el tráfico que quiere vigilarse: paquetes entrantes, paquetes salientes, dentro del firewall, fuera del firewall y, en realidad, prácticamente donde queramos. Una característica muy importante e implementada desde hace pocas versiones es FlexResp. Permite, dada una conexión que emita tráfico malicioso, darla de baja, hacerle un DROP mediante el envío de un paquete con el flag RST activa, con lo cual cumpliría funciones de firewall, cortando las conexiones que cumplan ciertas reglas predefinidas. No sólo corta las conexiones, ya que puede realizar otras muchas acciones. 2.1. Instalación de Snort

Desde la página oficial de Snort descargaremos los siguientes archivos:

Binario snort-2.8.0.2-1.RH5.i386.rpm

Checksum MD5 snort-2.8.0.2-1.RH5.i386.rpm.md5

Fig. 1. Descarga de Snort Verificamos si el archivo se ha descargado sin errores y luego procedemos a instalar el paquete. (Ver Fig. 2)

Page 114: Servidores de Alta Disponibilidad v2

114

CARERRAS PROFESIONALES CIBERTEC

Fig. 2. Instalación de Snort

2.2. Instalación de las Reglas de Snort Antes de poder descargas las reglas de Snort, se debe registrar el usuario.

Fig. 3. Descarga de las Reglas

Page 115: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 115

CIBERTEC CARRERAS PROFESIONALES

Para descargas las reglas de Snort, vaya al siguiente enlace: www.snort.org/pub-bin/dowloads.cgi (Ver Fig. 3). Luego, vaya hasta la opción de descargas para usuarios registrados. Verificamos si el archivo se ha descargado sin errores y luego procedemos a instalar el paquete. (Ver Fig. 4)

Fig. 4. Instalación de Reglas

2.3. Snort en modo Sniffer El formato genérico para este modo es snort [-opciones] < filtro > snort -v

Fig. 5. Cabeceras de los paquetes TCP/IP

Page 116: Servidores de Alta Disponibilidad v2

116

CARERRAS PROFESIONALES CIBERTEC

Con esta opción -v iniciamos Snort en modo sniffer visualizando en pantalla las cabeceras de los paquetes TCP/IP. Esta opción es el modo verbouse y mostrará las cabeceras IP, TCP, UDP y ICMP. Si queremos, además, visualizar los campos de datos que pasan por la interface de red, añadiremos -d. snort -vd

Fig. 6. Campos de datos de los paquetes TCP/IP Añadiendo la opción -e, Snort nos mostrará información más detallada. Nos mostrará las cabeceras a nivel de enlace. snort -dev

2.3.1. Filtros

Podemos añadir, a parte de las opciones, una serie de filtros para optimizar los resultados obtenidos. Estos filtros se añadirán

Page 117: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 117

CIBERTEC CARRERAS PROFESIONALES

en el mismo formato que usa programas como TCPDump, ya que usan las mismas librerías de captura de paquetes (libpcap).

snort -vd host 192.168.1.92 and dst port 80

Fig. 8. Filtros

Otra opción a tomar en cuenta es -i para indicar a snort qué interface de red usar en el caso de que tengamos dos o más. snort -vde -i 1

2.4. Snort en modo Registro de paquetes Con estas opciones y dependiendo del tráfico en nuestra red, veremos pasar gran cantidad de información por nuestra pantalla, con lo cual sería interesante registrar, guardar estos datos a disco para su posterior estudio. snort -dev -l /var/log/snort/

Page 118: Servidores de Alta Disponibilidad v2

118

CARERRAS PROFESIONALES CIBERTEC

La opción -l indica a Snort que debe guardar los logs en un directorio determinado, en este caso dentro de la carpeta log se creará una estructura de directorios donde se archivarán los logs. El formato de los logs se almacena en formato TCPDump. Esto permite que se puedan estudiar más a fondo con los potentes filtros de este programa.

Fig. 7. Comando tcpdump El archivo generado por Snort en modo binario también podemos leerlo con este mismo aplicativo usando: snort -r /var/log/snort/snort.log.1204420267

snort –dev -r /var/log/snort/snort.log.1204420267

snort -r /var/log/snort/snort.log.1204420267 tcp

Page 119: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 119

CIBERTEC CARRERAS PROFESIONALES

Autoevaluación

1. ¿Cuál no es un modo de funcionamiento de Snort?

(a) Packet Dump (b) Packet Logging

(c) Packet Syslog

(d) Packet IDS

2. ¿Qué es un HIDS? 3. ¿Qué significa el termino “falso positivo” en un IDS?

(a) Es la detección de un intruso. (b) Es la detección de un ataque.

(c) Es un reporte de un ataque o intrusión donde no existe.

(d) Es la falla para reportar un ataque o intrusión actual.

(e) Es una falla en el sistema IDS.

Page 120: Servidores de Alta Disponibilidad v2

120

CARERRAS PROFESIONALES CIBERTEC

Page 121: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 121

CIBERTEC CARRERAS PROFESIONALES

Intrusion detection systems II

TEMA Descripción del uso del Snort en modo NIDS. OBJETIVOS ESPECÍFICOS

Comprender el funcionamiento del Snort en modo NIDS. CONTENIDOS

Snort en modo NIDS.

S E M A N A

12

Page 122: Servidores de Alta Disponibilidad v2

122

CARERRAS PROFESIONALES CIBERTEC

SNORT EN MODO NIDS

En este apartado es donde nos centraremos más. El modo detección de intrusos de red se activa añadiendo a la línea de comandos de Snort la opción -c snort.conf. En este archivo, snort.conf, se guarda toda la configuración de las reglas, preprocesadores y otras configuraciones necesarias para el funcionamiento en modo NIDS.

snort -dev -l /var/log/snort/ -h 192.168.1.0/24 -c

/etc/snort/snort.conf

Con al opción -D indicará a snort que corra como un servicio. Esto es sólo válido para las versiónes Linux/UNIX:

snort -dev -l /var/log/snort/ -h 192.168.1.0/24 -c

/etc/snort/snort.conf -D

1.1. Configuración de Snort

El archivo de configuración snort.conf se divide en 6 secciones que a continuación se detalla:

Sección 1: Defina las variables de la red (Set the network variables). Todas las variables que se desea habilitar requieren quitar el símbolo “ # ” que se utiliza para agregar comentarios en al archivo de configuración.

- Variable HOME_NET

Esta variable especifica la dirección de la red local a monitorear. var HOME_NET 10.1.1.0/24

Para varias direcciones de la red local var HOME_NET [10.1.1.0/24,192.168.1.0/24]

Interface de red que tiene asignado dirección IP y mascara de red que accede a la red local var HOME_NET $eth0_ADDRESS

Cualquier dirección de la red local var HOME_NET any (habilitado por defecto)

Para nuestro ejemplo, asignaremos la dirección de red local. var HOME_NET 192.168.1.0/24

- Variable EXTERNAL_NET

Especifica la red externa. Se recomienda usar la que esta habilitado por defecto. var EXTERNAL_NET any (habilitado por defecto)

Las siguientes variables permiten a Snort detectar posibles ataques a los servidores de la red local.

Page 123: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 123

CIBERTEC CARRERAS PROFESIONALES

- Variable DNS_SERVERS Lista de servidores DNS var DNS_SERVERS $HOME_NET

- Variable SMTP_SERVERS

Lista de servidores de transferencia de correo SMTP var SMTP_SERVERS $HOME_NET

- Variable HTTP_SERVERS

Lista de servidores Web var HTTP_SERVERS $HOME_NET

- Variable SQL_SERVERS

Lista de servidores Base de Datos SQL var SQL_SERVERS $HOME_NET

- Variable TELNET_SERVERS

Lista de servidores Telnet var TELNET_SERVERS $HOME_NET

- Variable SNMP_SERVERS

Lista de servidores SNMP var SNMP_SERVERS $HOME_NET

Configurar tus puertos de servicios, permite a Snort localizar ataques con destino a puertos activos utilizados por una determinada aplicación.

- Variable HTTP_PORTS

Puerto activo del servidor Web var HTTP_PORTS 80

- Variable SHELLCODE_PORTS

Puertos activos donde se busca SHELLCODE var SHELLCODE_PORTS ! 80

- Variable ORACLE_PORTS

Puerto activo del servidor Oracle var ORACLE_PORTS 1521

- Variable RULE_PATH

Define la ruta del directorio que contiene los archivos de reglas, también se puede considerar una ruta relativa. var RULE_PATH rules

Seccion 2: Configuración de la carga de librerias dinamicas Snort permite la carga dinamica de librerias

dynamicpreprocessor directory /usr/lib/snort-

2.8.0.2_dynamicpreprocessor

dynamicengine /usr/lib/snort-2.8.0.2_dynamicengine/libsf_engine.so

Sección 3: Configuración de los preprocesadores (preprocessors)

Page 124: Servidores de Alta Disponibilidad v2

124

CARERRAS PROFESIONALES CIBERTEC

Snort tiene la capacidad de utilizar “plugins” modulares que extiende su funcionalidad. Estos plugins son cargados y configurados en las reglas de snort de acuerdo a la siguiente sintaxis: preprocessor <name_of_processor>: <configuration_options> Explicaremos el uso de algunos preprocesadores:

a. sfPortscan – Detecta escaneos a los puertos.

preprocessor sfportscan: proto { all } memcap { 10000000 }

sense_level { low }

b. frag3 – Soporte defragmentacion IP (IP defragmentation support)

Este preprocesador de Fragmentación IP es un plugin que detecta atacantes que lanza paquetes IP fragmentados, usualmente Denegación de servicio (DoS). preprocessor frag3_golbal: max_frags 65536

preprocessor frag3_engine: policy firts detect_anomalies

c. bo – Detector de Back Orifice

Detecta el tráfico de Back Orifice en la red. Back Orifice emula a un servidor para introducir troyanos en la red local. preprocessor bo

Sección 4: Configuración plugins de salida Descomente y configure el plugins de salida que usted decida usar. Generalmente, la configuración para el plugins de salida es de la forma siguiente:

output <name_of_plugin>: <configuration_options>

- alert_syslog: Registro de alertas hacia syslog Se puede agregar uno o más tipos de mensajes syslog como argumentos. output alert_syslog: LOG_AUTH LOG_ALERT

- log_tcpdump: Registro de paquetes en el formato binario de

tcpdump Se especifica el nombre del archivo binario de salida log_tcpdump: tcpdump.log

- unified: Snort unifica en formato binario las alertas y registros

generados. El plugin unificado (unified) de salida proporciona dos formatos nuevos para registrar y generar las alertas de snort. Se especifica el nombre del archivo de salida y se define el tamaño máximo en MB. output alert_unified: filename snort.alert, limit 128

output log_unified: filename snort.log, limit 128

Page 125: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 125

CIBERTEC CARRERAS PROFESIONALES

Se incluye el archivo de clasificación de ataques y prioridad de las alertas include classification.config

Se incluye el archivo de referencia include reference.config

Page 126: Servidores de Alta Disponibilidad v2

126

CARERRAS PROFESIONALES CIBERTEC

Sección 5: Configuración de Snort con declaraciones config (Configure snort with config statements) Muchas opciones de línea de comandos y configuración de snort pueden ser especificadas en el archivo de configuración.

Explicaremos el uso de algunos de ellos: - interface

Define la interface de red (snort –i). Config interface: eth0

- logdir

Define el directorio de registro (snort -l). config logdir: /var/log/snort

- ignore_ports

Especifica los puertos a ser ignorados. Especifique el protocolo (tcp, udp ó icmp), seguido de la lista de puertos. El rango de puertos es soportado Config ignore_ports: udp 1:17 53

Sección 6: Personalización de reglas (Customize your rule set) Las reglas incluidas con esta distribución generan alertas basadas en la actividad sospechosa. Dependiendo de las políticas de seguridad implementadas en su red local y de lo que usted considere como sospechoso, algunas de estas reglas pueden generar falsos positivos que puede detectar actividad que usted considere aceptable, por lo tanto usted puede comentar reglas que no se aplica en su entorno de red.

1.2. Modos de Alerta

Hay varias maneras de configurar la salida de Snort, es decir, las alertas, el modo en que se almacenarán estas en el archivo /var/log/snort/alert. Snort dispone de siete modos de alertas en la línea de comandos: completo, rápido, socket, syslog, consola y ninguno. Fast: El modo Alerta Rápida nos devolverá información acerca del tiempo, mensaje de la alerta, clasificación, prioridad de la alerta, IP y puerto de origen y destino. snort -A fast -dev -l /var/log/snort/ -h 192.168.1.0/24 -c

/etc/snort/snort.conf

Page 127: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 127

CIBERTEC CARRERAS PROFESIONALES

Fig. 1. Alerta rapida

Full: El modo de alerta completa nos devolverá información acerca del tiempo, mensaje de la alerta, clasificación, prioridad de la alerta, IP y puerto de origen/destino e información completa de las cabeceras de los paquetes registrados. snort -A full -dev -l /var/log/snort/ -h 192.168.1.0/24 -c

/etc/snort/snort.conf

Fig. 2. Alerta completa

Socket: Manda las alertas a través de un socket para que las escuche otra aplicación. Está opción es para Linux/UNIX. snort -A unsock -c /etc/snort/snort.conf

Console: Imprime las alarmas en pantalla. snort -A console -dev -l /var/log/snort/ -h 192.168.4.0/24 -c

/etc/snort/snort.conf

Page 128: Servidores de Alta Disponibilidad v2

128

CARERRAS PROFESIONALES CIBERTEC

None: Desactiva las alarmas. snort -A none -c /etc/snort/snort.conf

Syslog: Envía las alarmas al syslog snort -A console -dev -l /var/log/snort/ -h 192.168.1.0/24 -c

/etc/snort/snort.conf -s

Fig. 3. Archivo /var/log/messages

Eventlog: Registra las alertas para visualizarse a través del visor de sucesos de un sistema windows. Esta opción se activará mediante -E y sólo para Win32.

NOTA: Todas las pruebas se realizaron desde otro equipo usando el comando nmap: nmap –sS –PT –PI –F –O –vv –T 3 192.168.1.3

Page 129: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 129

CIBERTEC CARRERAS PROFESIONALES

Fig. 4. Comando nmap

Page 130: Servidores de Alta Disponibilidad v2

130

CARERRAS PROFESIONALES CIBERTEC

Autoevaluación

1. ¿Qué es un NIDS? 2. ¿Cuál es un modo de alerta que se habilita con Snort?

(a) Log (b) Full

(c) Pass

(d) Alert

Page 131: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 131

CIBERTEC CARRERAS PROFESIONALES

Virtual private networks I

TEMA Identificar.

OBJETIVOS ESPECÍFICOS Comprender el funcionamiento de la Certificación Digital.

CONTENIDOS Introducción

¿Qué es una VPN?

Funcionamiento de una VPN

Sistemas de Encriptación

Firma Digital

Certificación de Llave Pública

PKI

PGP

S E M A N A

13

Page 132: Servidores de Alta Disponibilidad v2

132

CARERRAS PROFESIONALES CIBERTEC

INTRODUCCIÓN

Hace unos años, no era tan necesario conectarse a Internet por motivos de trabajo. Conforme ha ido pasado el tiempo, las empresas han visto la necesidad de que las redes de área local superen la barrera de lo local permitiendo la conectividad de su personal y oficinas en otros edificios, ciudades, comunidades e incluso países. Desgraciadamente, en el otro lado de la balanza se encontraban las grandes inversiones que era necesario realizar tanto en hardware como en software y, por supuesto, en servicios de telecomunicaciones que permitiera crear estas redes de servicio. Afortunadamente, con la aparición de Internet, las empresas, centros de formación, organizaciones de todo tipo, incluso, usuarios particulares tienen la posibilidad de crear una Red Privada Virtual (VPN) que permita, mediante una moderada inversión económica y utilizando Internet, la conexión entre diferentes ubicaciones salvando la distancia entre ellas. Las redes virtuales privadas utilizan protocolos especiales de seguridad que permiten obtener acceso a servicios de carácter privado, únicamente a personal autorizado, de unas empresas, centros de formación, organizaciones, etc. Cuando un usuario se conecta vía Internet, la configuración de la red privada virtual le permite conectarse a la red privada del organismo con el que colabora y acceder a los recursos disponibles de la misma como si estuviera tranquilamente sentado en su oficina.

1. ¿QUÉ ES UNA VPN?

La brevedad es una virtud, ya lo decía el gran Quevedo: “Lo bueno, si breve, dos veces bueno”. Siguiendo esa premisa trataremos de explicar brevemente que una VPN es una red virtual que se crea dentro de otra red real, como puede ser Internet. Realmente, una VPN no es más que una estructura de red corporativa implantada sobre una red de recursos de carácter público, pero que utiliza el mismo sistema de gestión y las mismas políticas de acceso que se usan en las redes privadas; al fin y al cabo, no es más que la creación en una red pública de un entorno de carácter confidencial y privado que permitirá trabajar al usuario como si estuviera en su misma red local. En la mayoría de los casos, la red pública es Internet, pero también puede ser una red ATM o Frame Relay.

Page 133: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 133

CIBERTEC CARRERAS PROFESIONALES

2. FUNCIONAMIENTO DE UNA VPN Desde el punto de vista del usuario que se conecta a ella, el funcionamiento de una VPN es similar al de cualquier red normal, aunque realmente, para que el comportamiento se perciba como el mismo, hay un gran número de elementos y factores que hacen esto posible. La comunicación entre los dos extremos de la red privada a través de la red pública se hace estableciendo túneles virtuales entre esos dos puntos y usando sistemas de encriptación y autentificación que aseguren la confidencialidad e integridad de los datos transmitidos a través de esa red pública. Debido al uso de estas redes públicas, generalmente Internet, es necesario prestar especial atención a las cuestiones de seguridad para evitar accesos no deseados. La tecnología de túneles (Tunneling) es un modo de envío de datos en el que se encapsula un tipo de paquetes de datos dentro del paquete de datos propio de algún protocolo de comunicaciones, y al llegar a su destino, el paquete original es desempaquetado volviendo así a su estado original. En el traslado, a través de Internet, los paquetes viajan encriptados, por este motivo, las técnicas de autenticación son esenciales para el correcto funcionamiento de las VPNs, ya que se aseguran a emisor y receptor que están intercambiando información con el usuario o dispositivo correcto. La autenticación en redes virtuales es similar al sistema de inicio de sesión a través de usuario y contraseña, pero tienes unas necesidades mayores de aseguramiento de validación de identidades. La mayoría de los sistemas de autenticación usados en VPN están basados en sistema de claves compartidas. La autenticación se realiza normalmente al inicio de una sesión, y luego, aleatoriamente, durante el transcurso de la sesión, para asegurar que no haya algún tercer participante que se haya podido entrometer en la conversación. Todas las VPNs usan algún tipo de tecnología de encriptación que empaqueta los datos en un paquete seguro para su envío por la red pública. La encriptación hay que considerarla tan esencial como la autenticación, ya que permite proteger los datos transportados de poder ser vistos y entendidos en el viaje de un extremo a otro de la conexión. Existen dos tipos de técnicas de encriptación que se usan en las VPN: Encriptación de clave privada y Encriptación de clave pública.

Encriptación con clave privada (simétrica) – En este tipo de encriptación se utiliza una contraseña secreta conocida por todos los participantes que van a hacer uso de la información encriptada. La contraseña se utiliza tanto para encriptar como para desencriptar la

Page 134: Servidores de Alta Disponibilidad v2

134

CARERRAS PROFESIONALES CIBERTEC

información. Este tipo de sistema tiene el problema que, al ser compartida por todos los participantes y debe mantenerse secreta, al ser revelada, tiene que ser cambiada y distribuida a los participantes, lo que puede crear problemas de seguridad.

Encriptación de clave pública (asimétrica) – Implica la utilización de dos claves, una pública y una secreta. La primera es enviada a los demás participantes. Al encriptar, se usa la clave privada propia y la clave pública del otro participante de la conversación. Al recibir la información, ésta es desencriptada usando su propia clave privada y la pública del generador de la información. La gran desventaja de este tipo de encriptación es que resulta ser más lenta que la de clave privada.

En las redes virtuales, la encriptación debe ser realizada en tiempo real, de esta manera, los flujos de información encriptada a través de una red lo son utilizando encriptación de clave secreta con claves que son válidas únicamente para la sesión usada en ese momento. Problemas que adolecen:

Suplantación

Eficiencia

Ataques criptograficos

3. SISTEMAS DE ENCRIPTACIÓN 4.1. Simétrico

4.1.1. Data Encryption Standard (DES)

Es un esquema de encriptación simétrico desarrollado en 1977 por el Departamento de Comercio y la Oficina Nacional de Estándares de EEUU en colaboración con la empresa IBM, que se creó con objeto de proporcionar al público en general un algoritmo de cifrado normalizado para redes de computadoras. Se basa en un sistema monoalfabético, con un algoritmo de cifrado consistente en la aplicación sucesiva de varias permutaciones y sustituciones. Inicialmente el texto en claro a cifrar se somete a una permutación, con bloque de entrada de 64 bits (o múltiplo de 64), para posteriormente ser sometido a la acción de dos funciones principales, una función de permutación con entrada de 8 bits y otra de sustitución con entrada de 5 bits en un proceso que consta de 16 etapas de cifrado. En general, DES utiliza una clave simétrica de 64 bits, de los cuales 56 son usados para la encriptación, mientras que los 8

Page 135: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 135

CIBERTEC CARRERAS PROFESIONALES

restantes son de paridad, y se usan para la detección de errores en el proceso. Como la clave efectiva es de 56 bits, son un total de 2 elevado a 56 = 72.057.594.037.927.936 clave posible, es decir, unos 72.000 billones de claves. En la actualidad, este tipo de encriptación ya no es considerado seguro.

4.1.2. Triple DES (3DES)

Como hemos visto, el sistema DES se considera en la actualidad poco práctico, debido a la corta longitud de su clave. Para solventar este problema y continuar utilizando DES, se creó el sistema Triple DES (3DES), basado en tres iteraciones sucesivas del algoritmo DES, con lo que se consigue una longitud de clave de 128 bits, y que es compatible con DES simple. Este hecho se basa en que DES tiene la característica matemática de no ser un grupo, lo que implica que si se encripta el mismo bloque dos veces con dos llaves diferentes se aumenta el tamaño efectivo de la llave. Para implementarlo, se toma una clave de 128 bits y se divide en 2 diferentes de 64 bits, aplicándose el siguiente proceso al documento en claro: (1) Se le aplica al documento a cifrar un primer cifrado

mediante la primera clave, C1. (2) Al resultado (denominado ANTIDES) se le aplica un

segundo cifrado con la segunda clave, C2.

(3) Y al resultado se le vuelve a aplicar un tercer cifrado con la primera clave, C1.

Si la clave de 128 bits está formada por dos claves iguales de 64 bits (C1=C2), entonces el sistema se comporta como un DES simple. Trás un proceso inicial de búsqueda de compatibilidad con DES, que ha durado 3 años, actualmente 3DES usa 3 claves diferentes, lo que hace el sistema mucho más robusto, al conseguirse longitudes de clave de 192 bits (de los cuales son efectivos 168), mientras que el uso de DES simple no está aconsejado.

Page 136: Servidores de Alta Disponibilidad v2

136

CARERRAS PROFESIONALES CIBERTEC

4.1.3. Advanced Encryption Standard (AES)

Fue publicado el 2 de Octubre de 2000 por el NIST como ganador de la convocatoria AES (estándar de cifrado avanzado). El tamaño de clave debe ser de, al menos, 128, 192 y 256 bits (debe admitir los tres), y el tamaño de bloque de cifrado debe ser de 128 bits. Buena combinación de seguridad, velocidad, eficiencia (en memoria y puertas lógicas), sencillez y flexibilidad. Consta de crear una subclave de la clave original y a partir de ella ir haciendo rondas succesivas de transformaciones.

4.2. Asimétrico

4.2.1. RSA

Es el algoritmo asimétrico más sencillo de comprender e implementar. Su nombre proviene de sus tres inventores: Rivest, Shamir y Adleman.

El sistema RSA se basa en el hecho matemático de la dificultad de factorizar números muy grandes. Para factorizar un número. el sistema más lógico consiste en empezar a dividir sucesivamente éste entre 2, entre 3, entre 4..., y así sucesivamente, buscando que el resultado de la división sea exacto, es decir, de resto 0, con lo que ya tendremos un divisor del número. Ahora bien, si el número considerado es un número primo (el que sólo es divisible por 1 y por él mismo), tendremos que para factorizarlo habría que empezar por 1, 2, 3... hasta llegar a él mismo, ya que por ser primo ninguno de los números anteriores es divisor suyo. Y si el número primo es lo suficientemente grande, el proceso de factorización es complicado y lleva mucho tiempo. Algoritmo utilizado en el SSH (Secure Shell Client)

4.2.2. Diffie-Hellman.-

Este algoritmo de encriptación de Whitfield Diffie y Martin Hellman supuso una verdadera revolución en el campo de la criptografía, ya que fué el punto de partida para los sistemas asímétricos, basados en dos claves diferentes, la pública y la privada. Vió la luz en 1976, surgiendo como ilustración del artículo "New directions in Cryptography". Su importancia se debe, sobre todo, al hecho de ser el inicio de los sistemas asimétricos, ya que en la práctica sólo es válido

Page 137: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 137

CIBERTEC CARRERAS PROFESIONALES

para el intercambio de claves simétricas, y con esta funcionalidad es muy usado en los diferentes sistemas seguros implementados en Internet, como SSL (Secure Socket Layer) y VPN (Virtual Private Network).

5. FIRMA DIGITAL Dada la importancia que está adquiriendo la firma digital en los actuales sistemas de pago electrónico y en los sistemas de autentificación, vamos a ampliar un poco su estudio. El proceso de firma digital consta de dos partes bien diferenciadas: (1) Proceso de firma: el emisor encripta el documento con su llave privada,

enviando al destinatario tanto el documento en claro como el encriptado. (2) Proceso de verificacion de la firma: el receptor desencripta el

documento cifrado con la clave pública de A y comprueba que coincide con el documento original, lo que atestígua de forma total que el emisor del mismo ha sido efectivamente A.

El método de la firma digital no sólo proporciona autenticidad al mensaje enviado por A, si no que también asegura el No repudio, ya que sólo el dueño de una llave privada puede encriptar un documento de tal forma que se pueda desencriptar con su llave pública, lo que garantiza que ha sido A y no otro el que ha enviado dicho documento. Asimismo, proporciona Integridad de datos, ya que si el documento fuera accedido y modificado en el camino, el resumen del documento cambiaría también. La firma digital suele usarse en comunicaciones en las que no existe una confianza inicial total entre los comunicantes. Se usan para autentificar mensajes, para validar compras por Internet, para realizar transferencias de fondos bancarios y para otras transacciones de negocios. Tanta es la fuerza que posée éste sistema que, a nivel legal, la firma electrónica constituye, en la mayoría de los casos, una prueba indudable de autoría del envío de un documento electrónico, semejante a la firma tradicional de puño y letra. Un alegato que podría esgrimir A para negar la autoría del envío de un documento cifrado con su llave privada sería el echo de haber perdido dicha llave o que se la hayan sustraído, pero entonces hay que tener en cuenta que A es la única responsable del buen uso de su llave privada, por lo que está obligado a comunicar inmediatamente a la autoridad correspondiente cualquier circunstancia que ponga en peligro la seguridad de la misma.

Page 138: Servidores de Alta Disponibilidad v2

138

CARERRAS PROFESIONALES CIBERTEC

Esto es análogo a lo que ocurre con las tarjetas de débito o crédito, siendo siempre, en último extremo, responsable del uso indebido de las mismas el dueño de la tarjeta, si no ha avisado a tiempo a su entidad financiera o banco de la pérdida o sustración. 5.1. Funciones hash

Si imaginamos el envío de un documento extenso que queremos firmar digitalmente, nos daremos cuenta de que cifrar el documento entero es una pérdida de tiempo, ya que los medios de encriptación de llave pública son lentos, pués precisan un grán proceso de cómputo. Para solventar éste aspecto aparecen las funciones hash, que son unas funciones matemáticas que realizan un resumen del documento a firmar. Su forma de operar es comprimir el documento en un único bloque de longitud fija, bloque cuyo contenido es ilegible y no tiene ningún sentido real. Tanto es así que, por definición, las funciones hash son irreversibles, es decir, que, a partir de un bloque comprimido, no se puede obtener el bloque sin comprimir; y si no es así, no es una función hash. Estas funciones son, además, de dominio público. A un mensaje resumido mediante una función hash y encriptado con una llave privada es lo que, en la vida real, se denomina firma digital. El esquema de firma digital mediante una función hash y su mecanismo es el siguiente: (1) El emisor aplica una función hash conocida al documento, con lo

que obtiene un resumen hash del mismo. (2) Encripta dicho resumen con su clave privada.

(3) Envía al receptor el documento original plano y el resumen hash

encriptado.

(4) El receptor B aplica la función hash al resumen sin encriptar y desencripta el resumen encriptado con la llave pública de A.

(5) Si ambos coinciden está seguro de que ha sido A el que le ha

enviado el documento. Si no coinciden, está seguro de que no ha sido A o de que el envío ha sido interceptado durante el medio de envío y modificado.

En el caso de que ambos resúmenes no coincidan, contempla también la posibilidad de que el mensaje haya sido alterado en su viaje de A a B, lo que conlleva, igualmente, el rechazo del documento por no válido.

Page 139: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 139

CIBERTEC CARRERAS PROFESIONALES

Las funciones hash y la firma digital son elementos indispensables para el establecimiento de canales seguros de comunicación, basados en los Certificados digitales. Para que una función pueda considerarse como función hash debe cumplir con: transformar un texto de longitud variable en un bloque de longitud

fija, que generalmente es pequeña (algunas son de 16 bits). ser cómoda de usar e implementar. ser irreversible, es decir, no se puede obtener el texto original del

resumen hash. ser imposible encontrar dos mensajes diferentes, cuya firma digital

mediante la función hash sea la misma (no-colisión). Si se desea, además, mantener un intercambio de información con

confidencialidad, basta con cifrar el documento a enviar con la clave pública del receptor.

Las funciones hash más conocidas y usadas son:

MD5 (Message Digest 5): También obra de Ron Rivest, que se creó para dar seguridad a MD4, y que ha sido ámpliamante usado en diversos campos, como autenticador de mensajes en el protocolo SSL y como firmador de mensajes en el programa de correo PGP. Si embargo, fué vulnerado en 1996 por el mismo investigador que lo hizo con MD4, el señor Dobbertin, que consiguió crear colisiones en el sistema MD5, aunque por medio de ataques parciales. Pero lo peor es que también consiguió realizar ataques que comprometían la no-colisión, por lo que se podían obtener mensajes con igual hash que otro determinado. A pesar de todo esto, MD5 se sigue usando bastante en la actualidad.

SHA-1 (Secure Hash Algorithm): Desarrollado como parte integrante del Secure Hash Standar (SHS) y el Digital Signature Standar (DSS) por la Agencia de Seguridad Nacional Norteamericana, NSA. Sus creadores afirman que la base de este sistema es similar a la de MD4 de Rivest, y ha sido mejorado debido a ataques nunca desvelados. La versión actual se considera segura (por lo menos hasta que se demuestre lo contrario) y es muy utilizada como algoritmo de firma, como en el programa PGP en sus nuevas claves DH/DSS (Diffie-Hellman/Digital Signature Standar). Destacar también que, en la actualidad, se están estudiando versiones de SHA con longitudes de clave de 256, 384 y 512 bits.

6. Certificación de Llave Publica

El problema de la suplantación de llaves se puede resolver si alguien de confianza nos asegura que la llave pública de A realmente pertenece a A.

Page 140: Servidores de Alta Disponibilidad v2

140

CARERRAS PROFESIONALES CIBERTEC

En el caso de la guía telefónica, nos creemos que el teléfono que aparece junto al nombre del abonado realmente pertenece a ese abonado. ¿En qué se basa esa creencia? Simplemente, en que confiamos que la empresa editora de la guía no nos engaña. Un nivel de confianza aún más alto podría venir de una certificación ante notario, ya que suponemos que el notario es una persona de confianza y que lo que él afirma es cierto. En el mundo digital, nos aprovechamos del hecho de que se puede firmar cualquier archivo o documento digital, incluida una llave pública. A fin de cuentas, una llave pública ha de ser guardada en la computadora en la forma de un archivo. ¿Por qué no se va a poder firmar ese archivo? La criptografía de clave pública contribuye así a reparar su propia debilidad. El proceso para que A tenga la seguridad de poseer la llave pública auténtica de B sería el siguiente:

A obtiene la clave pública del notario.

A recibe la clave pública de B, firmada por el notario.

A verifica la firma digital del notario.

Si la verificación es correcta, A sabe que la llave de B es auténtica. En ese caso, se dice que la llave es válida. Esta validez proviene de la confianza depositada en el notario.

Este último paso se justifica considerando que el notario no firmará ninguna llave, si no ha verificado antes que realmente pertenece a su dueño. Es como en el mundo de papel. Yo puedo firmar un contrato de hipoteca con el banco directamente. La intervención de un notario, sin embargo, le da mayor confianza a la transacción, ya que la firma del notario certifica muchas cosas: que los firmantes son efectivamente quienes afirman ser, que están legalmente capacitados para realizar la transacción, que han firmado el contrato libre y voluntariamente, que entienden lo que éste significa, etc. El primer punto sigue siendo algo más escabroso. Necesitamos la llave pública del notario para verificar todo lo que éste firma, pero ¿cómo estar seguros de que no se trata de una llave falsa? A fin de cuentas, ¿cómo se que el notario frente al que me encuentro es realmente quien dice ser y no un falso notario? La paranoia no tiene límites, y como vemos la seguridad absoluta no existe. En la práctica, suponemos que hay una forma razonablemente segura de obtener la llave pública verdadera del notario. Tal vez nos la ha entregado él personalmente, o quizá la hemos descargado de una página web segura. Pero tenemos una ventaja crucial: somos nosotros quienes decidimos cuánta confianza otorgar al notario. De hecho, podemos sustituir la palabra "notario" por "persona de confianza" Una firma digital que atestigua la autenticidad de una llave pública se denomina genéricamente Certificado digital. Habitualmente, un certificado digital consta de tres elementos: la llave pública que está siendo certificada,

Page 141: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 141

CIBERTEC CARRERAS PROFESIONALES

la información sobre el usuario y la firma digital (o firmas digitales) del notario o persona de confianza. Eso es lo que estamos acostumbrados a hacer. Saque usted su DNI o pasaporte. ¿Qué contiene? Básicamente, información sobre el titular junto con ciertos elementos (marca de agua, firma policial, códigos diversos) que permiten verificar la autenticidad del documento. El mundo digital sigue las mismas pautas, aunque con ciertas peculiaridades.

Certification Authority (CA): Actua como un notario verificando la identidad de las personas y emitiendo un certificado que garantice una llave pública a un nombre individual.

7. PKI El acrónimo PKI deriva de "Public Key Infrastructure" (Infraestructura de Clave Pública) y es la forma común de referirse a un sistema complejo, necesario para la gestión de certificados digitales y aplicaciones de la Firma Digital. Una PKI bien construida debe proporcionar:

Autenticidad – La firma digital tendrá la misma validez que la manuscrita (Algoritmos hash, firmas digitales).

Confidencialidad – de la información transmitida entre las partes (Encriptación de datos).

Integridad – Debe asegurarse la capacidad de detectar si un documento firmado ha sido manipulado (Firmas digitales, certificados).

No Repudio – de un documento firmado digitalmente (Firmas digitales, rgistros de auditoria).

Disponibilidad – Redundancia.

7.1. Autoridad de registro (CA)

En toda PKI deben establecerse los mecanismos para que los usuarios soliciten su propio certificado, de tal forma que se asegure la identidad de dicho usuario. A este procedimiento se le denomina "Proceso de registro" y se realiza a través de la denominada "Autoridad de Registro". Existen dos tipos principales de registro:

Registro clásico. El solicitante acude en persona a una "Oficina de registro", donde, tras acreditar su identidad, se le proporciona de forma segura su clave privada y su certificado.

Registro remoto. El usuario, a través de Internet, realiza una solicitud de certificado. Para esto, empleará un software (p.e. un navegador) que generará el par de claves y enviará su clave

Page 142: Servidores de Alta Disponibilidad v2

142

CARERRAS PROFESIONALES CIBERTEC

pública a la autoridad de registro para que sea firmada por la autoridad certificadora y le sea devuelto su certificado.

La validez de la firma digital estará condicionada por la calidad del proceso de registro, siendo obligatorio para asegurar la validez legal de la firma, algún tipo de registro "Cara a cara", ya que es el único que asegura la identidad del solicitante. Por otra parte, la validez de la firma digital también estará condicionada a la firma manuscrita de un "contrato" por el que el solicitante acepta su certificado y las condiciones de uso del mismo. La autoridad de registro se compondrá de una serie de elementos tecnológicos (hardware y software específico) y unos medios humanos (los Operadores de Registro). Es el punto de comunicación entre los usuarios de la PKI y la autoridad certificadora.

7.2. Componentes de una PKI Los sistemas anteriormente descritos deben englobarse en un único sistema, al que se denomina "Infraestructura de Clave Pública" (PKI). Existen multitud de componentes adicionales, y cada elemento es un sistema complejo en si mismo. Los componentes básicos pueden resumirse en:

La autoridad de certificación. La pieza central y la que proporciona la base de confianza en la PKI. Constituido por elementos hardware, software y, evidentemente, humanos.

Publicación de certificados. El repositorio de certificados permite a los usuarios operar entre ellos (Por ejemplo, para la validación de una firma digital), y es un requisito legal que cuente con una total disponibilidad de acceso.

Soporte de la llave privada. La elección de un buen soporte para que los usuarios custodien su clave privada es un punto esencial y complejo en si mismo (Por ejemplo, si la clave está en una SmartCard, es necesario diseñar el Sistema de Gestión de SmartCards que permita la emisión y distribución de las tarjetas a los usuarios).

Aplicaciones "PKI-Enabled". Se denomina así a las aplicaciones software capaces de operar con certificados digitales. Estas aplicaciones son las que dan el valor real de la PKI de cara al usuario.

Políticas de certificación. Deben diseñarse una serie de políticas, o procedimientos operativos, que rigen el funcionamiento de la PKI y establecen los compromisos entre la autoridad certificadora y los

Page 143: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 143

CIBERTEC CARRERAS PROFESIONALES

usuarios finales. Estos documentos tendrán un carácter tanto técnico como legal.

El proceso de construcción de una PKI deberá siempre partir de la definición de las políticas operativas y contemplar como requerimiento esencial el asegurar la calidad y seguridad de las operaciones que los usuarios finales realizan con sus claves privadas (por ejemplo, firma digital de documentos).

8. PGP El sistema PGP (Pretty Good Privacity - Intimidad Bastante Buena) fué diseñado especialmente por Philip Zimmermann en 1991 para proporcionar una forma segura de intercambio de correo electrónico. Implementa tanto el cifrado del correo y ficheros como la firma digital de documentos. Para la encriptación del documento, usa una algoritmo de llave simétrica con intercambio de clave mediante sistema de llave pública, normalmente RSA; y para la firma digital suele utilizar la función hash MD5. No obstante, es un sistema ámpliamente configurable, que permite al usuario elegir entre diferentes sistemas asimétricos, funciones hash y longitudes de clave. Para usarlo hay que comenzar generando un par de claves, una pública y otra privada, siendo posible en ese momento la elección de la longitud de clave deseada. También hay que fijar una clave personal, que se usará luego para proteger la llave privada de miradas indiscretas. Las claves pública y privada las genera automáticamente el algoritmo, mientras que la personal de protección la elige el usuario. Una vez generadas las claves, la privada se encripta con la personal mediante un algoritmo simétrico, siendo posteriormente necesario desencriptarla cada vez que deseemos usarla. En cuanto a la llave pública, se deposita en un archivo especial, de tipo ASCII (sólo texto), denominado certificado de llave, que incluye el identificador de usuario del propietario (el nombre de esa persona y algún dato único, como su dirección de e-mail), un sello de hora del momento en el que se generó el par de llaves y el material propio de la clave. Cuando se desea mandar un correo o archivo encriptado, PGP lo encripta usando un sistema simétrico, generalmente IDEA o DES, usando una clave aleatoria, que posteriormente se encripta con RSA. Se envían el documento cifrado con la clave aleatoria y, ésta, encriptada con la llave RSA privada del destinatario. Cuando éste recibe el correo y deséa desencriptarlo, su programa PGP, primero, descifra la clave simétrica con su llave privada RSA y, luego, descifra el documento usando la clave desencriptada.

Page 144: Servidores de Alta Disponibilidad v2

144

CARERRAS PROFESIONALES CIBERTEC

Normalmente, el sistema PGP viene implementado mediante alguna aplicación específica, que se instala en la computadora del usuario. Esta aplicación se integra perfectamente con los programas de correo más comunes, permitiendo al usuario el uso directo del sistema PGP, con tan sólo pulsar los botones que aparecerán en la barra de menús de la aplicación de correo. Para desencriptar un mensaje basta con seleccionar el icono correspondiente (o mediante el botón derecho del ratón), siendo necesario en ese momento introducir la clave personal, para que el programa pueda acceder a la clave pública encriptada. Para firmar un correo se procede de forma análoga. En el caso de querer enviar un e-mail encriptado a otra persona, es necesario, en primer lugar, que la misma tenga un programa PGP instalado y, después, que nosotros tengamos la llave pública del destinatario. Si es así, basta con seleccionar la opción correspondiente en el menú, con lo que se nos pedirá la clave pública del destinatario, y el programa se encargará de todo lo demás. Si tenemos la necesidad de cifrar mensajes para muchos destinatarios diferentes nos encontraremos con el problema de gestionar los distintos archivos de llave pública. Para ello, los programas PGP facilitan el denominado llavero, que es un pequeño módulo de software que se encarga de administrar dichos archivos. Cuando recibamos uno de ellos, basta con colocarlo en el llavero para tenerlo disponible siempre que deseemos. Puede interesarnos, en un momento dado, enviar un correo cifrado o vernos en la necesidad de comprobar la autenticidad de un correo que nos llega firmado por parte de un destinatario del que no conocemos su llave pública. Podemos obtener ésta dirigiéndonos directamente a dicha persona y pidiéndosela, pero para facilitar esta tarea, y puesto que el objeto de las llaves públicas es ser difundidas lo más posible, se han habilitado diferentes servidores que poséen bases de datos con las claves públicas de los usuarios de PGP. Basta acudir a los mismos y solicitar el archivo de clave correspondiente a la persona que nos interesa.

Page 145: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 145

CIBERTEC CARRERAS PROFESIONALES

Autoevaluación

1. ¿Qué es una VPN? 2. ¿Cuál es un componente PKI?

(a) Autenticidad (b) CA

(c) Registro clásico

(d) Registro remoto

(e) Llave privada

Page 146: Servidores de Alta Disponibilidad v2

146

CARERRAS PROFESIONALES CIBERTEC

Virtual private networks II

TEMA Configurar una VPN.

OBJETIVOS ESPECÍFICOS Comprender el funcionamiento de la VPN

Implementar una VPN

CONTENIDOS Virtual Private Networks (VPN)

Openvpn

S E M A N A

14

Page 147: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 147

CIBERTEC CARRERAS PROFESIONALES

VIRTUAL PRIVATE NETWORKS (VPN) Las VPN’s son sesiones en un canal de comunicaciones autenticado y encriptado en una red pública, como es el caso de Internet. Considerando que las redes son inseguras, la encriptación y autenticación son utilizados para proteger los datos en tránsito. VPN es considerado un servicio independiente ya que toda información es transmitida a lo largo de un canal encriptado. En la siguiente figura, se muestra un esquema de este tipo de conexiones:

Fig. 1. Esquema de una conexión basada en VPN

En el diagrama mostrado se muestra que los dispositivos están conectados a través de un túnel configurado en los ruteadores. Para que se pueda establecer una sesión VPN, ambos equipos deben tener configurados los mismos parámetros: tamaño de las llaves, método de encriptación, etc. De esta manera, si se coloca un analizador de protocolos entre ambos rutedores, sólo se verá tráfico encriptado. El analizador verá el tráfico con direcciones IP origen y destino de los ruteadores. Dentro de los paquetes encriptados, van encapsulados los paquetes con las verdaderas direcciones IP origen y destino que van de una red a otra.

Page 148: Servidores de Alta Disponibilidad v2

148

CARERRAS PROFESIONALES CIBERTEC

A este proceso se le llama tunneling. Esto ayuda a evitar que un atacante pueda conocer qué direcciones establecen conexiones entre si. Esta característica también puede utilizarse en beneficio propio, ya que son los ruteadores los que realizan el túnel con sus direcciones públicas, se pueden utilizar direcciones de red privadas para que vayan encapsulados en el tráfico encriptado. Las VPN´s fueron diseñadas y desarrolladas para reemplazar lo siguiente:

Grupos de módems

Enlaces WAN dedicados 1.1. Tecnologías de VPN

Entre las tecnologías de VPN´s tenemos: A. Point-to-Point Tunneling Protocol (PPTP)

PPTP trabaja en el nivel de la capa de enace del modelo OSI. Está diseñado para conexiones de clientes individuales a un servidor VPN y habilita una sola conexión punto a punto por sesión. Este protocolo es muy común con conexiones asíncronas que utilizan clientes Windows XP/2000/2003. PPTP utiliza el protocolo de autenticación nativo de Point to Point y sus servicios de encriptación.

B. Layer 2 Tunneling Protocol (L2TP)

L2TP es una combinación de PTP y el protoclo Layer 2 Fordwarding Protocol (L2F) que trabaja en la capa de enlace, similar a PPTP. Este protoclo es muy utilizado en los enlaces VPN que se realizan vía dial-up. Este estándar fue diseñado para conexiones simples cliente/servidor. Por esta razón, se pueden encapsular múltples protoclos.

C. IPSec

IPSec opera en la capa de red y habilita túneles múltiples y simultáneos, a diferencia de la conexión simple de los estándares anteriores. IIPSec tiene la funcionalidad de encriptar y autenticar datos IP. Forma parte del nuevo estándar IPv6. Modo de operación:

Modo túnel – El paquete completo es encriptado y encapsulado en un paquete IPSec. No soporta tráfico que ha sufrido NAT.

Modo Transporte – Sólo el datagrama es encriptado dejando visible la dirección IP.

1.2. Escenarios típicos de VPN´s

Interconexión de redes privadas a tráves de Internet

Page 149: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 149

CIBERTEC CARRERAS PROFESIONALES

Ejemplo: conexión de dos oficinas de una empresa o Se establece una VPN entre dos gateways, cada uno de una

red privada. o Las máquinas de las redes utilizan esos gateways como routers. o Cuando un gateway recibe un paquete dirigido a la red privada

del otro extremo, lo envía a través de la VPN de modo seguro. o El tráfico sólo es protegido por la VPN en el recorrido entre los

dos gateways.

Road Warriors Ejemplo: trabajadores remotos o Cada persona con permiso puede conectarse desde cualquier

lugar. o La computadora debe contar con un cliente VPN, que establece

una conexión al concentrador de VPNs de la red corporativa. o A partir de ese momento, todo el tráfico, desde la computadora

a la red corporativa, queda protegido por la VPN.

2. OPENVPN OpenVPN es un excelente producto de software creado por James Yonan en el año 2001 y que ha estado siendo mejorado desde entonces. Ninguna otra solución ofrece una mezcla semejante de seguridad a nivel empresarial, seguridad, usabilidad y riqueza de características. Es una solución multiplataforma que ha simplificado mucho la configuración de VPN's dejando atrás los tiempos de otras soluciones difíciles de configurar como IPsec y haciéndola más accesible para gente inexperta en este tipo de tecnología. Caracteristicas:

Solución VPN SSL flexible

Software libre bajo licencia GPL

Espacio de usuario, alta portabilidad

Multiplataforma: GNU/Linux, *BSD, Mac OS X, Windows Funcionalidad:

Establece túneles de nivel 2 o 3 sobre un puerto UDP o TCP.

Permite establecer balanceo de carga entre varios servidores.

Confidencialidad, autenticidad e integridad usando OpenSSL

Interfaz gráfica de configuración en Windows y Mac OS X

Page 150: Servidores de Alta Disponibilidad v2

150

CARERRAS PROFESIONALES CIBERTEC

Interfaz tun

Un interfaz tun es un adaptador de red virtual.

El sistema operativo lo ve como una conexión punto a punto.

Un programa de espacio de usuario puede abrir el interfaz tun y leer y escribir paquetes IP en la interfaz.

Un interfaz tap es similar, pero a nivel Ethernet.

Page 151: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 151

CIBERTEC CARRERAS PROFESIONALES

2.1. Configuración VPN – Road Warrior (Host to LAN)

Fig. 2. VPN Road Warrior

2.1.1. Preparación del servidor VPN

(1) Se debe tener instalado los siguientes paquetes: pam, openssl, lzo, openvpn. # rpm -q pam

pam-0.99..6.2-3.14.el5

# rpm -q openssl

openssl-0.9.8b-8.3.el5

# rpm -q lzo

lzo-1.08-4.2.el5.rf

# rpm -q lzo2

lzo2-2.02-3-el5-rf

# rpm -q openvpn

openvpn-2.0.9-1.el5.rf

(2) Comprobamos el funcionamiento de Openvpn

# openvpn --genkey --secret key

# openvpn --test-crypto --secret key

Page 152: Servidores de Alta Disponibilidad v2

152

CARERRAS PROFESIONALES CIBERTEC

Fig. 3. Verificando el correcto funcioanmiento de Openvpn

(3) Revisemos las direcciones IP pública y privada: # ifconfig

eth0 Link encap:Ethernet HWaddr 00:0F:3D:CB:7B:74

inet addr:190.12.79.79 Bcast:190.12.79.255

Mask:255.255.255.0

inet6 addr: fe80::20f:3dff:fecb:7b74/64 Scope:Link

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

RX packets:2764 errors:0 dropped:0 overruns:0 frame:0

TX packets:682 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:1362998 (1.2 Mb) TX bytes:100959 (98.5 Kb)

Interrupt:185 Base address:0xb800

eth1 Link encap:Ethernet HWaddr 00:15:E9:B0:22:7C

inet addr:192.168.1.250 Bcast:192.168.1.255

Mask:255.255.255.0

inet6 addr: fe80::215:e9ff:feb0:227c/64 Scope:Link

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

RX packets:330 errors:0 dropped:0 overruns:0 frame:0

TX packets:20 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:33440 (32.6 Kb) TX bytes:1822 (1.7 Kb)

Interrupt:169 Base address:0xb400

lo Link encap:Local Loopback

inet addr:127.0.0.1 Mask:255.0.0.0

inet6 addr: ::1/128 Scope:Host

UP LOOPBACK RUNNING MTU:16436 Metric:1

RX packets:322 errors:0 dropped:0 overruns:0 frame:0

TX packets:322 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:23316 (22.7 Kb) TX bytes:23316 (22.7 Kb)

2.1.2. Configuración del servidor VPN

(1) Creamos el directorio /etc/openvpn/easy-rsa (2) Copiamo el directorio /usr/share/doc/openvpn-2.0.9/easy-rsa-

2.0/ hacia /etc/openvpn/easy-rsa (3) Trasladamos al directorio /etc/openvpn/easy-rsa (4) Definimos permisos de ejecución en los scripts.

Page 153: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 153

CIBERTEC CARRERAS PROFESIONALES

(5) Inicializamos las variables para poder trabajar con los scripts para la generación de las variables.

(6) Inicializamos el directorio de las claves.

Fig. 4. Configurar CA

(7) Procedemos a generar el certificado CA. Se nos pedirá una

serie de información sobre nuestra red/empresa que debemos llenar lo más fielmente posible. # sh build-ca

La variable que debemos explícitamente llenar es: Common Name.

Fig. 5. Generación del certificado CA

(8) Generación del certificado y de la clave de encriptación para

el servidor. # sh build-key-server server

Page 154: Servidores de Alta Disponibilidad v2

154

CARERRAS PROFESIONALES CIBERTEC

Fig. 6. Generación del certificado de servidor. En este paso, también, se nos pedirá nuevamente información sobre el certificado propio del servidor. Ingresar en Common Name un nombre diferente al anteriormente escogido. En este ejercicio: server

(9) El paso anterior nos generó dos archivos en el directorio

/etc/openvpn/easy-rsa/keys/ que se copiarán dentro del mismo servidor hacia /etc/openvpn.

Page 155: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 155

CIBERTEC CARRERAS PROFESIONALES

Fig. 7.

(10) Generando certificados y claves privadas para los clientes.

Cada cliente debe tener su propio certificado y clave de seguridad. Para cada cliente que tengamos, deberemos repetir el siguiente paso: los archivos obtenidos debemos copiarlos hacia el directorio /etc/openvpn/ de los clientes. En el caso de que nuestros clientes estén en Windows, debemos copiarlos hacia el directorio c:\program files\openvpn\

Para generar el certificado y claves privadas para el cliente, ejecutamos en nuestro servidor, dentro del directorio /etc/openvpn/easy-rsa/ # cd /etc/openvpn/easy-rsa/

# sh build-key client1

En el ejemplo anterior, generamos la clave y el certificado para un cliente llamado cliente1. Debemos hacer notar que al ejecutar el programa sh build-key, le pasamos como parámetro el nombre del cliente (cliente1 en el ejemplo anterior), el cual debe ser diferente para cada cliente. En el common name, ponemos el nombre del cliente (cliente1 en éste ejemplo) tal y como le pasamos de parámetro.

(11) Se pueden generar tantas claves como sean necesarias, para cada cliente: # sh build-key cliente2

# sh build-key cliente3

Esto nos generará dos claves y certificados más, para cliente2 y cliente3; por favor, en common name debemos poner client2 ó client3 para cada caso.

Page 156: Servidores de Alta Disponibilidad v2

156

CARERRAS PROFESIONALES CIBERTEC

Fig. 8. Generación del certificado del cliente

(12) El parámetro de Diffie-Hellman debemos generarlo:

# sh build-dh

Page 157: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 157

CIBERTEC CARRERAS PROFESIONALES

Fig. 9.

(13) Archivos a copiar al servidor VPN: Hacia el directorio /etc/openvpn del servidor copiamos los siguientes archivos: ca.crt, ca.key y dh1024.pem estos archivos están presentes en el siguiente directorio /etc/openvpn/easy-rsa/keys/ # cd /etc/openvpn/easy-rsa/keys/

# cp ca.crt ca.key dh1024.pem /etc/openvpn

# ls /etc/openvpn/

Fig. 10.

(14) Archivos a copiar al equipo del cliente

Hacia el directorio /etc/openvpn de cada cliente, copiamos los siguientes archivos: ca.crt, clientX.crt y clientX.key Tenga en cuenta que X es un número que se corresponde con el cliente (para el cliente 2 sería: client2.crt y client2.key por ejemplo). Estos 3 archivos deben copiarse de forma segura hacia el cliente, quizá mediante scp o algún medio magnético seguro. No deben enviarse por mail, puesto que contienen la clave (.key) de encriptación del cliente. Estos archivos están presentes en /etc/openvpn/easy-rsa/keys del servidor.

Page 158: Servidores de Alta Disponibilidad v2

158

CARERRAS PROFESIONALES CIBERTEC

Este paso lo realizamos netamente desde el equipo del cliente:

# scp 190.12.79.79:/etc/openvpn/easy-rsa/keys/ca.crt

/etc/openvpn

The authenticity of host '190.12.79.79 (190.12.79.79)' can't

be established.

RSA key fingerprint is

8f:38:bb:2a:7b:74:02:71:6c:40:0f:b0:3d:a2:d1:b0.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added '190.12.79.79' (RSA) to the list

of known hosts.

Password:

ca.crt 100% 1265 1.2KB/s 00:00

# scp 190.12.79.79:/etc/openvpn/easy-rsa/keys/client1.crt

/etc/openvpn

Password:

client1.crt 100% 3583 3.5KB/s 00:00

# scp 190.12.79.79:/etc/openvpn/easy-rsa/keys/client1.key

/etc/openvpn

Password:

client1.key 100% 887 0.9KB/s 00:00

(15) Configuración del servidor. Creamos el archivo /etc/openvpn/server.conf; debe quedar como se muestra: port 1194

proto udp

dev tun

ca ca.crt

cert server.crt

key server.key

dh dh1024.pem

#Direcciones que se asignaran a los

#clientes, el server es .1

server 192.168.3.0 255.255.255.0

ifconfig-pool-persist ipp.txt

#Ruta para que los clientes alcancen la red local

del server (1.0/24)

push "route 192.168.1.0 255.255.255.0"

keepalive 10 120

comp-lzo

user nobody

group nobody

persist-key

persist-tun

status openvpn-status.log

verb 4

Como podemos ver, hay nuevos parámetros, los más importantes son:

un push de la ruta hacia la red local interna del servidor. Esa ruta estática permitirá que el road warrior vea a las máquinas de la red interna.

server: Indica el rango de direcciones que se asignará a los clientes que se conecten, deben ser direcciones no similares a las de la red local.

Page 159: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 159

CIBERTEC CARRERAS PROFESIONALES

(16) Configuración en el equipo del cliente:

En este caso, la configuracion es en el directorio /etc/openvpn/ del equipo cliente. Crearemos el archivo /etc/openvpn/cliente.conf, así quedaría el archivo de configuración: client

dev tun

proto udp

remote 190.12.79.79 1194

resolv-retry infinite

nobind

#Las dos siguientes opciones no van en windows

user nobody

group nobody

persist-key

persist-tun

ca ca.crt

cert cliente1.crt

key cliente1.key

comp-lzo

verb 4

Las configuraciones más interesantes son:

Client: indica que algunas configuraciones las tomará del servidor.

nobind: que no actúe como servidor, que solamente vaya como cliente.

Recordar que cert y key deben ser únicas para cada cliente

(17) Iniciamos el servicio openvpn en el lado del servidor # cd /etc/openvpn/

# openvpn server.conf &

Page 160: Servidores de Alta Disponibilidad v2

160

CARERRAS PROFESIONALES CIBERTEC

Fig. 11.

(18) Revisemos la nueva dirección IP de la tarjeta tun0 del servidor VPN # ifconfig tun0

Fig. 12.

(19) Ahora iniciamos el servicio openvpn en el equipo del cliente

VPN # cd /etc/openvpn/

# openvpn cliente.conf &

(20) Revisemos la nueva dirección IP de la tarjeta tun0 del cliente VPN # ifconfig tun0

Page 161: Servidores de Alta Disponibilidad v2

SERVIDORES DE ALTA DISPONIBILIDAD 161

CIBERTEC CARRERAS PROFESIONALES

Fig. 13.

(21) Del lado del equipo cliente, realizo un ping a las direcciones

IP del servidor VPN # ping -c3 192.168.1.250

# ping -c3 192.168.3.1

Fig. 14.

Page 162: Servidores de Alta Disponibilidad v2

162

CARERRAS PROFESIONALES CIBERTEC

Autoevaluación

1. ¿Qué es el proceso tunneling? 2. ¿Cuál no es una tecnología de VPN?

(a) PPTP (b) L2TP

(c) L2F

(d) IPSec