jueves, 15 de mayo de 2008

Ficheros del sistema

/etc/passwd

El fichero de contraseñas es sin discusión el fichero más crítico en Linux (y en la mayoría de otros Unix). Contiene el mapa de nombres de usuarios, identificaciones de usuarios y la ID del grupo primario al que pertenece esa persona. También puede contener el fichero real, aunque es más probable (y mucho más seguro) que utilice contraseñas con shadow para mantener las contraseñas en /etc/shadow. Este fichero TIENE que ser legible por todo el mundo, o si no comandos tan simples como ls dejarían de funcionar correctamente. El campo GECOS puede contener datos tales como el nombre real, el número de teléfono y otro tipo de cosas parecidas en cuanto al usuario, su directorio personal, que es el directorio en que se coloca al usuario por defecto si hace un login interactivo, y el shell de login tiene que ser un shell interactivo (como bash, o un programa de menús), y estar listado en /etc/shells para que el usuario pueda hacer login. El formato es:

nombreusuario:contraseña_cifrada:UID:GID:campo_GECOS:direct_personal:login_shell

Las contraseñas se guardan utilizando un hash de un sólo sentido (el hash utilizado por defecto es crypt, las distribuciones más nuevas soportan MD5, que es significativamente más robusto). Las contraseñas no pueden obtenerse a partir de la forma cifrada, sin embargo, se puede tratar de encontrar una contraseña utilizando fuerza bruta para pasar por el hash cadenas de texto y compararlas, una vez que encuentres una que coincide, sabes que has conseguido la contraseña. Esto no suele ser un problema por sí mismo, el problema surge cuando los usuarios escogen claves que son fácilmente adivinables. Las encuestas más recientes han demostrado que el 25% de las contraseñas se pueden romper en menos de una hora, y lo que es peor es que el 4% de los usuarios utilizan su propio nombre como contraseña. Los campos en blanco en el campo de la contraseña se quedan vacíos, así que se vería "::", lo cual es algo crítico para los cuatro primeros campos (nombre, contraseña, uid y gid).


/etc/shadow

El fichero de shadow alberga pares de nombres de usuario y contraseñas, así como información contable, como la fecha de expiración, y otros campos especiales. Este fichero debería protegerse a toda costa, y sólo el root debería tener acceso de lectura a él.



/etc/groups

El fichero de grupos contiene toda la información de pertenencia a grupos, y opcionalmente elementos como la contraseña del grupo (generalmente almacenado en gshadow en los sistemas actuales), este fichero debe ser legible por el mundo para que el sistema funcione correctamente. El formato es:

nombregrupo:contraseña_cifrada:GID:miembro1,miembro2,miembro3

Un grupo puede no contener miembros (p. ej., no está usado), sólo un miembro o múltiples miembros, y la contraseña es opcional (y no se suele usar).



/etc/gshadow

Similar al fichero shadow de contraseñas, este fichero contiene los grupos, contraseñas y miembros. De nuevo, este fichero debería ser protegido a toda costa, y sólo el usuario root debería tener permiso de lectura al mismo.



/etc/login.defs

Este fichero (/etc/login.defs) te permite definir algunos valores por defecto para diferentes programas como useradd y expiración de contraseñas. Tiende a variar ligeramente entre distribuciones e incluso entre versiones, pero suele estar bien comentado y tiende a contener los valores por defecto.



/etc/shells

El fichero de shells contiene una lista de shells válidos, si el shell por defecto de un usuario no aparece listado aquí, quizás no pueda hacer login interactivamente. Mira la sección sobre Telnetd para más información.



/etc/securetty

Este fichero contiene una lista de tty’s desde los que el root puede hacer un login. Los tty’s de la consola suelen ir de /dev/tty1 a /dev/tty6. Los puertos serie (pongamos que quieres hacer login como root desde módem) son /dev/ttyS0 y superiores por lo general. Si quieres permitirle al root hacer login vía red (una muy mala idea, utiliza sudo) entonces añade /dev/ttyp1 y superiores (si hay 30 usuarios conectados y el root intenta conectar, el root aparecerá como procedente de /dev/ttyp31). Generalmente, sólo se debería permitir conectar al root desde /dev/tty1, y es aconsejable desabilitar la cuenta de root, sin embargo antes de hacer esto, por favor, instala sudo o un programa que permita al root acceder a comandos.

No hay comentarios: