You are on page 1of 162

Servidores de Alta Disponibilidad

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

ndice
Presentacin Red de contenidos Sesiones de aprendizaje 5 6

SEMANA 1 SEMANA 2 SEMANA 3 SEMANA 4 SEMANA 5 SEMANA 6 SEMANA 9 SEMANA 10 SEMANA 11 SEMANA 12 SEMANA 13 SEMANA 14

: RAID en Linux : LVM en Linux : TCP/IP Avanzado : Stateful Packet Inspection Firewall I : Stateful Packet Inspection Firewall II : Stateful Packet Inspection Firewall III : Proxy Application Firewall I : Proxy Application Firewall II. : Intrusin Detection Systems I : Intrusin Detection Systems II : Virtual Private Networks I. : Virtual Private Networks II.

7 17 33 45 59 73 81 95 109 121 131 147

CIBERTEC

CARRERAS PROFESIONALES

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

Presentacin
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 configuracin de un Stateful Packet Inspection Firewall (Proyecto Netfilter). En la stima y octava semanas, se realizar la instalacin y configuracin de un Proxy Application Firewall (proyecto Squid). Adicionalmente, se realizar la instalacin y configuracin 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 distribucin utilizada para la explicacin del presente curso ser CentOS Linux 5.0.

CIBERTEC

CARRERAS PROFESIONALES

1
SEMANA

RAID en Linux

TEMA
Configuracion del software RAID en LInux

OBJETIVOS ESPECFICOS
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 implementacin del RAID

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

1. Qu es RAID?
En 1987, la Universidad de Berkeley (California), public un artculo describiendo varios tipos de arrays de discos, acuando en el proceso el trmino RAID (acrnimo de Redundant Array of Inexpensive Disks). Bsicamente, la idea era combinar mltiples discos [duros] independientes y pequeos en un array (o matriz) de disco capaz de alcanzar un rendimiento superior al de un slo disco grande y caro, en otros trminos, se pretenda hacer trabajar varios discos modestos como un disco profesional de alto rendimiento. Adicionalmente, el array de discos aparece ante el sistema como un disco lgico nico. El tiempo transcurrido entre errores (MTBF) para el array de discos es, en el modelo terico de la Universidad de Berkeley, igual al MTBF de un disco individual dividido por el nmero de discos presentes en el array. Esto se consigue alcanzando una cierta tolerancia a errores que pasa por guardar la informacin redundantemente de varios modos. En aquel documento original, tambin 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. Despus de aquello, tambin se ha ido poniendo de moda el trmino 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). Tambin 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.

CIBERTEC

CARRERAS PROFESIONALES

2. Niveles RAID
A continua cion se indica una breve descripcin de los niveles RAID que soporta la capa de RAID por software de Linux. Gran parte de esto que vamos a ver son slo los fundamentos tericos de los sistemas RAID. El soporte RAID de Linux incorpora los siguientes niveles: 2.1. RAID 0: Disk Striping "La ms alta transferencia, pero sin tolerancia a fallos". Tambin conocido como "separacin fraccionamiento/ Striping". Los datos se desglosan en pequeos 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 proteccin de los datos. El fallo de cualquier disco de la matriz tendra como resultado la prdida de los datos y sera necesario restaurarlos desde una copia de seguridad. Por lo tanto, RAID 0 no se ajusta realmente al acrnimo RAID. Consiste en una serie de unidades de disco conectadas en paralelo que permiten una transferencia simultnea 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 relacin al nmero de discos que forman el conjunto. Esto representa una gran ventaja en operaciones secuenciales con ficheros de gran tamao. Por lo tanto, este array es aconsejable en aplicaciones de tratamiento de imgenes, audio, video o CAD/CAM, es decir, es una buena solucin para cualquier aplicacin que necesite un almacenamiento a gran velocidad pero que no requiera tolerancia a fallos. Se necesita un mnimo de dos unidades de disco para implementar una solucin RAID 0.

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

2.2.

RAID 1: Mirroring "Redundancia. Ms rpido que un disco y ms seguro"

Tambin llamado "Mirroring" o "Duplicacin" (Creacin de discos en espejo). Se basa en la utilizacin de discos adicionales sobre los que se realiza una copia en todo momento de los datos que se estn 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 avera, la controladora sigue trabajando con los discos no daados 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 aadir en pares para aumentar la capacidad de almacenamiento. Sin embargo, RAID 1 es una buena solucin para las aplicaciones que requieren redundancia cuando hay slo dos unidades disponibles. Los servidores de archivos pequeos son un buen ejemplo. Se necesita un mnimo de dos unidades para implementar una solucin RAID 1.

2.3.

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

Basa su tolerancia al fallo en la utilizacin de un disco dedicado a guardar la informacin de paridad calculada a partir de los datos guardados en los otros discos. En caso de avera de cualquiera de las unidades de disco, la informacin se puede reconstruir en tiempo real mediante la realizacin de una operacin lgica de O exclusivo. Debido a su organizacin interna, este RAID es especialmente indicado para el almacenamiento de ficheros de gran tamao, lo cual lo hace ideal para aplicaciones grficas donde se requiera, adems, fiabilidad de los datos.

CIBERTEC

CARRERAS PROFESIONALES

10

Se necesita un mnimo de tres unidades para implementar una solucin 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 adems, optimiza la capacidad del sistema permitiendo una utilizacin de hasta el 80% de la capacidad del conjunto de discos. Esto lo consigue mediante el clculo de informacin de paridad y su almacenamiento alternativo por bloques en todos los discos del conjunto. La informacin 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 informacin en tiempo real, sobre la marcha, mediante una simple operacin de lgica 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 comprobacin, el RAID 5 no asigna un disco especfico a esta misin sino que asigna un bloque alternativo de cada disco a esta misin de escritura. Al distribuir la funcin de comprobacin 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 ms eficaz y el de uso preferente para las aplicaciones de servidor bsicas para la empresa. Comparado con otros niveles RAID con tolerancia a fallos, RAID 5 ofrece la mejor relacin rendimiento-coste en un entorno con varias unidades. Gracias a la

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

11

combinacin del fraccionamiento de datos y la paridad como mtodo para recuperar los datos en caso de fallo, constituye una solucin ideal para los entornos de servidores en los que gran parte del E/S es aleatoria, la proteccin 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 mnimo de tres unidades para implementar una solucin RAID 5. Los niveles 4 y 5 de RAID pueden utilizarse si se disponen de tres o ms unidades de disco en la configuracin, aunque su resultado ptimo de capacidad se obtiene con siete o ms unidades. RAID 5 es la solucin ms econmica por megabyte, que ofrece la mejor relacin de precio, rendimiento y disponibilidad para la mayora de los servidores.

CIBERTEC

CARRERAS PROFESIONALES

12

3. Configuracion de RAID por software en Linux


En Linux raidtools ha sido el paquete de gestin de RAID por software estandard en Linux desde la inclusin del driver RAID por software. Con los aos, raidtools ha demostrado un uso pesado, principalmente porque depende de un fichero de configuracin (/etc/raidtab) que es difcil de mantener, y parcialmente por sus limitadas caractersticas. 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 gestin de arrays software. mdadm v por la versin 1.0.1 y ha demostrado ser muy estable durante su primer ao de desarrollo. En la lista de correo Linux-raid ha recibido una clida acogida y muy probablemente consiga una mayor difusin en el futuro. 3.1. Instalacin

Descargue la versin ms reciente del tarball mdadm, ejecute make install para compilarlo e instalar mdadm con su documentacin. Adems del binario se instalan algunas pginas 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 notificacin de eventos y acciones para los arrays. El modo Build se utiliza cuando se trabaja con arrays heredados que utilizan una versin antigua del driver md. No cubrir el modo build en este artculo. Las opciones restantes se utilizan para varias tareas domsticas y no

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

13

estn asociadas a un modo de operacin especfico, aunque la documentacin 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 opcin --level especifica el tipo de RAID a crear, de la misma manera que lo hace la opcin raid-level de raidtools. Es posible indicar 0, 1, 4 y 5 para RAID0, RAID-1, RAID-4 y RAID-5. Tambin es posible utilizar el modo lineal (-level=linear).

CIBERTEC

CARRERAS PROFESIONALES

14

En general, los comandos mdadm tienen el siguiente formato: mdadm [mode] <raiddevice> [options] <component disks> Cada opcin de mdadm tambin cuenta con una forma corta que es menos descriptiva pero ms breve de teclear. Por ejemplo, el siguiente comando utiliza la forma corta de cada opcin pero es identico al ejemplo que he mostrado antes.

-C selecciona el modo Create, he incluido la opcin -v para activar la salida verbosa. -l y -n especifican el nivel RAID y el nmero de discos. Los usuarios de raidtools y /etc/raidtab pueden comprobar los fcil que es crear arrays utilizando mdadm. Usted puede cambiar el tamao del pedazo (chunk size) por defecto (64KB) utilizando la opcin --chunk o -c. En el ejemplo anterior he fijado el chunk size a 128KB. mdadm tambin soporta la expansin 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 tamao 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 tambin he fijado el tamao del chunk a 128KB utilizando la opcin -c128. Cuando se crea un RAID-5, mdadm selecciona de forma automtica el algoritmo de paridad left-symmetric, que es la mejor opcin.

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

15

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

/etc/mdadm.conf
/etc/mdadm.conf es el principal fichero de configuracin 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 configuracin 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 dnde estn los discos. Por ejemplo, si un array no est en marcha y no existe el fichero mdadm.conf describindolo, entonces el administrador del sistema debe invertir tiempo en examinar cada disco para determinar sus propiedades y miembros. A diferencia del fichero de configuracin para raidtools, mdadm.conf es conciso y smplemente lista los discos y arrays. El fichero de configuracin puede contener dos tipos de lneas, cada una comenzando con la palabra reservada DEVICE o ARRAY. Los espacios en blanco separan las palabras reservadas de la informacin de configuracin. Las lneas que comienzan con DEVICE especifican una lista de dispositivos que son candidatos a formar parte del array. La lneas que comienzan con ARRAY especifican dispositivos array adems de informacin de identificacin. Esta informacin puede incluir listas de uno o ms UUIDs, nmeros menores de dispositivos md, o una lista de dispositivos miembro. Un fichero de configuracin mdadm.conf sencillo puede parecerse a:
DEVICE ARRAY ARRAY /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/md0 devices=/dev/sda1,/dev/sdb1 /dev/md1 devices=/dev/sdc1,/dev/sdd1

En general, es mejor crear el fichero /etc/mdadm.conf despus de haber creado un array y actualizar el fichero cuando se crean nuevos arrays. Sin un fichero /etc/mdadm.conf se necesita especificar informacin ms 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 fcilmente en un embrollo en sistemas con muchos discos. mdadm incluso proporciona una manera fcil de generar las lneas ARRAY. La salida es una sola lnea continua, pero aqu est troceada para encajar en la pgina:

CIBERTEC

CARRERAS PROFESIONALES

16

Si hubiera mltipes arrays ejecutndose en el sistema, entonces mdadm generara 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. Slo 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 opcin -A se refiere al modo Assemble, tambin puede utilizar --assemble. La opcin -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 lnea de comandos. Si usted no cre el fichero /etc/mdadm.conf, necesitar especificar informacin adicional en la lnea de comandos para poder iniciar un array. Por ejemplo, este comando intenta iniciar /dev/md0 utilizando los dispositivos listados en la lnea de comandos:
# mdadm -A /dev/md0 /dev/sdb1 /dev/sdc1

Como utilizar mdadm -A de este modo supone que usted conoce cmo estn 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 cmo estn organizados los arrays. La opcin de examinar (-E o --examine) permite

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

17

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

La opcin de examinar muestra informacin 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 especfica es la lnea de salida que contiene el UUID. Un UUID es un nmero 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 ms informacin leyendo las pginas 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 construccin de arrays. En el prximo 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

CIBERTEC

CARRERAS PROFESIONALES

18

componen. mdadm producir un montn 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 aadir y eliminar discos de un array en funcionamiento. Esto es necesario para eliminar los discos que han fallado, aadir discos de repuesto, o aadir los discos de reemplazo. El modo Manage tambin 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 aadir un disco a un array activo, replicando el comando raidhotadd: Revisar que discos forman el arreglo:

Aadiendo un nuevo disco:

Revisando la nueva configuracin:

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

19

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 configuracin final

Observe que primero he marcado /dev/sdc1 como averiado y despus lo hemos eliminado. Es equivalente a utilizar los comandos raidsetfaulty y raidhotremove de las raidtools. Es posible combinar las opciones de aadir, marcar como averiado y eleminar en una sola lnea de comandos siempre que tenga sentido en trminos de gestin del array. Por ejemplo, debe marcar un disco como averiado antes de eliminarlo.

CIBERTEC

CARRERAS PROFESIONALES

20

Monitorizando arrays
El modo Follow, o Monitor, proporciona algunas de las mejores caractersticas 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. Tambin 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 intervencin del usuario. El siguiente comando monitorizar /dev/md0 (consultando su estado cada 300 segundos) en busca de eventos crticos. Cuando ocurre un error faltal, mdadm enviar un correo al sysadmin. Puede ajustar el intrvalo de consulta y la direccin 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 tambin 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 slo tiene que proporcionar un disco de repuesto para cada grupo de arrays o para todos los asrrays. Tambin 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 avera 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 lnea 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 \ \

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

21

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.

CIBERTEC

CARRERAS PROFESIONALES

22

Autoevaluacin
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.

Cmo crea un RAID 5 en Linux?

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

23

CIBERTEC

CARRERAS PROFESIONALES

24

2
SEMANA

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

OBJETIVOS ESPECFICOS
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 vas Identificar parmetros de seguridad aplicados a la interface de red

CONTENIDOS
Protocolo TCP/IP Address Resolution Protocol (ARP) Internet Control Messages Protocol (ICMP) Cabecera IP

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

25

1. LVM (Logical Volumen Manager)


LVM es el administrador de volmenes lgicos para el kernel Linux. LVM gestiona los discos duros y sistemas similares, como dispositivos de almacenamiento masivo. Entre las caractersticas principales del Linux Logical Volume Manager encontramos el redimensionado de grupos lgicos, redimensionado de volmenes lgicos, capacidad de realizacin de snapshots en modo lectura, adicin de nuevos discos a los volmenes, etc. Se podra decir que LVM es un mecanismo para virtualizar discos.

LVM es mucho ms flexible, permitiendo aadir espacio adicional a volmenes ya creados de manera transparente y simple. Pasamos a ver los conceptos para entender la base del sistema.

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


abstraccin ms alto en LVM. Puede contener volmenes fsicos y lgicos.

physical volume (PV): Puede ser un disco duro, aunque tambin algo que
se le parezca como un RAID por software.

logical volume (LV): Equivale a una particin, contiene su propio sistema


de archivos.

physical extent (PE): La extensin fsica est compuesta por trozos de


datos de los volmenes fsicos.

logical extent (LE): La extensin lgica est compuesta por trozos de datos de los volmenes lgicos.

CIBERTEC

CARRERAS PROFESIONALES

26

Para que todo funcione es necesario instalar el paquete lvm10 o lvm2, recomiendo la versin 2 aunque la mayora de distribuciones todava mantengan la versin 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 versin 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

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

27

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 particin 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 Aade una nueva particin

Presionamos p para crear una nueva particin primaria


p Particin primaria (1-4)

Presionamos 1 para crearla como la primera particin 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 particin:
t Cambia el identificador de sistema de una particin

La cambiaremos al tipo LVM partition type (08e), 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 /dev/sda1 1 30515 205111706 8e System Linux LVM

CIBERTEC

CARRERAS PROFESIONALES

28

2. Configuracion de LVM 2.1. Creacion de physical Volumen


Para la creacin de physical volumens se usa el comando pvcreate

El comando pvdisplay nos muestra todos los physical volumen del Sistema.

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

29

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 creacin. A continuacin 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

CIBERTEC

CARRERAS PROFESIONALES

30

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 pequeas 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:

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

31

CIBERTEC

CARRERAS PROFESIONALES

32

3
SEMANA

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

OBJETIVOS ESPECFICOS
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 vas Identificar parmetros 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 vas (Handshake) Seguridad TCP/IP

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

33

PROTOCOLO TCP/IP

Fig. 1. Modelo TCP/IP Aplicacin Las aplicaciones TCP/IP usualmente incluyen un programa cliente y servidor. o Interface de usuario o Proporciona aplicaciones especficas entre dos hosts. Transporte Mantiene la integridad de los datos y configuracin de confiable en la comunicacin punto a punto entre los sistemas. Asegura la entrega libre de errores de las unidades de datos, en adecuada secuencia, y sin prdidas o duplicacin. Internet Encamina los paquetes entre diferentes hosts o redes. Interfase de red Define la interconexin fsica entre los hosts.

Los estndares 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:

CIBERTEC

CARRERAS PROFESIONALES

34

Internet Society - http://www.isoc.org/ Interactive Advertising Bureau (IAB) - http://www.iab.net/

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

3. Address Resolution Protocol (ARP)


Para que dos hosts puedan comunicarse, deben conocer sus direcciones fsicas (Media Access Control MAC). A travs de la difusin, ARP permite a un host descubrir dinmicamente la direccin MAC correspondiente a una direccin IP en particular.

Fig. 3. Cabecera ARP

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

35

HLEN Longitud direccin hardware PLEN Longitud direccin del protocolo OPERACION Cdigo de operacin (ARPreques ARPreply) SENDER HA Direccin de origen hardware SENDER IP Direccin de origen del protocolo TARGET HA Direccin de destino hardware

A continuacin, se muestra la captura de paquetes ARP con el programa Wireshark (sniffer).

Fig. 4. ARP

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

2.2. Cambiar la direccin MAC: Bajo Linux, la direccin 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

CIBERTEC

CARRERAS PROFESIONALES

36

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 despus de reiniciar el sistema, es agregando una variable como esta a tu ifcfgeth0 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 tambin 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 guin o dos puntos. Un ejemplo de una direccin MAC-48 sera "00-08-74-4C-7F1D"; otro ejemplo, "00:08:74:4C:7F:1D". RARP (Reverse Address Resolution Protocol) Asocia una direccin IP a una direccin MAC, es decir es el proceso inverso. El cual es utilizado en estaciones que no tienen disco y no tienen direccin IP cuando son activadas.

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

37

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 diseado para ser absolutamente confiable. El propsito de ICMP es proveer retroalimentacin acerca de problemas en el ambiente de comunicacin.

Fig. 6. Cabecera ICMP Esta cabecera tiene los siguientes campos: Tipo Campo de 8 bits que identifica el tipo de paquete. Cdigo Campo de 8 bits que especifica el tipo de paquete ICMP. Suma de verificacin Campo de 16 bits de cdigo de chequeo de error referido a la cabecera ICMP.

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

CIBERTEC

CARRERAS PROFESIONALES

38

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:

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

39

Versin Campo de 4 bits que identifica la versin IP utilizada. Por defecto, es 4, IPv4. Longitud de la cabecera Campo de 4 bits. Tipo de servicio Campo de 8 bits dnde se especifica cmo los protocolos de capa superior sern manejados y se asignan diferentes niveles de importancia como: o o o o o o Precedencia Retardo minimizado Mxima transferencia (throughput) Mxima fiabilidad (Reliability) Minimizar el costo monetario Reservado

Longitud Total Campo de 16 bits que indica el tamao mximo del paquete en bytes. Identificacin Campo de 16 bits que indica el nmero de identificacin del paquete IP. Flags Campo de 3 bits dnde los 2 bits de menor orden controlan la fragmentacin y el de mayor orden no es utilizado. o Reservado o No fragmentado o Ms fragmentos Orden de los Fragmentos Campo de 13 bits que indica la posicin 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 continuacin.

Fig. 9. Cabecera IP Suma de verificacin Campo de 16 bits de cdigo de chequeo de error referido a la cabecera IP para aseguramiento de integridad de la cabecera IP.

CIBERTEC

CARRERAS PROFESIONALES

40

Direccin Origen Campo de 32 bits que indica la direccin origen. Direccin destino Campo de 32 bits que indica la direccin 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 conexin (garantiza la entrega de los datos). Los campos TCP son: Puerto Origen Campo de 16 bits que identifica el puerto origen utilizado en la sesin. Puerto destino Campo de 16 bits que identifica el puerto destino utilizado en la sesin. Nmero de secuencia Campo de 32 bits que identifica dnde corresponden los datos encapsulados dentro de una cadena de datos que vienen desde el emisor. Nmero de acuse de recibo Campo de 32 bits que identifica el siguiente nmero 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

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

41

Flags Campo de 6 bits que corresponden a los indicadores de estado de sesin: o URG. Urgente o ACK. Acuse de Recibo o PSH. Push o RST. Reset o SYN. Sincronizado o FIN. Final Tamao de la ventana Campo de 16 bits utilizado para el control de flujo. Especifica el nmero de octetos empezando con el octeto indicado por el nmero de reconocimiento que el emisor del segmento acepta a su par en el otro extremo de la conexin, antes que su par deje de transmitir y espera por un reconocimiento. Suma de verificacin Campo de 16 bits que verifica la integridad d ela cabecera TCP. Puntero urgente utilizado nicamente cuando el flag URG est en uno. Opciones Diseado para contar con caractersticas extras no cubiertas en la cabecera estndar.

7. Cabecera UDP
EL protocolo UDP es utilizado por aplicaciones y servicios que trabajan con sesiones no orientas a la conexin pero cuyo tamao 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 slo tiene los campos puerto origen y destino, longitud de la cabecera y suma de verificacin.

Fig. 11. Cabecera UDP

8. Saludos de tres vas (Handshake)


Es el proceso de establecimiento de una sesin entre dos hosts a nivel de la capa de trasporte. Se describe en tres pasos:

CIBERTEC

CARRERAS PROFESIONALES

42

Paso 1 Enva un paquete de sincronizacin (SYN) y un nmero de secuencia inicial (ISN). La mquina cliente (Host A) desea establecer una conexin hacia el servidor (Host B). La mquina cliente (Host A) enva un paquete hacia la maquina servidor (Host B) con el bit de sincronizacin (SYN), establece el anuncio de una nueva conexin y un nmero de secuencia inicial (ISN) que permitirn rastrear los paquetes enviados a cualquier mquina. (Ver Fig. 12)

