Debe introducir al menos 3 caracteres en el buscador.
Inicio / Wikis / Tutoriales / Guía de Seguridad del Administrador de Linux - Seguridad de Ficheros / Sistema de ficheros

Guía de Seguridad del Administrador de Linux - Seguridad de Ficheros / Sistema de ficheros

 ***** (7 opiniones)
Creative Commons Tutorial de Kurt Seifried - 16 de Febrero de 2006
Temas Relacionados: Linux
5. Seguridad de Ficheros / Sistema de ficheros
Una casa sólida necesita cimientos sólidos, si no se derrumbará. En el caso de Linux, esto es el sistema de ficheros ext2 (EXTendido, versión 2). Algo así como el standard UNIX de toda la vida. Soporta permisos de ficheros (lectura, escritura, ejecución, sticky bit, suid, guid, etc.), propiedad de ficheros (usuario, grupo, otros), y otro tipo de standards. Alguna de sus desventajas son: no se puede hacer journaling, y especialmente no hay Listas de Control de Acceso, las cuales se rumorea vendrán con el ext3. En la parte positiva, Linux tiene excelente software RAID, soportando bastante bien los Niveles 0, 1 y 5 (RAID no tiene que ver con la seguridad, pero por supuesto tiene que ver con la estabilidad).

Las utilidades básicas para interactuar con ficheros son: "ls", "chown", "chmod" y "find". Otras incluyen ln (para creación de enlaces), stat (muestra información de un fichero) y muchas más. En cuanto a la creación y mantenimiento de sistemas de ficheros por sí mismos, tenemos "fdisk" (el viejo fdisk), "mkfs" (MaKe FileSystem, que formatea particiones), y "fsck" (FileSystem ChecK, que suele arreglar problemas). De modo que, ¿qué es lo que estamos tratando de evitar que haga la gente hostil? (generalmente usuarios, y/o demonios de red alimentados con información maligna). Se puede comprometer con facilidad un sistema Linux si se consigue acceso a ciertos ficheros, por ejemplo la capacidad para leer un fichero de claves sin shadow da como resultado la posibilidad de ejecutar contraseñas cifradas contra crack, encontrando con facilidad las contraseñas débiles. Es un objetivo típico de los atacantes que vienen de la red (scripts CGI pobremente escritos suelen ser los favoritos). De otra forma, si un atacante puede escribir en el fichero de contraseñas, el o ella puede irrumpir en el sistema, o (presumiblemente peor) conseguir cualquier nivel de acceso que quiera. Este tipo de situaciones suelen estar causadas por lo general por "razas tmp", en las cuales un programa setuid (uno que se esté ejecutando con privilegios de root), escribe ficheros temporales, por lo general en /tmp , sin embargo muchos no comprueban la existencia de un fichero, y cuando se ejecuta el fichero setuid, boom, se borra /etc/passwd o incluso se le añaden entradas. Hay muchos ataques más similares a este, de modo que ¿cómo se pueden prevenir?

Es simple: configurando el sistema de ficheros correctamente cuando se instale. Dos directorios habituales a los que los usuarios tienen acceso son /tmp y /home, dividir esto en particiones separadas también evita que los usuarios llenen cualquier sistema de ficheros crítico (un / lleno es algo bastante malo). Un /home lleno podría dar como resultado la incapacidad de que los usuarios pudieran hacer un login (por eso el directorio del root está en /root). Poner /tmp y /home en particiones separadas es algo así como obligatorio si los usuarios tienen acceso al servidor, poner /etc, /var, y /usr en particiones separadas también es una muy buena idea.

