| Linux Security HOWTO: Una guía básica v0.9.11, 1 May 1998 | ||
|---|---|---|
| <<< Previous | Next >>> | |
Es importante asegurarse que sus ficheros de sistema no los abren los usuarios o grupos que no tienen que realizar tareas de mantenimiento del sistema por ediciones casuales.
UNIX separael control de acceso a ficheros y directorios de acuerdo con tres características: propietario, grupo y otros. Siempre hay un sólo propietario, todos los miembros del grupo y cualquier otro.
Una rápida explicación de los permisos Unix:
Propiedad: -Qué usuario(s) y grupo(s) retiene el control de los permisos del nodo y del padre del nodo.
Permisos - Bits que se pueden fijar para permitir ciertos tipos de acceso a él. Los permisos para directorio pueden tener un significado diferente a los permisos para ficheros.
Lectura (r):
Poder ver los contenidos de un fichero
Poder leer un directorio
Escritura (w):
Poder modificar o añadirle a un fichero
Poder borrar o mover ficheros en un directorio
Ejecución(x):
Poder ejecutar un programa binario
Poder buscar en un directorio
Usted - El propietario del fichero
Group - El grupo al que pertenece
Everyone - Cualquiera del sistema
El sticky bit también tiene un significado diferente cuando se aplica a directorios. Si es sticky bit está activo en un directorio, entonces un usuario sólo puede borrar ficheros que son propiedad del usuario o para los que tiene permiso explícito de escritura, incluso cuando tiene acceso de escritura al directorio. Esto está pensado para directorios como /tmp, que tienen permiso de escritura global, pero no es deseable permitir a cualquier usuario borrar los ficheros que quiera. El sticky bit aparece como 't' en los listados largos de directorios.
Este describe permisos al identificador de usuario del fichero. Cuando el modo de acceso de ID de usuario está activo en los permisos del propietario, y ese fichero es ejecutable, los procesos que lo ejecutan obtienen acceso a los recursos del sistema basados en el usuario que crea el proceso (no el usuario que lo lanza). Esto es causa de la utilización de muchos 'buffer overflow'.
Si está activo en los permisos de grupo, este bit controla el estado de "poner id de grupo" de un fichero. Actúa de la misma forma que SUID, salvo que afecta al grupo. El fichero tiene que ser ejecutable para que esto tenga algún efecto.
Si activa el bit SGID en un directorio ( con "chmod g+s directorio"), los ficheros creados en ese directorio tendrán puesto su grupo como el grupo del directorio.
Usted - El propietario del fichero
Grupo - El grupo al que vd. pertenece
Otros - Cualquiera del sistema que no sea propietario o miembro del grupo.
Ejemplos:
-rw-r--r-- 1 kevin users 114 Aug 28 1997 .zlogin
1st bit - ¿directorio? (no)
2nd bit - ¿lectura por el propietario? (si, por kevin)
3rd bit - por el propietario? (si, por kevin)
4th bit - ¿ejecución por el propietario? (no)
5th bit - ¿lectura por el grupo? (sí, por users)
6th bit - ¿escritura por el grupo? (no)
7th bit - ¿ejecución por el grupo? (no)
8th bit - ¿lectura por cualquiera? (si, por cualquiera)
9th bit - ¿escritura por cualquiera? (no)
10th bit - ¿ejecución por cualquiera? (no)
|
Las siguientes líneas son ejemplos del conjunto mínimo de permisos que se requieren para llevar a cabo el acceso descrito. Puede querer dar más permisos que los listados, pero esto debería describir que hacen esos permisos mínimos sobre los ficheros:
-r-------- Permite acceso de lectura al propietario
--w------- Permite al propietario modificar o borrar el fichero
---x------ El propietario puede ejecutar este programa, pero no scripts de\
shell que requieren permisos de lectura
---s------ Se ejecutará con usuario efectivo ID = propietario
-------s-- Se ejecutará con usuario efectivo ID = grupo
-rw------T No actualiza "instante de última modificación". Normalmente
usado para ficheros de intercambio (swap)
---t------ No tiene efecto. (antes sticky bit)
|
Ejemplo de Directorio:
drwxr-xr-x 3 kevin users 512 Sep 19 13:47 .public_html/
1st bit - ¿directorio? (si, contiene muchos ficheros)
2nd bit - ¿lectura por el propietario? (si, por kevin)
3rd bit - por el propietario? (si, por kevin)
4th bit - ¿ejecución por el propietario? (sí, por kevin)
5th bit - ¿lectura por el grupo? (sí, por users)
6th bit - ¿escritura por el grupo? (no)
7th bit - ¿ejecución por el grupo? (sí, por users)
8th bit - ¿lectura por cualquiera? (si, por cualquiera)
9th bit - ¿escritura por cualquiera? (no)
10th bit - ¿ejecución por cualquiera? (sí, por cualquiera\
)
|
Las siguientes líneas son ejemplos del mínimo conjunto de permisos que se requieren para llevar a cabo el acceso descrito. Le puede interesar dar más permisos que los indicados, pero esto debería describir que hacen los permisos mínimos en los directorios:
dr-------- El contenido se puede listar pero no se pueden leer los
atributos.
d--x------ Se puede entrar en el directiorio y usado en las rutas de
ejecución completas.
dr-x------ Se pueden leer los atributos del fichero por el propietario.
d-wx------ Se pueden crear/borra ficheros, incluso si no es el actual.
d------x-t Previene el borrado de ficheros por otros con acceso de
escritura. Usado en /tmp
d---s--s-- No tiene efecto
|
Los ficheros de configuración del sistema (normalmente en /etc) es habitual que tengan el modo 640 (-rw-r-----), y que sean propiedad del root. Dependiendo de los requisitos de seguridad del sistema, esto se puede modificar. Nunca deje algún fichero del sistema con permiso de escritura por un grupo o por cualquiera. Algunos ficheros de configuración, incluyendo, /etc/shadow, sólo deberían tener permiso de lectura por root, y los directorios de /etc no deberías ser accesibles, al menos por otros.
Los scripts de shell SUID son un serio riesgo de seguridad, y por esta razón el núcleo no los acepta. Sin importar lo seguro que piense que es su script de shell, puede ser utilizado para que un cracker pueda obtener acceso a una shell de root.
| <<< Previous | Home | Next >>> |
| 5.1 Estado de umask | 5.3 Verificar la integridad con Tripwire |