Fig. 12. Paso 2 Permite que la mquina remota responda con un reconocimiento (ACK). La mquina servidor (Host B) responde al pedido enviando un paquete con el bit de sincronizacin (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; tambin, el nmero de secuencia inicial ms uno (ISN+1). Esto indica que el paquete remoto se recibi correctamente como parte de el reconocimiento y se aguarda la prxima transmisin. (Ver Fig. 13)

Fig. 13. Paso 3 Completa la negociacin para enviar un final de reconocimiento hacia la maquina remota. En este punto, la mquina cliente (Host A) enva la siguiente parte final del reconocimiento (ACK) y el numero de secuencia para indicar una recepcin satisfactoria y se establece la conexin. (Ver Fig. 14).

Fig. 14. A continuacin se muestra la captura de paquetes con el programa Wireshark (sniffer). Se puede observar el saludo de tres va de una sesin TCP.

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

43

Fig. 15. Handshake

9. Seguridad TCP/IP
En Linux, muchas opciones del kernel estn relacionados con la seguridad de la red, como descartar paquetes que ingresan a travs 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

CIBERTEC

CARRERAS PROFESIONALES

44

Figura 16. Comando sysctl Despus de cualquier cambio en el archivo /etc/sysctl.conf, los parmetros del kernel sern modificados en tiempo real al ejecutar el siguiente comando: Sysctl p /etc/sysctl.conf A continuacin, se explica el procedimiento a seguir para habilitar o deshabilitar parmetros 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 tcnicas ocultas que le permitan interferir el envo de los datos que se remiten bajo la forma de paquetes inofensivos. No responder hacia solicitudes de comandos ping que son enviados por la mayora 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:

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

45

Sysctl w net.ipv4.icmp_echo_ignore_all=1

Rechazar a responder a solicitudes broadcast Cundo un paquete es enviado a una direccin IP de transmisin o difusin de mensajes (broadcast), como por ejemplo la direccin IP 192.168.1.255 de una mquina en la red local, este paquete es entregado a todas las mquinas de esta red. Entonces, todas las mquinas de la red responden a este pedido de mensaje ICMP (echo request) y el resultado es que se producir una congestin severa de la red o ataques de Denegacin 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, segn RFC 1122, la mquina destino debe responder por la misma ruta Si un atacante puede encaminar el origen de un paquete dirigido a tu red, entonces l sera capaz de interceptar las contestaciones y engaar 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 mquina con dos interfaces de red (lo y eth0) que estn 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 Proteccin de Cookie TCP SYN Un "Ataque SYN" es una negacin de servicio (DoS) que consume todos los recursos en su mquina, forzando a reiniciar tu sistema. Las negaciones de ataques de servicio son ataques que incapacitan a tu servidor debido a un alto volumen de negociacin consumiendo recursos del sistema, de tal modo que el servidor no pueda responder a un pedido legtimo.
net.ipv4.tcp_syncoockies=1

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

CIBERTEC

CARRERAS PROFESIONALES

46

Esta opcin posibilita a un atacante alterar la tabla de rutas de su mquina 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 mquina regular, se establece por defecto yes para este parmetro en caso de ser aceptado y no debe ser cuando se hace configuracin de enrutamientos. Donde 1 significa yes, y 0 significa no. Habilitar la Proteccin contra malos mensajes de error Esta opcin 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 proteccin de spoofing El spoofing consiste en modificar la direccin origen de un paquete de forma que la mquina que recibe el paquete crea que proviene de una mquina 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 parmetro previene de ataques spoofing contra sus redes internas, pero contra sus direcciones externas se pueden presentar todava ataques spoofing.

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

47

Autoevaluacin
1. Qu puerto es usado en las consultas DNS? (a) 110 (b) 143 (c) 53 (d) 21 (e) 58 2. Cules de las siguientes oraciones son verdaderas? (Seleccione 2 opciones)

Para establecer una sesin a nivel de UDP, se efecta 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 mscara de red de la direccin IP. Las opciones de seguridad TCP/IP se pueden defnir en el archivo /etc/sysctl.conf.

3. Por qu es importante mantener una sesin orientada a la conexin?

4. Describa el saludo de tres vas.

CIBERTEC

CARRERAS PROFESIONALES

48

4
SEMANA

Stateful packet inspection firewall I

TEMA
Describir el uso de Netfilter.

OBJETIVOS ESPECFICOS

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

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

49

Netfilter Netfilter (http://www.netfilter.or) es la ltima generacin de las utilidades para filtrados de paquetes (Packet Filtering), incluidos en el Kernel de Linux. La primera generacin fue un port de IPFW (BSD), por Alan Cox, cerca de 1994. Con la aparicin de la versin 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 aparicin del Kernel 2.2, se introdujo la segunda generacin, IPChains, una combinacin de mdulos y programas de usuario para el control de flujo de paquetes. Cerca del 99, al aparecer la versin 2.4, gran parte de la API de IPChains fue reescrita dando origen a la cuarta generacin, Iptables. El principal responsable es Paul "Rusty" Russell, quien desarrollo Netfilter cuando trabajaba en Watchguard (http://www.watchguard.com). Es adems 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 mdulos y un software para controlar las reglas. De esta manera, permite que un modulo de kernel, ms 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) Observacin (del Trafico actual)

1.1. Funcionamiento En IPTables, existen 4 tipos de tablas (ver Fig. 1): raw, filter, nat y mangle (manipulacin). 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 ms limpio al momento de manipularlos. Existe tambin la tabla de tipo "transversal", que es el etiquetado y manipulado de paquetes (entendido comnmente 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

CIBERTEC

CARRERAS PROFESIONALES

50

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

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

51

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 utilizacin 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. Adems, los paquetes que pasen por la cadena OUTPUT necesariamente pasan por POSTROUTING.

1.1.2. Tablas Una tabla es una indicacin 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.

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

CIBERTEC

CARRERAS PROFESIONALES

52

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 conexin a cierto tipo de interfaces desde ciertos hosts. Una de las ventajas principales es que esta extensin es rpida y eficiente.

Nat
La tabla nat es usada para paquetes que se deben reenviar (entre interfaces), adems de modificar o "traducir" su comportamiento. NAT significa Network Address Translation (Traduccin 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 tpicos 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 travs de esta tabla, es posible alterar el paquete (y los pertenecientes a la misma conexin) 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.

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

53

Coincidencias (Matches)
Una coincidencia (match) ocurre cuando un paquete corresponde al indicado dentro de alguna de las cadenas. Puede ser a travs del protocolo (TCP), algn puerto en particular (22), un usuario propietario del paquete (OWNER), el estado de la transaccin (INVALID), por ejemplo. O la combinacin de todos ellos, en particular.

Acciones (Targets)
Se indican como el destino final del proceso de un paquete, o de una transaccin. 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 travs de ksyslogd (la utilidad de kernel para logging) que una coincidencia fue exitosa (LOG). De por s, corresponde solo una accin por coincidencia, aunque con un poco de prctica, es posible agregar ms de una.

1.1.4. Entendiendo las Reglas del Juego Como se indic anteriormente, para el uso de Netfilter, es necesario utilizar, adems de los mdulos del kernel, la utilidad IPTables. A travs del comando iptables, es posible insertar/eliminar/modificar reglas dentro de Netfilter. Algunas de las caractersticas de esta herramienta son:

Permite el uso de distintas tablas de IP. Mientras tanto, slo 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 mdulos o IPtables para agregar una extensin adicional.

Nativamente, puede manejar IPv4 e IPv6 usando la misma librera y el mismo cdigo.

CIBERTEC

CARRERAS PROFESIONALES

54

1.2. IPTables
Iptables -t [tabla] -[operacin] [cadena] [descripcin de la coincidencia] -j [accin]

Un comando bsico 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 operacin (insertar/modificar/eliminar/etc.) Una descripcin 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 bsicas Algunas de las operaciones bsicas sobre las cadenas (existen ms) 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 bsicas Para indicar a Netfilter qu hacer con los paquetes de una transaccin, se debe crear una coincidencia, lo ms precisa posible. La idea es que la coincidencia sea inequvoca, tanto como para quien cre la regla (usuario) como para el kernel. Algunas coincidencias bsicas son

-p [protocolo]: indica qu protocolo debe realizarse la comprobacion. Algunos de los valores son tcp, udp, icmp o

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

55

all. Tambien puede ser un nmero, o alguno de los indicados en /etc/protocols. -s [ip/mascara]: indica la direccin IP del origen de la transaccin. Puede indicarse tambin de la forma IP/mscara para decirle a Netfilter que es un grupo de hosts. -d [ip/mascara]: indica la direccin IP destino de la transaccin. -i [interfaz]: indica la interfaz de entrada desde donde se recibi la transaccin o los paquetes. (Nota: solo usado por las cadenas INPUT, FORWARD y PREROUTING) -o [interfaz] : indica la interfaz de salida de la transaccin (Nota: slo usada por OUTPUT, FORWARD y POSTROUTING) --sport: Indica el puerto de origen de la transaccin. --dport: Indica el puerto de destino de la transaccin.

Nota: --sport y --dport son usados cuando se indica que el protocolo es tcp o udp solamente)

1.2.3. Acciones bsicas Algunas acciones son comunes de todas las cadenas. Otras son especficas. Algunas acciones bsicas son:

ACCEPT: acepta el paquete/transaccin. DROP: rechaza el paquete/transaccin REJECT: rechaza el paquete/transaccin. A diferencia de DROP, notifica al emisor que el paquete/transaccin 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 ms fcil de utilizar. Son algo bsicos, pero servirn de apoyo para el prximo 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 conexin al puerto 25, protocolo tcp, de la interfaz eth1


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

CIBERTEC

CARRERAS PROFESIONALES

56

Rechazar (REJECT) la conexin 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 trfico desde la eth0 a la eth1 (FORWARD)


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

Denegar el trfico desde la eth0 a la eth1 del protocolo tcp


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

Le ests 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 direccin IP 10.0.0.1 puede hacer ping al equipo con direccin 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. Poltica 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:

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

57

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 DROP icmp -- 10.0.0.1 request

destination anywhere

icmp echo-

Chain FORWARD (policy ACCEPT) Target prot opt source destination Chain OUTPUT (policy ACCEPT) Target prot opt source Debian: ~# destination

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

CIBERTEC

CARRERAS PROFESIONALES

58

Chain INPUT (policy ACCEPT) Target prot opt source Chain FORWARD (policy ACCEPT) Target prot opt source Chain OUTPUT (policy ACCEPT) Target prot opt source DROP icmp -- anywhere reply Centos: ~#

destination destination destination 10.0.0.1

icmp echo-

2.2. Politica predeterminada DENEGAR TODO Para permitir que la respuesta al comando ping ingrese al equipo, podemos realizar lo siguiente:
Centos: Centos: Centos: Centos: Centos: Centos: ~# ~# ~# ~# ~# ~# iptables iptables iptables iptables iptables iptables -P -P -A -A -A -A INPUT DROP OUTPUT DROP INPUT -i lo -j ACCEPT OUTPUT -o lo -j ACCEPT INPUT -p icmp --icmp-type 8 -j ACCEPT OUTPUT -p icmp --icmp-type 0 -j ACCEPT

3. Filtrado de paquetes salientes/entrantes


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

Fig. 4. Comando ping 3.1. Poltica 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

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

59

En el equipo 10.0.0.2, ejecutamos:


Centos: ~# iptables -j DROP Centos: ~# iptables Chain INPUT (policy Target prot opt -A OUTPUT -p icmp --icmp-type 8 -d 10.0.0.1 -L ACCEPT) source

destination destination

Chain FORWARD (policy ACCEPT) Target prot opt source

Chain OUTPUT (policy ACCEPT) Target prot opt source destination DROP icmp -- anywhere 10.0.0.1 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

icmp echo-

--- 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 echoreply 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: ~#

CIBERTEC

CARRERAS PROFESIONALES

60

3.2. Politica predeterminada DENEGAR TODO Para permitir que la peticion del comando ping salga del equipo, podemos realizar lo siguiente:
Centos: Centos: Centos: Centos: Centos: Centos: ~# ~# ~# ~# ~# ~# iptables iptables iptables iptables iptables iptables -P -P -A -A -A -A INPUT DROP OUTPUT DROP INPUT -i lo -j ACCEPT OUTPUT -o lo -j ACCEPT OUTPUT -p icmp --icmp-type 8 -j ACCEPT INPUT -p icmp --icmp-type 0 -j ACCEPT

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

61

Autoevaluacin
1. Cules 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 poltica global es aceptar todo lo que no se deniega explcitamente. 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) (b) (c) (d) (e) iptables -A INPUT -s 172.16.0.0/27 -d 200.60.172.252 -j DROP iptables -A INPUT -s 200.60.172.252 -d 172.16.0.0/24 -j DROP iptables -A INPUT -s 172.16.0.0/16 -d 200.60.172.252 -j DROP iptables -A OUTPUT -s 172.16.0.0/24 -d 200.60.172.252 -j DROP 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?

CIBERTEC

CARRERAS PROFESIONALES

62

5
SEMANA

Stateful packet inspection firewall II


TEMA
Describir el uso de Netfilter.

OBJETIVOS ESPECFICOS
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.

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

63

Filtrado de paquetes reenviados

1.1. Permitir la salida de la LAN a Internet Poltica predeterminada: ACEPTAR TODO

Fig. 1. Red

Verificamos que las estaciones de trabajo estn 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 Iface 10.0.0.0 0.0.0.0 255.0.0.0 eth0 0.0.0.0 10.0.0.1 0.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

Flags Metric Ref U UG 0 0 0 0

Use 0 0

CIBERTEC

CARRERAS PROFESIONALES

64

#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 parmetros de red estn correctamente configurados, pero al realizar una consulta DNS no hay respuesta, esto debido a que el firewall no est configurado. Configuracin 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 Chain OUTPUT (policy ACCEPT) Target prot opt source destination [root@FW ~]#

to: 192.168.1.3

Despus 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 ---

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

65

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

Poltica predeterminada: ACEPTAR TODO Permitir que los paquetes se reenven al Servidor HTTP de la LAN.

Fig. 2. Red Si no se configura el Firewall los paquetes entrantes desde Internet no podrn 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 Chain POSTROUTING (policy ACCEPT) Target prot opt source destination

tcp dpt: http to: 10.0.0.2

CIBERTEC

CARRERAS PROFESIONALES

66

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

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

67

Fig. 4. Acceso permitido 1.3. Permitir el ingreso desde Internet hacia la LAN Poltica predeterminada: DENEGAR TODO Creacin de script bsico:

[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

CIBERTEC

CARRERAS PROFESIONALES

68

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 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 ~]#

LOG level warning

Por el momento, estn 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

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

69

Chain INPUT (policy ACCEPT) Target prot opt source destination Chain FORWARD (policy DROP) Target prot opt source destination LOG all -- anywhere anywhere ACCEPT all -- anywhere anywhere ACCEPT tcp -- anywhere anywhere ACCEPT tcp -- anywhere anywhere ACCEPT udp -- anywhere anywhere ACCEPT udp -- anywhere anywhere

LOG level warning tcp dpt:domain tcp spt:domain udp dpt:domain 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

CIBERTEC

CARRERAS PROFESIONALES

70

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 ACCEPT all -- anywhere anywhere ACCEPT tcp -- anywhere anywhere ACCEPT tcp -- anywhere anywhere ACCEPT udp -- anywhere anywhere ACCEPT udp -- anywhere anywhere ACCEPT tcp -- anywhere anywhere ACCEPT tcp -- anywhere anywhere 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

LOG level warning tcp dpt:domain tcp spt:domain udp dpt:domain udp spt:domain tcp dpt:http tcp spt:http

Permitir al acceso al Servidor HTTP

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

71

[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 ACCEPT all -- anywhere anywhere ACCEPT tcp -- anywhere anywhere ACCEPT tcp -- anywhere anywhere ACCEPT udp -- anywhere anywhere ACCEPT udp -- anywhere anywhere ACCEPT tcp -- anywhere anywhere ACCEPT tcp -- anywhere anywhere ACCEPT tcp -- anywhere 10.0.0.2 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 Chain POSTROUTING (policy ACCEPT) target prot opt source destination SNAT all -- 10.0.0.0/8 anywhere Chain OUTPUT (policy ACCEPT) target prot opt source destination [root@FW ~]# Permitir sesiones remotas en el Servidor HTTP

LOG level warning tcp dpt:domain tcp spt:domain udp dpt:domain udp spt:domain tcp dpt:http tcp spt:http tcp dpt:http

tcp dpt:http to:10.0.0.2

to:192.168.1.3

[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)

CIBERTEC

CARRERAS PROFESIONALES

72

target prot opt source LOG all -- anywhere ACCEPT tcp -- anywhere ACCEPT udp -- anywhere ACCEPT tcp -- anywhere ACCEPT udp -- anywhere ACCEPT tcp -- anywhere ACCEPT tcp -- anywhere ACCEPT tcp -- anywhere ACCEPT tcp -- 10.0.0.2 ACCEPT tcp -- anywhere ACCEPT tcp -- 10.0.0.2

destination anywhere anywhere anywhere anywhere anywhere anywhere anywhere 10.0.0.2 anywhere 10.0.0.2 anywhere

LOG level warning tcp dpt:domain udp dpt:domain tcp spt:domain udp spt:domain tcp dpt:http tcp spt:http tcp dpt:http tcp spt:http tcp dpt:ssh 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 DNAT tcp -- anywhere 192.168.1.10 Chain POSTROUTING (policy ACCEPT) target prot opt source destination SNAT all -- 10.0.0.0/8 anywhere

tcp dpt:http to:10.0.0.2 tcp dpt:ssh to:10.0.0.2

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 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0

LOG flags 0 level 4 tcp dpt:53 udp dpt:53 tcp spt:53 udp spt:53 tcp dpt:80

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

73

ACCEPT ACCEPT ACCEPT ACCEPT ACCEPT

tcp tcp tcp tcp tcp

------

0.0.0.0/0 0.0.0.0/0 10.0.0.2 0.0.0.0/0 10.0.0.2

0.0.0.0/0 10.0.0.2 0.0.0.0/0 10.0.0.2 0.0.0.0/0

tcp spt:80 tcp dpt:80 tcp spt:80 tcp dpt:22 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 DNAT tcp -- 0.0.0.0/0 192.168.1.10 Chain POSTROUTING (policy ACCEPT) target prot opt source destination SNAT all -- 10.0.0.0/8 0.0.0.0/0 Chain OUTPUT (policy ACCEPT) target prot opt source destination [root@FW ~]#

tcp dpt:80 to:10.0.0.2 tcp dpt:22 to:10.0.0.2

to:192.168.1.3

CIBERTEC

CARRERAS PROFESIONALES

74

Autoevaluacin
1. Cul 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 contina hacia su destino. Al paquete se le deniega el acceso y no enva nada al equipo que envi el paquete. Al paquete se le deniega el acceso y enva un mensaje de error al equipo que envi el paquete. El paquete es reenviado a otro host. El paquete crea una nueva conexin.

(b)

(c)

(d) (e)

3. Cul 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) (b) (c) (d) (e) SNAT REDIRECT MASQUERADE DNAT NAT

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

75

6
SEMANA

Stateful packet inspection firewall III

TEMA
Describir el uso de Netfilter.

OBJETIVOS ESPECFICOS
Comprender el funcionamiento del filtrado de paquetes usando estados de conexin.

CONTENIDOS
Estados de conexin. Permitiendo paquetes entrantes/salientes. Permitiendo paquetes salientes/entrantes. Permitiendo paquetes reenviados.

CIBERTEC

CARRERAS PROFESIONALES

76

ESTADOS DE CONEXIN IPTables los usa en base a cmo trabaja el protocolo TCP y permite definir, de forma ms especifica, reglas en base a si una conexin es nueva o si una conexin ha generado otra. Esto solo es aplicable al protocolo TCP, ya que este funciona definiendo 3 vas durante una conexin, tambin llamado Threeway 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 conexin se considera "relacionada" cuando esta ligada a otra conexin ya "establecida". Established Ha visto trfico en ambas direcciones y por tanto admitir continuamente los paquetes de ese flujo cuando el sistema que inici la conexin recibe el SYN-ACK (se establece la conexin entre ambos sistemas). Invalid implica que el paquete no puede ser identificado o que no tiene ningn estado.

Fig. 1. Estados de conexin

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

77

1. Permitiendo paquetes entrantes/salientes


Poltica 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 ACCEPT icmp -- 10.0.0.1 request Chain FORWARD (policy DROP) target prot opt source Chain OUTPUT (policy DROP) target prot opt source ACCEPT all -- anywhere debian:~#

destination anywhere state NEW icmp echo-

destination destination anywhere state ESTABLISHED

CIBERTEC

CARRERAS PROFESIONALES

78

2. Permitiendo paquetes salientes/entrantes


Poltica 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 Chain OUTPUT (policy DROP) target prot opt source ACCEPT icmp -- anywhere request centos:~# destination destination 10.0.0.1 state NEW icmp echo-

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

79

3. Permitiendo paquetes reenviados

Fig. 4. Red Script que usa el estado de conexin


~]# cat fw1.sh -F -X -Z -t nat -F -P INPUT ACCEPT -P OUTPUT ACCEPT -P FORWARD DROP ip_tables iptable_nat ip_conntrack ip_conntrack_ftp ip_conntrack_netbios_ns ip_nat_ftp ipt_LOG ipt_MARK ipt_MASQUERADE ipt_REDIRECT ipt_TOS ipt_REJECT ipt_limit ipt_mac ipt_state ipt_multiport ipt_tos ipt_mark x_iptable iptable_filter

[root@FW iptables iptables iptables iptables iptables iptables iptables modprobe modprobe modprobe modprobe modprobe modprobe modprobe modprobe modprobe modprobe modprobe modprobe modprobe modprobe modprobe modprobe modprobe modprobe modprobe modprobe

iptables -A FORWARD -j LOG echo 1 > /proc/sys/net/ipv4/ip_forward

CIBERTEC

CARRERAS PROFESIONALES

80

iptables -t nat -A POSTROUTING -s 10.0.0.0/8 -j SNAT --tosource 192.168.1.3 iptables -A FORWARD m state 53 -j ACCEPT iptables -A FORWARD m state 53 -j ACCEPT iptables -A FORWARD m state 80 -j ACCEPT iptables -A FORWARD m state 80 -d 10.0.0.2 -j ACCEPT iptables -A FORWARD m state 10.0.0.2 -j ACCEPT --state NEW -i eth1 -p tcp --dport --state NEW -i eth1 -p udp --dport --state NEW -i eth1 -p tcp --dport --state NEW -i eth0 -p tcp --dport --state NEW -p tcp --dport 22 -d

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 ~]#

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

81

Autoevaluacin
1. Cules son los posibles estados de conexin de los paquetes? (a) (b) (c) (d) Established, New, Related y Reject Invalid, Related, Redirect y Established New, Established, Related e Invalid Invalid, Replace, New y Established

2. El estado NEW especifica: 3. Que el paquete no est asociados a ninguna conexin conocida y puede estar defectuoso. (a) (b) (c) Que el paquete se asocia a una conexin existente. Que el paquete crea una nueva conexin. Que el paquete crea una nueva conexin, pero asociada a una conexin existente.

4. La tabla nat ejecuta: (a) (b) (c) (d) Operaciones de traduccin de direcciones de red. Operaciones de bloqueo o aceptacin de paquetes. Modificaciones en los campos de las cabeceras de los paquetes. Altera los paquetes que ingresan al sistema.

CIBERTEC

CARRERAS PROFESIONALES

82

9
SEMANA

Proxy application firewall I

TEMA
Describir el uso del Servidor Proxy Squid.

OBJETIVOS ESPECFICOS

Comprender el funcionamiento del Servidor Proxy.

CONTENIDOS

Introduccin. Squid.

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

83

INTRODUCCIN Un servidor Proxy es un software que realiza tareas de servidor intermediario. El caso ms comn es utilizarlo para compartir Internet en mbitos donde se posee una nica conexin 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 travs 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 desempeo 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 distribucin para realizar la tarea de un servidor Proxy con prestaciones muy profesionales. Suele acompaar a las distribuciones ms habituales, aunque tambin puede obtenerse de su sitio oficial (http://www.squid-cache.org/). Actualmente, la versin 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

CIBERTEC

CARRERAS PROFESIONALES

84

de SSL, cach transparente, cach de consultas DNS y otras muchas ms como filtracin 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, IPs, dominios, etc. Instalacin de Squid: yum install squid

2.1. Funcionamiento Squid realiza el almacenamiento de objetos utilizando diferentes algoritmos: LRU (poltica 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 ms recientemente. LFUDA: Los objetos ms solicitados permanecen en el cach sin importar su tamao, de modo que un objeto grande que se solicite con mayor frecuencia impedir que se pueda hacer cach de objetos pequeos que se soliciten con menor frecuencia. GDSF: Optimiza la eficiencia por objeto, manteniendo en el cach los objetos pequeos ms frecuentemente solicitados; descarta del cach objetos grandes que sean solicitado con frecuencia.

2.2. Configuracin del servidor La configuracin 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 configuracin bsica 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 aadir la siguiente lnea al fichero de configuracin:
cache_mem 8 MB

Tamao de la memoria cach Aqu se fija el directorio y el espacio que se utilizar del disco duro para almacenar las pginas. Por defecto, SQUID usara 100 MB, y lo almacenar por defecto en 16 subdirectorios de primer nivel y en 256 subdirectorios de segundo nivel.

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

85

cache_dir ufs /var/cache/squid 100 16 256

Tiempo de vida de la cach Podemos configurar el tiempo que los objetos permanecern 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 mquinas en particular. A cada acl se le asignar una regla de control de acceso (acr) que funcionar bloqueando o permitiendo el acceso a travs de SQUID. Comnmente, 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

Adems de direcciones IPs, 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 tambin los subdominios, se debe utilizar el punto (.) como comodn 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 dems, debe tener obligatoriamente la etiqueta all.

CIBERTEC

CARRERAS PROFESIONALES

86

Coincidencia en las acl Para que se produzca una coincidencia (match) en una acl, se utiliza la funcin 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 direccin ip, y la acl ser considerada verdadera. Por esta razn, se recomienda incluir las opciones ms comunes al comienzo, para acelerar el proceso de evaluacin. Coincidencias en las acr Para que una acr coincida, se utiliza la funcin AND. Para el ejemplo:
http_access allow educativas safeport

Debe accederse a sitios .edu.pe al puerto 443 para que sea permitido el acceso. Parmetros extras Otro smbolo reservado consiste en la utilizacin del signo de admiracin de cierre: !. Se utiliza como negacin 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. Configuracin de los clientes

2.3.1. Navegador konqueror Desde un equipo cliente (Debian Linux): Ejecute el Konqueror.

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

87

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

CIBERTEC

CARRERAS PROFESIONALES

88

Fig. 3. Configuracin de Konqueror

Haga clic en la pestaa Proxy. Haga clic en Especificar manualmente la configuracin del proxy. Haga clic en el botn Configuracin. (Ver Fig. 4).

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

89

Fig. 4. Configuracin del Proxy Ingrese la direccin IP del servidor Proxy y el nmero del puerto. Haga clic en el botn Aceptar. Haga clic en el botn Aplicar. Haga clic en el botn 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.

CIBERTEC

CARRERAS PROFESIONALES

90

Fig. 5. LAN Establecer una lista de control de acceso para la red local: o Definir la IP correspondiente a la red y la mscara 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

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

91

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 mscara 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 Tambin pueden definirse reglas valindose de la expresin !, la cual significa no:


http_access allow LAN !denegados http_access deny all

2.4.5. Caso 4 Restringir al acceso a ciertas pginas 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:

CIBERTEC

CARRERAS PROFESIONALES

92

o Reglas que establecen acceso restringido a Squid:


http_access deny webdenegadas http_access allow LAN http_access deny all

o Tambin pueden definirse reglas valindose de la expresin !, 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 extensin. 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 pginas web:
acl descargas1 urlpath_regex etc/squid/descargas1"

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

93

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 Tambin pueden definirse reglas valindose de la expresin !, la cual significa no:


http_access allow LAN !descargas1 http_access deny all

2.5. Verificacin de logs SQUID almacena en el directorio /var/log/squid informacin sobre los accesos, dilogos con otros servidores SQUID, etc. Existen varios archivos de logs. El que nos brinda informacin 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 cunta gente usa el Proxy, qu pginas son las ms 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

CIBERTEC

CARRERAS PROFESIONALES

94

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 pginas (objetos) se aaden, cules se quitan.

El anlisis de los logs, por lo general, se realiza con herramientas de software independientes de SQUID. Dos de las ms utilizadas son SARG (Squid Analysis Report Grpahics) y Webalizer, las mismas generan reportes grficos con estadsticas en un archivo html. Son una excelente herramienta para llevar un control detallado sobre la utilizacin de la navegacin web.

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

95

Autoevaluacin
1. El archivo cache.log registra: (a) (b) (c) (d) El acceso de los clientes al cach de squid Informacin del funcionamiento del cach de squid Los objetos agregados o eliminados en el cach de squid Todos los eventos del sistema

2. Defina una lista de control de acceso que defina toda la red 192.168.1.32/27 (a) (b) (c) (d) acl lan src 192.168.1.32/255.255.255.224 acl lan urlpath_regex -i 192.168.1.32/255.255.255.224 acl lan src 192.168.1.32/255.255.255.0 acl lan url_regex 192.168.1.32/255.255.255.224

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


FTP POP3 http HTTPS SMTP

CIBERTEC

CARRERAS PROFESIONALES

96

10
SEMANA

Proxy application firewall II


TEMA
Descipcin del uso del Servidor Proxy Squid.

OBJETIVOS ESPECFICOS

Comprender el funcionamiento del Servidor Proxy. Configurar un Proxy Transparente.

CONTENIDOS

Configuracin Proxy Transparente Squid Anlisis Report Generator (Sarg)

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

97

CONFIGURACIN 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 pestaa Conexiones. Haga clic en el botn Configuracin 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 botn Aceptar. Haga clic en el botn Aceptar.

CIBERTEC

CARRERAS PROFESIONALES

98

Fig. 2. Configuracin 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

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

99

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-shockwaveflash 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. Configuracin 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:

CIBERTEC

CARRERAS PROFESIONALES

100

Msn Messenger live.com

Definir RCL:
http_access http_access http_access http_access http_access http_access deny contenido deny msn deny msn1 deny msn2 allow LAN deny all

2.1.4. Probacin de la restriccin 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 espaol En forma predeterminada, los mensajes de error se muestran en ingls, pero podemos configurar Squid para que se muestren en espaol u otro idioma. Cada distribucin ubica los directorios de idiomas en distintos lugares, por lo que debemos determinar dicha ubicacin:

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

101

[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 espaol:
#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: . Iniciando squid: . [root@CentOS ~]# [ [ OK OK ] ]

Desde un equipo cliente probar:

CIBERTEC

CARRERAS PROFESIONALES

102

Fig. 4. Mensajes de error en espaol

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

103

2. Proxy transparente
2.1. Configuracin del servidor Squid Modifique en el archivo /etc/squid/squid.conf el parmetro http_port:
http_port 3128 transparent

Para versiones antiguas del Squid modifique las siguientes lneas:


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. Configuracin 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

CIBERTEC

CARRERAS PROFESIONALES

104

Chain POSTROUTING (policy ACCEPT) target prot opt source MASQUERADE all -- 10.0.0.0/8

destination anywhere

Chain OUTPUT (policy ACCEPT) target prot opt source destination [root@CentOS ~]# [root@CentOS ~]# /etc/init.d/squid restart Parando squid: . [ Iniciando squid: . [ [root@CentOS ~]#

OK OK

] ]

NOTA: Tambin se podra 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 SNAT all -- anywhere to:192.168.1.3 Chain OUTPUT (policy ACCEPT) target prot opt source [root@localhost squid]# destination anywhere

destination

2.3. Configuracin de las estaciones de trabajo Defina como gateway predeterminado la direccin IP del servidor Proxy Transparente.

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

105

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 "dnde" estn 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 reports/index.html informes aqu: http://sarg.sourceforge.net/squid-

Instalacin de Sarg: yum install sarg

3.1. Configuracin El archivo de configuracin es /etc/sarg/sarg.conf, modifiquemos las siguientes lneas:


language Spanish resolve_ip yes user_ip yes date_format e use_comma no topsites_num 200

(para definir el idioma Espaol) (para que muestre nombres en vez de IPs) (para que liste por IP y no por UID de Squid) (para usar el formato de fecha europeo y no el americano) (para usar el punto como separador de miles) (para aumentar el nmero de sitios del topsites a (Directorio donde se guardan los reportes)

200)
output_dir /var/www/html/squid-reports

3.2. Ejecucin Al ejecutarse el comando sarg se crean las pginas html estticas con los accesos del da. Se configura /etc/crontab para que se ejecute en forma peridica, agregue la siguiente lnea:
40 23 * * * /usr/bin/sarg > /dev/null

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

CIBERTEC

CARRERAS PROFESIONALES

106

Fig. 6. Reportes

Fig. 7. Reportes del da

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

107

Fig. 8. Reportes de un cliente

CIBERTEC

CARRERAS PROFESIONALES

108

Autoevaluacin
1. Cuando el servidor Squid esta configurado como Proxy transparente: (a) Las peticiones de los clientes HTTP son redireccionadas al puerto 8082. Hay que configurar cada cliente HTTP. No es necesario configurar cada cliente HTTP. No guarda las pginas web que son accedidas por lo clientes HTTP.

(b) (c) (d)

2. Cuando el servidor Squid esta configurado como Proxy transparente: (a) Las peticiones de los clientes HTTP son redireccionadas al puerto 8082. Hay que configurar cada cliente HTTP. No es necesario configurar los equipos cliente. En los equipos cliente, asignamos como puerta de enlace predeterminado la direccin IP del servidor Squid.

(b) (c) (d)

3. Qu es Sarg?

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

109

11
SEMANA

Intrusion detection systems I

TEMA
Describir el uso del IDS.

OBJETIVOS ESPECFICOS
Comprender el funcionamiento del IDS.

CONTENIDOS
Introduccin. Snort.

CIBERTEC

CARRERAS PROFESIONALES

110

INTRODUCCIN Un IDS o Sistema de Deteccin de Intrusiones es una herramienta de seguridad que intenta detectar o monitorizar los eventos ocurridos en un determinado sistema informtico o red informtica 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 prevencin y de alerta anticipada ante cualquier actividad sospechosa. No estn diseados para detener un ataque, aunque s pueden generar ciertos tipos de respuesta ante stos. Los IDS aumentan la seguridad de nuestro sistema, vigilan el trfico de nuestra red, examinan los paquetes analizndolos en busca de datos sospechosos y detectan las primeras fases de cualquier ataque como pueden ser el anlisis 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 precisin, determinando de esta manera qu procesos y usuarios se involucran en una determinada accin. Recaban informacin del sistema como ficheros, logs, recursos, etc. para su posterior anlisis 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 informtica. 1.1.2. NIDS (Net IDS) Protege un sistema basado en red. Actan sobre una red capturando y analizando paquetes de red, es decir, son sniffers del trfico de red. Luego analizan los paquetes capturados, buscando patrones que supongan algn tipo de ataque. Bien ubicados, pueden analizar grandes redes y su impacto en el trfico suele ser pequeo. Actan mediante la utilizacin 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 trfico de red, normalmente, en tiempo real. No slo

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

111

trabajan a nivel TCP/IP, tambin lo pueden hacer a nivel de aplicacin. Otros tipos son los hbridos. 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 acta sobre el ataque o atacante. Activos Generan algn tipo de respuesta sobre el sistema atacante o fuente de ataque, como cerrar la conexin o enviar algn tipo de respuesta predefinida en nuestra configuracin.

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 anomalas 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 trfico de red 5. Dispositivo generador de informes y alarmas. En algunos casos con la sofisticacin suficiente como para enviar alertas va mail, o SMS. Esto es a modo general. Cada IDS implementa la arquitectura de manera diferente. 1.3. Dnde colocar el IDS Una actitud paranoica por nuestra parte nos podra llevar a instalar un IDS en cada host en cada tramo de red. Esto ltimo sera un tanto lgico cuando se trata de grandes redes, no es nuestro caso ahora. Lo lgico sera instalar el IDS en un dispositivo por donde pase todo el trfico 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 trfico. Otro problema para un IDS son las redes con velocidades de trfico muy altas en las cuales es difcil procesar todos los paquetes.

CIBERTEC

CARRERAS PROFESIONALES

112

1.3.2. Posicin del IDS Si colocamos el IDS antes de los cortafuegos, capturaremos todo el trfico de entrada y salida de nuestra red. La posibilidad de falsas alarmas es grande. La colocacin detrs de los cortafuegos monitorizar todo el trfico 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 detrs del cortafuegos, para obtener informacin 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 domsticos, podemos colocar el IDS en la misma mquina que los cortafuegos. En este caso, actan en paralelo, es decir, el cortafuegos detecta los paquetes y el IDS los analiza.

2. SNORT
Snort es un IDS o Sistema de deteccin de intrusiones basado en red (NIDS). Implementa un motor de deteccin de ataques y barrido de puertos que permite registrar, alertar y responder ante cualquier anomala previamente definida, como patrones que corresponden a ataques, barridos, intentos aprovechar alguna vulnerabilidad, anlisis 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 ms 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 travs de los distintos boletines de seguridad. Este IDS implementa un lenguaje de creacin de reglas flexibles, potentes y sencillas. Durante su instalacin, 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 trfico), registro de paquetes (permite guardar en un archivo los logs para su posterior anlisis, un anlisis offline) o como un IDS normal (en este caso NIDS).

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

113

La colocacin de Snort en nuestra red puede realizarse segn el trfico que quiere vigilarse: paquetes entrantes, paquetes salientes, dentro del firewall, fuera del firewall y, en realidad, prcticamente donde queramos. Una caracterstica muy importante e implementada desde hace pocas versiones es FlexResp. Permite, dada una conexin que emita trfico malicioso, darla de baja, hacerle un DROP mediante el envo de un paquete con el flag RST activa, con lo cual cumplira funciones de firewall, cortando las conexiones que cumplan ciertas reglas predefinidas. No slo corta las conexiones, ya que puede realizar otras muchas acciones. 2.1. Instalacin de Snort Desde la pgina 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)

CIBERTEC

CARRERAS PROFESIONALES

114

Fig. 2. Instalacin de Snort 2.2. Instalacin de las Reglas de Snort Antes de poder descargas las reglas de Snort, se debe registrar el usuario.

Fig. 3. Descarga de las Reglas

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

115

Para descargas las reglas de Snort, vaya al siguiente enlace: www.snort.org/pub-bin/dowloads.cgi (Ver Fig. 3). Luego, vaya hasta la opcin 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. Instalacin de Reglas

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

Fig. 5. Cabeceras de los paquetes TCP/IP

CIBERTEC

CARRERAS PROFESIONALES

116

Con esta opcin -v iniciamos Snort en modo sniffer visualizando en pantalla las cabeceras de los paquetes TCP/IP. Esta opcin es el modo verbouse y mostrar las cabeceras IP, TCP, UDP y ICMP. Si queremos, adems, visualizar los campos de datos que pasan por la interface de red, aadiremos -d.
snort -vd

Fig. 6. Campos de datos de los paquetes TCP/IP Aadiendo la opcin -e, Snort nos mostrar informacin ms detallada. Nos mostrar las cabeceras a nivel de enlace.
snort -dev

2.3.1. Filtros Podemos aadir, a parte de las opciones, una serie de filtros para optimizar los resultados obtenidos. Estos filtros se aadirn

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

