# rm-rf.es | Administración de sistemas

Bitácora personal de un SysAdmin Gnu/Linux, Windows, BSD...

visudo, vipw y vigr: editando ficheros críticos en Linux de forma segura


visudoSiguiendo con el tema tratado en el anterior post sobre como encontrar fallos e inconsistencias en los ficheros passwd y shadow vamos a ver como a la hora de editar ciertos ficheros críticos del sistema debemos asegurarnos de hacerlo de forma correcta. Ficheros como /etc/passwd, /etc/group, /etc/shadow o /etc/sudoers pueden editarse ‘al vuelo’ con un editor normal (gedit, vi, vim, nano…) pero corremos el peligro de que mientras lo estamos editando sus datos se hayan actualizado y se pierdan los cambios.

visudo

El comando visudo permite modificar en modo seguro el fichero /etc/sudoers. La diferencia de editarlo con visudo a hacerlo con cualquier otro editor es que visudo bloquea el fichero para evitar ediciones sumultaneas. Otro punto a favor de editar sudoers de esta forma es que en el momento de guardar los cambios realiza un chequeo del fichero en busca de fallos de sintaxis y todo tipo de errores, y en caso de encontrarlos no nos permitirá guardar el fichero y nos indicará el número de línea donde se encuentra el error, permitiendonos editar el ficehro o salir sin guardar.

# visudo

vipw y vigr

Los comandos vipw y vigr permiten editar los ficheros /etc/passwd y /etc/group respectivamente de forma segura. Si quisieramos editar el fichero /etc/shadow y /etc/gshadow deberíamos utilizar el parámetro -s.

Cabe decir que es recomendable evitar la manipulación directa de estos ficheros y que es conveniente usar los comandos correspondientes para gestión de usuarios: crear, eliminar y modificar usuarios de sistema en Unix. Si fuera estrictamente necesario, la modificación de passwd y shadow sería del siguiente modo:

Primero editamos el fichero /etc/passwd:

# vipw
Ha modificado /etc/passwd.
Necesitará modificar /etc/shadow por consistencia.
Use la orden «vipw -s» para hacerlo.

Y posteriormente editamos el fichero shadow y gshadow:

# vipw -s
vipw: /etc/shadow no está cambiado

Si no quisieramos editar el fichero shadow a mano podemos decirle al sistema que lo actualice de forma automática con el comando pwconv:

# pwconv

Y lo mismo cuando editamos grupos con vigr, para evitar la modificación manual de gshadow podemos usar grpconv:

# grpconv

Al igual que con visudo, vigr y vipw bloquean los ficheros para evitar que puedan ser editados a la vez. Para evitar esto se crea un fichero temporal /etc/ptmp y se deshabilita la escritura del mismo.

Os recomiendo revisar las páginas man de los comandos para encontrar información más detallada sobre el funcionamiento y posibilidades de cada uno de ellos.

Securizar la gestión de claves en Linux mediante PAM


Linux-PAM es un módulo del kernel Linux que permite configurar y personalizar el modo en el que se generan y mantienen las claves de usuarios dentro del sistema. En esta entrada vamos a centrarnos en como conseguir que los usuarios de un sistema Linux tengan claves seguras.

Básicamente, lo que vamos a hacer es forzar al usuario a que cumpla ciertos requisitos a la hora de crear o cambiar una clave, por ejemplo que la clave tenga un mínimo de caracteres, que contenga símbolos, números o letras mayúsculas, evitar que repitan las mismas claves, etc.

En sistemas CentOS, RHEL y derivados, esta gestión la hacemos dentro del fichero de configuración de PAM /etc/pam.d/system-auth, en Debian creo recordar que era en el fichero /etc/pam.d/common-password.

En CentOS, encontraremos una línea que contendrá lo siguiente (entre otros parámetros):

password    requisite     pam_cracklib.so .......

En dicha línea podemos añadir los parámetros correspondientes para securizar el sistema de claves, en el siguiente ejemplo hemos añadido que el mínimo de caracteres sea 6 (minlen), que sea obligatorio un símbolo (ocredit) y una letra mayúscula (ucredit):

password    requisite     pam_cracklib.so try_first_pass retry=3 minlen=6 ocredit=-1 ucredit=-1

Otros parámetros son por ejemplo remember=N que indica el histórico de claves a revisar para evitar que repitan la misma clave. Recomiendo revisar la documentación de este módulo en www.kernel.org para exprimir y encontrar todas sus posibilidades.

Como requisito hay que tener el siguiente paquete instalado en el sistema:

cracklib.i386 : biblioteca para el control de las contraseñas.

NOTA: Hay que tener en cuenta que todos estos parámetros no tienen efecto cuando cambiamos las claves con el usuario root, solo se aplican cuando se cambian desde el resto de usuarios.

Generador de passwords aleatorios


Ahora que en todos los medios se habla sobre el reciente ataque de phising a servidores de correo como Hotmail, en los que se han crackeado unas 10.000 contraseñas de cuentas de correo con una pésima seguridad en sus claves de acceso, os dejo un generador de claves aleatorias de números y letras (mayúsculas y minúsculas) escrito en bash:

strings /dev/urandom | grep -o '[[:alnum:]]' | head -n 10 | tr -d '\n'; echo 

Si queréis más de 10 caracteres en la clave, simplemente cambiad el número que le pasamos a “head”:

# strings /dev/urandom | grep -o '[[:alnum:]]' | head -n 15 | tr -d '\n'; echo
admk1iEtH7umbo8

Por supuesto, hay muchas formas de hacerlo, esta es simplemente una de ellas.

Ah! Viene bien recordar esta cita:

Treat your password like your toothbrush. Don’t let anybody else use it, and get a new one every six months

Clifford Stoll

Actualización Firefox 3.0.2, solución al problema de contraseñas


Es conocido por la mayoría el bug que afecta a la versión 3.0.2 del navegador Firefox, el cual no muestra las contraseñas guardadas y además no guarda las nuevas.

Este bug a quedado solucionado en la versión 3.0.3, disponible para todos los sistemas operativos, no obstante en Ubuntu GNU/Linux, es probable que actualizar a esta versión siga sin solucionar el fallo, en ese caso, una vez actualizado hay que instalar/reinstalar el paquete xulrunner:

sudo apt-get install xulrunner

Una vez reinstalado el paquete, el fallo debería quedar solventado, y firefox mostrará de nuevo las claves guardadas y permitirá gestionar de forma correcta las nuevas.