Bloque 2 y 4 TAI
Bloque 2 y 4 TAI
1. SISTEMAS DE NUMERACION
Los distintos sistemas de numeración que se emplea son el binario, octal, hexadecimal y decimal:
Datos utiles:
20 21 22 23 24 25 26 27 28 29 210
1 2 4 8 16 32 64 128 256 512 1024
Complemento a 2: comenzar por la derecha (el dígito menos significativo), copiando el número
original (de derecha a izquierda) hasta encontrar el primer 1, después de haber copiado el 1, se
niegan (complementan) los dígitos restantes (es decir, copia un 0 si aparece un 1, o un 1 si aparece
un 0).
2. ARQUITECTURA DE ORDENADORES
2
Clasificación de la memoria desde el punto de vista de la volatilidad:
• ROM (Read Only Memory):
o PROM (Programable ROM): una vez grabadas no se pueden borrar.
o EPROM (Erasable PROM): se puede borrar con rayos ultravioletas y volver a grabar.
o EEPROM (Electrically EPROM): se pueden borrar eléctricamente.
• Memoria principal o RAM (Random Access Memory):
o SRAM (Static Random Access Memory): muy rápida, pero más cara, se usa en los
procesadores y en pequeñas cantidades.
▪ NVRAM (Non-Volatile Random Access Memory): es una memoria de acceso aleatorio
que es capaz de almacenar información y no perderla al retirar la alimentación
eléctrica del componente (BIOS).
o DRAM (Dynamyc Random Access Memory): el termino dinámico indica que para que el
chip de memoria pueda guardar información cada bit debe ser refrescado en un cierto
periodo de tiempo, si se desconecta la energía, la información se pierde.
o SDRAM (Syncronous DRAM): recibe y emite información sincronizada a un reloj externo,
extremada mente más rápidas para leer y escribir.
o RAM-CMOS: es un tipo de memoria que almacena información sobre la configuración
del sistema. Debido a ello suele confundirse con el propio BIOS, pero es una entidad de
memoria diferente, esta solo almacena opciones de la BIOS.
4
Registros fundamentales que aparecen en todo ordenador:
• PC (Program Counter): contiene la dirección de la siguiente instrucción. La CPU actualiza el
PC después de cada lectura de instrucción de manera que siempre apunta a la siguiente
instrucción a ejecutar.
• INC (Incrementer): sumando su contenido al registro PC, incrementa el contenido de este.
• IR (Instruction Register): contiene la instrucción actual, aquí se analiza el código de
operación.
• MAR (Memory Address Register): contiene la dirección de una posición de memoria, el
intercambio de datos con la memoria se realiza conectado directamente al bus de
direcciones.
• MBR (Memory Buffer Register): contiene cada palabra de datos para escribir en memoria
que ha sido leída más recientemente, el intercambio de datos con la memoria se realiza
conectado directamente al bus de datos.
• Registros E/S: contiene la dirección de memoria cuyo contenido se reserva para almacenar
datos provenientes de algún dispositivo de entrada y salida:
o E/SAR (E/S Address Register): registro de direcciones, a las posiciones de memoria cuyo
contenido se usa para comunicarse con los dispositivos E/S se les denomina “puertos”.
o E/SBR (E/S Buffer Register): intercambiar datos entre un módulo E/S y la CPU.
• Registros D0, D1… Dn (Data Registers): registros genéricos destinados a contener todo tipo
de datos.
5
• E/S por Acceso Directo a Memoria (DMA): permite la transferencia de datos entre un
periférico y la memoria sin la intervención de la CPU. Hay varios tipos:
o DMA modo ráfaga: el DMAc (controlador del DMA) solicita el control del bus a la CPU,
después este no lo libera hasta haber finalizado la transferencia de todo el bloque de
datos completo.
o DMA modo robo de ciclo: el DMAc solicita el control del bus a la CPU (un ciclo), se realiza
la transferencia de una única pabla y después el DMAc libera el bus. Por lo que el DMAc
solicita el control del bus tantas veces como sea necesario.
o DMA transparente: el DMAc accede al bus solo cuando la CPU no lo está utilizando.
3. COMPONENTES INTERNOS
6
o Southbridge (I/O Controller Hub): circuito integrado que coordina los diferentes
dispositivos de entrada y salida. Se comunica con la CPU a través del Northbridge, incluye
soporte para Ethernet, RAID, USB y codec de audio. Integra cada vez mayor número de
dispositivos a conectar con tecnologías como HyperTransport o Ultra V-Link para evitar
efecto botella del PCI.
• Memoria cache: memoria temporal, de existencia oculta para el usuario, proporciona
acceso rápido a los datos de uso más frecuente, está integrada en el procesador.
• Conectores internos:
o Conectores IDE (Integrated Drive Electronics)/PATA (Parallel Advanced Technology
Attachment): conectar discos duros o CD-ROM, transferencia máxima de 166,6 MB/s.
o Conectores SATA (Serial Advanced Technology Attachment): utilizado en discos duros,
sustituye a PATA, mayor velocidad, mejor aprovechamiento cuando se tienen varios
discos, alcanza los 6 Gbits/s.
• Ranuras de expansión:
o PCI: trabajan hasta 132 MB/s suficiente para tarjetas de red y sonido.
o AGP: exclusivo para tarjetas de graficas debido a su auge como aceleradoras 3D en el
pasado, puede soportar desde 1x a 8x.
o PCIe: estándar actual para dispositivos de alto rendimiento.
7
TEMA 2 - PERIFÉRICOS
1. PERIFERICOS
Los periféricos son dispositivos E/S conectados al ordenador, pueden ser de entrada, salida,
entrada/salida (mixtos) y memoria masiva o auxiliar.
La conexión entre las distintas unidades funcionales del ordenador, ser realiza mediante un
conjunto de líneas de conexión, denominadas buses, el bus que permite la conexión “a” o
“desde” los periféricos se denominan buses de entrada y salida paralelos. Los dispositivos
pueden ser:
• Orientados a bloque: se pueden direccionar, escribir o leer cualquier bloque del dispositivo
realizando primero una operación de posicionamiento sobre el mismo (discos duros,
memoria, unidades de cinta…)
• Orientados a carácter: trabajan con secuencias de bytes sin importar su longitud ni ninguna
agrupación en especial, no son dispositivos direccionables (teclado, pantalla, impresoras…)
Los periféricos pueden conectarse directamente al bus de sistema o a través de unos circuitos
denominados interfaces, que han de proveer gran cantidad de posibilidades de interconexión
que cumplan las necesidades de cada periférico. Algunos de los puertos más representativos
son:
• PATA, SATA y eSATA: usados en unidades de disco duro.
• Ethernet: tarjetas de red.
• Firewire (IEEE 1394): interfaz de alta velocidad diseñado por Apple para entrada y salida de
datos en serie a gran velocidad. Suele utilizarse para la interconexión de dispositivos
digitales desde ordenadores hasta discos duros o cámaras digitales, hasta 32Gbps (400
MB/s).
• HDMI/VGA/DVI: interfaces con visualizadores.
• SCSI (Small Computer System Interface) y SAS (Serial Attached SCSI): usados en discos duros
y cintas de backup.
• Puertos específicos: PS/2.
• Puerto paralelo: habitual para impresoras hasta que llego USB.
• Puerto serie: RS232 (periféricos que manejan pocos datos).
• Thunderbolt: hasta 40 Gbit/s.
• USB (Universal Serial Bus): permite adjuntar dispositivos periféricos rápidamente, estándar:
o 1.0: alcanza 1.6 Mbps (200 KB/s)
o 2.0: alcanza hasta 480 Mbps (60 MB/s), dispone de 4 conectores, 2 para datos (half-
duplex) y dos para alimentación.
o 3.0: alcanza hasta 4.8 Gbps (600 MB/s), dispone de 8 conectores, 2 para subida y dos
para bajada (full-duplex).
o 3.1: alcanza 10 Gbps (1.2 GB/s)
o 3.2: alcanza 20 Gbps (2.5 GB/s)
o 4.0: alcanza 40 Gbps (5 GB/s)
8
1.1. PERIFERICOS DE ENTRADA
• Teclado: clasifican según la disposición de teclas, el mayoritario es QWERTY, pueden ser
mecánicos o de membrana.
• Raton: dispositivo de entrada de datos y de control, tipos:
o Mecánico: cuenta con una bola de goma y dos ejes dotados de una rueda dentada.
o Óptico: carece de bola de goma, usa un sensor.
o Inalámbrico: carece de cable
o TrackPoint: protuberancia cilíndrica en el medio del teclado
o Touch Pad: membrana rectangular sensible al tacto bajo el teclado (portátiles).
o TrackBall: ratón que presenta su bola al alcance del dedo pulgar.
• OMR (Optical Mark Reader): aceptan información escrita a mano y la transforman en datos
binarios inteligibles para el ordenador.
• Detectores de código de barras: leen el código formado por la codificación de cada digito
decimal en barras de grosor relativo negras y blancas adyacentes (European Article
Numbering)
• Escaner: exploración de imágenes mediante procedimientos opto electrónicos. Tipos de
escáner:
o Escáner de mesa o plano: tiene una fuente de luz y un sensor de luz.
o Escáner de tambor: escáner de gran tamaño que permite escaneo por modelo de color
CYMK o RGB con gran resolución óptica.
o Escáner de microfilm.
o Escáner para diapositivas.
o Escáner de mano.
o Escáner digitalizador de video.
o Escáner de transferencia.
• Digitalizador o tarjeta gráfica: unidades de entrada que permiten transferir directamente al
computador gráficas, figuras, planos, mapas…
9
• Tarjeta de video: conjunto de circuitos electrónicos que convierten los datos de salida a
video, cronológicamente aparecieron: Tarjeta de video monocromática, CGA (permitía
colores), EGA, VGA, XGA, SVGA, UXGA, WUXGA.
• Impresora: escriben la información de salida sobre papel, cuando el pc se comunica con una
impresora utiliza un lenguaje especial denominado “lenguaje de descripción de página” o
PDL, hay dos PDLs, PCL (Printer Command Language) y PostScript, tipos de impresora:
o Impresoras de impacto: utilizan un sistema mecánico de manera que los caracteres se
forman al golpear una cinta entintada contra el papel:
▪ Impresora de agujas (matriciales): cabezal de agujas al golpear forma los caracteres,
que son impresos sobre el papel.
▪ Impresora de margarita: varillas, una por carácter, alrededor de un disco que puede
girar.
o Impresoras sin impacto: más silenciosas, rápidas y mayor calidad, hacen uso de técnicas
fotográficas, electrónicas, de inyección de tinta y de sublimación de tinta:
▪ Impresoras térmicas: cabezal de agujas, el papel, al calentarse por la aproximación
se oscurece o colorea, dejando impreso el carácter.
▪ Impresoras electrostáticas: usan un cartucho para la proyección de la imagen
formada con iones que se depositan sobre un tambor dieléctrico. Las partículas del
tóner se adhieren al tambor y por presurización en frio la imagen se transfiere al
papel.
▪ Impresora láser: utilizan el haz de un láser para inducir cargas eléctricas sobre un
tambor que está girando, la carga negativa de las partículas del tóner hace que esta
permanezca en el papel.
▪ Impresoras de inyección de tinta: forman los puntos que componen los caracteres y
gráficos al pulverizar pequeñas gotas de tinta.
• Plotter: dibujos sobre papel (planos, mapas, esquemas…).
10
o Discos de soporte: uno o varios, donde se almacena la información, están recubiertos
por ambas partes del material ferromagnéticos susceptible de almacenar microcampos
magnéticos.
o Motor de rotación: hace girar los discos a velocidades de 5400, 7200 o 15000 rpm.
o Cabezales de lectura/escritura: cada cara de los discos del disco duro lleva asociado un
pequeño cilindro de hierro bobinado que es capaz de detectar variaciones (leer) en el
campo magnético de la superficie, o alterarlo (escribir).
o Controlador: circuitería eléctrica que permite controlar tanto los
aspectos mecánicos del disco como los aspectos lógicos de
transferencia de datos.
▪ Partes de cara a almacenar y localizar la información:
A. Pistas o Tracks: pistas concéntricas invisibles a lo largo de las
cuales se graban los pulsos magnéticos.
B. Sector geométrico.
C. Sector.
D. Cluster: conjunto de sectores en una pista.
• SSD (Solid State Drive): los datos no se almacenan sobre superficies cilíndricas ni platos,
almacenan la información en microchips con memorias flash interconectadas entre sí,
basadas en NAND, incluyen un procesador integrado que se encarga de realizar las
operaciones relacionadas con la lectura y escritura de datos, velocidades de transferencia
entre 200 y 500 MB/s.
• Discos ópticos:
o CD (Compact Disk): almacenamiento de 700 MB, velocidad de transferencia 150KBps.
▪ CD-ROM (Read Only), CD-R (Write Once, Read Many), CD-RW (Write Many, Read
Allways).
o DVD (Digital Versatil Disk): almacena entre 4,5 y 15,5 GB, velocidad de 1350 Kbps.
▪ DVD-ROM, DVD-R y DVD+R, DVD-RW/DVD+RW, DVD-RAM
o Blu-ray Disc: sustituye al DVD, almacena alta resolución, contiene 25 GB por capa.
11
• RAID 3: divide los datos a nivel de bytes en lugar de a nivel
de bloques, necesita un mínimo de tres discos, utilizando
uno para datos de paridad. En estos se copian los datos en
distribución RAID 0 en los 2 primeros, en el tercer disco, se
crea el byte de paridad.
• RAID 5 (Volumen Distribuido con Paridad): datos repartidos
a nivel de bloque, con paridad distribuida entre varios discos,
se escribe información de paridad para cada sección dentro
de las distintas partes. Si falla un disco, los datos pueden
reconstruirse con la paridad, requiere al menos tres discos.
Proporciona un excelente rendimiento en las operaciones de
lectura, pero es sustancialmente más lento que las restantes opciones.
• RAID 6 (Volumen Distribuido con Doble Paridad): es como
RAID 5, pero los datos de paridad se escriben en dos
unidades. Eso significa que requiere al menos 4 unidades y
puede soportar 2 unidades que mueren simultáneamente.
Bit de Paridad: dígito binario que indica si el número de bits con un valor de 1 en un conjunto de
bits es par o impar.
• En el caso de la paridad PAR, se cuentan el número de unos. Si el total es impar, el bit de
paridad se establece en uno y por tanto la suma del total anterior con este bit de paridad,
daría par. Si el conteo de bits uno es par, entonces el bit de paridad (par) se deja en 0, pues
ya es par.
• En el caso de la paridad IMPAR, la situación es la contraria. Se suman los bits cuyo valor es
uno, si da un número impar de bits, entonces el bit de paridad (impar) es cero. Y si la suma de
los bits cuyo valor es uno es par, entonces el bit de paridad (impar) se establece en uno,
haciendo impar la cuenta total de bits uno.
mdadm: utilidad de Linux utilizada para administrar y monitorear dispositivos RAID por software
12
TEMA 3 - SISTEMAS OPERATIVOS
1. SISTEMAS OPERATIVOS
Es el software básico de un ordenador, conjunto de programas y funciones que gestionan el
funcionamiento del hardware y del software, es el primer programa que se carga en memoria al
encender y el principal administrador de recursos. Pueden ser según el modo en el que este se
comunica con el usuario:
• Línea de comandos: las operaciones del sistema se introducen tecleándolas directamente o
bien ejecutando una colección de estas almacenadas en forma de guion “script”.
• Interfaz gráfica: manipulación de elementos grafios en la pantalla.
Se organizan por capas en torno a un núcleo principal:
• Nivel kernel: controla todo lo que sucede en el ordenador, gestiona los procesos que llegan
para ser ejecutados.
• Nivel ejecutivo: administración de la memoria.
• Nivel supervisor: realiza la comunicación de cada proceso entre el sistema y el usuario,
controla y coordina la gestión de entrada/salida de los diferentes procesos con destino a los
periféricos.
• Nivel usuario: controla los procesos que está utilizando el usuario, simplemente muestra al
usuario el proceso que este quiere ejecutar.
13
▪ Programas de manipulación de datos: liberan al programador de trabajos rutinarios
como la trasferencia de archivos entre soportes, reorganización de archivos,
ordenación de datos.
▪ Programas de servicio del sistema: generación del sistema operativo completo sobre
el ordenador, preparación de los programa y creación y mantenimiento de las
bibliotecas de programas.
3. PROCESOS
En un sistema multiprogramado la CPU alterna entre programas, ejecutando cada uno de ellos
unos cuantos milisegundos, todo software ejecutable en el ordenador se organiza en procesos,
inclusive el sistema operativo, cada proceso dispone de una CPU virtual, aunque la CPU física lo
que hace es una alternancia muy rápida.
Se puede definir un proceso como un programa en ejecución, puede estar constituido por el
programa y los valores de las variables que intervienen en la ejecución, por lo tanto, es una
entidad dinámica, contiene una parte fija (el programa) y una parte variable (estado del
proceso), cuatro conceptos asociados a la gestión de procesos:
• Necesidad de que cada proceso tenga asignada una prioridad, se encarga el planificador.
• El distribuidor se encarga de activar procesos en función de sus prioridades.
• Estado de proceso, situación con respecto al procesador (activo, esperando el bloqueado…).
• Si no hay espacio suficiente en la memoria principal los programas en espera se llevan a la
memoria secundaria.
Los estados de un proceso pueden ser:
o Activo/ejecución: proceso que se está ejecutando.
o Bloqueado/en espera: se espera la conclusión de un suceso.
o Preparado: proceso que se puede ejecutar pero que está esperando por otro de mayor
prioridad.
o Muerto/terminado: se termina la ejecución del proceso.
PCB (Process Control Block): registro especial donde el sistema operativo agrupa toda la
información que necesita conocer respecto a un proceso particular. Cada vez que se crea un
proceso el sistema operativo crea el BCP correspondiente para que sirva como descripción
en tiempo de ejecución durante toda la vida del proceso.
Las operaciones de E/S son mucho más lentas que los procesos de cómputo, por lo tanto, el
procesador estaría libre la mayor parte del tiempo, porque los procesos en memoria estarían en
espera de esas operaciones. Para solucionar esto, la memoria principal puede expandirse para
almacenar más procesos, a coste de mover parte o todo el proceso de memoria principal al disco
secundario o una partición (swapping). Al hacer uso del swapping, se crea un nuevo estado
llamado “suspendido”: el proceso esta en disco secundario listo para ser cargado a memoria
principal cuando se le llame.
14
• Alto nivel: a que trabajos se les va a permitir competir activamente por los recursos del
sistema.
• Nivel intermedio: que procesos se les puede permitir por la CPU, intentando siempre
conseguir el mejor rendimiento.
• Bajo nivel: determinar qué proceso de los que están listos se les va a asignar la CPU.
15
• Condición de espera ocupada: un proceso pide un recurso que ya este asignado a otro
proceso y la condición de no apropiación se debe cumplir, entonces el proceso estará
gastando el resto de su “time slice” comprobando si el recurso fue liberado
• Condición de exclusión mutua: un proceso realiza operaciones sobre el recurso, después lo
deja de usar. La sección de código que usa ese recurso se le llama región critica, la condición
de exclusión mutua establece que solamente se permite a un único proceso estar dentro de
la misma “región critica”. (se puede lograr entrar en la región critica con el algoritmo de
Dekker y Peterson: algoritmo de programación concurrente para exclusión mutua que
permite a 2 o más procesos compartir un recurso sin conflictos, utilizando tan solo memoria
compartida para la comunicación.)
• Condición de espera circular (deadlock): se produce cuando en un conjunto de procesos,
cada uno de ellos espera a un evento que solo puede generar otro del conjunto. Existen
técnicas para prevenir el deadlock, como mecanismos para evitar que se presente alguna de
las cuatro condiciones necesarias para el deadlock:
o Asignar recursos en orden lineal: si un proceso tiene el recurso con etiqueta menor que
otro, este no puede pedir recursos a uno con etiqueta mayor. Con esto se evita la
condición de espera ocupada.
o Asignar todo o nada: el proceso debe pedir todos los recursos que va a necesitar de
golpe, y se le asignaran solamente si se le pueden dar todos.
o Algoritmo del banquero: se elabora una tabla de recursos existente e información del
máximo de recurso de cada tipo que usa cada proceso y cuando un proceso pide un
recurso se verifica si, asignándoselo, todavía quedan otros del mismo tipo de reserva.
4. GESTION DE MEMORIA
Los programas residen en el disco como ejecutables binarios, el conjunto de programas
residentes en el disco esperando a ser cargados en memoria forman la cola de entrada, los
programas pueden direccionar memoria:
• Direccionamiento en el momento de compilación: generan código absoluto (siempre se
ejecuta en una dirección de memoria de inicio fija).
• Direccionamiento en el momento de la carga: maneja direcciones relativas, genera código
localizable.
• Enlace dinámico: se retarda la edición del enlace hasta el momento de ejecución.
• Overlays: permite ejecutar un programa en un espacio de memoria menor que su tamaño.
16
o Combinación: cuando un programa termina su ejecución, el sistema operativo verifica si
hay algún bloque de memoria contigua libre y los combina para genera un único bloque
de memoria libre.
o Compactación: agrupa toda la memoria disponible en un único bloque al final. Como
desventajas genera un alto consumo de CPU y obliga a detener la actividad del sistema.
• Colocación para el almacenamiento: cuando a una petición se le asigna una nueva partición
y sobra memoria el sistema operativo se da cuenta y deja este espacio sobrante como una
nueva partición:
o Best Fit: los bloques de memoria son asignado según las necesidades del programa que
se está ejecutando.
o First Fit: se asigna en la primera partición disponible en la que pueda entrar el programa,
más rápida, pero se desperdicia mucho espacio de memoria.
o Worst Fit: se asigna en la partición en la que sobra más espacio.
17
o Contadores: se asocia a cada entrada en la tabla de páginas el momento de la última vez
que se usó, cada vez que se accede a una página se actualiza el contador.
o Stack: lleva una pila con los numero de cada página, cada vez que se accede a una página
se coloca en el tope, en la cima de la pila estará la página que fue utilizada por última
vez y en el fondo la que hace más tiempo que no se accede.
• Paginación por demanda: “Swapping”, cuando un proceso va a ser ejecutado, el mismo es
paginado a la memoria, empleando la técnica lazy swapping, se necesita determinar si una
página está en memoria o en disco, se emplea el bit “valido/invalido”.
• Segunda oportunidad: variante de FIFO, cada vez que se selecciona una página se
inspecciona un bit de referencia, si el valor es cero se procede a sustituir la página, si el valor
es uno, se da una segunda oportunidad a la página y se selecciona el siguiente candidato por
criterio FIFO, cada vez que una página recibe una segunda oportunidad se cargar un cero en
el bit de referencia.
• LFU (Least Frequently Used): la página con menos cantidad de referencias debe ser
sustituida.
• MFU (Most Frequently Used): la página con mayor cantidad de referencias es la sustituida.
• Page Buffering: se mantiene una cola de “frames”, cuando ocurre un fallo de página se elige
una víctima empleando alguno de los mecanismos ya vistos, en lugar de hacer el cambio de
frame en una sola operación se carga la página en memoria y el SO descarga la página y la
agrega a la cola de “frames”.
Hiperpaginacion (thrashing): situación en la que se utiliza una creciente cantidad de recursos
para hacer una cantidad de trabajo cada vez menor cuando se cargan y descargan sucesiva y
constantemente partes de la imagen de un proceso desde y hacia la memoria principal y la
memoria virtual. Cuando se produce hiperpaginación, los ciclos del procesador se utilizan en
llevar y traer páginas (o segmentos, según sea el caso) y el rendimiento general del sistema se
degrada notablemente.
19
• Periféricos: los redirectores pueden enviar peticiones a los periféricos, con el redirector
podemos referenciar como LPT1, COM1 o USB1 impresoras de red en lugar de impresoras
locales. El redirector intercepta cualquier trabajo de impresión y lo envía a la impresión de
red especifica. La utilización del redirector permite a los usuarios no preocuparse ni de la
ubicación actual de los datos o periféricos. Para acceder a los datos de un ordenador de red
el usuario solo necesita escribir el designador de la unidad asignado a la localización del
recurso y el redirector determina el encaminamiento actual.
• Gestión de usuarios: los SO permiten al administrador de la red determinar las personas o
grupos de personas que tendrán la posibilidad de acceder a os recursos de la red así como
crear permisos de usuario controlados por el SO de red, asignar o denegar permisos de
usuario de red, eliminar usuarios de la lista de usuario que controla el SO de red… Para
simplificar la tarea de gestión de usuarios el SO permite la creación de grupos de usuarios.
Clasificando los individuos en grupos todos los miembros de un grupo tendrán los mismos
permisos asignados al grupo como una unidad.
• Compartir recursos: termino para describir los recursos que públicamente están disponibles
para cualquier usuario de la red, la mayoría de los SO también pueden determinar el grado
de compartición permitiendo diferentes usuarios con diferentes niveles de acceso a los
recursos y coordinación en el acceso a los recursos asegurando que dos usuarios no utilizan
el mismo recurso en el mismo instante.
• Gestión de la red: algunos SO de red avanzados incluyen herramientas de gestión ayudan a
controlar el comportamiento de la red, estas herramientas de gestión permiten detectar
síntomas del problema y presentar estos síntomas en un gráfico, el administrador de la red
puede tomar la decisión correcta antes de que el problema suponga la caída de la red.
20
UNIX
1. CONCEPTOS BASICOS
La última versión soporta cuatro intérpretes de ordenes (shells):
- Shell Bash: se escribió como proyecto para GNU, para proveerlo de un superconjunto de
funcionalidad con la Shell Bourne.
- Shell Job: incorpora características de control de trabajos al shell estándar.
- Shell Korn: ofrece un superconjunto de las características dl Shell del sistema, incluyendo
historial de órdenes, edición de línea de orden y características ampliadas de programación.
- Shell C: procedente del sistema BSD, comparte capacidad de control de trabajos, historia de
órdenes, capacidad de edición…
LTS (Long Term Support): termino usado para nombrar ediciones diseñadas para tener soporte
durante un período más largo que el normal, unos 5 años. Se aplica particularmente a los
proyectos de software de código abierto, como Linux. En el ámbito de los sistemas basados en
este núcleo, el término se usa en algunas versiones de distribuciones como Debian o Ubuntu,
entre otras.
21
• Tipos de archivos:
-: fichero ordinario (fichero de texto, binario ejecutable, fichero de datos…).
d: directorio (equivalente en Windows a una carpeta).
l: enlace simbólico (equivalente en Windows a un enlace directo).
b: dispositivo de bloques (interface de conexión de disco duro, unidad de CD…).
c: dispositivo de caracteres (puerto, modem…).
s: dispositivo especial de caracteres.
.(punto): carpeta actual
22
Cuando arranca el sistema debe tener por lo menos un sistema de ficheros: el directorio raíz, ya
montado. Los sistemas de ficheros que se montan de modo automático la arrancar el sistema,
se especifican en ficheros del estilo /etc/fstab (en Linux). La organización de estos ficheros son
entradas con la sintaxis (device:punto_montaje:tipo_fs:opciones:freq:passno), device es el
dispositivo que enlaza al sistema de ficheros, punto_montaje es el directorio en el que se hará
accesible, tipo_fs es el tipo de fs que vamos a usar, opciones (la opción “auto” provoca que la
ejecución de los scripts de arranque monte el dispositivo en cuestión durante el proceso de
arranque. Si no está especificada la opción auto solo se preparará al FS para un montaje más
automatizado en ejecución), freq es la frecuencia de volcado y passno orden en que se chequean
los sistemas de archivos con “fsck” al arrancar la máquina.
Puede haber dos entradas especiales:
• swap: no necesita punto de montaje.
• /proc: no está asociado a ningún dispositivo físico de la máquina ya que es un FS virtual que
actúa como interface entre las estructuras de datos del kernel y las aplicaciones.
* BitLocker: provee de cifrado del disco completo, está diseñado para proteger los datos al
proporcionar cifrado para volúmenes enteros. Por defecto se utiliza el algoritmo de cifrado
estándar AES en modo CBC con una clave de 128 bits. Tres mecanismos de autenticación:
• Modo de funcionamiento transparente: Este modo aprovecha las capacidades del módulo
de plataforma de confianza (en inglés, Trusted Platform Module, TPM). La clave utilizada
para el cifrado de disco está cifrada y solo se dará a conocer el código al sistema operativo si
los archivos de inicio a principio del arranque no han sido modificados. Este modo es
vulnerable a un ataque de arranque en frío, ya que permite el apagado de la máquina por un
atacante.
• Modo de autenticación de usuario: Este modo requiere que el usuario proporcione alguna
de autenticación al prearranque. Este modo es vulnerable a un ataque rootkit (conjunto de
software que permite un acceso de privilegio continuo “root” a un ordenador pero que
mantiene su presencia activamente oculta al control de los administradores al corromper el
funcionamiento normal del sistema operativo o de otras aplicaciones).
• Modo en dispositivos USB: El usuario debe insertar un dispositivo USB que contenga una
clave de inicio en el equipo para poder arrancar el sistema operativo protegido. Tenga en
cuenta que esta modalidad requiere que la BIOS de la máquina protegida acepte el arranque
desde dispositivos USB. Este modo también es vulnerable a un ataque rootkit.
23
o Extents: conjunto de bloques físicos contiguos, mejora el rendimiento de ficheros de
gran tamaño y reduce fragmentación.
o Compatibilidad con EXT3 sin necesidad de cambios de disco.
o Asignación persistente de espacio en el disco: permite la reserva de espacio en disco
para un fichero.
o Asignación multibloque: permite asignar los bloques para un fichero en una sola
operación, lo que reduce la fragmentación.
e2fsck: comprueba la integridad de un sistema de ficheros ext3
• ReiserFS (Reiser File System): sistema de propósito general, soportado por Linux y Windows,
soporta journaling y reparticionamiento.
o Tail packing, un esquema para reducir la fragmentación interna.
rsync: herramienta de copia y sincronización de archivos en Unix.
Un enlace fuerte “ln origen destino” (siendo “origen” el fichero existente y “destino” el
nombre del nuevo enlace). Si borramos el fichero original, el enlace simbólico permanece en
el sistema de ficheros, no referenciado (entrada inútil).
24
3. PERMISOS
Solo el propietario y el administrador tienen permiso para modificar el mapa de permisos de un
fichero, para ellos se usa la orden “chmod”:
• r: permiso de lectura.
• w: permiso de escritura o modificación, así como añadir o borrar ficheros de un directorio.
• x: permiso de ejecución.
Se organizan en tres bloques:
• Tres primeros: afectan al propietario (u) del fichero.
• Tres segundos: afectan al grupo (g) principal al que pertenece el usuario.
• Tres últimos: afecta al resto de usuarios (o).
En el momento de su creación los ficheros y los directorios obtienen una serie de permisos por
defecto:
• 666 (rw-rw-rw-): mapa total que afecta a los ficheros
por defecto del sistema.
• 777 (rwxrwxrwx): mapa total que afecta a los
directorios por defecto del sistema.
25
• Sistemas de inicio:
o upstart: desarrollado por Ubuntu, mejora la gestión de los disipativos que se conectan
en caliente.
o systemd: utilizado en Fedora y Mandriva, arranque más rápido al iniciar los servicios en
paralelo.
• Runlevels estándar (En cada uno de estos niveles init lanza servicios que se indican en el
fichero “/etc/inittab”):
Xfce: entorno de escritorio libre para sistemas tipo Unix como GNU/Linux, BSD, Solaris y
derivados. Es rápido y ligero, sin dejar de ser visualmente atractivo y fácil de usar.
5. USUARIOS Y GRUPOS
• Cuentas de usuario: cada usuario tiene una cuenta home asociada, con acceso completo a
este directorio, lo que implica que podrá crear, borrar y almacenar ficheros en este
directorio. El usuario está en por lo menos un grupo (grupo principal), puede estar en más
grupos (secundarios), el listado de usuarios y sus asignaciones a grupos se almacenan en
/etc/passwd (listado de usuarios, un registro para cada usuario del sistema con la estructura
de campos: [alias:pw_encript:UDI:GID:datos descriptivos:home_directory:default_shell])
La modificación de cuentas de usuario se efectúa con el comando usermod, este modifica
las características de una cuenta de usuario ya existente, modifica por ejemplo:
o /etc/shadow: fichero adicional donde se almacenan los passwords encriptados y los
datos para la expiración de contraseñas. (también se usa el comando “chage” SIN “N”
para cambiar la fecha de expiración de contraseñas [-e], ver el último cambio de
contraseña [-l (ele)]…)
o /etc/groups: contiene toda la información de pertenencia a grupos.
o /etc/gshadow: similar al fichero shadow de contraseñas, contiene los grupos,
contraseñas y miembros.
o /etc/login.defs: definir valores por defecto para diferentes programas como useradd.
o /etc/shells: contienen un alista de shells válidos.
26
• Cuentas de grupo: proporcionan un método para vincular a usuarios similares, agrupándolos
para agrupar un conjunto de cuentas de usuario de características similares con el propósito
de aplicar directivas de seguridad parecidas a ellas, las cuentas de grupo son similares a las
cuantas de usuario y se definen en un único fichero /etc/groups que contiene una lista con
todos los grupos y sus correspondientes miembros, los grupos también poseen un nombre
y un GID. Cuando un usuario se conecta al sistema Linux lo hace dentro de su grupo primario,
este es el grupo al que el usuario pertenece por defecto, si un usuario quiere acceder a
fichero so ejecutar programas que no están en su grupo primario, debe conmutar de grupo
aquel que este asociado con los ficheros a los que quiere acceder o con los programas que
quiere ejecutar. Solamente el root puede crear y administrar grupos, para crear un nuevo
grupo en Linux se utiliza el comando groupadd, para crear nuevos usuarios el comando
useradd y para modificar grupos ya existentes se usa el comando gpasswd:
o -M: para asignar miembros a un determinado grupo.
o -a nombreUsuario: añadir un usuario al grupo.
o -d nombreUsuario: eliminar un usuario del grupo especificado.
o -r: elimina la contraseña del grupo.
o -R: indica que no se puedan añadir usuarios nuevos el grupo especificado con el
comando newgrp.
o -A nombreUsuario [nombreUsuario]: el usuario root pueda especificar que usuarios
tienen privilegios para añadir o eliminar usuarios de los grupos, especificar las
contraseñas de grupo, este sobrescribe cualquier lista previa. Implica que todos los
nombres de usuario se deben introducir con esta opción.
groups: se utiliza para mostrar los grupos a los que pertenece el usuario en un determinado
momento, “root” es miembro de todos los grupos por defecto.
• Cuenta de root: se crea por defecto durante la instalación del SO, es la cuenta que utiliza el
administrador del sistema para realizar cualquier tarea administrativa en el sistema Linux,
se puede usar:
o Accediendo al sistema con la cuenta “root”: se puede utilizar para acceder al equipo
directamente a través de consola, solamente se puede realizar a través de la consola
principal, una vez logueado, cualquier acción que se realice en el sistema es llevada a
cabo como “root”.
o Comando SU: se puede utilizar para adquirir temporalmente los privilegios de
superusuario para realizar tareas administrativas o para ejecutar programas que
requieran privilegios de superusuario, se solicitara la contraseña de roo y si es correcta
se obtendrán lo privilegios, el comando SU puede utilizarse también para conmutar a
otras cuentas de usuario.
o Comando SUDO: permite a un administrador seleccionar ciertos comandos que pueden
ser tecleados sin ser “root” que de otra forma requerirían los privilegios de
superusuario, esto se hace editando el fichero /etc/sudoers y especificando que usuario
y que comandos podrán ejecutar dichos usuarios sin convertirse en root.
o Ficheros SUID root: es posible seleccionar un fichero que se ejecute como si fuese
lanzado por el “root” pese a que haya sido ejecutado por cualquier otro usuario del
sistema.
27
6. MANEJO DE LA SHELL
7. COMANDOS UNIX
• pwd (print working directory): directorio de trabajo actual.
• who: listado de usuarios conectados a nuestro sistema.
• id user: muestra el UID y el GID del usuario especificado, sin parámetros muestra
información de uno mismo.
• passwd user: permite cambiar la password de usuario user.
• uname: muestra información sobre el sistema actual:
o -a: información en formato largo.
o -s: nombre del sistema operativo.
o -n: nombre de la estación de trabajo
• su user: abre una sesión de user en una subshell de la shell de usuario. Utilizado sin
parámetros abre una sesión de root (pidiendo la password).
• sudo comando: ejecuta un comando con los permisos de root.
• mkdir directorio: crea un directorio.
• rmdir: borra un directorio.
• rm file o rm -r dir: borra un fichero.
• cd: directorio_destino: se desplaza al directorio de destino.
• ls directorio: muestra el contenido de un directorio.
o -a: muestra todos los ficheros.
o -l: listado completo (muestra las propiedades de cada archivo).
o -i: muestra el número de inodo.
• free: muestra datos sobre la memoria del sistema
• df (disk free): detalla el espacio total, ocupado y libre del sistema
• du (disk usage): muestra el uso en disco que realiza un conjunto de archivos en los
directorios existentes.
28
• dd: permite copiar y convertir datos de archivos a bajo nivel
o if (input file): lee desde el archivo indicado como origen
o of (output file): escribe al archivo indicado como destino
o bs: indica el tamaño de bloque en bytes (por defecto)
o count: copia el número indicado de bloques del archivo
• watch: ejecutar cualquier comando arbitrario a intervalos regulares.
• ss: se utiliza para volcar estadísticas de sockets (permite mostrar información similar a
netstat).
• whereis: localiza el archivo binario, el código fuente y la página de manual de un
determinado comando.
• which: comando de búsqueda que lista la ruta completa de un comando.
• touch: crea un fichero vacío desde el terminal de linux, si el fichero existe le cambia la fecha
y hora de modificación.
• nmap: herramienta de exploración de red y escáner de seguridad/puertos.
• top (comando linux): monitoreo de procesos y tareas, varias herramientas dedicadas:
o htop: monitoreo de CPU
o iotop: monitoreo de la información de E/S del disco
o iftop: monitoreo de red
7.1. Comandos de manejo de ficheros:
• cat file1 file2: concatena los ficheros mostrándolos por pantalla.
• pg file: muestra el contenido del fichero file y a continuación la prompt.
• head / tail ± n file: muestra las n (primeras o últimas líneas) del fichero.
• wc file: muestra el número de caracteres (-m), líneas (-l), palabras (-w) o bytes (-c) del
fichero.
• cmp file1 file2: localiza la primera diferencia entre los ficheros.
• file file: informa sobre el tipo de fichero (ASCII, binario, ejecutable…).
• cp / mv fichero_origen fichero_destino: copia / mueve el fichero origen con el nombre y
posición del fichero destino.
• sort file: ordena alfabéticamente las líneas (registros) del fichero.
7.2. Comandos de búsqueda de información:
• Find ruta patrón acción: busca los archivos que coincidan con el patrón en la ruta
especificado y ejecuta la acción indicada.
o ruta: lugar donde empieza la búsqueda
o patrón: criterio de búsqueda (-name, -size, -type, -mtime [mide el tiempo transcurrido
desde hoy hasta el parámetro]…).
o acción: acción a realizar (-print, -exec, -copy, -delete…).
• grep / fgrep (no reconoce metacaracteres) / egrep patrón fichero: busca patrón en ficheros.
o ^: seguido de una letra indica las líneas que empiezan por esa letra.
o $: precedido de una letra indica todas las líneas que acaba por esa letra.
o *: a* equivale a “aa”, a*** equivale a “aaaa”.
7.4. Comandos VI: editor de texto en consola.
w: guardar los cambios pero no sale del editor. less: visualizador de archivos de
wq: guarda los cambios y sale del editor. texto, funciona en intérpretes de
q!: sale del editor sin guardar los datos. comandos UNIX.
29
8. METACARACTERES (caracteres especiales que cumplen funciones dentro de la Shell)
• *: sustituye cualquier cadena de caracteres.
• [rango]: sustituye cualquier carácter descrito en el rango.
• $: obtiene el valor de una variable.
• ?: comodín que sustituye cualquier carácter.
• |: enlaza ordenes (convierte la salida de la primera orden en la entrada de la segunda)
orden1|orden2.
• >: redirecciona la salida. <: redirecciona la entrada.
• ;: enlaza la ejecución de dos órdenes / && (si la primera tiene éxito) / || (si la primera
fracasa).
9. ORDENES DE IMPRESIÓN
/etc/printcap: base de datos de la configuración de las impresoras (spool).
• lp y lpr: encola ficheros de texto para imprimir:
o -d: especifica impresora.
o -n: imprime un número de copias específicas.
• lprm: borra los documentos pendientes de la cola de impresion
• lpstat: monitoriza el estado de la cola de impresión:
o -p: visualiza el estado de las impresoras.
o -d: visualiza la impresora por defecto.
o -s: resumen de información de estado para todas las impresoras.
• cancel id_peticion: cancela una petición de impresión.
• pr: formatea para imprimir.
10. COPIAS DE SEGURIDAD Y ALMACENAMIENTO
• tar: agrupa ficheros pero sin “-z” no comprime. Archiva y extrae ficheros desde y hacia un
fichero de destino u origen.
o c: crea un nuevo fichero tar.
o t: lista los contenidos de un fichero tar.
o x: extrae los contenidos de un fichero tar / z: comprime los ficheros agrupados.
o f: especifica el fichero de destino.
o v: visualiza la extracción o empaquetado de ficheros.
• compress: reducir el tamaño de un fichero: (el fichero resultante tiene la extensión “.Z”)
o -v: indica la progresión de la compresión.
• uncompress: descomprimir ficheros:
o -c: muestra el contenido del fichero sin descomprimirlo.
• cpio (copy in/out): archiva o extrae información de una cita o de un fichero. Realiza un
empaquetamiento más eficiente que tar, permite la recuperación de soportes defectuosos
y posibilita escribir ficheros con distinto formato de cabecera.
o o: crea un nuevo fichero.
o i: extrae el fichero del archivo.
o c: lee la información de cabecera en ASCII (muestra los ficheros comprimidos pero sin
extraerlos).
o t: lista la tabla del contenido de la cinta / v: imprime la lista de los nombres del fichero.
• .jar: comprime y empaqueta en un entorno jvm (java virtual machine).
30
11. GESTION DE PROCESOS
Cada programa que se ejecuta en un entorno UNIX es un proceso, cuando se entra en la shell y
comienza a ejecutarse la sesión, eso es un proceso, a cada proceso se le asigna un PID, usado
por el kernel. El sistema también comienza algunos procesos llamados demonios, son programas
arrancados en tiempo de arranque y son críticos para la funcionalidad del sistema. Para
comenzar un proceso se crea un duplicado del proceso actual al que le llamaremos hijo, la
referencia de este proceso es PPID, dos modos de ejecución:
• Foreground (primer plano): suspende la interactividad de la shell hasta el fin de su ejecución.
• Background (segundo plano): se lanza añadiendo “&” al final del comando, devuelve la
prompt del sistema, el usuario es informado mediante un mensaje de la finalización del
proceso.
fg: trae a primer plano un proceso / bg: envía a background un proceso.
11.1. SEÑALES
Se usan para controlar los procesos en ejecución en el sistema, se envían a procesos para indicar
que ha corrido un evento y el proceso debe reaccionar (CTRL+c por ejemplo). Cada señal está
asociada a un único número, un nombre y una acción esperada. Su sintaxis es
(kill:señal:PID_proceso), donde la opcion :señal: realiza:
• SIGHUP (1): Hangup (reinicia teniendo en cuenta cambios de configuracion al reiniciar).
• SIGINT (2): Interrupt.
• SIGKILL (9): Kill (finaliza de golpe un proceso, no libera las instancias ocupadas).
• SIGTERM (15): Terminate (finaliza ordenadamente el proceso dando tiempo a cerrar los
buffers accedidos).
31
Los archivos de dispositivo se mapean en los correspondientes dispositivos a través del Número
menor / mayor de dispositivo.
• Número mayor: identifica el tipo de driver al que está asociado el archivo.
• Número menor: indica el número de instancia o número d unidad que ocupa el driver en
cuestión, es usado por el controlador para seleccionar características particulares del
dispositivo.
Debemos diferenciar entre dos grandes tipos de archivos de dispositivo:
• Dispositivos de bloques: escribe o lee bloque a bloque (grupos de bytes de tamaño múltiplo
de 512 o 1024 bytes).
• Dispositivos de caracteres: escriben carácter a carácter.
Los drivers de dispositivos presentan una interface estándar del kernel, cada driver tiene rutinas
(open, close, read, reset…). Dentro del núcleo, las funciones para cada controlador se mantienen
en una tabla de saltos (man mkmod), indexadas por el número mayor de dispositivo. Hay dos
tablas para dispositivos una en modo bloque y otra en modo carácter. Cuando un programa
realiza una operación sobre un archivo de dispositivo, el kernel intercepta la referencia
automáticamente, busca la función adecuada en la tabla de saltos y le transfiere el control.
Todos los sistemas proporcionan algún sistema de agregar nuevos drivers de dispositivo al
kernel, ya se modificando tablas y recompilando, o en forma de módulos cargables en tiempo
de ejecución.
12.1 ARCHIVOS DE DISPOSITIVO
Se encuentran en el directorio /dev, en este directorio puede haber cientos de dispositivos, se
crean con el comando “mkmod” (el SO crea y monta al conectar por primera vez), usa la sintaxis
(mkmod:nombre:tipo:major:minor), tipo es “c” para los archivos de caracteres y “b” para los
dispositivos de bloques.
Muchos sistemas proporcionan un script llamado MAKEDEV para aplicar de forma automatizada
los argumentos a “mkmod” para los dispositivos más comunes. En Linux, utilizamos la
abreviatura de disco o dispositivo, seguido del etiquetado del elemento y el número de partición
hda1 para la primera partición del primer disco duro).
32
CRONTAB es un archivo de texto que posee una lista con todos los scripts a ejecutar,
generalmente cada usuario del sistema posee su propio fichero Crontab. Se considera que el
ubicado en la carpeta /etc pertenece al usuario “root” (para generar el archivo propio, cada
usuario deberá hacer uso del comando crontab). Para editar el archivo se usa la opción “-e” con
la notación: (* * * * *:comando a ejecutar). Cada asterisco (*) significa, de izquierda a derecha:
• minutos: (0-59)
• horas: (0-23) Se puede usar el metacaracter “/” antes del número para
• día del mes: (1-31) indicar que la acción se haga un número determinado de veces.
• mes: (1-12)
• día de la semana: (0-6), siendo 0=domingo 1=lunes, 2=martes,... 6=sábado
33
• EXPR: Realiza operaciones, es una utilidad de cálculo aritmético que admite las siguientes
operaciones básicas (+, -, /*, /, %), solo se admiten valores enteros y deben ir entre acentos.
El programa “route” se utiliza para definir tablas de enrutamiento, cuando nuestro host necesita
acceder a recursos de más de una red lógica. (opciones: add, del, target, netmask, gw,…)
34
14.1. CONFIGURACIÓN DE LOS SERVICIOS DE RED
Servicios basados en red, en sistemas UNIX, se habilitan mediante demonios que corren en los
servidores, un demonio no es más que un programa que se activa en tiempo de arranque del
sistema y permanece a la escucha de recibir una solicitud para ofrecer un servicio, dos modos:
• standalone: un proceso escuchando un único puerto, para responder a las solicitudes.
• inetd (metademonio de red): escucha distintos puertos y reclama el servicio apropiado.
Ficheros implicados en este tipo de servicios:
o /etc/services: se reserva un puerto para cada servicio, hay una serie de puertos
reservados y los no reservados por encima del 1024 son determinados arbitrariamente.
o /etc/inetd.conf: se configuran las llamadas de inetd.
Protocolo que permite la interacción grafica en red entre un usuario y una o más computadoras
haciendo transparente la red para este de forma totalmente independiente del SO. Distribuye
el procesamiento de aplicaciones especificando enlaces cliente-servidor*. El servidor provee
servicios para acceder a la pantalla, teclado y ratón, mientras que los clientes son las aplicaciones
que utilizan estos recursos para interacción con el usuario. Debido a este esquema cliente-
servidor, se puede decir que X se comporta como un terminal gráfico virtual.
• Server Message Block (SMB): es un protocolo que permite compartir recursos en una red.
Fue modificado y renombrado, por Microsoft, como CIFS (Common Internet File system).
• Samba: es una implementación libre del protocolo SMB/CIFS que se usa en sistemas
GNU/Linux y Unix en general.
15. IPTABLES
• Cadenas (por donde van a circular los paquetes dentro del sistema):
o PREROUTING: contiene los paquetes que acaban de entrar al sistema,
independientemente de que estén generados por el mismo equipo o un equipo remoto.
o INPUT: contiene los paquetes destinados al equipo local con cualquier origen.
o OUTPUT: contiene los paquetes generados en el equipo local y que van a salir del mismo.
o FORWARD: contiene los paquetes que pasan por el equipo pero que son generados en
equipos remotos y se dirigen a otros equipos diferentes.
o POSTROUTING: contiene los paquetes que van a abandonar el sistema,
independientemente de estén generados en el mismo equipo o en un equipo remoto.
35
• Acciones (especifican qué se va a realizar con el paquete cuando satisface la regla en la que
se encuentra):
o ACCEPT: el paquete se acepta y no continúa atravesando ni la cadena actual ni cualquier
otra cadena de la misma tabla.
o DROP: el paquete se elimina completamente dentro de la cadena actual, y no será
procesado en ninguna de las cadenas principales de ninguna tabla. Tampoco se enviará
ninguna información en ninguna dirección para informar de ello.
o REJECT: el paquete se elimina completamente dentro de la cadena actual, aunque en
este caso sí que se devuelve información al equipo que envió el paquete. Sólo es válido
en las cadenas INPUT, OUTPUT y FORWARD.
o RETURN: el paquete dejará la cadena en la que se encuentre, pero continuará por la
cadena superior a esa, si es que existe.
o REDIRECT: redirige el paquete hacia el mismo equipo local donde se ejecuta Iptables.
Necesita un parámetro opcional para indicar hacia dónde se redirige (--to-ports
puertos).
• Operaciones:
o -L (--list): lista todas las reglas de la cadena.
o -A (–append): añade la regla al final de la cadena.
o -I (–insert): inserta la regla en la posición que indiquemos de la cadena.
o -D (–delete): elimina la regla de la cadena.
o -R (--replace): sustituye la regla en la cadena por la nueva.
o -F (–flush): elimina todas las reglas de la cadena.
o -P (--policy): crea una política por defecto en la cadena.
• Coincidencias (patrones de los paquetes, podremos aplicarles acciones):
o -j accion: realiza la acción (ACCEPT, DROP, QUEUE y RETURN) cuando un paquete
coincide con una regla particular.
o -p protocolo (--protocol): indica el protocolo de conexión que debe poseer el paquete.
o -s ip/máscara (--source): indica la dirección o red de origen del paquete.
o -d ip/máscara (--destination): indica la dirección o red de destino del paquete.
o -i interfaz (--in-interface): indica la interfaz de red del sistema por la que se recibe el
paquete (sólo permitido en las cadenas PREROUTING, INPUT y FORWARD).
o -o interfaz (--out-interface): indica la interfaz de red del sistema por la que se envía el
paquete (sólo permitido en las cadenas OUTPUT, FORWARD y POSTROUTING).
o --sport puerto (--source-port): indica el puerto de origen del paquete (sólo para los
protocolos TCP y UDP).
o --dport puerto (--destination-port): indica el puerto de destino del paquete (sólo para
los protocolos TCP y UDP).
36
* Arquitectura cliente servidor: modelo de diseño de software en el que las tareas se reparten
entre los proveedores de recursos o servicios, llamados servidores, y los demandantes, llamados
clientes. Un cliente realiza peticiones a otro programa, el servidor, quien le da respuesta. Esta
idea también se puede aplicar a programas que se ejecutan sobre una sola computadora, aunque
es más ventajosa en un sistema operativo multiusuario distribuido a través de una red de
computadoras.
Los servidores pueden ser apátridas o stateful. Un servidor apátrida no guarda ninguna
información entre las peticiones. Un servidor stateful puede recordar la información entre las
peticiones. El alcance de esta información puede ser global o sesión-específico. Un servidor
del HTTP para las páginas estáticas del HTML es un ejemplo de un servidor, apátrida mientras
que Apache Tomcat es un ejemplo de un servidor stateful.
Para la arquitectura C/S el remitente de una solicitud es conocido como cliente (front-end). Sus
características son:
• Es quien inicia solicitudes o peticiones, tienen por tanto un papel activo en la comunicación
(dispositivo maestro o amo).
• Espera y recibe las respuestas del servidor.
• Por lo general, puede conectarse a varios servidores a la vez.
• Normalmente interactúa directamente con los usuarios finales mediante una interfaz gráfica
de usuario.
Al receptor de la solicitud enviada por el cliente se conoce como servidor (back-end). Sus
características son:
• Al iniciarse esperan a que lleguen las solicitudes de los clientes, desempeñan entonces un
papel pasivo en la comunicación (dispositivo esclavo).
• Tras la recepción de una solicitud, la procesan y luego envían la respuesta al cliente.
Por lo general, acepta las conexiones de un gran número de clientes (en ciertos casos el número
máximo de peticiones puede estar limitado).
37
WINDOWS
Microsoft produce dos líneas separadas de sistemas operativos, una para ordenadores
personales y otra para servidores. Versiones más importantes:
• Windows NT: primera versión, orientada a computadoras personales, necesitaba gran
cantidad de recursos
• Windows 95 y 98.
• Windows 2000: muy útil para los administradores de sistemas y con una gran cantidad de
servicios de red, implementaba la posibilidad del “plug and play”, alguna de las
características más destacables.
o Soporte para FAT32 y NTFS.
o Cifrado de ficheros (EFS).
o Sistema RAID.
o Servicios de acceso remoto (RAS, VPN, RADIUS…).
o Active Directory.
• Windows XP: nueva interfaz, mayores capacidades multimedia, multitarea mejorada,
soporte para redes inalámbricas…
• Windows Server: basada en el núcleo de XP con servicios añadidos.
• Windows 7: mayor compatibilidad con aplicaciones y hardware, mejor interfaz, sistema de
redes domesticas simplificado y fácil de usar denominado “Grupo en el hogar”, mejoras de
rendimiento…
• Windows 10: introdujo una arquitectura de aplicaciones universales, desarrolladas con la
interfaz “modern UI”, orientado al uso con ratón y al uso con pantalla táctil, introduce la
vista de tareas, un sistema de escritorio virtual y el asistente Cortana.
38
▪ Volúmenes simples: contienen el espacio en un único disco.
▪ Volúmenes seccionados (striped): combina espacio libre de dos o
más discos físicos en un único volumen, este proceso de división
de los datos entre varios discos mejora el rendimiento del disco.
▪ Volúmenes distribuidos (spanned): usa dos o más discos físicos
de forma que se rellena el primer disco y después el segundo y
así sucesivamente.
39
1.2. CARPETAS Y RECURSOS COMPARTIDOS
El sistema crea varios recursos compartidos especiales como ADMIN$ (aparece como C$, D$,
E$...), permiten a los administradores conectarse a unidades que en otro caso no estarían
compartidas. Existen como parte de la instalación del SO:
• ADMIN$: se utiliza durante la administración remota de un equipo, solo los administradores,
operadores de copia y operadores de servidores se pueden conectar a este recurso
compartido.
• C$: carpeta raíz de la unidad específica.
• IPC$: utilizado durante la administración remota y cuando se revisan los recursos
compartidos, es esencial en la comunicación y no se debe cambiar, modificar o eliminar.
• NETLOGON: servicio Inicio de sesión de red de un servidor que ejecuta Windows NT Server
cuando procesa los únicos de sesión en el dominio.
• PRINT$: soporta impresoras compartidas.
• REPL$: se crea en un servidor cuando un cliente de fax está enviando el fax.
El objeto principal en una red es compartir archivos entre los distintos equipos, en sistemas
Microsoft vamos a compartir siempre carpetas nunca archivos. La forma más sencilla de crear
carpetas compartidas es utilizar la consola MMC con el complemento de carpetas compartidas,
le asigna un nombre identificativo y se asignan los permisos correspondientes. Se pueden definir
recursos compartidos y una única carpeta puede ser compartida más de una vez, un recurso
compartido podría incluir control total para administradores y otro recurso compartido para
usuarios podría ser más restrictivo.
Los permisos de recursos compartidos se pueden asignar a usuarios individuales, a grupos y a
las entidades especiales “Todos”, SYSTEM, INTERACTIVE, NETWORK y Usuarios autentificados.
Carpetas que comparte el sistema por defecto:
• C$
• IPC$: comunicación entre procesos.
• ADMIN$: ruta %systemroot%.
• Print$: administración de impresoras.
1.3. CONFIGURACION DE RED EN WINDOWS XP
Dos métodos para asignar direcciones IP a un dispositivo de red TCP/IP:
• Direccionamiento estático: se especifica físicamente la dirección IP.
• Direccionamiento dinámico: protocolo DHCP, configurado de forma predeterminada para
obtener una dirección IP automáticamente de un servidor DHCP. Utilidades que permiten
diagnosticar problemas de red:
o arp: muestra y permite modificar las tablas de protocolo arp, convertir direcciones IP de
cada ordenador en direcciones MAC.
o ftp: conectarse a otra maquina a través del protocolo FTP para transferir archivos.
o ipconfig: configuración de todos las interfaces.
▪ /flushdns: purga la cache de resolución de DNS.
o net: administrar usuarios, carpetas compartidas, servicios…
o netstat: listado de todas las conexiones de red que nuestra maquina está realizando.
o nslookup: obtener la dirección IP conociendo el nombre, y viceversa; permite que el
usuario consulte de forma manual los servidores de nombres para resolver un nombre
de host dado.
40
o ping: paquetes IP, comprobar la conexión, informa del tiempo que tarda en contestar la
maquina destino.
o pathping: la ruta que sigue cada paquete para llegar a una IP determinada, tiempo de
respuesta de cada uno de los nodos por los que pasa y las estadísticas de cada uno de
ellos.
o route: ver o modificar las tablas de enrutamiento de red.
Un equipo puede estar configurado en modo:
• Grupo de trabajo: cada máquina se administra de forma independiente, es una
agrupación de equipos en una red que comparte recursos, todos los equipos pueden
compartir recursos como elementos iguales sin servidor dedicado.
• Dominio: todas las maquinas son controladas por un equipo llamado controlador de
dominio.
1.4. USUARIOS Y GRUPOS
El fichero “NTUSER.DAT” se encarga de guardar las configuraciones y preferencias de cada
usuario de Windows. Cada usuario tendrá su propio fichero dentro de su carpeta personal, y
cuando inicia sesión se carga este fichero en el registro para dar forma al perfil de usuario.
• Administradores: pueden acceder a todos los componentes, configuración, instalar
programas, crear nuevos usuarios…
• Usuarios: usar el equipo y almacenar sus archivos en las carpetas del equipo.
• Usuario Avanzado: similar a usuario con más derechos administrativos.
• Cuentas de usuario en red: registradas en el equipo servidor, pueden iniciar sesión en
cualquier equipo de la red, las cuentas de usuario local son el único tipo de cuenta en un
grupo de trabajo que se crea en el equipo que se va a utilizar, pero reside en una base de
datos de cuentas denominada administrador de seguridad SAM.
Los usuarios y contraseñas se almacenan en system32/config y cada usuario tiene un SID
(security identifier) único. La configuración especifica de un usuario queda guardada en su perfil,
en la carpeta %HOMEPATH% (Documents and settings/User), los perfiles existentes son:
• Usuario permanente: base de todos los perfiles de usuario.
• Usuario local: perfiles creados en un equipo cuando un usuario inicia sesión, el perfil es
especifico a un usuario y local al equipo. Se crean en los equipos cuando los usuarios
individuales inician sesión y la primera vez que un usuario inicia sesión en un equipo, se
genera una carpeta de perfil para el usuario y los contenidos de la carpeta Default User se
copian a ella. Si un usuario tiene una cuenta local en el equipo además de una cuenta de
dominio, tendrá dos carpetas de perfil en el equipo local, una para cuando inicie sesión
localmente y otra para cuando inicie sesión en el dominio.
• Usuario móvil: perfiles creados por un administrador y almacenados en un servidor, después
del inicio de sesión del usuario sea autentificado en el servicio de directorio se copia al
equipo local. Se crea una carpeta compartida con los usuarios que tengan perfiles móviles.
Se introduce una ruta de acceso a esa carpeta en la ventana propiedades del perfil de los
usuarios, cuando el usuario cierra la sesión, el perfil se almacena tanto localmente como en
la ubicación de la ruta de acceso al perfil del usuario.
• Usuario obligatorio: lo crea el administrador del sistema con determinada configuración
para uno o varios usuarios, puede convertir perfiles móviles en obligatorio si se cambia el
nombre del archivo de perfil de Ntuser.dat en Ntuser.man
41
1.4.2. ACCESO REMOTO
Remote Desktop Protocol (RDP): es un protocolo que permite la comunicación en la ejecución
de una aplicación entre una terminal (mostrando la información procesada que recibe del
servidor) y un servidor Windows (recibiendo la información dada por el usuario en el terminal
mediante el ratón o el teclado), bajo el puerto TCP 3389. La información gráfica que genera el
servidor es convertida a un formato propio RDP y enviada a través de la red al terminal, que
interpretará la información contenida en el paquete del protocolo para reconstruir la imagen a
mostrar en la pantalla del terminal. Para acceder al cliente del protocolo se ejecuta mstsc
(Microsoft Remote Desktop Connection), en ese momento se tiene acceso a todas las
aplicaciones, archivos y recursos, mientras se utiliza el equipo de forma remota, nadie podrá
usarlo de forma local, provocaría el cierre de la sesión remota.
1.5. SERVICIOS
Son aplicaciones que se ejecutan en segundo plano y que el sistema ejecuta de forma
predeterminada al iniciar o cuando es necesario (como los demonios de UNIX).
• Estado: modo de funcionamiento actual del servicio (Detenido, pausado, iniciado).
• Tipo de inicio:
o Manual: mediante intervención del usuario.
o Automático: cada vez que arranca el SO, arranca el servicio.
o Deshabilitar: no se puede iniciar.
Se puede parar o arrancar servicios desde la línea de comandos con el comando “net”:
• net start: inicializa un servicio / net stop: detiene un servicio que se encuentra en ejecución.
• net continue: inicia de nuevo un servicio interrumpido.
• net user: para la gestión de usuarios
• net name: agrega o elimina un alias.
• net sesión: muestra y gestiona una lista con las sesiones conectadas a un equipo local.
• net accounts: actualiza la base de datos y modifica las directivas de seguridad.
• net computer: agrega o quita equipos en una base de datos de dominios.
• net group: agrega o elimina grupos globales
• net localgroup: agrega elimina grupos locales.
• net share: comparte carpetas o impresoras (recurso compartido) para ser utilizadas en red.
• net config: muestra o modifica los servicios configurables que están en ejecución.
• net file: muestra los nombres de todos los archivos compartidos abiertos en un servidor.
• net help: muestra la ayuda de un comando
• net helpmsg: muestra la ayuda de un error.
• net print: muestra la cola de impresión
• net statistics: muestra estadísticas del servicio local.
• net view: muestra un listado de los recursos compartidos de un equipo.
1.6. IMPRESORAS
• Servidor de impresión: ordenador al que se mandan los documentos para imprimir.
• Impresora: interfaz entre aplicación e impresión.
• Dispositivo de impresión.
• Cola de impresión: lista de documentos que se están imprimiendo.
• Spool de impresión: software que se encarga de administrar la cola de impresión.
42
• Pool de impresoras: dirigir desde una única impresora los documentos hacia varios
dispositivos de impresión.
Puertos:
o Impresoras locales: USB, COM, LPR (compatible con UNIX).
o Impresoras de red: para compartir una impresora local, se comparten los drivers de
dicha impresora con TCP/IP, quedan incluidos en la carpeta PRINT$ con la ruta
%systemroot%/system32/spool/drivers.
43
2.1. PROCESO DE ARRANQUE
1. La BIOS accede al MBR indicando cual es la partición activa.
2. Se accede al sector de arranque de dicha partición (creando al instalar el SO).
3. Este sector de arranque direcciona al fichero BOOTMGR (en Windows NT, XP y Server
2003 se usa NTLDR “NT Loader”).
4. BOOTMGR accede al fichero BOOTBCD, es un archivo binario, no editable mediante
procesador de textos, se encuentra en la partición de 200MB.
5. Inicio del sistema ejecutamos el kernel y ubicado en el fichero NTOSKRNL.exe
2.2. NOVEDADES
• Se añaden a los tipos de usuarios ya vistos en Windows XP:
o Operadores de copia de seguridad: pueden hacer copias de seguridad y restaurar
archivos de un equipo.
o Replicador: cuenta de usuario de dominio que se usa para iniciar sesión en servicios de
replicador de un controlador de domino.
• Compartición de carpetas: permite compartir archivos de las carpetas públicas con otras
personas con el mismo equipo y con personas que usen otros equipos en la misma red.
• Servicios: se añade un nuevo modo de inicio, Automático (inicio retrasado), retrasa el inicio
del servicio hasta después de completarse el proceso de arranque de Windows.
• Impresoras: se añaden el formato XPS (XML Paper Specification) y Location-Aware Printing,
la impresora por defecto se modifica automáticamente cuando se detecta el cambio de
conexión a una nueva red.
• Además de trabajar con los tipos de discos ya vistos en Windows XP, también soporta el
trabajo con dos nuevos tipos de discos:
o Discos MBR (Master Boot Record): discos tradicionales, en los que se crea una tabla de
particiones con un máximo de cuatro, en el primer sector del disco duro.
o Discos GPT (GUID Partition Table): contiene un array de entradas de particiones que
indican la dirección del bloque inicial y final de cada partición en el disco.
44
3.1. SISTEMA Y SEGURIDAD
Incorpora FIDO (Fast Identity Online) una tecnología de autenticación en factores múltiples,
incluye soporte mejorado para la autenticación biométrica (Windows Hello), las credenciales se
almacenan localmente y están protegidas mediante cifrado asimétrico.
La plataforma “Passport” permitirá a las redes, software y sitios web verificar la identidad del
usuario mediante un PIN o un inicio de sesión biométrico, los administradores establecen
normativas para el cifrado de datos automático y bloquear selectivamente las solicitudes de
acceso a datos cifrados.
Device Guard, permite a los administradores reforzar la seguridad de un espacio digital,
mediante el bloqueo de la ejecución de software que no está firmado digitalmente por un
proveedor de confianza o Microsoft, también incluye Sensor de almacenamiento, permite al
usuario ver de qué forma la capacidad de almacenamiento de su dispositivo está siendo utilizado
por diferentes tipos de archivos.
SCCM (Microsoft System Center Configuration Manager): solución de software de
administración que permite gestionar de forma centralizada la configuración de todos los
sistemas físicos y virtuales de una organización o grupo de organizaciones permitiendo, entre
otras características, control remoto, gestión de actualizaciones y parches, distribución de
software, despliegue de sistemas operativos, protección, cumplimiento e inventariado de
software y de hardware. Desde la versión 1910, se llama ECM (Microsoft Endpoint Configuration
Manager).
Combina el SO del equipo y de red en un mismo sistema, configura un equipo para proporcionar
funciones y recursos de servidor a una red y las funciones de cliente de red. Trabaja sobre una
modelo de dominio, es una colección de equipos y usuarios que comparten unas políticas de
seguridad y una base de datos común (catalogo global).
45
Se debe designar un servidor como controlador principal de domino (PDC, Primary Domain
Controller). Este servidor mantiene los servicios de directorios y autentifica cualquier usuario
que quiera entrar en el sistema. Los servicios de directorios de Windows Server se pueden
implementar de varias formas, existen cuatro modelos de domino:
• Dominio único: un único servidor mantiene la base de datos de seguridad y de las cuentas.
• Maestro único: una red con maestro único puede tener diferentes dominios, pero se designa
uno como el maestro y mantiene la base de datos de las cuentas de usuario. Incluye varios
roles y la capacidad de transferir roles a cualquier controlador de dominio de la empresa.
Dado que un rol de Active Directory no está enlazado a un solo controlador de dominio, se
conoce como un rol FSMO (Flexible Single Master Operations). Actualmente en Windows
hay cinco roles FSMO:
o Maestro de esquema: se encarga de procesar actualizaciones del esquema de directorio.
Una vez completada la actualización de esquema, se replica desde el patrón de esquema
a todos los demás DCs del directorio.
o Patrón de nomenclatura de dominio: se encarga de agregar o quitar un dominio del
directorio. También puede agregar o quitar referencias cruzadas a dominios en
directorios externos.
o Patrón de RID: responsable de quitar un objeto de su dominio y colocarlo en otro
dominio durante un movimiento de objeto. Cuando un controlador de dominio crea un
objeto de entidad de seguridad, como un usuario o grupo, adjunta un identificador de
seguridad (SID, security identifier) único al objeto. Consta de un SID de dominio que es
el mismo para todos los SID creados en un dominio y de un RID (relative identifier) que
es único para cada SID de entidad de seguridad creado en un dominio.
o Emulador PDC: el emulador PDC es necesario para sincronizar el tiempo en una
empresa. Windows incluye el servicio de tiempo W32Time, que requiere el protocolo
de autenticación Kerberos*. Se encarga de los cambios de contraseña realizados por
otros controladores de dominio en el mismo, se replican de forma preferente en el
emulador de PDC, cuando se producen errores de autenticación en un controlador de
dominio determinado debido a una contraseña incorrecta, los errores se reenvían al
emulador de PDC antes de que se informe al usuario de un mensaje de error de
contraseña incorrecto, el bloqueo de cuentas se procesa en el emulador PDC y este
realiza todas las funciones.
* Kerberos: protocolo de autenticación de redes de ordenador, permite a dos
ordenadores en una red insegura demostrar su identidad mutuamente de manera
segura mediante autenticación mutua: tanto cliente como servidor verifican la
identidad uno del otro. Kerberos se basa en criptografía de clave simétrica y requiere
un tercero de confianza. Además, existen extensiones del protocolo para poder utilizar
criptografía de clave asimétrica.
46
• Maestro múltiple: incluye diferentes dominios y la base de datos de la cuenta se mantiene
en más de un servidor.
• Confianza completa: existen varios dominios, ninguno esta designado como maestro, sino
que todos confían completamente en el resto.
Sus características principales son:
• Gestión mediante la consola de administración MMC.
• Servicios de distribución de Windows (WDS), evolución de RIS, para la implementación de
los sistemas operativos en múltiples equipos.
• Nuevo entorno de Windows PowerShell que permite programar scripts de administración y
tener acceso a los recursos de las aplicaciones desde la propia interfaz, es un intérprete de
comandos orientado a objetos. La información de entrada y de salida en cada etapa del
proceso (cmdlet, "comándulo") es un conjunto de instancias de objeto, a diferencia de lo
que ocurre con los intérpretes de comandos tradicionales, que devuelven y reciben texto.
o get-item: lista archivos o carpetas
o get-childitem: lista los archivos o carpetas de un sistema de archivos
o get-command: lista todos los comandos
o get-process: lista los procesos activos del equipo local
o remove-item: borra archivos o carpetas
o copy-item: copia archivos o carpetas
o set-location: sitúa el directorio de trabajo en un directorio concreto
o clear-content: borra el contenido de un objeto pero no el propio objeto
o clear-item: limpia el contenido de un objeto pero no el propio objeto
o remove-item: borra un objeto especifico
o get-WmiObject: muestra el listado de software instalado por Windows Installer
o get-history: obtiene el historial de comandos introducidos
o get-service: lista los servicios en el puesto de usuario
Versiones:
• Web Edition: servidores WEB fundamentalmente y servidores de aplicaciones, incluye .NET
Framework, IIS con ASP.NET, servidor de aplicaciones, carece de servicios como Active
Directory y es posible instalar una versión core del mismo. Soportar un máximo de 2 GB de
RAM y dos CPU.
• Standar Edition: proporcionar servicios básicos y recursos a otros sistemas a través de una
red. Soporta hasta 32 GB de memoria en sistemas de 64 bits.
• Enterprise Edition: mayor escalabilidad y disponibilidad, dispone de servicios de clustering y
Active Directory, soporte para el intercambio de RAM en caliente, soporta un máximo de 2
TB de RAM en sistemas de 64 bit.
• Datacenter Edition
47
4.1. CARACTERÍSTICAS
Windows Server trabaja con Active Directory, este se
centra en la administración de los recursos de la red
organizativa, independientemente de la ubicación física
de dichos recursos, y de la topología de las redes
subyacentes. Los objetos de Active Directory representan
usuarios y recursos, como por ejemplo, los ordenadores
y las impresoras. La estructura lógica de Active Directory
se compone de objetos, clases de objetos, unidades
organizativas, dominios, árboles de dominios y bosques:
• Objetos: componentes básicos de la estructura
lógica. Algunos objetos representan entidades
individuales de la red, como un usuario o equipo
(hojas) y no pueden contener otros objetos. Sin
embargo, para facilitar la administración y simplificar la organización del directorio, se
pueden colocar objetos “hoja” dentro de otros objetos denominados objetos contenedor.
Los objetos contenedores también pueden contener otros contenedores de forma anidada,
o jerárquica. Cada objeto puede definirse mediante unas plantillas o modelos definidos por
unos atributos y valores (clases de objetos).
• Unidades organizativas: tipo más común de objeto contenedor y se pueden utilizar para
organizar otros objetos con propósitos administrativos, por ejemplo dividir una empresa en
departamentos. Organizando éstos es más fácil localizar y administrar objetos. También es
posible delegar la autoridad para administrar estas unidades organizativas de manera que
haya administradores de cada una de ellas.
Importación de usuarios con la herramienta de comando CSVDE: permite la
importación/exportación de objetos de AD desde o hacia un archivo de texto (Formato CSV).
• Dominios: se usan para agrupar objetos relacionados con el fin de reflejar la red de una
organización, son colecciones de los objetos administrativos definidos, que comparten en
una base de datos común del directorio, políticas de la seguridad y relaciones de confianza
con otros dominios. Cada dominio que se crea almacena información acerca de los objetos
que contiene. Los dominios proporcionan un límite administrativo para los objetos, medios
de administrar la seguridad para los recursos compartidos y una réplica para los objetos.
• Árbol de dominios: dominios agrupados en estructuras jerárquicas que permiten el uso
compartido de recursos globales. Cuando se agrega un segundo dominio a un árbol, se
convierte en hijo del dominio raíz y este a su vez puede tener sus propios hijos,
combinándose con el nombre de su padre para formar su propio y único.
• Bosque: nivel más alto, pueden agruparse árboles dispares para formar un bosque. Un
bosque permite combinar divisiones diferentes en una organización o, incluso, pueden
agruparse organizaciones distintas. El primer dominio en el bosque se llama Dominio raíz
del bosque y el nombre de ese dominio se refiere al bosque, por ejemplo miempresa.com.
Por defecto, la información en Active Directory se comparte solamente dentro del bosque.
De esta manera, la seguridad del bosque estará contenida en una sola instancia de Active
Directory. Así que la mayoría de las veces nuestra organización será de un sólo dominio
(miempresa.com) dentro de un solo bosque.
48
Grupos de usuario: facilita al administrador las tareas de mantenimiento y gestión de los
usuarios, pueden ser organizados en grupos y aplicar sobre ellos actualizaciones de forma
simultánea, tres tipos de grupos:
• Grupos globales: pueden contener cuentas de usuario y otros grupos globales del mismo
dominio, se usan para las tareas más cotidianas de gestión dentro del mismo domino, no se
propagan a otros dominios del mismo bosque.
• Grupos locales: a los miembros de los grupos locales solo se les pueden asignar permisos
dentro de un mismo dominio, los grupos locales pueden contener dentro de ellos cuentas
de cualquier domino, grupos globales de cualquier domino, grupos universales de cualquier
dominio y grupos locales del mismo dominio.
• Grupos universales: contienen cuentas de cualquier dominio del bosque, grupos globales de
cualquier dominio del bosque y grupos universales de cualquier dominio del bosque, a estos
grupos se le s pueden asignar permisos en cualquier dominio del bosque, son útiles para
consolidar grupos que abarquen varios dominios, debe limitarse su uso a casos
indispensables.
4.1.1. SERVICIOS
Con el tiempo, Microsoft ha agregado servicios adicionales bajo el estandarte de Active
Directory que proporciona un framework para otros servicios similares.
• Certificate Server Active Directory (AD CS): servicios y funcionalidades que permite que un
servidor emita certificados digitales para asegurar los sistemas y las comunicaciones en red.
• Servicios de Domino de Active Directory (AD DS): proporcionar los servicios de directorio en
un dominio, emite certificados digitales para asegurar los sistemas y las comunicaciones en
red.
• Servicios de Federación de Active Directory (AD FS): complementan las características de
autenticación y gestión de acceso que proporciona AD DS, extendiéndolas a la WEB, la
gestión de los accesos a los sistemas y recursos desde el exterior, internet.
• Servicios de directorio activo ligero de Active Directory (AD LDS): almacén de datos a las
aplicaciones de datos a las aplicaciones basadas en la utilización del directorio, puede ser
empleado en grupos de trabajo.
• Active Directory Rights Management Services (AD RMS): capa de seguridad en la protección
de la información de la organización, proteger los accesos no autorizados, establecimiento
de relaciones de confianza.
49
4.2. GESTIÓN DE POLÍTICAS DE GRUPO
Ofrecen infraestructura, centralizan las configuraciones que se implementan en los usuarios y/o
equipos. En un entorno administrativo mediante directivas de grupo todas las configuraciones
se realizan a través de objetos de política de grupo (GPO) ejecutando “gpedit.msc”, pueden
afectar a una OU, a un sitio o a un domino. Mediante directivas de grupo se puede configurar
prácticamente todo desde la configuración de seguridad, la implementación de software, las
directivas de contraseñas y auditoría. El método más habitual de delimitar el ámbito de un GPO
es vincularlo a un sitio, dominio o OU a través de GPMC. Las GPO se gestionan a través de la
Group Policy Management Console (GPMC), puede tener tres estados:
• No configurada: el GPO no modificara la configuración existente de esa configuración
particular para el usuario o grupo.
• Habilitada o deshabilitada: se producirá un cambio en la configuración de usuario so equipos
a los que se aplique dicha directiva.
Las configuraciones de directivas se aplican cuando se inicia una sesión de usuario y después
requieren el cierre de sesión, pero es posible forzar la actualización de directivas con comando
“gupdate/target:equipo” o “gupdate/target:usuario”. Las Directivas de Grupo se procesan:
• Sitio: el ordenador procesa todas las políticas de grupo que se aplican al sitio en el que se
encuentra actualmente el equipo.
• Dominio: cualesquiera políticas aplicadas en el nivel de dominio (ámbito de la política por
defecto) se procesan a continuación.
• Unidad organizativa: último grupo de políticas asignado a la unidad organizativa que
contiene la computadora o el usuario que se procesan.
gpresult: muestra información del conjunto de directivas para un usuario y equipo remotos.
gpupdate: actualiza la configuración de directiva de grupo.
50
4.4. GESTIÓN DE DISCOS
Windows Server utiliza particiones MBR (Master Boot Record) y GPT (GUID Partition Table) al
igual que Windows 7, la herramienta fundamental para la gestión de discos es “diskpart”, se
pueden configurar tres tipos de discos:
• Básico: pueden dividirse en porciones de almacenamiento más pequeñas denominadas
particiones, dos tipos de particiones en un disco básico: primaria y extendida y esta a su vez
se puede dividir en particiones lógicas.
• Dinámico: da la posibilidad de administrarlo sin la necesidad de reiniciar en la
mayoría de las ocasiones, ampliar un volumen de disco, extender un volumen entre
múltiples discos duros, realizar secciones de un volumen para mejorar su
rendimiento, hacer un espejo o añadirlo a un array RAID 5, todo desde MMC y sin
tener que reiniciar, la creación inicial o conversión de un disco básico a disco
dinámico si necesitara reinicio. Se pueden organizar en simples, stripped y spanned.
• Extraíble: propio de unidades de disco extraíble.
Se dispone de una herramienta grafica “Administrador de cuotas del administrador de recursos
del servidor de archivos”, dos tipos de cuotas:
• Cuotas de disco NTFS: se emplean para administrar la utilización del espacio de disco que
hacen los usuarios. Se configuran por volumen, es posible configurar mensajes de
advertencia, para definir los límites de uso de disco: denegar espacio de disco a usuarios que
excedan el límite de cuota, limitar espacio de disco, establecer el nivel de advertencia.
• Cuotas de disco del administrador de recursos: permiten gestionar el espacio ocupado por
carpetas y volúmenes cuando un usuario se aproxima o exceda la cuota recibirá un aviso.
4.4. GESTION DE IMPRESIÓN EN WINDOWS SERVER
Está diseñado para la impresión en red, las aplicaciones envían los trabajos de impresión a las
impresoras conectadas a un servidor de impresión de Windows Server. Varias configuraciones
básicas de clientes, servidores y dispositivos de impresión, dependiendo de si es remoto o no:
• Dispositivo de impresión local no remoto: esta enchufada a un puerto del ordenador, el
controlador de la impresora y la cola de trabajos están en esa computadora que envía los
datos a directamente al dispositivo de impresión.
• Pequeño grupo de equipos que comparten un dispositivo de impresión en red: una red
donde cada ordenador tienen igual acceso al dispositivo de impresión y no hay un control
central de impresión o de seguridad, cada equipo tiene su propia cola de trabajos y no puede
ver los documentos en la cola en el dispositivo de impresión por otras computadoras.
• Servidor central de impresión: el acceso al dispositivo de impresión es a través del servidor
que está conectado localmente al dispositivo de impresión, la cola de trabajos se encuentra
en el servidor y es visible para cada cliente.
• Varios clientes que comparten un dispositivo de impresión en un dominio: el dispositivo de
impresión se conecta al servidor a través de la red, permitiendo que un servidor de
impresión que administre varios dispositivos de impresión.
Una página de separación es un archivo que contiene órdenes del dispositivo de impresión,
identifica y separar los documentos impresos y cambia entre los modos de impresión (se pueden
utilizar páginas de separación para determinar el lenguaje de descripción de página, PostScript
o PCL).
51
Windows incluye cuatro archivos de páginas de separación de forma predeterminada, pero se
pueden crear páginas de separación personalizadas creando un archivo “.sep”:
• Pcl.sep: cambia el modo de impresión a PCL.
• Pscript.sep: cambia el modo de impresión a PostScript
• Sysprint.sep: imprime una página antes de cada documento, compatible con PostScript.
• Sysprtj.sep: una versión de “Sysprint.sep” que utiliza caracteres japoneses.
Para que un servidor de impresión de Windows server soporte páginas web es necesario instalar
en el servidor de impresión los servicios de información de internet (IIS Internet Information
Services). Se crea un directorio virtual Printers debajo del sitio web predeterminado, este
directorio apunta a la carpeta %systemroot%\web\printers.
52
DAG (Database Availability Group): contiene servidores de buzones de correo que se convierten en
miembros del DAG. Una vez que un servidor de buzones de correo es miembro de un DAG, las bases
de datos de buzones de ese servidor se pueden copiar a otros miembros del DAG. Asumiendo que
no haya problemas de replicación y que las bases se encuentren disponibles, dentro de un DAG de
Exchange estas pueden encontrarse “Mounted (Activa)” o “Healthy (Pasiva)”. En ningún caso una
misma base de datos puede estar activa en más de un servidor a la vez.
53
6.2. IOS
Esta limitado a la instalación en hardware propietario, la versión más actual es IOS 13.2. Deriva
del sistema operativo de ordenadores Mac (OS X), es un sistema UNIX, la pantalla principal
(SpringBoard).
* Swift: lenguaje de programación multiparadigma creado por Apple enfocado en el desarrollo
de aplicaciones para iOS y macOS.
* FileVault: tecnología que proporciona capacidades de cifrado para todo el sistema de
almacenamiento principal de un equipo macOS, usando el método de encriptación AES.
* Gatekeeper: es una función de seguridad de macOS. Hace cumplir la firma de código y verifica
las aplicaciones descargadas antes de permitir que se ejecuten.
o PaaS (Platform): ofrece todo lo necesario para soportar el ciclo de vida completo de
desarrollo/construcción y puesta en marcha (deploy) de aplicaciones y servicio web
mediante lenguajes o herramientas soportadas por el proveedor (java, phyton…).
Proporciona control completo sobre las aplicaciones desplegadas y sobre los ajustes de
configuración de estas, es usado principalmente por desarrolladores. (Servicios de
Azure, Google App Engine, OpenShift…)
54
* OpenShift: producto de computación en la nube de plataforma como servicio de Red
Hat. Los desarrolladores pueden usar Git para desplegar sus aplicaciones Web en los
diferentes lenguajes de la plataforma. OpenShift se encarga de mantener los servicios
subyacentes a la aplicación y la escalabilidad de la aplicación como se necesite.
* Origin, la versión de código abierto de Open Shift, utiliza Docker para la gestión de
contenedores y Kubernetes para la gestión de grupos de contenedores. Todo el código
del proyecto está disponible sobre la licencia Apache en GitHub.
* Azure DevOps: anteriormente Team Foundation Server (TFS), es un producto de
Microsoft que proporciona control de versiones, informes, gestión de requisitios,
gestion de proyectos, building automatizado y testing.
o SaaS (Software): las aplicaciones del proveedor son accesibles como servicios, el
consumidor no controla la infraestructura ni las capacidades de las aplicaciones. (Office
365, Suit de Google…)
Git: software de control de versiones, eficiencia, confiabilidad y compatibilidad del
mantenimiento de versiones de aplicaciones cuando estas tienen un gran número de
archivos de código fuente. Comandos GIT:
• init: creará un nuevo repositorio local GIT.
• clone: se usa para copiar un repositorio
• add: agregar archivos al área de preparación.
• commit: creará una instantánea de los cambios y la guardará en el directorio git.
• config: establecer una configuración específica de usuario, como el email, user…
• status: muestra la lista de los archivos que se han cambiado junto con los archivos
que están por ser preparados o confirmados.
• push: se usa para enviar confirmaciones locales a la rama maestra del repositorio
remoto.
• checkout: crea ramas y te ayuda a navegar entre ellas.
• remote: lista los repositorios remotos.
• branch: listar, crear o borrar ramas.
• pull: fusiona todos los cambios que se han hecho en el repositorio local con el
directorio de trabajo local.
• merge: fusionar una rama con otra rama activa.
• diff: hacer una lista de conflictos.
• tag: marca commits específicos.
• log: se usa para ver el historial del repositorio listando ciertos detalles de la
confirmación.
• reset: sirve para resetear el index y el directorio de trabajo al último estado de
confirmación.
• rm: remover archivos del index y del directorio de trabajo.
• stash: guardará momentáneamente los cambios que no están listos para ser
confirmados
• fetch: buscar todos los objetos de un repositorio remoto que actualmente no se
encuentran en el directorio de trabajo local.
• show: mostrar información sobre cualquier objeto git.
• grep: permite al usuario buscar frases y palabras específicas en los árboles de
confirmación, el directorio de trabajo y en el área de preparación.
55
Bitbucket: servicio de alojamiento basado en web, para los proyectos que utilizan el sistema de
control de versiones Mercurial y Git, similar a GitHub.
* Software MDM (mobile device management): es un tipo de software que permite asegurar,
monitorizar y administrar dispositivos móviles sin importar el operador de telefonía o proveedor
de servicios. La mayoría de las MDM permiten instalar aplicaciones, localizar y rastrear equipos,
sincronizar archivos, reportar datos y acceder a dispositivos, todo esto de manera remota.
* MobileIron: un MDM que permite la seguridad y la gestión de dispositivos móviles como
teléfonos inteligentes y tabletas en un entorno empresarial, así como el acceso móvil seguro a
los datos empresariales.
56
• Encapsulación de servicios: muchos servicios están consolidados para el uso de SOA. A
menudo, estos servicios no fueron planificados para estar en un SOA.
• Transparencia de ubicación de servicios: se refiere a la capacidad de un consumidor de
servicios para invocar a un servicio independientemente de su ubicación en la red. Esto
también reconoce la propiedad de descubrimiento (uno de los principios fundamentales de
SOA) y el derecho de un consumidor para acceder al servicio. A menudo, la idea de la
virtualización de servicios también se refiere a la transparencia de ubicación. Aquí es donde
el consumidor simplemente llama a un servicio lógico, mientras que un SOA habilita la
ejecución del componente de la infraestructura, normalmente un bus de servicios, que
mapea este servicio lógico y llama al servicio físico.
57
El estilo de microservicios tiene implicaciones en el manejo de las actualizaciones las cuales
tradicionalmente han usado transacciones para garantizar la consistencia. Las transacciones
imponen un acoplamiento temporal lo que se vuelve problemático cuando hay varios
servicios. Como las transacciones distribuidas son mucho más difíciles de implementar, las
arquitecturas de microservicios promueven la coordinación no transaccional entre servicios,
con el reconocimiento explícito que la consistencia puede ser una consistencia eventual y
los problemas son compensados operativamente. El sistema merece la pena siempre y
cuando el costo de solucionar los errores sea menor que el costo de perder negocios por
una mayor consistencia. Los microservicios no obligan a tener distintas tecnologías de
almacenamiento, solo lo permiten.
• Diseño tolerante a fallos: las aplicaciones necesitan ser diseñadas de modo que puedan
tolerar las fallas de los distintos servicios. Cualquier llamada de servicio puede fallar y el
cliente tiene que ser capaz de responder a esto con la mayor facilidad y eficacia posible,
evitando los muy habituales fallos en cascada de las arquitecturas distribuidas.
• Automatización de la infraestructura: la mayoría de los productos y sistemas desarrollados
con el enfoque de microservicios han sido construidos por equipo que usan entrega
continua y su precursor la integración continua.
• Diseño evolutivo: cuando se divide el sistema en servicios hay que tener en cuenta que cada
uno tiene que poder ser reemplazado o actualizado de forma independiente. Es decir, tiene
que permitir una fácil evolución. El diseño del servicio tiene que ser de tal forma que evite
en lo posible que la evolución de los servicios afecte a sus consumidores.
AMQ de Red Hat: es una plataforma de mensajería flexible que permite la integración en
tiempo real y la conexión a Internet de las cosas (IoT).
58
TEMA 4 – ESTRUCTURAS, ALGORITMOS Y FORMATOS DE INFORMACIÓN
59
• Lista: estructura de datos secuencial, sus datos se ordenan de forma consecutiva. Se
clasifican, por la manera de acceder al siguiente elemento en:
o Lista densa: la propia estructura determina cual es el siguiente elemento de la lista.
o Lista enlazada: la posición del siguiente elemento de la estructura la determina el
elemento actual, es dinámica, su tamaño cambia durante la ejecución del programa. Es,
a su vez, un elemento de información y un enlace hacia una lista (un nodo).
• Pila (LIFO: Last In First Out): estructura de datos secuencial de acceso restrictivo a sus
elementos, la recesividad de simula en un ordenador con la ayuda de una pila.
• Cola (FIFO: First In First Out): estructura de datos secuencia l de acceso restrictivo, el primero
que llegue será el primeo en entrar.
• Arbol: estructura de datos no secuencial, un elemento o clave de información con (nodo)
más un numero finito de estructuras tipo árbol llamadas subárboles, si cada nodo tiene un
número de hijos igual o inferior a 2, será un árbol binario y si las alturas de los dos subárboles
de todo nodo difieren a lo sumo en 1 será un árbol binario balanceado (AVL). Por el contrario
si no tienen ningún nodo se llama árbol vacío o nulo.
o Conceptos sobre arboles:
▪ Raíz: nodo superior de un árbol (no tiene antecesor).
▪ Hijo: nodo conectado directamente con otro superior a través de una rama.
▪ Padre: nodo conectado directamente con otro inferior a través de una rama.
▪ Hoja: nodo que no tiene hijos.
▪ Nodo interno: aquel que tiene al menos un hijo.
▪ Grado de un nodo: número de hijos directos que tiene.
▪ Altura de un nodo: número de ramas en el camino más largo entre ese nodo y una
hoja.
▪ Grado de un árbol: igual al grado del nodo con más hijos.
▪ Altura de un árbol: igual a la altura de su raíz.
▪ Nivel: 1 + (el número de ramas entre el nodo y la raíz).
▪ Anchura: el mayor valor del número de nodos que hay en
un nivel.
o Recorridos en arboles binarios:
▪ Recorrido preorden: procesar primero la raiz, después
procesar el subárbol izquierdo y por último el subárbol
derecho.
▪ Recorrido inorden: procesa el subárbol izquierdo hacia
arriba, con su raiz, y después el subárbol derecho hacia
abajo con su raíz.
▪ Recorrido postorden: primero el subárbol
izquierdo, después el subárbol derecho, y por
último el nodo actual. Permite borrar el árbol
de forma consistente.
• Grafo: conjunto de elementos llamados vértices o nodos que se encuentran unidos entre si
mediante enlaces llamadas aristas. Terminología:
o Camino: lista de vértices en la que dos elementos sucesivos están conectados por una
arista del grafo.
o Grafo conexo: existe un camino desde cualquier nodo del grafo hasta cualquier otro.
60
o Camino simple: camino entre dos nodos en el que ningún nodo ser repite, si tiene como
primer y último nodo el mismo se denomina ciclo.
o Grafo completo: Grafo que cuenta con todas las aristas posibles, si le falta poco para ser
completo será un grafo denso mientras que si tiene pocas aristas será disperso.
o Grafo dirigido: las aristas llevan asociado un sentido de desplazamiento, cuando la arista
se puede recorrer en cualquier sentido, hablamos de grafos no dirigidos.
o Grafo ponderado: las aristas tienen un coste asociado denominado peso.
Árbol recubridor (o árbol de expansión): dado un grafo conexo y no dirigido, es un subgrafo que
tiene que ser un árbol y contener todos los nodos (vertices) del grafo inicial.
* Kruskal: algoritmo de la teoría de grafos para encontrar un árbol recubridor mínimo en un
grafo conexo y ponderado.
3. ORGANIZACIONES DE FICHEROS
3.1. CONCEPTOS Y DEFINICIONES
• Memoria principal: poca capacidad de almacenamiento, volátil y de acceso rápido.
• Memoria secundaria: capacidad de almacenamiento ilimitada, la información esta
almacenada permanentemente y el acceso es lento, ya que la información tiene que ser
transportada desde el dispositivo externo hasta la memoria principal, el área de memoria
principal destinada a recibir esta información se llama “Buffer”.
• Registro lógico: colección de información relativa a una entidad particular va a contener a
todos aquellos campos lógicamente relacionados referentes a una determinada entidad.
• Archivo o fichero: colección de registro relacionad entre si con aspectos en común y
organizados. Los datos en los archivos deben estar organizado de tal forma que puedan ser
recuperado fácilmente actualizaos o borrados.
• Base de datos: colección de archivos a los que puede accederse por un conjunto de
programas y contiene todos ellos datos relacionados.
• Clave: campo o conjunto de campos de dato que identifica al registro y lo diferencia del
resto de registros del fichero.
• Registro activo: registro lógico que va a procesarse en la siguiente operación del fichero.
• Apuntador: marca interna que siempre apunta al registro activo.
• Registro físico o bloque: la cantidad más pequeña de datos que puede transferirse en una
operación de entrada/salida. La adaptación consiste en empaquetar en cada bloque tantos
registros lógicos como se pueda, el empaquetamiento puede ser de tipo fuerte o débil,
según se permita o no aprovechar el sobrante de un bloque, situando registros a caballo
entre dos bloques contiguos.
• Factor de bloqueo: el número de registros lógicos que puede contener un registro físico.
61
• Ficheros temporales: datos relevantes para un proceso so programa, se utilizan para
actualizar los ficheros permanentes.
o Ficheros de movimiento: almacenan resultados de un programa que han de ser
utilizados por otro, dentro de una misma tarea.
o Ficheros de maniobras: almacenar datos propios de un programa que este no puede
conservar en memoria principal, por falta de espacio en esta (programas de cálculo,
editores…).
o Ficheros de resultados: almacenar datos elaborados que van a ser transferidos a un
dispositivo de salida.
62
▪ El área de índices tiene la misma estructura que un fichero secuencial puto done
cada registro contiene dos campos, el primer campo contiene la clave del último
registro de cada segmento y el segundo campo contiene la dirección de entrada a
cada uno de los segmentos.
▪ El área de excedentes alberga todos aquellos registros que no han tenido cabida en
el área primaria.
El proceso a seguir para realizar una consulta por clave sin necesidad de leer los registros
que le anteceden es:
1. Leer secuencialmente las claves en la zona de índices hasta encontrar una mayor o
igual a la del registro a buscar.
2. Leer secuencialmente el área primaria a partir de la dirección obtenida hasta
encontrar el registro buscado.
▪ Ventajas:
- Especialmente útil cuando se debe combinar consultas a registros concretos y el
procesamiento secuencial de todo el archivo.
▪ Desventajas:
- Imposibilidad de realizar actualizaciones, no permite la inserción de nuevos
registros en el área primaria después de la creación del fichero.
3.4. INDICES
Un índice para un archivo funciona como el catálogo de libros de una biblioteca. Donde si se
quiere buscar algún libro se busca por el índice deseado. De este modo, podremos mirar
directamente en ese índice sin necesidad de recorrer completamente todos los libros de la
biblioteca. Tipos básicos de índices:
• Índices ordenados: Estos índices están basados en una disposición ordenada de los valores.
o Índices primarios: todos los archivos están ordenados secuencialmente según el campo
clave (se denominan archivos secuenciales indexados). Estos los empleamos en aquellas
aplicaciones que demandan un procesamiento secuencial del archivo completo, así
como un acceso directo a sus registros.
o Índice denso: en el cual aparece un registro índice para cada valor de la clave búsqueda
en el archivo. El registro índice contiene el valor de la clave y un puntero al primer
registro con ese valor de la clave de búsqueda.
63
o Índice disperso: solo se crea un registro índice para algunos de los valores. Al igual que
en los índices densos, cada registro índice contiene un valor de la clave de búsqueda y
un puntero al primer registro con ese valor de la clave. Para localizar un registro se busca
la entrada del índice con el valor más grande que sea menor o igual que el valor que se
está buscando.
A pesar de ser más rápido localizar un registro si se usa un índice denso, a veces es mejor
utilizar el esquema de índice disperso para utilizar un espacio más reducido y un
mantenimiento adicional menor para las inserciones y borrados.
o Índices multinivel: incluso si se usan índices dispersos, el propio índice podría ser
demasiado grande para un procesamiento eficiente.
• Índices secundarios: un indice secundario sobre una clave candidata es como un indice
denso primario, excepto que los registros apuntados apuntados por los sucesivos valores
del indice no estan almacenados secuencialmente. En este esquema, debemos usar un nivel
adicional de indireccion para implementar los indices secundarios sobre claves de busqueda
que no sean claves candidatas. Los punteros a estos indices no apuntan directamente al
archivo. En vez de eso, cada puntero apunta a un cajon que contiene punteros al archivo.
• Índices asociativos (hash): Estos índices están basados en una distribución uniforme de los
valores a través de una serie de cajones. El valor asignado a cada cajón está determinado
por una función de hashing.
4. ALGORITMOS
64
o Inserción directa: sublista ordenada de elementos del array, insertando el resto en el
lugar adecuado para que la sublista no pierda el orden.
o Inserción binaria: mismo método que la inserción directa, excepto la búsqueda del orden
de un elemento en la sublista ordenad se realiza mediante una búsqueda binaria.
o Shell: mejora del método de inserción directa, utilizando cuando el array tiene un gran
número de elementos. No se compra a cada elemento con el de su izquierda, como en
el de inserción, sino con el que está un cierto número de lugares (llamado salto). Se van
dando pasadas hasta que el salto vale 1.
o Burbuja (Bubblesort): revisando cada elemento de la lista que va a ser ordenada con el
siguiente, intercambiándolos de posición si están en el orden equivocado. Es necesario
revisar varias veces toda la lista hasta que no se necesiten más intercambios. También
conocido como método del intercambio directo dado que solo usa comparaciones para
operar elementos, se lo considera un algoritmo de comparación.
o Ordenamiento rápido (Quicksort): el algoritmo elije un elemento del conjunto a ordenar
al que llama pivote, a partir de él resitúa los demás elementos a cada lado del mismo,
de manera que a un lado queden lo menores que él y al otro los mayores, se repite este
proceso de forma recursiva para cada sublista mientras éstas contengan más de un
elemento. Una vez terminado este proceso todos los elementos estarán ordenados.
o Ordenamiento Radix (Radix sort): se basa en la clasificación de los datos que queremos
ordenar por una clave. Dicha clave ha de ser una característica de cada dato que pueda
ser descompuesta en elementos más pequeños que permitan clasificar los elementos
poco a poco (unidades, decenas, centenas…). Para ordenar los elementos tenemos que
crear un número finito de urnas, de forma que en cada urna los elementos estén
relacionados por la clave y que así podamos separarlos.
65
5. FORMATOS DE INFORMACION
• Ficheros con información de texto: solo contienen ASCII estándar, no presentan problemas
de presentación, los más notables son los ficheros readme, léame… se incluyen los formatos
de la web (HTML) que son también texto ASCII.
▪ .pfx (Personal Information Exchange): se utiliza en los servidores de Windows para
los archivos que contienen tanto los archivos de clave pública (sus archivos de
certificados SSL) y su clave privada que corresponde a sus certificados (generado por
el servidor).
▪ .csv (comma-separated values): tipo de documento en formato abierto sencillo para
representar datos en forma de tabla, en las que las columnas se separan por comas
y las filas por saltos de línea.
• Texto formateado: el contenido es principalmente ASCII, pero acompañado de múltiples
caracteres específicos de control de formato y presentación (docx, pdf, xls,…).
• Ficheros con información de imagen: ficheros con imágenes estáticas o animadas y formatos
para diseño gráfico, dos formas básicas para almacenar imágenes: ráster y vectorial.
o Ráster: consiste en descomponer la imagen en una serie de puntos y almacenar el color
y brillo de cada uno de estos puntos, más definición cuanto mayor sea el número de
puntos (JPG, PNG, ICO, JNG, MNG…).
▪ JPEG: algoritmo de compresión con perdida, flexibilidad a la hora de ajustar el grado
de compresión. Convierte la imagen desde su modelo de color RGB a otro llamado
YCbCr. Puede reducirse la información cromática a la mitad, 4:2:2 (reducir en un
factor de 2 en dirección horizontal), con lo que el color tiene la mitad de resolución
(en horizontal) y el brillo sigue intacto. Otro método, muy usado, es reducir el color
a la cuarta parte, 4:2:0, en el que el color se reduce en un factor de 2 en ambas
direcciones, horizontal y vertical. Si la imagen de partida estaba en escala de grises
(blanco y negro), puede eliminarse por completo la información de color, quedando
como 4:0:0.
- HSB (Hue, Saturation, Brightness – Matiz, Saturación, Brillo).
- Resolución: La resolución de una imagen es el número de píxeles por pulgada
que contiene. Ésta se expresa en PPP (puntos por pulgada en español) o DPI
(dots per inch en inglés).
- Profundidad de color: o bits por píxel (bpp) es un concepto de la computación
gráfica que se refiere a la cantidad de bits de información necesarios para
representar el color de un píxel en una imagen digital.
▪ PNG: nivel de compresión que casi no presenta perdidas (predicción del valor de
pixel), permite el uso de transparencias.
▪ TIFF: manejar imágenes y datos en un solo archivo, sin pérdidas.
▪ GIF: baja calidad y ofrece una escasa profundidad de colores, permite unir varios
cuadros para formar una animación.
▪ EXIF (Exchangeable Image File Format): es una especificación para formatos de
archivos de imagen usado por las cámaras digitales.
▪ HEIF (High Efficiency Image File Format): es un formato de archivo informático para
almacenar imágenes y secuencias de estas. Realmente es un contenedor flexible de
imágenes con compresión, considerado actualmente uno de los posibles sustitutos
de JPG.
66
o Vectorial: cada elemento es definido por sus propiedades matemáticas, una línea entre
dos puntos puede ser definida como una recta, usadas para dibujo de tipo técnico,
mapas geográficos (DWG, DWF,…).
▪ .swf (Small Web Format): es un formato de archivo de gráficos vectoriales, pueden
ser creados por Flash o por aplicaciones de software libre. Son ejecutados sobre el
navegador mediante el plugin de Flash player.
▪ SVG (Scalable Vector Graphics): es un lenguaje usado para dibujar y representar
gráficos vectoriales escalables, imágenes y logotipos, o sea que son gráficos que
pueden manipularse con CSS y JavaScript.
• Ficheros con información compuesta: documentos que integran texto con imágenes o
gráficos (PostScript, PDF,…).
• Ficheros con información comprimida: se desarrollaron distintos algoritmos de compresión
(ZIP, RAR,…).
• Ficheros de audio: multitud de “códecs” (MP3, MIDI,…).
• Ficheros ejecutables: pueden ser ejecutados directamente en el ordenador, alguno tiene la
sola finalidad de desempaquetar un cierto contenido que vienen incluido en el propio
fichero (EXE, COM,…).
“.ods” extensión del equivalente a Excel en Oracle.
67
TEMA 5 – MODELO CONCEPTUAL, REGLAS DE MODELIZACIÓN Y DFD
68
Existen sistemas que precisan de información orientada al control de datos y requieren flujos y
procesos de control, así ́ como los mecanismos que desencadenan su ejecución. Para que resulte
adecuado el análisis de estos sistemas, se ha ampliado la notación de los diagramas de flujo de
datos incorporando los siguientes elementos:
• Proceso de control: representa procesos que coordinan y sincronizan las actividades de
otros procesos del diagrama de flujo de datos.
• Flujo de control: representa el flujo entre un proceso de control y otro proceso. El flujo de
control que sale de un proceso de control activa al proceso que lo recibe y el que entra le
informa de la situación de un proceso. A diferencia de los flujos tradicionales, que pueden
considerarse como procesadores de datos porque reflejan el movimiento y transformación
de los mismos, los flujos de control no representan datos con valores, sino que en cierto
modo, se trata de eventos que activan los procesos (señales o interrupciones).
La descomposición por niveles se realiza de arriba abajo (top-down), es decir, se comienza en el
nivel más general y se termina en el más detallado, pasando por los niveles intermedios
necesarios. De este modo se dispondrá́ de un conjunto de particiones del sistema que facilitaran
su estudio y su desarrollo.
La explosión de un proceso de un DFD origina otro DFD y es necesario comprobar que se
mantiene la consistencia de información entre ellos, es decir, que la información de entrada y
de salida de un proceso cualquiera se corresponde con la información de entrada y de salida del
diagrama de flujo de datos en el que se descompone, para ello se debe comprobar:
• No falten flujos de datos de entrada o salida que acompañaban al proceso del nivel superior.
• No aparezca algún flujo que no estuviese ya asociado al proceso de nivel superior.
• Todos los elementos del DFD resultante deben estar conectados directa o indirectamente
con los flujos del proceso origen.
2. MODELO ENTIDAD/RELACIÓN
Es una herramienta para el modelo de datos, la cual facilita la representación de entidades de
una base de datos y las relaciones entre ellas. Se suele desarrollar en dos fases:
1. Se elabora el diagrama entidad/relación.
2. Se completa el modelo con listas de atributos y una descripción de otras restricciones que
no se pueden reflejar en el diagrama.
El modelo está basado en una colección de objetos básicos (llamados entidades), de relaciones
entre esos objetos y de atributos los mismos.
• Entidad: representa un “objeto” del mundo real con existencia independiente, es decir, se
diferencia únicamente de otro objeto o cosa, incluso siendo del mismo tipo o una misma
entidad (Ejemplo: una persona se diferencia de cualquier otra persona, incluso siendo
gemelos). Todos los valores que toman los atributos de la entidad deben tener las mismas
propiedades. Existen dos clases de entidades:
o Fuertes: tienen existencia por sí mismos. Nombre
70
o Grado: número de entidades participantes en la relación. (Si relacionan una entidad
consigo misma se llaman reflexivas).
o Cardinalidad: número de entidades con la cual otra entidad puede asociar mediante una
relación binaria, pueden ser de tres tipos: 1-1, 1-N y N-N.
Además, se dice que una relación es exclusiva cuando la existencia de una relación entre dos
tipos de entidades implica la no existencia de las otras relaciones.
• Atributos: unidad básica de información, características que definen o identifican a una
entidad, cada entidad tiene valores específicos asignados para cada uno de sus atributos, de
esta forma, es posible su identificación unívoca. (Ejemplo: a la colección de entidades
“alumnos”, con el siguiente conjunto de atributos en común, (id, nombre, edad, semestre),
pertenecen las entidades:
o (1, Ana, 15 años, 2), (2, María, 19 años, 5), ... Atributo
3. MODELO RELACIONAL
Un SBDRelacional se caracteriza por presentar sus datos siguiendo las Reglas de Codd:
• Regla 0 (fundacion): Cualquier sistema que se proclame como relacional, debe ser capaz de
gestionar sus bases de datos enteramente mediante sus capacidades relacionales.
• Regla 1 (informacion): la información en la base de datos es representada
unidireccionalmente por valores en posiciones de las columnas dentro de filas de tablas.
Toda la información en una base de datos relacional se representa explícitamente en el nivel
lógico exactamente de una manera: con valores en tablas.
• Regla 2 (acceso garantizado): Todos los datos deben ser accesibles sin ambigüedad. Cada
valor escalar individual en la base de datos debe ser lógicamente direccionable
especificando el nombre de la tabla, la columna que lo contiene y la clave primaria.
• Regla 3 (tratamiento sistematico de valores nulos): el SGBD debe permitir que haya campos
nulos. Debe tener una representación de la «información que falta y de la información
inaplicable» que sea sistemática y distinta de todos los valores regulares.
• Regla 4 (catálogo dinámico): El sistema debe soportar un catálogo en línea, el catálogo
relacional, que da acceso a la estructura de la base de datos y que debe ser accesible a los
usuarios autorizados. El catálogo de sistema es una colección de tablas especiales en una
base de datos que son propiedad, están creadas y son mantenidas por el propio DBMS. Estas
tablas del sistema contienen datos que describen la estructura de la base de datos.
• Regla 5 (sublenguaje global de datos): El sistema debe soportar por lo menos un lenguaje
relacional que tenga una sintaxis lineal, pueda ser utilizado de manera interactiva y tenga
soporte de operaciones de definición de datos, operaciones de manipulación de datos
(actualización así como la recuperación), de control de la seguridad e integridad y
operaciones de administración de transacciones.
71
• Regla 6 (actualización de vistas): Todas las vistas que son teóricamente actualizables deben
poder ser actualizadas por el sistema.
• Regla 7 (alto nivel de inserción, actualización y borrado): los datos no solo se pueden
recuperar de una base de datos relacional a partir de filas múltiples y/o de tablas múltiples,
sino que también pueden realizarse inserciones, actualizaciones y borrados sobre varias
tuplas y/o tablas al mismo tiempo y no solo sobre registros individuales.
• Regla 8 (independencia física de los datos): Los programas de aplicación y actividades del
terminal permanecen inalterados a nivel lógico aunque se realicen cambios en las
representaciones de almacenamiento o métodos de acceso.
• Regla 9 (independencia lógica de los datos): Los programas de aplicación, actividades del
terminal y vistas, permanecen inalterados a nivel lógico aunque se realicen cambios a las
tablas base que preserven la información.
• Regla 10 (independencia de la integridad): Las reglas de integridad* se deben especificar por
separado de los programas de aplicación y almacenarse en la base de datos. Debe ser posible
cambiar esas restricciones sin afectar innecesariamente a las aplicaciones existentes.
• Regla 11 (independencia de la distribución): La distribución de porciones de base de datos
en distintas localizaciones debe ser transparente para los usuarios de la base de datos.
• Regla 12 (no subversion): Si el sistema proporciona una interfaz de bajo nivel de registro,
aparte de una interfaz relacional, esa interfaz de bajo nivel no debe permitir su utilización
para subvertir el sistema. Por ejemplo para sortear las reglas de seguridad relacional o las
restricciones de integridad (no puede tener backdoors).
72
o Regla de integridad de unicidad de la clave primaria: establece que toda clave primaria
que se elija para una relación no debe tener valores repetidos.
o Regla de integridad de entidad de la clave primaria: dispone que los atributos de la clave
primaria de una relación no pueden tener valores nulos.
o Regla de integridad referencial: está relacionada con el concepto de clave foránea.
Concretamente, determina que todos los valores que toma una clave foránea deben ser
valores nulos o valores que existen en la clave primaria que referencia.
o Regla de integridad de dominio: implica que todos los valores no nulos que contiene la
base de datos para un determinado atributo deben ser del dominio declarado para dicho
atributo (enteros, string,...).
73
• Polimorfismo: hace referencia a un conjunto de métodos con el mismo nombre e igual
número de parámetros y tipos, pero que se encuentran definidos en diferentes clases.
• Sobrecarga: capacidad de un lenguaje de programación, que permite definir dos o más
métodos con el mismo nombre pero parámetros diferentes en cantidad y/o tipo.
• Modularidad: una opción importante para la escalabilidad y comprensión de programas,
además de ahorrar trabajo y tiempo en el desarrollo.
• Relación: una relación o vínculo entre dos o más entidades describe alguna interacción entre
las mismas.
4. NORMALIZACION
La normalización de bases de datos es un proceso que consiste en aplicar una serie de reglas a
las relaciones (tablas) obtenidas tras el paso del modelo entidad-relación al modelo relacional.
Con objeto de minimizar la redundancia de datos, facilitando su gestión posterior para:
• Minimizar la redundancia de los datos.
• Disminuir problemas de actualización de los datos en las tablas.
• Proteger la integridad de datos.
El proceso de normalización se basa en relaciones de dependencia entre los datos:
o Dependencia funcional reflexiva: a partir de cualquier atributo o conjunto de atributos
siempre puede deducirse él mismo (A->B). Si la dirección o el nombre de una persona están
incluidos en el DNI, entonces con el DNI podemos determinar la dirección o su nombre.
o Dependencia funcional aumentativa/completa: si A->B, entonces AC->BC (si con el DNI se
determina el nombre de una persona, entonces con el DNI más la dirección también se
determina el nombre y su dirección).
o Dependencia funcional transitiva: si A->B->C, entonces A->C (entonces entendemos que
FechaDeNacimiento determina a Edad y la Edad determina a Conducir, indirectamente
podemos saber a través de FechaDeNacimiento a Conducir).
74
• 4FN: una entidad está en 4FN, si está en 3FN y no tiene dependencias funcionales
multivaluadas no triviales.
• 5FN: una entidad está en 5FN, si está en 4NF y cada dependencia de unión (join) en ella es
implicada por las claves candidatas.
75
TEMA 6 - DFD, MODELO E/R Y SGBD (RELACIONALES, OBJETOS Y NOSQL)
76
• Atomicity: asegurar que la transacción realizada este completa sin que exista la posibilidad
de que haya quedado a media debido al algún fallo.
• Consistency: si la base de datos estaba en un estado correcto antes del inicio de la
transacción debe acabar la transacción en un estado correcto.
• Isolation: si se están ejecutando varias transacciones simultáneamente, el sistema debe
asegurar que se realizan de manera independiente unas de otras.
• Durability: terminada la transacción, se debe asegurar que los resultados quedan registrados
en la base de datos.
77
o LMD de alto nivel: se pueden utilizar de manera independiente para especificar
operaciones complejas de base de datos en forma concisa, como SQL, pueden
especificar y recuperar muchos registros con una sola instrucción de LMD, suelen
especificar qué datos hay que obtener y no como obtenerlos, se denominan también
declarativos.
o LMD de bajo nivel: deben estar embebidos en un lenguaje de programación de propósito
general, recupera registros u objetos individuales de la base de datos y los procesa por
separado, necesita utilizar elementos de lenguajes de programación, como los bucles,
para recuperar y procesar cada registro individual de un conjunto de registros.
• Lenguaje de datos relacionales SQL: en los actuales DBMS se utiliza un amplio lenguaje
integrado que cuenta con elementos para definir esquemas conceptuales, definir vistas,
manipular datos y definir su almacenamiento, representa una combinación de LDD, LDV y
LMD, así como sentencias para especificación de restricciones y evolución del esquema.
1.5 HERRAMIENTAS
• CASE (Computer Aided Software Engineering): aplicaciones informáticas o programas
informáticos destinadas a aumentar el balance en el desarrollo de software reduciendo el
costo de las mismas en términos de tiempo y de dinero.
• Powerbuilder: entorno para desarrollar aplicaciones de gestión de bases de datos. Puede
trabajar con las bases de datos más utilizadas (Oracle, MySQL, MS SQL Server…). Además,
dispone de un lenguaje propio que permite programar en la propia BD llamado Powerscript.
78
▪ Las llaves primarias son la clave principal de un registro dentro de una tabla y estas
deben cumplir con la integridad de datos.
▪ Las llaves ajenas se colocan en la tabla hija, contienen el mismo valor que la llave
primaria del registro padre; por medio de estas se hacen las formas relacionales.
o Ejemplos de bases de datos relacionales: SQL Server, Oracle, Ingres, MySQL, MariaDB
(evolución de MySQL), PostgreSQL, DB2, Heidi, SQLite, Firebird…
• Orientado a Objetos: diseñada siguiendo el paradigma de los lenguajes orientados a objetos.
De este modo soporta los tipos de datos gráficos, imágenes, voz y texto de manera natural.
Un Sistema de Gestión de Bases de Datos Orientado a Objetos debe cumplir las siguientes
características:
o Persistencia: los datos deben mantenerse después de que la aplicación que los creo haya
finalizado el proceso que los creó.
o Concurrencia: debe controlar la interacción entre las transacciones concurrentes para
evitar que se destruya la consistencia.
o Recuperación: proveer mecanismos de recuperación de la información como mínimo al
nivel de los SGBD relacionales.
o Independencia lógica y física: debe evitar que los programadores tengan que escribir
programa para mantener índices y asignar almacenamiento en disco.
o Identidad del objeto: los objetos deben tener un identificador independiente de los
valores de sus atributos.
o Soporta objetos complejos: debe ser posible construir objetos complejos aplicando
constructores a objetos básicos.
o Encapsulamiento: los programadores solo tienen acceso a la especificación de interfaz
de los métodos, los datos de implementación de estos métodos están ocultos en los
objetos.
o Tipos o clases: esquema de una BDOO contiene un conjunto de clases o tipos y deben
ser capaz de heredar de sus supertipos o superclases los atributos y métodos (estos
soportan sobrecarga ,es decir, deben poder aplicarse a diferentes tipos).
▪ Clase: es una plantilla para la creación de objetos de datos según un modelo
predefinido. Las clases se utilizan para representar entidades o conceptos, como los
sustantivos en el lenguaje. Cada clase es un modelo que define un conjunto de
variables y métodos apropiados para operar con dichos datos. Cada objeto creado
a partir de la clase se denomina instancia de la clase.
- Superclases y subclases: las clases pueden derivar desde otras clases. La clase
derivada (la clase que proviene de otra clase) se llama subclase. La clase de la
que está derivada se denomina superclase.
- Clase abstracta: funcionan como una clase que declara la existencia de métodos
pero no su implementación. No puede tener métodos privados, y uno de sus
métodos debe ser abstracto, pero no todos.
▪ Métodos: procedimientos y funciones que se invocan para actuar sobre los objetos
y especifican cómo se ejecuta un mensaje. Los campos y métodos de una clase
pueden definirse de tipo public, protected y private, por defecto son públicos.
▪ Interfaces: definen un comportamiento, son clases completamente abstractas que
contiene sólo una colección de métodos abstractos y propiedades constantes. Si se
desea utilizar un método que no ha implementado el usuario se utiliza una interfaz.
79
➢ Lenguajes de datos:
▪ ODL (Object Description Language): es empleado para facilitar la portabilidad de los
esquemas de las bases de datos, no es un lenguaje de programación completo,
define las propiedades y lo prototipo de las operaciones de los tipos, pero no los
métodos que implementan esas operaciones, intentan definir tipos que puedan
implementarse en diversos lenguajes, no está ligado a la sintaxis concreta de un
lenguaje de programación particular, es una extensión de IDL (Interface Definition
Languaje).
▪ OML (Object Manipulation Language): es empleado para la elaboración de
programas que permitan crear, modificar y borrar datos que constituyen la base de
datos.
▪ OQL (Object Query Language): es el equivalente a SQL, presenta las siguientes
características:
- Las consultas pueden invocar métodos: los métodos escritos en cualquier
lenguaje de programación pueden incluir consultas.
- Sintaxis abstracta.
- Semántica formal puede definirse fácilmente.
- Acceso declarativo a los objetos.
- Sintaxis concreta al estilo SQL.
- No proporciona operadores explícitos para la modificación.
- Proporciona primitivas de alto nivel para tratar con conjuntos de objetos
80
A menudo, las bases de datos NoSQL se clasifican según su forma de almacenar los datos:
o Clave-valor: funcionan con una clave indexada asociada a un valor, que desde el punto
de vista de la base de datos es información opaca (asociada a la clave) que simplemente
almacena y recupera. Están diseñadas para escalar masivamente manteniendo un
tiempo de respuesta muy rápido y disponibilidad total. Se suelen usar para almacenar
información de sesión, preferencias o perfiles de usuario, carritos de la compra y en
general como cachés de cualquier conjunto de información que se pueda recuperar por
una clave.
▪ Ejemplos: Cassandra, DynamoDB, Redis, Riak o Aerospike
o Orientadas a documentos: el concepto principal es el de documento, mayoritariamente
en formato JSON para almacenar y consultar información, cada base de datos puede
utilizar distintas codificaciones para los documentos, el direccionamiento de los
documentos se realizará a través de una clave que identificará de forma única al mismo.
Permiten gestionar información con complejas estructuras jerárquicas, y ofrecen índices
secundarios y completos lenguajes de consulta y agregación de datos.
▪ Ejemplos: MongoDB (puerto 27017), CouchDB o CouchBase
o Orientadas a grafos: la información se almacena en los nodos de un grafo (entidades),
representando las relaciones mediante las aristas. Tanto las entidades (nodos del grado)
como las relaciones (aristas) pueden además tener atributos. Recorrer las uniones entre
entidades a través de estas relaciones es el fuerte de las bases de datos orientadas a
grafos, y permiten hacerlo con gran velocidad, independientemente del volumen de
datos (caso de uso más conocido de este tipo de bases de datos son las redes sociales).
▪ Ejemplos: Neo4j (cypher: lenguaje de consulta para BD Neo4j), OrientDB o Titan
o Orientadas a columnas: similares a una tabla en las bases de datos relacionales, se
definen familias de columnas antes de cargar los datos, la estructura de estos datos
debe ser conocida con anterioridad. Organizan los datos de una forma distinta al modelo
relacional, los datos están organizados penando en operaciones de columna para
ejecutar operaciones de agregación o realizar búsquedas de registro a través de
múltiples columnas, cada registro no requiere un único valor por columna, en su lugar,
se pueden modelar familias de columnas. No requiere que los campos siempre estén
presentes, aunque almacene valores nulos, si es información que no existe, no se
incluye.
▪ Ejemplos: Hbase
• Las bases de datos NoSQL no cumplen el modelo ACID, en su caso, se cumple el modelo BASE,
un enfoque similar pero perdiendo la consistencia y el aislamiento a favor de la disponibilidad
la degradación y el rendimiento:
o Basic Availability: sistema funciona incluso cuando alguna parte falla debido a que el
almacenamiento sigue los principios de distribución y replicación.
o Soft State: los nodos no tienen por qué ser consistentes.
o Eventual Consistency: la consistencia se produce de forma eventual.
81
2.1. TEOREMA DE CAP (BREWER)
En un sistema distribuido no se puede garantizar de forma
simultánea la consistencia, la disponibilidad y la tolerancia
al particionado, solo una combinación de dos de ellas:
o Consistency: garantizar que la información
almacenada en los nodos sea la misma.
o Availability: garantizar que la información almacenada
en los nodos este siempre disponible.
o Partition tolerance: garantizar que el sistema
distribuido sigue funcionando, aunque algún nodo
falle.
82
o COUNT(): cuenta el número de filas que coincide con un criterio específico.
o AVG () / SUM (): devuelve el valor promedio / suma total de una columna numérica.
• DCL (Data Control Language): controlar el acceso a usuarios mediante la asignación de
permisos o roles para realizar determinadas tareas.
o GRANT: otorga permisos.
o REVOKE: eliminar permisos.
• TCL (Transaction Control Language): una transacción es una unidad en la ejecución de un
programa, un conjunto de sentencias de acceso a la BD. En la práctica suele consistir en la
agrupación de consultas SQL y su ejecución como parte de una transacción. Los pasos para
realizar una transacción en MySQL son:
o Indicar que vamos a realizar una transacción con la sentencia START TRANSACTION,
BEGIN o BEGIN WORK.
o Realizar operaciones de manipulación de datos sobre la base datos (insertar, borrar...)
o Si las operaciones se han realizado correctamente y queremos que los cambios se
apliquen de forma permanente sobre la base de datos usaremos la sentencia COMMIT.
Sin embargo, si durante las operaciones ocurre algún error y no queremos aplicar los
cambios realizados podemos deshacerlos con la sentencia ROLLBACK.
El proceso de definición de tablas implica indicarlas columnas y el tipo de datos de cada una,
algunos de los tipos de datos básicos de SQL son:
• “varchar”: cadena de palabras compuestas de letras, números y caracteres especiales.
• “int”: principal tipo de datos de valores enteros de SQL Server. Números enteros con o sin
signo.
• “date”: una fecha de calendario que contiene el año (de cuatro cifras), el mes y el día.
• “time”: La hora del día en horas minutos segundos (el valor predeterminado es 0).
3.1.1. CONSTRAINTS (Restricciones)
Se utilizan para especificar reglas para los datos en una tabla como limitar el tipo de datos que
pueden incluirse en una tabla. Si hay alguna violación entre la restricción y la acción de datos, la
acción se cancela, son:
• NOT NULL: asegura que una columna no pueda tener un valor NULL.
• UNIQUE: asegura que todos los valores en una columna sean diferentes.
• PRIMARY KEY: una combinación de una NOT NULL y UNIQUE. Identifica de forma única cada
fila en una tabla.
• FOREIGN KEY: evita acciones que destruirían enlaces entre tablas.
• CHECK: asegura que los valores en una columna satisfagan una condición específica.
• DEFAULT: establece un valor predeterminado para una columna si no se especifica ninguno.
• CREATE INDEX: se utiliza para crear y recuperar datos de la base de datos muy rápidamente.
83
3.2. JOIN
Uno de los operadores más usados en SQL es la cláusula JOIN: sirve para combinar filas de dos
o más tablas basándose en un campo común entre ellas, devolviendo por tanto datos de
diferentes tablas. Los tipos más importantes son:
• INNER JOIN: devuelve todas las filas cuando hay al menos una coincidencia
en ambas tablas.
• LEFT JOIN: devuelve todas las filas de la tabla de la izquierda, y las filas
coincidentes de la tabla de la derecha.
• RIGHT JOIN: devuelve todas las filas de la tabla de la derecha, y las filas
coincidentes de la tabla de la izquierda.
• FULL OUTER JOIN: devuelve todas las filas de las dos tablas, la izquierda y la
derecha.
• CROSS JOIN: devuelve el producto cartesiano de los registros de las dos tablas
Mediante el uso de “WHERE” se puede excluir el campo común en un JOIN pidiendo que la
sentencia devuelva solo los valores nulos comunes, resultando:
• LEFT JOIN + WHERE B.Key IS NULL OUTER JOIN + WHERE B.Key IS NULL
84
o Doble lectura (non-repeattablereads): transacción lee datos que ya había leído, pero entre
lecturas, los datos han sido modificados o borrados por una transacción ya confirmada.
o Lectura fantasma (phantomread): transacción reejecuta una consulta encontrando que el
conjunto de filas resultantes ha sido ampliado por otra transacción que inserto nuevas filas
y que ya ha realizado su COMMIT.
Para dar una solución a estos problemas, los SGBD proporcionan 4 niveles de aislamiento que
controlan el grado de bloqueo durante el acceso a los datos. Para la mayor parte de aplicaciones,
el acceso a los datos se puede realizar de modo que se eviten altos niveles de aislamiento
reduciendo así la sobrecarga debida a la necesidad de bloqueos por el sistema. Si se usan altos
niveles de aislamiento la posibilidad de bloqueo aumenta. Los niveles de aislamiento son:
o Serializable: es el que más se acomoda a lo que significa la definición de ACID, pero no
permite una alta escalabilidad, queda garantizado es que dos instrucciones “select” en la
misma transacción con nivel serializable van a devolver el mismo conjunto de datos. Implica
bloquear registros que incluso no existen todavía evitando el problema de los registros
fantasma.
o Repeatable Reads: evita el problema de las lecturas no repetibles, no soluciona el problema
de los datos fantasmas (registros que aparecen y desaparecen dentro de nuestra
transacción).
o Read Commited: proporciona un nivel de concurrencia muy bueno y previene del problema
de las lecturas sucias, pero no previene lecturas no repetibles y datos fantasma. Las lecturas
no repetibles implican que varias instrucciones “select” dentro de la misma transacción
devuelve datos diferentes.
o Read Uncommited: nivel más bajo de aislamiento, protege de lecturas de datos físicamente
dañados, mayor nivel de concurrencia (nunca hay un bloqueo), no garantiza la coherencia
de los datos.
3.3.3. BLOQUEOS
Para garantizar que no haya problemas entre transacciones el scheduler emplea una tabla de
bloqueo de manera que sea seguro ejecutar toda transacción. La consistencia de transacciones
se basa en que una transacción solo puede leer y escribir un elemento si se solicito un bloqueo
y este no se ha liberado, y que si una transacción bloquea un elemento debe liberarlo
posteriormente. Si un scheduler cumple las condiciones anteriores se dice que es “legal”.
Se trabaja con el llamado bloqueo de dos fases (2PL) cuando en la transacción todos los bloqueos
preceden a desbloqueos pero este sistema tiene el problema de caer en un “deadlock” (una
transacción B no puede continuar hasta que otra transacción A libere un recurso, pero a su vez,
la transacción A también está esperando a que B libere el recurso). Por lo general el DBMS
detecta aquellas transacciones que caen en un abrazo mortal y lo soluciona haciendo ROLLBACK
considerando primero aquellas transacciones en las que tenga que “deshacer menos”.
85
• BackUP de la BD en frio: implican parar la BD en modo normal y copiar todos los ficheros
sobre los que se asienta.
• BackUP de la BD en caliente: se realiza mientras la BD está abierta y funcionando en modo
“archivelog”, se realiza cuando la carga es pequeña. Consiste en copiar todos los ficheros
correspondientes a un tablespace, los ficheros redo log archivados y los ficheros de control.
Los BackUp lógicos solo extraen los datos de las tablas utilizando comandos SQL: solo extraen
los datos de las tablas utilizando comandos SQL, las utilidades Export/Import permiten hacer
copias de determinados objetos de la BD, restaurarlos o moverlos de una BD a otra.
3.4.1. ARCHIVELOG
El administrador debe decidir si arrancar la base de datos en modo “archivelog” (mecanismo de
protección ante fallos de disco. Protegerá la base de datos ante posibles fallos físicos de disco y
también ante eliminaciones o modificaciones no deseadas de los datos).
Presenta las siguientes ventajas:
• Se puede recuperar la BD con una copia antigua de los ficheros de datos y los ficheros de
“redo log” (archivo que guarda todas las transacciones que se van realizando).
• Es posible realizar BackUPs en caliente.
Desventajas:
• Necesitará más espacio en disco.
• El trabajo del administrador se incrementa al tener que determinar el destino del archivado
de los “redo log”.
3.5. RECUPERACION DE UNA BD
El administrador debe estar preparado ante la posibilidad de que se produzca un fallo, recuperar
la BD en el menor tiempo posible, los procesos de recuperación dependen del tipo de error y de
las estructuras afectadas. Existen diferentes modos de recuperar un fallo en la BD:
o Recuperación de Bloques: mecanismo de recuperación más simple, cuando un proceso
muere justo cuando está cambiando un bloque, se utilizan los registros redo log en línea
para reconstruir el bloque y escribirlo en disco.
o Recuperación de threads: cuando se descubre que una instancia muere dejando abierto un
thread, se restauran los bloques de datos modificados que estaban en el caché de la
instancia muerta y cerrando el thread que estaba abierto.
o Recuperación física: respuesta a un comando “recover”, convertir los ficheros backup en
actuales, restaurar los cambios que fueron perdidos cuando un fichero de datos fue puesto
offline sin un checkpoint aplicando los ficheros “redo log” archivados en línea.
RMAN (Recovery Manager): gestor de copia de seguridad y recuperación suministrado para
bases de datos Oracle.
86
4. MySQL
SGBD Relacional de código abierto comercializado bajo licencia dual: Licencia pública
general/Licencia comercial por Oracle, usa el puerto 3306. Es muy rápida en la lectura cuando
utiliza el motor no transaccional MyISAM (el mecanismo de almacenamiento de datos usado por
defecto por el sistema administrador de bases de datos relacionales MySQL), pero puede
provocar problemas de integridad en entornos de alta concurrencia en la modificación. En
aplicaciones web hay baja concurrencia en la modificación de datos y en cambio el entorno es
intensivo en lectura de datos, lo que hace a MySQL ideal para este tipo de aplicaciones.
Existen varias interfaces de programación de aplicaciones que permiten, a aplicaciones escritas
en diversos lenguajes de programación, acceder a las bases de datos MySQL. También existe una
interfaz ODBC (Open DataBase Connectivity), llamado MyODBC que permite a cualquier
lenguaje de programación que soporte ODBC comunicarse con las bases de datos MySQL.
Interfaces Graficas de Usuario (GUI): tipo de interfaz que permite a los usuarios interactuar con
dispositivos o programas electrónicos mediante iconos gráficos e indicadores visuales. Se
dispone de aplicaciones de administración gráfica de propiedad de terceros y gratuitas que se
integran con MySQL y permiten a los usuarios trabajar con la estructura y los datos de la base
de datos de forma visual:
• MySQL Workbench: entorno integrado oficial de MySQL, permite a los usuarios administrar
gráficamente las bases de datos MySQL y diseñar visualmente las estructuras de las bases
de datos. Es considerado como el front-end autorizado de MySQL, permite a los usuarios
administrar el diseño y modelado de bases de datos, el desarrollo de SQL (reemplazando al
MySQL Query Browser) y la administración de bases de datos (reemplazando al MySQL
Administrator).
• Adminer (antes conocido como phpMinAdmin): front-end gratuito de MySQL para gestionar
el contenido de las bases de datos MySQL. El administrador se distribuye bajo la licencia
Apache (o GPL v2) en forma de un único archivo PHP y es capaz de gestionar múltiples bases
de datos, con muchas capas CSS disponibles.
• ClusterControl: sistema de administración de MySQL de extremo a extremo que provee la
habilidad de desplegar, monitorear, administrar y escalar instancias de MySQL desde una
sola interfaz.
• Database Workbench: aplicación de software para el desarrollo y la administración de
múltiples bases de datos relacionales utilizando SQL, con interoperatividad entre diferentes
sistemas de bases de datos, proporciona la misma interfaz e incluye también herramientas
de bases de datos cruzadas.
• DBeaver: cliente SQL y una herramienta de administración de base de datos.
• DBEdit: editor de base de datos, que puede conectarse a cualquier base de datos que
proporcione un controlador JDBC (Java Database Connectivity, es la especificación JavaSoft
de una API (interfaz de programación de aplicaciones) estándar que permite que los
programas Java accedan a sistemas de gestión de bases de datos), es un software libre y de
código abierto y se distribuye bajo la Licencia Pública General GNU.
• HeidiSQL: anteriormente conocido como MySQL-Front, es un cliente libre y de código
abierto, actúa como front-end para MySQL (y para sus bifurcaciones como MariaDB y
Percona Server). Su conjunto de características es suficiente para las operaciones más
comunes y avanzadas de bases de datos, tablas y registros de datos.
87
• LibreOffice Base: creación y gestión de bases de datos, la preparación de formularios e
informes que proporcionan a los usuarios finales un fácil acceso a los datos, también puede
utilizarse como interfaz para diversos SGBD.
• Navicat: software multiplataforma de gestión y desarrollo de bases de datos, concretamente
es una interfaz gráfica de usuario y admite múltiples conexiones de bases de datos locales y
remotas.
• OpenOffice.org: es de libre acceso y puede manejar bases de datos MySQL.
• phpMyAdmin: herramienta gratuita y de código abierto escrita en PHP destinada a manejar
la administración de MySQL con el uso de un navegador web. Puede importar datos de CSV
y SQL, y transformar los datos almacenados en cualquier formato utilizando un conjunto de
funciones predefinidas.
• SequelPro: aplicación MacOS gratuita y de código abierto para trabajar con bases de datos
MySQL de forma local o remota.
• SQLBuddy: aplicación de código abierto basada en la web y escrita en PHP, destinada a
manejar la administración de MySQL y SQLite con el uso de un navegador web.
• SQLyog: herramienta GUI para la manipulación de datos, pueden realizarse desde una
interfaz similar a una hoja de cálculo.
• Toad for MySQL: aplicación de software para la administración de bases de datos
relacionales y no relacionales utilizando SQL.
• Webmin: herramienta de configuración de sistemas basada en la web para sistemas de tipo
Unix. Está construido alrededor de módulos, esto hace que sea fácil añadir nuevas
funcionalidades.
Interfaz de línea de comandos: MySQL se envía con muchas herramientas de línea de comandos,
de las cuales la interfaz principal es el cliente mysql. Las utilidades de MySQL son un conjunto
de utilidades diseñadas para realizar tareas comunes de mantenimiento y administración.
Incluidas originalmente como parte del Banco de Trabajo de MySQL, las utilidades son una
descarga independiente disponible en Oracle.
Percona Toolkit es un kit de herramientas multiplataforma para MySQL, puede ser usado para
probar que la replicación funciona correctamente, arreglar datos corruptos, automatizar tareas
repetitivas y acelerar los servidores.
El shell de MySQL es una herramienta para el uso interactivo y la administración de la base de
datos MySQL. Soporta los modos JavaScript, Python o SQL y puede ser utilizado para la
administración y el acceso. Los clientes en línea de comandos de MySQL son:
• mysql: shell SQL simple con capacidades de edición de línea de entrada.
• mysqladmin: permite realizar las operaciones más comunes que un administrador de este
motor de base de datos necesita realizar con comandos más cortos.
• mysqlcheck: realiza el mantenimiento de las tablas: comprueba, repara, optimiza o analiza
las tablas.
• mysqldump: puede ser utilizado para generar respaldos de bases de datos y ser usados o
incluso para ser transferidos a otro servidor de base datos SQL (No estrictamente tiene que
ser un servidor MySQL.
• mysqlimport: El cliente mysqlimport proporciona una interfaz de línea de comandos para el
comando LOAD DATA INFILE (carga tablas de archivos de texto en varios formatos).
88
• mysqlpump: realiza copias de seguridad lógicas , produciendo un conjunto de declaraciones
SQL que se pueden ejecutar para reproducir las definiciones de objetos de la base de datos
original y los datos de la tabla.
• mysqlshow: se puede utilizar para ver rápidamente qué bases de datos existen, sus tablas o
las columnas o índices de una tabla.
• mysqlslap: programa de diagnóstico diseñado para emular la carga del cliente para un
servidor MySQL y para informar el tiempo de cada etapa.
89
5. PostgreSQL
90
• pg_restore: restaure una base de datos PostgreSQL a partir de un archivo de
almacenamiento creado por pg_dump (utilizando la opción “-d:nombrebasededatos”).
• psql: Terminal interactivo de PostgreSQL, front-end basado en terminales, le permite
escribir consultas de forma interactiva, enviarlas a PostgreSQL y ver los resultados de la
consulta. Alternativamente, la entrada puede ser de un archivo. Además, proporciona una
serie de metacomandos y varias funciones similares a shell para facilitar la escritura de
scripts y automatizar una amplia variedad de tareas. Por ejemplo:
o \l (\list): lista todas las bases de datos disponibles, luego sale. Se ignoran otras opciones
sin conexión. Similar al metacomando \list
o \?: muestra información de ayuda sobre los meta-comandos, opciones y variables.
o \h (\help): muestra la ayuda de la sintaxis del comando SQL especificado.
o \H (\html): activa o desactiva el formato de salida de consulta HTML.
o \c (\connect): establece una nueva conexión con el servidor PostgreSQL.
o \i: lee un archivo, lo toma como input y ejecuta su contenido.
o \x: activa o desactiva el formato de tabla expandido en el resultado de cada instrucción
SQL.
o \q (\quit): cierra psql
o \o (\out): guarda los resultados de futuras consultas en un archivo.
o \d “pattern”: describe la relación cuyo nombre coincida con el patron asignado.
o \d t/i/s/u/n/: muestra una lista de tablas/índices/secuencias/roles/esquemas.
o \dv: muestra una lista de vistas (\dm: muestra una lista de vistas materializadas).
o \df: muestra una lista de las funciones con el tipo de datos de resultado y los tipos de
datos de los argumentos.
• reindexdb: reindexar una base de datos PostgreSQL.
• vacuumdb: recolecta basura y analiza una base de datos PostgreSQL.
91
6. SQLite
SGBD relacional compatible con ACID, contenida en una pequeña biblioteca escrita en C, es un
proyecto de dominio público. El motor de SQLite no es un proceso independiente con el que el
programa principal se comunica. En lugar de eso, la biblioteca SQLite se enlaza con el programa
pasando a ser parte integral del mismo. El programa utiliza la funcionalidad de SQLite a través
de llamadas simples a subrutinas y funciones. Esto reduce la latencia en el acceso a la base de
datos, debido a que las llamadas a funciones son más eficientes que la comunicación entre
procesos. El conjunto de la base de datos (definiciones, tablas, índices, y los propios datos), son
guardados como un solo fichero estándar en la máquina host. Este diseño simple se logra
bloqueando todo el fichero de base de datos al principio de cada transacción.
La biblioteca implementa la mayor parte del estándar SQL-92, incluyendo transacciones de base
de datos atómicas, consistencia de base de datos, aislamiento, y durabilidad (ACID), triggers y la
mayor parte de las consultas complejas.
Existe un programa independiente de nombre “sqlite3” que puede ser utilizado para consultar
y gestionar los ficheros de base de datos SQLite. La mayoría de las veces, sqlite3 solo lee líneas
de entrada y las pasa a la biblioteca SQLite para su ejecución. Pero las líneas de entrada que
comienzan con un punto (".") Son interceptadas e interpretadas por el propio programa sqlite3.
Estos "comandos de puntos" se utilizan normalmente para cambiar el formato de salida de las
consultas o para ejecutar determinadas declaraciones de consulta preempaquetadas:
• .backup: realiza una copia de seguridad.
• .clone: clona los datos de una base de datos en una nueva base de datos.
• .databases: lista los nombres y archivos adjuntos de las bases de datos existentes.
• .dump: vuelca la base de datos en un fichero de datos externo.
• .exit: sale del cliente y muestra un código de retorno.
• .explain: obtiene una descripción de alto nivel de una implementación de una consulta SQL.
• .headers: muestra la cabecera de la consulta SQL.
• .import: importa información de un archivo a una tabla.
• .indices: muestra los índices de una tabla.
• .load: carga una extensión de una librería.
• .log: activa o desactiva el inicio de sesión.
• .once: redirige la salida del siguiente comando a un archivo.
• .open: cierra la base de datos actual y abre la base de datos indicada.
• .print: imprime un string.
• .quit: sale del cliente.
• .read: toma un archivo como input.
• .restore: recupera contenido desde un archivo.
• .save: guarda la base de datos en el archivo indicado.
• .schema: muestra las sentencias CREATE que coincidan con el patrón indicado (PATTERN).
• .separator: cambiar los separadores de filas y columnas.
• .show: muestra valores de las opciones indicadas.
• .tables: lista el nombre de las tablas especificadas.
• .trace: muestra cada declaración SQL a medida que se ejecuta.
92
7. SQL Server
SGBD relacional desarrollado por Microsoft, soporta transacciones (conjunto de órdenes que se
ejecutan formando una unidad de trabajo, es decir, en forma indivisible o atómica),
procedimientos almacenados (procesos almacenados físicamente en el propio servidor, por lo
cual al ser ejecutado, en respuesta a una petición de usuario, es ejecutado directamente en el
motor de bases de datos), incluye entorno gráfico, permite trabajar en modo cliente-servidor (la
información y datos se alojan en el servidor y los terminales o clientes de la red solo acceden a
la información).
93
TEMA 1 – ADMINISTRACIÓN, MANTENIMIENTO Y REPARACIÓN DEL SO.
3. GESTION DE INCIDENCIAS
Las incidencias son comportamientos anormales del sistema, pueden deberse a
comportamientos anómalos del software, un problema en la red, incompatibles entre diferentes
arquitecturas y SO, etc. Este comportamiento acaba generando incidencias en los servicios que
proporciona el sistema como pérdidas de tiempo, decrementos de la funcionalidad,…
94
Service Level Agreement (SLA): contrato en el que se estipulan los niveles de un servicio en
función de una serie de parámetros objetivos, establecidos de mutuo acuerdo entre ambas
partes y que refleja contractualmente el nivel de operativo de funcionamiento, penalizaciones
por caída de servicio, limitación de responsabilidad por no servicio… Es decir, es el
mantenimiento de la disponibilidad de un determinado servicio basado en un compromiso,
medible y demostrable, del nivel de cumplimiento en su ejecución. Un SLA debe cubrir como
mínimo: soporte a clientes y asistencia, provisiones para seguridad y datos, garantías del sistema
y tiempos de respuesta como MTBF (Medium Time Between Fails) y MTTR (Medium Time To
Recover) tras una caída.
RPO (Recovery Point Objective): es la cantidad de datos que una empresa puede permitirse
perder y aun así seguir funcionando si sufre un tiempo de inactividad.
RTO (Recovery Time Objective): es el tiempo maximo que un negocio necesita para recuperar
sus sistemas después de inactividad producida por un incidente
95
4.2. MECANISMOS DE REPARACIÓN
• Bootrec: herramienta utilizada para las reparaciones pertinentes del sector de arranque del
sistema (MBR), tiene habilitados comandos como:
o /FixMBR: permite arreglar y/o recuperar el MBR, sector de arranque de un disco duro.
No sobrescribe la tabla de partición existente.
o /FixBoot: Esta opción escribe un nuevo sector de arranque en la partición del sistema
utilizando un sector de arranque compatible, es recomendable utilizar si el sector de
arranque está dañado o si el sector de arranque se sustituyó.
o /RebuildBCD: reconstruir por completo el almacén BCD (Boot Configuration Data) que
constituye el menú de arranque.
o /ScanOS: escanea todos los discos en busca de instalaciones compatibles con Windows,
es útil cuando hay instalaciones que no aparecen en el menú.
• SFC: ofrece la posibilidad de examinar todos los archivos protegidos para comprobar sus
versiones, descubre un archivo protegido se ha sobrescrito, recupera la versión correcta
desde la carpeta caché o los archivos origen de la instalación de Windows.
96
TEMA 2 – ALMACENAMIENTO, VIRTUALIZACION Y CONTENEDORES
97
Tecnología de cintas más conocidas:
o Cintas DAT (Digital Audio Tape): surgieron como cintas de grabación de audio digital,
posteriormente pasaron a estándar para grabación de datos. Utilizan cinta de 4mm y
grabación helicoidal. Actualmente se dispone de cintas DAT de hasta 80GB y velocidades
de acceso de hasta 12MBps, las cintas deben renovarse tras unas 2000 pasadas.
o Cintas de 8mm: inicialmente se trataba de un estándar para grabación de video, se
transformó para grabación de datos, la tecnología es similar a las cintas DAT, pero con
mayor capacidad y mayor velocidad de acceso. Tienen memoria interna que almacena
datos sobre índices en la cinta, estado de la misma… acelera los tiempos de búsqueda y
el mantenimiento.
o Cintas QIC (Quarter-Inch Cartridge): grabación lineal con hasta 4GB de almacenamiento
y 1MBps de velocidad, deben renovarse tras 5000 pasadas.
o Cintas TRAVAN: surgen a partir de las QIC, con capacidad para 20GB y 4 MBps.
o Cintas DLT (Digital Line Tape): grabación lineal, capacidad para 300GB y 36MBps.
o Cintas LTO (Linear Tape-Open): grabación lineal, los cartuchos tienen memoria interna
que almacena información de estado de la cinta que permite a las unidades detectar un
cartucho degradado antes de que se produzca el fallo. Presenta una duración superior
al millón de pasadas, la generación 6 presenta capacidades de 6GB y 400MBps.
Las unidades de cinta pueden estar agrupadas en librerías, pueden ser manuales, en las que
deben ser operadores los que introduzcan cintas en las unidades. Están en desuso, siendo
sustituidas por librerías automáticas en las que un brazo mecánico selecciona las cintas y las
introduce o saca de las unidades de cinta.
Existen dos tipos de productos de automatización, los cargadores automáticos que
contienen una o dos unidades de cinta y un número limitado de cartuchos normalmente no
más de 30, y las librerías automáticas, que disponen de varias unidades y varios cientos o
miles.
98
Los datos de aplicaciones con un mínimo de criticidad no deberían ubicarse en los discos
internos del servidor, quedando estos relegado a alojar la instalación del SO y de la aplicación
(actualmente debido al auge de la virtualización de servidores también la instalación reside en
una red separada de almacenamiento en forma de máquina virtual que puede ubicarse en un
servidor y otro de manera rápida).
2.2. DIRECT ATTACHED STORAGE (DAS)
La conectividad más común entre servidores y almacenamiento está basada
en SCSI o en FC, el protocolo SAS sustituye la capa física paralela de SCSI por
un protocolo serie y puede ser utilizado para conectar las cabinas de
almacenamiento directamente a los servidores, el almacenamiento externo
es utilizado igual que el interno, sin que las capas de SO distingan entre
ambos, el uso del almacenamiento externo dedicado resuelve los problemas
de escalabilidad y seguridad del almacenamiento interno, ya que las cabinas
de discos son ampliables y tienen una capacidad máxima muy superior,
además presentan características de alta disponibilidad como redundancia de
componentes, niveles de RAID, en espejo o con paridad para recuperarse de
fallos de disco, software de copia de datos en tiempo real que permite
replicar datos en tiempo real en otra cabina…
La interfaz gráfica de usuario con el servidor o con la estación de trabajo está hecha por medio
de un HBA (Host Bus Adapter): hardware que conecta un servidor a una red de computadoras y
dispositivos o unidades de almacenamiento. Normalmente, se refieren a dispositivos a los que
se conecta otros dispositivos (IDE, SCSI, FC, eSATA), pero también se suele utilizar el mismo
término para los dispositivos que se conectan a sistemas Ethernet, FireWire y USB.
Recientemente, la llegada del iSCSI ha dado lugar a los HBA vía Ethernet, que se diferencian de
las tarjetas de red en que incluyen hardware dedicado para iSCSI.
Un típico sistema DAS provee controladores embebidos. El manejo del RAID es off-load, o
simplemente sin RAID. Los HBA pueden ser usados reduciendo costos. Los controladores DAS
también habilitan acceso compartido al almacenamiento, que permite servidores múltiples (no
más de cuatro) para acceder a la misma unidad lógica, una característica que es simplemente
usada para clustering. En este punto, los sistemas DAS de alto rango comparten similitudes con
los sistemas SAN de nivel básico.
2.3. STORAGE AREA NETWORK (SAN)
Red dedicada al almacenamiento, conectada a las redes de comunicación de una organización,
los equipos con acceso a las SAN tienen una interfaz de red especifica que se conecta a la SAN.
Es una arquitectura de acceso a bloques en la que los protocolos de acceso son los mismos que
en discos o cabinas dedicadas. Los discos no están conectados internamente al servidor. Al
tratarse de un acceso por bloques, el sistema de ficheros es creado por el servidor, este tipo de
almacenamiento no permite el acceso de varios servidores a los mismos datos a no ser que estos
formen parte de un clúster de servidores y se coordinen para el acceso a los datos.
La unidad de almacenamiento que provee una red SAN se denomina LUN (Logical Unit Number)
y es un disco virtual proporcionado por la SAN, las SAN se componen de tres capas:
99
o Capa Cliente: servidores, dispositivos o componentes (interfaz de red, de
fibra…) y software (SO).
o Capa Red: los cables (FO) así como los SAN Hubs y los SAN Switches como
punto central de conexión para SAN.
o Capa Disco: agrupaciones de discos (Disk Arrays, Memoria Caché, RAIDs) y
cintas, empleados para almacenar datos.
100
2.4. NETWORK ATTACHED STORAGE (NAS)
Se realiza acceso a ficheros directamente contra el servidor de ficheros o la cabina
de almacenamiento con capacidad NAS donde se gestiona el sistema de ficheros.
El SO del servidor monta un sistema de ficheros externo a través de alguno de los
protocolos destinados a ese fin (NFS, CIFS…) y delega la transformación de fichero
a bloque de bits en la red de almacenamiento. La conexión de red que permite el
acceso al sistema de ficheros puede ser:
o Conexión a través de LAN: solventa el problema del acceso a los datos desde
diferentes orígenes, montan los sistemas de ficheros exportados que son
utilizados por las aplicaciones como si fuesen discos locales. Los sistemas que
actúan de servidores de ficheros pueden ser servidores de propósito general
o puede tratarse de dispositivos especiales, NAS, dedicados en exclusiva a
servir fichero y diseñados especialmente para ello, tiene como principales
funciones la implementación de los protocolos que permiten compartir los
ficheros y la gestión de la estructura de ficheros. El almacenamiento final de
los datos se realiza lógicamente mediante bloques de bits que pueden residir
tanto internamente en el servidor de ficheros como extremamente en una
cabina de la red SAN.
o Conexión a través de WAN: donde el ancho de banda es menor y especialmente la latencia
mayor presenta problemas pueden hacer inviable la compartición de fichero a grades
distancias. Para evitar estos problemas está surgiendo el concepto de WAFS (Wide Area File
Services) basado en la compresión de las tramas de datos de los protocolos CIFS y NFS, para
evitar un excesivo número de mensajes y el uso de cache local en las oficinas remotas.
4. POLITICAS, SISTEMAS Y PROCEDIMIENTOS DE BACKUP Y RECUPERACION
La conservación de la información se basa en la autenticidad, confidencialidad, integridad y
disponibilidad de la información, su finalidad es mantener la información para que sea utilizada
en el momento preciso. La salvaguarda y recuperación de la información en un sistema de
información, para ser capaces de mantener la disponibilidad de los servicios, no solo es
importante replicar las redes, sistema de comunicaciones, servidores, estaciones sistemas
críticos, sino que además es necesario mantener la capacidad de acceso a los datos puesto que
estos constituyen la esencia de información. Se construyen los dispositivos y sistemas de
almacenamiento con la calidad suficiente para garantizar un tiempo de fallo mínimo, hace uso
de la redundancia en la forma de replicación de la información.
Los métodos de recuperación de datos son aquellos procesos llevados a cabo con el objetivo de
restablecer el acceso a la información que sigue estando almacenada en los dispositivos pero
que no está disponible por alguna causa:
o Métodos de recuperación lógica: cuando todos los componentes del dispositivo funcionan
correctamente y por tanto se puede acceder a todos los sectores donde se almacena la
información.
o Métodos de recuperación física: algún componente físico del dispositivo se encuentra
dañado, se podrá abordar una recuperación física reparando o sustituyendo el componente
dañado y accediendo nuevamente a la información guardada.
101
4.1. ESTRATEGIAS Y POLÍTICAS DE BACKUP
Para construir una estrategia asegurando que cualquier caída pueda ser recuperada
rápidamente es indispensable contar con una plataforma de BackUp regida por un Plan de
Contingencia probado y actualizado, los procesos de Copias de Resguardo consumen tiempo y
recursos del sistema es necesario programar bien su plazo de ejecución para que no interfiera
con el buen funcionamiento de los sistemas. Los tipos de copias de seguridad que se pueden
realizar son:
o Copias Completas: copia completa de todos los archivos, solo requiere una cinta para
recuperar todos los datos necesarios, la alternativa más rápida a la hora de realizar la
recuperación.
o Copia Incremental: el BackUp empieza por una copia
completa de todos los datos, la siguiente copia se
hace solo sobre los archivos que se hayan modificado,
al día siguiente se realiza el mismo proceso. Raciona
y optimiza los medios de BackUp por encima de la
velocidad de recuperación de los mismos.
o Copia Diferencial: compra cada copia diaria con la
última copia completa disponible, la primera copia
Incremental el igual a la primera copia diferencial,
pero al segundo día, el incrementa solo conserva los
datos modificados desde la copia anterior, el
diferencial lo hace desde la copia completa.Es más
exigente en cuanto al consumo de medios, pero es
mucho más cómodo a la hora de realizar la recuperación de archivos ya que como máximo
requiere 2 medios, cada día acumula la copia del día anterior, consume más recursos.
Archive Bit: marca que llevan todos los archivos del sistema la cual se habilita si el archivo
ha sido resguardado mediante un programa de BackUp, de este modo analizan dicho bit y
hacen copia solo de los archivos que lo tienen desactivado, lo que significa que han sufrido
algún cambio desde el ultimo BackUp.
102
4.2. DIFERENCIA ENTRE BACKUP DE SISTEMAS FISICOS Y VIRTUALES
En el BackUp de sistemas físicos, las maquinas físicas necesitan de un software específico
mediante el cual sea posible realizar copia, se puede realizar locamente mediante un sistema de
arrays de discos o remotamente en un entorno NAS o SAN. En un entorno tradicional de
múltiples servidores físicos, las copias de seguridad se realizan instalando un agente en cada
servidor y añadiendo una tarea a la programación de copias de manera que u servidor especifico
de backup se conecta a cada uno de los agentes para iniciar la copia de los datos que sean
necesarios.
Los BackUp de sistemas virtuales dan facilidades para el despliegue en otro servidor de VMs en
mucho menos tiempo, proporcionando soluciones para copias completas como:
o Copias completas en caliente: de una VM alojada en un host ESXi en un segundo servidor de
máquinas virtuales sin que las VM alojadas en el primer servidor deje de estar funcionando,
se llama replicación de VMs.
O Snapshots: BackUp de la VM en frio (apagando la VM), pero reduciendo la duración que
tarda en hacer la copia, puede ser completo o solo de ficheros concretos. Muchos sistemas
(VMWare) ofrecen plugins que permiten realizar copias en caliente de VMs completas sin
pérdida de continuidad de negocio.
103
6.1 VENTAJAS DE LA VIRTUALIZACION DE SERVIDORES
El modelo tradicional del uso de un servidor dedicado es extremadamente costoso debido al:
o Coste del hardware: los servidores crecen en capacidad y en potencia de procesamiento,
dedicar un servidor para cada aplicación con objeto de garantizar un control total sobre las
mismas no es rentable.
o Coste del software: cada servidor requiere licencias.
o Coste de energía e infraestructura: la conexión y el suministro de energía para los servidores
pueden ser extremadamente caros.
o Costes de gestión: los costes de gestión suponen la mayor parte, el personal de TI tiene que
actualizar, mantener cuentas, hacer copias…
El modelo de virtualización de servidores presenta unas ventajas que motivan a una
organización a llevar a cabo un proceso de consolidación de servidores mediante virtualización:
o Optimización en el uso de hardware: la mayoría de servidores físicos están trabajando a un
10% o 15% de su capacidad total de proceso, se desaprovecha casi la totalidad de su
capacidad, aplicando la virtualización las organizaciones pueden mejorar la ratio de
utilización de sus recursos y obtener grandes ahorros energéticos.
o Aislamiento entre máquinas virtuales: las VMs se ejecutan en un entorno seguro, aislado e
independiente del resto de VMs, facilitando la instalación de un único servido por máquina,
algo que a nivel de hardware es bastante costosos.
o Alta disponibilidad: en caso de alguna contingencia tiene un coste mucho mayor que en el
caso de servidores, suele implicar la instalación de tarjetas de memoria y/o procesador
además de la instalación del SO y la instalación del servicio en cuestión, en el caso de VM se
puede tener la maquina duplicada preparada y en caso de contingencia poder restaurar el
servicio en cuestión de minutos perdiendo el servicio únicamente durante el reincido de la
VM.
o Evaluación de nuevos sistemas operativos o actualizaciones: con un entorno virtual se
pueden realizar pruebas de nuevos SO manteniendo independiente la maquina con el
servicio en producción.
o Mejor aprovisionamiento y administración del entorno: es posible realizar copias de
seguridad del sistema al completo permitiendo mover maquinas completas entre los
servidores físicos, la gestión de la carga de trabajo se simplifica, es posible la toma de
snapshots (imágenes concretas del sistema en el momento que se toma, de forma que se
pueda restaurar al momento del snapshot en caso de error del sistema).
104
o Tipo 2, Hypervisor alojado (hosted): se necesita de un sistema operativo host en la máquina
en la que se alojan, no se pueden desplegar directamente sobre el hardware necesitando
de un SO en el host (Windows, Linux…) y sobre este se ejecuta el Hypervisor (VMWare
Workstation, Oracle VirtualBox, QEMU…).
Dentro de la virtualización de servidores destacan las técnicas:
• Virtualización de hardware/servidor: la técnica más usada permite ejecutar múltiples SO en
las distintas máquinas virtuales que sean compatibles con la arquitectura hardware
subyacente. EL Hypervisor es el que administra los recursos traduciendo las peticiones de
los sistemas invitados a solicitudes al sistema anfitrión, debe contar con los drivers
necesarios para el acceso a los recursos físicos. La virtualización de los recursos hardware
por separado, creando un driver específico para cada recurso y por otro lado la creación de
un micro kernel sobre el que funciona igualmente tanto el SO como las VMs. Gracias al
encapsulamiento e independencia de la VMs estas son gestionadas como ficheros dentro d
la estructura de ficheros del SO, es posible mover y copiar una máquina virtual de un lugar
a otro o guardarla en un USB hasta una SAN de una empresa.
Proxmox VE: entorno de virtualización de servidores de código abierto. Está en
distribuciones GNU/Linux basadas en Debian con una versión modificada del Kernel RHEL y
permite el despliegue y la gestión de máquinas virtuales y contenedores.
105
o Servidor de escritorios y aplicaciones: ejecutan los distintos escritorios y/o aplicaciones
de los usuarios, garantizando seguridad y aislamiento, se suele configurar un servidor de
aplicaciones adicional que se ocupara de la ejecución de las distintas aplicaciones
ofrecidas a los usuarios. En ambos casos se basan en sistemas operativos multiusuarios.
o Equipo de acceso del usuario: conecta con el servidor de escritorios y comunica cualquier
cambio de pantalla que realice el usuario.
o Red de comunicaciones: garantiza la comunicación correcta entre los equipos de acceso
del usuario y los servidores del escritorio.
o Protocolos de comunicación: según el tipo de escritorio a utilizar, protocolo “RDP”
(Windows), protocolo “X Windows” (Linux), protocolos ICA, NX, VNC…
En función de la complejidad de la infraestructura puede haber un servidor que actúe de
“bróker” siendo el intermediario entre el usuario y el servidor de escritorio, ejemplos:
VMWare Horizon, XEN Desktop, Quindel…
Dependiendo de donde se lleve a cabo la ejecución del escritorio:
o Modo centralizado: los escritorios se ejecutan en un servidor centralizado, dos tipos:
▪ Persistentes o estáticos: asignado directamente a un usuario y que mantiene su
configuración una vez cierra la sesión.
▪ No persistentes o dinámicos: una imagen maestra para todos los usuarios a la que
se realiza un clon y se le asigna al usuario en el momento de iniciar sesión.
o Modo alojado: proveedor externo es el que ofrece el servicio de escritorio virtualizado
con el requisito d contar con una conexión de red entre le equipo de usuario y el servidor
alojado.
o Modo remoto: trabajar sin conexión de red al servidor de escritorios, se basa en realizar
una copia del escritorio al equipo de usuario y este lo ejecuta sin necesidad de conexión
a la red (principal inconveniente es la seguridad, una pérdida del equipo del usuario
implica una pérdida de los datos almacenados).
• Virtualización de software: El SO anfitrión virtualiza el hardware a nivel del SO, permitiendo
que varios sistemas invitados se ejecuten de manera autónoma en el mismo servidor físico
accediendo por igual a todos los recursos del sistema. Los servidores se virtualizan en la capa
del SO (kernel) sin necesidad de un Hypervisor, se crean entornos virtuales (EV) asilados en
un único servidor físico. Existe una capa que se carga directamente en el servidor base, la
siguiente capa superior muestra cada recurso hardware que debe virtualizarse. A
continuación, se encuentra la capa de virtualización (con un sistema de archivos propietario
y una capa de abstracción de servidor de kernel) esta capa hace que cada uno de los
contenedores aparezca como servidor autónomo, estos contenedores utilizan el mismo SO
que el sistema anfitrión, mismas librerías, binarios y drivers, pero disponen de una
estructura de directorios propia. (Ej: Virtuozzo)
Veeam Backup & Replication: software de gestión de backup, recuperación ante desastres y
gestión inteligente de datos para infraestructuras virtuales (VMWare), físicas y multicloud.
Acronis Cyber Backup: solución de copia de seguridad para máquinas virtuales y hosts de
Oracle VM Server.
106
6.4. VIRTUALIZACION DE SOFTWARE USANDO CONTENEDORES
Este método permite la fácil creación de contenedores para la ejecución de aplicaciones, la idea
central es crear un contenedor (un proceso para el SO) con aquellas librerías, archivos y
configuraciones necesarias para la aplicación concreta, sin tener que instalar un SO completo de
forma subyacente, se diferencia de una máquina virtual en que esta necesita contener todo el
SO, mientras que un contenedor aprovecha el SO sobre el que se ejecuta. Las ventajas del uso
de contenedores son:
o Portabilidad: se puede desplegar en cualquier otro sistema que soporte esta tecnología (que
tenga instalado el software virtualizador).
o Flexibilidad: arranque de un contenedor supone el mismo tiempo que arrancar un proceso
en el sistema, mientras que arrancar una máquina virtual implica más tiempo.
o Ligereza: al contener únicamente las dependencias necesarias para la ejecución de la
aplicación ocupa mucho menos espacio.
6.4.1. DOCKER
Proyecto de código abierto que automatiza el despliegue de aplicaciones dentro de
contenedores de software, proporcionando una capa adicional de abstracción y automatización
de virtualización de aplicaciones en múltiples sistemas operativos.
Docker utiliza características de aislamiento de recursos
del kernel Linux, tales como cgroups (control groups:
característica del kernel de Linux que limita, explica y aísla
el uso de recursos de una colección de procesos) y
namespaces (característica del kernel de Linux que divide
los recursos del kernel de modo que un conjunto de
procesos ve un conjunto de recursos mientras que otro
conjunto de procesos ve un conjunto diferente de
recursos) para permitir que "contenedores"
independientes se ejecuten dentro de una sola instancia
de Linux, evitando la sobrecarga de iniciar y mantener
máquinas virtuales. El soporte del kernel Linux para los namespaces aísla la vista que tiene una
aplicación de su entorno operativo, incluyendo árboles de proceso, red, ID de usuario y sistemas
de archivos montados, mientras que los cgroups del kernel proporcionan aislamiento de
recursos, incluyendo la CPU, la memoria, el bloque de E/S y de la red.
Docker incluye la biblioteca “libcontainer” como su propia manera de utilizar directamente las
facilidades de virtualización que ofrece el kernel Linux, además de utilizar las interfaces
abstraídas de virtualización mediante libvirt, LXC (Linux Containers) y systemd-nspawn. Docker
implementa una API de alto nivel para proporcionar contenedores livianos que ejecutan
procesos de manera aislada. Usar Docker para crear y gestionar contenedores puede simplificar
la creación de sistemas altamente distribuidos, permitiendo que múltiples aplicaciones, las
tareas de los trabajadores y otros procesos funcionen de forma autónoma en una única máquina
física o en varias máquinas virtuales. Esto permite que el despliegue de nodos se realice a
medida que se dispone de recursos o cuando se necesiten más nodos, lo que permite una
plataforma como servicio (PaaS) de estilo de despliegue y ampliación de los sistemas como
Apache Cassandra, MongoDB o Riak. Docker también simplifica la creación y el funcionamiento
de las tareas de carga de trabajo o las colas y otros sistemas distribuidos. Docker puede
integrarse con Amazon Web Services, Microsoft Azure, Ansible, Jenkins…
107
Comandos útiles en Docker:
• ps: lista todos los contenedores en ejecucion
• stop: detiene la ejecucion de un contenedor
• search: busca una imagen contenda en Docker
• builder: gestiona builds
• config: gestiona Docker configs
• container: gestiona containers
• context: gestiona contexts
• images: lista y gestiona imagenes de sistema
• network: gestiona networks
• swarm: gestiona Swarm (permite agrupar una serie de hosts de Docker en un clúster y
gestionar los clústeresde forma centralizada).
• node: gestiona Swarm nodes
• plugin: gestiona plugins
• secret: gestiona Docker secrets
• service: gestiona services
• stack: gestiona Docker stacks
• system: gestiona Docker
• trust: gestiona trust on Docker images
• volume: gestiona volumenes
108
6.4.2. KUBERNETES
Sistema de código libre para la automatización del despliegue, ajuste de escala y manejo de
aplicaciones en contenedores, define un conjunto de bloques de construcción (primitivas) que
conjuntamente proveen los mecanismos para el despliegue, mantenimiento y escalado de
aplicaciones. Los componentes que forman Kubernetes están diseñados para estar débilmente
acoplados pero a la vez ser extensibles para que puedan soportar una gran variedad de flujos de
trabajo. La extensibilidad es provista en gran parte por la API de Kubernetes, que es utilizada
por componentes internos así como extensiones y contenedores ejecutados sobre el mismo.
• Capsulas (Pods): la unidad básica de planificación, esta agrega un nivel de abstracción más
elevado a los componentes en contenedores. Consta de uno o más contenedores en los que
se garantiza su ubicación en el mismo equipo anfitrión y pueden compartir recursos. Cada
pod en Kubernetes es asignado a una única dirección.
• Etiquetas y selectores: permite a los clientes (usuarios o componentes internos) vincular
pares clave-valor (label) a cualquier objeto API en el sistema, como pods o nodos. Las
etiquetas y los selectores son el mecanismo principal de agrupamiento en Kubernetes, y son
utilizados para determinar los componentes sobre los cuales aplica una operación.
• Controladores: un controlador es un bucle de reconciliación que lleva al estado real del
clúster hacia el estado deseado.
o Replication Controller: se encarga de la replicación y escala mediante la ejecución de un
número especificado de copias de un pod a través de un clúster. También se encarga de
crear pods de reemplazo si un nodo subyacente falla.
o DaemonSet Controller: se encarga de asegurar la ejecución de exactamente un pod en
cada máquina (o algún subconjunto de máquinas).
• Servicios: conjunto de pods definidos por el selector de etiquetas. Kubernetes provee de un
servicio de descubrimiento y enrutamiento de pedidos mediante la asignación de una
dirección IP estable y un nombre DNS al servicio, y balancea la carga de tráfico en un estilo
round-robin hacia las conexiones de red de las direcciones IP entre los pods que verifican el
selector (incluso cuando fallas causan que los pods se muevan de máquina en máquina).
Por defecto un servicio es expuesto dentro de un cluster (por ejemplo, pods de un back end
pueden ser agrupados en un servicio, con las peticiones de los pods de front end siendo
balanceadas entre ellos), un servicio también puede ser expuesto hacia afuera del clúster.
109
• Administrador del controlador: proceso sobre el cual el núcleo de los controladores
Kubernetes como DaemonSet y Replication se ejecuta. Los controladores se comunican con
el servidor API para crear, actualizar y eliminar recursos que ellos manejan (pods, servicios…)
• Nodo Kubernetes: el nodo, también conocido como esclavo o worker, es la máquina física o
virtual donde los contenedores (flujos de trabajos) son desplegados. Cada nodo en el clúster
debe ejecutar la rutina de tiempo de ejecución (como Docker), para comunicarse con el
maestro para la configuración en red de estos contenedores.
• Kubelet: es responsable del estado de ejecución de cada nodo (es decir, asegurarse que
todos los contenedores en el nodo se encuentran saludables). Se encarga del inicio, la
detención y el mantenimiento de los contenedores de aplicaciones (organizados como pods)
como es indicado por el panel de control. Monitorea el estado de un pod y, si no se
encuentra en el estado deseado, el pod será desplegado nuevamente al mismo nodo. El
estado del nodo es comunicado al maestro cada pocos segundos mediante una señal
periódica (heartbeat). Una vez que el nodo detecta la falla de un nodo, el Replication
Controller observa este cambio de estado y lanza pods en otros nodos sanos.
• Kube-Proxy: implementación de un proxy de red y balanceador de carga soportando la
abstracción del servicio junto con otras operaciones de red. Responsable del enrutamiento
de tráfico hacia el contenedor correcto basado en la dirección IP y el número de puerto.
• cAdvisor: es un agente que monitorea y recoge métricas de utilización de recursos y
rendimiento como CPU, memoria, uso de archivos y red de los contenedores en cada nodo.
110
TEMA 3 – MODELOS OSI/TCP-IP, PROTOCOLOS Y ACCESIBILIDAD
1. ARQUITECTURA DE INTERNET
Organizaciones y comités que supervisan el funcionamiento de internet:
• Internet Engineeiring Task Force (IETF): comunidad de diseñadores de red, operadores,
vendedores e investigadores interesados en la evolución de la arquitectura de internet, así
como en su adecuado funcionamiento, es quien crea grupos de trabajo para desarrollar
nuevas especificaciones.
• Internet Engineering Steering Group (IESG): encargado de hacer avanzar una propuesta por
las diferentes fases de aprobación, hasta llegar al estado de “estándar de internet”.
• Internet Architecture Board (IAB): grupo de supervisión técnica de la ISOC, se encarga de la
publicación de documentos RFCs entre otros.
• Internet Society (ISOC): organización no gubernamental internacional que promociona la
cooperación global y la coordinación para Internet de las tecnologías de red y las
aplicaciones
• Internet Research Task Force (IRTF): grupos que se centran en la realización de investigación
en protocolos, aplicaciones, arquitectura y tecnologías de Internet.
Asignación de direcciones IP y servicios de registro de dominios:
• Assigned Numbers Authority (IANA): fue autorizada por la ISOC para coordinar la asignación
de los identificadores en Internet, como nombres de domino, números de sistema
autónomo, direcciones IP, números de protocolo y de puerto.
Coordino la creación del Internet Network Information Center (InterNIC) responsable de
gestionar los nombres de dominio de Internet de máximo nivel (“.com”, “.org”, “.net”).
• Internet Corporation for Assigned Names and Numbers (ICANN): tomo la responsabilidad de
las funciones que previamente tenía IANA, también coordina el sistema de servidores rais
de Internet y mantiene la estabilidad operativa en Internet.
Tomar responsabilidad global de la asignación del espacio de direcciones IP, de los
parámetros de protocolo, la administración de los DNS y la gestión de los sistemas
servidores raíz. Distribuye espacio de direccionamiento de forma jerárquica y delega la
responsabilidad de la asignación local en organizaciones regionales denominadas Regional
Internet Registries (RIR): ARIN, RIPE, APNIC (AFRINIC, LACNIC)
(“Red.es” es una entidad pública empresarial adscrita al ministerio de Industria, Energía y
Turismo encargada de impulsar el desarrollo de la sociedad de la información en España).
111
Es un modelo de referencia para los protocolos de la red
que tiene por objetivo conseguir interconectar sistemas
de procedencia distinta para que estos pudieran
intercambiar información sin ningún tipo de
impedimentos debido a los protocolos con los que estos
operaban de forma propia según su fabricante. El modelo
OSI está conformado por 7 capas o niveles de abstracción.
Cada uno de estos niveles tendrá sus propias funciones
para que en conjunto sean capaces de poder alcanzar su
objetivo final. Precisamente esta separación en niveles
hace posible la intercomunicación de protocolos distintos
al concentrar funciones específicas en cada nivel de
operación. Lo que realmente hace OSI es definir la
funcionalidad de ellos para conseguir un estándar.
Entre cada par de capas adyacentes dentro de la misma
entidad, existe una interfaz que define cuales son las
operaciones y servicios que la capa ofrece a la capa superior, dichas capas se comunican
intercambiando bloques de datos, denominados PDU (Protocol Data Unit). Deben ser
fragmentadas y envidas en varias PDU de nivel N-1 en el origen, dichos fragmentos recibidos por
la capa N-1 en el destino deben ser reensamblados antes de pasarlos a la capa N.
112
➢ Medios de transmisión: componen el canal por el cual enviamos datos, puede ser medio
guiado, la señal puede ser eléctrica (cable coaxial y par trenzado) u óptica (fibra óptica), o
medio no guiado, se utilizan señales radioeléctricas, se propagan por el espacio. Cuando se
transmite una señal sobre un medio de transmisión, se observan distintos efectos negativos
sobre la señal:
• Atenuación: cualquier señal al propagarse por un medio de transmisión pierde potencia
y se atenúa con la distancia (en el caso del cable de cobre se debe fundamentalmente a
la resistencia del cable que provoca perdida en forma de calor; en el caso de la fibra
óptica se debe a la absorción de luz por parte del medio físico).
• Interferencia: algunos medios son susceptibles de recibir interferencias
electromagnéticas, la diafonía es un tipo particular de interferencia, se produce entre
señales que discurren por medios paralelos, los pares trenzados, por ejemplo, entre las
señales de ida y vuelta o entre las señales de distintos abonados.
• Ruido: es una perturbación en la señal analógica o digital que puede distorsionar la
información
• Desfase: una onda electromagnética se propaga a una velocidad, si no es exactamente
la misma en todas las frecuencias se da el desfase.
• Dispersión: la señal tiende a descomponerse
Dentro de los medios guiados hay cuatro tipos principales de medios de transmisión: par
trenzado no blindado (UTP), par trenzado blindado/apantallado (STP), cable coaxial y fibra
óptica.
• Cable coaxial: presentan unas características comunes, núcleo de cobre, aislamiento
plástico, blindaje de malla de cobre (evita que los datos generen interferencias en el
exterior), revestimiento exterior.
○ RG-58 (thinnet): cable coaxial de 50 ohmios utilizado en redes 10-BASE-2.
○ RG-59: cable coaxial de 75 ohmios utilizado en sistemas de TV por cable.
○ RG-6U: cable coaxial de 75 ohmios instalado en viviendas, capaz de transmitir
frecuencias de satélite, HD TV o cable-modem.
• Cable de par trenzado: más ampliamente utilizado debido al menor coste del cable y la
facilidad de instalación.
o UTP: presenta la mejor relación Cat. 5 100 Mbps 100 MHz
calidad/precio, la instalación es muy Cat. 5e 1 Gbps 100 MHz
sencilla y su rendimiento se incrementa Cat. 6 1 Gbps 250 MHz
continuamente, tiene habitualmente una
Cat. 6a 10 Gbps 500 MHz
cubierta externa de material aislante,
Cat. 7 10 Gbps 600 MHz
contiene cuatro pares de hilos de cobre,
Cat. 7a 10 Gbps 1000 MHz
recubiertos (cada hilo) de material aislante.
o STP: son sustancialmente más caros que UTP, su principal ventaja es su menor
susceptibilidad a interferencias electromagnéticas
• Fibra óptica: 2 hebras de vidrio o plástico (una de transmisión y otra de recepción),
existen dos variantes:
○ Monomodo: utilizada por los proveedores de servicios de
comunicaciones en sus enlaces intercontinentales y en redes de
campus o área local. El haz de luz no rebota en el “cladding”, las
longitudes de onda típicas son 1.310 y 1.550 nanómetros.
113
○ Multimodo: es utilizada en tecnologías como
FDDI, Gigabit y 10 Gigabit Ethernet, 10-BASE-FL
Y 100-BASE-F (habitualmente dentro de un edificio)
permite la transmisión de más de un nodo de luz a
través del cable. Las longitudes de onda típicas van
de 850 a los 1.300 nanómetros.
➢ Medidas reflectométricas: permiten detectar causas de problemas de comunicación
posteriores debidas a un mal diseño o instalación. Pruebas en el cableado de cobre:
• Reflectometría en el Dominio del Tiempo: se basa en transmitir una señal por un cable
y analizar su reflejo.
• Longitud del cable: permite detectar pares abiertos, cortocircuitos o roturas en el cable.
• Mapeo de hilos (Wire Mapping): consiste en verificar que cada hilo individual del cable
está conectado al pin del conector adecuado. (problemas típicos: cortocircuito de par,
par invertido, par cruzado…)
Rendimiento (las pruebas relatadas en los apartados anteriores son las pruebas básicas
mínimas que permiten garantizar que la red funciones, para categorizar y certificar, se llevan
a cabo las siguientes):
• Impedancia:
o Perdida de retorno estructural (Structural Return los, SRL)
o Perdida de retorno (Return Loss, RL)
• Atenuación: mide la degradación de la señal que atraviesa el cable, se mide en dB.
• Diafonía próxima (Near-End Crosstalk, NEXT): se mide emitiendo una señal sobre un par
del cable y midiendo la señal generada (señal de crosstalk) en el resto de pares del cable,
en dB.
• Atenuación/NEXT (Attenuation to near Crosstalk Ratio, ACR): mide la relación
señal/ruido en dB
• Diafonía lejana (Far-End Crosstalk, FEXT): se mide emitiendo una señal sobre un par del
cable y midiendo la señal generada (señal de crosstalk o diafonía) en el resto de pares
del cable en el extremo del cable alejado del transmisor.
• Ruido: interferencias electromagnéticas (EMI).
Pruebas en Fibra Óptica: en inmune a las interferencias generadas por el “crosstalk”, EMI y
RFI. Suelen llevarse a cabo dos pruebas, utilizando un Reflectómetro en el Dominio del
Tiempo Óptico (OTDR):
• Potencia Óptica: prueba fundamental, determina la fortaleza de la señal que atraviesa
el cable, base para medir la pérdida o atenuación de la señal. En fibra multimodo se
realizan con longitud de onda de 850 y 1300 nm, mientras que en monomodo
habitualmente solo se utiliza la de 1300 nm.
• Perdida o atenuación: es el decremento de fortaleza de la luz que atraviesa una fibra
óptica. La atenuación esta mas relaz8ionado con empalmes y conexiones que con la
longitud del cable, verifica que los cables y los conectores se han instalado
correctamente. Consiste en medir la potencia óptica de una fuente de luz calibrada que
genera un pulso y medir cuata señal (potencia óptica también) llega al otro extremo del
cable. La combinación del generador de luz y el medidor de potencia se denomina
“Optical Loss Test Set (OLTS)”.
114
• Reflectómetros en el Dominio del Tiempo Ópticos: dispositivo que transmite un pulso
calibrado sobre el cable que va a ser probado y monitoriza la señal que retorna, mide la
señal retornada por el efeto de “dispersión de retorno” (blackscatter).
➢ Medios de transmisión no guiados:
Radiofrecuencia (RF): se consideran las ondas electromagnéticas con frecuencias en el rango
de 3KHz hasta 300 GHz, utilizadas para las comunicaciones en televisión, radio, telefónico
móvil… Una antena se coloca en una zona en la que se percibe un cierto campo
electromagnético genera como respuesta a esta una corriente eléctrica, los parámetros de
una antena que más influyen son: la longitud de onda, potencia de la antena en transmisión,
calidad de receptor, tamaño y altura de la antena, modo de transmisión, ruido y señales de
interferencia. Algunas de las tecnologías inalámbricas más utilizadas son:
• Microondas: están constituidas por radiación electromagnética con longitudes de onda
que varían de un metro a un milímetro, sus frecuencias oscilan entre 300 MHz y 300
GHz, una banda inmensa en la que se incluyen entre otras tecnologías y bandas de UHF
a EHF: WiFI, WIMAX, Bluetooth… En telefonía móvil en España se emplean las bandas
de microondas:
o 900 MHz y 1800 MHz para 2G
o 900 MHz y 2100 MHz para 3G
o 800 MHz y 1800 MHz para 4G
o 700 MHz, 1500-3600 MHz y 2600 MHz para 5G
• Infrarrojos: la radiación IR es una forma de radiación electromagnética, su banda de
frecuencias va desde 430 THz hasta los 300 GHz, se utiliza fundamentalmente en
telecomunicaciones para transmisiones de corto alcance entre periféricos, se utiliza el
estándar IrDA (Infrared Data Association), utiliza diodos emisores de luz infrarroja (LED)
para emitir radiación infrarroja, el haz se modula para evitar la interferencia de otras
fuentes de infrarrojos como la luz solar o la iluminación artificial. Son útiles para uso en
interiores en áreas de alta densidad de población, IR no penetra las paredes. También
se utiliza para proporcionar la luz para sistema de comulaciones de fibra óptica. La luz
infrarroja con una longitud de onda de alrededor de 1330 nm o 1550 nm son las mejores
opciones para fibra óptica.
115
o MAC: constituye la subcapa inferior de la capa de enlace de datos. La MAC se
implementa mediante hardware, por lo general, en la NIC de la PC.
o LLC: se ocupa de la comunicación entre las capas superiores y las capas inferiores.
Generalmente, esta comunicación se produce entre el software de red y el hardware
del dispositivo. La subcapa LLC toma los datos del protocolo de la red, que generalmente
son un paquete IPv4, y agrega información de control para ayudar a entregar el paquete
al nodo de destino. En un PC, el LLC se puede considerar el controlador de la NIC. El
controlador de la NIC es un programa que interactúa directamente con el hardware de
la NIC para transmitir los datos entre la subcapa MAC y los medios físicos.
116
Tienen una longitud de 3 bytes y consiste en un delimitador de inicio, un byte de control
de acceso y un delimitador de fin. En cuanto a las tramas de comandos y de datos
pueden variar en tamaño, dependiendo del tamaño del campo de información. Las
tramas de datos tienen información para protocolos mayores, mientras que las tramas
de comandos contienen información de control.
o FDDI (Fiber Distributed Data Interface): conjunto de estándares ISO y ANSI para la
transmisión de datos en redes de computadoras de área extendida (WAN) o de área
local (LAN), mediante cables de fibra óptica. Se basa en la arquitectura Token Ring y
permite una comunicación tipo dúplex (completo).
o Ethernet (IEEE 802.3): estándar de redes de área local para computadoras, define las
características de cableado y señalización; de nivel físico y los formatos de tramas de
datos del nivel de enlace de datos del modelo OSI. A continuación se especifican los
anteriores conceptos en las tecnologías más importantes:
10BaseT 10 Mbits/s 100 m / Par Trenzado
10Base2 10 Mbits/s 185 m / Coaxial Delgado
10Base5 10 Mbits/s 500 m / Coaxial Grueso
10BaseF 10 Mbits/s 2000 m / Fibra Óptica
100BaseT4 100 Mbits/s 100 m / Par trenzado (Cat. 3)
100BaseTX 100 Mbits/s 100 m / Par trenzado (Cat. 5)
100BaseFX 100 Mbits/s 2000 m / Fibra Óptica
1000BaseT 1000 Mbits/s 100 m / Par trenzado (Cat. 5e o 6)
1000BaseTX 1000 Mbits/s 100 m / Par trenzado (Cat. 6)
1000BaseSX 1000 Mbits/s 550 m / Fibra Óptica (multimodo)
1000BaseLX 1000 Mbits/s 5000 m / Fibra Óptica (monomodo)
10000BaseT 10000 Mbits/s 100 m / Par trenzado (Cat. 6ª o 7)
10000BaseSR 10000 Mbits/s 300 m / Fibra Óptica (multimodo)
10000BaseLR 10000 Mbits/s 10000 m / Fibra Óptica (monomodo)
o ATM (Asynchronous Transfer Mode): protocolo para el transporte de una gama
completa de tráfico de usuarios, incluidas las señales de voz, datos y video. Proporciona
una funcionalidad similar tanto a la conmutación de circuitos como a las redes de
conmutación de paquetes: ATM utiliza multiplexación por división de tiempo
asincrónica y codifica datos en paquetes pequeños de tamaño fijo llamados celdas.
o ARP (Address Resolution Protocol): responsable de encontrar la dirección de hardware
(Ethernet MAC) que corresponde a una determinada dirección IP. Para ello se envía un
paquete (ARP request) a la dirección de difusión de la red que contiene la dirección IP
por la que se pregunta, y se espera a que esa máquina (u otra) responda (ARP reply) con
la dirección Ethernet que le corresponde. En Ethernet, la capa de enlace trabaja con
direcciones físicas. El protocolo ARP se encarga de traducir las direcciones IP a
direcciones MAC (direcciones físicas). Para realizar esta conversión, el nivel de enlace
utiliza las tablas ARP, cada interfaz tiene tanto una dirección IP como una dirección física
MAC.
117
RARP es un protocolo para obtener la dirección IP perteneciente a un determinado
hardware electrónico que se encuentra en la mayoría de las veces en una red Ethernet.
RARP utiliza el mismo mecanismo que ARP. La respuesta que se devuelve de una
solicitud es la dirección de protocolo de la estación origen, no la dirección de la estación
destino de la solicitud. Para poder usar RARP, todas las direcciones MAC deben estar
configuradas en un servidor central para que transfiera una dirección IP. El RARP
además de encontrarlo en las redes Ethernet, está disponible en otras redes de área
local como lo son la Interfaz de Fibra de Distribución de Datos y las redes LAN Token
Ring.
o STP (Spanning Tree Protocol): en algunos puentes pueden realizarse mapeos estáticos
“Dirección MAC - Puerto”, el mecanismo habitual para crear la tabla de conmutaciones
el aprendizaje dinámico. En una red con caminos físico redundante se producen
fenómenos como las tormentas de difusión, inestabilidad en las tablas de conmutación
y la generación de tráfico únicas residual que degradan el rendimiento de la misma hasta
bloquearla completamente. Con el objetivo de definir la arquitectura de protocolos para
puentes basados en MAC, se desarrolla el estándar IEEE 802.1D, en él se define el uso
del algoritmo de árbol de expansión (Spanning-tree protocol, STP) como mecanismo
necesario para la selección de caminos lógicos únicos. Y evitar así los efectos negativos
de la redundancia. El algoritmo transforma una red física con forma de malla, en la que
existen bucles, por una red lógica en forma de árbol (libre de bucles). Los puentes se
comunican mediante mensajes de configuración llamados Bridge Protocol Data
Units (BPDU).
o LACP (Link Aggregation Control Protocol): La agregación virtual de enlaces, también
llamada trunking, es una característica de nivel 2, que une puertos físicos de la red en
un único enlace de datos de gran ancho de banda; de este modo se aumenta la
capacidad de ancho de banda y se crean enlaces redundantes y de alta disponibilidad.
Si falla un enlace, la carga se redistribuye entre los enlaces restantes, con lo que el
funcionamiento es continuo. Gracias a la capacidad de “Distributed Multilink Trunking”,
el fallo o la eliminación de una unidad de la pila no causará la caída de todo un trunk.
• CAPA DE RED: proporciona conectividad y selección de ruta entre dos sistemas de hosts que
pueden estar ubicados en redes geográficamente distintas, su misión es conseguir que los
datos lleguen desde el origen al destino y para la consecución de su tarea, puede asignar
direcciones de red únicas, interconectar subredes distintas, encaminar paquetes, utilizar un
control de congestión y control de errores. Su PDU son los “paquetes” Hay dos formas en
las que el nivel de red puede funcionar internamente:
o Datagramas: cada paquete se encamina independientemente, sin que el origen y el
destino tengan que pasar por un establecimiento de comunicación previo.
o Circuitos virtuales: dos equipos que quieran comunicarse tienen que empezar por
establecer una conexión. Durante este establecimiento de conexión, todos los routers
que haya por el camino elegido reservarán recursos para ese circuito virtual específico.
Los dispositivos que facilitan tal tarea se denominan routers, trabajan en esta capa, aunque
pueden actuar como switch de nivel 2 en determinados casos, dependiendo de la función
que se le asigne. Los firewalls actúan sobre esta capa principalmente, para descartar
direcciones de determinadas máquinas o limitar el acceso a ciertas de ellas.
118
En este nivel se realiza el direccionamiento lógico y la determinación de la ruta de los datos
hasta su receptor final mediante los protocolos de capa de red, que se pueden clasificar en:
o Protocolos de enrutamiento (permiten la selección de rutas):
Pueden ser orientados a vector-distancia (calculan las rutas utilizando el algoritmo de
Bellman-Ford. En los protocolos de este tipo, ningún enrutador tiene información
completa sobre la topología de red. En lugar de ello, se comunica con los demás routers,
enviando y recibiendo información sobre las distancias entre ellos):
▪ RIP (Routing Information Protocol): protocolo de puerta de IGP (Interior Gateway
Protocol), utilizado por los routers o encaminadores para intercambiar información
acerca de redes del Internet Protocol (IP) a las que se encuentran conectados. Está
basado en el vector de distancia, ya que calcula la métrica o ruta más corta posible
hasta el destino a partir del número de "saltos" o equipos intermedios que los
paquetes IP deben atravesar. El límite máximo de saltos en RIP es de 15, de forma
que al llegar a 16 se considera una ruta como inalcanzable o no deseable. RIP es un
protocolo libre, fácil de configurar y simple.
RIPng: para el enrutamiento IPv6, use RIPng (next gen). El RIPng usa el puerto UDP
521 para enviar actualizaciones a las tablas de enrutamiento.
119
Pueden ser orientados a enlace-estado (cada nodo posee información acerca de la
totalidad de la topología de red. De esta manera, cada uno puede calcular el siguiente
salto a cada posible nodo destino de acuerdo a su conocimiento sobre cómo está
compuesta la red):
▪ OSPF (Open Shortest Path First): protocolo de red para encaminamiento jerárquico
de IGP que usa el algoritmo Dijkstra, para calcular la ruta más corta entre dos nodos.
Construye una base de datos enlace-estado idéntica en todos los routers de la zona,
puede operar con seguridad usando MD5 para autenticar sus puntos antes de
realizar nuevas rutas y antes de aceptar avisos de enlace-estado. OSPF puede usar
tanto multidifusiones (multicast) como unidifusiones (unicast) para enviar paquetes
de bienvenida y actualizaciones de enlace-estado. Las direcciones de multidifusión
usadas son 224.0.0.5 y 224.0.0.6. Al contrario que RIP o BGP, OSPF no usa ni TCP ni
UDP, sino que se encapsula directamente sobre el protocolo IP. Una red OSPF se
puede descomponer en regiones (áreas) más pequeñas. Hay un área especial
llamada área backbone que forma la parte central de la red a la que se encuentran
conectadas el resto de áreas de la misma. Las rutas entre las diferentes áreas
circulan siempre por el backbone, por lo tanto todas las áreas deben conectar con
el backbone. Si no es posible hacer una conexión directa con el backbone, se puede
hacer un enlace virtual entre redes.
▪ IS-IS (Intermediate System to intermediate System): protocolo de estado de enlace
que maneja un mapa para enrutar paquetes mediante la convergencia de la red.
Permite a sistemas intermedios (IS’s)dentro de un mismo dominio cambiar su
configuración e información de ruteo para facilitar la información de
encaminamiento y funciones de transmisión de la capa de red. El protocolo de
encaminamiento IS-IS está pensado para soportar encaminamiento en grandes
dominios consistentes en combinaciones de muchos tipos de subredes. Esto incluye
enlaces punto a punto, enlaces multipunto, subredes X.25, subredes broadcast…
120
▪ ICMP (Internet Control Message Protocol): utilizado para enviar mensajes de error
e información operativa indicando, por ejemplo, que un host no puede ser
localizado o que un servicio que se ha solicitado no está disponible. Estos mensajes
del protocolo ICMP se envían a la dirección IP de origen del paquete. Siendo un
protocolo de la "Capa de Red" ICMP difiere de los protocolos de la "Capa de
Transporte" (tales como TCP y UDP), en que no es generalmente usado para
intercambiar información entre sistemas, ni tampoco por las aplicaciones de usuario
(con excepción de algunas herramientas como ping y traceroute, que emplean
mensajes ICMP con fines de diagnóstico). Muchas de las utilidades de red comunes
están basadas en los mensajes ICMP. El comando traceroute puede implementarse
transmitiendo datagramas con valores especiales de TTL en la cabecera, y
analizando luego los mensajes de "Destino inalcanzable" y "Tiempo excedido" (tipos
3 y 11) generados como respuesta. La herramienta ping está implementada
utilizando los mensajes "Echo request" y "Echo reply" de ICMP. Mensajes de control:
- Echo Request: mensaje de control que se envía a un host con la expectativa de
recibir de él un Echo Reply (Respuesta eco). Esto es conocido como Ping y es
una utilidad del protocolo ICMP, subprotocolo de IP. Todo host debe responder
a un Echo Request con un Echo Reply que contenga exactamente los mismos
datos que el primero.
- Echo Reply: mensaje generado como respuesta a un mensaje Echo Request
(petición de Eco).
- Destination Unreachable: transportar un mensaje que es generado por un
enrutador, y se envía al host de origen, que recibe el mensaje emitido por el
enrutador. El mensaje en sí significa que este router considera inalcanzable el
destino al que quiere llegar el host. Si se recibe de parte del host de destino,
significa que el protocolo que se intentó acceder no está activo en aquel
momento.
- Time Exceded: se crea por una puerta de enlace para informar a la fuente de un
datagrama debido al tiempo de vida de campo al llegar a cero. Un mensaje
sobrepasando el tiempo también puede ser enviado por un host si no logra
volver a montar una fragmentación de datagramas dentro de su límite de
tiempo. Los mensajes del tiempo excedido son utilizados por la Ruta de
Seguimiento de utilidad para identificar las puertas de enlace en el cambio de
los anfitriones.
- Mask Request: se envía normalmente por un host a un router con el fin de
obtener una adecuada Máscara de Subred. Los remitentes deben responder
este mensaje con una Solicitud de Dirección de Máscara.
o Protocolo IP (Internet Protocol):
Protocolo de comunicación de datos digitales clasificado funcionalmente en la capa de
red según el modelo internacional OSI, su función principal es el uso bidireccional en
origen o destino de comunicación para transmitir datos mediante un protocolo no
orientado a conexión que transfiere paquetes conmutados a través de distintas redes
físicas previamente enlazadas según la norma OSI de enlace de datos.
121
El diseño del protocolo IP se realizó presuponiendo que la entrega de los paquetes de
datos sería no confiable. Por ello, IP tratará de realizarla del mejor modo posible,
mediante técnicas de enrutamiento, sin garantías de alcanzar el destino final pero
tratando de buscar la mejor ruta entre las conocidas por la máquina que esté usando IP.
Los datos en una red basada en IP son enviados en bloques conocidos como paquetes o
datagramas (en el protocolo IP estos términos se suelen usar indistintamente). En
particular, en IP no se necesita ningún intercambio de información de control previa a
la carga útil (datos), como sí que ocurre, por ejemplo, con TCP y únicamente proporciona
seguridad (mediante checksums o sumas de comprobación) de sus cabeceras y no de
los datos transmitidos.
▪ Direccionamiento IP: es el identificador de cada equipo dentro de su red de redes.
Cada equipo conectado a una red tiene una dirección IP asignada, la cual debe ser
distinta a todas las demás direcciones que estén vigentes en ese momento en el
conjunto de redes visibles por el equipo. Una dirección IP es un número binario de
32 bits. La dirección IP de un dispositivo está estructurada en dos partes, el
identificador de red a la que está
conectado el dispositivo, host u ordenador
y el identificador del dispositivo, host u
ordenador dentro de la red.
Para definir el prefijo de la dirección IP, es decir, lo que se conoce como identificador
de red, se utiliza la denominada máscara de red que es un número binario de 32 bits
que define en las posiciones a “1” el prefijo o identificador de red y en las posiciones
a “0” el sufijo o identificador de host. Es muy importante tener en cuenta que dentro
de una LAN un host únicamente se puede comunicar con aquellos otros que tengan
su mismo prefijo de red, por lo que utilizando las direcciones IP y sus
correspondientes máscaras de red podemos crear redes virtuales.
▪ Mascara, clases y subredes: para poder realizar el correspondiente encaminamiento
en Internet a través de las diferentes redes, y subredes creadas por las distintas
organizaciones; se introduce el concepto de máscara, es un número de 32 bits que
contiene unos en los bits que identifican tanto a una red (máscara de red), como a
una subred (máscara de subred) y al host. Mediante la máscara un ordenador sabe
si otro ordenador se encuentra en su misma subred o en otra distinta. Si pertenece
a su misma subred, el mensaje se entregará directamente, si se encuentra en otra
red diferente, el mensaje se enviará a la puerta de salida o router de la red.
ARIN (American Register Internet Number) es quien a través de los ISP (Internet
Service Provider) se encarga de gestionar, asignar y en su momento crear las
direcciones IP. Para facilitar la administración, los diseñadores del esquema de
direccionamiento IP determinaron la existencia de cinco únicas clases:
- Clase A (0): utilizan solamente los 8 primeros bits para identificar la parte de red
de la dirección, el resto (tres octetos) se utilizan para especificar la parte de host
de la dirección, es decir, 24
bits se reservan para
identificar cada una de las
conexiones dentro de la red.
122
- Clase B (10): sus dos primeros bits (los que se encuentran más a la izquierda)
tomarán siempre el valor binario 10, es decir, el primer octeto tendrá un valor
decimal entre 128 y 191, además las direcciones clase B utilizan los dos primeros
octetos para el identificador de red, por lo que restan los dos últimos octetos
para el identificador de host.
- Clase C (110): sus tres primeros bits (los que se encuentran más a la izquierda)
tomarán siempre el valor binario 110, es decir, el primer octeto tendrá un valor
decimal entre 192 y 223, además las direcciones clase C utilizan los tres
primeros octetos para el identificador de red, por lo que únicamente queda el
último octeto para el identificador de host.
- Clase D (1110): direcciones de multicast, consisten en que un datagrama sea
entregado a varios hosts dentro de la red en lugar de todos (broadcast) o uno
sólo (unicast).Se puede decir que una dirección de clase D o multicast identifica
un grupo de host dentro de la red. Lo que caracteriza a las direcciones clase D
es que sus cuatro primeros bits (los que se encuentran más a la izquierda)
tomarán siempre el valor binario 1110, es decir, el primer octeto tendrá un valor
decimal entre 224 y 239, además las direcciones clase D utilizan únicamente el
primer octeto como identificativo de red y los tres octetos restantes se utilizan
como identificativo de grupo de host.
- Clase E (1111): reservadas para uso experimental en proyectos de investigación
en la red.
Direcciones Públicas y Privadas: una dirección IP pública es aquella que identifica de
forma única una conexión a Internet. De todas las direcciones posibles existentes en
Internet han sido excluidas algunas para ser utilizadas como direcciones IP privadas,
es decir, direcciones IP para utilizar única y exclusivamente en redes de área local
que no pueden salir a navegar por Internet. Cuando desde una red local se sale a
navegar por Internet deberemos utilizar un router con tecnología NAT (Network
Address Translation), hará que sea el router el encargado de almacenar la dirección
privada en una tabla, asignarle un identificador y sustituir la dirección de origen por
la pública del router, de tal manera, que se podrá navegar por Internet con la
dirección del router y cuando se le conteste, al llegar nuevamente al router, no
tendrá más que consultar en su tabla el valor de la dirección privada
correspondiente al identificador y mandarle a ella el datagrama de respuesta. Las
direcciones IP reservadas como privadas son:
123
Las direcciones IP también se pueden clasificar en:
- Estáticas: un host que se conecte a la red con una dirección IP estática, siempre
lo hará con la misma IP. Las direcciones IP públicas estáticas son las que utilizan
los servidores de internet con objeto de que estén siempre localizables por los
usuarios de internet. Estas direcciones hay que contratarlas.
- Dinámicas: un equipo que se conecte a la red mediante una dirección IP
dinámica, cada vez lo hará con una dirección IP distinta. Las direcciones IP
públicas dinámicas, son las que se utilizan en las conexiones de internet
mediante un módem. Los provedores de internet (ISP) utilizan direcciones IP
dinámicas porque tienen más clientes que direcciones IP (es muy improbable
que todos se conecten a la vez).
Otras direcciones IPv4 de Propósito Especial: bloques de direcciones IPv4 globales y
de propósito especial que han sido asignados por IANA, no se asignan a los
operadores y usuarios y tampoco para uso interno de los Regional Internet
Registries (RIR):
- 0.0.0.0/8: hace referencia a los equipos origen al concepto “esta red” o “este
dispositivo”
- 0.0.0.0/32: hace referencia a la dirección IP de origen de “este host” en “esta
red”.
- 127.0.0.1/8: se ha asignado para el uso como dirección de “loopback”. Un
datagrama enviado por un protocolo de capa superior a cualquier dirección de
este bloque regresa al propio host.
- 169.254.0.0/16: bloque de direcciones de enlace local (local link), se reserva
para la comunicación entre hosts en un solo enlace de datos, equipos que están
conectado en el mismo “domino de difusión”.
- 192.0.2.0/24: uso en documentación y código de ejemplo “TEST-NET-1”
- 224.0.0.0/4: conocido formalmente con direcciones de clase D, se reserva para
el tráfico multicast en IPv4
- 240.0.0.0/4: denominado formalmente como direcciones de clase E, reservada
para usos futuros por la IANA, la única excepción existente es 255.255.255.255
usada para “broadcast inundado” los paquetes dirigidos a esta dirección no se
enrutan.
CIDR (Classless Inter-Domain Routing): reemplaza la sintaxis previa para nombrar
direcciones IP, las clases de redes. En vez de asignar bloques de direcciones en los límites
de los octetos, que implicaban prefijos «naturales» de 8, 16 y 24 bits, CIDR usa la técnica
VLSM (variable length subnet mask, en español «máscara de subred de longitud
variable»), para hacer posible la asignación de prefijos de longitud arbitraria.
124
Subneting: a medida que las redes de datos iban aumentando su tamaño, se planteaban
dos problemas relacionados con la escalabilidad, el control del tráfico de broadcast (en
las redes IP se utiliza en situaciones muy habituales el tráfico de broadcast, dirigido a
todos los equipos de la red y que es procesado por todos ellos. Cuando el tamaño de la
red crece en número de equipos, el porcentaje de trafico de broadcast se va incremento,
hasta que provoca que le ancho de banda quede prácticamente consumido por este tipo
de paquetes) y la creación de redes lógicas diferentes dentro de una sola organización
(cuando las redes de comunicaciones dan servicio a diferentes departamentos es
recomendable separar el tráfico de cada departamento en redes lógicas diferentes,
dentro de una organización pueden utilizarse diferentes tipos de tecnologías de red, lo
que genera la necesidad de identificar de forma individual cada una de ellas.
Se define una subred como un subconjunto de una red, dividiendo la parte local o
dirección del equipo en 2 partes, la dirección de subred y la dirección de host.
Existen dos métodos:
- FLSM (Fixed Length Subnet Mask): para solucionar los problemas descritos se
realiza la división en subredes de la siguiente forma:
1. Se toman prestados los bits que necesitemos de la parte de host: (2^número
de bits robados = número de subredes posibles)
125
3. Cálculo de hosts: (2^número de bits no robados – 2 = número de hosts
posibles)
126
▪ Cabecera IP:
127
▪ IPv6: especifica un nuevo formato de paquete, diseñado para minimizar el
procesamiento del encabezado de paquetes. Debido a que las cabeceras de los
paquetes IPv4 e IPv6 son significativamente distintas, los dos protocolos no son
interoperables. Las direcciones IPv6 tienen un tamaño de 128 bits que se escriben
en ocho grupos de cuatro dígitos hexadecimales, se puede comprimir un grupo de
cuatro dígitos si este es nulo (es decir, toma el valor "0000"), si la dirección tiene
más de una serie de grupos nulos consecutivos la compresión permite en solo uno:
2001:0DB8:0000:0000:0000:0000:1428:57ab = 2001:0DB8::1428:57ab
La dirección IPv6 del tipo IPv4-mapeada ::ffff:c000:280 se puede representar como
::ffff:192.0.2.128, mostrando claramente la dirección IPv4 mapeada dentro de la IPv6.
Se clasifican en:
a) Unicast: identifica un único interfaz de red. El protocolo de Internet entrega los
paquetes enviados a una dirección unicast al interfaz específico.
b) Anycast: es asignada a un grupo de interfaces, normalmente de nodos
diferentes. Un paquete enviado a una dirección anycast se entrega únicamente
a uno de los miembros, típicamente el host con “menos coste”.
Tanto los Unicast como los Anycast, los primeros 64bits identifican el prefijo de
red, y son usados para encaminamiento; los últimos 64 bits identifican la
interface de red del host.
BITS 8 4 4 112
128
Identificación de los tipos de direcciones: pueden identificarse tomando en cuenta los
rangos definidos por los primeros bits de cada dirección.
○ ::/128 Se usa para indicar ausencia de dirección
○ ::1/128 La dirección de loopback es una dirección que puede usar un nodo para
enviarse paquetes a sí mismo (corresponde con 127.0.0.1 de IPv4). No
puede asignarse a ninguna interfaz física.
○ fe80::/10 El prefijo local link, específica que la dirección solamente es válida en el
enlace físico local.
○ ff00::/8 El prefijo de multicast.
○ 2002::/16 Esquema de direccionamiento 6to4 (permite enviar paquetes IPv6 sobre
redes IPv4 obviando la necesidad de configurar túneles manualmente).
Un paquete en IPv6 está compuesto principalmente de dos partes: header (que tiene
una parte fija y otra con las opciones) y payload (los datos).
- Cabecera fija: Los primeros 40 bytes (320 bits) son la cabecera del paquete y
contiene los siguientes campos
129
En IPv6 las opciones se manejan por medio de las llamadas Cabeceras de Extensión
(Extension Headers). Estas cabeceras se insertan en el paquete solo si las opciones son
necesarias:
o Hop-by-Hop Options: la información de esta cabecera debe ser examinada Salto-a-
Salto, es decir, en cada uno de los nodos de la ruta que ha de seguir el paquete.
o Routing Header: se utiliza para dar una lista de uno o más nodos que deben estar
en la ruta seguida por un paquete.
o Fragment Header: un host IPv6 que quiere enviar un paquete a un destino IPv6
utiliza el llamado “Path MTU discovery” para determinar el tamaño máximo de
paquete que se puede utilizar en el path hasta ese destino. Si el paquete que hay
que enviar es más grande que el MTU soportado, el host origen fragmenta el
paquete. Gracias a esta forma de actuar, la fragmentación se gestiona de extremo
a extremo, liberando a los routers del path de este trabajo.
o Destination Options: estas cabeceras llevan información que será procesada,
exclusivamente, por el nodo de destino.
o Authentication Header: proporciona integridad y autenticación (que no
confidencialidad) para todos los paquetes de datos IP.
o Encapsulation Security Payload Header: proporciona integridad, confidencialidad,
autenticación de datos y otras funciones para todos los paquetes de datos IP.
130
• CAPA DE TRANSPORTE: encargada de efectuar el transporte de los datos (que se encuentran
dentro del paquete) de la máquina origen a la de destino de forma confiable,
independientemente del tipo de red física que esté utilizando, así como de mantener el flujo
de la red. La PDU se llama Segmento o Datagrama, dependiendo de si corresponde a TCP o
UDP, el primero orientado a conexión (transmisión verificada, eventualmente
retransmitida) y el otro sin conexión (pueden perderse algunos datos por el camino).
Internet tiene dos protocolos principales en la capa de transporte, uno no orientado a la
conexión, UDP, y otro orientado a la conexión, el TCP:
○ UDP (User Datagram Protocol): protocolo del
nivel de transporte basado en el intercambio
de datagramas (Encapsulado de capa 4 o de
Transporte del Modelo OSI). Permite el envío
de datagramas a través de la red sin que se
haya establecido previamente una conexión, ya que el propio datagrama incorpora
suficiente información de direccionamiento en su cabecera. Tampoco tiene
confirmación ni control de flujo, por lo que los paquetes pueden adelantarse unos a
otros; y tampoco se sabe si ha llegado correctamente, ya que no hay confirmación de
entrega o recepción. Su uso principal es para protocolos como DHCP, BOOTP, DNS.
○ TCP (Transmission Control Protocol): garantiza que los datos serán entregados en su
destino sin errores y en el mismo orden en que se transmitieron. También proporciona
un mecanismo para distinguir distintas aplicaciones dentro de una misma máquina, a
través del concepto de puerto. Las aplicaciones pueden comunicarse en forma segura
(gracias al acuse de recibo “ACK” del protocolo TCP) independientemente de las capas
inferiores. Permite colocar los segmentos nuevamente en orden cuando vienen del
protocolo IP, monitoreo del flujo de los datos para evitar la saturación de la red, permite
que los datos se formen en segmentos de longitud variada para "entregarlos" al
protocolo IP y permite multiplexar los datos, es decir, que la información que viene de
diferentes fuentes (por ejemplo, aplicaciones) en la misma línea pueda circular
simultáneamente. Las conexiones TCP se componen de tres etapas:
1. Establecimiento de conexión (3-way handshake): una entidad abre un socket en un
determinado puerto TCP, enviando un paquete SYN inicial al servidor, en el lado del
servidor se comprueba si el puerto está abierto, es decir, si existe algún proceso
escuchando en ese puerto. En caso de no estarlo, se envía al cliente un paquete de
respuesta con el bit RST activado, lo que significa el rechazo del intento de conexión.
En caso de que sí se encuentre abierto el puerto, el lado servidor respondería con
un paquete SYN/ACK. Finalmente, el cliente debería responderle al servidor con un
ACK, completando así la negociación en tres pasos (SYN, SYN/ACK y ACK) y la fase
de establecimiento de conexión.
2. Transferencia de datos: una serie de mecanismos claves determinan la fiabilidad y
robustez del protocolo. Entre ellos están incluidos el uso del número de secuencia
para ordenar los segmentos TCP recibidos y detectar paquetes duplicados,
checksums para detectar errores, asentimientos y temporizadores para detectar
pérdidas o retrasos y ventanas deslizantes para el control de flujo de datos.
- Números iniciales de secuencia: son usados para identificar los datos dentro del
flujo de bytes, y poder identificar (y contar) los bytes de los datos de la
aplicación. Siempre hay un par de números de secuencia incluidos en todo
segmento TCP, referidos al número de secuencia y al número de asentimiento.
131
Para mantener la fiabilidad, un receptor asiente los segmentos TCP indicando
que ha recibido una parte del flujo continuo de bytes. Una mejora de TCP,
llamada asentimiento selectivo (Selective Acknowledgement, SACK) permite a
un receptor TCP asentir los datos que se han recibido de tal forma que el
remitente solo retransmita los segmentos de datos que faltan.
- Checksum: consistente en el complemento a uno de la suma en complemento
a uno del contenido de la cabecera y datos del segmento TCP, agrupados en
intervalos de 16 bits, es calculado por el emisor, e incluido en la transmisión del
segmento.
- Ventanas deslizantes: TCP usa control de flujo para evitar que un emisor envíe
datos de forma más rápida de la que el receptor puede recibirlos y procesarlos.
▪ Puertos: cada lado de la conexión TCP o UDP tiene asociado un número de puerto asignado
por la aplicación emisora o receptora. Los puertos son clasificados en tres categorías:
○ Well Known: son asignados por la Internet Assigned Numbers Authority (IANA), van del
0 al 1023 y son usados normalmente por el sistema o por procesos con privilegios. Las
aplicaciones que usan este tipo de puertos son ejecutadas como servidores y se quedan
a la escucha de conexiones. Algunos ejemplos son:
FTP / TFTP / SFTP 20-21 / 69 / 989-990 TCP / UDP / TCP
SSH 22 TCP
Telnet 23 TCP
SMTP 25 TCP
DNS 53 UDP
DHCP 67-68 UDP
HTTP / HTTPS 80 / 443 TCP
POP3 / POP3oTLS-SSL 110 / 995 TCP
NTP 123 UDP
NetBIOS 137 / 138 / 139 TCP
IMAP4 / IMAP4oTLS-SSL 143 /993 TCP
SNMP 161 / 162 TCP
BGP 179 TCP
LDAP / LDAPS 389 / 989 - 990 TCP
syslog 514 UDP
132
○ Registered: normalmente empleados por las aplicaciones de usuario de forma temporal
cuando conectan con los servidores, pero también pueden representar servicios que
hayan sido registrados por un tercero (rango de puertos registrados: 1024 al 49151).
○ Dinámicos/Privados: también pueden ser usados por las aplicaciones de usuario, pero
este caso es menos común. Los puertos dinámicos/privados no tienen significado fuera
de la conexión TCP en la que fueron usados (rango de puertos dinámicos/privados:
49152 al 65535)
Keep alive (mecanismos de mantenimiento de conexiones TCP) se refiere generalmente
a las conexiones de comunicación en una red que no están terminadas pero que se
mantienen hasta que el cliente o servidor interrumpe la conexión. La característica clave
de mantener las keep alive es el envío de un mensaje sin contenido entre un servidor y
un cliente. Con este mensaje, uno de los usuarios de la red (cliente o servidor) puede
comprobar si la conexión esta activa.
133
o NetBIOS (Network Basic Input/Output System): permite a las aplicaciones 'hablar' con
la red. Su intención es conseguir aislar los programas de aplicación de cualquier tipo de
dependencia del hardware. También evita que los desarrolladores de software tengan
que desarrollar rutinas de recuperación ante errores o de enrutamiento o
direccionamiento de mensajes a bajo nivel. En una red local con soporte NetBIOS, las
computadoras son conocidas e identificadas con un nombre. Cada computador de la red
tiene un único nombre. Cada PC de una red local NetBIOS se comunica con los otros
bien sea estableciendo una conexión (sesión), usando datagramas NetBIOS o mediante
broadcast. Las sesiones permiten, como en el protocolo TCP, mandar mensajes más
largos y gestionar el control y recuperación de errores. La comunicación será punto a
punto. Por otro lado, los métodos de datagramas y broadcast permiten a un ordenador
comunicarse con otros cuantos al mismo tiempo, pero estando limitados en el tamaño
del mensaje. Además, no hay control ni recuperación de errores (al igual que ocurre en
UDP). A cambio, se consigue una mayor eficiencia con mensajes cortos, al no tener que
establecer una conexión.
• CAPA DE PRESENTACIÓN: se encarga de la representación de la información, de manera que
aunque distintos equipos puedan tener diferentes representaciones internas de caracteres,
números, sonido, imagen… Podemos resumir definiendo a esta capa como la encargada de
manejar las estructuras de datos abstractas y realizar las conversiones de representación de
datos necesarias para la correcta interpretación de los mismos. Esta capa actúa como
traductor y cumple 3 funciones principales: formateo de datos, cifrado de datos y
compresión de datos.
o SSL (Secure Sockets Layer): protocolo criptográfico, que proporciona comunicaciones
seguras por una red. Se usan certificados X.509 y por lo tanto criptografía asimétrica
para autentificar a la contraparte con quien se están comunicando,2 y para intercambiar
una llave simétrica. Esta sesión es luego usada para cifrar el flujo de datos entre las
partes. Esto permite la confidencialidad del dato/mensaje, códigos de autenticación de
mensajes para integridad y como un producto lateral, autenticación del mensaje. SSL
proporciona autenticación y privacidad de la información entre extremos sobre Internet
mediante el uso de criptografía e implica 3 fases básicas: negociación entre las partes,
intercambio de claves publicas y autenticación basada en certificados y por ultimo el
cifrado del trafico basado en cifrado simétrico. Durante el proceso de comunicación
segura SSL existen dos estados fundamentales, el estado de sesión y el estado de
conexión. A cada sesión se le asigna un número de identificación elegido por el servidor,
un método de compresión de datos, una serie de algoritmos de encriptación y funciones
hash, una clave secreta maestra de 48 bytes y una etiqueta de conexiones.
- Certificado digital X.509: propuesta por el ITU-T, fue la primera propuesta a nivel
internacional para una infraestructura de clave publica, Public Key Infraestructure
(PKI). Es un estándar importante debido a que la estructura del certificado y los
protocolos de autenticación que en él se definen son utilizados en muchos
contextos como SSL, TLS o S/MIME.
- OCSP (Online Certificate Status Protocol): método para determinar el estado de
vigencia de un certificado digital X.509 usando otros medios que no sean el uso de
CRL (Listas de Revocación de Certificados).
134
o TLS: el protocolo intercambia registros que encapsulan los datos que se intercambian,
cada registro puede ser comprimido, cifrado y empaquetado con un código de MAC
(Código de Autenticación del Mensaje), todo dependiendo del estado de la conexión.
Cada registro tiene un “campo de tipo de contenido” que designa el tipo de datos
encapsulados, “campo de longitud” y un “campo de versión TLS”. Funciona mediante
los protocolos TLS Record Protocol y el protocolo de la capa de mutuo acuerdo que
consiste en un conjunto de tres subprotocolos que permiten a las entidades
participantes en la comunicación TLS intercambiar los parámetros de seguridad
necesarios en la capa de registro, autenticarse entre ellas, instanciar los parámetros de
seguridad e informar de las condiciones de error producidas:
- El protocolo Change Chiper Spec (CCSP): consiste en indicar los cambios de
estrategias de cifrado.
- Alert Protocolo (AP): utilizado para que una entidad emita a la entidad para
cualquier tipo de error que se produzca en el ámbito de TLS.
- Handshake Protocol (HP): cuando se inicia la conexión, el registro encapsula un
protocolo de "control" (el protocolo de mensajería de handshake). Este protocolo
se utiliza para el intercambio de toda la información requerida por las dos partes
para el intercambio de los datos de las aplicaciones reales por TLS. En él se definen
los mensajes de formato o que contengan esta información y el orden de su
intercambio. Este intercambio inicial resulta en una conexión exitosa TLS (ambas
partes listas para transferir datos de la aplicación con TLS) o un mensaje de alerta.
A continuación, un ejemplo simple de conexión, que ilustra un handshake en el que
el servidor (pero no el cliente) es autenticado por su certificado:
a) Fase de negociación:
1º. Un cliente envía un mensaje ClientHello especificando la versión más alta
de protocolo TLS que soporta, un número al azar, una lista de conjuntos de
cifrado sugeridas y métodos de compresión sugeridos.
2º. El servidor responde con un mensaje ServerHello, que contiene la versión
del protocolo elegido, un número aleatorio, CipherSuite y método de
compresión de las opciones ofrecidas por el cliente.
3º. El servidor envía su mensaje de certificado y a continuación el
ServerKeyExchange y por ultimo el servidor envía un mensaje
ServerHelloDone, lo que indica que terminó con la negociación del
handshake.
4º. El cliente responde con un mensaje ClientKeyExchange, que puede
contener una PreMasterSecret (se cifra utilizando la clave pública del
certificado del servidor), la clave pública, o nada.
5º. El cliente y el servidor a continuación utilizan los números aleatorios y
PreMasterSecret para calcular un secreto común, llamado el "secreto
principal" (master secret). Todos los demás datos clave para esta conexión
se deriva de este secreto principal (y los valores aleatorios generados tanto
por cliente y por servidor), que se pasan a través de una función
pseudoaleatoria cuidadosamente diseñado.
b) El cliente envia un registro ChangeCipherSpec, informando de que todo será
autenticado (y cifrado si los parámetros de cifrado estaban presentes en el
certificado del servidor) desde este momento, por último, el cliente envía un
mensaje autenticado y cifrado de Finished (terminado), que contiene un hash y
MAC sobre los mensajes de handshake anteriores.
135
El servidor intentará descifrar el mensaje Finished del cliente y verificar el hash
y MAC. Si el descifrado o verificación falla, el handshake se considera que ha
fracasado y la conexión debe ser derribada.
c) El servidor responde con otro ChangeCipherSpec, diciéndole al cliente, "Todo lo
que yo te diga de ahora en adelante será autenticado (y cifrado, si el cifrado se
negoció)." El servidor envía su mensaje Finished autenticado y cifrado. El cliente
realiza el mismo descifrado y verificación.
d) Fase de aplicación: en este punto, el "handshake" está completado y el
protocolo de aplicación está activada. Los mensajes de aplicación
intercambiados entre el cliente y el servidor también serán autenticados y
opcionalmente cifrados exactamente igual que en su mensaje final.
TLS 1.3: proporciona autenticación y privacidad de la información entre extremos
sobre Internet mediante el uso de criptografía. Para poder iniciar una sesión de conexión, el
protocolo handshake o de negociación inicia una fase de negociación siguen el siguiente orden:
• El cliente envía un mensaje ClientHello, especificando la información de cifrado y la versión
del protocolo, la lista de algoritmos y los métodos de compresión que soporta.
• El servidor responde al cliente con un mensaje ServerHello indicando el cifrado, método de
compresión y protocolo TLS elegidos y una cadena de 32 bytes aleatorios.
• El servidor ofrece su mensaje de certificado para ser verificado por el cliente, de esta
manera el cliente puede verificar la integridad del servidor.
• El servidor envía su mensaje ServerKeyExchange, el cual incluye la calve publica y la clave
del certificado y posteriormente solicita mediante el mensaje Certificate Request el
certificado del cliente para que la conexión pueda ser mutuamente autenticada.
• El servidor envía un mensaje ServerHelloDone dando por concluida la fase de negociación
asimétrica.
• El cliente responde con un mensaje con su certificado.
• LE cliente una vez ha comprobado y validad el certificad responde con un mensaje
ClientKeyExchange que contienen la PreMasterSecret cifrada con la clave pública del
servidor.
Cliente y servidor usan las cadenas de números aleatoria y la PreMasterSecret para generar la
clave de sesión secreta con la ambos cifraran y descifraran la informa enviada.
o Códecs de audio y video: H.323 es uno de los estándares más antiguos que
generalmente se utilizan para la telefonía VoIP y videoconferencia. Es un sistema de
varios protocolos y elementos que permite la transferencia de datos de medios
sobre redes de paquetes. Esta estructura de recomendación estándar abre
diferentes opciones de comunicación multimedia, incluyendo telefonía,
videoconferencia y transferencia de medios. Por defecto, H.323 utiliza el código
G.711 con una alta velocidad de ancho de banda. Sin embargo, se considera que
G.711 está desactualizado. Los códecs de baja frecuencia como G.723 y G.729 se
usaron inicialmente para las conexiones a Internet. En cuanto a los códecs de video,
todos los puntos finales modernos H.323 deben ser compatibles con H.264, que se
convierten en un estándar.
o XDR (eXternal Data Representation): permite la transferencia de datos entre
máquinas de diferentes arquitecturas y sistemas operativos. Trabaja al nivel de
ordenamiento de byte, códigos de caracteres y sintaxis de estructura de datos.
136
• CAPA DE APLICACIÓN: Ofrece a las aplicaciones (de usuario o no) la posibilidad de acceder
a los servicios de las demás capas y define los protocolos que utilizan las aplicaciones para
intercambiar datos, como correo electrónico (POP y SMTP), gestores de bases de datos y
protocolos de transferencia de archivos (FTP). En esta capa aparecen diferentes protocolos
y servicios:
o NFS (Network File System): posibilita que distintos sistemas conectados a una misma
red accedan a ficheros remotos como si se tratara de locales y está implementado sobre
los protocolos XDR (presentación) y ONC RPC (sesión). El protocolo NFS está incluido por
defecto en los Sistemas Operativos UNIX y la mayoría de distribuciones Linux. Un
servidor y uno o más clientes. Los clientes acceden de forma remota a los datos que se
encuentran almacenados en el servidor, Las estaciones de trabajo locales utilizan menos
espacio de disco debido a que los datos se encuentran centralizados en un único lugar
pero pueden ser accedidos y modificados por varios usuarios, de tal forma que no es
necesario replicar la información. Los usuarios no necesitan disponer de un directorio
“home” en cada una de las máquinas de la organización. Los directorios “home” pueden
crearse en el servidor de NFS para posteriormente poder acceder a ellos desde cualquier
máquina a través de la infraestructura de red. También se pueden compartir a través de
la red dispositivos de almacenamiento.
El servidor también ofrece servicios de montaje, de control de autenticación y acceso y
una caché a través del uso del comando “rpc”:
▪ rpc.mountd: demonio que se encarga del montaje remoto. Recibe la petición desde
el cliente NFS y comprueba que el sistema de archivos este exportado y si está
disponible permite las solicitudes de acceso de NFS y proporciona información sobre
ello (showmount).
▪ rpc.nfsd: demonio para servir archivos. Se pueden arrancar varias copias de este
demonio. Utiliza el puerto TCP/UDP 2049.
▪ rpc.portmap: se encarga de indicar a los clientes donde se encuentra el servicio real
en el servidor. Los servicios basados en RPC usan portmap para atender las
peticiones de los clientes por lo cual este servicio debe estar disponible el primero.
▪ rpc.lockd: encargado de proporcionar el servicio de bloqueo de archivos para
asegurar su consistencia ya que pueden ser accedidos de forma concurrente. Se
ejecuta tanto en el servidor como en el cliente.
▪ rpc.statd: demonio que trabaja conjuntamente con lockd para recuperar en caída
de sistemas. Mantiene información sobre los procesos en los clientes que poseen
locks de archivos de determinado servidor. Cuando el servidor NFS se recupera statd
informa a los otros de los clientes, que el servidor se ha recuperado y así ellos
resuelven los locks que tenían.
o FTP (File Transfer Protocol): protocolo utilizado para la transferencia de archivos entre
dos equipos que estén conectados a una red TCP/IP. El modelo usado en FTP es el de
una aplicación cliente-servidor, envía comandos oportunos para iniciar sesión, una vez
iniciada, puede efectuar algunos comandos de manipulación o envío/recepción de
ficheros y después desconecta la sesión. El servidor se limita a recibir conexiones de los
clientes, interpretar los comandos y comprobar si las operaciones se pueden efectuar
sobre los ficheros. Dependiendo de factores como los cortafuegos que existan entre el
cliente y el servidor, si se usa NAT o no… Se puede usar:
137
▪ Modo activo: el cliente se conecta al puerto 21 del servidor, y pone un puerto TCP
aleatorio por envían del 1023 en escucha, envía ese número de puerto al servidor
mediante la conexión establecida, y el servidor se conecta al cliente para enviar los
datos.
▪ Modo pasivo: el cliente se conecta al puerto 21 del servidor, el servidor entonces
pone un puerto aleatorio por encima del 1023 en escucha, y envía ese número de
puerto al cliente, para que inicie otra conexión al servidor e intercambiar los datos
por ella.
Estos dos modos consiguen que la comunicación se pueda realizar, aunque uno de los
extremos tena un firewall que le impida recibir conexiones.
Dependiendo del tipo de datos que se envían:
▪ Type ASCII: solo se utilizará el juego de caracteres ASCII para enviar los datos, es
decir, que transmitiremos únicamente texto.
▪ Type Binary: podemos enviar el tipo de archivos que queramos, sin importar la
codificación.
Comandos FTP:
- open “dirección”: inicia una conexión con un servidor FTP.
- close o disconnect: finaliza una conexión FTP.
- bye: finaliza una conexión FTP y la sesión de trabajo con el programa cliente.
- cd: cambia el directorio de trabajo en el servidor.
- delete “archivo”: borra un archivo en el servidor.
- dir: muestra el contenido del directorio de trabajo en el que estamos en el servidor.
- !dir: muestra el contenido del directorio de trabajo en el que estamos en la maquina
local.
- get “archivo”: solicita el envío de un archivo del servidor.
- put “archivo”: envía un archivo al servidor.
- pwd: muestra el directorio activo en el servidor.
- bin: activa el modo de transferencia binario.
- ascii: activa el modo de transferencia en modo texto ASCII.
o DHCP (Dynamic Host Configuration Protocol): protocolo de red de
tipo cliente/servidor mediante el cual un servidor DHCP asigna
dinámicamente una dirección IP y otros parámetros de configuración
de red a cada dispositivo en una red para que puedan comunicarse
con otras redes IP. Este servidor posee una lista de direcciones IP
dinámicas y las va asignando a los clientes conforme estas van
quedando libres, sabiendo en todo momento quién ha estado en
posesión de esa IP, cuánto tiempo la ha tenido y a quién se la ha
asignado después. El DHCP le permite al administrador supervisar y
distribuir de forma centralizada las direcciones IP necesarias y,
automáticamente, asignar y enviar una nueva IP si fuera el caso en
que el dispositivo es conectado en un lugar diferente de la red. El
protocolo DHCP incluye tres métodos de asignación de direcciones IP:
138
▪ Asignación manual o estática: asigna una dirección IP a una máquina determinada.
Se suele utilizar cuando se quiere controlar la asignación de dirección IP a cada
cliente, y evitar, también, que se conecten clientes no identificados.
▪ Asignación automática: asigna una dirección IP a una máquina cliente la primera vez
que hace la solicitud al servidor DHCP y hasta que el cliente la libera. Se suele utilizar
cuando el número de clientes no varía demasiado.
▪ Asignación dinámica: el único método que permite la reutilización dinámica de las
direcciones IP. El administrador de la red determina un rango de direcciones IP y
cada dispositivo conectado a la red está configurado para solicitar su dirección IP al
servidor cuando la tarjeta de interfaz de red se inicializa. El procedimiento usa un
concepto muy simple en un intervalo de tiempo controlable. Esto facilita la
instalación de nuevas máquinas clientes.
o HTTP (HyperText Transfer Protocol): protocolo de comunicaciones de aplicación que
permite la transmisión de datos en forma de texto, hipertexto, audio, imágenes o
cualquier tipo de información multimedia. Es un protocolo cliente/servidor orientado a
transacciones, un protocolo sin estados donde cada “transacción” de información
requiere el establecimiento, mantenimiento y cierre de la conexión entre el cliente y el
servidor. El funcionamiento de HTTP es: un cliente HTTP (navegador web) establece una
conexión directa con el servidor, donde se ubica el recurso. El cliente establece una
conexión TCP con el servidor y emite una solicitud HTTP. Esta solicitud consta de una
sentencia concreta (método), una URL y un mensaje MIME que contiene los parámetros
de la solicitud. Cuando el servidor recibe la solicitud, intenta llevar a cabo la acción
solicitada y después devuelve una respuesta HTTP. La respuesta incluye información de
estado, un código de éxito/error y un mensaje MIME que contiene información sobre el
servidor sobre la propia respuesta y finalmente el cuerpo de la propia respuesta.
Métodos HTTP:
- GET: El método GET se emplea para leer una representación de un resource. En caso
de respuesta positiva (200 OK), GET devuelve la representación en un formato
concreto: HTML, XML, JSON o imágenes, JavaScript, CSS, etc.
- HEAD: Es idéntido a GET, pero el servidor no devuelve el contenido en el HTTP
response. Cuando se envía un HEAD request, significa que sólo se está interesado
en el código de respuesta y los headers HTTP, no en el propio documento
- POST: se utiliza para enviar una entidad a un recurso en específico, causando a
menudo un cambio en el estado o efectos secundarios en el servidor, aunque se
envía en el mismo formato que con el método GET. Si se quiere enviar texto largo o
cualquier tipo de archivo este es el método apropiado.
- PUT: Utilizado normalmente para actualizar contenidos, pero también pueden
crearlos.
- DELETE: elimina un recurso especifico identificado en la URI.
- CONNECT: establece un túnel hacia el servidor identificado por el recurso.
- OPTIONS: es utilizado para describir las opciones de comunicación para el recurso
de destino.
- TRACE: realiza una prueba de bucle de retorno de mensaje a lo largo de la ruta al
recurso de destino.
- PATCH: es utilizado para aplicar modificaciones parciales a un recurso.
139
Mensajes de respuesta:
▪ Respuestas informativas (100-Continue, 101-switch protocols,…)
▪ Respuestas satisfactorias (200-OK, 202-Accepted, 204-no content,…)
▪ Redirecciones (300-multiple choices, 301-moved pertmanently, 305-Use Proxy,…)
▪ Errores de los clientes (400-Bad request, 401-Unauthorized, 403-forbidden,…)
▪ Errores de los servidores (500-Internal Server Error, 502-Bad Gateway, 503-Service
Unavailable,…)
HTTP/2 no modifica la semántica de aplicación de HTTP. Todos los conceptos básicos,
tales como los métodos HTTP, códigos de estado, URI, y campos de cabecera, se
mantienen sin cambios; sin embargo, HTTP 2.0 introduce innumerables mejoras como
el uso de una única conexión, la compresión de cabeceras o el servicio ‘server push’.
Características:
• Una única conexión para descargar todos los elementos de la web.
• Multiplexación: permite enviar y recibir varios mensajes al mismo tiempo
optimizando la comunicación.
• HTTP 2.0 es un protocolo binario: tiene el uso de un protocolo binario es la facilidad
para encontrar el comienzo y el final de cada frame.
• Servicio “server push”: estimaciones para que el servidor sea capaz de enviar
información al usuario antes de que éste la solicite para que la información esté
disponible de forma inmediata.
• Comprensión de cabeceras para transmitir menos información: las cabeceras
experimentan compresiones, con lo que se obtienen mejores tiempos de respuesta
y también se mejora la eficiencia.
• Priorización de flujos: Para poder ‘controlar’ la prioridad que tienen las tramas, HTTP
2.0 permite asignar a cada flujo un peso (entre 1 y 256) y una dependencia.
• No requiere TLS: el uso de cifrado TLS (Transport Layer Security) es opcional pero
los principales navegadores hacen uso de este.
HTTP Strict Transport Security (HSTS): es una política de seguridad web establecida para
evitar ataques que puedan interceptar comunicaciones, cookies, etc. Según este
mecanismo un servidor web declara que los agentes de usuario compatibles (es decir,
los navegadores), solamente pueden interactuar con ellos mediante conexiones HTTP
seguras (es decir, en HTTP sobre TLS/SSL1). HSTS es un estándar del IETF y se especifica
en el RFC 6797.
o HTTPS (HyperText Transfer Protocol Secure): existe una variante de HTTP utilizada para
comunicaciones seguras llamada HTTPS, es una conexión HTTP que se realiza con la
ayuda del protocolo SSL (Secure Socket Layer) o TLS (Transport Layer Security) y que usa
el puerto por defecto TCP 443 en vez del 80. Lo que proporciona una medida efectiva
de cifrado y autenticación tanto del servidor como del cliente, para las transacciones de
comercio o banca electrónica.
Un servidor HTTP espera recibir del cliente como primeros datos una “Request-Line”.
Sin embargo, los primeros datos que espera recibir un servidor TLS es un mensaje del
tipo “ClientHelp”.
140
▪ Identidad del servidor: si el nombre del servidor es conocido por el cliente, dicho
cliente debe comprobar la identidad del servidor cuando se muestre el mensaje del
certificado del servidor, si el nombre del servidor no coincide con la identidad
indicada en el certificado, el cliente debe notificárselo al usuario o terminal la
conexión con un mensaje de “error de certificado”.
▪ Identidad del cliente: el servidor no tiene conocimiento sobre la identidad del
cliente.
o SSH (Secure Shell): nombre de un protocolo y del programa que lo implementa cuya
principal función es el acceso remoto a un servidor por medio de un canal seguro en el
que toda la información está cifrada. Además de la conexión a otros dispositivos, SSH
permite copiar datos de forma segura (tanto archivos sueltos como simular sesiones FTP
cifradas), gestionar claves RSA para no escribir contraseñas al conectar a los dispositivos
y pasar los datos de cualquier otra aplicación por un canal seguro tunelizado mediante
SSH y también puede redirigir el tráfico del (Sistema de Ventanas X) para poder ejecutar
programas gráficos remotamente. El puerto TCP asignado es el 22.
SSH trabaja de forma similar a como se hace con telnet. La diferencia principal es que
SSH usa técnicas de cifrado que hacen que la información que viaja por el medio de
comunicación vaya de manera no legible, evitando que terceras personas puedan
descubrir el usuario y contraseña de la conexión ni lo que se escribe durante toda la
sesión; aunque es posible atacar este tipo de sistemas por medio de ataques de
reinyección/reproducción y manipular así la información entre destinos.
o TELNET: protocolo de comunicaciones de capa de aplicación, permite la ejecución de
sesiones de terminal remoto, utilizando para ello conexiones TCP. Tienen una
arquitectura cliente/servidor (puerto 23). No proporciona ningún mecanismo de
seguridad, la recomendación actual es utilizarlo solamente en redes privadas seguras o
sino utilizar en su lugar el protocolo Secure Shell (SSH). Estos servidores escuchan las
solicitudes de conexión en el puerto TCP 22.
o DNS (Domain Name System): sistema de nomenclatura jerárquica par ordenadores,
servicio o cualquier recurso conectado a TCP/IP. Permite asociar información de
diferente tipo con el nombre de domino asignado, su función más importante es
traducir (resolver) nombres de sistemas, a direcciones IP. Los servidores DNS utilizan
una base de datos distribuida y jerárquica que almacena información asociada a
nombres de dominio. Los usos más comunes son la asignación de nombres de domino
a direcciones IP y la localización de los servidores de correo electrónico de cada dominio.
La red de DNS se conforma de:
▪ Clientes DNS: genera peticiones DNS de resolución de nombres a un servidor DNS
▪ Servidores DNS: contestan a las peticiones de los clientes.
▪ Zonas de autoridad: parte del espacio de nombres de domino que almacena los
datos.
▪ Servidor autoritativo de Zona: cada dominio DNS tienen al menos uno, es aquel
legitimado para almacenar los registros d host o de servicios asociados a este
dominio. Cada servidor de zona tiene información explicita sobre que servidor es el
autoritativo para cada uno de sus subdominios. Cualquier nombre de domino pueda
ser rastreado a partir de una consulta de un cliente por cualquier servidor DNS
conociendo la dirección de los servidores Raiz (aquellos que conocen las direcciones
IP de los servidores autoritativos de los dominios del primer nivel).
141
- Nombres de dominio: usualmente consiste en dos o más cadenas de texto (etiquetas)
separadas por puntos, a la etiqueta ubicada más a la derecha se le llama dominio de
nivel superior (Top Level Domain, TLD). Cada etiqueta a la izquierda especifica una
subdivisión o subdominio. Finalmente, a la izquierda del dominio se coloca el nombre
de la maquina a la que se hace referencia.
- Estructura: DNS conjunto jerárquico de servidores, cada dominio o sub dominio tienen
una o más zonas de autoridad. Al inicio de esa jerarquía se encuentran los servidores
raíz, que responden cuando se busca resolver un dominio de primer y segundo nivel.
- El espacio de nombres de dominio tiene una estructura arborescente. Un nombre de
dominio completo de un objeto consiste en la concatenación de todas las etiquetas de
un camino. Las etiquetas individuales están separadas por puntos. Los objetos de un
dominio DNS se registran en un archivo de zona, ubicado en uno o más servidores de
nombres, los DNS pueden ser del tipo:
○ Preferidos o primarios: servidores autoritativos de al menos un domino que guardan
los datos de un espacio de nombres en sus ficheros. Permiten lectura y escritura.
○ Alternativos o secundarios: servidores autoritativos de dominio, son de solo lectura
y obtienen y actualizan los datos de los servidores primarios a través de una
transferencia de zona.
○ Locales o caché: no son autoritativos de ningún dominio, no contienen la base de
datos para la resolución de nombres. Cuando se les realiza una consulta, obtienen
la información requerida de los servidores autoritativos, almacenando la respuesta
en su base de datos (caché) para agilizar la repetición de estas peticiones.
Consultas que un servicio cliente DNS puede hacer a un servidor DNS:
○ Recursiva: realiza un cliente en las que solicita al servidor una respuesta final
autoritativa ante una consulta. El servidor consultado debe enviar cuantas consultas
intermedias (no autoritativas) se requieran hasta localizar al servidor autoritativo
del FQDN (Fully Qualified Domain Name) de la consulta inicial y obtener la respuesta
autoritativa, es el tipo de consulta que realizan los equipos cliente.
○ Iterativa: consulta enviada a un servidor DNS permite a este responder con una
respuesta no autoritativa, permite al servidor responder a su solicitante con la
dirección de otro servidor DNS. Suelen enviar unos servidores a otros para localizar
al autoritativo de dominio al que pertenece el FQDN.
Respuestas que puede proporcionar un servidor DNS:
○ Autoritativa: proviene del servidor que posee autoridad sobre el dominio que está
solicitando la resolución. Siempre es una respuesta final, ya sea satisfactoria o no.
○ No autoritativa: un servidor es preguntado por un FQDN para cuyo dominio no es
autoritativo y responde con la dirección de otro servidor DNS distinto.
Tipos de registros DNS:
- A (Address): este registro se usa para traducir nombres de hosts a direcciones IPv4.
- AAAA (Address): se usa en IPv6 para traducir nombres.
- CNAME (Canonical Name): crear nombres de servidores de alojamiento adicionales,
cuando se están ejecutando múltiples servicios (como ftp y web) en un servidor con
una sola dirección IP cada servicio tiene su propia entrada de DNS.
142
- NS (Name Server): asociación que existe entre un nombre de dominio y los
servidores de nombres autoritativos que almacenan la información del dominio.
- MX (Mail Exchange): asocia un nombre de dominio a un servidor de intercambio de
correo para ese dominio.
- PTR (Pointer): “registro inverso” traduce IPs en nombres de host o de dominio.
- SOA (Start of Authtority): proporciona información sobre el servidor DNS primario
de zona.
- HINFO (Host Information): permite que la gente conozca el tipo de maquina y SO al
que corresponde un dominio.
- TXT (Text): permite a los dominios identificarse de modos arbitrarios.
- LOC (Localization): permite indicar las coordenadas del dominio.
- SRV (Services): ofrece el dominio asociándolos a un nombre.
- SPF (Sender Policy Framework): protección contra la falsificación de direcciones en
el envío de correo electrónico. Identifica, a través de los registros de nombres de
dominio (DNS), a los servidores de correo SMTP autorizados para el transporte de
los mensajes.
3. MODELO TCP/IP
El modelo TCP/IP es usado para comunicaciones en
redes y, como todo protocolo, describe un conjunto de
guías generales de operación para permitir que un
equipo pueda comunicarse en una red. TCP/IP provee
conectividad de extremo a extremo especificando
cómo los datos deberían ser formateados,
direccionados, transmitidos, enrutados y recibidos por
el destinatario. TCP/IP es un conjunto de protocolos
que permiten la comunicación entre los ordenadores
pertenecientes a una red. La sigla TCP/IP significa
Protocolo de control de transmisión/Protocolo de
Internet. Proviene de los nombres de dos protocolos
importantes incluidos en el conjunto TCP/IP, es decir,
del protocolo TCP y del protocolo IP.
El modelo incluye cuatro capas:
• Capa de acceso al medio: maneja las partes físicas del envío y recepción de datos mediante
el cable Ethernet, la red inalámbrica, la tarjeta de interfaz de red, el controlador del
dispositivo en el equipo, etcétera.
• Capa de internet: controla el movimiento de los paquetes alrededor de la red.
• Capa de transporte: proporciona una conexión de datos fiable entre dos dispositivos. Divide
los datos en paquetes, hace acuse de recibo de los paquetes que recibe del otro dispositivo
y se asegura de que el otro dispositivo haga acuse de recibo de los paquetes que recibe a su
vez.
• Capa de aplicación: grupo de aplicaciones que requiere comunicación de red. Es con lo que
el usuario suele interactuar, como el correo electrónico y la mensajería. Como la capa
inferior gestiona los detalles de la comunicación, las aplicaciones no tienen que preocuparse
por ello.
143
4. W3C, ATAG, WCAG
WCAG (Web Content Accessibility Guidelines): son una parte de las directrices de accesibilidad
web publicadas por la WAI (Web Accessibility Initiative ) parte del World Wide Web
Consortium (W3C), la principal organización de estándares de internet. Consiste en 12
directrices organizados en cuatro principios. Los sitios web deben
ser perceptibles, operables, entendibles y robustos:
• Perceptible: a información y los componentes de la interfaz de usuario deben ser
presentados al usuario de tal forma que sean perceptibles.
o Alternativas textuales: provea textos alternativos para contenido no textual
o Medios tempodependientes: provea alternativas para Time Based Media.
o Adaptable: contenido que pueda ser presentado de diferentes formas
o Distinguible: más fácil para los usuarios el ver y escuchar el contenido
• Operable: los componentes de la interfaz y navegación deben ser operables.
o Accesible por teclado: Proporcionar acceso a toda la funcionalidad mediante el teclado
o Tiempo suficiente: Proporcionar a los usuarios el tiempo suficiente para leer y usar el
contenido.
o Convulsiones: No diseñar contenido de un modo que se sepa podría provocar ataques,
espasmos o convulsiones.
o Navegable: Proporcionar medios para ayudar a los usuarios a navegar, encontrar
contenido y determinar dónde se encuentran.
o Formas de entrada de datos (Input Modalities): Facilitar a los usuarios operar la
funcionalidad mediante varias formas de entrada de datos, más allá del teclado.
• Comprensible: la información y la operación de la interfaz de usuarios deben ser
entendibles.
o Legible: Hacer que los contenidos textuales resulten legibles y comprensibles.
o Predecible: Hacer que las páginas web aparezcan y operen de manera predecible.
o Entrada de datos asistida: Ayudar a los usuarios a evitar y corregir los errores.
• Robusto: el contenido debe ser suficientemente robusto de tal forma que pueda ser
interpretado de forma confiable.
o Compatible: Maximizar la compatibilidad con las aplicaciones de usuario actuales y
futuras, incluyendo las ayudas técnicas
ATAG (Authoring Tool Accessibility Guidelines): parte de una serie de pautas de accesibilidad,
incluidas las Pautas de accesibilidad al contenido web (WCAG) y las Pautas de accesibilidad del
agente de usuario (UAAG). Las herramientas de autor son software y servicios que los “autores”
(desarrolladores web, diseñadores, escritores, etc.) utilizan para producir contenido web
(páginas web estáticas, aplicaciones web dinámicas, etc.). Los documentos de las ATAG explican
cómo:
• Hacer que las herramientas de creación sean accesibles, de modo que las personas con
discapacidad puedan crear contenido web.
• Ayudar a los autores a crear contenido web más accesible, específicamente: habilitar,
respaldar y promover la producción de contenido que se ajuste a las Pautas de accesibilidad
al contenido web (WCAG).
144
- RDF (Resource Description Framework): es una familia de especificaciones de la World Wide
Web Consortium (W3C) originalmente diseñado como un modelo de datos para metadatos.
- SPARQL: un lenguaje estandarizado para la consulta de grafos RDF, normalizado por el RDF
Data Access Working Group (DAWG) del World Wide Web Consortium (W3C). Es una
tecnología clave en el desarrollo de la web semántica. Al igual que sucede con SQL, es
necesario distinguir entre el lenguaje de consulta y el motor para el almacenamiento y
recuperación de los datos. Por este motivo, existen múltiples implementaciones de SPARQL,
generalmente ligados a entornos de desarrollo y plataforma tecnológicas.
- NVDA (Non-Visual Desktop Access): lector de pantalla portátil gratuito, de código abierto
para Microsoft Windows.
- JAWS (Job Access With Speech): es un software lector de pantalla para ciegos o personas con
visión reducida.
145
TEMA 4 – SERVIDORES DE MENSAJERIA
146
2. ARQUITECTURA DEL PROTOCOLO DE CORREO ELECTRONICO EN INTERNET
Actualmente, el correo electrónico proporciona funciones para el envío y recepción de mensaje
de forma asíncrona con la posibilidad de adjuntar todo tipo de ficheros y múltiples opciones de
formato. Admite diversas extensiones de funcionalidad como notificación de entrega, firma
electrónica de los mensajes, establecimiento de prioridad, listas de correo, envío y reenvío de
copias… El correo constituye una aplicación en si misma que proporciona conectividad asíncrona
extremo a extremo, pero también puede considerarse una herramienta o canal de
comunicación. Actualmente puede establecerse una arquitectura genérica para los sistemas de
correo basados en Internet:
• MUA (Mail User Agent): sistema que se encarga de recibir y enviar emails usando los
protocolos STMP (para el envío) y POP3 o IMAP (para la recepción). (Ejemplos: evolution,
kmail, sylpheed, squirrelmail, Mozilla Thunderbird, Microsoft Outlook, webmails como
Gmail o outlook…).
• MSA (Mail Submission Agent): programa del servidor que recibe correo de un MUA,
comprueba si hay errores y lo transfiere (con SMTP) al MTA alojado en el mismo servidor.
• MTA (Mail Transfer Agent): sistema que se encarga de tomar el email de un MUA o de otro
MTA y entregarlo a otro MTA o a un MDA, en caso de que el email pertenezca al dominio
propio del MTA. (Ejemplos: postfix, qmail, exim, Cyrus, courier…).
• MDA (Mail Delivery Agent): sistema que se encarga de la recepción del email por parte de
un MTA, y lo almacena de la forma que tenga configurada. Los MDA pueden almacenar en
disco, base de datos o llamar a otro programa para hacer el procesado de emails (listas de
correo, sistemas de control de incidencias…). (Ejemplos: procmail, maildrop…).
• MAA: (Mail Access Agent, Agente de Acceso de Correo), es el sistema que se encarga del
acceso al correo almacenado. Sería como la oficina de correos, y por ello su protocolo más
usado es POP3 (Post-Office Protocol version 3). Se encarga de hacer accesible lo buzones a
equipos remotos. (Ejemplos: dovecot, uw, qpopper…).
ZCS (Zimbra Collaboration Suite): programa informático colaborativo o Groupware que consta
de un servicio de correo electrónico, posee tanto el componente de servidor como su respectivo
cliente.
147
• SMTP: protocolo de comunicación estándar de Internet para la transmisión de correo
electrónico bajo redes TCP/IP.
• MAIL: estándar que versa sobre el formato de los mensajes de correo y que describe la
sintaxis de cabeceras de un mensaje y los posibles campos a utilizar en la misma, y como
deben interpretarse.
• DNS-MX: estándar para describir el procedimiento de enrutado de los mensajes que se basa
en el Sistema de Nombres de Dominio (DNS). Cuando un usuario especifica una dirección de
correo (un buzón) al que se desea enviar un mensaje, tras el símbolo “@” se encuentra el
nombre de domino del “host” destino. Para establecer una conexión TCP con el mismo, el
emisor SMTP deberá en primer lugar realizar una consulta al servidor de nombres
correspondiente para determinar la dirección IP del equipo remoto, el nombre que figura
tras la “@” en la dirección de correo no es un nombre de domino completo, los servidores
DNS almacenan entradas mensajes MX RR* específicas para la entrega de. Estas entradas
mapean el nombre de domino a un valor de preferencia ya que pueden existir múltiples
entradas MX RR para un nombre y se asigna prioridad a cada una de ellas, y al nombre de
dominio completo del “host”, deberá utilizarse para establecer la conexión TCP/IP y deberá
resolverse nuevamente en el DNS.
* Un registro MX (Mail eXchange record) es un tipo de registro, un recurso DNS que especifica
cómo debe ser encaminado un correo electrónico en internet. Los registros MX apuntan a los
servidores a los cuales envían un correo electrónico, y a cuál de ellos debería ser enviado en
primer lugar, por prioridad.
Cuando un mensaje de correo electrónico es enviado a través de internet, el remitente (MTA)
hace una petición al DNS solicitando el registro MX para los nombres de dominio de destino. El
nombre de dominio es la parte de la dirección de correo que va a continuación de la "@". Esta
consulta devuelve una lista de nombres de dominios de servidores de intercambio de correo que
aceptan correo entrante para dicho dominio, junto con un número de preferencia. Entonces el
agente emisor (o remitente) intenta establecer una conexión SMTP (Simple Mail Transfer
Protocol) hacia uno de estos servidores, comenzando con el que tiene el número de preferencia
más pequeño, y enviando el mensaje al primer servidor con el cual puede establecer una
conexión. Si no hay registros MX disponibles, una segunda petición es solicitada al registro A (A
Record) del dominio en su lugar.
148
• SMTP ENVELOPE:
o HELLO: el cliente envía este comando al servidor SMTP para identificarse e iniciar la
conversación SMTP y el nombre de dominio o la dirección IP del cliente SMTP
generalmente se envía como un argumento junto con el comando.
o MAIL TO: especifica la dirección de correo electrónico del remitente. Este comando
también le dice al servidor SMTP que se está iniciando una nueva transacción de correo
y hace que el servidor restablezca todas sus tablas de estado y búferes, etc.
o RCPT TO: Especifica la dirección de correo electrónico del destinatario. Este comando se
puede repetir varias veces para un mensaje de correo electrónico determinado con el
fin de entregar un solo mensaje de correo electrónico a varios destinatarios.
• MESSAGE HEADER: portador de una gran cantidad de información interesante relativa al
mensaje y el remitente, incluyendo las direcciones y los servidores de email por los que ha
pasado. La importancia de la cabecera radica en los metadatos que aporta sobre el propio
mensaje que permiten tanto su entrega correcta como su interpretación por parte del
servidor. Delimitada por una línea nula (en blanco) generalmente seguido de un carácter de
retorno de carro <CRLF>. Los campos que contiene son:
o FROM: emisor del mensaje.
o SUBJECT: asunto del mensaje.
o DATE: fecha y hora en la que el mensaje fue enviado.
o TO: destinatarios principales del mensaje.
o CC: destinatarios secundarios del mensaje (copia).
o CCO: destinatarios ocultos del mensaje.
o RETURN-PATH: dirección y ruta del destino.
o ENVELOPE-TO: muestra que el correo fue enviado al buzón de correo del destinatario.
o RECIVED: muestra una lista de todos los equipos por los que el correo ha viajado para
llegar al destinatario. La primera linea RECIVED el equipo del destinatario.
• MESSAGE BODY: datos que siguen a la cabecera, secuencias de líneas con caracteres
codificados en ASCII.
Para hacer frente a las limitaciones impuestas por SMTP en la codificación se han empleado dos
mecanismos de extensión al protocolo:
• MIME (Multipourpose Internet Mail Extensions): especifica un mecanismo para la
codificación de texto y datos binarios sobre una codificación base en ASCII de 7 bits.
• Extensiones de servicio SMTP: mecanismo para extender las posibilidades de SMTP, estas
extensiones permiten que dos “hosts” TCP/IP negocien un tipo de codificación distinta antes
del envío de los mensajes, el equipo receptor indique que puede utilizar codificación ASCII
en 8 bits, también permite al receptor especificar el tamaño máximo de mensaje que puede
recibir, sobrepasando la limitación de 1000 caracteres.
149
1. El emisor SMTP establece una conexión TCP con el servidor destino y espera a recibir un
mensaje “220 Serviceready”, junto con el nombre de domino del servidor o bien un mensaje
“421 Servicenotaviable”, la conexión TCP ha de establecerse en el puerto asignado para
SMTP (puerto 25), el servidor destinatario está esperando recibir conexiones SMTP para
intercambio de mensajes.
2. Se envía el comando HELO y el receptor se identifica con su nombre de dominio, así el emisor
puede comprobar si esta efectivamente contactando con el servidor correcto. Si el emisor
soporta extensiones de servicio SMTP y quiere comprobar si el servidor acepta, sustituye el
comando HELO por EHLO.
3. El emisor inicia la transacción de un mensaje enviando un comando MAIL al receptor,
contendrá el camino inverso por el que se informará de errores (puede ser un buzón,
generalmente el del emisor del mensaje, o una dirección IP) si se acepta el servidor responde
con un 250 OK.
4. Envío de los buzones de correo destino del mensaje, se envían tantos comandos RCPT TO
como sea necesario con la indicación de los nombres de los buzones, para cada uno se
recibirá un comando 250 OK si el servidor conoce dicho buzón o un “550 Notsuchuser” si el
buzón no existe en el servidor.
5. Cuando se han enviado todos los comandos RCPT el emisor está listo para enviar el propio
mensaje y para ello envía el comando DATA para notificarlo. El servidor responde “354 Start
mail input, endwith <CRLF>-<CRLF>”. La secuencia <CRLF>-<CRLF> es la que tiene que enviar
el emisor para indicar el final del mensaje.
6. El cliente envía los datos a continuación, línea por línea, incluyendo las cabeceras del
mensaje. Se indica el final con la secuencia <CRLF>-<CRLF> y el servidor responde con 250
OK o con un mensaje de error.
7. Finalmente, si:
- No hay más mensajes: el emisor termina la conexión con un QUIT y el código 221.
- Hay más mensajes de otra parte: se envía el comando TURN y ambos equipos
intercambian sus papeles.
- Hay más mensajes y el emisor es el mismo: el emisor envía un nuevo comando MAIL.
150
POP es un protocolo usado en clientes locales de correo para obtener los mensajes de correo
electrónico almacenados en un servidor remoto, denominado Servidor POP. Es un protocolo de
nivel de aplicación en el Modelo OSI. Cuenta con funcionalidades tanto de cliente (para la
recepción de mensajes) como servidor (para el almacenamiento de los mismos) soporta
funciones básicas para la consulta y obtención de mensajes de un servidor desde un cliente.
Un cliente POP3 establece una conexión TCP con un servidor de correo SMTP (donde se
almacena el buzón y se ejecutan las funciones de emisor/receptor SMTP) a través del puerto
110. El servidor POP3 envía un mensaje de bienvenida al cliente y la sesión entra en un modo
autenticación. El cliente debe enviar al servidor sus credenciales de autenticación. La sesión
entra en modo de transacción, el cliente tiene acceso a su buzón de correo en el servidor y puede
recuperar todos los mensajes allí almacenados, estos mensajes se almacenarán a su vez en el
sistema de ficheros local del usuario que utilice el cliente. Lo que se está logrando con OPO3 es
implementar de forma eficiente la asincronía en la recepción de mensajes para un usuario y la
posibilidad de recuperar los mensajes de un buzón a posteriori sin necesidad de mantener una
conexión permanente con la red.
POP3 funciona mediante un modelo de comandos en modo carácter, consisten en una pablara
clave y uno o más argumentos que la siguen. El servidor envía una respuesta al comando emitido
por el cliente, y debe comenzar con un indicador de estado que puede ser (+OK) o (-ERR) para
indicar el éxito o no de la operación El protocolo distingue tres estados:
• Estado de autenticación: el cliente envía información de autenticación al usuario mediante
los comandos USER y PASS o bien con el comando APOP.
• Estado de transacción: el cliente es capaz de enviar comandos para listar, recuperar y borrar
mensajes en su buzón de correo (STAT, LIST, RETR y DELE). Las opciones de edición requieren
entrar en el siguiente estado mediante el comando QUIT.
• Estado de actualización: el servidor actualiza el contenido del buzón.
2.4. IMAP4
Protocolo de aplicación que permite el acceso a mensajes almacenados en un servidor de
Internet que funciona bajo TCP en los puertos 143 (modo seguro bajo 993). Presenta mejoras y
funciones avanzadas respecto a POP3, al igual que este funciona bajo el paradigma
cliente/servidor, el servidor IMAP4 es capaz de almacenar mensajes para múltiples usuarios de
forma que estos pueden recuperarlos a posteriori. La diferencia fundamental con POP3 es que
IMAP4 presenta un modelo de sincronización de mensajes entre el cliente y el servidor frente al
modelo de recuperación de mensajes de POP3, IMAP4 siempre almacena los mensajes de un
usuario en el servidor y replica la copia de los mismos al usuario, este puede a su vez trabajar
sobre la réplica del buzón en modo desconectado y al volver a conectarse scon el servidor se
sincronizaran los cambios, IMAP4 es capaz de trabajar: sin conexión, conectado o desconectado.
Otra ventaja de IMAP4 es su capacidad de interpretar el contenido MIME. Cuando un cliente
IMAP4 establece una conexión TCP con el servidor, este envía también un mensaje de
bienvenida y a partir de entonces, cliente y servidor intercambian datos de forma interactiva.
Para cada comando enviado por el cliente, el servidor responde con el resultado de la operación.
Todos los comandos se formatean como líneas terminadas en <CRLF>. Cada respuesta del
servidor incluye la marca identificativa, seguida de un código de estado que puede ser OK, NO o
BAD.
151
TEMA 5 – MONITORIZACION, ADAMINISTRACION DE REDES Y HARDWARE
152
• SunNet Manager: sistema de gestión de red principal de Sun Microsystems. Se utiliza para
monitorear y mejorar el desempeño en redes multiprotocolo.
• BayNetworks Optivity: sistema escalable para configurar redes complejas. Introduce
NETarchitect, el paquete de administración a nivel del sistema de la compañía que
automatiza la configuración de redes ATM sofisticadas.
• 3Com’s Transcend: gestionar toda la red como un único sistema integrado más que como
una serie de unidades independientes, incluye soluciones de hardware y software para
aumentar las prestaciones de las redes corporativas, ampliar su alcance y gestionar su
crecimiento.
La metodología de análisis y gestión más utilizado en la administración española es Magerit
(Metodología de Análisis y Gestión de Riesgos de los Sistemas de Información): está elaborada
por el Consejo Superior de Administración Electrónica del Gobierno de España para minimizar
los riesgos de la implantación y uso de las Tecnologías de la Información. Ofrece una aplicación
para el análisis y gestión de riesgos de un Sistema de la Información.
Herramientas comerciales de Magerit:
o GxSGSI: Herramienta de Análisis y Gestión de Riesgo basada en Magerit y homologada por
la Agencia Europea de Seguridad de la Información.
o R-Box: Herramienta de Análisis y Gestión de Riesgo basada en Magerit.
o SECITOR: Herramienta de Análisis y Gestión de Riesgos de alto nivel que permite la gestión
integral de la Seguridad de la Información siendo un sistema multimarco (ISO 27001,
Protección de datos, ENS, ISO 19001, etc), además de una monitorización en tiempo real de
la seguridad de la organización.
o EAR / PILAR: Entorno de análisis de riesgos.
153
o Agentes: módulo de software de administración de red que reside en un dispositivo
administrado. Un agente posee un conocimiento local de información de administración
(memoria libre, número de paquetes IP recibidos, rutas…), la cual es traducida a un
formato compatible con SNMP y organizada en jerarquías.
Para realizar las operaciones básicas de administración el protocolo SNMP utiliza un servicio
no orientado a la conexión (UDP) para enviar un pequeño grupo de mensajes (PDUs) entre
los administradores y agentes, se utilizan varios tipos de mensajes SNMP:
o GetRequest: solicita al agente retornar el valor de un objeto de interés mediante su
nombre. En respuesta el agente envía una respuesta indicando el éxito o fracaso de la
petición. Este mensaje puede ser usado para recoger un valor de un objeto, o varios
valores de varios objetos, a través del uso de listas.
o GetNextRequest: usado para repetir la operación con el siguiente objeto de la tabla, es
decir, es usado para recorrer una tabla de objetos.
o SetRequest: solicitar a un agente modificar valores de objetos.
o GetResponse: usado por el agente para responder un mensaje GetRequest,
GetNextRequest, o SetRequest.
154
• DMI (Desktop Management Interface): framework estándar para gestión y seguimiento de
componentes en un ordenador de sobremesa, portátil o servidor, creando una abstracción
de esos componentes desde el software que los gestiona. DMI puede coexistir con SNMP y
otros protocolos de gestión. Una estación de trabajo aislada o un servidor pueden actuar
como agente proxy y contener el módulo SNMP de un segmento de la red local (LAN) con
equipos dotados de DMI.
• RMON (Remote Network Monitoring): especificación de monitoreo estándar que permite
que varios monitores de red y sistemas de consola intercambien datos de monitoreo de red.
RMON brinda a los administradores de red más libertad para seleccionar sondas de
monitoreo de red y consolas con características que satisfacen sus necesidades particulares
de red. Los dispositivos de monitoreo (comúnmente llamados "sondas" en este contexto)
contienen agentes de software RMON que recopilan información y analizan paquetes. Estas
sondas actúan como servidores y las aplicaciones de administración de red que se
comunican con ellas actúan como clientes. Si bien tanto la configuración del agente como la
recopilación de datos utilizan SNMP.
En resumen, RMON está diseñado para la supervisión "basada en el flujo", mientras que
SNMP se utiliza a menudo para la gestión "basada en el dispositivo".
Se define como dominio de colisión el conjunto de dispositivos que compite por utilizar
un mismo medio físico para transmitir datos, este concepto se utiliza habitualmente en
las tecnologías basadas en acceso al medio múltiple por detección de portadora (Carrier
Sense Multiple Access). La adición de repetidores hace que el dominio de colisión sea
mayor, permite que más dispositivos compartan el mismo medio físico, se puede
afirmar que los repetidores amplían el domino de colisión, al existir un mismo medio
físico con un ancho de banda constante, el ancho de banda disponible para cada uno de
los elementos finales de la red será menor.
155
Los repetidores eran típicos en las redes Ethernet antiguas, utilizaban topologías físicas
y lógicas en bus, como 10-BASE-2 o 10-BASE-5. En la actualidad se utilizan en las grandes
redes WAN de transporte basadas en fibra óptica y en las redes inalámbricas.
○ Concentradores (hub): dispositivo activo de red que, además de actuar como repetidor,
permite concentrar la conectividad de la red, facilitando la transición de una topología
física en bus a una topología física en estrella o en estrella extendida, recibe una señal
por una interfaz o puerto, la regenera, resincroniza y transmite por las demás interfaces.
Esto provoca que, a pesar de que la topología física de la red sea una estrella, su
funcionamiento lógico sea el de un bus. Al igual que los repetidores, un hub amplia el
domino de colisión de una red, es decir, cuando se añade un concentrador a la red existe
la posibilidad de incorporar más dispositivos que compiten por el mismo medio físico,
obliga a compartir el ancho de banda disponible entre todos los equipos conectados.
- Capa 2 o capa de enlace de datos: puentes (bridges) y conmutadores (switches).
○ Puentes (bridge): dispositivo de interconexión de redes que funciona en la capa 2.
Surgieron de la necesidad de reducir el tamaño de los dominios de colisión y del hecho
de que la mayor parte de las comunicaciones en una red de área local se realizaba con
equipo próximos dentro de la misma red física. Un puente dispone de una tabla de
conmutación en la que a cada dirección MAC conocidas se le asigna el puerto o interfaz
que permiten alcanzar el dispositivo en cuestión, cuando un puente recibe una trama,
examina la dirección de capa 2 de destino de dicha trama, la dirección MAC de destino
y la envía por el puerto que tiene asociado. SI la MAC de destino no se encuentra en la
tabla de conmutación, la rama es enviada por todos los puertos del puente, excepto el
que tiene asociado. El puente antes de retransmitir la trama comprueba si el medio
físico esta libre, en caso de que este ocupado, el puente almacena temporalmente hasta
que el medio físico se libere, un puente puede almacenar temporalmente múltiples
tramas. Se puede decir que un puente rompe un domino de colisión único en dos
dominios de colisión, en este caso los dispositivos finales del segmento A y el puerto del
puente competirán por le medio físico correspondiente a la LAN A y los dispositivos del
segmento B junto con el puerto 2 del puente competirán por le medio físico de la LAN
B.
○ Conmutadores (switch): es un dispositivo de interconexión de red de capa dos que
además de actuar como un puente, permite concentrar la conectividad de la red. La
diferencia fundamental entre un conmutador y puente multipuerto es que el
conmutador realiza todas las funciones de aprendizaje de direcciones, determinación
de puerto y conmutación de trama por hardware. Además, los switches suelen
presentar una densidad de puertos mucho mayor que los puentes. Los conmutadores
presentan diferentes modos de envío de tramas, permiten optimizar su rendimiento,
los dos modos de envió principales son:
▪ Modo de almacenamiento y envió (store and forward): el conmutador recibe la
trama completa, la almacena en un búfer de memoria RAM, calcula el “checksum”
de capa 2, y si el cálculo es correcto, la trama se reenvía por el puerto o puertos
indicados. En caso contrario, la trama no se envía y simplemente ese elimina de la
memoria del switch (se descarta), presenta como ventaja que las tramas erróneas
no se propagan de un segmento a otro. Tiene como principal inconveniente una alta
latencia.
156
▪ Modo de conmutación rápida: la trama comienza a enviarse hacia el destino una vez
que se ha leído la dirección MAC destino de la misma (la trama Ethernet comienza
con una cabecera de 8 bytes de preámbulo, 6 bytes de MAC origen y 6 bytes de MAC
destino). Este método presenta como ventaja una latencia baja y constante, pero
adolece de mecanismos para evitar la retrajimos de tramas erróneas.
Un switch es un dispositivo de naturaleza “full-duplex”, gestiona de forma
independiente las tramas entrante y las salientes, y puede almacenarlas de forma
temporal en caso de congestión, algunos incorporan un software que facilita la creación
de grupos de puertos que se comportan como LANs separadas, se las denomina VLAN,
con el fin de extender esta funcionalidad a través de múltiples switches, es necesario
utilizar enlaces que puedan transportar tramas de múltiples VLANs, se les denomina
“enlaces troncales”, es necesario identificar a que VLAN pertenece cada una de las
tramas, antes de transmitir la trama por dicho troncal, para ello se desarrolló el IEEE
802.1Q que permite etiquetar las tramas Ethernet, añadiendo un campo de 4 bytes a
dicha cabecera que identifica la VLAN.
- Capa 3 o capa de red: encaminadores (routers)
○ Encaminadores (router): dispositivo de interconexión de redes de capa 3, cuyo objetivo
es conectar redes lógicas diferentes, determinado la ruta (enrutamiento) y trasmitiendo
el paquete por la interfaz adecuada. Un router determina la interfaz de salida o ruta en
función de la dirección IP de destino, para ello el router construye una tabla en memoria
denominada tabla de enrutamiento donde se almacena información de todas las redes
conocidas, indicando que interfaces se deben utilizar para alcanzarlas. Se puede generar
de forma estáticas (rutas configuradas manualmente por un administrador), los
encaminadores utilizan protocolos de enrutamiento, como pueden ser RIP, OSPF, EIGRP,
IS-IS, o BGP, la necesidad de enrutadores se debe a dos causas fundamentales:
▪ Interconectar redes con diferentes tecnologías y distantes fiscalmente.
▪ Acotar los tamaños de los dominios de difusión (broadcast): en Ethernet se utilizan
un tipo de tramas/paquetes especiales denominados de difusión (broadcast)
inundado, dichos paquetes se caracterizan por tener como dirección IP de destino
255.255.255.255 y las tramas tienen la dirección FF-FF-FF-FF-FF-FF. Estas tramas y
paquetes son recibido y procesado por todos los dispositivos de la red en cuestión,
además este tráfico es necesario para el funcionamiento de la propia red, y por
tanto no puede ser eliminado (el protocolo ARP que permite obtener una MAC
asociada a una determinada IP se basa en transmisión de tráfico broadcast). Es
necesario mantener el tamaño de los dominios de broadcast restringido (si la
dirección IP de destino del paquete pertenece a la misma red lógica que el propio
equipo, se busca la dirección MAC del destino mediante una petición ARP, si la
dirección destino del paquete pertenece a una red lógica diferente se utiliza la
dirección MAC del encaminador de salida preferido del equipo para dicha red), se
entiende que cuando dos equipos se ubican en dominios de broadcast diferentes,
será necesario un router para pasar el paquete de un domino de difusión a otro.
157
GLBP (Gateway Load Balancing Protocol): protocolo propietario de Cisco que intenta
superar las limitaciones de los protocolos de router redundantes existentes
añadiendo la funcionalidad de balanceo de carga.
158
que existan múltiples rutas o caminos con diferentes distancias hacia el destino. El
enrutamiento determina cual es el mejor camino para alcanzar el destino desde un
determinado punto.
En cuanto al ámbito geográfico o escala:
• Red de área local (LAN): redes privadas cuyo ámbito está restringido habitualmente a un
edificio o conjunto de edificios próximos. La privacidad es una característica calve de este
tipo de redes, no es necesario contar con los servicios de una empresa y organización
externa para implementar este tipo de redes, se utilizan habitualmente para conectar
dispositivos que pertenecen a una misma organización. Las LAN utilizan tecnologías que
permiten velocidades de transmisión entre los 10 Mbps y los 100 Gbps siendo las variantes
derivadas de la tecnología Ethernet. Su topología puede ser tanto bus (Ethernet o IEEE
802.3) como anillo (Token Ring o IEEE 802.5), la incorporación de las comunicaciones “full-
duplex” en la tecnología Ethernet (802.3x) ha permitido que las LAN pasen a ser punto a
punto, utilizando las topologías de estrella y estrella extendida.
• Redes de Área Metropolitana (MAN): es una red que abarca el área geográfica de una
ciudad, puede ser publica (acceso proporcionado por un proveedor de servicios), como
privada. La definición, desarrollo e implantación de la tecnología WIMAX, basada en el
estándar IEEE 802.16 ha provocado que las redes MAN sea una buena solución para
proporcionar fundamentalmente acceso a internet en área de baja densidad de población.
• Redes de Área Extensa (WAN): áreas geográficas extensas, la infraestructura proporcionada
habitualmente por empresas u organizaciones denominadas Proveedores de Servicios de
Comunicaciones. La interconexión entre los diferentes dispositivos intermedios de una WAN
se realiza fundamentalmente utilizado tecnologías de red punto a punto con lo que las
topologías son: estrella extendida, anillo, árbol, malla parcial y malla completa. Se clasifican
por el modo de conmutar los datos entre los dispositivos origen y destino:
○ Conmutación de circuitos: intercambiar datos entre dos equipos finales es necesario que
se establezca previamente un camino dedicado a través de los nodos intermedios una
secuencia de enlaces físicos entre los nodos origen y destino, donde existe un canal
lógico dedicado para la conexión. Ejemplo: redes basadas en Red Telefonía Básica (RTB)
y Red Digital de Servicios Integrados (RDSI).
○ Conmutación de paquetes: no es necesario asignar recursos “a priori” para construir un
camino para los datos, se envían en unidades de datos pequeñas denominadas
datagramas, se pasa de un nodo al siguiente tomándose las decisiones de envío en cada
dispositivo en el momento previo a la transmisión Ejemplo: X.25
○ Conmutación de tramas: mientras en la conmutación de paquetes las decisiones de
envió se realizan en función de cabeceras y direcciones de capa 3, en la conmutación de
tramas estas decisiones se toman en función de direcciones y cabeceras de capa 2.
Ejemplo: Frame Relay.
○ Conmutación de celdas: evolución de la conmutación de tramas, la mayor diferencia que
este tipo de redes presenta es que se utilizan tramas de tamaño fijo y pequeño
denominadas celdas. Ejemplo: Asynchronous Transfer Mode (ATM).
En cuanto a topologías: disposición de los dispositivos que forman parte de una red de
comunicaciones en relación con el medio de transmisión utilizado.
Redes de difusión:
159
• Bus: estaciones de trabajo se distribuyen linealmente a lo largo del medio de transmisión
abierto. El mensaje enviado se envía en ambos sentidos del medio físico por lo que dicho
mensaje será recibido por todos los dispositivos. Ejemplo: 10-BASE-5, 10-BASE-2, …
• Anillo: estaciones de trabajo se distribuyen a lo largo de un medio de transmisión cerrado,
el mensaje enviado es enviado en un único sentido por lo que termina llegando de nuevo a
la estación origen que lo retira del medio físico.
Redes punto a punto:
• Estrella: todas las estaciones se conectan a un dispositivo central, se encarga de enviar los
mensajes recibidos al destino adecuado. Se establecen tantas conexiones punto a punto
como dispositivos están conectados al dispositivo de interconexión.
• Estrella extendida: un dispositivo de interconexión para comunicar diferentes redes en
topología de estrella.
• Anillo: las estaciones de trabajo se distribuyen a lo largo de un medio de transmisión
cerrado. El mensaje enviado por una estación es enviado en un único sentido por lo que
termina llegado de nuevo a la estación origen que lo retira del medio físico.
• Árbol: cuando la estrella extendida tiene un único punto central o raíz, se dice que tiene
estructura de árbol.
• Malla parcial: se conectan entre sí, sin seguir un patrón, pero ningún nodo puede
permanecer aislado.
• Mall completa: todos los dispositivos de la red se conectan directamente con todos los
demás dispositivos de dicha red.
3. REDES INALÁMBRICAS
Son aquellas que posibilitan la interconexión de dos o más equipos entre si sin que intervengan
cables. Se basan en un enlace que utiliza ondas electromagnéticas.
Dependiendo del tamaño:
• WPAN: redes de corto alcance generalmente para conectar dispositivos periféricos.
Ejemplos: Bluetooth (802.15.1), Zigbee (802.15.4), HomeRF
• WLAN: redes de área local basadas en tecnologías como HiperLAN o Wi-Fi (IEEE 802.11)
• WMAN: redes de área metropolitana basadas en IEEE 802.16 o WIMAX, así como en LMDS
(Local Multipoint Distribution Service)
• WWAN: redes inalámbricas de área extensa (LTE, UMTS, GPRS)
3.1. REDES WIFI
Redes inalámbricas que se rigen por los estándares IEEE 802.11, siguen en líneas generales lo
dispuesto en el 802.3 genérico. Así, se emplean un mecanismo de acceso al medio basado en
CSMA (Carrier Sense Medium Access) pero necesitan una capa física (PHY) y de acceso al medio
(MAC) específicas para poder utilizar el espectro radioeléctrico.
3.1.1. CAPA FÍSICA
Utilizan dos banas, 2.4GHz (en este rango actúan también tecnologías como Bluetooth,
HomeRF…) y 5GHz. Hay tres aspectos fundamentales relacionados con la capa física:
• Velocidad de transmisión: la tasa de transmisión dependerá del estándar del dispositivo para
801.11b el límite superior estará en los 11 Mbps, para 802.11ª y 802.11b en 54 Mbps;
802.11n en los 600 Mbps y 802.11ac en 1,3 Gbps.
160
• Potencia de transmisión: a mayor potencia el punto de acceso tendrá un mayor rango de
cobertura, en España el máximo límite legal es 100nW en el rango de 2,4 GHz y 200nW en 5
GHz.
• Numero de canales: identifica el subrango de frecuencias de trabajo específicos, en la banda
de 2,4 GHz canales del 1 a 13, se trata de canales separados 5 MHz pero que tienen un ancho
de banda analógico de 22 MHz de modo que los canales contiguos se solapan creando
interferencias. Las técnicas de modulación usadas (OFDM) en el caso de 802.11g y DSSS en
el caso de 802.11b hacen que la señal sea muy robusta frente a tales interferencias, por
tanto, los canales óptimos a usar en punto de acceso adyacentes para eliminar el
solapamiento son 1, 7 y 13.
Respecto a las técnicas empleadas por IEEE 802.11 para realizar la trasmisión por
radiofrecuencia destaca la utilización de técnicas de modulación por espectro ensanchado
(spread spectrum) se basan en la transmisión de una señal con un ancho de banda mucho mayor
del ancho de banda del mensaje original mediante la aplicación al mismo de una señal adicional
conocida como código mensaje original mediante la aplicación al mismo de una señal adiciona
conocida como código ensanchado (spreading code).
Los sistemas de espectro ensanchado presentan dos grandes etapas:
• Empleo de baja densidad de potencia: la energía transmitida por un ancho de banda mucho
mayor, la cantidad de energía aplicada a cada frecuencia es muy baja, la señal no interferirá
con otros receptores.
• Incorporación de redundancia: el mensaje está presente sobre diferentes frecuencias de las
que se puede recuperar en caso de error, alta resistencia a interferencias y ruido.
Las técnicas de espectro ensanchado se componen de dos procesos de modulación consecutivos
a ejecutar sobre la señal portadora: un primer proceso ejecutado por el código ensanchado y un
segundo proceso ejecutado sobre el mensaje, podemos distinguir entre do técnicas
fundamentales:
• FHSS (Frecuency Hopping Spread Spectrum): la frecuencia portadora a utilizar se modifica
periódicamente, el mensaje se modula sobre la portadora utilizando FSK, genera una señal
de banda estrecha durante el periodo de salto, pero de banda ancha si se observa el canal
en intervalos de tiempo de varios segundos.
• DSSS (Direct Sequence Spread Spectrum): la señal a transmitir utiliza todo el ancho de banda
del canal asignado, modula mediante PSK siguiendo una secuencia de bits especifica.
• El número de códigos ortogonales existentes para un sistema CDMA depende d la longitud
en bits del chip.
Las técnicas de espectro ensanchado tienen como inconveniente principal la complejidad
añadida en los emisores y receptores para el ensanchado y desenganchado del espectro, incide
en la velocidad de transmisión que se puede conseguir.
OFDM (Ortogonal Frequency Division Multiplexing): el ancho de banda asignado se divide en
canales y la señal a enviar se divide en tramas, cada una de ellas es modulada por la frecuencia
subportadora de cada canal. Esta técnica busca optimizar el canal de comunicaciones.
161
6.1.2. SUBCAPA DE ACCESO AL MEDIO
En las redes cableadas basadas en 802.3, los terminales utilizan un método de acceso al medio
compartido conocido como:
• CSMA/CD (Carrier Sense Medium Access/Collision Detection) en el que el emisor, durante
el tiempo de transmisión de una trama, está escuchando el medio para comprobar si se ha
producido una colisión con otro emisor que hubiese comenzado a transmitir al mismo
tiempo, de detectarse esta circunstancia, el emisor detiene la transmisión en curso y espera
un tiempo aleatorio para volver a retransmitir la trama dañada. Este mecanismo tiene unas
buenas prestaciones en medios guiados como el par trenzado, sin embargo, para medios no
guiados como el aire, no es posible aplicar el mecanismo de detección de colisiones al no
poder el terminal realizar escuchas simultaneas durante la transmisión, IEEE 802.11 ha
adoptado en su capa MAC el protocolo DCF (Distributed Control Function) una variante de
CSMA conocida como CSMA/CA (Carrier Sense Medium Access/Collision Avoidance) con
ACK.
• CSMA/CA: define dos modos de operación
○ Detección de canal físico: al utilizar CSMA/CA un emisor que desee transmitir una trama
realiza una verificación previa del estado del radio canal, si detecta que dicho canal se
encuentra inactivo, transmitirá inmediatamente, en caso contrario quedara a la espera
y transmitirá cuando detecte que el medio queda liberado, requiere confirmación
expresa (ACK) del receptor de que la trama le ha llegado correctamente. Si se produce
colisión, ambas esperan un breve tiempo aleatorio para volver a transmitir. Este
mecanismo presenta problemas cuando se presenta la situación conocida como el
“nodo oculto”: no todas las estaciones se encuentran dentro del alcance del resto, las
transmisiones pueden no ser detectadas por el resto de los equipos conectados a dicha
red, para evitar dicho problema, CSMA implementa el mecanismo de detección de canal
virtual conocido como RTS/CTS.
○ Detección de canal virtual: cuando una estación quiere transmitir a otra, A envía
previamente una trama RTS con información sobre la identidad del emisor y la longitud
de datos que pretende enviar, B, si está preparada para recibir dichos datos, responde
con una trama CTS en la que especifica el emisor al que se le concede el canal y la
longitud de datos que espera recibir. Esto se conoce como Network Allocation Vector
(NAV). La estación A comienza entonces la transmisión y queda a la espera del ACK de B
confirmación la recepción de los datos transmitidos. El mayor inconveniente del
esquema CTS/RTS es la cantidad de información de control que se tiene que
intercambiar. DFC otorga un control distribuido de la red a todos los nodos que la
componen, el estándar 802.11 permite también efectuar control centralizado a través
del protocolo PCF (Point Coordinator Function) en el modo PCF, una estación base
consulta a las demás si tienen tramas que emitir mediante un sistema de sondeo o
polling. El mecanismo para establecer el sondeo se basa en la transmisión de una trama
baliza (beacon frame) de manera periódica entre 10 y 100 veces por segundo, se indican
las características del servicio de polling e invita a nuevas estaciones a conectarse al
mismo, se le garantiza una fracción del ancho de banda total de la estación base.
DCF y PCF pueden convivir dentro de una misma red con lo que algunas estaciones
recibirían calidad de servicio mientras que el resto competiría por le medio compartido.
162
3.2. ARQUITECTURA DE RED
Se pueden establecer redes de área local inalámbricas de dos modos:
• Red Ad-Hoc (Peer-to-peer): grupo de ordenadores que se comunican cada uno directamente
con los otros a través de las señales de radio sin usar un punto de acceso, pueden ser útiles
para establecer una red inalámbrica cuyo objetivo no es permanecer invariable en el tiempo,
se crean y deshacen para cubrir necesidades puntuales de comunicación.
• Red Modo Infraestructura: las redes inalámbricas se configuran como una extensión de las
redes LAN cableadas ya existentes, la red inalámbrica se configura mediante la utilización
de:
- Terminales de usuario (clientes): disponer de una tarjeta interfaz de red (NIC) y un
transceptor radio.
- Punto de acceso (AP, Access Point): controlador central de la red inalámbrica. Coordina
la transmisión y recepción de múltiples dispositivos inalámbricos dentro de una
extensión especifica. La forma habitual pasa por conectar los puntos de acceso de la red
inalámbrica a un switch ethernet y este a un encaminador router IP.
- Controlador de acceso (AC, Access Controller): se proporciona servicio mediante un AP,
conectar los AP a un controlador de acceso, el AC es un dispositivo IP que se encarga de
asignar direcciones IP a los terminales de la WLAN. Para aumentar la capacidad de la red
inalámbrica, se puede disponer más de un AP iluminado la misma zona con distintos
canales de frecuencia, todo esto provoca que para redes que trabajen en la bandera de
2,4 GHz solo puedan operar sin interferencias 3 AP concurrentes, mientras que en la
banda de 5 GHz se puede disponer de 8 AP.
7. COMUNICACIONES MÓVILES INALÁMBRICAS
Cualquier enlace de radiocomunicación entre dos terminales, al menos uno está en movimiento
o detenido, pero en localizaciones indeterminadas. El servicio de Telefonía Móvil Automática
(TMA) permite a sus abonados móviles establecer comunicación de voz y datos con otros
móviles o con abonados a las redes fijas, el móvil debe encontrarse dentro del área de cobertura
radioeléctrica de la red, los sistemas TMA se denominan sistemas celulares, su cobertura
radioeléctrica total la consiguen mediante células o celdas proporcionadas por estaciones base
de radio.
Se denomina célula a cada una de las unidades básicas de cobertura que contiene un equipo
transceptor (transmisor-receptor) un conjunto de frecuencias limitado se lleva a cabo la
reutilización de frecuencias mediante la división del terreno en celdas continuas
La reutilización de frecuencias no es posible en células contiguas, ya que se producirían
interferencias, pero si entre otras alejadas entre sí.
“Cluster” designa un conjunto de células adyacentes de manera que, entre todas, agrupan la
práctica totalidad de las frecuencias disponibles por la red celular. La cobertura final del sistema
se alcanza sumando tantos clústeres como sea necesario reutilizándose las mismas frecuencias
en todos ellos.
• Conmutación de llamadas en curso (Hand-over): procedimiento mediante el cual se
consigue que una conexión se mantenga cuando el móvil cambia de celda dependiente
de la misma central de conmutación.
163
• Seguimiento automático de abonados (Roaming): permite el mantenimiento
automático de una comunicación, cuando el móvil pasa a una celda dependiente de otra
central de conmutación. La cobertura total de una red está dividida en áreas geográficas,
cada área tiene asociada una central de conmutación que le da servicio y esta a su vez
una base de datos asociada que contiene información de los móviles registrados en
dicha área mediante el “Roaming”, la red puede dar servicio a un abonado que se
encuentre desplazado en un área distinta a la que se ha registrado.
• Telefonía móvil analógica y digital:
o Sistemas analógicos: el servicio de voz se presta utilizando técnicas de transmisión
analógica de señales.
o Sistemas digitales: se realiza una digitalización previa de la voz que luego es
transmitida utilizando diversos mecanismos de transmisión digital de la señal.
Las distintas familias de sistemas TMA se agrupan bajo la denominación de generaciones, cada
una marcada por un salto fundamental:
• 1G (Telefonía móvil analógica): utilización de señales analógicas para la transmisión de voz,
modulación en frecuencia (FM), era imposible la comunicación entre países. Estándares
englobados en esta generación:
○ AMPS: primer sistema celular, americano de la banda 800 MHz
○ NMT-450: europeo, banda 450 MHz
○ NMT-900: evolución del NMT-450 sobre la banda de 900 MHz
○ TACS: versión europea del AMPS en la banda de 900 MHz
• 2G (Telefonía móvil digital): alternativa para incrementar la cantidad de usuario simultáneos
en los sistemas, surgió TDMA (Time Division Multiple Access) y CDMA (Code Division
Multiple Access) como tecnologías predominantes de esta segunda generación. En CDMA
se usa un espectro de 1.25 MHz donde cada usuario tenía con un código para diferenciarse
del resto de los usuarios, ofrecía capacidades de seguridad y privacidad al incorporar un
sistema criptográfico de autenticación. Esta generación se caracteriza por ser digital, en
lugar de analógica, esto facilito el despliegue de nuevo servicios como el identificador de
llamada, envío de mensaje cortos (SMS), mensajes de voz y llamada a tres. Los estándares
europeos son GSM y DCS-1800.
• 2.5G: Telefonía móvil multimedia (Banda Estrecha): despliegue de la tercera generación que
ofrecía servicios multimedia avanzados sobre las redes móvil, para tratar de minimizar el
efecto de dicha interrupción e ir preparando a los usuarios para la utilización de este tiempo
de servicios se definió esta generación, con la evolución de GPRS a EDGE.
• 3G: Telefonía móvil multimedia (Banda Ancha): estándar internacional de la ITU (IMT-2000),
en Europa es estándar es UMTS, proporciona servicios de voz y dato avanzados, así como
acceso a los nuevos servicios.
• 3.5G (Enlace descendente de alta velocidad):
○ HSDPA eleva la capacidad del enlace descendente hasta los 14,4 Mbps. En esta
generación nace LTE (Long Term Evolution), se define un nuevo interfaz aire basado en
la aplicación de OFDM (Orthogonal Frequiency Division Multiplexing) y antenas MIMO
(Multiple Input Multiple Output) para conseguir hasta 42 Mbps en el enlace
descendente.
164
○ UTRAN LTE (Universal Terrestrial Radio Access Network – LTE): se pretende conseguir
una cobertura a nivel mundial mediante la modificación de las redes 3G actuales para
permitir picos de transmisión de hasta 100 Mbps de bajada y 50 Mbps de subida.
• 4G (LTE de cuarta generación): capacidad para proporcionar velocidades de acceso mayores
de 100 Mbps en movimiento y 1Gbps en reposo, manteniendo QoS y alta seguirá. Es una
fusión de tecnologías y protocolos, no un solo único estándar, WiMax y LTE pueden ser
consideradas 4G, pero LTE Advanced y WiMax2 son auténticamente 4G. Uso de SDR
(Software Defined Radios) para optimizar el acceso radio. Red completa prevista es todo IP.
Tasas de pico máximas previstas son de 100 Mbps en enlace descendente y 50 Mbps en
enlace ascendente.
3.3. GRUPOS DE TRABAJO IEEE 802: Su misión se centra en desarrollar estándares de redes de
área local (LAN) y redes de área metropolitana (MAN), principalmente en las dos capas inferiores
del modelo OSI.
802.1 Normalización de la interfaz.
802.1d STP (Spanning Tree Protocol): protocolo de red de capa 2 del modelo OSI (capa de
enlace de datos). Su función es la de gestionar la presencia de bucles en topologías
de red debido a la existencia de enlaces redundantes (necesarios en muchos casos
para garantizar la disponibilidad de las conexiones). El protocolo permite a los
dispositivos de interconexión activar o desactivar automáticamente los enlaces de
conexión, de forma que se garantice la eliminación de bucles. STP es transparente
a las estaciones de usuario.
802.1q VLAN (Virtual Local Area Networks): mecanismo que permita a múltiples redes
compartir de forma transparente el mismo medio físico, sin problemas de
interferencia entre ellas (Trunking). Varias VLAN pueden coexistir en un único
conmutador físico o en una única red física. Son útiles para reducir el dominio de
difusión y ayudan en la administración de la red, separando segmentos lógicos de
una red de área local. Una VLAN consiste en dos o más redes de computadoras que
se comportan como si estuviesen conectados al mismo computador, aunque se
encuentren físicamente conectados a diferentes segmentos de una red de área
local (Local).
802.1x Autenticación en redes LAN: norma para el control de acceso a red basada en
puertos. Permite la autenticación de dispositivos conectados a un puerto LAN,
estableciendo una conexión punto a punto o previniendo el acceso por ese puerto
si la autenticación falla.
802.1aq SPB (Shortest Path Bridging): tecnología de red que posibilita el Multipath routing,
surgió como reemplazo de los antiguos protocolos spanning tree, que sirvieron
para evitar caminos redundantes que pudiesen tener swtiching loop y evitar así
tormentas de tramas. Mientras que SPB permite tener activas todas las rutas con
caminos de igual coste, lo que conlleva una mayor escalabilidad a nivel 2 aportando
una mayor velocidad de convergencia y mejorando la eficiencia gracias a un
incremento del ancho de banda y permitiendo al tráfico un reparto de carga a
través de todos los caminos de una topología en malla. Está diseñado para eliminar
el error humano durante la configuración, preservando así la naturaleza plug-and-
play que estableció Ethernet como protocolo por defecto de nivel 2.
165
802.2 LLC (Control de enlace lógico): se ocupa de la comunicación entre las capas
superiores y las capas inferiores. Generalmente, esta comunicación se produce
entre el software de red y el hardware del dispositivo. La subcapa LLC toma los
datos del protocolo de la red, que generalmente son un paquete IPv4, y agrega
información de control para ayudar a entregar el paquete al nodo de destino. En
un PC, el LLC se puede considerar el controlador de la NIC. El controlador de la NIC
es un programa que interactúa directamente con el hardware de la NIC para
transmitir los datos entre la subcapa MAC y los medios físicos.
802.3 CSMA / CD (Carrier Sense Medium Access/Collision Detection): el que el emisor,
durante el tiempo de transmisión de una trama, está escuchando el medio para
comprobar si se ha producido una colisión con otro emisor que hubiese comenzado
a transmitir al mismo tiempo, de detectarse esta circunstancia, el emisor detiene
la transmisión en curso y espera un tiempo aleatorio para volver a retransmitir la
trama dañada. Este mecanismo tiene unas buenas prestaciones en medios guiados
como el par trenzado, sin embargo, para medios no guiados como el aire, no es
posible aplicar el mecanismo de detección de colisiones al no poder el terminal
realizar escuchas simultaneas durante la transmisión.
802.4 Token Bus: protocolo de la subcapa MAC de Enlace de Datos que implementa una
red lógica en anillo con paso de testigo sobre una red física de cable coaxial.
802.5 Token Ring: arquitectura de red con topología lógica en anillo y técnica de acceso
de paso de testigo, usando una trama de 3 bytes llamado testigo (en inglés token)
que viaja alrededor del anillo.
802.11 802.11b utilizan DSSS para alcanzar velocidades máximas de 11 Mbps
compartidos por todos los usuarios del canal por la utilización del
mecanismo RTC/CTS el alcance de estas redes se encuentra en torno a
los 100 metros.
802.11a (no llego a implantarse en España) velocidad máxima de 54 Mbps por
canal usa OFDM, frecuencias más altas en la banda de 5 GHz, con
espacio para más canales y menos propensa a interferencias que la
banda de 2,4 GHz pero reduce el alcance comparándolo con IEEE
802.11b.
802.11g misma velocidad máxima que IEEE 802.11ª usando la banda de 2,4 GHz
con dos opciones: OFDM o DSSS mejorado para garantizar la
interoperabilidad con equipos IEEE 802.11b. El alcance es mayor debido
a combinar las ventajas de OFDM en cuanto a multitrayecto con la
menor absorción de la banda de 2.4 GHz.
166
802.15 WPAN (Bluetooth): redes inalámbricas de área personal, define la capa física (PHY)
y de control de acceso al medio (MAC) para la conectividad inalámbrica tanto de
dispositivos estacionarios como móviles dentro de un área personal.
802.16 WIMAX (Worldwide Interoperability for Microwave Access): tecnología dentro de
las conocidas como tecnologías de última milla, también conocidas como bucle
local que permite la recepción de datos por microondas y retransmisión por ondas
de radio. Una de sus ventajas es dar servicios de banda ancha en zonas donde el
despliegue de cable o fibra por la baja densidad de población presenta unos costos
por usuario muy elevados (zonas rurales).
167
- Impacto: consecuencia sobre el activo de la materialización de una amenaza.
- Riesgo: posibilidad de que se produzca un impacto determinado en un activo, en un domino
o en la organización, o probabilidad de que ocurra una amenaza, ponderándola con la
magnitud del daño que pueda ocasionar, actos naturales, errores u omisiones humanas o
actos intencionados.
- Activos: recursos del sistema de información o relacionados con este, necesarios para que
la organización funcione correctamente.
- Política de seguridad: conjunto de reglas que dirige como un sistema proporciona servicios
de seguridad para proteger recursos del sistema sensible y críticos.
• Vulnerabilidades que afectan a todos los sistemas: instalaciones por defecto de sistemas y
aplicaciones, cuentas sin contraseña o débiles, BackUps incompletos o inexistentes, gran
número de puertos abiertos, insuficiente filtrado de los paquetes con direcciones de inicio y
destino inadecuadas, registro de eventos (logging) incompleto o inexistente, programas CGI
(Common Gateway Interface) vulnerables,…
• Vulnerabilidades que afectan a sistemas Windows: vulnerabilidad Unicode, desbordamiento de
buffer en extensiones ISAPI (Internet Server Application Programming Interface), exploit para
RDS del IIS (Servicios de información remota Microsoft), recursos compartidos en red no
protegidos, fuga de información a través de conexiones de tipo “null sesión”, hashing débil en
SAM (Security Account Manager).
• Vulnerabilidades que afectan a sistemas UNIX: desbordamiento de Buffer en los servicios RPC
(Remote Procedure Call, vulnerabilidades en sendmail, debilidades en BIND (Berkeley Internet
Name Domain), comandos “r.”, desbordamiento de buffer en LPD (Line Printer Daemon),
“sadmind” y “mountd”, bajo control de cifrado en SNMP,…
• Vulnerabilidades que afectan a servidores web: parámetros no validos en peticiones HTTP,
control de acceso violado, ruptura en el manejo de control de cuentas y sesiones,
desbordamiento de buffer, errores por inyección de código y comandos, problemas con el
manejo de errores, uso inseguro de la criptografía, errores de implementaciones de
administración remota, fallos en sistemas con scripts, falta de configuración correcta en los
servidores,…
2. ATAQUES Y AMENAZAS
Tipos de ataques y amenazas: todas aquellas acciones que supongan una violación de la
seguridad de nuestro sistema (autentificación, confidencialidad, integridad o disponibilidad), se
pueden clasificar en:
• Interrupción: un recurso del sistema es destruido o se vuelve no disponible, es un ataque
contra la disponibilidad (Nukes: causan que los equipos queden fuera de servicio).
• Intercepción: una entidad no autorizada consigue acceso a un recurso, ataque contra la
confidencialidad (Troyanos: copia ilícita de archivos o programas o bien la lectura de las
cabeceras de paquetes de datos para desvelar la identidad, Spoofing…)
• Modificación: una entidad no autorizada no solo consigue acceder a un recurso, sino que es
capaz de manipularlo. Virus y troyanos poseen esa capacidad, es un ataca contra la
integridad. Modificación de cualquier tipo en archivos de datos, alterar un programa,
modificar el contenido de información que este siendo trasferida por la red…
168
• Fabricación: una entidad no autorizada inserta objetos falsificados en el sistema, es un
ataque contra la autenticidad (Inserción de mensajes falsos en una red o añadir datos a un
archivo), pueden clasificarse en:
o Ataques activos: algún tipo de modificación de los datos o la creación de falsos datos
(suplantación de identidad, modificación de mensajes, web spoofing…)
o Ataques pasivos: el atacante no altera la comunicación si no que únicamente la escucha
o monitoriza para obtener la información que está siendo transmitida, son muy difíciles
de detectar ya que no provocan ninguna alteración de los datos, es posible evitar su
éxito mediante el cifrado de la información.
2.1. CLASIFICACIÓN DE LOS ATAQUES POR SU “MODUS OPERANDI”
• Escaneo de puertos: buscar puertos abiertos y fijarse en los que puedan ser receptivos o de
utilidad para el ataque.
• Ataques de autenticación: suplantación de una persona con autorización por parte del
atacante mediante la obtención del nombre y contraseña del atacado o suplantando a la
víctima una vez está ya ha iniciado una sesión en su sistema. Se utilizan varias técnicas:
o Simulación de identidad: el atacante instala un programa que recrea la pantalla de
entrada al sistema para capturar su login y clave.
o Spoofing: ataques (sobre protocolos) que consisten en sustituir la fuente de origen de
una serie de datos adoptando una identidad falsa para engaña a un firewall o filtro de
red, los más conocidos son:
▪ IP Spoofing: sustituye una IP, el atacante logra identificarse con una IP que no es la
suya, con lo que a ojos del atacado el agresor es una tercera persona en vez del
atacante real (a través de nmap, por ejemplo).
▪ DNS Spoofing: aprovecha de la capacidad de un servidor DNS de resolver una
petición de dirección IP a partir de un nombre que no figura en su base de datos
(sustituye un servidor DNS).
▪ Web Spoofing: el atacante crea un sitio web (falso) similar al que la víctima desea
entrar, los accesos a este sitio están dirigidos por el atacante permitiéndole
monitorizar todas las acciones de la víctima.
▪ Fake-mail: envío de emails con remitente falso, el atacante envía email en nombre
de otra persona.
o Eavesdropping: ataque de capa de red, captura pequeños paquetes de la red y lee el
contenido de datos.
o Looping: el intruso utiliza algún sistema para obtener información e ingresar en otro,
que luego utiliza para entrar en otro y así sucesivamente, tiene como finalidad hacer
imposible localizar la identificación y la ubicación del atacante.
o IP Splicing-Hijacking: el atacante espera a que la víctima entre en una red usado su
nombre, contraseña y demás y una vez que la víctima ha superado los controles de
identificación y ha sido autorizada, la expulsa del sistema y se hace pasar por ella.
o Sinkholing: técnica para manipular el flujo de datos en una red; redirige el tráfico desde
su destino previsto al servidor de su elección. Se puede utilizar de forma maliciosa para
desviar el tráfico legítimo de su destinatario previsto.
169
o Backdoors (puertas traseras): trozos de código en un programa que permite a quien los
conocen saltarse los métodos usuales de autentificación para realizar ciertas tareas, son
insertados por los programadores para agilizar la tarea de probar código durante la fase
de desarrollo, son fallos de seguridad que se mantienen voluntariamente o no una vez
terminado el producto.
o Exploit: ingresar a un sistema aprovechándose de agujeros en los algoritmos de
encriptación utilizados.
o Obtención de contraseñas: obtención por “fuerza bruta” de nombres de usuarios y
calves de acceso. Suele realizar este tipo de ataques usando una clase de programas
llamados diccionarios (programas que en su base de datos contienen millones de
palabras, van probando con millones de combinaciones de letras y números
encriptados, hasta descubrir la combinación correcta).
o Man in the middled: el atacante se ubica en el medio de una comunicación entre dos
entidades legitimas para leer o modificar los datos que pasan entre las dos partes. Se
basa en capturar todo el tráfico de red de un usuario objetivo.
• Denial of Service (DoS): ataque de negación de servicio, produce la imposibilidad por parte
de la victima de acceder y/o permitir el acceso a un recurso determinado, la imposibilidad
de un servidor de prestar sus servicios. Es más fácil corromper un sistema que acceder
clandestinamente al mismo, estos ataques intentan corromper o saturar los recursos de la
víctima por medio de peticiones de conexión para lograr desactivarla por medio de
saturación, ataques más usuales:
o Jamming o Flooding: ataques que saturan los recursos del sistema de la víctima
dejándola sin memoria, sin espacio libre en su disco duro o saturando sus recursos en
red.
o Syn Flood: inundación con paquetes SYN, cuando se establece una comunicación a
través de TCP, el servidor envía un paquete que si el cliente no contesta entra en un
estado denominado semiabierto, no se ha atendido el saludo inicial. El servidor
permanecerá a la escucha un determinado tiempo hasta cancelar la llamada, si se envían
muchos saludos incompletos se consigue que el servidor se paralice.
o Land Attack: consiste en un bug en la implementación de la pila TCP/IP en Windows, el
ataque envía a algún puerto abierto de un servidor un paquete, maliciosamente
construido con la IP y puerto origen igual que la IP y puerto destino termine por
colapsarse.
o Supernuke o Winnuke: “Nuke” es el ataque más común de los equipos Windows, hace
que los equipos que escuchan por el puerto UDP 137/138/139 (utilizando NetBios),
queden fuera de servicio o disminuyan su rendimiento al enviarle paquetes UDP
manipulados, se envían fragmentos de paquetes que la maquina victima detecta como
erróneos pasando a un estado inestable.
o Teardrop: afectan a fragmentos de paquetes, algunas implementaciones de colas IP no
vuelve a recomponer correctamente los fragmentos ya que se superponen haciendo
que el sistema se cuelgue.
o Mail bombing / Mail Spamming: envío indiscriminado y masivo de un mensaje idéntico
a una misma dirección, saturando así buzón el de correo del destinatario.
170
• Ataques de modificación / daño:
o Tampering o Data Diddling: modificación no autorizada de datos o software instalado
en el sistema víctima.
o Ataques usando Java Applets: son ejecutados desde otra aplicación, como un navegador
de internet, los navegadores actuales implementan JVM para poder ejecutarlos, no son
más que código ejecutable y como tal puede ser manipulado por intrusos.
o Ataques usando JavaScript y VBScript: son dos lenguajes usados por los diseñadores de
sitios web evitando el uso de java, los programas son interpretados por el navegador.
o Ataques usando ACTIVEX: tecnología de Microsoft cuya seguridad se basa en
certificados y firmas digitales, el problema es que los usuarios aceptan los certificados
sin pararse a leerlos, y estos se basan en que le programador del control ActiveX asegura
que su control no es nocivo, lo cual es falso en bastantes ocasiones.
o Cookies: solo representan una amenaza para la privacidad ya que pueden cumplir la
función de espiar. No son capaces de causar daño al sistema, se utilizan para reconocer
al usuario al entrar en determinados sitios web.
o Ataques usando vulnerabilidades de los navegadores: fallos del navegador, los más
comunes son los “buffer overflow” debido a una debilidad de los buffers de algunos
navegadores para el procesamiento de las entradas de usuario, se puede llegar a
manipular datos como URL almacenadas.
• Explotación de errores:
o Errores de diseño, implementación y operación: sistemas están expuestos a agujeros de
seguridad que son explotados para acceder a archivos, obtener privilegios o realizar
sabotaje. Ocurren por varias razones como puertas traseras, bugs…
171
• Módulo de reproducción: encargado de manejar las rutinas para infectar entidades
ejecutables que aseguraran la subsistencia del virus. Cuando toma el control del sistema
puede infectar otras entidades ejecutables.
• Módulo de ataque: contiene las rutinas de daño adicional o implícito. Puede ser disparado
por distintos eventos del sistema: fecha, hora, encontrar un archivo o sector especifico, una
determinada cantidad de arranques desde que ingreso al sistema…
• Módulo de defensa: principal objetivo es proteger el cuerpo del virus, incluye rutinas que
disminuyen los síntomas que delatan su presencia para que permanezca invisible, muy
sofisticadas logrando dar información falsa al SO y localizándose en lugares poco comunes
para el registro de los antivirus, como la memoria flash/ROM.
Métodos de infección:
• Añadidura o empalme: el código del virus se agrega al final del archivo ejecutable a infectar,
modificando las estructuras de arranque del archivo anfitrión. La principal desventaja es el
tamaño del archivo infectado es mayor al original, lo que permite una fácil detección.
• Inserción: se aloja en zonas de código no utilizadas o en segmentos de datos dentro de los
archivos que contagian, la longitud total del archivo infectado no varía.
• Reorientación: se introducen centrales virósicas en zonas físicas del disco rígido marcadas
como defectuosas o en archivos ocultos del sistema. El cuerpo del virus, al no estar insertado
en el archivo infectado, sino en otro sitio oculto, puede tener un tamaño bastante grande,
aumentando así su funcionalidad.
• Polimorfismo: método más avanzado de contagio logrado por los programadores, la técnica
básica usada es la de inserción de código viral en un archivo ejecutable, pero para evitar el
aumento de tamaño del arco infectado, el virus compacta parte de su código y del código
del archivo anfitrión de manera que la suma de ambos sea igual al tamaño original del
archivo.
• Sustitución: sustituye el código completo del archivo original por el código del virus, al
ejecutar el programa infectado el único que actúa es el virus, que cumple con sus tareas de
contagiar otros archivos y luego termina la ejecución del programa reportando algún tipo
de error.
• Tunneling: los virus utilizan el tunneling para protegerse de los módulos residentes de los
antivirus que monitorean todo lo que sucede en la máquina para interceptar todas las
actividades “típicas” de los virus.
Clasificación de los virus:
• Según su comportamiento:
o Caballos de Troya: no tienen la capacidad de autorreproducirse. Se esconden dentro del
código de archivos ejecutables y no ejecutables. Su objetivo es robar las contraseñas
que el usuario tenga en sus archivos o las contraseñas para el acceso a redes y enviarlas
por correo a la dirección registrada como la de la persona que lo envió a realizar la tarea.
o Troyanos: programas Remote adminstration Tool, deben estar instalados en ambos pc
y su comunicación se produce vía internet o vía red. Tiene un carácter malicioso como
el aprovechamiento de bugs y backdoors, el desconocimiento de la victima de que el
troyano esta instalado en su PC, se oculta intentando pasar desapercibido,…
▪ Camaleones: variedad de los troyanos, actúan como otros programas comerciales,
en los que el usuario confía pero en realidad están haciendo algún tipo de daño.
172
o Virus polimorfos o mutantes: poseen la capacidad de cifrar el cuerpo del virus para que
no pueda ser detectado fácilmente, deja disponibles unas cuantas rutinas que se
encargaran de descifrar el virus para poder propagarse, una vez descifrado el virus
intentara alojarse en algún archivo de la computadora. Para esto incluye un generador
de códigos al que se conoce como motor de mutación.
o Virus sigilosos: posee un módulo de defensa bastante sofisticado, intentara permanecer
oculto tapando todas las modificaciones que haga. Subvirtiendo algunas líneas de
código el virus logra apuntar el flujo de ejecución hacia donde se encuentra la zona
infectada. La técnica stealth de ocultamiento de tamaño captura las interrupciones del
SO que solicitan ver los atributos del archivo y, el virus le devuelve la información que
poseía el archivo antes de ser infectado.
o Virus lentos: infectan solamente los archivos que el usuario hace ejecutar por el SO,
simplemente siguen la corriente y aprovechan cada una de las cosas que se ejecutan.
o Retro-virus: intenta como método de defensa atacar directamente al programa
antivirus, lo programadores de virus esta no es una información difícil de obtener ya que
pueden conseguir cualquier copia de antivirus que hay en el mercado, descubrir cuales
son los puntos débiles del programa y buscar una buena forma de aprovecharse de ellos.
o Virus voraces: alteran el contenido de los archivos de forma indiscriminada, sustituirá el
programa ejecutable por su propio código, se dedican a destruir completamente los
datos que puedan encontrar.
o Bombas de tiempo: virus convencionales con la diferencia de que el trigger de su módulo
de ataque se disparara en una fecha determinada, muestran mensajes en la pantalla en
alguna fecha.
o Macro-virus: son completamente independientes del SO o de la plataforma, ni siquiera
son programas ejecutables, son pequeños programas escritos en el lenguaje propio de
un programa (editores de texto, hojas de cálculo, utilidades especializadas…), se pueden
propagar a otros ordenadores siempre que los usuarios intercambien documentos del
tipo del virus. Alteran de tal forma la información de los documentos infectados que su
recuperación resulta imposible, solo se ejecutan en aquellas plataformas que tengan la
aplicación para la que fueron creados.
o Gusanos: un conjunto de programas, que tiene la capacidad de desparramar un
segmento de él o su propio cuerpo a otras computadoras conectadas a una red, hay dos
tipos de gusanos:
▪ Host Computer Worm: contenidos totalmente en una computadora, se ejecutan y
se copian a si mismo vía conexión de una red, originalmente terminan cuando
hicieron una copia de ellos mismo en otro host, también existen los que hacen la
copia e infectan otras redes, es decir que cada máquina guarda una copia de ese
gusano.
▪ Network Worm: conjunto de partes (segmentos), cada una corre en una máquina
distinta y usando la red para distintos propósitos de comunicación propagan un
segmento de una maquina a otra, tienen un segmento principal que coordina el
trabajo de los otros segmentos.
173
4. SEGURIDAD PERIMETRAL Y PROTECCION EN REDES DE COMUNICACIONES
Cuando surgieron los primeros virus y comenzaron a producirse los primeros ataques de DoS
(Denial of Service). Para satisfacer las necesidades de comunicación segura de los usuarios, fue
necesario desarrollar estándares, protocolos y técnicas para implementar mecanismos de
seguridad en las redes.
4.1. TIPOS DE MEDIDAS DE SEGURIDAD
Diseñar sistemas mediante criterios de seguridad es más complejo, pues las amenazas con poco
cuantificables y muy variadas, las medidas de seguridad llevan un costo aparejado, a mayores y
más restrictivas medidas de seguridad, menos amigable es el sistema, las medidas de seguridad
que pueden establecerse en un sistema informático son:
• Medidas físicas: mecanismos para impedir el acceso directo o físico no autorizado, también
protege de desastres naturales y se encarga de establecer un perímetro de seguridad.
• Medidas lógicas: incluye las medidas de acceso a los recursos, el uso correcto de los mismos,
distribución de las responsabilidades entre los usuarios, protección de la información
almacenada.
• Medidas humanas: definir las funciones, relaciones y responsabilidades de distintos usuarios
potenciales del sistema.
• Medidas administrativas: aquellas que deben ser tomadas por las personas encargadas de
definir la política de seguridad como la documentación y publicación de la política de
seguridad y el establecimiento de un plan de formación del personal
• Medidas legales: aplicación de medidas legales para disuadir al posible atacante o para
aplicarle algún tipo de castigo a posteriori. Normalmente son fijadas por instituciones
gubernamentales e incluso instituciones internacionales como LOPD (Ley Orgánica de
Protección de Datos)
5. IDENTIFICACION Y AUTENTIFICACION
Las herramientas y aplicaciones forman la base técnica de la política de seguridad, pero la
política de uso aceptable debe considerar otros aspectos (quien tiene permisos, acceso,
responsabilidades…). Para poder entrar en un recinto será necesario saber de quien se trata y si
el sujeto está autorizado, será preciso identificar al sujeto (identificación) de forma totalmente
fiable (autenticación o verificación) y consultar un archivo, base de datos y/o algoritmo que nos
diga si el sujeto tiene o no autorización para realizar la acción demandada (autorización). Esto
implica que antes se haya establecido un sistema para identificar a los sujetos (gestión de la
identificación), se haya definido un sistema para autentificar al usuario (Autentificador), y que
para cada usuario se haya definido una tabla de permisos. Cuando el usuario intente entrar en
el sistema, deberá dar su identificación, que el sistema verificará (Comprobación del
identificador), realizar la operación pertinente para demostrar que es quien dice ser
(contraseña) y el sistema lo comprobará (Autentificación).
174
5.1. CONTROL DE ACCESO
Seleccionar o filtrar los usuarios que pueden acceder a recursos informáticos, en redes
telemáticas se puede hacer la selección del acceso según:
• En el servidor: el ordenador que almacena la información instala los filtros en el SO, esto
permite realizar la selección también para los usuarios que acceden físicamente al
ordenador, el problema es gestionar el acceso de una lista en muchos servidores, para
solucionar esto hay sistema que centralizan la gestión como Kerberos (protocolo de
autenticación de redes de ordenador creado por el MIT que permite a dos ordenadores en
una red insegura demostrar su identidad mutuamente de manera segura. Se basa en
criptografía de clave simétrica y requiere un tercero de confianza) o Radius ([Remote
Authentication Dial-In User Service]: protocolo de autenticación y autorización para
aplicaciones de acceso a la red o movilidad IP. Utiliza el puerto 1812 UDP para establecer
sus conexiones.).
• En la red: se instalan filtros en la red que controlan los accesos desde maquinas remotas,
estos se pueden implementar en Switchs LAN, Routers o Firewalls. Permite controlar zonas
y grupos.
Podemos definir seguridad perimetral como el conjunto de técnicas, elementos y sistema tanto
hardware como software que permiten la protección del perímetro delimitante entre las redes
LAN de una organización y el conjunto de las redes externas a dicha organización. Los ataques a
través de las redes de comunicaciones potencialmente pueden ocasionar perdidas de
información. El empleo de sistemas de protección perimetral que permitan realizar un robusto
control de accesos y protección los servicios informáticos garantizan un correcto
aprovechamiento de la infraestructura y garantiza la integridad y confidencialidad de la
información. Los diferentes segmentos de red se organizan en base a zonas de seguridad:
• Zona interna: se sitúan los usuarios de la propia organización.
• Zona externa: se encuentran los dispositivos cuya gestión esta fuera del alcance de la
organización.
• DMZ (De-Militarized Zone): se suelen situar a los servidores corporativos que proporcionan
servicios a los puestos de la red interna y a clientes situados en la red externa, quedando
protegidos por las diferentes reglas de seguridad configuradas en el firewall. La DMZ está
separada de la red interna y la red externa a través de un dispositivo de control y filtrado del
tráfico. El Firewall podría ser también un router que ejerciese, además de las funciones
propias, funciones específicas de un firewall.
5.2. FIREWALLS
Es un sistema o grupo de sistemas que hace cumplir una política de control de acceso entre
varias redes, se puede definir como cualquier sistema (desde un simple router hasta varias redes
en serie) utilizado para separar en cuanto a seguridad se refiere, una maquina o subred del resto,
protegiendo así servicios y protocolos que desde el exterior puedan suponer una amenaza a la
seguridad. Son dispositivos hardware o sistemas software que controlan el flujo de tráfico entre
dos o más redes empleando ciertas políticas de seguridad, son dispositivos cuya funcionalidad
se limita a permitir o bloquear el tráfico entre dos redes basándose en una serie de reglas. Su
complejidad reside en las reglas que admiten y en como realizan la toma de decisiones
basándose en dichas reglas.
175
El nivel de protección depende de las necesidades de la organización, los firewalls se configuran
para proteger la red contra cualquier intento de acceso desautorizado desde el exterior hacia el
interior de la red o viceversa, adicionalmente, es un punto único e ineludible de acceso a la red
donde se pueden centralizar las medidas de seguridad y auditoría sobre esta. Un firewall no
puede proteger la red contra amenazas que no pasan a través de él. Los firewalls no pueden
proteger contra clientes o servicios que se admiten como validos pero que son vulnerables.
Tampoco pueden proteger contra mecanismos de “tunneling” criptográfico para HTTP, SMTP u
otros protocolos (comunicaciones cifradas sobre SSL para los protocolos citados). Algunos
proporcionan mecanismos de detección y eliminación básicos. Los cortafuegos no pueden ni
deben sustituir otros mecanismos de seguridad que reconozcan la naturaleza y efectos de los
datos y aplicaciones que se estén manejando y actúen en consecuencia. Se dividen en:
• Firewall a nivel de red o de filtrado de paquetes (capas 2, 3 y/o 4 del modelo OSI): cuanto
más bajas sean las capas en las que el firewall trabaja, su evaluación será más rápida y
transparente pero su capacidad de acción ante ataques complejos es menor. Los firewalls
de filtrado de paquetes utilizan información de las cabeceras de capa 2, 3 y 4 para tomar
decisiones de bloque o envió. Existen dos clases principales dentro de esta categoría, los
firewalls de filtrado de paquetes estático y filtrado de paquetes dinámico, la diferencia
fundamental entre ellos es que los segundos tienen en cuenta información sobre el estado
de la conexión a la hora de evaluar las reglas. Los firewalls de filtrado estático de paquetes
analizan cada paquete individualmente, los firewalls de filtrado dinámico analizan cada
paquete en el contexto de su contexto.
Aparte de Aceptar o Rechazar, los firewalls de este tipo poseen un tercer tipo de acción:
Descartar. Cuando un paquete es procesado por una regla que define esta acción, este se
elimina “silenciosamente” sin devolverse error ninguno a lo originario de este creando un
efecto de “agujero negro” y evitando así que el firewall revele su presencia. Las principales
ventajas de este tipo de firewalls son su rapidez, transparencia y flexibilidad. Proporcionan
un alto rendimiento, escalabilidad y bajo coste y son muy útiles para bloquear la mayoría de
los ataques de DoS, se siguen implementando como servicios integrados en algunos routers
y dispositivos hardware de balanceo de carga.
Los firewalls con inspección de estado o filtrado dinámico de paquetes (Stateful Inspection
Firewalls) son firewalls de filtrado de paquetes en los que, además, se valida a la hora de
aceptar o rechazar el paquete, el hecho de que este sea una petición de nueva conexión o
pertenencia a una sesión ya establecen entre un host externo y otro interno. Los firewalls
de este tipo examinan de forma estricta el establecimiento de cada conexión (en capa 4 del
modelo OSI), mantiene una tabla de conexiones validas y deja pasar los paquetes que
contienen información correspondiente a una entrada valida en dicha tabla de circuitos
virtuales. También proporcionan los mecanismos efectivos de seguridad sobre el tráfico
UDP, creando información de sesión a partir d los puertos origen y destino utilizados.
• Firewall a nivel de aplicación (capas 5, 6, y/o 7 del modelo OSI): mantienen información del
contexto de cada conexión, teniendo en cuenta información de capa de aplicación antes de
permitir una conexión, manteniendo un riguroso control del estado de todas las conexiones
y el número de secuencia de los paquetes. Suelen ser servicios de filtrado para los protocolos
de capa 7 más habituales (HTTP, FTP, DNS, HTTPS, SMTP) proporcionando un control de
acceso adicional y un detallado registro de sucesos respecto a este.
176
Proxys: aplicación o dispositivo hardware que hace de intermediario entre los usuarios,
normalmente de una red local e internet. Lo que hace realmente es recibir peticiones de usuario
y redirigirlas a internet, la ventaja que presenta es que con una única conexión a internet
podemos conectar varios usuarios. Un proxy es a su vez un servidor de cache, almacena las
páginas web a las que se accede más asiduamente en una memoria, un usuario quiere acceder
a internet, accede a través del proxy. Se aceleran en gran medida los accesos a internet. El proxy
el transparente al usuario, porque tendrá que configurar su navegador diciéndole que accede a
internet a través de este. Los últimos proxies que han aparecido en el mercado realizan además
funciones de filtrado, dejar que un usuario determinado acceda a unas determinadas páginas
de internet o que no acceda a ninguna, podemos configurar una red local en la que haya usuario
a los que se les permita salir a internet, otros a los que les permita enviar correo, pero no salir
a Internet…
El sistema ha de ejecutar al menos un servidor “proxy” para cada uno de los servicios que
se desee permitir y es necesario que le servicio “IP Forwarding” este deshabilitado, para que
la maquina con varias tarjetas de red no pueda actuar como router, aislando el tráfico entre
la red interna y la externa. Los sistemas externos verán al host a través d una de las tarjetas
y lo internos a través de la otra. Entre las dos partes no puede existir ningún tipo de tráfico
que no pase por el proxy: todo el intercambio de datos entre las redes se ha de realizar a
través de servidores “proxy” situados en el host bastión. La utilización de proxies es muy
recomendable, pero puede ser problemática al configurar cierto tipo de servicios o
protocolos que no se diseñaron tenido en cuenta la existencia de un proxy entre los dos
extremos de una conexión.
• Screened Host: un paso en términos de seguridad perimetral es la arquitectura “screened
host” o “choke gate”, que combina un router (configurado como firewall de filtrado de
paquetes estático), con un host bastión. El principal nivel de seguridad proviene del filtrado
de paquetes (el router es la primera y más importante línea de defensa). En la maquina
bastión, único sistema accesible desde el exterior, se ejecutan los proxies de las aplicaciones,
mientras que el choke o router de filtrado de paquetes, se encarga de filtrar los paquetes
que se puedan considerar peligrosos para la seguridad de la red interna, permitiendo
únicamente la comunicación con un reducido número de servicios.
177
La recomendación es situar el router entre la red exterior y el host bastión, pero situar el
bastión en la red exterior no provoca aparentemente degradación de la seguridad. La “no
degradación” de la seguridad mediante esta aproximación es más que discutible, ya que
habitualmente es más fácil de proteger un router que una maquina con un operativo de
propósito general. Así cuando una máquina de la red interna desea comunicarse con el
exterior existen dos posibilidades:
o El “choke” permite la salida de algunos servicios a todas o parte de las maquinas internas
a través de un simple filtrado de paquetes.
o El “choke” prohíbe todo el tráfico entre máquinas de la red interna y el exterior,
permitiendo solo la salida de ciertos servicios que provienen de la maquina bastión que
han sido autorizados por la política de seguridad de la organización. Así, se obliga a los
usuarios a que las conexiones con el exterior se realicen a través de los servidores proxy
situados en el bastión.
• Screened subnet (DMZ): es con diferencia la más utilizada, añade un nivel de seguridad en
las arquitecturas de firewall situando una subred (DMZ) entre las redes externa e interna,
de forma que, si la seguridad del mismo se veía comprometida, la amenaza se extendía
automáticamente al resto de la red. Como la maquina bastión es un objetivo interesante
para muchos atacantes, la arquitectura DMZ intenta aislarla en una red perimétrica de forma
que un intruso que accede a esta máquina no consiga un acceso total a la subred protegida.
Es una arquitectura más segura, pero también más compleja. Se utilizan dos firewalls,
denominados exterior e interior, conectados ambos a la DMZ, donde se puede ubicar el host
bastión y también se podrían incluir sistemas que requieran un acceso controlado como el
servidor de correo. El firewall exterior tiene como misión bloquear el tráfico no deseado en
ambos sentidos, mientras que el interior hace lo mismo, pero con el tráfico entre la red
interna y la perimétrica. De este modo un atacante había de romper la seguridad de ambos
routers para acceder a la red protegida. Incluso es posible implementa una zona
desmilitarizada con único router que posea tres o más interfaces de red, pero en este caso
si se compromete este único elemento se rompe toda nuestra seguridad.
2.4. SISTEMAS DETECTORES Y PREVENTORES DE INTRUSIONES (IDS)
IDS (Intrusion Detection Systems) es un sistema de seguridad complementario al firewall y
proxy. Los IDS no garantizan la seguridad, pero proporciona información adicional sobre los
eventos que se están produciendo en un sistema o en un segmento de red. Una buena estrategia
de seguridad debe incluir, además, autenticación de usuarios, control de acceso, cifrado de
datos y análisis de vulnerabilidades. Los sistemas de detección de intrusos proporcionan
monitorización (recibe y analiza el tráfico en busca de cualquier actividad que pueda ser
potencialmente peligrosa o que no cumpla la política de seguridad de la organización), detección
(usan políticas para definir los actos sospechosos de todo ese tráfico) y respuesta (pueden
proporcionar un conjunto de respuestas limitados, finalización de sesiones TCP sospechosas o
la interacción con firewalls mediante comandos SNMP). Los sistemas de detección son un
elemento integral y necesario en una infraestructura de información seguirá, representando el
complemento ideal a los firewalls en las redes. Permiten un completa supervisión de las redes,
independientemente de la acción tomada, esa información siempre estará ahí y será necesaria
para determinar la naturaleza del incidente y su fuente. Existen dos grandes enfoques a la hora
de clasificar a los sistemas de detección de intrusos en función de que sistemas vigilan:
178
• IDS basados en maquina: sistemas que analizan actividades de una única maquina en busca
de posibles ataques. Realizan su función protegiendo un único sistema, es un proceso que
trabaja en background buscando patrones de eventos y alertando o tomando las medidas
oportunas en caso de que uno de estos intentos sea detectado.
• IDS basados en red: sistemas que analizan una subred (generalmente en un mismo dominio
de difusión) en busca de posibles ataques. Monitoriza los paquetes que circulan por un
segmento de red, puede situarse en cualquier de los hosts o en un elemento que analice
todo el tráfico (como un switch o un router). Monitorizara todo el tráfico del segmento, es
necesario que le puerto del switch al que se conecta el IDS sea configurado con la
funcionalidad de “port mirroring”.
Sistemas de decepción (honeypots): mecanismos encargados de simular servicios con
problemas de seguridad de forma que un atacante piense que realmente es problema se
puede aprovechar para acceder a un sistema cuando realmente se está aprovechado para
registrar todas sus actividades, es un mecanismo útil para conseguir entretener al atacante
mientras se localiza su conexión. El objetivo fundamental es obtener información del
atacante.
179
3.2. IPSEC
Es un “framework” de seguridad que define como crear VPN sobre redes IP, se basa en la
utilización de protocolos de encapsulamiento (ESP, AH), algoritmos de cifrado (DES, 3DES, AES),
algoritmos de autenticación (MD-5, SHA-1), mecanismos de gestión de claves y dominios de
interpretación. Proporciona servicios de seguridad en la capa IP, permitiendo que los sistemas
elijan los protocolos necesarios, determinen que algoritmos se van a utilizar en cada servicio y
facilite la gestión de las claves criptografía asociadas con cada servicio proporcionado. IPSec
puede funcionar en dos modos:
• Modo de transporte: proporción protección de los protocolos de capa superior, protege la
carga útil (payload), se utiliza este modo cuando la VPN se establece de extremo a extremo
entre dos dispositivos finales.
• Modo túnel: proporciona protección al paquete IP completo, después de haber añadido la
cabecera AH o ESP al paquete IP original, se le añade una nueva cabecera IP dando lugar a
un nuevo paquete IP cuyo payload es el paquete IP original encapsulado en ESP o AH. La
cabecera del paquete original queda por lo tanto también protegida. El modo túnel suele
utilizarse cuando al menos uno de los extremos de la VPN es una pasarela VPN (router,
cortafuegos, concentrador).
180
o Carga útil: es la PDU de capa de transporte (modo transporte) o el paquete IP (modo
túnel) protegido mediante cifrado.
o Relleno.
o Longitud de relleno.
o Siguiente cabecera (Next Header): identifica el tipo de cabecera que encapsula ESP.
o Datos de Autenticacion (Authentication Data): longitud variable que contiene el valor
de comprobación de integridad.
El protocolo de gestión de claves automático predeterminado para IPSec se conoce como
ISAKMP/Oalkey y está formado por:
• Protocolo de Determinación de Claves Oakley: es un protocolo de intercambio de claves
basado en el algoritmo Diffie-Hellman.
• ISAKMP (Intertet Security Asociation Key Management Protocol): es un “framework” de
gestión de claves y el soporte de un protocolo especifico, incluyendo formatos para la
negociación de los atributos de seguridad. ISAKMP define los procedimientos y los formatos
de los paquetes para establecer, negociar, modificar y eliminar las asociaciones de
seguridad. Como parte del establecimiento de la SA, ISAKMP define las cargas útiles para
intercambiar durante la generación de calves, así como los datos de autenticación.
OpenVPN: es un “framework” para el establecimiento de VPN basado en software libre.
Ofrece conectividad punto a punto con validación jerárquica de usuarios y host conectados
remotamente. Es una solución multiplataforma que pretende simplificar la configuración de
VPN frente a otras soluciones más difíciles de configurar como IPSec. OpenVPN tiene dos
modos seguros, uno basado en calves estáticas precompartidas y otro en SSL/TLS usando
certificados y claves RSA.
181
TEMA 7 – CIFRADO, FIRMA DIGITAL Y CERTIFICADOS DIGITALES
182
Los cifradores de bloques son los algoritmos de cifrado simétrico más utilizados, dividen
el mensaje original en bloque de igual tamaño que después serán cifrado con la misma
clave. Los algoritmos de este tipo más importantes en la actualidad son:
▪ DES (Data Encryption Standard): diseñado para cifrar y descifrar bloques de datos
de 64 bits con una clave secreta de 56 bits. Un bloque que va a ser cifrado debe
someterse primero a una permutación inicial, posteriormente a un computación
compleja y dependiente de la clave y finalmente, a una permutación inversa a la
permutación inicial.
▪ 3DES (Triple DES): utiliza tres claves y tres ejecuciones del algoritmo, de esta forma
el tamaño efectivo de la clave pasa a ser 168 bits, con tres veces más etapas que
DES utiliza un tamaño de bloque de 64 bits.
▪ AES (Advanced Encryption Standard): capaz de soportar longitudes de clave de 128,
192 y 256 bits y longitud de bloque 128 bits.
▪ IDEA (International Data Encryption Algorithm): algoritmo propuesto como
reemplazo del DES (Data Encryption Standard). Opera con bloques de 64 bits usando
una clave de 128 bits y consiste de ocho transformaciones idénticas (cada una
llamada una ronda) y una transformación de salida (llamada media ronda).
▪ RC5 (Cifrado de Rivest v.5): unidad de cifrado por bloques notable por su
simplicidad. A diferencia de muchos esquemas, RC5 tiene tamaño variable de
bloques (32, 64 o 128 bits), con tamaño de clave (entre 0 y 2040 bits) y número de
vueltas (entre 0 y 255). La combinación sugerida originalmente era: bloques de 64
bits, claves de 128 bits y 12 vueltas.
o Sistemas de cifrado asimétrico o de clave publica:
basada en el uso de dos calves, una clave privada
y otra publica, una de ellas sirve para descifrar los
mensajes que han sido cifrado únicamente con la
otras. Los algoritmos utilizados para cifrar y
descifrar no utilizan operaciones sobre los
patrones de bits, sino que se apoyan en
problemas matemáticos difíciles de resolver. Este
tipo de criptosistemas puede ser utilizado, para
cifrar y descifrar mensajes, intercambiar claves de
sesión y para firmar digitalmente los mensajes.
Ejemplos de sistemas de criptografía publica:
▪ Diffie-Hellman: mecanismo que permite que dos partes se pongan de acuerdo de
forma segura sobre una clave secreta utilizando un canal inseguro, el algoritmo se
basa en la dificultad de calcular logaritmos discretos y se usa generalmente como
medio para acordar calves simétricas que será empleadas para el cifrado de una
sesión.
▪ RSA: es el algoritmo más utilizado en la historia de la criptografía de clave pública.
La clave publica está formada por un numero n, calculando como producto de dos
factores primos muy grandes y un exponente. La clave privada es otro exponente
de tal forma que el cifrado y el descifrado se puede realizar inversamente, la clave
pública y la privada son intercambiables: si se usa cualquier de ellas para cifrar se
deberá utilizar la otra para descifrar.
183
▪ DSA (Digital Signature Algorithm): este algoritmo como su nombre lo indica, sirve
para firmar (autenticar), pero no para cifrar información.
Para asegurar que la clave pública del destinatario es realmente de quien dice ser,
surgen las autoridades de certificación. “Trusted Third Parties”, entidades que
merecen la confianza de otros actores en un escenario de seguridad donde no existe
confianza directa entre las partes involucradas en una cierta transacción. Es
necesaria aun infraestructura de clave publica para cerrar el círculo de confianza.
Esta infraestructura de clave publica consta de una serie de autoridades que se
especializan en papeles concretos:
• Autoridades de certificación (CA o certificación authorities): vinculan la clave
publica a la entidad registrada proporcionado un servicio de identificación.
• Autoridades de registro (RA o registration authorities): ligan entes registrados a
figuras jurídicas, extendiendo la accesibilidad de las CA.
• Autoridades de fechado digital (TSA o time stamping authorities): vinculan un
instante de tiempo a un documento electrónico avalando con su firma la
existencia del documento en el instante referenciado (exactitud temporal de los
documentos electrónicos).
184
2. FIRMA DIGITAL Y CERTIFICADOS DIGITALES
2.1 FIRMA DIGITAL
Es una de las aplicaciones más importantes que posibilita la utilización de la criptografía de clave
pública, es un bloque de caracteres que acompaña a un documento (o fichero) acreditando
quien es su autor (autenticación) y que no ha existido ninguna manipulación posterior de los
datos (integridad) para firmar un documento digital, su autoría queda vinculado al documento
de la firma, dicha firma podrá ser comprobada por cualquier persona que disponga de la clave
pública del autor. La firma se realiza de modo que el software del firmante aplica un algoritmo
hash sobre el texto a firmar (unidireccional, lo cifrado no se puede descifrar), extracto de
longitud ficha y absolutamente específico para ese mensaje. Los algoritmos has más utilizados
para esta función son el MD5 o SHA-1. El extracto conseguido cuya longitud oscila entre 128 y
1690 bits, se somete a continuación al cifrado mediante la clave secreta del autor. El algoritmo
más utilizado en el procedimiento de encriptación asimétrica es el RSA, obtenemos un extracto
final cifrado con la clave privada del autor el cual se añadirá al final del texto o mensaje para que
se pueda verificar la autoría e integridad del documento por aquella persona interesada que
disponga de la calve pública del autor. La firma digital aporta la identificación del firmante,
integridad del contenido firmado y no repudio del firmante.
2.2 CERTIFICADOS DIGITALES
Es un documento que permite vincular una clave pública a una entidad ya sea un usuario, una
organización… Dos entidades que no se conocen previamente pueden intercambiar sus claves
públicas. Al comienzo de una comunicación, el emisor envía su clave publica dentro de un
certificado digital al receptor, que al recibir el certificado debería verificar su validez, que la clave
publica pertenece realmente a la entidad con la que está vinculada.
Public Key Infrastructure (PKI): conjunto de componentes y políticas necearías para crear,
gestionar y revocar certificados digitales que pueden ser utilizados para autenticar cualquier
aplicación, persona, proceso u organización de una red de empresa, extranet o Internet. Está
formada por cinco actores principales:
• Autoridades de Certificación (CA): responsables de emitir y revocar certificados digitales.
• Autoridades de Registro (RA): verifican la unión entre las claves públicas y la identidad de
los propietarios mediante un “proceso de registro”.
• Usuarios certificados o “suscriptores”: personas, organización o cualquier entidad que
utilice el certificado proporcionado por un CA
• Clientes: poseen un documento firmado de un usuario certificado y desean comprobar su
validez.
• Repositorio: directorio central donde se almacenan los certificados.
185
TEMA 8 – CPD, CERES Y CCN-CERT
186
Las medidas a tomar dependerán del nivel de fiabilidad requerido y de los costos, mantener un
equilibrio sopesando el coste que tendría para la empresa un “apagón”. Para ayudar a estimar
el nivel de fiabilidad de un CPD, la norma TIA-492 desarrolla cuatro niveles denominados Tier: el
nivel I brinda la menor fiabilidad y el IV, la mayor. Se crearon para describir consistentemente la
infraestructura requerida para mantener las operaciones de los centros de datos, no las
características de sistemas individuales o subsistemas. El grado de la topología Tier para un sitio
está limitado por el grado del subsistema más débil que afectara a las operaciones del sitio.
• Tier I (CPD Básico): un CPD Tier I puede admitir interrupciones tanto planeadas como no
planeadas. Cuenta con sistemas de aire acondicionado y distribución de energía, pero puede
no tener piso técnico, UPS o generador eléctrico. La carga máxima de los sistemas en
situaciones críticas puede llegar al 100%, el CPD deberá estar fuera de servicio al menos una
vez al año por razones de mantenimiento y o reparaciones. Errores de operación fo fallas en
los componentes de su infraestructura causaran la interrupción del CPD.
• Tier II (Componentes Redundantes): un CPD con componentes redundantes son ligeramente
menos susceptibles a interrupciones, tanto planeadas como las no planeadas. Cuentan con
suelo técnico, UPS y generadores eléctricos, conectado a una sola línea de distribución
eléctrica, existe al menos un duplicado de cada componente de la infraestructura. La carga
máxima de los sistemas en situaciones críticas es del 100%. El mantenimiento en la línea de
distribución eléctrica o en otros componentes, pueden causar una interrupción del servicio.
• Tier III (Mantenimiento Concurrente): permiten realizar cualquier actividad planeada sobre
cualquier componente de la infraestructura sin interrupciones en la operación, incluyen
mantenimiento preventivo, reparaciones o reemplazo de componentes, agregar o eliminar
componentes, realizar pruebas de sistemas o subsistemas, entre otros. Suficiente capacidad
y doble línea de distribución de los componentes, actividades no planeadas como errores
de operación o fallos espontaneas den la infraestructura pueden todavía causar una
interrupción del CPD. La carga máxima en los sistemas en situaciones críticas es de 90%.
• Tier IV (Tolerante a Fallos): provee capacidad para realizar cualquier actividad planeada sin
interrupciones en el servicio, la funcionalidad tolerante a fallos le permite a la
infraestructura continúa operando aun ante un evento critico no planeado. Esto requiere
dos líneas de distribución simultáneamente activas (UPS independientes). La carga máxima
de los sistemas de situaciones críticas des de 90%. Persiste un nivel de exposición a fallos,
por el inicio una alarma de incendio o porque una persona inicie un procedimiento de
apagado de emergencia (EPO).
CSIRT (Computer Security Incident Response Team): está formado por las personas que cuentan
con la experiencia y la formación para actuar y gestionar las incidencia y desastres que pudieran
afectar a la seguridad informática de una organización. Definen una guía de actuación con los
procedimientos y acciones necesarios para restauración rápida, eficiente y segura de la
capacidad de procesamiento informático y de comunicaciones de la organización, así como para
la recuperación de los datos dañados o destruidos. Debe proporcionar una respuesta
sistemática ante los incidentes de seguridad, permitirá minimizar los daos ocasionados y facilitar
la recuperación del sistema afectado. El “Plan de Respuesta a Incidentes” debe definir cómo se
ha producido el incidente (el tipo de ataque, que métodos ha empleado…), utilizando una matriz
de diagnóstico, realiza una valoración inicio de los daños y de sus posibles consecuencias,
establecer un orden de prioridades en las actividades que lleva a cabo el equipo de respuesta.
187
2. SISTEMAS ALIMENTACION ININTERRUMPIDA
Es un dispositivo que puede proporcionar energía eléctrica a todos los dispositivos que tenga
conectados, tras un corte en la red de alimentación. Se basa en el uso de baterías recargables,
el tiempo de interrupción es limitado, proporcional a la capacidad de las baterías, permiten un
apagado “ordenado” de los dispositivos para evitar daños en discos os sistemas de ficheros,
tienen filtro de subidas y picos de tensión y pueden eliminar problemas de frecuencia. Existirán
SAIs centralizadas en el CPD para dar alimentación eléctrica durante un periodo corto de tiempo,
equipos siguen funcionando más allá de este tiempo de paradas, será necesario utilizar “grupos
electrógenos”, existen 3 tipos de SAI:
• SAI Offline: son económicos (equipos no críticos), no disponen de estabilizador de corriente,
solamente generan tensión en caso de corte en el suministro eléctrico…
• SAI Inline: incorporan un estabilizador de corriente, solamente generan tensión en caso de
corte…
• SAI Online: diseñado para proteger sistemas críticos, siempre generan tensión eléctrica,
independientemente de la entrada…
7.5. CCN-CERT
Dentro de las funciones del Centro Criptológico Nacional se encuentra la coordinación,
promoción y desarrollo de soluciones que garanticen la seguridad de los sistemas y contribuyan
a una mejor gestión de la ciberseguridad en cualquier organización y permitan una mejor
defensa frente a los ciberataques. Entre estas soluciones se encuentran las siguientes:
• AMPARO (Asistente de Implantación de Seguridad y Conformidad): Actúa como punto de
encuentro entre los actores participantes en el proceso de implantación de seguridad y
conformidad: organismos, entidades de certificación, organismos de auditoría y entidades
supervisoras de seguridad.
• ANA (Automatización y Normalización de Auditorías): sistema de auditoría continua.
• CARMEN (Defensa de ataques avanzados/APT): solución desarrollada con el objetivo de
identificar el compromiso de la red de una organización por parte de amenazas persistentes
avanzadas (APT).
• CCNDroid: Herramientas de seguridad desarrolladas por el CCN-CERT para dispositivos con
sistema operativo Android.
• CLARA (Auditoría de Cumplimiento ENS/STIC en Sistemas Windows): Herramienta para
analizar las características de seguridad técnicas por el que se regula el Esquema Nacional
de Seguridad.
• CLAUDIA (Herramienta para la detección de amenazas complejas en el puesto de
usuario): es una solución de endpoint integrada con la herramienta “Carmen” que permite
tener una visión más completa de lo que ocurre dentro de una red, siendo su objetivo
principal la detección de malware complejo y movimiento lateral relacionado con APT.
• MicroCLAUDIA (Protección contra Ransomware): proporciona protección contra código
dañino de tipo ransomware a los equipos de un organismo.
• EMMA (Visibilidad y control sobre la red): proporciona control de acceso a las
infraestructuras de red, es desarrollada para agilizar la visualización de activos en una red,
su autenticación y segregación, así como la automatización de auditorías de seguridad de la
infraestructura.
188
• GLORIA (Gestor de logs para responder ante incidentes y amenazas): plataforma para la
gestión de incidentes y amenazas de ciberseguridad a través de técnicas de correlación
compleja de eventos.
• INES (Informe de Estado de Seguridad en el ENS): plataforma telemática, a la que puede
acceder las distintas Administraciones Públicas un conocimiento más rápido e intuitivo de
su nivel de adecuación al ENS y del estado de seguridad de sus sistemas.
• LORETO (almacenamiento en la nube): Herramienta de uso compartido en la nube para el
almacenamiento virtual de información que permite el intercambio de los mismos.
• LUCIA ((Listado Unificado de Coordinación de Incidentes y Amenazas): con ella se pretende
mejorar la coordinación entre el CERT y los distintos organismos y organizaciones con las
que colabora mediante un sistema de ticketing para la gestión de ciberincidentes.
• MARIA (plataforma multiantivirus en tiempo real): Herramienta de detección desarrollada
para el análisis estático de código dañino a través de múltiples motores antivirus y, permite
analizar en tiempo real cualquier tipo de fichero, obteniendo la detección de virus, gusanos,
troyanos y todo tipo de código dañino.
• MARTA (Sistema para el análisis dinámico de código dañino): plataforma avanzada de multi-
sandboxing dedicada al análisis automatizado de múltiples tipos de ficheros que pudieran
tener un comportamiento malicioso. A partir de la información que Marta recoge, un
analista podrá determinar qué tipo de funcionalidad y qué implicaciones tiene para su
organización.
• MONICA (Gestión de eventos e información de seguridad): es un sistema automatizado de
gestión de información y eventos de seguridad que recoge en una única plataforma toda la
información existente sobre amenazas potenciales, permitiendo no solo reaccionar ante los
ataques, sino adelantarse a ellos para remediarlos antes de que sucedan.
• PILAR (Análisis y Gestión de Riesgos): conjunto de herramientas EAR (Entorno de Análisis
de Riesgos) cuya función es el análisis y la gestión de riesgos de un sistema de
información siguiendo la metodología Magerit (Metodología de Análisis y Gestión de
Riesgos de los Sistemas de Información).
• REYES (Intercambio de Información de Ciberamenazas): agilizar la labor de análisis de
ciberincidentes y compartir información de ciberamenazas, puede realizarse cualquier
investigación de forma rápida y sencilla, accediendo a la información más valiosa sobre
ciberincidentes, con información contextualizada y correlada con las principales fuentes de
información.
• ROCIO (Auditoría de configuraciones de dispositivos de red): solución para la automatización
de la verificacion del nivel de seguridad y las tareas básicas realizadas por un auditor de
seguridad sobre equipos de comunicaciones: enrutadores, conmutadores y cortafuegos.
• VANESA (Grabaciones y emisiones de vídeo en streaming): solución para facilitar la tarea de
formación y sensibilización, a través de esta, se pretende reducir los desplazamientos, tanto
en los cursos de formación, como en las reuniones de seguimiento de cualquier proyecto.
CERES: iniciativa puesta en marcha por la Administración, consiste en establecer una entidad
pública de certificación que permita autentificar y garantizar la confidencialidad de las
comunicaciones entre ciudadanos, empresas u otras instituciones ya administración públicas a
través de las redes abiertas de comunicación.
189