117

en el mismo formato que usa programas como TCPDump, ya que usan las mismas libreras de captura de paquetes (libpcap).
snort -vd host 192.168.1.92 and dst port 80

Fig. 8. Filtros

Otra opcin a tomar en cuenta es -i para indicar a snort qu interface de red usar en el caso de que tengamos dos o ms.
snort -vde -i 1

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

CIBERTEC

CARRERAS PROFESIONALES

118

La opcin -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 archivarn los logs. El formato de los logs se almacena en formato TCPDump. Esto permite que se puedan estudiar ms a fondo con los potentes filtros de este programa.

Fig. 7. Comando tcpdump El archivo generado por Snort en modo binario tambin 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

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

119

Autoevaluacin
1. Cul no es un modo de funcionamiento de Snort? (a) (b) (c) (d) Packet Dump Packet Logging Packet Syslog Packet IDS

2. Qu es un HIDS?

3. Qu significa el termino falso positivo en un IDS? (a) (b) (c) (d) (e) Es la deteccin de un intruso. Es la deteccin de un ataque. Es un reporte de un ataque o intrusin donde no existe. Es la falla para reportar un ataque o intrusin actual. Es una falla en el sistema IDS.

CIBERTEC

CARRERAS PROFESIONALES

120

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

121

12
SEMANA

