Capitulos de este wiki
  1. 1 Introducción y conceptos previos
  2. 2 Sobre la seguridad
  3. 3 Sobre las redes
  4. 4 Seguridad física de los sistemas
  5. 5 Protección del hardware
  6. 6 Protección de los datos
  7. 7 Radiaciones electromagnéticas
  8. 8 Administradores, usuarios y personal
  9. 9 Ataques potenciales
  10. 10 Qué hacer ante estos problemas
  11. 11 El atacante interno
  12. 12 El sistema de ficheros
  13. 13 Sistemas de ficheros
  14. 14 Permisos de un archivo
  15. 15 Los bits SUID, SGID y sticky
  16. 16 Atributos de un archivo
  17. 17 Listas de control de acceso: ACLs
  18. 18 Recuperación de datos
  19. 19 Almacenamiento seguro
  20. 20 Programas seguros, inseguros y nocivos
  21. 21 La base fiable de cómputo
  22. 22 Errores en los programas
  23. 23 Fauna y otras amenazas
  24. 24 Programación segura
  25. 25 Auditoría del sistema
  26. 26 El sistema de log en Unix
  27. 27 El demonio syslogd
  28. 28 Algunos archivos de log
  29. 29 Logs remotos
  30. 30 Registros físicos
  31. 31 Copias de seguridad
  32. 32 Dispositivos de almacenamiento
  33. 33 Algunas órdenes para realizar copias de seguridad
  34. 34 Políticas de copias de seguridad
  35. 35 Autenticación de usuarios
  36. 36 Sistemas basados en algo conocido: contraseñas
  37. 37 Sistemas basados en algo poseído: tarjetas inteligentes
  38. 38 Sistemas de autenticación biométrica
  39. 39 Autenticación de usuarios en Unix: autenticación clasi
  40. 40 Autenticación de usuarios en Unix: mejora de la seguridad (II)
  41. 41 Pam
  42. 42 Solaris
  43. 43 Seguridad física en SPARC
  44. 44 Servicios de red
  45. 45 Usuarios y accesos al sistema
  46. 46 El sistema de parcheado
  47. 47 Extensiones de la seguridad
  48. 48 El subsistema de red
  49. 49 Parametros del núcleo
  50. 50 Linux
  51. 51 Seguridad física en x86
  52. 52 Usuarios y accesos al sistema
  53. 53 El sistema de parcheado
  54. 54 El subsistema de red
  55. 55 El núcleo de Linux
  56. 56 Aix
  57. 57 Seguridad física en RS/6000
  58. 58 Servicios de red
  59. 59 Usuarios y accesos al sistema (I)
  60. 60 Usuarios y accesos al sistema (II)
  61. 61 El sistema de log
  62. 62 El sistema de parcheado
  63. 63 Extensiones de la seguridad: filtros IP
  64. 64 El subsistema de red
  65. 65 Hp-ux
  66. 66 Seguridad física en PA-RISC
  67. 67 Usuarios y accesos al sistema
  68. 68 El sistema de parcheado
  69. 69 Extensiones de la seguridad
  70. 70 El subsistema de red
  71. 71 El núcleo de HP-UX
  72. 72 Seguridad de la subred: el sistema de red
  73. 73 Algunos ficheros importantes
  74. 74 Algunas órdenes importantes
  75. 75 Servicios
  76. 76 Algunos servicios y protocolos
  77. 77 Servicios basicos de red
  78. 78 El servicio FTP
  79. 79 El servicio TELNET
  80. 80 El servicio SMTP
  81. 81 Servidores WWW
  82. 82 Los servicios r-
  83. 83 XWindow
  84. 84 Cortafuegos: Conceptos teóricos
  85. 85 Características de diseño
  86. 86 Componentes de un cortafuegos
  87. 87 Arquitecturas de cortafuegos
  88. 88 Firewall-1
  89. 89 Ipfwadm/ipchains/iptables
  90. 90 IPFilter
  91. 91 PIX Firewall (I)
  92. 92 PIX Firewall (II)
  93. 93 Escaneos de puertos
  94. 94 Spoofing
  95. 95 Negaciones de servicio
  96. 96 Interceptación
  97. 97 Ataques a aplicaciones
  98. 98 Sistemas de detección de intrusos
  99. 99 Clasificación de los IDSes
  100. 100 Requisitos de un IDS
  101. 101 IDSes basados en maquina
  102. 102 IDSes basados en red
  103. 103 Detección de anomalías
  104. 104 Detección de usos indebidos
  105. 105 Implementación real de un IDS (I)
  106. 106 Implementación real de un IDS (II)
  107. 107 Algunas reflexiones
  108. 108 Kerberos
  109. 109 Arquitectura de Kerberos
  110. 110 Autenticación
  111. 111 Problemas de Kerberos
  112. 112 Criptología
  113. 113 Criptosistemas
  114. 114 Clasificación de los criptosistemas
  115. 115 Criptografía clasica
  116. 116 Un criptosistema de clave secreta: DES
  117. 117 Criptosistemas de clave pública
  118. 118 Funciones resumen
  119. 119 Esteganografía
  120. 120 Algunas herramientas de seguridad
  121. 121 Titan (I)
  122. 122 Titan (II)
  123. 123 TCP Wrappers
  124. 124 Ssh
  125. 125 Tripwire
  126. 126 Nessus
  127. 127 Crack
  128. 128 Gestión de la seguridad
  129. 129 Políticas de seguridad
  130. 130 Analisis de riesgos
  131. 131 Estrategias de respuesta
  132. 132 Outsourcing
  133. 133 El "Área de Seguridad"
  134. 134 Apéndice 1: Seguridad basica para administradores (I)
  135. 135 Apéndice 1: Seguridad basica para administradores (II)
  136. 136 Apéndice 2: Normativa (I)
  137. 137 Apéndice 2: Normativa (II)
  138. 138 Apéndice 2: Normativa (III)
  139. 139 Apéndice 2: Normativa (IV)
  140. 140 Recursos de interés en INet
  141. 141 Glosario de términos anglosajones
  142. 142 Conclusiones
  143. 143 Bibliografía (I)
  144. 144 Bibliografía (II)
  145. 145 Bibliografía (III)
  146. 146 Bibliografía (IV)
  147. 147 Bibliografía (V)