Las herramientas principales para conseguir información sobre ficheros y sistemas de ficheros son relativamente simples y fáciles de usar, "df" (muestra el uso del disco) también mostrará el uso de los ínodos, "df –i" (los ínodos contienen información acerca de los ficheros tal como su localización en el disco duro, te puedes quedar sin ellos antes de quedarte sin disco duro si tienes muchos ficheros muy pequeños. Lo cual da mensajes de error del tipo "disco lleno", cuando en realidad "df" te dirá que queda espacio libre, "df –i" sin embargo mostraría los ínodos como todos usados). Esto es parecido a la reserva de entradas de ficheros de Windows, con vfat en realidad se almacenan los nombres en formato 8.3, utilizando múltiples entradas para nombres largos de ficheros, con un máximo de 512 entradas por directorio, lo cual es muy útil para averiguar dónde se ha ido todo el espacio, se usa como "du" (saca un listado de todo lo que hay en el directorio actual y por debajo de él a lo que tengas acceso) o "du /nombre/directorio", opcionalmente utilizando "-s" para sacar un sumario, lo cual es útil para directorios como /usr/src/linux. Para conseguir información sobre ficheros específicos, la herramienta principal es ls (similar al comando "dir" del DOS), "ls" sólo saca nombres de ficheros/directorios, "ls –l" muestra información como los permisos de los ficheros, el tamaño, etc., y "ls –la" muestra los directorio y los ficheros que empiezan con ".", generalmente ficheros de configuración y directorios (.bash_history, .bash_logout, etc.). La utilidad "ls" tiene una docena de opciones para ordenar, basada en el tamaño, fecha, órden inverso, etc.; "man ls" para ver todos los detalles. Para detalles sobre un fichero en particular (fecha de creación, último acceso, ínodo, etc.) está el "stat", que símplemente da información de las estadísticas vitales de un fichero(s) dado, y es muy útil para ver si un fichero está en uso, etc.

Para manipular ficheros y carpetas, están las herramientas generales como cp, mv, rm (CoPy, MoVe y ReMove, copiar, mover y eliminar), al igual que herramientas para manipular la información de seguridad. chown es responsable de cambiar la propiedad del usuario y grupo de un determinado fichero (el grupo otros es siempre otros, similar al grupo ‘todos’ de NT o Novell). chmod (CHange MODe, cambio de modo) cambia los atributos de un fichero, siendo los básicos lectura, escritura y ejecución, al igual que está el setuid, setguid (establecer la id del ususario y grupo bajo la cual se ejecuta el programa, a menudo root), sticky bit, etc. Con el uso adecuado de asignaciones de usuarios a grupos, chmod y chwon, se pueden emular las ACL’s (Listas de Control de Accesos) hasta cierto punto, pero es bastante menos flexible que los permisos para Sun/AIX/NT (aunque se rumorea que así será con ext3). Por favor, ten especial cuidado con los setuid/setgid, ya que cualquier problema en un programa/script de esos se puede agrandar enormemente.

Creo que también sería de mencionar "find". Encuentra ficheros (en esencia, lista ficheros), y también se puede utilizar con filtros basados en permisos/propiedad (también por tamaño, fecha y otros criterios diferentes). Un par de ejemplos rápidos para cazar programas setuid/guid:

para encontrar todos los programas setuid:

find / -perm +4000

para encontrar todos los programas setgid:

find / -perm +2000

La mayor parte de la seguridad son los permisos de usuarios. En Linux, un fichero es ‘propiedad’ de 3 entidades separadas, un Usuario, un Grupo y Otros (que es el resto). Se puede asignar a qué usuario pertenece un fichero y a qué grupo pertenece mediante:

chown usuario:grupo objeto

donde objeto es un fichero, directorio, etc. Si se quiere denegar el acceso de ejecución a los 3 propietarios, simplemente escribir:

chmod x=" " objeto

donde x es a|g|u|o (All/User/Group/Other), fuerza que los permisos sean igual a "" (null, nada, ningún acceso) y el objeto es un fichero, directorio, etc. Este es con mucho, el método más rápido y efectivo de eliminar permisos y denegar totalmente el acceso a usuarios/etc (=" " forzar a borrarlo). Recuerda que el root SIEMPRE puede cambiar los permisos de un fichero y ver/editar el fichero, Linux no aporta todavía protección a los usuarios sobre el root (lo cual muchos lo consideran algo bueno). Igualmente, cualquiera que sea dueño del directorio en que está el objeto (sea un usuario/grupo/otros con los permisos adecuados sobre el directorio padre) puede, potencialmente, editar los permisos (y puesto que el root es dueño de / puede hacer cambios que involucren cualquier lugar del sistema de ficheros).



Borrado seguro de ficheros

Algo que muchos de nosotros olvidamos es que cuando se borra un fichero, en realidad no se ha ido. Incluso se sobreescribe, se vuelve a formatear el disco duro o se lo intenta destruir de cualquier otra forma, hay posibilidades de que pueda ser recuperado, y por lo general, los servicios de recuperación de datos sólo cuestan unos pocos cientos de miles de pesetas, de modo que quizás les mereciese la pena a los atacantes en tiempo y en dinero. El truco consiste en desordenar los datos, alterando los bits magnéticos (alias los 1’s y 0’s) para que una vez hubiera terminado, no quedasen trazas del original (es decir, bits magnéticos cargados de la misma forma que estaban originariamente). Se han escrito dos programas (ambos llamados wipe) a tal efecto.

wipe (durakb@crit2.univ-montp2.fr)

wipe borra datos con seguridad, sobreescribiendo el fichero múltiples veces con varios patrones de bits, p. ej., todo 0’s, luego todo 1’s, luego alternando 1’s y 0’s, etc. Se puede utilizar wipe en ficheros o en dispositivos, si se utiliza con ficheros, hay que recordar que las fechas de creación de ficheros, permisos, etc., no serán borrados, de modo que asegúrate de borrar el dispositivo si se necesita eliminar toda traza de cualquier cosa. Se puede conseguir en: http://gsu.linux.org.tr/wipe/

wipe (thomassr@erols.com)

Este también borra datos de forma segura, sobreescribiéndolos múltiples veces, sin embargo este no soporta el borrado de dispositivos. Se puede conseguir en: http://users.erols.com/thomassr/zero/download/wipe/



Listas de Control de Acceso (ACL’s)

Uno de los componentes que se echan en falta es un sistema de ficheros Linux Listas de Control de Acceso (ACL’s) en lugar de los habituales Usuario, Grupo, Otros, con su docena o así de permisos. Las ACL’s te permiten un control de accesos del sistema de ficheros más afinado, por ejemplo, se puede otorgar al usuario "paco" acceso total a un fichero, a "maría" permiso de lectura, al grupo de ventas, permiso de cambio, al grupo de contabilidad, permiso de lectura, y ningún permiso para el resto. Bajo los permisos existentes para Linux, no se podría hacer esto. De aquí la necesidad de las ACL’s.