Intrusion detection systems II

TEMA Descripcin del uso del Snort en modo NIDS.

OBJETIVOS ESPECFICOS Comprender el funcionamiento del Snort en modo NIDS.

CONTENIDOS Snort en modo NIDS.

CIBERTEC

CARRERAS PROFESIONALES

122

SNORT EN MODO NIDS En este apartado es donde nos centraremos ms. El modo deteccin de intrusos de red se activa aadiendo a la lnea de comandos de Snort la opcin -c snort.conf. En este archivo, snort.conf, se guarda toda la configuracin de las reglas, preprocesadores y otras configuraciones necesarias para el funcionamiento en modo NIDS.
snort -dev -l /etc/snort/snort.conf /var/log/snort/ -h 192.168.1.0/24 -c

Con al opcin -D indicar a snort que corra como un servicio. Esto es slo vlido para las versines Linux/UNIX:
snort -dev -l /var/log/snort/ /etc/snort/snort.conf -D -h 192.168.1.0/24 -c

1.1. Configuracin de Snort El archivo de configuracin snort.conf se divide en 6 secciones que a continuacin se detalla: Seccin 1: Defina las variables de la red (Set the network variables). Todas las variables que se desea habilitar requieren quitar el smbolo # que se utiliza para agregar comentarios en al archivo de configuracin. Variable HOME_NET Esta variable especifica la direccin 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 direccin IP y mascara de red que accede a la red local
var HOME_NET $eth0_ADDRESS

Cualquier direccin de la red local


var HOME_NET any (habilitado por defecto)

Para nuestro ejemplo, asignaremos la direccin 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.

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

123

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 aplicacin. 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, tambin se puede considerar una ruta relativa.
var RULE_PATH rules

Seccion 2: Configuracin de la carga de librerias dinamicas Snort permite la carga dinamica de librerias
dynamicpreprocessor directory /usr/lib/snort2.8.0.2_dynamicpreprocessor dynamicengine /usr/lib/snort-2.8.0.2_dynamicengine/libsf_engine.so

Seccin 3: Configuracin de los preprocesadores (preprocessors)

CIBERTEC

CARRERAS PROFESIONALES

124

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 Fragmentacin IP es un plugin que detecta atacantes que lanza paquetes IP fragmentados, usualmente Denegacin de servicio (DoS).
preprocessor frag3_golbal: max_frags 65536 preprocessor frag3_engine: policy firts detect_anomalies

c. bo Detector de Back Orifice Detecta el trfico de Back Orifice en la red. Back Orifice emula a un servidor para introducir troyanos en la red local.
preprocessor bo

Seccin 4: Configuracin plugins de salida Descomente y configure el plugins de salida que usted decida usar. Generalmente, la configuracin 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 ms 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 tamao mximo en MB.
output alert_unified: filename snort.alert, limit 128 output log_unified: filename snort.log, limit 128

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

125

Se incluye el archivo de clasificacin de ataques y prioridad de las alertas


include classification.config

Se incluye el archivo de referencia


include reference.config

CIBERTEC

CARRERAS PROFESIONALES

126

Seccin 5: Configuracin de Snort con declaraciones config (Configure snort with config statements) Muchas opciones de lnea de comandos y configuracin de snort pueden ser especificadas en el archivo de configuracin. 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

Seccin 6: Personalizacin de reglas (Customize your rule set) Las reglas incluidas con esta distribucin generan alertas basadas en la actividad sospechosa. Dependiendo de las polticas 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 almacenarn estas en el archivo /var/log/snort/alert. Snort dispone de siete modos de alertas en la lnea de comandos: completo, rpido, socket, syslog, consola y ninguno. Fast: El modo Alerta Rpida nos devolver informacin acerca del tiempo, mensaje de la alerta, clasificacin, 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

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

127

Fig. 1. Alerta rapida

Full: El modo de alerta completa nos devolver informacin acerca del tiempo, mensaje de la alerta, clasificacin, prioridad de la alerta, IP y puerto de origen/destino e informacin 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 travs de un socket para que las escuche otra aplicacin. Est opcin 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

CIBERTEC

CARRERAS PROFESIONALES

128

None: Desactiva las alarmas.


snort -A none -c /etc/snort/snort.conf

Syslog: Enva 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 travs del visor de sucesos de un sistema windows. Esta opcin se activar mediante -E y slo 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

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

129

Fig. 4. Comando nmap

CIBERTEC

CARRERAS PROFESIONALES

130

Autoevaluacin
1. Qu es un NIDS?

2. Cul es un modo de alerta que se habilita con Snort? (a) (b) (c) (d) Log Full Pass Alert

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

131

13
SEMANA

Virtual private networks I

TEMA
Identificar.

OBJETIVOS ESPECFICOS
Comprender el funcionamiento de la Certificacin Digital.

CONTENIDOS
Introduccin Qu es una VPN? Funcionamiento de una VPN Sistemas de Encriptacin Firma Digital Certificacin de Llave Pblica PKI PGP

CIBERTEC

CARRERAS PROFESIONALES

132

INTRODUCCIN

Hace unos aos, 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 pases. 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 aparicin de Internet, las empresas, centros de formacin, organizaciones de todo tipo, incluso, usuarios particulares tienen la posibilidad de crear una Red Privada Virtual (VPN) que permita, mediante una moderada inversin econmica y utilizando Internet, la conexin entre diferentes ubicaciones salvando la distancia entre ellas. Las redes virtuales privadas utilizan protocolos especiales de seguridad que permiten obtener acceso a servicios de carcter privado, nicamente a personal autorizado, de unas empresas, centros de formacin, organizaciones, etc. Cuando un usuario se conecta va Internet, la configuracin 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 deca 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 ms que una estructura de red corporativa implantada sobre una red de recursos de carcter pblico, pero que utiliza el mismo sistema de gestin y las mismas polticas de acceso que se usan en las redes privadas; al fin y al cabo, no es ms que la creacin en una red pblica de un entorno de carcter confidencial y privado que permitir trabajar al usuario como si estuviera en su misma red local. En la mayora de los casos, la red pblica es Internet, pero tambin puede ser una red ATM o Frame Relay.

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

133

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 nmero de elementos y factores que hacen esto posible. La comunicacin entre los dos extremos de la red privada a travs de la red pblica se hace estableciendo tneles virtuales entre esos dos puntos y usando sistemas de encriptacin y autentificacin que aseguren la confidencialidad e integridad de los datos transmitidos a travs de esa red pblica. Debido al uso de estas redes pblicas, generalmente Internet, es necesario prestar especial atencin a las cuestiones de seguridad para evitar accesos no deseados. La tecnologa de tneles (Tunneling) es un modo de envo de datos en el que se encapsula un tipo de paquetes de datos dentro del paquete de datos propio de algn protocolo de comunicaciones, y al llegar a su destino, el paquete original es desempaquetado volviendo as a su estado original. En el traslado, a travs de Internet, los paquetes viajan encriptados, por este motivo, las tcnicas de autenticacin son esenciales para el correcto funcionamiento de las VPNs, ya que se aseguran a emisor y receptor que estn intercambiando informacin con el usuario o dispositivo correcto. La autenticacin en redes virtuales es similar al sistema de inicio de sesin a travs de usuario y contrasea, pero tienes unas necesidades mayores de aseguramiento de validacin de identidades. La mayora de los sistemas de autenticacin usados en VPN estn basados en sistema de claves compartidas. La autenticacin se realiza normalmente al inicio de una sesin, y luego, aleatoriamente, durante el transcurso de la sesin, para asegurar que no haya algn tercer participante que se haya podido entrometer en la conversacin. Todas las VPNs usan algn tipo de tecnologa de encriptacin que empaqueta los datos en un paquete seguro para su envo por la red pblica. La encriptacin hay que considerarla tan esencial como la autenticacin, ya que permite proteger los datos transportados de poder ser vistos y entendidos en el viaje de un extremo a otro de la conexin. Existen dos tipos de tcnicas de encriptacin que se usan en las VPN: Encriptacin de clave privada y Encriptacin de clave pblica. Encriptacin con clave privada (simtrica) En este tipo de encriptacin se utiliza una contrasea secreta conocida por todos los participantes que van a hacer uso de la informacin encriptada. La contrasea se utiliza tanto para encriptar como para desencriptar la

