Unidad IV Almacenamiento de Datos M.C. Juan Carlos Olivares Rojas Temario 4.1. Nombres g 4.2. Criptografía 4.3. Protección 4.4. Seguridad 4.5. Archivos distribuidos 4.6. Duplicidad de datos 4.7. Fallas de partición 4.8. Beneficios de la duplicidad Temario sugerido g 4.1. Archivos distribuidos (NFS) 4.2. Duplicidad de datos 4.3. Fallas de partición 4.4. Beneficios de la duplicidad 4.5. Nombres 4.6. Criptografía 4.7. Protección 4.8. Seguridad 4.1. Archivos distribuidos • Parte esencial de cualquier sistema corresponde con el almacenamiento de la información, esto se logra a través de un sistema de archivos. • Los archivos son las unidades lógicas para representar la información, y en un sistema distribuido los archivos pueden estar en prácticamente cualquier parte. Archivos distribuidos • Un sistema de archivos distribuidos va más allá de un sistema de múltiples archivos multiusuarios. • En general un servidor de archivos provee los servicios de archivo y de directorios. • Las características de archivos distribuidos son: un servidor de Archivos distribuidos • Transparencia de nombres (localización) • Los modelos de acceso a los archivos pueden ser remoto o de carga/descarga. • El nombre de los recursos puede ser /máquina/ruta o máquina:ruta Archivos distribuidos • Algunas características que comparten los sistemas de archivos son: • En general son pequeños (<10 KB) • La lectura es más común que la escritura • La lectura y escritura son secuenciales, es raro el acceso aleatorio • La mayoría de los archivos tiene una vida corta. Archivos distribuidos • Es poco usual compartir archivos • Los procesos promedio utilizan archivos pocos • Se recomienda el uso de cachés para evitar problemas de escritura simultánea. NFS • Network File System fue creado por Sun para tener un sistema de archivos distribuidos en entornos Unix. Actualmente muchos sistemas operativos no Unix lo soportan. • NFS basa su funcionamiento en RPC para la operación de archivos de manera remota y utiliza XDR para representar datos independientes de la plataforma NFS • El núcleo de la arquitectura NFS corresponde al VFS (Virtual File System), el cual se encarga de los procedimientos sobre los archivos. • VFS está formado por una estructura llamada vnode (nodo virtual), los cuales son únicos para cada archivo e independiente de los ii-node node o nodos físicos del sistema. NFS • Todo directorio tiene referencia a un sistema de archivo padre y al sistema de archivos del cual se encuentra montado. • NFS utiliza un sistema de caché para soportar operaciones básicas del mantenimiento de los vnodes así como los permisos. • NFS es un servidor sin estado. NFS • La lista de directorios que se exportan se encuentran en /etc/exports • Se pueden montar directorios NFS de manera automática (depende de las versiones *X) • NFS no es el único sistema de archivos remotos existen otros como RFS, remotos, RFS Coda, Coda etc. etc NFS • Basa su esquema de permisos igual que el sistema de archivos en Unix. Unix Puede auxiliarse de NIS (Network Information Service). Service) • Con el comando mount se puede acceder a un directorio remoto: mount serv1:/dir/h /home • La versión más actual de NFS es la 4.0 NFS • Lo primero es cerciorarse que NFS se está ejecutando, esto se hace con el comando rpcinfo –p • Deben estar los procesos nfs y mountd • Para inicializar el servicio se ocupa nfs start desde la línea de comandos y nfs stop para detener el servicio. servicio NFS • En Linux NFS se compone de 4 demonios principales: rpc.statd, rpc.quotad, rpc.mountd y rpc.nfsd • Sintaxis del archivo /etc/exports • /export/home denon(rw) pepe(rw) \ • Unixadmin(rw, no_root_squash) NFS • En lugar de nombres de dominio se pueden dar direcciones IP y de red • /usr/local 192.168.0.0/255.255.255.0(rw) • Una vez establecido los directorios a exportar se debe hacer uso del comando exportar, exportfs –a NFS • Se recomienda /etc/host.deny editar /etc/host.allow • Se recomienda editar /etc/fstab automontar una unidad remota y para • carlitros:/home /home/carlos nfs rw,bg,intr, rw bg intr soft 0 0 4.2. Duplicidad p de datos • Se utiliza la duplicidad de los datos para tener sistemas tolerantes a fallos, fallos de más fácil acceso, entre otras ventajas. • El principal problema que presenta la duplicación de los datos tiene que ver con la transparencia de almacenamiento. • Otro problema importante consiste en la consistencia de la información. Duplicidad p de datos • Un sistema de archivos distribuidos se caracteriza por tener un servidor de réplicas. • El servidor de réplicas debe contener un protocolo de actualización eficiente (e.g., no se debe enviar un mensaje de actualización a todas las copias). Duplicidad p de datos • Se manejan esquemas de actualización de réplicas primarias y secundarias, basado en quorum, entre otros mecanismo. • La duplicidad de los datos se puede hacer a nivel físico como los sistemas RAID. • Las cachés son un ejemplo de duplicidad de datos que traen grandes beneficios. beneficios 4.3. Fallas de partición p • Son las fallas de comunicación más importantes ya que fragmentan la red en pequeñas áreas llamadas particiones haciendo imposible el manejo de la consistencia de los datos. • Son difíciles de detectar ya que no son visibles para todos los nodos de la red. Fallas de partición p • Las fallas de partición pueden ser muy comunes por lo que los sistemas de archivos deben tener un mecanismo que permita reintegrar los datos una vez eliminada la partición. • Esta idea atraído como consecuencia el uso de sistemas de archivos con soporte a desconexión, los cuales son útiles en entornos de cómputo móvil. 4.4. Beneficios de la duplicidad p • De los beneficios de la duplicidad ya se ha comentado mucho al respecto en láminas anteriores. A continuación se destacan los principales beneficios: • Mejor desempeño (tiempo de respuesta) • Alta disponibilidad • Tolerancia a fallas 4.5. Nombres • En los sistemas distribuidos los nombres hacen referencia a cualquier entidad, ya sea un archivo, un periférico, un proceso, etc. que se pueden encontrar en máquinas remotas. • Los servidores de nombres ayudan a localizar fácilmente y hacer transparente el acceso a los recursos (transparencia de localización). Nombres • Los servidores de nombre ayudan a simplificar el acceso a los recursos al tener un identificador fácil de recordar como un nombre propio, a tener una dirección numérica. • Uno de los servicios de nombres más famosos es DNS (Domain Name Service) el cual mapea direcciones IP a nombres alfanuméricos. Nombres • DNS se originó para sustituir el viejo esquema de d almacenar l l los nombres b d las de l máquinas en un archivo (/etc/hosts). • Actualmente existen diversas variantes de DNS como el DDNS o DNS dinámico. • Procesos como portmap, rmiregistry, orbd y UDDI se les considera servidores de nombres. Nombres • Las operaciones más comunes con los servidores de nombres son la resolución (obtención del nombre real a partir del abstracto) y la resolución inversa (obtencion del nombre abstracto a partir del real). • Se puede utilizar el comando lookup o dig para hacer la resolución de nombres en sistemas DNS. Nombres • Los nombres deben ser únicos y mantener una nomenclatura estándar. estándar • En el sistema DNS se utiliza dominios raiz (.com, .net, .org, etc.) y dominios locales (.mx, .it, .cl, etc.) Esto forma una jerarquía de dominios y subdominios. • Los recursos pueden ser movibles, movibles por lo que el servicio de nombres debe actualizarse Nombres • Se recomienda que los servidores de nombres sean jerárquicos, jerárquicos descentralizados, descentralizados con duplicación de contenidos y redundantes. redundantes • En general, el esquema de nombres de Internet viene dado por las URI: • Protocolo://maquina Protocolo://maquina.dominio/recurso?param dominio/recurso?param entros 4.6. Criptografía p g • Viene del griego crypto que significa oculto y grafía escritura. escritura • L La criptografía i t fí es ell arte t de d cifrar if l la información. • El criptoanálisis p es el arte de descifrar un mensaje. • Criptografía y criptoanálisis van de la mano. Criptografía p g • Los primeros métodos de cifrado fueron el de transposición (cambiar el orden de las letras) y el de sustitución (cambiar una letra por otra). • En la actualidad los métodos de cifrados son más robustos pero no indescifrables. Se trata de que el obtener el mensaje en claro sea más costoso que obtener el original. Criptografía p g • Los métodos actuales de cifrado basan la codificación d e la información en base a una llave, dicha llave puede ser simétrica o asimétrica. asimétrica • Algunos algoritmos importantes son: de cifrado • DES (Data Encryption System) creado por IBM en 1974 utilizando claves de 64. Criptografía p g • En 1999 DES fue roto, por lo que ya no se utiliza en sistemas de alta seguridad. seguridad • L La firma fi di it l es una clave digital l muy grande d utilizada para cifrar información. • Otro algoritmo g de cifrado importante p es RSA (Rivest-Shamir-Adleman). • El algoritmo de cifrado más robusto es AES. Criptografía p g • AES (Advanced Encryption System) fue presentado t d en 2001, 2001 utiliza tili ell algoritmo l it RIJNDAEL con llaves de 128, 192 y 256 bits. S espera tenga Se t una vida id útil de d 20 años. ñ • Existen variaciones de los algoritmos como g de libre distribución 3DES,, o algoritmos como PGP (Pretty Good Privacy) • RSA basa sus llaves en números primos. 4.7. Protección • La protección de la información en cualquier sistema sea distribuido o no resulta vital. vital • Para la protección se necesita plantearse metodologías adecuadas que garanticen una mayor protección. • Una de las mejoras maneras de tener protegido un sistema es a través de la autenticación y autorización de usuarios. Protección • La autenticación generalmente se da a través de esquemas de contraseñas, las cuales si no cuentan con una política robusta de generación y mantenimiento se vuelven fácilmente vulnerables. • Un esquema de autenticación seguro es kerberos, el cual se utiliza para autenticar el uso de servicios como NFS, etc. Protección • Kerberos se basa en un esquema de boletos entregados para la autenticación y de dos llaves secretas una dada por kerberos y otra conocida por los usuarios para entrar al sistema. • Un buen mecanismo de protección debe evitar que usuarios roben ciclos de CPUs a otros, tener más derechos que otros sin habercelos otorgado previamente, etc. Protección • Se debe garantizar la integridad y provacidad de los datos de los usuarios. usuarios • Se debe proteger la cesión de derechos de algún recurso en el sistema. • El esquema básico de protección radica en una matriz de acceso, en la cual se listan los recursos y las actividades que se pueden realizar sobre él. Protección • Las matrices de acceso no son tan eficientes ya que dependen de la cantidad de recursos, recursos usuarios y accesos. • Un mejor esquema son las lista de control de acceso en las cuales se puede especificar el acceso a cada recurso de una mejor forma. • Un mejor esquema de protección es el acceso a través de roles 4.8. Seguridad g • Existen muchos riesgos en los sistemas distribuidos y en general en cualquier sistema basado en red, por ejemplo: • • • • • Virus y troyanos Entrada no autorizada a sistemas Destrucción o pérdida de información Alteración de transacciones Etcétera Seguridad g • Los principales ataques y vulnerabilidades de seguridad son los siguientes: • • • • Ingeniería social Spoofing (suplantación) Denegación de servicio Uso de sniffers Seguridad g • Algunas recomendaciones para mejorar la seguridad id d de d un sistema i t son: • Revisar patrones de acceso y p a cuentas de usuarios y comportamiento servicios. • Verificar que las políticas del sistema no hayan cambiado, cambiado de tal forma que no se permitan muchos puertos abiertos, etc. Seguridad g • Se debe hacer especial énfasis en la seguridad física por que muchos problemas de seguridad vienen desde el interior. • Las políticas de seguridad deben ser independientes de la tecnología empleada. • En general existen dos tipos de ataque: pasivos y activos, activos siendo éstos últimos los más perjudiciales. Seguridad g • Una buena forma de otorgar seguridad a los sistemas distribuidos es a través de un Firewall, el cual se encarga de autorizar o no el acceso a determinados recursos en base algunas reglas definidas. • Otro mecanismo de seguridad son los proxys que permiten centralizar el tráfico de cierto servicio pudiendo denegar el acceso o bien limitarlo para los diferentes usuarios. Seguridad g • La implantación de políticas de seguridad puede hacerse desde dispositivos de red como conmutadores y encaminadores. • La seguridad es un área con un crecimiento exponencial en los últimos años. Se recomienda basar las políticas de seguridad en estándares internacionales de tecnologías de la información como ITIL, COBIT, etc. Referencias • Tanenbaum, Andrew (1996). Sistemas Operativos Distribuidos. México, Prentice Hall. • Shah, Steve (2001). Manual de administración de Linux. Capítulo 18: Sistema de archivos de red (NFS), pp 375375 386. España, Osborne McGraw-Hill. ¿ ¿Preguntas? g