Seguridad en Unix y redes - Listas de control de acceso: ACLs

17 - Listas de control de acceso: ACLs

[editar]
Tutorial creado por Antonio Villalón Huerta. Extraido de: http://es.tldp.org/Manuales-LuCAS/doc-unixsec/unixsec-html/
28 de Febrero de 2006
Las listas de control de acceso (ACLs, Access Control Lists) proveen de un nivel adicional de seguridad a los ficheros extendiendo el clásico esquema de permisos en Unix: mientras que con estos últimos sólo podemos especificar permisos para los tres grupos de usuarios habituales (propietario, grupo y resto), las ACLs van a permitir asignar permisos a usuarios o grupos concretos; por ejemplo, se pueden otorgar ciertos permisos a dos usuarios sobre unos ficheros sin necesidad de incluirlos en el mismo grupo. Este mecanismo está disponible en la mayoría de Unices (Solaris, AIX, HP-UX...), mientras que en otros que no lo proporcionan por defecto, como Linux, puede instalarse como un software adicional. A pesar de las agresivas campañas de marketing de alguna empresa, que justamente presumía de ofrecer este modelo de protección en sus sistemas operativos frente al `arcaico' esquema utilizado en Unix, las listas de control de acceso existen en Unix desde hace más de diez años ([Com88]).
Los ejemplos que vamos a utilizar aquí (órdenes, resultados...) se han realizado sobre Solaris; la idea es la misma en el resto de Unices, aunque pueden cambiar las estructuras de las listas. Para obtener una excelente visión de las ACLs es recomendable consultar [Fri95], y por supuesto la documentación de los diferentes clones de Unix para detalles concretos de cada manejo e implementación.
La primera pregunta que nos debemos hacer sobre las listas de control de acceso es obvia: >cómo las vemos? Si habitualmente queremos saber si a un usuario se le permite cierto tipo de acceso sobre un fichero no tenemos más que hacer un listado largo:
anita:~# ls -l /usr/local/sbin/sshd -rwx
1 root bin 2616160 Apr 28 1997 /usr/local/sbin/sshd anita:~#
Viendo el resultado, directamente sabemos que el fichero sshd puede ser ejecutado, modificado y leído por el administrador, pero por nadie más; sin embargo, no conocemos el estado de la lista de control de acceso asociada al archivo. Para ver esta lista, en Solaris se ha de utilizar la orden getfacl:

anita:/# getfacl /usr/local/sbin/sshd # file: /usr/local/sbin/sshd # owner: root # group: bin user::rwx group::
#effective:
mask:
other:
anita:/#

Acabamos de visualizar una lista de control de acceso de Solaris; en primer lugar se nos indica el nombre del fichero, su propietario y su grupo, todos precedidos por `#'. Lo que vemos a continuación es la propia lista de control: los campos user, group y other son básicamente la interpretación que getfacl hace de los permisos del fichero (si nos fijamos, coincide con el resultado del ls -l). El campo mask es muy similar al umask clásico: define los permisos máximos que un usuario (a excepción del propietario) o grupo puede tener sobre el fichero. Finalmente, el campo effective nos dice, para cada usuario (excepto el propietario) o grupo el efecto que la máscara tiene sobre los permisos: es justamente el campo que tenemos que analizar si queremos ver quién puede acceder al archivo y de qué forma.
Sin embargo, hasta ahora no hemos observado nada nuevo; podemos fijarnos que la estructura de la lista de control de acceso otorga los mismos permisos que las ternas clásicas. Esto es algo normal en todos los Unix: si no indicamos lo contrario, al crear un fichero se le asocia una ACL que coincide con los permisos que ese archivo tiene en el sistema (cada archivo tendrá una lista asociada, igual que tiene unos permisos); de esta forma, el resultado anterior no es más que la visión que getfacl tiene de los bits rwx del fichero ([Gal96c]).
Lo interesante de cara a la protección de ficheros es extender los permisos clásicos del archivo, modificando su lista asociada. Esto lo podemos conseguir con la orden setfacl:
anita:~# setfacl -m user:toni:r-x /usr/local/sbin/sshd anita:~# getfacl /usr/local/sbin/sshd # file: /usr/local/sbin/sshd # owner: root # group: bin user::rwx user:toni:r-x #effective:
group::
#effective:
mask:
other:
anita:~#

Como vemos, acabamos de modificar la lista de control de acceso del archivo para asignarle a toni permiso de ejecución y lectura sobre el mismo. La orden setfacl se utiliza principalmente de tres formas: o bien añadimos entradas a la ACL, mediante la opción -m seguida de las entradas que deseemos añadir separadas por comas (lo que hemos hecho en este caso, aunque no se han utilizado comas porque sólo hemos añadido una entrada), o bien utilizamos el parámetro -s para reemplazar la ACL completa (hemos de indicar todas las entradas, separadas también por comas), o bien borramos entradas de la lista con la opción -d (de sintaxis similar a -m). Cada entrada de la ACL tiene el siguiente formato:

tipo:UIDGID:permisos

El tipo indica a quién aplicar los permisos (por ejemplo, user para el propietario del archivo, o mask para la máscara), el UID indica el usuario al que queremos asociar la entrada (como hemos visto, se puede utilizar también el login, y el GID hace lo mismo con el grupo (de la misma forma, se puede especificar su nombre simbólico). Finalmente, el campo de permisos hace referencia a los permisos a asignar, y puede ser especificado mediante símbolos rwx- o de forma octal.
Acabamos de indicar que el usuario toni tenga permiso de lectura y ejecución en el archivo; no obstante, si ahora este usuario intenta acceder al fichero en estos modos obtendrá un error:
anita:/usr/local/sbin$ id uid=100(toni) gid=10(staff) anita:/usr/local/sbin$ ./sshd bash: ./sshd: Permission denied anita:/usr/local/sbin$

>Qué ha sucedido? Nada anormal, simplemente está actuando la máscara sobre sus permisos (antes hemos dicho que debemos fijarnos en el campo effective, y aquí podemos comprobar que no se ha modificado). Para solucionar esto hemos de modificar el campo mask:

anita:~# setfacl -m mask:r-x /usr/local/sbin/sshd anita:~#

Si ahora toni intenta acceder al fichero para leerlo o ejecutarlo, ya se le va a permitir:

anita:/usr/local/sbin$ id uid=100(toni) gid=10(staff) anita:/usr/local/sbin$ ./sshd /etc/sshd_config: No such file or directory ...

Aunque obtenga un error, este error ya no depende de la protección de los ficheros sino de la configuración del programa: el administrador obtendría el mismo error. No obstante, sí que hay diferencias entre una ejecución de toni y otra del root, pero también son impuestas por el resto del sistema operativo Unix: toni no podría utilizar recursos a los que no le está permitido el acceso, como puertos bien conocidos, otros ficheros, o procesos que no le pertenezcan. Hay que recordar que aunque un usuario ejecute un archivo perteneciente al root, si el fichero no está setuidado los privilegios del usuario no cambian. Sucede lo mismo que pasaría si el usuario tuviera permiso de ejecución normal sobre el fichero, pero éste realizara tareas privilegiadas: podría ejecutarlo, pero obtendría error al intentar violar la protección del sistema operativo.
En Solaris, para indicar que una lista de control de acceso otorga permisos no reflejados en los bits rwx se situa un símbolo `+' a la derecha de los permisos en un listado largo:
anita:~# ls -l /usr/local/sbin/sshd -rwx
+ 1 root bin 2616160 Apr 28 1997 /usr/local/sbin/sshd anita:~#
Otra característica que tiene Solaris es la capacidad de leer las entradas de una lista de control de acceso desde un fichero en lugar de indicarlas en la línea de órdenes, mediante la opción -f de setfacl; el formato de este fichero es justamente el resultado de getfacl, lo que nos permite copiar ACLs entre archivos de una forma muy cómoda:

anita:~# getfacl /usr/local/sbin/sshd >/tmp/fichero anita:~# setfacl -f /tmp/fichero /usr/local/sbin/demonio anita:~# getfacl /usr/local/sbin/demonio # file: /usr/local/sbin/demonio # owner: root # group: other user::rwx user:toni:r-x #effective:r-x group::
#effective:
mask:r-x other:
anita:~#

Esto es equivalente a utilizar una tubería entre las dos órdenes, lo que produciría el mismo resultado:

anita:~# getfacl /usr/local/sbin/sshd | setfacl -f - /usr/local/sbin/demonio

Antes de finalizar este apartado dedicado a las listas de control de acceso, quizás sea conveniente comentar el principal problema de estos mecanismos. Está claro que las ACLs son de gran ayuda para el administrador de sistemas Unix, tanto para incrementar la seguridad como para facilitar ciertas tareas; sin embargo, es fácil darse cuenta de que se pueden convertir en algo también de gran ayuda, pero para un atacante que desee situar puertas traseras en las máquinas. Imaginemos simplemente que un usuario autorizado de nuestro sistema aprovecha el último bug de sendmail (realmente nunca hay un `último') para conseguir privilegios de administrador en una máquina; cuando se ha convertido en root modifica la lista de control de acceso asociada a /etc/shadow y crea una nueva entrada que le da un permiso total a su login sobre este archivo. Una vez hecho esto, borra todo el rastro y corre a avisarnos del nuevo problema de sendmail, problema que rápidamente solucionamos, le damos las gracias y nos olvidamos del asunto. >Nos olvidamos del asunto? Tenemos un usuario que, aunque los bits rwx no lo indiquen, puede modificar a su gusto un archivo crucial para nuestra seguridad. Contra esto, poco podemos hacer; simplemente comprobar frecuentemente los listados de todos los ficheros importantes (ahora entendemos por qué aparece el símbolo `+' junto a las ternas de permisos), y si encontramos que un fichero tiene una lista de control que otorga permisos no reflejados en los bits rwx, analizar dicha lista mediante getfacl y verificar que todo es correcto. Es muy recomendable programar un par de shellscripts simples, que automaticen estos procesos y nos informen en caso de que algo sospechoso se detecte.
[editar]

11 opiniones

ff

fff
Configurar Unix

Hola buen articulo, actualmente tengo un problema parecido, en un servidor UNIX (AIX 5.3) tengo unstalado Oracle 10g con algunas bases de datos funcionando, por otro lado tengo un servidor Linux Suse 10 como servidor de Correo, ¿Como hago para configurar las alertas de Oracle y me puedan llegar a mi correo electronico si el suse esta configurado para perir autenticacion y Oracle no tiene esa opcion?¿Es necesario abrir puertos en Suse? ¿tengo que instalar el servicio SMTP en UNIX? ojalá alguien pudiera orientarme, de ANTEMANO MIL GRACIAS. Saludos
Copiar una imagen.

Hola amigos!! yo trabajo con el software unix y necesito como copiar unas imagenes de ese sofware por que estoy trabajando con unos programs. Y no se como copiarlo y tenerlo en un pendrive o tenerlo en pc norma de window. Espero sus respuestas!!.
Unix para todos.

Hola , les dejo una web para analizar y disfrutar * solounix argentina * está diseñado para todas aquellas personas que conozcan de plataformas unix o quieran aprender de unix el sistema operativo por excelencia. Podes bajar manuales de distintos sistemas operativos unix. Recorda que para gozar de este recurso debes registrate. Como usuario registrado podes disfrutar de una cuenta shell gratis
para que puedas probar comandos de unix.
Bueno.

Es informativo pero carece de aspectos puntuales, por ejemplo en el apartado referente al tipo de amenazas: (a) interrupción, (b) interceptación, (c) modificación y (d) fabricación. Enesencia es bueno.
1 2 3 | siguiente >

Tutoriales relacionados con 'Seguridad en Unix y redes'

A lo largo de este trabajo se va a intentar hacer un repaso de los... Más »
Esta guía no es un documento general de seguridad. Esta guía está específicamente orientada a... Más »
Documento con fundamentos teóricos de control de accesos en redes telemáticas; se tratan temas como... Más »
En muchos foros y cosas similares he visto muchas consultas sobre cómo montar servidores de... Más »
Debian es el nombre de una organización dedicada al desarrollo y mantenimiento de sistemas operativos... Más »

Autor y licencia de 'Seguridad en Unix y redes'


Tutorial de Antonio Villalón Huerta. Extraido de: http://es.tldp.org/Manuales-LuCAS/doc-unixsec/unixsec-html/ CopyLeft
Licencia GNU Free Documentation License: http://www.gnu.org/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.