CIBERTEC

CARRERAS PROFESIONALES

134

informacin. 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. Encriptacin de clave pblica (asimtrica) Implica la utilizacin de dos claves, una pblica y una secreta. La primera es enviada a los dems participantes. Al encriptar, se usa la clave privada propia y la clave pblica del otro participante de la conversacin. Al recibir la informacin, sta es desencriptada usando su propia clave privada y la pblica del generador de la informacin. La gran desventaja de este tipo de encriptacin es que resulta ser ms lenta que la de clave privada.

En las redes virtuales, la encriptacin debe ser realizada en tiempo real, de esta manera, los flujos de informacin encriptada a travs de una red lo son utilizando encriptacin de clave secreta con claves que son vlidas nicamente para la sesin usada en ese momento. Problemas que adolecen: Suplantacin Eficiencia Ataques criptograficos

3. SISTEMAS DE ENCRIPTACIN
4.1. Simtrico 4.1.1. Data Encryption Standard (DES) Es un esquema de encriptacin simtrico desarrollado en 1977 por el Departamento de Comercio y la Oficina Nacional de Estndares de EEUU en colaboracin con la empresa IBM, que se cre con objeto de proporcionar al pblico en general un algoritmo de cifrado normalizado para redes de computadoras. Se basa en un sistema monoalfabtico, con un algoritmo de cifrado consistente en la aplicacin sucesiva de varias permutaciones y sustituciones. Inicialmente el texto en claro a cifrar se somete a una permutacin, con bloque de entrada de 64 bits (o mltiplo de 64), para posteriormente ser sometido a la accin de dos funciones principales, una funcin de permutacin con entrada de 8 bits y otra de sustitucin con entrada de 5 bits en un proceso que consta de 16 etapas de cifrado. En general, DES utiliza una clave simtrica de 64 bits, de los cuales 56 son usados para la encriptacin, mientras que los 8

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

135

restantes son de paridad, y se usan para la deteccin 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 encriptacin ya no es considerado seguro.

4.1.2. Triple DES (3DES) Como hemos visto, el sistema DES se considera en la actualidad poco prctico, 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 caracterstica matemtica de no ser un grupo, lo que implica que si se encripta el mismo bloque dos veces con dos llaves diferentes se aumenta el tamao efectivo de la llave. Para implementarlo, se toma una clave de 128 bits y se divide en 2 diferentes de 64 bits, aplicndose el siguiente proceso al documento en claro: (1) Se le aplica al documento a cifrar un primer cifrado mediante la primera clave, C1. Al resultado (denominado ANTIDES) se le aplica un segundo cifrado con la segunda clave, C2. Y al resultado se le vuelve a aplicar un tercer cifrado con la primera clave, C1.

(2)

(3)

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. Trs un proceso inicial de bsqueda de compatibilidad con DES, que ha durado 3 aos, actualmente 3DES usa 3 claves diferentes, lo que hace el sistema mucho ms 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.

CIBERTEC

CARRERAS PROFESIONALES

136

4.1.3. Advanced Encryption Standard (AES) Fue publicado el 2 de Octubre de 2000 por el NIST como ganador de la convocatoria AES (estndar de cifrado avanzado). El tamao de clave debe ser de, al menos, 128, 192 y 256 bits (debe admitir los tres), y el tamao de bloque de cifrado debe ser de 128 bits. Buena combinacin de seguridad, velocidad, eficiencia (en memoria y puertas lgicas), 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. Asimtrico 4.2.1. RSA Es el algoritmo asimtrico ms sencillo de comprender e implementar. Su nombre proviene de sus tres inventores: Rivest, Shamir y Adleman. El sistema RSA se basa en el hecho matemtico de la dificultad de factorizar nmeros muy grandes. Para factorizar un nmero. el sistema ms lgico consiste en empezar a dividir sucesivamente ste entre 2, entre 3, entre 4..., y as sucesivamente, buscando que el resultado de la divisin sea exacto, es decir, de resto 0, con lo que ya tendremos un divisor del nmero. Ahora bien, si el nmero considerado es un nmero primo (el que slo es divisible por 1 y por l mismo), tendremos que para factorizarlo habra que empezar por 1, 2, 3... hasta llegar a l mismo, ya que por ser primo ninguno de los nmeros anteriores es divisor suyo. Y si el nmero primo es lo suficientemente grande, el proceso de factorizacin es complicado y lleva mucho tiempo. Algoritmo utilizado en el SSH (Secure Shell Client) 4.2.2. Diffie-Hellman.Este algoritmo de encriptacin de Whitfield Diffie y Martin Hellman supuso una verdadera revolucin en el campo de la criptografa, ya que fu el punto de partida para los sistemas asmtricos, basados en dos claves diferentes, la pblica y la privada. Vi la luz en 1976, surgiendo como ilustracin del artculo "New directions in Cryptography". Su importancia se debe, sobre todo, al hecho de ser el inicio de los sistemas asimtricos, ya que en la prctica slo es vlido

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

137

para el intercambio de claves simtricas, 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 electrnico y en los sistemas de autentificacin, 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 pblica de A y comprueba que coincide con el documento original, lo que atestgua de forma total que el emisor del mismo ha sido efectivamente A. El mtodo de la firma digital no slo proporciona autenticidad al mensaje enviado por A, si no que tambin asegura el No repudio, ya que slo el dueo de una llave privada puede encriptar un documento de tal forma que se pueda desencriptar con su llave pblica, 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 cambiara tambin. 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 pose ste sistema que, a nivel legal, la firma electrnica constituye, en la mayora de los casos, una prueba indudable de autora del envo de un documento electrnico, semejante a la firma tradicional de puo y letra. Un alegato que podra esgrimir A para negar la autora del envo de un documento cifrado con su llave privada sera el echo de haber perdido dicha llave o que se la hayan sustrado, 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.

CIBERTEC

CARRERAS PROFESIONALES

138

Esto es anlogo a lo que ocurre con las tarjetas de dbito o crdito, siendo siempre, en ltimo extremo, responsable del uso indebido de las mismas el dueo de la tarjeta, si no ha avisado a tiempo a su entidad financiera o banco de la prdida o sustracin.

5.1. Funciones hash Si imaginamos el envo de un documento extenso que queremos firmar digitalmente, nos daremos cuenta de que cifrar el documento entero es una prdida de tiempo, ya que los medios de encriptacin de llave pblica son lentos, pus precisan un grn proceso de cmputo. Para solventar ste aspecto aparecen las funciones hash, que son unas funciones matemticas 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 ningn sentido real. Tanto es as que, por definicin, 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 funcin hash. Estas funciones son, adems, de dominio pblico. A un mensaje resumido mediante una funcin 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 funcin hash y su mecanismo es el siguiente: (1) El emisor aplica una funcin hash conocida al documento, con lo que obtiene un resumen hash del mismo. (2) Encripta dicho resumen con su clave privada. (3) Enva al receptor el documento original plano y el resumen hash encriptado. (4) El receptor B aplica la funcin hash al resumen sin encriptar y desencripta el resumen encriptado con la llave pblica 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 envo ha sido interceptado durante el medio de envo y modificado. En el caso de que ambos resmenes no coincidan, contempla tambin 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 vlido.

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

139

Las funciones hash y la firma digital son elementos indispensables para el establecimiento de canales seguros de comunicacin, basados en los Certificados digitales. Para que una funcin pueda considerarse como funcin hash debe cumplir con:

transformar un texto de longitud variable en un bloque de longitud fija, que generalmente es pequea (algunas son de 16 bits). ser cmoda 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 funcin hash sea la misma (no-colisin). Si se desea, adems, mantener un intercambio de informacin con confidencialidad, basta con cifrar el documento a enviar con la clave pblica del receptor.

Las funciones hash ms conocidas y usadas son: MD5 (Message Digest 5): Tambin 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 seor Dobbertin, que consigui crear colisiones en el sistema MD5, aunque por medio de ataques parciales. Pero lo peor es que tambin consigui realizar ataques que comprometan la no-colisin, por lo que se podan 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 versin 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 tambin que, en la actualidad, se estn estudiando versiones de SHA con longitudes de clave de 256, 384 y 512 bits.

6. Certificacin de Llave Publica


El problema de la suplantacin de llaves se puede resolver si alguien de confianza nos asegura que la llave pblica de A realmente pertenece a A.

CIBERTEC

CARRERAS PROFESIONALES

140

En el caso de la gua telefnica, nos creemos que el telfono 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 gua no nos engaa. Un nivel de confianza an ms alto podra venir de una certificacin 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 pblica. A fin de cuentas, una llave pblica ha de ser guardada en la computadora en la forma de un archivo. Por qu no se va a poder firmar ese archivo? La criptografa de clave pblica contribuye as a reparar su propia debilidad. El proceso para que A tenga la seguridad de poseer la llave pblica autntica de B sera el siguiente: A obtiene la clave pblica del notario. A recibe la clave pblica de B, firmada por el notario. A verifica la firma digital del notario. Si la verificacin es correcta, A sabe que la llave de B es autntica. En ese caso, se dice que la llave es vlida. 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 dueo. Es como en el mundo de papel. Yo puedo firmar un contrato de hipoteca con el banco directamente. La intervencin de un notario, sin embargo, le da mayor confianza a la transaccin, ya que la firma del notario certifica muchas cosas: que los firmantes son efectivamente quienes afirman ser, que estn legalmente capacitados para realizar la transaccin, que han firmado el contrato libre y voluntariamente, que entienden lo que ste significa, etc. El primer punto sigue siendo algo ms escabroso. Necesitamos la llave pblica del notario para verificar todo lo que ste firma, pero cmo estar seguros de que no se trata de una llave falsa? A fin de cuentas, cmo se que el notario frente al que me encuentro es realmente quien dice ser y no un falso notario? La paranoia no tiene lmites, y como vemos la seguridad absoluta no existe. En la prctica, suponemos que hay una forma razonablemente segura de obtener la llave pblica verdadera del notario. Tal vez nos la ha entregado l personalmente, o quiz la hemos descargado de una pgina web segura. Pero tenemos una ventaja crucial: somos nosotros quienes decidimos cunta 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 pblica se denomina genricamente Certificado digital. Habitualmente, un certificado digital consta de tres elementos: la llave pblica que est siendo certificada,

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

141

la informacin 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? Bsicamente, informacin sobre el titular junto con ciertos elementos (marca de agua, firma policial, cdigos 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 pblica a un nombre individual.

7. PKI
El acrnimo PKI deriva de "Public Key Infrastructure" (Infraestructura de Clave Pblica) y es la forma comn de referirse a un sistema complejo, necesario para la gestin 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 informacin transmitida entre las partes (Encriptacin 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 travs de la denominada "Autoridad de Registro". Existen dos tipos principales de registro: Registro clsico. 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 travs 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

CIBERTEC

CARRERAS PROFESIONALES

142

pblica 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, algn 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 tambin 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 tecnolgicos (hardware y software especfico) y unos medios humanos (los Operadores de Registro). Es el punto de comunicacin 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 Pblica" (PKI). Existen multitud de componentes adicionales, y cada elemento es un sistema complejo en si mismo. Los componentes bsicos pueden resumirse en: La autoridad de certificacin. La pieza central y la que proporciona la base de confianza en la PKI. Constituido por elementos hardware, software y, evidentemente, humanos. Publicacin de certificados. El repositorio de certificados permite a los usuarios operar entre ellos (Por ejemplo, para la validacin de una firma digital), y es un requisito legal que cuente con una total disponibilidad de acceso. Soporte de la llave privada. La eleccin 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 disear el Sistema de Gestin de SmartCards que permita la emisin y distribucin 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. Polticas de certificacin. Deben disearse una serie de polticas, o procedimientos operativos, que rigen el funcionamiento de la PKI y establecen los compromisos entre la autoridad certificadora y los

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

143

usuarios finales. Estos documentos tendrn un carcter tanto tcnico como legal. El proceso de construccin de una PKI deber siempre partir de la definicin de las polticas 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 diseado especialmente por Philip Zimmermann en 1991 para proporcionar una forma segura de intercambio de correo electrnico. Implementa tanto el cifrado del correo y ficheros como la firma digital de documentos. Para la encriptacin del documento, usa una algoritmo de llave simtrica con intercambio de clave mediante sistema de llave pblica, normalmente RSA; y para la firma digital suele utilizar la funcin hash MD5. No obstante, es un sistema mpliamente configurable, que permite al usuario elegir entre diferentes sistemas asimtricos, funciones hash y longitudes de clave. Para usarlo hay que comenzar generando un par de claves, una pblica y otra privada, siendo posible en ese momento la eleccin de la longitud de clave deseada. Tambin hay que fijar una clave personal, que se usar luego para proteger la llave privada de miradas indiscretas. Las claves pblica y privada las genera automticamente el algoritmo, mientras que la personal de proteccin la elige el usuario. Una vez generadas las claves, la privada se encripta con la personal mediante un algoritmo simtrico, siendo posteriormente necesario desencriptarla cada vez que deseemos usarla. En cuanto a la llave pblica, se deposita en un archivo especial, de tipo ASCII (slo texto), denominado certificado de llave, que incluye el identificador de usuario del propietario (el nombre de esa persona y algn dato nico, como su direccin 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 simtrico, generalmente IDEA o DES, usando una clave aleatoria, que posteriormente se encripta con RSA. Se envan el documento cifrado con la clave aleatoria y, sta, encriptada con la llave RSA privada del destinatario. Cuando ste recibe el correo y desa desencriptarlo, su programa PGP, primero, descifra la clave simtrica con su llave privada RSA y, luego, descifra el documento usando la clave desencriptada.

CIBERTEC

CARRERAS PROFESIONALES

144

Normalmente, el sistema PGP viene implementado mediante alguna aplicacin especfica, que se instala en la computadora del usuario. Esta aplicacin se integra perfectamente con los programas de correo ms comunes, permitiendo al usuario el uso directo del sistema PGP, con tan slo pulsar los botones que aparecern en la barra de mens de la aplicacin de correo. Para desencriptar un mensaje basta con seleccionar el icono correspondiente (o mediante el botn derecho del ratn), siendo necesario en ese momento introducir la clave personal, para que el programa pueda acceder a la clave pblica encriptada. Para firmar un correo se procede de forma anloga. 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, despus, que nosotros tengamos la llave pblica del destinatario. Si es as, basta con seleccionar la opcin correspondiente en el men, con lo que se nos pedir la clave pblica del destinatario, y el programa se encargar de todo lo dems. Si tenemos la necesidad de cifrar mensajes para muchos destinatarios diferentes nos encontraremos con el problema de gestionar los distintos archivos de llave pblica. Para ello, los programas PGP facilitan el denominado llavero, que es un pequeo mdulo 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 pblica. Podemos obtener sta dirigindonos directamente a dicha persona y pidindosela, pero para facilitar esta tarea, y puesto que el objeto de las llaves pblicas es ser difundidas lo ms posible, se han habilitado diferentes servidores que posen bases de datos con las claves pblicas de los usuarios de PGP. Basta acudir a los mismos y solicitar el archivo de clave correspondiente a la persona que nos interesa.

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

145

Autoevaluacin
1. Qu es una VPN?

2. Cul es un componente PKI? (a) (b) (c) (d) (e) Autenticidad CA Registro clsico Registro remoto Llave privada

CIBERTEC

CARRERAS PROFESIONALES

146

14
SEMANA

Virtual private networks II

TEMA
Configurar una VPN.

OBJETIVOS ESPECFICOS
Comprender el funcionamiento de la VPN Implementar una VPN

CONTENIDOS
Virtual Private Networks (VPN) Openvpn

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

147

VIRTUAL PRIVATE NETWORKS (VPN) Las VPNs son sesiones en un canal de comunicaciones autenticado y encriptado en una red pblica, como es el caso de Internet. Considerando que las redes son inseguras, la encriptacin y autenticacin son utilizados para proteger los datos en trnsito. VPN es considerado un servicio independiente ya que toda informacin 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 conexin basada en VPN

En el diagrama mostrado se muestra que los dispositivos estn conectados a travs de un tnel configurado en los ruteadores. Para que se pueda establecer una sesin VPN, ambos equipos deben tener configurados los mismos parmetros: tamao de las llaves, mtodo de encriptacin, etc. De esta manera, si se coloca un analizador de protocolos entre ambos rutedores, slo se ver trfico encriptado. El analizador ver el trfico 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.

CIBERTEC

CARRERAS PROFESIONALES

148

A este proceso se le llama tunneling. Esto ayuda a evitar que un atacante pueda conocer qu direcciones establecen conexiones entre si. Esta caracterstica tambin puede utilizarse en beneficio propio, ya que son los ruteadores los que realizan el tnel con sus direcciones pblicas, se pueden utilizar direcciones de red privadas para que vayan encapsulados en el trfico encriptado. Las VPNs fueron diseadas y desarrolladas para reemplazar lo siguiente: Grupos de mdems Enlaces WAN dedicados

1.1. Tecnologas de VPN Entre las tecnologas de VPNs tenemos: A. Point-to-Point Tunneling Protocol (PPTP) PPTP trabaja en el nivel de la capa de enace del modelo OSI. Est diseado para conexiones de clientes individuales a un servidor VPN y habilita una sola conexin punto a punto por sesin. Este protocolo es muy comn con conexiones asncronas que utilizan clientes Windows XP/2000/2003. PPTP utiliza el protocolo de autenticacin nativo de Point to Point y sus servicios de encriptacin. B. Layer 2 Tunneling Protocol (L2TP) L2TP es una combinacin 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 va dial-up. Este estndar fue diseado para conexiones simples cliente/servidor. Por esta razn, se pueden encapsular mltples protoclos. C. IPSec IPSec opera en la capa de red y habilita tneles mltiples y simultneos, a diferencia de la conexin simple de los estndares anteriores. IIPSec tiene la funcionalidad de encriptar y autenticar datos IP. Forma parte del nuevo estndar IPv6. Modo de operacin: Modo tnel El paquete completo es encriptado y encapsulado en un paquete IPSec. No soporta trfico que ha sufrido NAT. Modo Transporte Slo el datagrama es encriptado dejando visible la direccin IP. 1.2. Escenarios tpicos de VPNs Interconexin de redes privadas a trves de Internet

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

149

Ejemplo: conexin de dos oficinas de una empresa o Se establece una VPN entre dos gateways, cada uno de una red privada. o Las mquinas de las redes utilizan esos gateways como routers. o Cuando un gateway recibe un paquete dirigido a la red privada del otro extremo, lo enva a travs de la VPN de modo seguro. o El trfico slo 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 conexin al concentrador de VPNs de la red corporativa. o A partir de ese momento, todo el trfico, 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 ao 2001 y que ha estado siendo mejorado desde entonces. Ninguna otra solucin ofrece una mezcla semejante de seguridad a nivel empresarial, seguridad, usabilidad y riqueza de caractersticas. Es una solucin multiplataforma que ha simplificado mucho la configuracin de VPN's dejando atrs los tiempos de otras soluciones difciles de configurar como IPsec y hacindola ms accesible para gente inexperta en este tipo de tecnologa. Caracteristicas: Solucin VPN SSL flexible Software libre bajo licencia GPL Espacio de usuario, alta portabilidad Multiplataforma: GNU/Linux, *BSD, Mac OS X, Windows

Funcionalidad: Establece tneles 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 grfica de configuracin en Windows y Mac OS X

CIBERTEC

CARRERAS PROFESIONALES

150

Interfaz tun

Un interfaz tun es un adaptador de red virtual. El sistema operativo lo ve como una conexin 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.

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

151

2.1. Configuracin VPN Road Warrior (Host to LAN)

Fig. 2. VPN Road Warrior

2.1.1. Preparacin 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

CIBERTEC

CARRERAS PROFESIONALES

152

Fig. 3. Verificando el correcto funcioanmiento de Openvpn (3) Revisemos las direcciones IP pblica 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. Configuracin del servidor VPN (1) Creamos el directorio /etc/openvpn/easy-rsa (2) Copiamo el directorio /usr/share/doc/openvpn-2.0.9/easy-rsa2.0/ hacia /etc/openvpn/easy-rsa (3) Trasladamos al directorio /etc/openvpn/easy-rsa (4) Definimos permisos de ejecucin en los scripts.

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

153

(5) Inicializamos las variables para poder trabajar con los scripts para la generacin 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 informacin sobre nuestra red/empresa que debemos llenar lo ms fielmente posible.
# sh build-ca

La variable que debemos explcitamente llenar es: Common Name.

Fig. 5. Generacin del certificado CA (8) Generacin del certificado y de la clave de encriptacin para el servidor.
# sh build-key-server server

CIBERTEC

CARRERAS PROFESIONALES

154

Fig. 6. Generacin del certificado de servidor. En este paso, tambin, se nos pedir nuevamente informacin 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 copiarn dentro del mismo servidor hacia /etc/openvpn.

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

155

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 estn 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 buildkey, le pasamos como parmetro 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 parmetro. (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 ms, para cliente2 y cliente3; por favor, en common name debemos poner client2 client3 para cada caso.

CIBERTEC

CARRERAS PROFESIONALES

156

Fig. 8. Generacin del certificado del cliente (12) El parmetro de Diffie-Hellman debemos generarlo:
# sh build-dh

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

157

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 estn 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 nmero que se corresponde con el cliente (para el cliente 2 sera: client2.crt y client2.key por ejemplo). Estos 3 archivos deben copiarse de forma segura hacia el cliente, quiz mediante scp o algn medio magntico seguro. No deben enviarse por mail, puesto que contienen la clave (.key) de encriptacin del cliente. Estos archivos estn presentes en /etc/openvpn/easy-rsa/keys del servidor.

CIBERTEC

CARRERAS PROFESIONALES

158

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) Configuracin 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 parmetros, los ms importantes son: un push de la ruta hacia la red local interna del servidor. Esa ruta esttica permitir que el road warrior vea a las mquinas 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.

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

159

(16) Configuracin 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 quedara el archivo de configuracin:
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 ms interesantes son: Client: indica que algunas configuraciones las tomar del servidor. nobind: que no acte 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 &

CIBERTEC

CARRERAS PROFESIONALES

160

Fig. 11. (18) Revisemos la nueva direccin 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 direccin IP de la tarjeta tun0 del cliente VPN


# ifconfig tun0

CARERRAS PROFESIONALES

CIBERTEC

SERVIDORES DE ALTA DISPONIBILIDAD

161

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.

CIBERTEC

CARRERAS PROFESIONALES

162

Autoevaluacin
1. Qu es el proceso tunneling?

2. Cul no es una tecnologa de VPN? (a) (b) (c) (d) PPTP L2TP L2F IPSec

CARERRAS PROFESIONALES

CIBERTEC

You might also like