El proyecto de trustees (ACL) de Linux es una serie de parches y utilidades del kernel para configurar accesos ACL al sistema de ficheros. Esta solución es algo cutre, ya que mantiene los permisos en un fichero, y actúa como una capa de filtrado entre el fichero y los usuarios, lo cual no es un sistema basado en ACL propiamente dicho (pero es un empiece). Se puede conseguir en: http://www.braysystems.com/linux/trustees.html
Tabla de contenidos
  1. 1 - Cómo determinar qué asegurar y cómo asegurarlo
  2. 2 - Instalación segura de Linux
  3. 3 - Conceptos generales, servidores versus estaciones de trabajo, etc
  4. 4 - Ficheros del sistema
  5. 5 - Seguridad de Ficheros / Sistema de ficheros
  6. 6 - PAM
  7. 7 - Seguridad Física / de Arranque
  8. 8 - Seguridad de contraseñas
  9. 9 - Almacenamiento de Contraseñas
  10. 10 - Seguridad basica de servicios de red
  11. 11 - Ficheros basicos de configuración de red
  12. 12 - TCP-IP y seguridad de redes
  13. 13 - Seguridad PPP
  14. 14 - Seguridad IP (IPSec)
  15. 15 - Cifrado de servicios / datos
  16. 16 - Rutado
  17. 17 - Software de Proxy
  18. 18 - Cortafuegos
  19. 19 - Telnet
  20. 20 - SSH
  21. 21 - FTP
  22. 22 - HTTP / HTTPS
  23. 23 - SMTP
  24. 24 - POP
  25. 25 - IMAPD
  26. 26 - DNS
  27. 27 - NNTP
  28. 28 - DHCPD
  29. 29 - RSH, REXEC, RCP
  30. 30 - NFSD
  31. 31 - TFTP
  32. 32 - BOOTP
  33. 33 - SNMP
  34. 34 - Finger
  35. 35 - Identd
  36. 36 - NTPD
  37. 37 - CVS
  38. 38 - rsync
  1. 39 - lpd
  2. 40 - Samba
  3. 41 - Servidores LDAP Linux
  4. 42 - Sistema X Window
  5. 43 - Conectividad SNA
  6. 44 - Software de Autoridad de Certificación para Linux
  7. 45 - El kernel de Linux
  8. 46 - Parches de seguridad del kernel y del compilador
  9. 47 - Herramientas administrativas
  10. 48 - Gestión de Software
  11. 49 - Herramientas de monitorización de Hosts
  12. 50 - Ficheros de Log y otros métodos de monitorización
  13. 51 - Limitación y monitorización de usuarios
  14. 52 - Lista de comprobación para la conexión a Internet
  15. 53 - Métodos de compartición de ficheros
  16. 54 - Lectores de correo basados en WWW
  17. 55 - Autentificación Basada en Red
  18. 56 - Software de Listas de correo
  19. 57 - Escaneo / herramientas de prueba de intrusos
  20. 58 - Herramientas de escaneo y detección de intrusos
  21. 59 - Sniffers de Paquetes
  22. 60 - Normas de comportamiento / integridad de ficheros
  23. 61 - Gestión de auditorías
  24. 62 - Copias de Seguridad
  25. 63 - Enfrentandose a los ataques
  26. 64 - Ataques de Negación de Servicio
  27. 65 - Ejemplos de ataques
  28. 66 - Virus, Caballos de Troya y Gusanos
  29. 67 - Distribuciones seguras de Linux
  30. 68 - Información específica por Distribuidor / Vendedor
  31. 69 - Información de contacto con vendedores
  32. 70 - Programación segura
  33. 71 - Apéndice A: Libros y Revistas
  34. 72 - Apéndice B: Otra documentación de seguridad sobre Linux
  35. 73 - Apéndice C: Documentación de seguridad en línea
  36. 74 - Apéndice D: Sitios de seguridad en general
  37. 75 - Apéndice E: Sitios de Linux en general
Autor y licencia de 'Guía de Seguridad del Administrador de Linux - Seguridad de Ficheros / Sistema de ficheros'
Kurt Seifried Extraído de: http://es.tldp.org/Manuales-LuCAS/GSAL/gsal-19991128-htm/

Creative Commons License
Esta obra está bajo una licencia de Creative Commons.
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.

Wikis relacionados con 'Guía de Seguridad del Administrador de Linux - Seguridad de Ficheros / Sistema de ficheros'

Este documento pretende introducir al usuario de GNU/Linux el conjunto de directrices establecidas por el... Más »
Este documento pretende introducir al usuario de GNU/Linux el conjunto de directrices establecidas por el... Más »
El objetivo de este documento es mostrar las características básicas del Sistema de Ficheros Distribuido... Más »
Un sistema informático utiliza ordenadores para almacenar datos, procesarlos y ponerlos a disposición de quien... Más »
A lo largo de este trabajo se va a intentar hacer un repaso de los... Más »
¿Estás seguro de que deseas eliminar este capítulo?