Seguridad en Linux - Usuarios y passwords
27 de Diciembre de 2004
Linux, Sistemas operativos, Administración de sistemas
Passwords:------UNIX utiliza un programa llamado crypt(3) para encryptar las passwords, este
programa se basa en el algoritmo de encrytacion DES (Estandar de Encryptacion
de Datos).
Las passswords pueden tener como maximo 11 caracteres pero una vez
encryptadas tienen 13, esto es debido a que los dos primeros caracteres son
el grano de sal (condimento) y se generan a parir del contador del reloj en
el momento en el que se asigna la contraseña, este grano de sal consta de 12
bits, esto quiere decir que puede ser un valor de entre 0 y 4095. Asi para
cada contrase¤a posible hay 4095 formas diferentes de encryptacion.
En el fichero /etc/passwd se guardan el nombre de usuario, nombre real ,
informacion de identificacion, y si el sistema no esta en shadow el passwd
encryptada del usuario.
Un ejemplo:
root:WLR103VcgThbH,31AB:0:0:root:/root:/bin/bash
Donde WLR103VcgThbH es la clave encrytada y WL es el gano de sal.
El numero 3 es el maximo de vida del passwd, despues de tres semanas el
usuario debera cambiarla.
El numero 1 indica cuantas semanas deben pasar para que el usuario puede
cambiar su password.
AB Indica cuando se cambio por ultima vez la clave, (Indica el numero de
semanas que han pasado desde 1/1/1970).
Estos datos están escritos en base 64.
Si por ejemplo root:...,31AB:0:0:root:/root:/bin/bash , indica que el
usuario tendra que cambiar su clave la proxima vez que se conecte al sistema.
Para cambiar el passwd basta con teclear:
Passwd -n diasmin -x diasmax usuario
Donde diasmin es el numero de dias que han de pasar para que el usuario puede
cambiar su passwd.
diasmax es el numero de dias en que expira la clave, para deshabilitar la
expiracion basta con que el valor de tiempo sea -1. Por ejemplo en el caso
del usuario Invitado:------passwd -x 30 Invitado
El usuario Invitado tendra que cambiar su clave cada mes.
No es recomendado usar la opcion un (dias minimos para cambiar la password)
porque si el usuario sospecha que le han pillado el passwd y aun no han
pasado los dias minimos, pues no podra cambiarla hasta que no pasen dichos
dias.
Si en el campo de la clave aparece un NP, (NO password) la cuenta no tiene
password, si por el contrario aparece LK (Locked passwd) significa que la
cuenta esta bloqueada.
Para buscar las cuentas sin passwd:
egrep ‘NP|::’ /etc/passwd
Para buscar por ejemplo info de un usuario en el fichero passwd:
egrep ‘usuario1|usuario2’ /etc/passwd
El numero 0 es el identificador de Usuario (uid).
El identificador de usuario permite determinar, entre otras cosas:
Que ficheros son propiedad de dicho usuario, cuales son los que se pueden
ejecutar, a que zonas tiene acceso un usuario, etc... Con esto quiero decir
que UNIX/Linux no identifica de quien es cada cosa por el nombre de usuario
sino por el UID.
UID es un entero sin signo de 16 bits, el cual va de 0 a 65535.
Los UID’s menores de 9 son habitualmente usados por funciones del sistema
como ftp.
El uid 0 corresponde a el superusuario (root), los UID para los demas
usuarios suelen empezar a partir del numero 100.
Grupos , chgrp , newgrp , grupos con passwords
El siguiente campo pertenece al Identificador de Grupo, en este caso root
pertenece al grupo 0. A los usuarios que van a pertenecer al mismo grupo se
les asigna el mismo gid.
El gid puede ir de 0 hasta 60000, El 0 corresponde al grupo de superusuario:
Los usuarios que estan en el mismo grupo tienen el mismo nivel de privilegios
para aquellos elementos que pertenezcan al grupo.
En el directorio /etc/group esta la lista de cada grupo, un ejemplo del
/etc/group es:
Administ:*:0:root,Charli---Programadores:*:10:Juan,Pedro,Antonio---Usuarios:*:100:------Donde:------Administ Es el nombre del grupo
* Es el password del grupo, en este caso no hay passwd
Root, Charli Los miembros del grupo.
Pueden haber un usuario que pertenezca a varios grupos, el usuario podre
entrar en todos aquellos grupos donde este su loguin, por defecto al entrar
en el sistema entrare en el grupo que corresponda a su gid, luego para
cambiar de grupo simplemente ha de teclear:
newgrp nombre-grupo
Para asociar una clave a un grupo se genera la clave para un usuario nuevo y
se copia con el editor de textos en el fichero /etc/group en el campo
correspondiente.
Los permisos para este fichero han de ser de lectura y escritura para el root
y de lectura para los demas usuarios, SI un usuario puede escribir en este
fichero puede ganar permisos de root con simplemente poner su nombre de
usuario en el mismo grupo en que esta el root y quitar la password si es que
hay.
La orden chgrp sirve para cambiar el grupo propietario de un archivo, su
sintaxis es:
chgrp [opciones] [grupo] [archivo]
La orden chown sirve para cambiar el propietario de un archivo, pero tambien
admite la utilizacion de uid y gid.
Por ejemplo:
chown 500:100 /bin/bash
Cambia el propietario del archivo al usuario con uid 500 y al grupo gid 100.
Se recomienda que /bin/chown solo pueda ser ejecutado por los usuarios con gid
0.
La orden Su
La orden su significa (switch user, cambiar usuario) se utiliza para cambiar
de un usuario a otro, si no se utiliza ningun campo su asume que se ha de
pasar al usuario root.
Una manera de restringir la orden su es quitando al programa /bin/su permisos
de ejecucion a los usuarios que no pertenezcan a un grupo especial, como
administradores. Como ya sabeis los permisos pueden ser para el propietario,
para el grupo y para todos los usuarios.
Passwords en Shadow
Los passwords en Unix se dividen en 7 campos, (separados por dos puntos) :
tonto:h34Sd3vc23: 100:100:Alvaro:/usr/tonto:/bin/sh
Primer campo: Tonto
Es el nombre con el que el sistema reconoce al usuario. A eso se le llama
(login). (Perdonadme los que entiendan algo de unix, pero esque lo tengo que
explicar pa alguien que no sepa na de na).
Segundo campo: h34Sd3vc23
Esta es la palabra clave del usuario pero esta encriptada. Si contiene un
asterisco (*) este password esta desactivado y no puede usarse. :(
Tercer campo: 100
Este es el número de usuario del sistema, (que puede ser hasta 60000). El
usuario con nivel 0 es el root o superusuario.
Cuarto campo: 100
Es el número del grupo al que pertenece el usuario, todos los usuarios de un
mismo grupo tienen los mismos privilegios como es logico, (tambien este campo
puede ser del 0 al 60000)
Quinto campo: Alvaro
En este campo aparecen datos adicionales del usuario, (en este caso el
nombre).
Sexto campo: /usr/tonto
Es el directorio home del usuario en cuestion.
Septimo campo: /bin/sh
Es el Shell que el usuario tonto utiliza.
Como si pillas un fichero de passwords que no estan en shadow y te pones a
crackearlo salen passwords como caracoles despues de la lluvia J, se decide
de poner este sistema en que las passwords encryptadas se guardan en un
archivo a parte generalmente en /etc/shadow (pero depende del sistema),
este archivo al contrario del /etc/passwd solo tiene permisos de lectura para
el root.
Luego en el fichero /etc/passwd en vez de la clave encryptada se pone un * o
algun otro simbolo, esto depende del sistema, he aqui unos ejemplos :))
Tipo de UNIX Directorio Simbolo
AIX3 /etc/security/passwd !
SunOs 5.0 /etc/shadow *
UNICOS /etc/udb *
BSD4.3-Reno /etc/master.passwd *
HP-UX /.segure/etc/passwd *
EP/IX /etc/shadow X
IRIX 5 /etc/shadow X
La estructura del fichero /etc/shadow es la siguiente:
username:passwd:last:may:must:warn:expire:disable:
Donde:------username Es el nombre de usuario.
passwd La clave encryptada.
last Los dias que hace que se cambio la clave desde 1/1/1970.
may Los dias que han de pasar para que la clave pueda ser cambiada.
must Los dias en que espira la clave.
warn Los dias en que se avisara al usurario antes de que el passwd
expire.
expire Son los dias que pueden pasar con la clave caducada antes de
que se deshabilite la cuenta.
Hay una seria de circunstancias en que poner contrase¤as a la sombra puede
dar problemas:
. Cuando en la maquina se verifica el password via NFS, NIS o algun otro
metodo.
. Cuando la maquina esta en una LAN y esta usando NIS (Network Information
Services).
En el fichero /etc/login.defs se especifica por ejemplo los dias maximos en
que puede expirar una passwd, los dias minimos, los caracteres minimos que
puede tener, el UID maximo etc...
Podemos bloquear el programa passwd para que solo un grupo de usuarios o un
usuario puedan ejecutarlo (cambiar su passwd) :
Por ejemplo:
chgrp grupo /bin/passwd
Cambia el grupo propietario del programa passwd.
chmod 4750 /bin/passwd
Cambia los permisos para que solo pueda ejecutar el propietario y el grupo
propietario del programa /bin/passwd.
NOTA: Puedes ver el contenido del fichero /etc/passwd simplemente tecleando:
cat /etc/passwd
Si estas en una red que usa un servidor NIS las contraseñas de toda la red se
guardan en este servidor, para ver el contenido del fichero passwd:
ypcat passwd
programa se basa en el algoritmo de encrytacion DES (Estandar de Encryptacion
de Datos).
Las passswords pueden tener como maximo 11 caracteres pero una vez
encryptadas tienen 13, esto es debido a que los dos primeros caracteres son
el grano de sal (condimento) y se generan a parir del contador del reloj en
el momento en el que se asigna la contraseña, este grano de sal consta de 12
bits, esto quiere decir que puede ser un valor de entre 0 y 4095. Asi para
cada contrase¤a posible hay 4095 formas diferentes de encryptacion.
En el fichero /etc/passwd se guardan el nombre de usuario, nombre real ,
informacion de identificacion, y si el sistema no esta en shadow el passwd
encryptada del usuario.
Un ejemplo:
root:WLR103VcgThbH,31AB:0:0:root:/root:/bin/bash
Donde WLR103VcgThbH es la clave encrytada y WL es el gano de sal.
El numero 3 es el maximo de vida del passwd, despues de tres semanas el
usuario debera cambiarla.
El numero 1 indica cuantas semanas deben pasar para que el usuario puede
cambiar su password.
AB Indica cuando se cambio por ultima vez la clave, (Indica el numero de
semanas que han pasado desde 1/1/1970).
Estos datos están escritos en base 64.
Si por ejemplo root:...,31AB:0:0:root:/root:/bin/bash , indica que el
usuario tendra que cambiar su clave la proxima vez que se conecte al sistema.
Para cambiar el passwd basta con teclear:
Passwd -n diasmin -x diasmax usuario
Donde diasmin es el numero de dias que han de pasar para que el usuario puede
cambiar su passwd.
diasmax es el numero de dias en que expira la clave, para deshabilitar la
expiracion basta con que el valor de tiempo sea -1. Por ejemplo en el caso
del usuario Invitado:------passwd -x 30 Invitado
El usuario Invitado tendra que cambiar su clave cada mes.
No es recomendado usar la opcion un (dias minimos para cambiar la password)
porque si el usuario sospecha que le han pillado el passwd y aun no han
pasado los dias minimos, pues no podra cambiarla hasta que no pasen dichos
dias.
Si en el campo de la clave aparece un NP, (NO password) la cuenta no tiene
password, si por el contrario aparece LK (Locked passwd) significa que la
cuenta esta bloqueada.
Para buscar las cuentas sin passwd:
egrep ‘NP|::’ /etc/passwd
Para buscar por ejemplo info de un usuario en el fichero passwd:
egrep ‘usuario1|usuario2’ /etc/passwd
El numero 0 es el identificador de Usuario (uid).
El identificador de usuario permite determinar, entre otras cosas:
Que ficheros son propiedad de dicho usuario, cuales son los que se pueden
ejecutar, a que zonas tiene acceso un usuario, etc... Con esto quiero decir
que UNIX/Linux no identifica de quien es cada cosa por el nombre de usuario
sino por el UID.
UID es un entero sin signo de 16 bits, el cual va de 0 a 65535.
Los UID’s menores de 9 son habitualmente usados por funciones del sistema
como ftp.
El uid 0 corresponde a el superusuario (root), los UID para los demas
usuarios suelen empezar a partir del numero 100.
Grupos , chgrp , newgrp , grupos con passwords
El siguiente campo pertenece al Identificador de Grupo, en este caso root
pertenece al grupo 0. A los usuarios que van a pertenecer al mismo grupo se
les asigna el mismo gid.
El gid puede ir de 0 hasta 60000, El 0 corresponde al grupo de superusuario:
Los usuarios que estan en el mismo grupo tienen el mismo nivel de privilegios
para aquellos elementos que pertenezcan al grupo.
En el directorio /etc/group esta la lista de cada grupo, un ejemplo del
/etc/group es:
Administ:*:0:root,Charli---Programadores:*:10:Juan,Pedro,Antonio---Usuarios:*:100:------Donde:------Administ Es el nombre del grupo
* Es el password del grupo, en este caso no hay passwd
Root, Charli Los miembros del grupo.
Pueden haber un usuario que pertenezca a varios grupos, el usuario podre
entrar en todos aquellos grupos donde este su loguin, por defecto al entrar
en el sistema entrare en el grupo que corresponda a su gid, luego para
cambiar de grupo simplemente ha de teclear:
newgrp nombre-grupo
Para asociar una clave a un grupo se genera la clave para un usuario nuevo y
se copia con el editor de textos en el fichero /etc/group en el campo
correspondiente.
Los permisos para este fichero han de ser de lectura y escritura para el root
y de lectura para los demas usuarios, SI un usuario puede escribir en este
fichero puede ganar permisos de root con simplemente poner su nombre de
usuario en el mismo grupo en que esta el root y quitar la password si es que
hay.
La orden chgrp sirve para cambiar el grupo propietario de un archivo, su
sintaxis es:
chgrp [opciones] [grupo] [archivo]
La orden chown sirve para cambiar el propietario de un archivo, pero tambien
admite la utilizacion de uid y gid.
Por ejemplo:
chown 500:100 /bin/bash
Cambia el propietario del archivo al usuario con uid 500 y al grupo gid 100.
Se recomienda que /bin/chown solo pueda ser ejecutado por los usuarios con gid
0.
La orden Su
La orden su significa (switch user, cambiar usuario) se utiliza para cambiar
de un usuario a otro, si no se utiliza ningun campo su asume que se ha de
pasar al usuario root.
Una manera de restringir la orden su es quitando al programa /bin/su permisos
de ejecucion a los usuarios que no pertenezcan a un grupo especial, como
administradores. Como ya sabeis los permisos pueden ser para el propietario,
para el grupo y para todos los usuarios.
Passwords en Shadow
Los passwords en Unix se dividen en 7 campos, (separados por dos puntos) :
tonto:h34Sd3vc23: 100:100:Alvaro:/usr/tonto:/bin/sh
Primer campo: Tonto
Es el nombre con el que el sistema reconoce al usuario. A eso se le llama
(login). (Perdonadme los que entiendan algo de unix, pero esque lo tengo que
explicar pa alguien que no sepa na de na).
Segundo campo: h34Sd3vc23
Esta es la palabra clave del usuario pero esta encriptada. Si contiene un
asterisco (*) este password esta desactivado y no puede usarse. :(
Tercer campo: 100
Este es el número de usuario del sistema, (que puede ser hasta 60000). El
usuario con nivel 0 es el root o superusuario.
Cuarto campo: 100
Es el número del grupo al que pertenece el usuario, todos los usuarios de un
mismo grupo tienen los mismos privilegios como es logico, (tambien este campo
puede ser del 0 al 60000)
Quinto campo: Alvaro
En este campo aparecen datos adicionales del usuario, (en este caso el
nombre).
Sexto campo: /usr/tonto
Es el directorio home del usuario en cuestion.
Septimo campo: /bin/sh
Es el Shell que el usuario tonto utiliza.
Como si pillas un fichero de passwords que no estan en shadow y te pones a
crackearlo salen passwords como caracoles despues de la lluvia J, se decide
de poner este sistema en que las passwords encryptadas se guardan en un
archivo a parte generalmente en /etc/shadow (pero depende del sistema),
este archivo al contrario del /etc/passwd solo tiene permisos de lectura para
el root.
Luego en el fichero /etc/passwd en vez de la clave encryptada se pone un * o
algun otro simbolo, esto depende del sistema, he aqui unos ejemplos :))
Tipo de UNIX Directorio Simbolo
AIX3 /etc/security/passwd !
SunOs 5.0 /etc/shadow *
UNICOS /etc/udb *
BSD4.3-Reno /etc/master.passwd *
HP-UX /.segure/etc/passwd *
EP/IX /etc/shadow X
IRIX 5 /etc/shadow X
La estructura del fichero /etc/shadow es la siguiente:
username:passwd:last:may:must:warn:expire:disable:
Donde:------username Es el nombre de usuario.
passwd La clave encryptada.
last Los dias que hace que se cambio la clave desde 1/1/1970.
may Los dias que han de pasar para que la clave pueda ser cambiada.
must Los dias en que espira la clave.
warn Los dias en que se avisara al usurario antes de que el passwd
expire.
expire Son los dias que pueden pasar con la clave caducada antes de
que se deshabilite la cuenta.
Hay una seria de circunstancias en que poner contrase¤as a la sombra puede
dar problemas:
. Cuando en la maquina se verifica el password via NFS, NIS o algun otro
metodo.
. Cuando la maquina esta en una LAN y esta usando NIS (Network Information
Services).
En el fichero /etc/login.defs se especifica por ejemplo los dias maximos en
que puede expirar una passwd, los dias minimos, los caracteres minimos que
puede tener, el UID maximo etc...
Podemos bloquear el programa passwd para que solo un grupo de usuarios o un
usuario puedan ejecutarlo (cambiar su passwd) :
Por ejemplo:
chgrp grupo /bin/passwd
Cambia el grupo propietario del programa passwd.
chmod 4750 /bin/passwd
Cambia los permisos para que solo pueda ejecutar el propietario y el grupo
propietario del programa /bin/passwd.
NOTA: Puedes ver el contenido del fichero /etc/passwd simplemente tecleando:
cat /etc/passwd
Si estas en una red que usa un servidor NIS las contraseñas de toda la red se
guardan en este servidor, para ver el contenido del fichero passwd:
ypcat passwd
Valora este capítulo:
Autor y licencia de 'Seguridad en Linux - Usuarios y passwords'
|
Opiniona sobre 'Seguridad en Linux - Usuarios y passwords' (0)
Tu nombre debe tener tres caracteres como mínimo.
Es necesario que te des de alta con una cuenta de correo válida.
Es necesario que te des de alta con una cuenta de correo válida.
El contenido del título de tu opinión debe tener tres caracteres como mínimo.
Es obligatorio que selecciones una valoración del recurso.
El contenido del comentario de tu opinión debe tener tres caracteres como mínimo.
Opina sobre este tutorial |
Wikis relacionados con 'Seguridad en Linux - Usuarios y passwords'
Bueno, a acusa del poco tiempo que tengo voy ha tener que ir haciendo este
especie...
Más »
Durante los últimos meses han aparecido varias distribuciones del sistema operativo Linux especializadas, con herramientas...
Más »
Anotaciones sobre la implementación de la seguridad física, lógica y condiciones de usuarios en las...
Más »
El objetivo de este estudio es conocer las preferencias y uso actual uso del password....
Más »
A lo largo de este trabajo se va a intentar hacer un repaso de los...
Más »


