22 jul 2014

Sudoers: Cambiando de identidad (Parte I de II)

En un entorno típico de empresa con diversos servidores y máquinas, donde dichos entornos son gestionados por un alto número de operadores, puede llegar a ser confuso, complejo y sobretodo inseguro el proporcionar un acceso total a una máquina. En el instante que un administrador proporciona una credencial de root a un grupo de operadores encargados de llevar a cabo la administración de ciertas máquinas, se está abriendo una brecha de seguridad importante en la empresa ya que dicha autorización pasará por ciertas máquinas y por ciertos usuarios, perdiendo el control sobre quién posee realmente dicha credencial.

Hoy en día es muy factible disponer en los servidores de cualquier entorno, producción, desarrollo, pre-producción, etcétera, un sistema de delegación de identidad y privilegios, el cual proporciona un acceso parcial o completo a las máquinas tomando las identidades de otros usuarios, siempre y cuando el administrador así lo haya configurado. Este sistema es denominado sudo o Super User Do.

Este sistema tiene como principal funcionalidad proporcionar a un usuario la posibilidad de realizar tareas en nombre de otro usuario, es decir, con los privilegios de éste último. Es importante diferenciar que un usuario que puede utilizar sudo, no tiene porqué ser para utilizar o tomar la identidad del root. En otras palabras, el usuario A, siempre y cuando así esté configurado, podría tomar la identidad del usuario B, y que éste no sea el usuario root. El objetivo de sudo es que el usuario realice solo las acciones que necesite con la identidad de otro usuario, que será el que realmente tenga los privilegios para hacerlo. Con esta solución estamos minimizando el impacto de delegar una credencial con acceso total a la máquina.

Generalmente, un usuario que comienza a utilizar sudo no configura el fichero dónde se almacenan las directivas y políticas, con todo el potencial que sudo pone al alcance del administrador. En estas directivas se especifican que acciones puede llevar a cabo cada usuario que pertenezca a los sudoers. Una buena práctica será utilizar la técnica como restrictivo por omisión, es decir, denegar el uso del cambio de identidad salvo a aquellos usuarios que lo necesiten. Además, cada usuario que necesite utilizar sudo, deberá disponer específicamente en el fichero de configuración las acciones permitidas, y no más que las que explícitamente se indiquen en dicho fichero.

Configuración de sudoers

El fichero para la configuración de esta característica de seguridad se encuentra en la ruta /etc/sudoers. Una propiedad fundamental del fichero es que agrupa secciones que permiten al administrador una mejor configuración. Para acceder al archivo se debe utilizar el comando visudo, con el que bloquea el archivo evitando que otro usuario en paralelo pudiera editarlo. Además, cuando se utiliza este comando, una vez finalizada la edición se comprueban errores sintácticos en la manipulación del fichero sudoers y de esta manera evitar que la aplicación quede inestable.

Hay elementos de interés dentro del archivo de configuración de sudoers como es la cláusula opciones (Defaults). Estas opciones sirven para modificar el comportamiento de sudo. El valor de dichas opciones son booleano, valores numéricos o strings. Se pueden asignar a nivel global, es decir, a todos los usuarios que se encuentren especificados como sudoers o a nivel particular, un usuario en concreto. A continuación se muestra un pequeño ejemplo para simplificar su comprensión.


Se puede diferenciar las opciones globales y las opciones particulares. En la parte global se especifica  un timeout para introducir la password de un minuto, cinco minutos de validez de sesión hasta que se vuelva a solicitar la contraseña en una nueva acción de sudo y dos intentos para introducir correctamente la contraseña. En el caso del usuario particular se indica que si falla en la autenticación se mostrará por pantalla una serie de frases “curiosas”. 

En la siguiente parte concluiremos el fichero y mostraremos un ejemplo global de la configuración del fichero. 

No hay comentarios:

Publicar un comentario