UNIVERSIDAD TÉCNICA DE AMBATO FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL CARRERA DE INGENIERÍA EN SISTEMAS COMPUTACIONALES E INFORMÁTICOS PERÍODO ACADÉMICO: MARZO 2017 / SEPTIEMBRE 2017
I.
PORTADA
II. UNIVERSIDAD UNIVERSIDAD TÉCNICA TÉCNICA DE AMBATO AMB ATO Facult Facult ad de Ingeniería Ingeniería en Sist Sist emas, emas, Electróni ca e Industr ial “Proyecto Académico de Fin de Semestre”
Título:
Sistemas de Archivos NTF y NTFS
Carrera:
Ingeniería en Sistemas Computacionales e Informáticos
Área Ár ea Académ Ac adémic ica: a: Línea de Investigació n:
Línea de la Carrera
Nivel y Paralelo:
Tercero “A”
Alum Al um nos no s part p art icip ic ip antes ant es :
Alexis Israel Palate Amaguaña Bryan David Toalumbo Rodríguez
Módulo y Docente: III.
Sistemas Operativos Ing. Franklin Mayorga
INFORME DEL PROYECTO
1. PP 2. YY 2.1 Títul Títul o Sistemas de Archivos NTF y NTFS
2.2 2.2 Objetivos •
Investigar sobre el manejo de sistema de archivos
•
Conocer el funcionamiento del sistema sistema de de archivos archivos NFS y NTFS
•
Aplicar la estructura de sistema de archivos NFS y NTFS
2.3 Resu Resumen men El presente trabajo de investigación tiene como finalidad conocer el funcionamiento del sistema de archivos NFS (Network File System) y NTFS Primero describiremos al sistema de archivos de redes, estas han desempeñado un papel importante en LINUX y UNIX en general; el sistema de archivos NTF (Network File System) de Sun Microsystems, que se utiliza en todos los sistemas modernos de Linux para unir los sistemas de archivos en computadoras separadas en un todo lógico.
UNIVERSIDAD TÉCNICA DE AMBATO FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL CARRERA DE INGENIERÍA EN SISTEMAS COMPUTACIONALES E INFORMÁTICOS PERÍODO ACADÉMICO: MARZO 2017 / SEPTIEMBRE 2017
Segundo se hablará del sistema de archivos NTFS (NT File System) que se desarrolló específicamente para la versión NT de Windows, siendo esta un sistema de archivos moderno múltiples características modernas e innovaciones en el diseño.
2.4 Palabras clave: cl ave: Sistema de archivos, redes, NFS, Windows NT, NTFS, MFT.
2.5 2.5 Introducci Introd ucci ón Un Sistema de archivos de red (NFS) permite a los hosts remotos montar sistemas de archivos sobre la red e interactuar con esos sistemas de archivos como si estuvieran montados localmente. Por ejemplo en un salón de clase el maestro puede interactuar con sus alumnos, intercambiando información de una manera confidencial y segura. NFS proporciona este servicio siguiendo la estructura cliente-servidor. El servidor NFS comparte una serie de directorios seleccionados con unas condiciones de seguridad concretas. El cliente NFS, si está autorizado para ello, puede 'montar' dichos directorios en su propio sistema de archivos pudiendo acceder a los archivos como si fueran locales. El montaje lo puede realizar en secuencia de arranque del equipo o cuando lo necesite. De esta forma profesor y alumnos pueden compartir directorios, con las restricciones adecuadas, y pueden intercambiar archivos dentro de la red de área local configurada en el aula informática. Esta forma de trabajar es válida para entornos Unix/Linux. De momento NFS no permite la interoperabilidad con determinados sistemas de archivos Windows. Para poder trabajar con ciertos sistemas de archivos de red en plataformas mixtas Windows/Linux se ha de utilizar el antiguo protocolo SMB, hoy llamado CIFS. [1] Revisando la historia del sistema de archivos NTFS, encontramos que es un sistema de archivos diseñado e implementado por Microsoft, el cual surge como una necesidad para solucionar las fallas de seguridad, desempeño y confiabilidad que el sistema de archivos FAT poseía. [2]
UNIVERSIDAD TÉCNICA DE AMBATO FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL CARRERA DE INGENIERÍA EN SISTEMAS COMPUTACIONALES E INFORMÁTICOS PERÍODO ACADÉMICO: MARZO 2017 / SEPTIEMBRE 2017
El sistema de archivos NTFS es muy grande y sofisticado, que se desarrolló como una alternativa para el sistema de archivos HPFS que se había desarrollado para OS/2. [3]
2.6 Materiales y Metodol Metod ología ogía Marco Marco teórico ¿Qué es NFS? [1] Las siglas NFS significan Sistema de Archivos de Red (Network File System) y fue desarrollado por SUN Microsystems en 1984. Su función en una red es permitir que un equipo GNU/Linux pueda montar y trabajar con un sistema de archivos de otro equipo de la red como si fuera local. Cuando hablamos de sistema de archivos nos estamos refiriendo a las diferentes formas de que disponen los sistemas operativos de estructurar su información sobre los dispositivos físicos. El servicio NFS utiliza las llamadas a procedimientos remotos basadas en el protocolo RPC (Remote Procedure Call) que permite desde un equipo (cliente) ejecutar código ubicado en otro equipo remoto (servidor) mediante el establecimiento de sockets (IP + puerto) entre ambas. Aunque al servicio se le suele conocer con el nombre NFS, realmente NFS es un protocolo de nivel de Aplicación y por debajo, el protocolo subyacente que utiliza NFS son las Llamadas a Procedimientos Remotos (RPC) de nivel de Sesión, también utiliza TCP/UDP en el nivel Transporte e IP en el nivel de Red. NFS es un protocolo sin memoria (state-less) en algunas de sus versiones. Es decir, el servidor no recuerda las solicitudes anteriores. Por tanto, cada llamada a un procedimiento contiene toda la información necesaria para su finalización. Si el servidor NFS falla, el sistema cliente repetirá las solicitudes de NFS hasta que obtenga una respuesta. Además, el servidor no realiza tareas de recuperación frente a fallos.
¿Cuándo ¿Cuándo necesitamos NFS? NFS? [1] Realmente los diferentes escenarios en los que se hace necesaria la compartición de archivos son muy amplios. Por ejemplo: El profesor quiere compartir con sus alumnos en modo lectura los ejercicios que deben realizar sus alumnos. NFS puede incluir los archivos
UNIVERSIDAD TÉCNICA DE AMBATO FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL CARRERA DE INGENIERÍA EN SISTEMAS COMPUTACIONALES E INFORMÁTICOS PERÍODO ACADÉMICO: MARZO 2017 / SEPTIEMBRE 2017
correspondientes en un directorio que exportará con permiso de lectura y al que los alumnos podrán acceder. Un grupo de alumnos está realizando un trabajo y deben compartir una serie de archivos y trabajar sobre ellos. NFS permite crear un directorio en el servidor y se exporta a todas las máquinas/usuarios que colaboran en el trabajo. En un entorno de aula informática en la que se trabaja con usuarios de red y se quieren tener centralizados los directorios home de todos ellos. NFS permite exportar y montar estos directorios /home de cada alumno de forma transparente. Estamos en un entorno de aula en el que las máquinas de los alumnos disponen de poca capacidad y necesitan trabajar con aplicaciones que 'no caben' localmente. NFS permite exportar los directorios que contienen estas aplicaciones desde el servidor y los alumnos podrán ejecutarlas en sus máquinas. El administrador del aula necesita que en su aula todas las máquinas tengan el mismo software y con idéntica configuración. NFS permite exportar del servidor el directorio que contiene el software requerido y el directorio que contiene las configuraciones correspondientes. Esto mismo puede servir para hacer instalaciones completas de sistemas operativos por la red si los equipos carecen de unidades de CD-ROM/DVD.
Versiones Versio nes de NFS [1] Las versiones de NFS más importantes i mportantes son NFSv2 (RFC 1094), NFSv3 (RFC 1813) y NFSv4 (RFC 3530). La versión 2 de NFS es la más extendida y soportada por los sistemas operativos, también es la más antigua e insegura. La versión 3 es más potente pero no es completamente compatible con clientes NFSv2. Ambas versiones pueden trabajar tanto con TCP como UDP como protocolo de transporte creando conexiones de red entre el cliente y el servidor sin supervisión (state-less). La ventaja de utilizar UDP es que, al ser una conexión desatendida, se minimiza el tráfico de red, pero si el servidor NFS cayera por cualquier circunstancia, los clientes NFS seguirían enviando peticiones al servidor produciendo el efecto contrario, que es la saturación de la red.
UNIVERSIDAD TÉCNICA DE AMBATO FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL CARRERA DE INGENIERÍA EN SISTEMAS COMPUTACIONALES E INFORMÁTICOS PERÍODO ACADÉMICO: MARZO 2017 / SEPTIEMBRE 2017
En general las versiones 2 y 3 de NFS permiten controlar la exportación y montaje de sistemas de archivos en función del equipo que hace la solicitud, pero no del usuario. Es decir no se contempla un control de acceso al sistema de archivos por usuario. Sólo para los equipos. Esto implica que si un sistema de archivos es exportado desde el servidor NFS, cualquier usuario de un equipo remoto cliente NFS podría acceder a él. Los únicos mecanismos de seguridad que quedan en este caso son los permisos de acceso (sólo lectura) o utilizar un usuario y grupo únicamente. Lógicamente esto limita bastante la idea de compartición. En el caso de la versión 4 de NFS estos problemas de seguridad desaparecen pero, a cambio, tiene unos requerimientos de configuración y servicios adicionales mucho más importantes. Por ejemplo, en la versión 4 la utilización de mecanismos para la autenticación de los usuarios es obligatoria. Para ello y en función del tipo de seguridad seleccionada, se requiere la utilización del servicio Kerberos cuya misión será funcionar como servidor de entrega de tickets (KDC) y que debe estar configurado y funcionando correctamente antes de configurar el servidor NFSv4. Este requerimiento proporciona seguridad al servicio NFS a cambio de incluir mayor complejidad a su configuración y puesta a punto. punto . Otra característica importante de NFS4 es la utilización de ACLs (Listas de Control de Acceso) al estilo Windows y que no son soportadas por las versiones 2 y 3 de NFS. Cuando hablamos de ACLs nos referimos a los permisos o derechos de acceso que tiene cada usuario sobre un archivo o directorio y que vienen especificados a modo de listas editables por el administrador del sistema.
Seguridad [1] Si queremos más seguridad en el servicio NFS debemos tener en cuenta ciertos detalles como: Utilizar los comodines (metacaracteres) lo menos posible, ya que podemos dar acceso a más equipos de los que estamos pensando. Utilizar reglas de Iptables (cortafuegos) para limitar el acceso a los puertos utilizados por los demonios del servicio NFS. El uso de los archivos /etc/hosts.allow y /etc/hosts.deny no es obligatorio pero es preferible configurarlos para garantizar la seguridad de los datos.
UNIVERSIDAD TÉCNICA DE AMBATO FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL CARRERA DE INGENIERÍA EN SISTEMAS COMPUTACIONALES E INFORMÁTICOS PERÍODO ACADÉMICO: MARZO 2017 / SEPTIEMBRE 2017
Exportar sistemas de archivos de lectura (ro) siempre que sea posible. El dueño de los archivos y directorios exportados que sea root ya que es posible mapear el UID de root al del usuario nobody. Intentar que los archivos exportados no tengan permiso de escritura para el grupo (ACL). Las versiones 2 y 3 de NFS no disponen de control de acceso para los usuarios concretos. En ellas, cuando un sistema de archivos es exportado, cualquier usuario en cualquier máquina remota conectada al servidor NFS puede acceder a los datos compartidos. El único mecanismo de seguridad que tienen es utilizar el acceso de sólo lectura y reducir todos los usuarios a uno común cuyo UID y GID especificamos. Si no se utiliza la opción de exportación squash, cualquier usuario root en el equipo cliente puede convertirse en un usuario con acceso privilegiado simplemente ejecutando la orden: su - . La versión más segura de NFS es la 4.
Sistema de archi vos NTFS NTFS Un archivo NTFS no es sólo una secuencia lineal de bytes, como los archivos de FAT-32 y UNIX, en vez de ello, un archivo consiste en varios atributos, cada uno de los cuales se representa en un flujo de bytes. Cada flujo tiene su propio tamaño y se puede bloquear en forma independiente a los demás flujos. [3] Aquí los nombres de los sistemas de archivos individuales están limitados a 255 caracteres y las rutas completas a 32,767 caracteres, estos nombres están escritos en Unicode y admite por completo los nombres sensibles a mayúsculas y minúsculas. [3] NTFS es un sistema de archivos jerárquico, similar al sistema de archivos de UNIX. Sin embargo, separador de los nombres es “\” en vez de “/”, un fósil heredado de los requerimientos de compatibilidad con CP/M cuando se creó MS-DOS. [3]
Implementación del sis tema de archivos archivo s NT NTFS se lo desarrollo de manera específica para Windows NT como una alternativa para el sistema de archivos HPFS que se lo había desarrollado para OS/2. Su diseño original se lo realizo a bordo de un velero en Puget Sound. [3]
UNIVERSIDAD TÉCNICA DE AMBATO FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL CARRERA DE INGENIERÍA EN SISTEMAS COMPUTACIONALES E INFORMÁTICOS PERÍODO ACADÉMICO: MARZO 2017 / SEPTIEMBRE 2017
Estructura del sist ema de archivos Cada volumen (partición en el disco) de NTFS contiene archivos, directorios, mapas de bits y otras estructuras de datos. Cada volumen se organiza como una secuencia lineal de bloques (clústeres en la terminología de Microsoft), en donde el tamaño del boque está fijo para cada volumen y varía entre 512 bytes y 64 KB, dependiendo del tamaño del volumen. [3] Su principal estructura de datos en cada volumen es la tabla maestra de archivos o MFT, y cada registro de la MTF describe a un archivo o directorio es decir contiene información detallada en los archivos. [3] [4]. Específicamente contiene los atributos del archivo como su nombre y las etiquetas de hora, además de la lista de direcciones en el disco en donde se encuentran sus bloques [3]. En cuanto al rendimiento, el acceso a los archivos en una partición NTFS es más rápido que en una partición de tipo FAT, ya que usa un árbol binario de alto rendimiento para localizar a los archivos. [4]
La tabla de arc hivos maestra (MFT) (MFT) La misma MTF es un archivo, y como tal se puede colocar en cualquier parte dentro del volumen, con lo cual se elimina el problema de sectores defectuosos en la primera pista. Además, este puede crecer según sea necesario llegando hasta un tamaño máximo de 2 48 registros. [3] Cada registro de la MTF consiste en una secuencia de pares (encabezado de atributo, valor). Cada atributo empieza con un encabezado que le indica que atributo es, y que tan largo es el valor. Algunos valores del atributo son variables como el nombre del archivo y los datos. [3] El encabezado del registro contiene un número mágico que se utiliza para comprobar la validez, un número de secuencia que se actualiza cada vez que se reutiliza el registro para un nuevo archivo. La Master File Table (MFT) actúa como una base de datos relacional en la cual las filas son archivos de historiales y las columnas con archivos de atributos. [2] Los primeros dieciséis registros de tabla son usados para describirse, es decir se reservan para los archivos de metadatos de NTFS, y cada uno de estos archivos tiene un nombre que empieza con un signo de dólar ($), para indicar que es un archivo de metadatos. [2] [3]
UNIVERSIDAD TÉCNICA DE AMBATO FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL CARRERA DE INGENIERÍA EN SISTEMAS COMPUTACIONALES E INFORMÁTICOS PERÍODO ACADÉMICO: MARZO 2017 / SEPTIEMBRE 2017
El primer registro es especial, describe al archivo de la MTF e indican en dónde se encuentran los bloques del archivo de la MTF, de manera que es sistema pueda encontrarlo. [3] El registro 1 es un duplicado de la primera parte del archivo de la MTF. Esta información es tan valiosa que puede ser imprescindible tener una segunda copia en caso de que uno de los primeros bloques de la MTF se vuelva defectuoso. El registro 2 es el archivo de registro. Cuando se realizan cambios estructurales en el sistema de archivos, como agregar nuevos directorios o eliminar uno existente, la acción se lo realiza aquí antes que la acción se realice para poder incrementar la probabilidad de recuperarse en caso de falla durante la operación. El registro 3 contiene información sobre el volumen, como su tamaño, etiqueta y versión. El archivo $AttrDef es en donde se definen los atributos, y la información sobre este archivo está en el registro 4. A continuación, viene el directorio raíz, que en si es un archivo que se describe en el registro 5. En un mapa bit se lleva el registro de los espacios disponibles del volumen en donde sus atributos y direcciones se proporcionan en el registro 6. El registro 7 apunta al archivo cargador de la bootstrap. El registro 8 se utiliza para vincular todos los bloques defectuosos para asegurar que nunca ocurran en un archivo. El registro 9 contiene la información de seguridad. El registro 10 se utiliza para la asignación de mayúsculas y minúsculas. El registro 11 es un directorio que contiene varios archivos para cosas como cuotas de disco, identificadores de objetos, puntos de reanálisis, etc. Los cuatro últimos registros de la MTF están reservados para un uso futuro. A partir del diecisieteavo registro comienzan todos los registros de la partición. [2] [3]
Asig As ig nació nac ió n de d e almac al macenam enamii ento ent o El modelo para llevar la cuenta de los bloques de disco es que se asignan en tiradas de bloques consecutivos siempre que sea posible, por cuestiones de eficacia.
UNIVERSIDAD TÉCNICA DE AMBATO FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL CARRERA DE INGENIERÍA EN SISTEMAS COMPUTACIONALES E INFORMÁTICOS PERÍODO ACADÉMICO: MARZO 2017 / SEPTIEMBRE 2017
Comprensión Comprensión de archivos NTFS proporciona compresión transparente de archivos. Se puede crear un archivo en modo comprimido, lo cual significa que NTFS trata automáticamente de comprimir los bloques a medida que se escriben en el disco, y lo descomprime de manera automática cuando se los vuelve a leer.
Registro de transacciones NTFS proporciona dos mecanismos para que los programas detecten cambios en los archivos de directorio en un volumen. El primer mecanismo es una operación de E/S conocida como NtNotify-ChangeDirectoryFile, que pasa un búfer al sistema, que a su vez regresa cuando detecta un cambio en un directorio o subárbol de cambios. El segundo mecanismo es el diario de cambios de NTFS. Este sistema mantiene una lista de todos los registros de cambios para los directorios y archivos en el volumen en un archivo especial, que los programas pueden leer mediante el uso de operaciones especiales del sistema de archivos.
Cifrado de archivos El proceso actual de cifrado y descifrado no lo maneja NTFS, sino un driver conocido como es EFS (Encryption File System, sistema de cifrado de archivos), el cual registra llamadas de retorno con NTFS. EFS proporciona cifrado para directorios y archivos específicos.
2.7 2.7 Resul Resultados tados y Discusi Disc usión ón El sistema de archivos NFS facilita la compartición de archivos y directorios otorgando ciertos permisos de acceso entre sistemas, pero de una manera más confidencial y segura . No se puede comparar NFS con la potencia de la compartición vía SAMBA, nativa en Windows, pero completamente multiplataforma. NTFS es un sistema de archivos diseñado e implementado por Microsoft, el cual surge como una necesidad para solucionar las fallas de seguridad, desempeño y confiabilidad que el sistema de archivos FAT poseía. Dichos atributos se optimizan en NFTS al manejar la mayoría de los datos como archivos, de esta manera se hace más sencillo el control de la partición, ya que se tiene un bloque de información de control almacenado en archivos
UNIVERSIDAD TÉCNICA DE AMBATO FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL CARRERA DE INGENIERÍA EN SISTEMAS COMPUTACIONALES E INFORMÁTICOS PERÍODO ACADÉMICO: MARZO 2017 / SEPTIEMBRE 2017
con meta data desde el momento en que la partición es creada, lo que le permite al sistema operativo identificar y localizar cualquier archivo de manera más eficiente.
2.8 2.8 Concl Conclusi usiones ones El servicio NFS nos proporciona una solución a la necesidad de compartir archivos y directorios, así como controlar los permisos de acceso entre sistemas heterogéneos. Con la ventaja de que estos sistemas pueden tener hardware distinto. NFS crea una capa de abstracción que permite a los usuarios acceder a archivos y/o ejecutar programas ubicados en equipos remotos como si fueran locales. Con la aparición de la versión 4 se ha dado un gran paso hacia la comunicación segura incorporando mecanismos de autenticación de usuarios, así como listas de control de acceso que especifican los permisos concretos para cada recurso compartido. El sistema de archivos NTFS se basa en una estructura diferente, llamada tabla maestra de archivos, que contiene registros de los archivos y directorios de la partición. El primer registro, llamado descriptor, contiene información acerca de la MFT (una copia de esta información se almacena en el segundo registro). El tercer registro contiene el archivo de registro. Este es un archivo que contiene todas las acciones llevadas a cabo en la partición. Los siguientes registros, que constituyen lo que se conoce como el núcleo, hacen referencia a cada archivo y directorio de la partición en la forma de objetos con atributos asignados. Esto implica que la información que concierne a cada archivo se almacena en un archivo y éste se registra dentro de la MFT.
UNIVERSIDAD TÉCNICA DE AMBATO FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL CARRERA DE INGENIERÍA EN SISTEMAS COMPUTACIONALES E INFORMÁTICOS PERÍODO ACADÉMICO: MARZO 2017 / SEPTIEMBRE 2017
2.9 2.9 Referencias Referencias bibl iográficas iog ráficas Referencias
[1] «Observatorio Tecnológico,» 25 Agosto 2009 . [En línea]. Available: http://recursostic.educacion.es/observatorio/web/gl/software/software-general/733-nfssistema-de-archivos-de-red. [2] I. C. J. C. A rmando Botero, «Técnicas Anti-Forenses en Informática: Ingeniería Reversa,» Bogóta. [3] A. Tanenbaum, Sistemas Operativos Modernos, México: Pearson Educación, 2009. [4] Kioskea.net, «El sistema de archivos NTFS,» 2014. [5] I. Red Hat, «web mit,» 2005. [En línea]. Available: http://web.mit.edu/rhel-doc/4/RHDOCS/rhel-rg-es-4/ch-nfs.html.
2.10 2.10.. Fotografías y gr áficos
ig. 1: Tabla de archivos maestra MTF
UNIVERSIDAD TÉCNICA DE AMBATO FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL CARRERA DE INGENIERÍA EN SISTEMAS COMPUTACIONALES E INFORMÁTICOS PERÍODO ACADÉMICO: MARZO 2017 / SEPTIEMBRE 2017
ig. 2: Registro de la MTF para un flujo de tres ejecuciones y nueve bloques