Capitulos de este wiki
  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
  39. 39 Lpd
  40. 40 Samba
  41. 41 Servidores LDAP Linux
  42. 42 Sistema X Window
  43. 43 Conectividad SNA
  44. 44 Software de Autoridad de Certificación para Linux
  45. 45 El kernel de Linux
  46. 46 Parches de seguridad del kernel y del compilador
  47. 47 Herramientas administrativas
  48. 48 Gestión de Software
  49. 49 Herramientas de monitorización de Hosts
  50. 50 Ficheros de Log y otros métodos de monitorización
  51. 51 Limitación y monitorización de usuarios
  52. 52 Lista de comprobación para la conexión a Internet
  53. 53 Métodos de compartición de ficheros
  54. 54 Lectores de correo basados en WWW
  55. 55 Autentificación Basada en Red
  56. 56 Software de Listas de correo
  57. 57 Escaneo / herramientas de prueba de intrusos
  58. 58 Herramientas de escaneo y detección de intrusos
  59. 59 Sniffers de Paquetes
  60. 60 Normas de comportamiento / integridad de ficheros
  61. 61 Gestión de auditorías
  62. 62 Copias de Seguridad
  63. 63 Enfrentandose a los ataques
  64. 64 Ataques de Negación de Servicio
  65. 65 Ejemplos de ataques
  66. 66 Virus, Caballos de Troya y Gusanos
  67. 67 Distribuciones seguras de Linux
  68. 68 Información específica por Distribuidor / Vendedor
  69. 69 Información de contacto con vendedores
  70. 70 Programación segura
  71. 71 Apéndice A: Libros y Revistas
  72. 72 Apéndice B: Otra documentación de seguridad sobre Linux
  73. 73 Apéndice C: Documentación de seguridad en línea
  74. 74 Apéndice D: Sitios de seguridad en general
  75. 75 Apéndice E: Sitios de Linux en general

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

5 - Seguridad de Ficheros / Sistema de ficheros

[editar]
Tutorial creado por Kurt Seifried. Extraido de: http://es.tldp.org/Manuales-LuCAS/GSAL/gsal-19991128-htm/
16 de Febrero de 2006
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
[editar]

8 opiniones

Tecnico.

Super completo, me va a tomar un tiempo repasar cada apartado. Me tome el trabajo de re-edicion y transformacion a documento de open-office (extension odt) de esta forma lo tengo en mi server y lo puedo usar con consultas en todo momento. Muchas gracias. Ahora tengo lectura por un buen rato. Bye bye.
Pdf?.

Hola, es muy interesante, habéis trabajado mucho y es una lástima que tenga que guardar todas las páginas en caché o en otro formato. Por favor, ¿podéis subir o enviar una versión actualizada de este pedazo de manual en pdf?

gracias mil.
Aprende mas.

Bueno creo que puede ser mejor.
Identificarse con los buenos comportamientos.

La verdad, siempre en la cultura debemos de tener unas normas de conducta para cumplirlas así pues, este recurso ayudan a informarnos a cerca de lo q esta bien o mal y llevar a cabo todas esas reglas q solo implementan la regulación de el comportamiento de las actitudes.
Buscando solucion.

Es oportuno para abocar conocimiento sobre linux, tenemos linux en cabinas con varios dias fuera de servicio porque se desconfiguro, pide clave de mantenimiento y no lo sabemos. Eperamos este recurso ayude.
1 2 | siguiente >

Tutoriales relacionados con 'Guía de Seguridad del Administrador de Linux'

Esta guía no es un documento general de seguridad. Esta guía está específicamente orientada a... Más »
Esta es la primerísima edición del Linux en Castellano COMO. La audiencia a la que... Más »
Este documento describe el soporte de sonido para Linux. Enumera el hardware de sonido soportado,... Más »
Este documento describe la puesta en marcha y mantenimiento de noticias de Usenet bajo Linux.... Más »
El objetivo de este documento es enseñar las bases de la instalación de un cortafuegos... Más »

Autor y licencia de 'Guía de Seguridad del Administrador de Linux'


Tutorial de Kurt Seifried. Extraido de: http://es.tldp.org/Manuales-LuCAS/GSAL/gsal-19991128-htm/ CopyLeft
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.